<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>173964</bug_id>
          
          <creation_ts>2017-06-28 23:17:28 -0700</creation_ts>
          <short_desc>[Curl] Implement missing async method in RecourceHandle and make it actually async</short_desc>
          <delta_ts>2017-10-02 16:35:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>173630</dependson>
    
    <dependson>174654</dependson>
    
    <dependson>175148</dependson>
          <blocked>117300</blocked>
    
    <blocked>160677</blocked>
    
    <blocked>174003</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>galpeter</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323893</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-06-28 23:17:28 -0700</bug_when>
    <thetext>Use asynchronous ResourceHandleClient calls for WebKit1 and implement missing methods for ResourceHandle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355403</commentid>
    <comment_count>1</comment_count>
      <attachid>322410</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-10-02 12:31:11 -0700</bug_when>
    <thetext>Created attachment 322410
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355452</commentid>
    <comment_count>2</comment_count>
      <attachid>322410</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-02 13:30:18 -0700</bug_when>
    <thetext>Comment on attachment 322410
patch

Rejecting attachment 322410 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 322410, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 222737 = 55509b4cac458e9f12cbb2726b3f94d80c2186aa
r222738 = 88455e7cce3ce6b46612247f596e80c392194816
r222739 = 407dc92015b4c80f27258f4d9ec449e1b06b1833
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/4728227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355483</commentid>
    <comment_count>3</comment_count>
      <attachid>322434</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-10-02 14:05:40 -0700</bug_when>
    <thetext>Created attachment 322434
fix

Forget to include ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355488</commentid>
    <comment_count>4</comment_count>
      <attachid>322435</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-10-02 14:14:50 -0700</bug_when>
    <thetext>Created attachment 322435
fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355597</commentid>
    <comment_count>5</comment_count>
      <attachid>322435</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-02 16:34:22 -0700</bug_when>
    <thetext>Comment on attachment 322435
fix

Clearing flags on attachment: 322435

Committed r222756: &lt;http://trac.webkit.org/changeset/222756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355598</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-02 16:34:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355600</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-02 16:35:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/34780283&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322410</attachid>
            <date>2017-10-02 12:31:11 -0700</date>
            <delta_ts>2017-10-02 14:05:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>173964-1.diff</filename>
            <type>text/plain</type>
            <size>17431</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggNDVkYTg4MTg3NjYuLmJlYmNmODhkYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMTcwLDI3ICsxNzAs
NyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNw
b25zZSYmIHJlc3BvbnNlKQogICAgIH0KIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVT
RShDRlVSTENPTk5FQ1RJT04pICYmICFVU0UoU09VUCkgJiYgIVVTRShDVVJMKQotLy8gUmVzb3Vy
Y2VIYW5kbGUgbmV2ZXIgdXNlcyBhc3luYyBjbGllbnQgY2FsbHMgb24gdGhlc2UgcGxhdGZvcm1z
IHlldC4KLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCi0jaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLXZv
aWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZShib29sKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0jZW5kaWYKLSNlbmRp
ZgotCi0jaWYgIVVTRShTT1VQKQorI2lmICFVU0UoU09VUCkgJiYgIVVTRShDVVJMKQogdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3Bv
bnNlKCkKIHsKICAgICAvLyBEbyBub3RoaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKaW5kZXggMWM4NGJkYmNjZTEuLmFk
ZWE3M2M3Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsUmVxdWVzdC5jcHAKQEAgLTU2LDYgKzU2LDE1IEBAIHZvaWQgQ3VybFJlcXVlc3Q6
OnNldFVzZXJQYXNzKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCkK
IAogdm9pZCBDdXJsUmVxdWVzdDo6c3RhcnQoYm9vbCBpc1N5bmNSZXF1ZXN0KQogeworICAgIC8v
IFRoZSBwYXVzaW5nIG9mIHRyYW5zZmVyIGRvZXMgbm90IHdvcmsgd2l0aCBwcm90b2NvbHMsIGxp
a2UgZmlsZTovLy4KKyAgICAvLyBUaGVyZWZvcmUsIFBBVVNFIGNhbiBub3QgYmUgZG9uZSBpbiBk
aWRSZWNlaXZlRGF0YSgpLgorICAgIC8vIEl0IG1lYW5zIHRoYXQgdGhlIHNhbWUgbG9naWMgYXMg
aHR0cDovLyBjYW4gbm90IGJlIHVzZWQuCisgICAgLy8gSW4gdGhlIGZpbGUgc2NoZW1lLCBpbnZv
a2VEaWRSZWNlaXZlUmVzcG9uc2UoKSBpcyBkb25lIGZpcnN0LiAKKyAgICAvLyBUaGVuIFN0YXJ0
V2l0aEpvYk1hbmFnZXIgaXMgY2FsbGVkIHdpdGggY29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2Ug
YW5kIHN0YXJ0IHRyYW5zZmVyIHdpdGggbGliY3VybC4KKworICAgIC8vIGh0dHAgOiBkaWRSZWNl
aXZlSGVhZGVyID0+IGRpZFJlY2VpdmVEYXRhW1BBVVNFXSA9PiBpbnZva2VEaWRSZWNlaXZlUmVz
cG9uc2UgPT4gKE1haW5UaHJlYWQpY3VybERpZFJlY2VpdmVSZXNwb25zZSA9PiBjb21wbGV0ZURp
ZFJlY2VpdmVSZXNwb25zZVtSRVNVTUVdID0+IGRpZFJlY2VpdmVEYXRhCisgICAgLy8gZmlsZSA6
IGludm9rZURpZFJlY2VpdmVSZXNwb25zZUZvckZpbGUgPT4gKE1haW5UaHJlYWQpY3VybERpZFJl
Y2VpdmVSZXNwb25zZSA9PiBjb21wbGV0ZURpZFJlY2VpdmVSZXNwb25zZSA9PiBkaWRSZWNlaXZl
RGF0YQorCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIG1faXNTeW5jUmVxdWVz
dCA9IGlzU3luY1JlcXVlc3Q7CkBAIC02Niw4ICs3NSw4IEBAIHZvaWQgQ3VybFJlcXVlc3Q6OnN0
YXJ0KGJvb2wgaXNTeW5jUmVxdWVzdCkKICAgICAgICAgLy8gRm9yIGFzeW5jaHJvbm91cywgdXNl
IEN1cmxKb2JNYW5hZ2VyLiBDdXJsIHByb2Nlc3NlcyBydW5zIG9uIHN1YiB0aHJlYWQuCiAgICAg
ICAgIGlmICh1cmwuaXNMb2NhbEZpbGUoKSkKICAgICAgICAgICAgIGludm9rZURpZFJlY2VpdmVS
ZXNwb25zZUZvckZpbGUodXJsKTsKLQotICAgICAgICBzdGFydFdpdGhKb2JNYW5hZ2VyKCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0YXJ0V2l0aEpvYk1hbmFnZXIoKTsKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBGb3Igc3luY2hyb25vdXMsIGRvZXMgbm90IHVzZSBDdXJsSm9iTWFu
YWdlci4gQ3VybCBwcm9jZXNzZXMgcnVucyBvbiBtYWluIHRocmVhZC4KICAgICAgICAgLy8gY3Vy
bF9lYXN5X3BlcmZvcm0gYmxvY2tzIHVudGlsIHRoZSB0cmFuc2ZlciBpcyBmaW5pc2hlZC4KQEAg
LTEwMSwyMSArMTEwLDIyIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmNhbmNlbCgpCiAgICAgaWYgKCFt
X2lzU3luY1JlcXVlc3QpCiAgICAgICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0b24oKS5jYW5j
ZWwodGhpcyk7CiAKLSAgICBzZXRQYXVzZWQoZmFsc2UpOworICAgIHNldFJlcXVlc3RQYXVzZWQo
ZmFsc2UpOworICAgIHNldENhbGxiYWNrUGF1c2VkKGZhbHNlKTsKIH0KIAogdm9pZCBDdXJsUmVx
dWVzdDo6c3VzcGVuZCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIHNl
dFBhdXNlZCh0cnVlKTsKKyAgICBzZXRSZXF1ZXN0UGF1c2VkKHRydWUpOwogfQogCiB2b2lkIEN1
cmxSZXF1ZXN0OjpyZXN1bWUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAg
ICBzZXRQYXVzZWQoZmFsc2UpOworICAgIHNldFJlcXVlc3RQYXVzZWQoZmFsc2UpOwogfQogCiAv
KiBgdGhpc2AgaXMgcHJvdGVjdGVkIGluc2lkZSB0aGlzIG1ldGhvZC4gKi8KQEAgLTI4OCw3ICsy
OTgsOCBAQCBzaXplX3QgQ3VybFJlcXVlc3Q6OmRpZFJlY2VpdmVIZWFkZXIoU3RyaW5nJiYgaGVh
ZGVyKQogICAgIGlmIChhdXRvIG1ldHJpY3MgPSBtX2N1cmxIYW5kbGUtPmdldE5ldHdvcmtMb2Fk
TWV0cmljcygpKQogICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmljcyA9ICptZXRyaWNzOwogCi0g
ICAgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgLy8gUmVzcG9uc2Ugd2lsbCBzZW5k
IGF0IGRpZFJlY2VpdmVEYXRhKCkgb3IgZGlkQ29tcGxldGVUcmFuc2ZlcigpCisgICAgLy8gdG8g
cmVjZWl2ZSBjb250aW51ZURpZFJjZWl2ZVJlc3BvbnNlKCkgZm9yIGFzeW5jaHJvbm91c2x5Lgog
CiAgICAgcmV0dXJuIHJlY2VpdmVCeXRlczsKIH0KQEAgLTMwMCw2ICszMTEsMTkgQEAgc2l6ZV90
IEN1cmxSZXF1ZXN0OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikK
ICAgICBpZiAobV9jYW5jZWxsZWQpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKG5lZWRU
b0ludm9rZURpZFJlY2VpdmVSZXNwb25zZSgpKSB7CisgICAgICAgIGlmICghbV9pc1N5bmNSZXF1
ZXN0KSB7CisgICAgICAgICAgICAvLyBGb3IgYXN5bmNocm9ub3VzLCBwYXVzZSB1bnRpbCBjb21w
bGV0ZURpZFJlY2VpdmVSZXNwb25zZSgpIGlzIGNhbGxlZC4KKyAgICAgICAgICAgIHNldENhbGxi
YWNrUGF1c2VkKHRydWUpOworICAgICAgICAgICAgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKEFj
dGlvbjo6UmVjZWl2ZURhdGEpOworICAgICAgICAgICAgcmV0dXJuIENVUkxfV1JJVEVGVU5DX1BB
VVNFOworICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIHN5bmNocm9ub3VzLCBjb21wbGV0ZURp
ZFJlY2VpdmVSZXNwb25zZSgpIGlzIGNhbGxlZCBpbiBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2Uo
KS4KKyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCBwYXVzZSBpcyB1bm5lY2Vzc2FyeS4KKyAgICAg
ICAgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKEFjdGlvbjo6Tm9uZSk7CisgICAgfQorCiAgICAg
YXV0byByZWNlaXZlQnl0ZXMgPSBidWZmZXItPnNpemUoKTsKIAogICAgIGlmIChyZWNlaXZlQnl0
ZXMpIHsKQEAgLTMyMCwzMCArMzQ0LDQyIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmRpZENvbXBsZXRl
VHJhbnNmZXIoQ1VSTGNvZGUgcmVzdWx0KQogICAgIH0KIAogICAgIGlmIChyZXN1bHQgPT0gQ1VS
TEVfT0spIHsKLSAgICAgICAgaWYgKGF1dG8gbWV0cmljcyA9IG1fY3VybEhhbmRsZS0+Z2V0TmV0
d29ya0xvYWRNZXRyaWNzKCkpCi0gICAgICAgICAgICBtX25ldHdvcmtMb2FkTWV0cmljcyA9ICpt
ZXRyaWNzOwotCi0gICAgICAgIGNhbGxEZWxlZ2F0ZShbdGhpc10oQ3VybFJlcXVlc3REZWxlZ2F0
ZSogZGVsZWdhdGUpIHsKLSAgICAgICAgICAgIGlmIChkZWxlZ2F0ZSkKLSAgICAgICAgICAgICAg
ICBkZWxlZ2F0ZS0+Y3VybERpZENvbXBsZXRlKCk7Ci0gICAgICAgIH0pOworICAgICAgICBpZiAo
bmVlZFRvSW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKCkpIHsKKyAgICAgICAgICAgIC8vIFByb2Nl
c3Npbmcgb2YgZGlkUmVjZWl2ZVJlc3BvbnNlKCkgaGFzIG5vdCBiZWVuIGNvbXBsZXRlZC4gKEZv
ciBleGFtcGxlLCBIRUFEIG1ldGhvZCkKKyAgICAgICAgICAgIC8vIFdoZW4gY29tcGxldGVEaWRS
ZWNlaXZlUmVzcG9uc2UoKSBpcyBjYWxsZWQsIGRpZENvbXBsZXRlVHJhbnNmZXIoKSB3aWxsIGJl
IGNhbGxlZCBhZ2Fpbi4KKworICAgICAgICAgICAgbV9maW5pc2hlZFJlc3VsdENvZGUgPSByZXN1
bHQ7CisgICAgICAgICAgICBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoQWN0aW9uOjpGaW5pc2hU
cmFuc2Zlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoYXV0byBtZXRyaWNz
ID0gbV9jdXJsSGFuZGxlLT5nZXROZXR3b3JrTG9hZE1ldHJpY3MoKSkKKyAgICAgICAgICAgICAg
ICBtX25ldHdvcmtMb2FkTWV0cmljcyA9ICptZXRyaWNzOworCisgICAgICAgICAgICBmaW5hbGl6
ZVRyYW5zZmVyKCk7CisgICAgICAgICAgICBjYWxsRGVsZWdhdGUoW3RoaXNdKEN1cmxSZXF1ZXN0
RGVsZWdhdGUqIGRlbGVnYXRlKSB7CisgICAgICAgICAgICAgICAgaWYgKGRlbGVnYXRlKQorICAg
ICAgICAgICAgICAgICAgICBkZWxlZ2F0ZS0+Y3VybERpZENvbXBsZXRlKCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVzb3VyY2VFcnJv
ciA9IFJlc291cmNlRXJyb3I6Omh0dHBFcnJvcihyZXN1bHQsIG1fcmVxdWVzdC51cmwoKSk7CiAg
ICAgICAgIGlmIChtX3NzbFZlcmlmaWVyLnNzbEVycm9ycygpKQogICAgICAgICAgICAgcmVzb3Vy
Y2VFcnJvci5zZXRTc2xFcnJvcnMobV9zc2xWZXJpZmllci5zc2xFcnJvcnMoKSk7CiAKKyAgICAg
ICAgZmluYWxpemVUcmFuc2ZlcigpOwogICAgICAgICBjYWxsRGVsZWdhdGUoW3RoaXMsIGVycm9y
ID0gcmVzb3VyY2VFcnJvci5pc29sYXRlZENvcHkoKV0oQ3VybFJlcXVlc3REZWxlZ2F0ZSogZGVs
ZWdhdGUpIHsKICAgICAgICAgICAgIGlmIChkZWxlZ2F0ZSkKICAgICAgICAgICAgICAgICBkZWxl
Z2F0ZS0+Y3VybERpZEZhaWxXaXRoRXJyb3IoZXJyb3IpOwogICAgICAgICB9KTsKICAgICB9Ci0K
LSAgICBtX2Zvcm1EYXRhU3RyZWFtID0gbnVsbHB0cjsKLSAgICBtX2N1cmxIYW5kbGUgPSBudWxs
cHRyOwogfQogCiB2b2lkIEN1cmxSZXF1ZXN0OjpkaWRDYW5jZWxUcmFuc2ZlcigpCiB7CisgICAg
ZmluYWxpemVUcmFuc2ZlcigpOworfQorCit2b2lkIEN1cmxSZXF1ZXN0OjpmaW5hbGl6ZVRyYW5z
ZmVyKCkKK3sKICAgICBtX2Zvcm1EYXRhU3RyZWFtID0gbnVsbHB0cjsKICAgICBtX2N1cmxIYW5k
bGUgPSBudWxscHRyOwogfQpAQCAtNDU0LDM1ICs0OTAsOTAgQEAgdm9pZCBDdXJsUmVxdWVzdDo6
aW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yRmlsZShVUkwmIHVybCkKICAgICBpZiAoIW1faXNT
eW5jUmVxdWVzdCkgewogICAgICAgICAvLyBEaWRSZWNlaXZlUmVzcG9uc2UgbXVzdCBub3QgYmUg
Y2FsbGVkIGltbWVkaWF0ZWx5CiAgICAgICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0b24oKS5j
YWxsT25Kb2JUaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7Ci0gICAg
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPmludm9rZURpZFJlY2VpdmVSZXNwb25zZShBY3Rpb246OlN0
YXJ0VHJhbnNmZXIpOwogICAgICAgICB9KTsKLSAgICB9IGVsc2UKLSAgICAgICAgaW52b2tlRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRm9yIHN5bmNocm9u
b3VzLCBjb21wbGV0ZURpZFJlY2VpdmVSZXNwb25zZSgpIGlzIGNhbGxlZCBpbiBwbGF0Zm9ybUNv
bnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKS4KKyAgICAgICAgaW52b2tlRGlk
UmVjZWl2ZVJlc3BvbnNlKEFjdGlvbjo6Tm9uZSk7CisgICAgfQogfQogCi12b2lkIEN1cmxSZXF1
ZXN0OjppbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoKQordm9pZCBDdXJsUmVxdWVzdDo6aW52b2tl
RGlkUmVjZWl2ZVJlc3BvbnNlKEFjdGlvbiBiZWhhdmlvckFmdGVySW52b2tlKQogeworICAgIEFT
U0VSVCghbV9kaWROb3RpZnlSZXNwb25zZSk7CisKKyAgICBtX2RpZE5vdGlmeVJlc3BvbnNlID0g
dHJ1ZTsKKyAgICBtX2FjdGlvbkFmdGVySW52b2tlID0gYmVoYXZpb3JBZnRlckludm9rZTsKKwog
ICAgIGNhbGxEZWxlZ2F0ZShbdGhpcywgcmVzcG9uc2UgPSBtX3Jlc3BvbnNlLmlzb2xhdGVkQ29w
eSgpXShDdXJsUmVxdWVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkgewogICAgICAgICBpZiAoZGVsZWdh
dGUpCiAgICAgICAgICAgICBkZWxlZ2F0ZS0+Y3VybERpZFJlY2VpdmVSZXNwb25zZShyZXNwb25z
ZSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgQ3VybFJlcXVlc3Q6OnNldFBhdXNlZChib29sIHBhdXNl
ZCkKK3ZvaWQgQ3VybFJlcXVlc3Q6OmNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2RpZE5vdGlmeVJlc3BvbnNl
KTsKKyAgICBBU1NFUlQoIW1fZGlkUmV0dXJuRnJvbU5vdGlmeSk7CisKICAgICBpZiAobV9jYW5j
ZWxsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChwYXVzZWQgPT0gbV9pc1BhdXNlZCkK
KyAgICBtX2RpZFJldHVybkZyb21Ob3RpZnkgPSB0cnVlOworCisgICAgaWYgKG1fYWN0aW9uQWZ0
ZXJJbnZva2UgPT0gQWN0aW9uOjpSZWNlaXZlRGF0YSkgeworICAgICAgICAvLyBSZXN1bWUgdHJh
bnNmZXIKKyAgICAgICAgc2V0Q2FsbGJhY2tQYXVzZWQoZmFsc2UpOworICAgIH0gZWxzZSBpZiAo
bV9hY3Rpb25BZnRlckludm9rZSA9PSBBY3Rpb246OlN0YXJ0VHJhbnNmZXIpIHsKKyAgICAgICAg
Ly8gU3RhcnQgdHJhbnNmZXIgZm9yIGZpbGUgc2NoZW1lCisgICAgICAgIHN0YXJ0V2l0aEpvYk1h
bmFnZXIoKTsKKyAgICB9IGVsc2UgaWYgKG1fYWN0aW9uQWZ0ZXJJbnZva2UgPT0gQWN0aW9uOjpG
aW5pc2hUcmFuc2ZlcikgeworICAgICAgICAvLyBLZWVwIHRoZSBjYWxsaW5nIHRocmVhZCBvZiBk
aWRDb21wbGV0ZVRyYW5zZmVyKCkKKyAgICAgICAgaWYgKCFtX2lzU3luY1JlcXVlc3QpIHsKKyAg
ICAgICAgICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0b24oKS5jYWxsT25Kb2JUaHJlYWQoW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZmluaXNoZWRSZXN1bHRDb2RlID0gbV9maW5p
c2hlZFJlc3VsdENvZGVdKCkgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZENv
bXBsZXRlVHJhbnNmZXIoZmluaXNoZWRSZXN1bHRDb2RlKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIGRpZENvbXBsZXRlVHJhbnNmZXIobV9maW5pc2hlZFJl
c3VsdENvZGUpOworICAgIH0KK30KKwordm9pZCBDdXJsUmVxdWVzdDo6c2V0UmVxdWVzdFBhdXNl
ZChib29sIHBhdXNlZCkKK3sKKyAgICBhdXRvIHdhc1BhdXNlZCA9IGlzUGF1c2VkKCk7CisKKyAg
ICBtX2lzUGF1c2VkT2ZSZXF1ZXN0ID0gcGF1c2VkOworCisgICAgaWYgKGlzUGF1c2VkKCkgPT0g
d2FzUGF1c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2lzUGF1c2VkID0gcGF1c2VkOwor
ICAgIHBhdXNlZFN0YXR1c0NoYW5nZWQoKTsKK30KIAotICAgIGlmICghbV9jdXJsSGFuZGxlKQor
dm9pZCBDdXJsUmVxdWVzdDo6c2V0Q2FsbGJhY2tQYXVzZWQoYm9vbCBwYXVzZWQpCit7CisgICAg
YXV0byB3YXNQYXVzZWQgPSBpc1BhdXNlZCgpOworCisgICAgbV9pc1BhdXNlZE9mQ2FsbGJhY2sg
PSBwYXVzZWQ7CisKKyAgICBpZiAoaXNQYXVzZWQoKSA9PSB3YXNQYXVzZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIEluIHRoaXMgY2FzZSwgUEFVU0Ugd2lsbCBiZSBleGVjdXRlZCB3aXRo
aW4gZGlkUmVjZWl2ZURhdGEoKS4gQ2hhbmdlIHBhdXNlIHN0YXRlIGFuZCByZXR1cm4uCisgICAg
aWYgKHBhdXNlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGF1c2VkU3RhdHVzQ2hhbmdlZCgp
OworfQorCit2b2lkIEN1cmxSZXF1ZXN0OjpwYXVzZWRTdGF0dXNDaGFuZ2VkKCkKK3sKKyAgICBp
ZiAobV9jYW5jZWxsZWQgfHwgIW1fY3VybEhhbmRsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCFtX2lzU3luY1JlcXVlc3QgJiYgaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgQ3VybEpv
Yk1hbmFnZXI6OnNpbmdsZXRvbigpLmNhbGxPbkpvYlRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBwYXVzZWQgPSBtX2lzUGF1c2VkXSgpIHsKKyAgICAgICAgQ3VybEpvYk1h
bmFnZXI6OnNpbmdsZXRvbigpLmNhbGxPbkpvYlRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBwYXVzZWQgPSBpc1BhdXNlZCgpXSgpIHsKICAgICAgICAgICAgIGlmIChwcm90
ZWN0ZWRUaGlzLT5tX2NhbmNlbGxlZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTQ5
Myw4ICs1ODQsOCBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpzZXRQYXVzZWQoYm9vbCBwYXVzZWQpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBtX2N1cmxIYW5kbGUtPnBhdXNlKG1faXNQYXVzZWQgPyBDVVJMUEFVU0VfQUxMIDogQ1VS
TFBBVVNFX0NPTlQpOwotICAgICAgICBpZiAoKGVycm9yICE9IENVUkxFX09LKSAmJiAhbV9pc1Bh
dXNlZCkKKyAgICAgICAgYXV0byBlcnJvciA9IG1fY3VybEhhbmRsZS0+cGF1c2UoaXNQYXVzZWQo
KSA/IENVUkxQQVVTRV9BTEwgOiBDVVJMUEFVU0VfQ09OVCk7CisgICAgICAgIGlmICgoZXJyb3Ig
IT0gQ1VSTEVfT0spICYmICFpc1BhdXNlZCgpKQogICAgICAgICAgICAgY2FuY2VsKCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJl
cXVlc3QuaAppbmRleCBlOGE5YzM2N2M0My4uNjFmMmUyM2EzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC01Niw5ICs1
NiwxOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU3luY1JlcXVlc3QoKSB7IHJldHVybiBtX2lz
U3luY1JlcXVlc3Q7IH0KIAorICAgIC8vIFByb2Nlc3NpbmcgZm9yIERpZFJlY2VpdmVSZXNwb25z
ZQorICAgIHZvaWQgY29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKwogICAgIE5ldHdvcmtM
b2FkTWV0cmljcyBnZXROZXR3b3JrTG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdvcmtMb2Fk
TWV0cmljcy5pc29sYXRlZENvcHkoKTsgfQogCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgQWN0
aW9uIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgUmVjZWl2ZURhdGEsCisgICAgICAgIFN0YXJ0
VHJhbnNmZXIsCisgICAgICAgIEZpbmlzaFRyYW5zZmVyCisgICAgfTsKKwogICAgIHZvaWQgcmV0
YWluKCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZvaWQgcmVsZWFzZSgpIG92ZXJyaWRlIHsg
ZGVyZWYoKTsgfQogICAgIENVUkwqIGhhbmRsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VybEhh
bmRsZSA/IG1fY3VybEhhbmRsZS0+aGFuZGxlKCkgOiBudWxscHRyOyB9CkBAIC03Niw2ICs4Niw3
IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IGRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+
JiYpOwogICAgIHZvaWQgZGlkQ29tcGxldGVUcmFuc2ZlcihDVVJMY29kZSkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRDYW5jZWxUcmFuc2ZlcigpIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemVU
cmFuc2ZlcigpOwogCiAgICAgLy8gRm9yIFBPU1QgYW5kIFBVVCBtZXRob2QgCiAgICAgdm9pZCBy
ZXNvbHZlQmxvYlJlZmVyZW5jZXMoUmVzb3VyY2VSZXF1ZXN0Jik7CkBAIC04MywxMCArOTQsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldHVwUFVUKFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZv
aWQgc2V0dXBGb3JtRGF0YShSZXNvdXJjZVJlcXVlc3QmLCBib29sKTsKIAotICAgIC8vIFByb2Nl
c3NpbmcgZm9yIERpZFJlc291cmNlUmVzcG9uc2UKKyAgICAvLyBQcm9jZXNzaW5nIGZvciBEaWRS
ZWNlaXZlUmVzcG9uc2UKKyAgICBib29sIG5lZWRUb0ludm9rZURpZFJlY2VpdmVSZXNwb25zZSgp
IGNvbnN0IHsgcmV0dXJuICFtX2RpZE5vdGlmeVJlc3BvbnNlIHx8ICFtX2RpZFJldHVybkZyb21O
b3RpZnk7IH0KICAgICB2b2lkIGludm9rZURpZFJlY2VpdmVSZXNwb25zZUZvckZpbGUoVVJMJik7
Ci0gICAgdm9pZCBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoKTsKLSAgICB2b2lkIHNldFBhdXNl
ZChib29sKTsKKyAgICB2b2lkIGludm9rZURpZFJlY2VpdmVSZXNwb25zZShBY3Rpb24pOworICAg
IHZvaWQgc2V0UmVxdWVzdFBhdXNlZChib29sKTsKKyAgICB2b2lkIHNldENhbGxiYWNrUGF1c2Vk
KGJvb2wpOworICAgIHZvaWQgcGF1c2VkU3RhdHVzQ2hhbmdlZCgpOworICAgIGJvb2wgaXNQYXVz
ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGF1c2VkT2ZSZXF1ZXN0IHx8IG1faXNQYXVzZWRPZkNh
bGxiYWNrOyB9OwogCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb25zIGZvciBjdXJsCiAgICAgc3Rh
dGljIENVUkxjb2RlIHdpbGxTZXR1cFNzbEN0eENhbGxiYWNrKENVUkwqLCB2b2lkKiwgdm9pZCop
OwpAQCAtMTExLDcgKzEyNiwxMyBAQCBwcml2YXRlOgogICAgIEN1cmxTU0xWZXJpZmllciBtX3Nz
bFZlcmlmaWVyOwogICAgIEN1cmxSZXNwb25zZSBtX3Jlc3BvbnNlOwogCi0gICAgYm9vbCBtX2lz
UGF1c2VkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGlkTm90aWZ5UmVzcG9uc2UgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9kaWRSZXR1cm5Gcm9tTm90aWZ5IHsgZmFsc2UgfTsKKyAgICBBY3Rpb24g
bV9hY3Rpb25BZnRlckludm9rZSB7IEFjdGlvbjo6Tm9uZSB9OworICAgIENVUkxjb2RlIG1fZmlu
aXNoZWRSZXN1bHRDb2RlIHsgQ1VSTEVfT0sgfTsKKworICAgIGJvb2wgbV9pc1BhdXNlZE9mUmVx
dWVzdCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUGF1c2VkT2ZDYWxsYmFjayB7IGZhbHNlIH07
CiAKICAgICBOZXR3b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3JrTG9hZE1ldHJpY3M7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcAppbmRleCAyZTdmMGNmZWFiMS4uYTM0YjMwMWRjZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwCkBAIC0yMTMsMTAgKzIxMywxMCBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpyZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVu
dGljYQogICAgIGlmIChjaGFsbGVuZ2UgIT0gZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoZC0+bV9kZWxlZ2F0ZSkKLSAgICAgICAgZC0+bV9kZWxl
Z2F0ZS0+c2V0QXV0aGVudGljYXRpb24oIiIsICIiKTsKLQogICAgIGNsZWFyQXV0aGVudGljYXRp
b24oKTsKKworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIGRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpKTsKIH0KIAog
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKQEAgLTI1OSw3ICsyNTksMTggQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXgKIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKworICAgIGlmIChkLT5tX2RlbGVnYXRlKQorICAgICAgICBkLT5tX2RlbGVnYXRl
LT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworfQorCit2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoZC0+bV9kZWxlZ2F0ZSkKKyAgICAg
ICAgZC0+bV9kZWxlZ2F0ZS0+cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJl
c3BvbnNlKCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERl
bGVnYXRlLmNwcAppbmRleCBmZmYwZmVmYzRlOC4uMGZhYjdiYTM4ZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxl
Z2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291
cmNlSGFuZGxlQ3VybERlbGVnYXRlLmNwcApAQCAtMjI3LDcgKzIyNyw5IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGVDdXJsRGVsZWdhdGU6OmN1cmxEaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgQ3VybFJl
c3BvbnNlJiByZWNlCiAgICAgICAgIH0KIAogICAgICAgICBDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJ
bnN0YW5jZSgpLmRpZFJlY2VpdmVSZXNwb25zZSgqbV9oYW5kbGUsIHJlc3BvbnNlKCkpOwotICAg
ICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZShtX2hhbmRsZSwgUmVz
b3VyY2VSZXNwb25zZShyZXNwb25zZSgpKSk7CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqbV9oYW5kbGUpOworICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UoKSkpOwogICAgIH0KIH0KIApAQCAtMjc2LDkg
KzI3OCwzNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjdXJsRGlkRmFpbFdp
dGhFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdQogICAgIG1faGFuZGxlLT5jbGllbnQo
KS0+ZGlkRmFpbChtX2hhbmRsZSwgcmVzb3VyY2VFcnJvcik7CiB9CiAKK3ZvaWQgUmVzb3VyY2VI
YW5kbGVDdXJsRGVsZWdhdGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNw
b25zZSgpOworfQorCit2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpwbGF0Zm9ybUNv
bnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisKKyAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7Cit9
CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmNvbnRpbnVlQWZ0ZXJEaWRSZWNl
aXZlUmVzcG9uc2UoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAvLyBj
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZSBtaWdodCBjYW5jZWwgdGhlIGxvYWQuCisgICAgaWYg
KGNhbmNlbGxlZE9yQ2xpZW50bGVzcygpIHx8ICFtX2N1cmxSZXF1ZXN0KQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2N1cmxSZXF1ZXN0LT5jb21wbGV0ZURpZFJlY2VpdmVSZXNwb25zZSgpOwor
fQorCiBib29sIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpzaG91bGRSZWRpcmVjdEFzR0VU
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjcm9zc09yaWdpbikKIHsKLSAg
ICBpZiAoKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJHRVQiKSB8fCAocmVxdWVzdC5odHRwTWV0
aG9kKCkgPT0gIkhFQUQiKSkKKyAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIkdFVCIg
fHwgcmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIkhFQUQiKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuaAppbmRleCA3MzY0YTU0YjA3ZS4uMGU0ODEwNzdl
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5oCkBAIC01NSw2ICs1NSw5IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGF0Y2hTeW5jaHJvbm91c0pvYigpOwogCisgICAgdm9p
ZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIHZvaWQgcGxhdGZvcm1Db250aW51
ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisKICAgICB2b2lkIGNvbnRpbnVlV2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmKTsKIAogcHJpdmF0ZToKQEAgLTcxLDYgKzc0
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGN1cmxEaWRDb21wbGV0ZSgpIG92ZXJyaWRlOwogICAg
IHZvaWQgY3VybERpZEZhaWxXaXRoRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRl
OwogCisgICAgdm9pZCBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisKICAgICBi
b29sIHNob3VsZFJlZGlyZWN0QXNHRVQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjcm9z
c09yaWdpbik7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoKTsKICAgICB2b2lkIGNvbnRpbnVl
QWZ0ZXJXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2VDdXJsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNl
Q3VybC5jcHAKaW5kZXggODliNzZkNDNhNWQuLjA4MTk3NGRkY2VjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZUN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3Bv
bnNlQ3VybC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBTdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6
cGxhdGZvcm1TdWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0CiBib29sIFJlc291cmNlUmVzcG9uc2U6
OnNob3VsZFJlZGlyZWN0KCkKIHsKICAgICBhdXRvIHN0YXR1c0NvZGUgPSBodHRwU3RhdHVzQ29k
ZSgpOwotICAgIGlmICgoc3RhdHVzQ29kZSA8IDMwMCkgfHwgKDQwMCA8PSBzdGF0dXNDb2RlKSkK
KyAgICBpZiAoc3RhdHVzQ29kZSA8IDMwMCB8fCA0MDAgPD0gc3RhdHVzQ29kZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgLy8gU29tZSAzeHggc3RhdHVzIGNvZGVzIGFyZW4ndCBhY3R1
YWxseSByZWRpcmVjdHMuCkBAIC0xNTEsMjcgKzE1MSwyNyBAQCBib29sIFJlc291cmNlUmVzcG9u
c2U6OnNob3VsZFJlZGlyZWN0KCkKIAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjppc01vdmVkUGVy
bWFuZW50bHkoKSBjb25zdAogewotICAgIHJldHVybiAoaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDEp
OworICAgIHJldHVybiBodHRwU3RhdHVzQ29kZSgpID09IDMwMTsKIH0KIAogYm9vbCBSZXNvdXJj
ZVJlc3BvbnNlOjppc0ZvdW5kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKGh0dHBTdGF0dXNDb2Rl
KCkgPT0gMzAyKTsKKyAgICByZXR1cm4gaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDI7CiB9CiAKIGJv
b2wgUmVzb3VyY2VSZXNwb25zZTo6aXNTZWVPdGhlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICho
dHRwU3RhdHVzQ29kZSgpID09IDMwMyk7CisgICAgcmV0dXJuIGh0dHBTdGF0dXNDb2RlKCkgPT0g
MzAzOwogfQogCiBib29sIFJlc291cmNlUmVzcG9uc2U6OmlzTm90TW9kaWZpZWQoKSBjb25zdAog
ewotICAgIHJldHVybiAoaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQpOworICAgIHJldHVybiBodHRw
U3RhdHVzQ29kZSgpID09IDMwNDsKIH0KIAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjppc1VuYXV0
aG9yaXplZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChodHRwU3RhdHVzQ29kZSgpID09IDQwMSk7
CisgICAgcmV0dXJuIGh0dHBTdGF0dXNDb2RlKCkgPT0gNDAxOwogfQogCiB9Cg==
</data>
<flag name="review"
          id="342286"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="342287"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322434</attachid>
            <date>2017-10-02 14:05:40 -0700</date>
            <delta_ts>2017-10-02 14:14:50 -0700</delta_ts>
            <desc>fix</desc>
            <filename>173964-2.diff</filename>
            <type>text/plain</type>
            <size>20514</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3Mzc1NjI3YzNhMi4uNGFkYThlZDc5MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAxNy0xMC0wMiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEltcGxlbWVudCBtaXNzaW5nIGFzeW5jIG1ldGhvZCBp
biBSZWNvdXJjZUhhbmRsZSBhbmQgbWFrZSBpdCBhY3R1YWxseSBhc3luYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczOTY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlV2lsbFNlbmRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpjYW5jZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVl
c3Q6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6ZGlkUmVjZWl2ZUhl
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmRpZENvbXBsZXRlVHJhbnNmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmRpZENhbmNlbFRyYW5zZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpmaW5hbGl6ZVRyYW5zZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxSZXF1ZXN0OjppbnZva2VEaWRSZWNlaXZlUmVzcG9uc2VGb3JGaWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjppbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpzZXRSZXF1ZXN0UGF1c2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpzZXRDYWxsYmFja1BhdXNlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsUmVxdWVzdDo6cGF1c2VkU3RhdHVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDdXJsUmVxdWVzdDo6c2V0UGF1c2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1
ZXN0OjpuZWVkVG9JbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OmlzUGF1c2VkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpyZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUNvbnRp
bnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y3VybERpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDdXJs
RGVsZWdhdGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y29udGludWVB
ZnRlckRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUN1cmxEZWxlZ2F0ZTo6c2hvdWxkUmVkaXJlY3RBc0dFVCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2VDdXJsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnNob3VsZFJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OmlzTW92ZWRQZXJtYW5lbnRseSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjppc0ZvdW5kIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OmlzU2VlT3RoZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZTo6aXNOb3RNb2RpZmllZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjppc1VuYXV0aG9yaXplZCBjb25zdCk6CisKIDIwMTct
MTAtMDIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBJbmNsdWRlIEJlYWNvbiBhbmQgUGluZyByZXF1ZXN0cyBpbiBOZXR3b3Jr
IHRhYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcAppbmRleCA0NWRhODgxODc2Ni4uYmViY2Y4OGRiYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0xNzAsMjcg
KzE3MCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UpCiAgICAgfQogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAm
JiAhVVNFKENGVVJMQ09OTkVDVElPTikgJiYgIVVTRShTT1VQKSAmJiAhVVNFKENVUkwpCi0vLyBS
ZXNvdXJjZUhhbmRsZSBuZXZlciB1c2VzIGFzeW5jIGNsaWVudCBjYWxscyBvbiB0aGVzZSBwbGF0
Zm9ybXMgeWV0Lgotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci19Ci0KLSNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLSNlbmRpZgot
I2VuZGlmCi0KLSNpZiAhVVNFKFNPVVApCisjaWYgIVVTRShTT1VQKSAmJiAhVVNFKENVUkwpCiB2
b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZl
UmVzcG9uc2UoKQogewogICAgIC8vIERvIG5vdGhpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcAppbmRleCAxYzg0YmRiY2Nl
MS4uYWRlYTczYzdmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtNTYsNiArNTYsMTUgQEAgdm9pZCBDdXJsUmVx
dWVzdDo6c2V0VXNlclBhc3MoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3
b3JkKQogCiB2b2lkIEN1cmxSZXF1ZXN0OjpzdGFydChib29sIGlzU3luY1JlcXVlc3QpCiB7Cisg
ICAgLy8gVGhlIHBhdXNpbmcgb2YgdHJhbnNmZXIgZG9lcyBub3Qgd29yayB3aXRoIHByb3RvY29s
cywgbGlrZSBmaWxlOi8vLgorICAgIC8vIFRoZXJlZm9yZSwgUEFVU0UgY2FuIG5vdCBiZSBkb25l
IGluIGRpZFJlY2VpdmVEYXRhKCkuCisgICAgLy8gSXQgbWVhbnMgdGhhdCB0aGUgc2FtZSBsb2dp
YyBhcyBodHRwOi8vIGNhbiBub3QgYmUgdXNlZC4KKyAgICAvLyBJbiB0aGUgZmlsZSBzY2hlbWUs
IGludm9rZURpZFJlY2VpdmVSZXNwb25zZSgpIGlzIGRvbmUgZmlyc3QuIAorICAgIC8vIFRoZW4g
U3RhcnRXaXRoSm9iTWFuYWdlciBpcyBjYWxsZWQgd2l0aCBjb21wbGV0ZURpZFJlY2VpdmVSZXNw
b25zZSBhbmQgc3RhcnQgdHJhbnNmZXIgd2l0aCBsaWJjdXJsLgorCisgICAgLy8gaHR0cCA6IGRp
ZFJlY2VpdmVIZWFkZXIgPT4gZGlkUmVjZWl2ZURhdGFbUEFVU0VdID0+IGludm9rZURpZFJlY2Vp
dmVSZXNwb25zZSA9PiAoTWFpblRocmVhZCljdXJsRGlkUmVjZWl2ZVJlc3BvbnNlID0+IGNvbXBs
ZXRlRGlkUmVjZWl2ZVJlc3BvbnNlW1JFU1VNRV0gPT4gZGlkUmVjZWl2ZURhdGEKKyAgICAvLyBm
aWxlIDogaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yRmlsZSA9PiAoTWFpblRocmVhZCljdXJs
RGlkUmVjZWl2ZVJlc3BvbnNlID0+IGNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlID0+IGRpZFJl
Y2VpdmVEYXRhCisKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgbV9pc1N5bmNS
ZXF1ZXN0ID0gaXNTeW5jUmVxdWVzdDsKQEAgLTY2LDggKzc1LDggQEAgdm9pZCBDdXJsUmVxdWVz
dDo6c3RhcnQoYm9vbCBpc1N5bmNSZXF1ZXN0KQogICAgICAgICAvLyBGb3IgYXN5bmNocm9ub3Vz
LCB1c2UgQ3VybEpvYk1hbmFnZXIuIEN1cmwgcHJvY2Vzc2VzIHJ1bnMgb24gc3ViIHRocmVhZC4K
ICAgICAgICAgaWYgKHVybC5pc0xvY2FsRmlsZSgpKQogICAgICAgICAgICAgaW52b2tlRGlkUmVj
ZWl2ZVJlc3BvbnNlRm9yRmlsZSh1cmwpOwotCi0gICAgICAgIHN0YXJ0V2l0aEpvYk1hbmFnZXIo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RhcnRXaXRoSm9iTWFuYWdlcigpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIEZvciBzeW5jaHJvbm91cywgZG9lcyBub3QgdXNlIEN1cmxK
b2JNYW5hZ2VyLiBDdXJsIHByb2Nlc3NlcyBydW5zIG9uIG1haW4gdGhyZWFkLgogICAgICAgICAv
LyBjdXJsX2Vhc3lfcGVyZm9ybSBibG9ja3MgdW50aWwgdGhlIHRyYW5zZmVyIGlzIGZpbmlzaGVk
LgpAQCAtMTAxLDIxICsxMTAsMjIgQEAgdm9pZCBDdXJsUmVxdWVzdDo6Y2FuY2VsKCkKICAgICBp
ZiAoIW1faXNTeW5jUmVxdWVzdCkKICAgICAgICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRvbigp
LmNhbmNlbCh0aGlzKTsKIAotICAgIHNldFBhdXNlZChmYWxzZSk7CisgICAgc2V0UmVxdWVzdFBh
dXNlZChmYWxzZSk7CisgICAgc2V0Q2FsbGJhY2tQYXVzZWQoZmFsc2UpOwogfQogCiB2b2lkIEN1
cmxSZXF1ZXN0OjpzdXNwZW5kKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0g
ICAgc2V0UGF1c2VkKHRydWUpOworICAgIHNldFJlcXVlc3RQYXVzZWQodHJ1ZSk7CiB9CiAKIHZv
aWQgQ3VybFJlcXVlc3Q6OnJlc3VtZSgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAotICAgIHNldFBhdXNlZChmYWxzZSk7CisgICAgc2V0UmVxdWVzdFBhdXNlZChmYWxzZSk7CiB9
CiAKIC8qIGB0aGlzYCBpcyBwcm90ZWN0ZWQgaW5zaWRlIHRoaXMgbWV0aG9kLiAqLwpAQCAtMjg4
LDcgKzI5OCw4IEBAIHNpemVfdCBDdXJsUmVxdWVzdDo6ZGlkUmVjZWl2ZUhlYWRlcihTdHJpbmcm
JiBoZWFkZXIpCiAgICAgaWYgKGF1dG8gbWV0cmljcyA9IG1fY3VybEhhbmRsZS0+Z2V0TmV0d29y
a0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzID0gKm1ldHJpY3M7
CiAKLSAgICBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAvLyBSZXNwb25zZSB3aWxs
IHNlbmQgYXQgZGlkUmVjZWl2ZURhdGEoKSBvciBkaWRDb21wbGV0ZVRyYW5zZmVyKCkKKyAgICAv
LyB0byByZWNlaXZlIGNvbnRpbnVlRGlkUmNlaXZlUmVzcG9uc2UoKSBmb3IgYXN5bmNocm9ub3Vz
bHkuCiAKICAgICByZXR1cm4gcmVjZWl2ZUJ5dGVzOwogfQpAQCAtMzAwLDYgKzMxMSwxOSBAQCBz
aXplX3QgQ3VybFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVm
ZmVyKQogICAgIGlmIChtX2NhbmNlbGxlZCkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAo
bmVlZFRvSW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKCkpIHsKKyAgICAgICAgaWYgKCFtX2lzU3lu
Y1JlcXVlc3QpIHsKKyAgICAgICAgICAgIC8vIEZvciBhc3luY2hyb25vdXMsIHBhdXNlIHVudGls
IGNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgaXMgY2FsbGVkLgorICAgICAgICAgICAgc2V0
Q2FsbGJhY2tQYXVzZWQodHJ1ZSk7CisgICAgICAgICAgICBpbnZva2VEaWRSZWNlaXZlUmVzcG9u
c2UoQWN0aW9uOjpSZWNlaXZlRGF0YSk7CisgICAgICAgICAgICByZXR1cm4gQ1VSTF9XUklURUZV
TkNfUEFVU0U7CisgICAgICAgIH0KKworICAgICAgICAvLyBGb3Igc3luY2hyb25vdXMsIGNvbXBs
ZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgaXMgY2FsbGVkIGluIGludm9rZURpZFJlY2VpdmVSZXNw
b25zZSgpLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHBhdXNlIGlzIHVubmVjZXNzYXJ5Lgor
ICAgICAgICBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoQWN0aW9uOjpOb25lKTsKKyAgICB9CisK
ICAgICBhdXRvIHJlY2VpdmVCeXRlcyA9IGJ1ZmZlci0+c2l6ZSgpOwogCiAgICAgaWYgKHJlY2Vp
dmVCeXRlcykgewpAQCAtMzIwLDMwICszNDQsNDIgQEAgdm9pZCBDdXJsUmVxdWVzdDo6ZGlkQ29t
cGxldGVUcmFuc2ZlcihDVVJMY29kZSByZXN1bHQpCiAgICAgfQogCiAgICAgaWYgKHJlc3VsdCA9
PSBDVVJMRV9PSykgewotICAgICAgICBpZiAoYXV0byBtZXRyaWNzID0gbV9jdXJsSGFuZGxlLT5n
ZXROZXR3b3JrTG9hZE1ldHJpY3MoKSkKLSAgICAgICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNz
ID0gKm1ldHJpY3M7Ci0KLSAgICAgICAgY2FsbERlbGVnYXRlKFt0aGlzXShDdXJsUmVxdWVzdERl
bGVnYXRlKiBkZWxlZ2F0ZSkgewotICAgICAgICAgICAgaWYgKGRlbGVnYXRlKQotICAgICAgICAg
ICAgICAgIGRlbGVnYXRlLT5jdXJsRGlkQ29tcGxldGUoKTsKLSAgICAgICAgfSk7CisgICAgICAg
IGlmIChuZWVkVG9JbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoKSkgeworICAgICAgICAgICAgLy8g
UHJvY2Vzc2luZyBvZiBkaWRSZWNlaXZlUmVzcG9uc2UoKSBoYXMgbm90IGJlZW4gY29tcGxldGVk
LiAoRm9yIGV4YW1wbGUsIEhFQUQgbWV0aG9kKQorICAgICAgICAgICAgLy8gV2hlbiBjb21wbGV0
ZURpZFJlY2VpdmVSZXNwb25zZSgpIGlzIGNhbGxlZCwgZGlkQ29tcGxldGVUcmFuc2ZlcigpIHdp
bGwgYmUgY2FsbGVkIGFnYWluLgorCisgICAgICAgICAgICBtX2ZpbmlzaGVkUmVzdWx0Q29kZSA9
IHJlc3VsdDsKKyAgICAgICAgICAgIGludm9rZURpZFJlY2VpdmVSZXNwb25zZShBY3Rpb246OkZp
bmlzaFRyYW5zZmVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChhdXRvIG1l
dHJpY3MgPSBtX2N1cmxIYW5kbGUtPmdldE5ldHdvcmtMb2FkTWV0cmljcygpKQorICAgICAgICAg
ICAgICAgIG1fbmV0d29ya0xvYWRNZXRyaWNzID0gKm1ldHJpY3M7CisKKyAgICAgICAgICAgIGZp
bmFsaXplVHJhbnNmZXIoKTsKKyAgICAgICAgICAgIGNhbGxEZWxlZ2F0ZShbdGhpc10oQ3VybFJl
cXVlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVsZWdhdGUp
CisgICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLT5jdXJsRGlkQ29tcGxldGUoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byByZXNvdXJj
ZUVycm9yID0gUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKHJlc3VsdCwgbV9yZXF1ZXN0LnVybCgp
KTsKICAgICAgICAgaWYgKG1fc3NsVmVyaWZpZXIuc3NsRXJyb3JzKCkpCiAgICAgICAgICAgICBy
ZXNvdXJjZUVycm9yLnNldFNzbEVycm9ycyhtX3NzbFZlcmlmaWVyLnNzbEVycm9ycygpKTsKIAor
ICAgICAgICBmaW5hbGl6ZVRyYW5zZmVyKCk7CiAgICAgICAgIGNhbGxEZWxlZ2F0ZShbdGhpcywg
ZXJyb3IgPSByZXNvdXJjZUVycm9yLmlzb2xhdGVkQ29weSgpXShDdXJsUmVxdWVzdERlbGVnYXRl
KiBkZWxlZ2F0ZSkgewogICAgICAgICAgICAgaWYgKGRlbGVnYXRlKQogICAgICAgICAgICAgICAg
IGRlbGVnYXRlLT5jdXJsRGlkRmFpbFdpdGhFcnJvcihlcnJvcik7CiAgICAgICAgIH0pOwogICAg
IH0KLQotICAgIG1fZm9ybURhdGFTdHJlYW0gPSBudWxscHRyOwotICAgIG1fY3VybEhhbmRsZSA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgQ3VybFJlcXVlc3Q6OmRpZENhbmNlbFRyYW5zZmVyKCkKIHsK
KyAgICBmaW5hbGl6ZVRyYW5zZmVyKCk7Cit9CisKK3ZvaWQgQ3VybFJlcXVlc3Q6OmZpbmFsaXpl
VHJhbnNmZXIoKQorewogICAgIG1fZm9ybURhdGFTdHJlYW0gPSBudWxscHRyOwogICAgIG1fY3Vy
bEhhbmRsZSA9IG51bGxwdHI7CiB9CkBAIC00NTQsMzUgKzQ5MCw5MCBAQCB2b2lkIEN1cmxSZXF1
ZXN0OjppbnZva2VEaWRSZWNlaXZlUmVzcG9uc2VGb3JGaWxlKFVSTCYgdXJsKQogICAgIGlmICgh
bV9pc1N5bmNSZXF1ZXN0KSB7CiAgICAgICAgIC8vIERpZFJlY2VpdmVSZXNwb25zZSBtdXN0IG5v
dCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkKICAgICAgICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRv
bigpLmNhbGxPbkpvYlRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsK
LSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmludm9rZURpZFJlY2VpdmVSZXNwb25zZSgpOwor
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKEFjdGlv
bjo6U3RhcnRUcmFuc2Zlcik7CiAgICAgICAgIH0pOwotICAgIH0gZWxzZQotICAgICAgICBpbnZv
a2VEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGb3Igc3lu
Y2hyb25vdXMsIGNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgaXMgY2FsbGVkIGluIHBsYXRm
b3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpLgorICAgICAgICBpbnZv
a2VEaWRSZWNlaXZlUmVzcG9uc2UoQWN0aW9uOjpOb25lKTsKKyAgICB9CiB9CiAKLXZvaWQgQ3Vy
bFJlcXVlc3Q6Omludm9rZURpZFJlY2VpdmVSZXNwb25zZSgpCit2b2lkIEN1cmxSZXF1ZXN0Ojpp
bnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoQWN0aW9uIGJlaGF2aW9yQWZ0ZXJJbnZva2UpCiB7Cisg
ICAgQVNTRVJUKCFtX2RpZE5vdGlmeVJlc3BvbnNlKTsKKworICAgIG1fZGlkTm90aWZ5UmVzcG9u
c2UgPSB0cnVlOworICAgIG1fYWN0aW9uQWZ0ZXJJbnZva2UgPSBiZWhhdmlvckFmdGVySW52b2tl
OworCiAgICAgY2FsbERlbGVnYXRlKFt0aGlzLCByZXNwb25zZSA9IG1fcmVzcG9uc2UuaXNvbGF0
ZWRDb3B5KCldKEN1cmxSZXF1ZXN0RGVsZWdhdGUqIGRlbGVnYXRlKSB7CiAgICAgICAgIGlmIChk
ZWxlZ2F0ZSkKICAgICAgICAgICAgIGRlbGVnYXRlLT5jdXJsRGlkUmVjZWl2ZVJlc3BvbnNlKHJl
c3BvbnNlKTsKICAgICB9KTsKIH0KIAotdm9pZCBDdXJsUmVxdWVzdDo6c2V0UGF1c2VkKGJvb2wg
cGF1c2VkKQordm9pZCBDdXJsUmVxdWVzdDo6Y29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2UoKQog
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fZGlkTm90aWZ5UmVz
cG9uc2UpOworICAgIEFTU0VSVCghbV9kaWRSZXR1cm5Gcm9tTm90aWZ5KTsKKwogICAgIGlmICht
X2NhbmNlbGxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHBhdXNlZCA9PSBtX2lzUGF1
c2VkKQorICAgIG1fZGlkUmV0dXJuRnJvbU5vdGlmeSA9IHRydWU7CisKKyAgICBpZiAobV9hY3Rp
b25BZnRlckludm9rZSA9PSBBY3Rpb246OlJlY2VpdmVEYXRhKSB7CisgICAgICAgIC8vIFJlc3Vt
ZSB0cmFuc2ZlcgorICAgICAgICBzZXRDYWxsYmFja1BhdXNlZChmYWxzZSk7CisgICAgfSBlbHNl
IGlmIChtX2FjdGlvbkFmdGVySW52b2tlID09IEFjdGlvbjo6U3RhcnRUcmFuc2ZlcikgeworICAg
ICAgICAvLyBTdGFydCB0cmFuc2ZlciBmb3IgZmlsZSBzY2hlbWUKKyAgICAgICAgc3RhcnRXaXRo
Sm9iTWFuYWdlcigpOworICAgIH0gZWxzZSBpZiAobV9hY3Rpb25BZnRlckludm9rZSA9PSBBY3Rp
b246OkZpbmlzaFRyYW5zZmVyKSB7CisgICAgICAgIC8vIEtlZXAgdGhlIGNhbGxpbmcgdGhyZWFk
IG9mIGRpZENvbXBsZXRlVHJhbnNmZXIoKQorICAgICAgICBpZiAoIW1faXNTeW5jUmVxdWVzdCkg
eworICAgICAgICAgICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRvbigpLmNhbGxPbkpvYlRocmVh
ZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmaW5pc2hlZFJlc3VsdENvZGUgPSBt
X2ZpbmlzaGVkUmVzdWx0Q29kZV0oKSB7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
ZGlkQ29tcGxldGVUcmFuc2ZlcihmaW5pc2hlZFJlc3VsdENvZGUpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZGlkQ29tcGxldGVUcmFuc2ZlcihtX2Zpbmlz
aGVkUmVzdWx0Q29kZSk7CisgICAgfQorfQorCit2b2lkIEN1cmxSZXF1ZXN0OjpzZXRSZXF1ZXN0
UGF1c2VkKGJvb2wgcGF1c2VkKQoreworICAgIGF1dG8gd2FzUGF1c2VkID0gaXNQYXVzZWQoKTsK
KworICAgIG1faXNQYXVzZWRPZlJlcXVlc3QgPSBwYXVzZWQ7CisKKyAgICBpZiAoaXNQYXVzZWQo
KSA9PSB3YXNQYXVzZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faXNQYXVzZWQgPSBwYXVz
ZWQ7CisgICAgcGF1c2VkU3RhdHVzQ2hhbmdlZCgpOworfQogCi0gICAgaWYgKCFtX2N1cmxIYW5k
bGUpCit2b2lkIEN1cmxSZXF1ZXN0OjpzZXRDYWxsYmFja1BhdXNlZChib29sIHBhdXNlZCkKK3sK
KyAgICBhdXRvIHdhc1BhdXNlZCA9IGlzUGF1c2VkKCk7CisKKyAgICBtX2lzUGF1c2VkT2ZDYWxs
YmFjayA9IHBhdXNlZDsKKworICAgIGlmIChpc1BhdXNlZCgpID09IHdhc1BhdXNlZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gSW4gdGhpcyBjYXNlLCBQQVVTRSB3aWxsIGJlIGV4ZWN1dGVk
IHdpdGhpbiBkaWRSZWNlaXZlRGF0YSgpLiBDaGFuZ2UgcGF1c2Ugc3RhdGUgYW5kIHJldHVybi4K
KyAgICBpZiAocGF1c2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBwYXVzZWRTdGF0dXNDaGFu
Z2VkKCk7Cit9CisKK3ZvaWQgQ3VybFJlcXVlc3Q6OnBhdXNlZFN0YXR1c0NoYW5nZWQoKQorewor
ICAgIGlmIChtX2NhbmNlbGxlZCB8fCAhbV9jdXJsSGFuZGxlKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoIW1faXNTeW5jUmVxdWVzdCAmJiBpc01haW5UaHJlYWQoKSkgewotICAgICAgICBD
dXJsSm9iTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FsbE9uSm9iVGhyZWFkKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHBhdXNlZCA9IG1faXNQYXVzZWRdKCkgeworICAgICAgICBDdXJs
Sm9iTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FsbE9uSm9iVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHBhdXNlZCA9IGlzUGF1c2VkKCldKCkgewogICAgICAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fY2FuY2VsbGVkKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtNDkzLDggKzU4NCw4IEBAIHZvaWQgQ3VybFJlcXVlc3Q6OnNldFBhdXNlZChib29sIHBhdXNl
ZCkKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0
byBlcnJvciA9IG1fY3VybEhhbmRsZS0+cGF1c2UobV9pc1BhdXNlZCA/IENVUkxQQVVTRV9BTEwg
OiBDVVJMUEFVU0VfQ09OVCk7Ci0gICAgICAgIGlmICgoZXJyb3IgIT0gQ1VSTEVfT0spICYmICFt
X2lzUGF1c2VkKQorICAgICAgICBhdXRvIGVycm9yID0gbV9jdXJsSGFuZGxlLT5wYXVzZShpc1Bh
dXNlZCgpID8gQ1VSTFBBVVNFX0FMTCA6IENVUkxQQVVTRV9DT05UKTsKKyAgICAgICAgaWYgKChl
cnJvciAhPSBDVVJMRV9PSykgJiYgIWlzUGF1c2VkKCkpCiAgICAgICAgICAgICBjYW5jZWwoKTsK
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsUmVxdWVzdC5oCmluZGV4IGU4YTljMzY3YzQzLi42MWYyZTIzYTM4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTU2
LDkgKzU2LDE5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTeW5jUmVxdWVzdCgpIHsgcmV0dXJu
IG1faXNTeW5jUmVxdWVzdDsgfQogCisgICAgLy8gUHJvY2Vzc2luZyBmb3IgRGlkUmVjZWl2ZVJl
c3BvbnNlCisgICAgdm9pZCBjb21wbGV0ZURpZFJlY2VpdmVSZXNwb25zZSgpOworCiAgICAgTmV0
d29ya0xvYWRNZXRyaWNzIGdldE5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJuIG1fbmV0d29y
a0xvYWRNZXRyaWNzLmlzb2xhdGVkQ29weSgpOyB9CiAKIHByaXZhdGU6CisgICAgZW51bSBjbGFz
cyBBY3Rpb24geworICAgICAgICBOb25lLAorICAgICAgICBSZWNlaXZlRGF0YSwKKyAgICAgICAg
U3RhcnRUcmFuc2ZlciwKKyAgICAgICAgRmluaXNoVHJhbnNmZXIKKyAgICB9OworCiAgICAgdm9p
ZCByZXRhaW4oKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdm9pZCByZWxlYXNlKCkgb3ZlcnJp
ZGUgeyBkZXJlZigpOyB9CiAgICAgQ1VSTCogaGFuZGxlKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9j
dXJsSGFuZGxlID8gbV9jdXJsSGFuZGxlLT5oYW5kbGUoKSA6IG51bGxwdHI7IH0KQEAgLTc2LDYg
Kzg2LDcgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1
ZmZlcj4mJik7CiAgICAgdm9pZCBkaWRDb21wbGV0ZVRyYW5zZmVyKENVUkxjb2RlKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpZENhbmNlbFRyYW5zZmVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5h
bGl6ZVRyYW5zZmVyKCk7CiAKICAgICAvLyBGb3IgUE9TVCBhbmQgUFVUIG1ldGhvZCAKICAgICB2
b2lkIHJlc29sdmVCbG9iUmVmZXJlbmNlcyhSZXNvdXJjZVJlcXVlc3QmKTsKQEAgLTgzLDEwICs5
NCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0dXBQVVQoUmVzb3VyY2VSZXF1ZXN0Jik7CiAg
ICAgdm9pZCBzZXR1cEZvcm1EYXRhKFJlc291cmNlUmVxdWVzdCYsIGJvb2wpOwogCi0gICAgLy8g
UHJvY2Vzc2luZyBmb3IgRGlkUmVzb3VyY2VSZXNwb25zZQorICAgIC8vIFByb2Nlc3NpbmcgZm9y
IERpZFJlY2VpdmVSZXNwb25zZQorICAgIGJvb2wgbmVlZFRvSW52b2tlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCkgY29uc3QgeyByZXR1cm4gIW1fZGlkTm90aWZ5UmVzcG9uc2UgfHwgIW1fZGlkUmV0dXJu
RnJvbU5vdGlmeTsgfQogICAgIHZvaWQgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yRmlsZShV
UkwmKTsKLSAgICB2b2lkIGludm9rZURpZFJlY2VpdmVSZXNwb25zZSgpOwotICAgIHZvaWQgc2V0
UGF1c2VkKGJvb2wpOworICAgIHZvaWQgaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKEFjdGlvbik7
CisgICAgdm9pZCBzZXRSZXF1ZXN0UGF1c2VkKGJvb2wpOworICAgIHZvaWQgc2V0Q2FsbGJhY2tQ
YXVzZWQoYm9vbCk7CisgICAgdm9pZCBwYXVzZWRTdGF0dXNDaGFuZ2VkKCk7CisgICAgYm9vbCBp
c1BhdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYXVzZWRPZlJlcXVlc3QgfHwgbV9pc1BhdXNl
ZE9mQ2FsbGJhY2s7IH07CiAKICAgICAvLyBDYWxsYmFjayBmdW5jdGlvbnMgZm9yIGN1cmwKICAg
ICBzdGF0aWMgQ1VSTGNvZGUgd2lsbFNldHVwU3NsQ3R4Q2FsbGJhY2soQ1VSTCosIHZvaWQqLCB2
b2lkKik7CkBAIC0xMTEsNyArMTI2LDEzIEBAIHByaXZhdGU6CiAgICAgQ3VybFNTTFZlcmlmaWVy
IG1fc3NsVmVyaWZpZXI7CiAgICAgQ3VybFJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKLSAgICBib29s
IG1faXNQYXVzZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9kaWROb3RpZnlSZXNwb25zZSB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2RpZFJldHVybkZyb21Ob3RpZnkgeyBmYWxzZSB9OworICAgIEFj
dGlvbiBtX2FjdGlvbkFmdGVySW52b2tlIHsgQWN0aW9uOjpOb25lIH07CisgICAgQ1VSTGNvZGUg
bV9maW5pc2hlZFJlc3VsdENvZGUgeyBDVVJMRV9PSyB9OworCisgICAgYm9vbCBtX2lzUGF1c2Vk
T2ZSZXF1ZXN0IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQYXVzZWRPZkNhbGxiYWNrIHsgZmFs
c2UgfTsKIAogICAgIE5ldHdvcmtMb2FkTWV0cmljcyBtX25ldHdvcmtMb2FkTWV0cmljczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDJlN2YwY2ZlYWIxLi5hMzRiMzAxZGNkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTIxMywxMCArMjEzLDEwIEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBB
dXRoZW50aWNhCiAgICAgaWYgKGNoYWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChkLT5tX2RlbGVnYXRlKQotICAgICAgICBkLT5t
X2RlbGVnYXRlLT5zZXRBdXRoZW50aWNhdGlvbigiIiwgIiIpOwotCiAgICAgY2xlYXJBdXRoZW50
aWNhdGlvbigpOworCisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Cisg
ICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSkpOwog
fQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQpAQCAtMjU5LDcgKzI1OSwxOCBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleAogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworCisgICAgaWYgKGQtPm1fZGVsZWdhdGUpCisgICAgICAgIGQtPm1fZGVs
ZWdhdGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VI
YW5kbGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChkLT5tX2RlbGVnYXRlKQor
ICAgICAgICBkLT5tX2RlbGVnYXRlLT5wbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNl
aXZlUmVzcG9uc2UoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsU2Vu
ZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsRGVsZWdhdGUuY3BwCmluZGV4IGZmZjBmZWZjNGU4Li4wZmFiN2JhMzhkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3Vy
bERlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCkBAIC0yMjcsNyArMjI3LDkgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y3VybERpZFJlY2VpdmVSZXNwb25zZShjb25zdCBD
dXJsUmVzcG9uc2UmIHJlY2UKICAgICAgICAgfQogCiAgICAgICAgIEN1cmxDYWNoZU1hbmFnZXI6
OmdldEluc3RhbmNlKCkuZGlkUmVjZWl2ZVJlc3BvbnNlKCptX2hhbmRsZSwgcmVzcG9uc2UoKSk7
Ci0gICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKG1faGFuZGxl
LCBSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkpKTsKKworICAgICAgICBhdXRvIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCptX2hhbmRsZSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSgpKSk7CiAgICAgfQogfQogCkBAIC0y
NzYsOSArMjc4LDM0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmN1cmxEaWRG
YWlsV2l0aEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291CiAgICAgbV9oYW5kbGUtPmNs
aWVudCgpLT5kaWRGYWlsKG1faGFuZGxlLCByZXNvdXJjZUVycm9yKTsKIH0KIAordm9pZCBSZXNv
dXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2
ZVJlc3BvbnNlKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OnBsYXRm
b3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKworICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2Uo
KTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y29udGludWVBZnRlckRp
ZFJlY2VpdmVSZXNwb25zZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAg
IC8vIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlIG1pZ2h0IGNhbmNlbCB0aGUgbG9hZC4KKyAg
ICBpZiAoY2FuY2VsbGVkT3JDbGllbnRsZXNzKCkgfHwgIW1fY3VybFJlcXVlc3QpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY3VybFJlcXVlc3QtPmNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNl
KCk7Cit9CisKIGJvb2wgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OnNob3VsZFJlZGlyZWN0
QXNHRVQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNyb3NzT3JpZ2luKQog
ewotICAgIGlmICgocmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIkdFVCIpIHx8IChyZXF1ZXN0Lmh0
dHBNZXRob2QoKSA9PSAiSEVBRCIpKQorICAgIGlmIChyZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAi
R0VUIiB8fCByZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiSEVBRCIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5oCmluZGV4IDczNjRhNTRiMDdlLi4wZTQ4
MTA3N2VmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmgKQEAgLTU1LDYgKzU1
LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaFN5bmNocm9ub3VzSm9iKCk7CiAKKyAg
ICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgdm9pZCBwbGF0Zm9ybUNv
bnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKwogICAgIHZvaWQgY29udGlu
dWVXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYpOwogCiBwcml2YXRlOgpAQCAtNzEs
NiArNzQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY3VybERpZENvbXBsZXRlKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjdXJsRGlkRmFpbFdpdGhFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJikgb3Zl
cnJpZGU7CiAKKyAgICB2b2lkIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKwog
ICAgIGJvb2wgc2hvdWxkUmVkaXJlY3RBc0dFVChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNyb3NzT3JpZ2luKTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCgpOwogICAgIHZvaWQgY29u
dGludWVBZnRlcldpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZUN1
cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVz
cG9uc2VDdXJsLmNwcAppbmRleCA4OWI3NmQ0M2E1ZC4uMDgxOTc0ZGRjZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlQ3Vy
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
UmVzcG9uc2VDdXJsLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIFN0cmluZyBSZXNvdXJjZVJlc3Bv
bnNlOjpwbGF0Zm9ybVN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKIGJvb2wgUmVzb3VyY2VSZXNw
b25zZTo6c2hvdWxkUmVkaXJlY3QoKQogewogICAgIGF1dG8gc3RhdHVzQ29kZSA9IGh0dHBTdGF0
dXNDb2RlKCk7Ci0gICAgaWYgKChzdGF0dXNDb2RlIDwgMzAwKSB8fCAoNDAwIDw9IHN0YXR1c0Nv
ZGUpKQorICAgIGlmIChzdGF0dXNDb2RlIDwgMzAwIHx8IDQwMCA8PSBzdGF0dXNDb2RlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBTb21lIDN4eCBzdGF0dXMgY29kZXMgYXJlbid0
IGFjdHVhbGx5IHJlZGlyZWN0cy4KQEAgLTE1MSwyNyArMTUxLDI3IEBAIGJvb2wgUmVzb3VyY2VS
ZXNwb25zZTo6c2hvdWxkUmVkaXJlY3QoKQogCiBib29sIFJlc291cmNlUmVzcG9uc2U6OmlzTW92
ZWRQZXJtYW5lbnRseSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChodHRwU3RhdHVzQ29kZSgpID09
IDMwMSk7CisgICAgcmV0dXJuIGh0dHBTdGF0dXNDb2RlKCkgPT0gMzAxOwogfQogCiBib29sIFJl
c291cmNlUmVzcG9uc2U6OmlzRm91bmQoKSBjb25zdAogewotICAgIHJldHVybiAoaHR0cFN0YXR1
c0NvZGUoKSA9PSAzMDIpOworICAgIHJldHVybiBodHRwU3RhdHVzQ29kZSgpID09IDMwMjsKIH0K
IAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjppc1NlZU90aGVyKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gKGh0dHBTdGF0dXNDb2RlKCkgPT0gMzAzKTsKKyAgICByZXR1cm4gaHR0cFN0YXR1c0NvZGUo
KSA9PSAzMDM7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZTo6aXNOb3RNb2RpZmllZCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIChodHRwU3RhdHVzQ29kZSgpID09IDMwNCk7CisgICAgcmV0dXJu
IGh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogfQogCiBib29sIFJlc291cmNlUmVzcG9uc2U6Omlz
VW5hdXRob3JpemVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKGh0dHBTdGF0dXNDb2RlKCkgPT0g
NDAxKTsKKyAgICByZXR1cm4gaHR0cFN0YXR1c0NvZGUoKSA9PSA0MDE7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322435</attachid>
            <date>2017-10-02 14:14:50 -0700</date>
            <delta_ts>2017-10-02 16:34:22 -0700</delta_ts>
            <desc>fix</desc>
            <filename>173964-3.diff</filename>
            <type>text/plain</type>
            <size>20492</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZWI0Yzk3MmY4My4uZWMxNThhYjJkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxNy0xMC0wMiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIEltcGxlbWVudCBtaXNzaW5nIGFzeW5jIG1ldGhvZCBp
biBSZWNvdXJjZUhhbmRsZSBhbmQgbWFrZSBpdCBhY3R1YWxseSBhc3luYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczOTY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250
aW51ZVdpbGxTZW5kUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpzdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxSZXF1ZXN0OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0
OjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmRpZFJlY2VpdmVIZWFk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpkaWRDb21wbGV0ZVRyYW5zZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpkaWRDYW5jZWxUcmFuc2Zlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsUmVxdWVzdDo6ZmluYWxpemVUcmFuc2Zlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJsUmVxdWVzdDo6aW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yRmlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6aW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0Ojpjb21wbGV0ZURpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c2V0UmVxdWVzdFBhdXNlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c2V0Q2FsbGJhY2tQYXVzZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OnBhdXNlZFN0YXR1c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybFJlcXVlc3Q6OnNldFBhdXNlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVz
dDo6bmVlZFRvSW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxSZXF1ZXN0Ojppc1BhdXNlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51
ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmN1cmxEaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERl
bGVnYXRlOjpwbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmNvbnRpbnVlQWZ0
ZXJEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVD
dXJsRGVsZWdhdGU6OnNob3VsZFJlZGlyZWN0QXNHRVQpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlQ3VybC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpzaG91bGRSZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlOjppc01vdmVkUGVybWFuZW50bHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6aXNGb3VuZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjppc1NlZU90aGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OmlzTm90TW9kaWZpZWQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZTo6aXNVbmF1dGhvcml6ZWQgY29uc3QpOgorCiAyMDE3LTEw
LTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFJl
bmRlclB0ciBhIHR5cGUgYWxpYXMgb2Ygc3RkOjp1bmlxdWVfcHRyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDQ1ZGE4ODE4
NzY2Li5iZWJjZjg4ZGJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE3MCwyNyArMTcwLDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkK
ICAgICB9CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9O
KSAmJiAhVVNFKFNPVVApICYmICFVU0UoQ1VSTCkKLS8vIFJlc291cmNlSGFuZGxlIG5ldmVyIHVz
ZXMgYXN5bmMgY2xpZW50IGNhbGxzIG9uIHRoZXNlIHBsYXRmb3JtcyB5ZXQuCi12b2lkIFJlc291
cmNlSGFuZGxlOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJikKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotI2lm
IFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi12b2lkIFJlc291cmNlSGFuZGxl
Ojpjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2VuZGlmCi0jZW5kaWYKLQotI2lmICFVU0UoU09V
UCkKKyNpZiAhVVNFKFNPVVApICYmICFVU0UoQ1VSTCkKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBs
YXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpCiB7CiAgICAgLy8g
RG8gbm90aGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybFJlcXVlc3QuY3BwCmluZGV4IDFjODRiZGJjY2UxLi5hZGVhNzNjN2Y3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3Qu
Y3BwCkBAIC01Niw2ICs1NiwxNSBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpzZXRVc2VyUGFzcyhjb25z
dCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCiAKIHZvaWQgQ3VybFJlcXVl
c3Q6OnN0YXJ0KGJvb2wgaXNTeW5jUmVxdWVzdCkKIHsKKyAgICAvLyBUaGUgcGF1c2luZyBvZiB0
cmFuc2ZlciBkb2VzIG5vdCB3b3JrIHdpdGggcHJvdG9jb2xzLCBsaWtlIGZpbGU6Ly8uCisgICAg
Ly8gVGhlcmVmb3JlLCBQQVVTRSBjYW4gbm90IGJlIGRvbmUgaW4gZGlkUmVjZWl2ZURhdGEoKS4K
KyAgICAvLyBJdCBtZWFucyB0aGF0IHRoZSBzYW1lIGxvZ2ljIGFzIGh0dHA6Ly8gY2FuIG5vdCBi
ZSB1c2VkLgorICAgIC8vIEluIHRoZSBmaWxlIHNjaGVtZSwgaW52b2tlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCkgaXMgZG9uZSBmaXJzdC4gCisgICAgLy8gVGhlbiBTdGFydFdpdGhKb2JNYW5hZ2VyIGlz
IGNhbGxlZCB3aXRoIGNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlIGFuZCBzdGFydCB0cmFuc2Zl
ciB3aXRoIGxpYmN1cmwuCisKKyAgICAvLyBodHRwIDogZGlkUmVjZWl2ZUhlYWRlciA9PiBkaWRS
ZWNlaXZlRGF0YVtQQVVTRV0gPT4gaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlID0+IChNYWluVGhy
ZWFkKWN1cmxEaWRSZWNlaXZlUmVzcG9uc2UgPT4gY29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2Vb
UkVTVU1FXSA9PiBkaWRSZWNlaXZlRGF0YQorICAgIC8vIGZpbGUgOiBpbnZva2VEaWRSZWNlaXZl
UmVzcG9uc2VGb3JGaWxlID0+IChNYWluVGhyZWFkKWN1cmxEaWRSZWNlaXZlUmVzcG9uc2UgPT4g
Y29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2UgPT4gZGlkUmVjZWl2ZURhdGEKKwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKICAgICBtX2lzU3luY1JlcXVlc3QgPSBpc1N5bmNSZXF1ZXN0
OwpAQCAtNjYsOCArNzUsOCBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpzdGFydChib29sIGlzU3luY1Jl
cXVlc3QpCiAgICAgICAgIC8vIEZvciBhc3luY2hyb25vdXMsIHVzZSBDdXJsSm9iTWFuYWdlci4g
Q3VybCBwcm9jZXNzZXMgcnVucyBvbiBzdWIgdGhyZWFkLgogICAgICAgICBpZiAodXJsLmlzTG9j
YWxGaWxlKCkpCiAgICAgICAgICAgICBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2VGb3JGaWxlKHVy
bCk7Ci0KLSAgICAgICAgc3RhcnRXaXRoSm9iTWFuYWdlcigpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBzdGFydFdpdGhKb2JNYW5hZ2VyKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8g
Rm9yIHN5bmNocm9ub3VzLCBkb2VzIG5vdCB1c2UgQ3VybEpvYk1hbmFnZXIuIEN1cmwgcHJvY2Vz
c2VzIHJ1bnMgb24gbWFpbiB0aHJlYWQuCiAgICAgICAgIC8vIGN1cmxfZWFzeV9wZXJmb3JtIGJs
b2NrcyB1bnRpbCB0aGUgdHJhbnNmZXIgaXMgZmluaXNoZWQuCkBAIC0xMDEsMjEgKzExMCwyMiBA
QCB2b2lkIEN1cmxSZXF1ZXN0OjpjYW5jZWwoKQogICAgIGlmICghbV9pc1N5bmNSZXF1ZXN0KQog
ICAgICAgICBDdXJsSm9iTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FuY2VsKHRoaXMpOwogCi0gICAg
c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBzZXRSZXF1ZXN0UGF1c2VkKGZhbHNlKTsKKyAgICBzZXRD
YWxsYmFja1BhdXNlZChmYWxzZSk7CiB9CiAKIHZvaWQgQ3VybFJlcXVlc3Q6OnN1c3BlbmQoKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzZXRQYXVzZWQodHJ1ZSk7Cisg
ICAgc2V0UmVxdWVzdFBhdXNlZCh0cnVlKTsKIH0KIAogdm9pZCBDdXJsUmVxdWVzdDo6cmVzdW1l
KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgc2V0UGF1c2VkKGZhbHNl
KTsKKyAgICBzZXRSZXF1ZXN0UGF1c2VkKGZhbHNlKTsKIH0KIAogLyogYHRoaXNgIGlzIHByb3Rl
Y3RlZCBpbnNpZGUgdGhpcyBtZXRob2QuICovCkBAIC0yODgsNyArMjk4LDggQEAgc2l6ZV90IEN1
cmxSZXF1ZXN0OjpkaWRSZWNlaXZlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKICAgICBpZiAoYXV0
byBtZXRyaWNzID0gbV9jdXJsSGFuZGxlLT5nZXROZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAg
ICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MgPSAqbWV0cmljczsKIAotICAgIGludm9rZURpZFJlY2Vp
dmVSZXNwb25zZSgpOworICAgIC8vIFJlc3BvbnNlIHdpbGwgc2VuZCBhdCBkaWRSZWNlaXZlRGF0
YSgpIG9yIGRpZENvbXBsZXRlVHJhbnNmZXIoKQorICAgIC8vIHRvIHJlY2VpdmUgY29udGludWVE
aWRSY2VpdmVSZXNwb25zZSgpIGZvciBhc3luY2hyb25vdXNseS4KIAogICAgIHJldHVybiByZWNl
aXZlQnl0ZXM7CiB9CkBAIC0zMDAsNiArMzExLDE5IEBAIHNpemVfdCBDdXJsUmVxdWVzdDo6ZGlk
UmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgaWYgKG1fY2FuY2Vs
bGVkKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmIChuZWVkVG9JbnZva2VEaWRSZWNlaXZl
UmVzcG9uc2UoKSkgeworICAgICAgICBpZiAoIW1faXNTeW5jUmVxdWVzdCkgeworICAgICAgICAg
ICAgLy8gRm9yIGFzeW5jaHJvbm91cywgcGF1c2UgdW50aWwgY29tcGxldGVEaWRSZWNlaXZlUmVz
cG9uc2UoKSBpcyBjYWxsZWQuCisgICAgICAgICAgICBzZXRDYWxsYmFja1BhdXNlZCh0cnVlKTsK
KyAgICAgICAgICAgIGludm9rZURpZFJlY2VpdmVSZXNwb25zZShBY3Rpb246OlJlY2VpdmVEYXRh
KTsKKyAgICAgICAgICAgIHJldHVybiBDVVJMX1dSSVRFRlVOQ19QQVVTRTsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIEZvciBzeW5jaHJvbm91cywgY29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2Uo
KSBpcyBjYWxsZWQgaW4gaW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKCkuCisgICAgICAgIC8vIElu
IHRoaXMgY2FzZSwgcGF1c2UgaXMgdW5uZWNlc3NhcnkuCisgICAgICAgIGludm9rZURpZFJlY2Vp
dmVSZXNwb25zZShBY3Rpb246Ok5vbmUpOworICAgIH0KKwogICAgIGF1dG8gcmVjZWl2ZUJ5dGVz
ID0gYnVmZmVyLT5zaXplKCk7CiAKICAgICBpZiAocmVjZWl2ZUJ5dGVzKSB7CkBAIC0zMjAsMzAg
KzM0NCw0MiBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpkaWRDb21wbGV0ZVRyYW5zZmVyKENVUkxjb2Rl
IHJlc3VsdCkKICAgICB9CiAKICAgICBpZiAocmVzdWx0ID09IENVUkxFX09LKSB7Ci0gICAgICAg
IGlmIChhdXRvIG1ldHJpY3MgPSBtX2N1cmxIYW5kbGUtPmdldE5ldHdvcmtMb2FkTWV0cmljcygp
KQotICAgICAgICAgICAgbV9uZXR3b3JrTG9hZE1ldHJpY3MgPSAqbWV0cmljczsKLQotICAgICAg
ICBjYWxsRGVsZWdhdGUoW3RoaXNdKEN1cmxSZXF1ZXN0RGVsZWdhdGUqIGRlbGVnYXRlKSB7Ci0g
ICAgICAgICAgICBpZiAoZGVsZWdhdGUpCi0gICAgICAgICAgICAgICAgZGVsZWdhdGUtPmN1cmxE
aWRDb21wbGV0ZSgpOwotICAgICAgICB9KTsKKyAgICAgICAgaWYgKG5lZWRUb0ludm9rZURpZFJl
Y2VpdmVSZXNwb25zZSgpKSB7CisgICAgICAgICAgICAvLyBQcm9jZXNzaW5nIG9mIGRpZFJlY2Vp
dmVSZXNwb25zZSgpIGhhcyBub3QgYmVlbiBjb21wbGV0ZWQuIChGb3IgZXhhbXBsZSwgSEVBRCBt
ZXRob2QpCisgICAgICAgICAgICAvLyBXaGVuIGNvbXBsZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKCkg
aXMgY2FsbGVkLCBkaWRDb21wbGV0ZVRyYW5zZmVyKCkgd2lsbCBiZSBjYWxsZWQgYWdhaW4uCisK
KyAgICAgICAgICAgIG1fZmluaXNoZWRSZXN1bHRDb2RlID0gcmVzdWx0OworICAgICAgICAgICAg
aW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKEFjdGlvbjo6RmluaXNoVHJhbnNmZXIpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGF1dG8gbWV0cmljcyA9IG1fY3VybEhhbmRsZS0+
Z2V0TmV0d29ya0xvYWRNZXRyaWNzKCkpCisgICAgICAgICAgICAgICAgbV9uZXR3b3JrTG9hZE1l
dHJpY3MgPSAqbWV0cmljczsKKworICAgICAgICAgICAgZmluYWxpemVUcmFuc2ZlcigpOworICAg
ICAgICAgICAgY2FsbERlbGVnYXRlKFt0aGlzXShDdXJsUmVxdWVzdERlbGVnYXRlKiBkZWxlZ2F0
ZSkgeworICAgICAgICAgICAgICAgIGlmIChkZWxlZ2F0ZSkKKyAgICAgICAgICAgICAgICAgICAg
ZGVsZWdhdGUtPmN1cmxEaWRDb21wbGV0ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
ICAgICB9IGVsc2UgewogICAgICAgICBhdXRvIHJlc291cmNlRXJyb3IgPSBSZXNvdXJjZUVycm9y
OjpodHRwRXJyb3IocmVzdWx0LCBtX3JlcXVlc3QudXJsKCkpOwogICAgICAgICBpZiAobV9zc2xW
ZXJpZmllci5zc2xFcnJvcnMoKSkKICAgICAgICAgICAgIHJlc291cmNlRXJyb3Iuc2V0U3NsRXJy
b3JzKG1fc3NsVmVyaWZpZXIuc3NsRXJyb3JzKCkpOwogCisgICAgICAgIGZpbmFsaXplVHJhbnNm
ZXIoKTsKICAgICAgICAgY2FsbERlbGVnYXRlKFt0aGlzLCBlcnJvciA9IHJlc291cmNlRXJyb3Iu
aXNvbGF0ZWRDb3B5KCldKEN1cmxSZXF1ZXN0RGVsZWdhdGUqIGRlbGVnYXRlKSB7CiAgICAgICAg
ICAgICBpZiAoZGVsZWdhdGUpCiAgICAgICAgICAgICAgICAgZGVsZWdhdGUtPmN1cmxEaWRGYWls
V2l0aEVycm9yKGVycm9yKTsKICAgICAgICAgfSk7CiAgICAgfQotCi0gICAgbV9mb3JtRGF0YVN0
cmVhbSA9IG51bGxwdHI7Ci0gICAgbV9jdXJsSGFuZGxlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBD
dXJsUmVxdWVzdDo6ZGlkQ2FuY2VsVHJhbnNmZXIoKQogeworICAgIGZpbmFsaXplVHJhbnNmZXIo
KTsKK30KKwordm9pZCBDdXJsUmVxdWVzdDo6ZmluYWxpemVUcmFuc2ZlcigpCit7CiAgICAgbV9m
b3JtRGF0YVN0cmVhbSA9IG51bGxwdHI7CiAgICAgbV9jdXJsSGFuZGxlID0gbnVsbHB0cjsKIH0K
QEAgLTQ1NCwzNSArNDkwLDkwIEBAIHZvaWQgQ3VybFJlcXVlc3Q6Omludm9rZURpZFJlY2VpdmVS
ZXNwb25zZUZvckZpbGUoVVJMJiB1cmwpCiAgICAgaWYgKCFtX2lzU3luY1JlcXVlc3QpIHsKICAg
ICAgICAgLy8gRGlkUmVjZWl2ZVJlc3BvbnNlIG11c3Qgbm90IGJlIGNhbGxlZCBpbW1lZGlhdGVs
eQogICAgICAgICBDdXJsSm9iTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FsbE9uSm9iVGhyZWFkKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+aW52b2tlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5pbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoQWN0aW9uOjpTdGFydFRyYW5zZmVyKTsKICAg
ICAgICAgfSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGludm9rZURpZFJlY2VpdmVSZXNwb25zZSgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZvciBzeW5jaHJvbm91cywgY29tcGxldGVEaWRS
ZWNlaXZlUmVzcG9uc2UoKSBpcyBjYWxsZWQgaW4gcGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3Vz
RGlkUmVjZWl2ZVJlc3BvbnNlKCkuCisgICAgICAgIGludm9rZURpZFJlY2VpdmVSZXNwb25zZShB
Y3Rpb246Ok5vbmUpOworICAgIH0KIH0KIAotdm9pZCBDdXJsUmVxdWVzdDo6aW52b2tlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkKK3ZvaWQgQ3VybFJlcXVlc3Q6Omludm9rZURpZFJlY2VpdmVSZXNwb25z
ZShBY3Rpb24gYmVoYXZpb3JBZnRlckludm9rZSkKIHsKKyAgICBBU1NFUlQoIW1fZGlkTm90aWZ5
UmVzcG9uc2UpOworCisgICAgbV9kaWROb3RpZnlSZXNwb25zZSA9IHRydWU7CisgICAgbV9hY3Rp
b25BZnRlckludm9rZSA9IGJlaGF2aW9yQWZ0ZXJJbnZva2U7CisKICAgICBjYWxsRGVsZWdhdGUo
W3RoaXMsIHJlc3BvbnNlID0gbV9yZXNwb25zZS5pc29sYXRlZENvcHkoKV0oQ3VybFJlcXVlc3RE
ZWxlZ2F0ZSogZGVsZWdhdGUpIHsKICAgICAgICAgaWYgKGRlbGVnYXRlKQogICAgICAgICAgICAg
ZGVsZWdhdGUtPmN1cmxEaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgIH0pOwogfQog
Ci12b2lkIEN1cmxSZXF1ZXN0OjpzZXRQYXVzZWQoYm9vbCBwYXVzZWQpCit2b2lkIEN1cmxSZXF1
ZXN0Ojpjb21wbGV0ZURpZFJlY2VpdmVSZXNwb25zZSgpCiB7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQobV9kaWROb3RpZnlSZXNwb25zZSk7CisgICAgQVNTRVJUKCFt
X2RpZFJldHVybkZyb21Ob3RpZnkpOworCiAgICAgaWYgKG1fY2FuY2VsbGVkKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAocGF1c2VkID09IG1faXNQYXVzZWQpCisgICAgbV9kaWRSZXR1cm5G
cm9tTm90aWZ5ID0gdHJ1ZTsKKworICAgIGlmIChtX2FjdGlvbkFmdGVySW52b2tlID09IEFjdGlv
bjo6UmVjZWl2ZURhdGEpIHsKKyAgICAgICAgLy8gUmVzdW1lIHRyYW5zZmVyCisgICAgICAgIHNl
dENhbGxiYWNrUGF1c2VkKGZhbHNlKTsKKyAgICB9IGVsc2UgaWYgKG1fYWN0aW9uQWZ0ZXJJbnZv
a2UgPT0gQWN0aW9uOjpTdGFydFRyYW5zZmVyKSB7CisgICAgICAgIC8vIFN0YXJ0IHRyYW5zZmVy
IGZvciBmaWxlIHNjaGVtZQorICAgICAgICBzdGFydFdpdGhKb2JNYW5hZ2VyKCk7CisgICAgfSBl
bHNlIGlmIChtX2FjdGlvbkFmdGVySW52b2tlID09IEFjdGlvbjo6RmluaXNoVHJhbnNmZXIpIHsK
KyAgICAgICAgLy8gS2VlcCB0aGUgY2FsbGluZyB0aHJlYWQgb2YgZGlkQ29tcGxldGVUcmFuc2Zl
cigpCisgICAgICAgIGlmICghbV9pc1N5bmNSZXF1ZXN0KSB7CisgICAgICAgICAgICBDdXJsSm9i
TWFuYWdlcjo6c2luZ2xldG9uKCkuY2FsbE9uSm9iVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGZpbmlzaGVkUmVzdWx0Q29kZSA9IG1fZmluaXNoZWRSZXN1bHRDb2RlXSgp
IHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRDb21wbGV0ZVRyYW5zZmVyKGZp
bmlzaGVkUmVzdWx0Q29kZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBkaWRDb21wbGV0ZVRyYW5zZmVyKG1fZmluaXNoZWRSZXN1bHRDb2RlKTsKKyAgICB9
Cit9CisKK3ZvaWQgQ3VybFJlcXVlc3Q6OnNldFJlcXVlc3RQYXVzZWQoYm9vbCBwYXVzZWQpCit7
CisgICAgYXV0byB3YXNQYXVzZWQgPSBpc1BhdXNlZCgpOworCisgICAgbV9pc1BhdXNlZE9mUmVx
dWVzdCA9IHBhdXNlZDsKKworICAgIGlmIChpc1BhdXNlZCgpID09IHdhc1BhdXNlZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9pc1BhdXNlZCA9IHBhdXNlZDsKKyAgICBwYXVzZWRTdGF0dXND
aGFuZ2VkKCk7Cit9CiAKLSAgICBpZiAoIW1fY3VybEhhbmRsZSkKK3ZvaWQgQ3VybFJlcXVlc3Q6
OnNldENhbGxiYWNrUGF1c2VkKGJvb2wgcGF1c2VkKQoreworICAgIGF1dG8gd2FzUGF1c2VkID0g
aXNQYXVzZWQoKTsKKworICAgIG1faXNQYXVzZWRPZkNhbGxiYWNrID0gcGF1c2VkOworCisgICAg
aWYgKGlzUGF1c2VkKCkgPT0gd2FzUGF1c2VkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJ
biB0aGlzIGNhc2UsIFBBVVNFIHdpbGwgYmUgZXhlY3V0ZWQgd2l0aGluIGRpZFJlY2VpdmVEYXRh
KCkuIENoYW5nZSBwYXVzZSBzdGF0ZSBhbmQgcmV0dXJuLgorICAgIGlmIChwYXVzZWQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHBhdXNlZFN0YXR1c0NoYW5nZWQoKTsKK30KKwordm9pZCBDdXJs
UmVxdWVzdDo6cGF1c2VkU3RhdHVzQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fY2FuY2VsbGVkIHx8
ICFtX2N1cmxIYW5kbGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9pc1N5bmNSZXF1
ZXN0ICYmIGlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0
b24oKS5jYWxsT25Kb2JUaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGF1
c2VkID0gbV9pc1BhdXNlZF0oKSB7CisgICAgICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0b24o
KS5jYWxsT25Kb2JUaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGF1c2Vk
ID0gaXNQYXVzZWQoKV0oKSB7CiAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9jYW5j
ZWxsZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00OTMsOCArNTg0LDggQEAgdm9p
ZCBDdXJsUmVxdWVzdDo6c2V0UGF1c2VkKGJvb2wgcGF1c2VkKQogICAgICAgICAgICAgfQogICAg
ICAgICB9KTsKICAgICB9IGVsc2UgewotICAgICAgICBhdXRvIGVycm9yID0gbV9jdXJsSGFuZGxl
LT5wYXVzZShtX2lzUGF1c2VkID8gQ1VSTFBBVVNFX0FMTCA6IENVUkxQQVVTRV9DT05UKTsKLSAg
ICAgICAgaWYgKChlcnJvciAhPSBDVVJMRV9PSykgJiYgIW1faXNQYXVzZWQpCisgICAgICAgIGF1
dG8gZXJyb3IgPSBtX2N1cmxIYW5kbGUtPnBhdXNlKGlzUGF1c2VkKCkgPyBDVVJMUEFVU0VfQUxM
IDogQ1VSTFBBVVNFX0NPTlQpOworICAgICAgICBpZiAoKGVycm9yICE9IENVUkxFX09LKSAmJiAh
aXNQYXVzZWQoKSkKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKaW5kZXggZThh
OWMzNjdjNDMuLjYxZjJlMjNhMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaApAQCAtNTYsOSArNTYsMTkgQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc1N5bmNSZXF1ZXN0KCkgeyByZXR1cm4gbV9pc1N5bmNSZXF1ZXN0OyB9CiAK
KyAgICAvLyBQcm9jZXNzaW5nIGZvciBEaWRSZWNlaXZlUmVzcG9uc2UKKyAgICB2b2lkIGNvbXBs
ZXRlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisKICAgICBOZXR3b3JrTG9hZE1ldHJpY3MgZ2V0TmV0
d29ya0xvYWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3MuaXNvbGF0ZWRD
b3B5KCk7IH0KIAogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIEFjdGlvbiB7CisgICAgICAgIE5v
bmUsCisgICAgICAgIFJlY2VpdmVEYXRhLAorICAgICAgICBTdGFydFRyYW5zZmVyLAorICAgICAg
ICBGaW5pc2hUcmFuc2ZlcgorICAgIH07CisKICAgICB2b2lkIHJldGFpbigpIG92ZXJyaWRlIHsg
cmVmKCk7IH0KICAgICB2b2lkIHJlbGVhc2UoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KICAgICBD
VVJMKiBoYW5kbGUoKSBvdmVycmlkZSB7IHJldHVybiBtX2N1cmxIYW5kbGUgPyBtX2N1cmxIYW5k
bGUtPmhhbmRsZSgpIDogbnVsbHB0cjsgfQpAQCAtNzYsNiArODYsNyBAQCBwcml2YXRlOgogICAg
IHNpemVfdCBkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmKTsKICAgICB2b2lkIGRp
ZENvbXBsZXRlVHJhbnNmZXIoQ1VSTGNvZGUpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2FuY2Vs
VHJhbnNmZXIoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplVHJhbnNmZXIoKTsKIAogICAg
IC8vIEZvciBQT1NUIGFuZCBQVVQgbWV0aG9kIAogICAgIHZvaWQgcmVzb2x2ZUJsb2JSZWZlcmVu
Y2VzKFJlc291cmNlUmVxdWVzdCYpOwpAQCAtODMsMTAgKzk0LDE0IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXR1cFBVVChSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIHNldHVwRm9ybURhdGEo
UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCk7CiAKLSAgICAvLyBQcm9jZXNzaW5nIGZvciBEaWRSZXNv
dXJjZVJlc3BvbnNlCisgICAgLy8gUHJvY2Vzc2luZyBmb3IgRGlkUmVjZWl2ZVJlc3BvbnNlCisg
ICAgYm9vbCBuZWVkVG9JbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiAh
bV9kaWROb3RpZnlSZXNwb25zZSB8fCAhbV9kaWRSZXR1cm5Gcm9tTm90aWZ5OyB9CiAgICAgdm9p
ZCBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2VGb3JGaWxlKFVSTCYpOwotICAgIHZvaWQgaW52b2tl
RGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci0gICAgdm9pZCBzZXRQYXVzZWQoYm9vbCk7CisgICAgdm9p
ZCBpbnZva2VEaWRSZWNlaXZlUmVzcG9uc2UoQWN0aW9uKTsKKyAgICB2b2lkIHNldFJlcXVlc3RQ
YXVzZWQoYm9vbCk7CisgICAgdm9pZCBzZXRDYWxsYmFja1BhdXNlZChib29sKTsKKyAgICB2b2lk
IHBhdXNlZFN0YXR1c0NoYW5nZWQoKTsKKyAgICBib29sIGlzUGF1c2VkKCkgY29uc3QgeyByZXR1
cm4gbV9pc1BhdXNlZE9mUmVxdWVzdCB8fCBtX2lzUGF1c2VkT2ZDYWxsYmFjazsgfTsKIAogICAg
IC8vIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgY3VybAogICAgIHN0YXRpYyBDVVJMY29kZSB3aWxs
U2V0dXBTc2xDdHhDYWxsYmFjayhDVVJMKiwgdm9pZCosIHZvaWQqKTsKQEAgLTExMSw3ICsxMjYs
MTMgQEAgcHJpdmF0ZToKICAgICBDdXJsU1NMVmVyaWZpZXIgbV9zc2xWZXJpZmllcjsKICAgICBD
dXJsUmVzcG9uc2UgbV9yZXNwb25zZTsKIAotICAgIGJvb2wgbV9pc1BhdXNlZCB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2RpZE5vdGlmeVJlc3BvbnNlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGlk
UmV0dXJuRnJvbU5vdGlmeSB7IGZhbHNlIH07CisgICAgQWN0aW9uIG1fYWN0aW9uQWZ0ZXJJbnZv
a2UgeyBBY3Rpb246Ok5vbmUgfTsKKyAgICBDVVJMY29kZSBtX2ZpbmlzaGVkUmVzdWx0Q29kZSB7
IENVUkxFX09LIH07CisKKyAgICBib29sIG1faXNQYXVzZWRPZlJlcXVlc3QgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9pc1BhdXNlZE9mQ2FsbGJhY2sgeyBmYWxzZSB9OwogCiAgICAgTmV0d29ya0xv
YWRNZXRyaWNzIG1fbmV0d29ya0xvYWRNZXRyaWNzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
aW5kZXggMmU3ZjBjZmVhYjEuLmEzNGIzMDFkY2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApA
QCAtMjEzLDEwICsyMTMsMTAgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRSZXF1ZXN0
VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2EKICAgICBpZiAoY2hh
bGxlbmdlICE9IGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKGQtPm1fZGVsZWdhdGUpCi0gICAgICAgIGQtPm1fZGVsZWdhdGUtPnNldEF1dGhlbnRp
Y2F0aW9uKCIiLCAiIik7Ci0KICAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7CisKKyAgICBhdXRv
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
aGFsbGVuZ2UpCkBAIC0yNTksNyArMjU5LDE4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAK
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBp
ZiAoZC0+bV9kZWxlZ2F0ZSkKKyAgICAgICAgZC0+bV9kZWxlZ2F0ZS0+Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UoKTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51
ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworCisgICAgaWYgKGQtPm1fZGVsZWdhdGUpCisgICAgICAgIGQtPm1fZGVsZWdhdGUt
PnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpOwogfQogCiB2
b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAKaW5kZXgg
ZmZmMGZlZmM0ZTguLjBmYWI3YmEzOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxl
Z2F0ZS5jcHAKQEAgLTIyNyw3ICsyMjcsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVn
YXRlOjpjdXJsRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IEN1cmxSZXNwb25zZSYgcmVjZQogICAg
ICAgICB9CiAKICAgICAgICAgQ3VybENhY2hlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKS5kaWRSZWNl
aXZlUmVzcG9uc2UoKm1faGFuZGxlLCByZXNwb25zZSgpKTsKLSAgICAgICAgbV9oYW5kbGUtPmNs
aWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UobV9oYW5kbGUsIFJlc291cmNlUmVzcG9uc2UocmVz
cG9uc2UoKSkpOworCisgICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKm1faGFu
ZGxlKTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3Bv
bnNlKHJlc3BvbnNlKCkpKTsKICAgICB9CiB9CiAKQEAgLTI3Niw5ICsyNzgsMzQgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y3VybERpZEZhaWxXaXRoRXJyb3IoY29uc3QgUmVz
b3VyY2VFcnJvciYgcmVzb3UKICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZEZhaWwobV9oYW5k
bGUsIHJlc291cmNlRXJyb3IpOwogfQogCit2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwordm9p
ZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3Vz
RGlkUmVjZWl2ZVJlc3BvbnNlKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisg
ICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSgpOworfQorCit2b2lkIFJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCkKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgLy8gY29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UgbWlnaHQgY2FuY2VsIHRoZSBsb2FkLgorICAgIGlmIChjYW5jZWxsZWRPckNsaWVu
dGxlc3MoKSB8fCAhbV9jdXJsUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJs
UmVxdWVzdC0+Y29tcGxldGVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogYm9vbCBSZXNvdXJj
ZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6c2hvdWxkUmVkaXJlY3RBc0dFVChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGJvb2wgY3Jvc3NPcmlnaW4pCiB7Ci0gICAgaWYgKChyZXF1ZXN0Lmh0
dHBNZXRob2QoKSA9PSAiR0VUIikgfHwgKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJIRUFEIikp
CisgICAgaWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJHRVQiIHx8IHJlcXVlc3QuaHR0cE1l
dGhvZCgpID09ICJIRUFEIikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFyZXF1
ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3Vy
bERlbGVnYXRlLmgKaW5kZXggNzM2NGE1NGIwN2UuLjBlNDgxMDc3ZWYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVs
ZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsRGVsZWdhdGUuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGRpc3BhdGNoU3luY2hyb25vdXNKb2IoKTsKIAorICAgIHZvaWQgY29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UoKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJl
Y2VpdmVSZXNwb25zZSgpOworCiAgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmJik7CiAKIHByaXZhdGU6CkBAIC03MSw2ICs3NCw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjdXJsRGlkQ29tcGxldGUoKSBvdmVycmlkZTsKICAgICB2b2lkIGN1cmxEaWRGYWls
V2l0aEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAorICAgIHZvaWQgY29u
dGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSgpOworCiAgICAgYm9vbCBzaG91bGRSZWRpcmVj
dEFzR0VUKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgY3Jvc3NPcmlnaW4pOwogICAgIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0KCk7CiAgICAgdm9pZCBjb250aW51ZUFmdGVyV2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZUN1cmwuY3BwCmluZGV4IDg5
Yjc2ZDQzYTVkLi4wODE5NzRkZGNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2VDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZUN1cmwuY3BwCkBAIC0x
MzYsNyArMTM2LDcgQEAgU3RyaW5nIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtU3VnZ2VzdGVk
RmlsZW5hbWUoKSBjb25zdAogYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjpzaG91bGRSZWRpcmVjdCgp
CiB7CiAgICAgYXV0byBzdGF0dXNDb2RlID0gaHR0cFN0YXR1c0NvZGUoKTsKLSAgICBpZiAoKHN0
YXR1c0NvZGUgPCAzMDApIHx8ICg0MDAgPD0gc3RhdHVzQ29kZSkpCisgICAgaWYgKHN0YXR1c0Nv
ZGUgPCAzMDAgfHwgNDAwIDw9IHN0YXR1c0NvZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIFNvbWUgM3h4IHN0YXR1cyBjb2RlcyBhcmVuJ3QgYWN0dWFsbHkgcmVkaXJlY3RzLgpA
QCAtMTUxLDI3ICsxNTEsMjcgQEAgYm9vbCBSZXNvdXJjZVJlc3BvbnNlOjpzaG91bGRSZWRpcmVj
dCgpCiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZTo6aXNNb3ZlZFBlcm1hbmVudGx5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gKGh0dHBTdGF0dXNDb2RlKCkgPT0gMzAxKTsKKyAgICByZXR1cm4gaHR0
cFN0YXR1c0NvZGUoKSA9PSAzMDE7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZTo6aXNGb3Vu
ZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChodHRwU3RhdHVzQ29kZSgpID09IDMwMik7CisgICAg
cmV0dXJuIGh0dHBTdGF0dXNDb2RlKCkgPT0gMzAyOwogfQogCiBib29sIFJlc291cmNlUmVzcG9u
c2U6OmlzU2VlT3RoZXIoKSBjb25zdAogewotICAgIHJldHVybiAoaHR0cFN0YXR1c0NvZGUoKSA9
PSAzMDMpOworICAgIHJldHVybiBodHRwU3RhdHVzQ29kZSgpID09IDMwMzsKIH0KIAogYm9vbCBS
ZXNvdXJjZVJlc3BvbnNlOjppc05vdE1vZGlmaWVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKGh0
dHBTdGF0dXNDb2RlKCkgPT0gMzA0KTsKKyAgICByZXR1cm4gaHR0cFN0YXR1c0NvZGUoKSA9PSAz
MDQ7CiB9CiAKIGJvb2wgUmVzb3VyY2VSZXNwb25zZTo6aXNVbmF1dGhvcml6ZWQoKSBjb25zdAog
ewotICAgIHJldHVybiAoaHR0cFN0YXR1c0NvZGUoKSA9PSA0MDEpOworICAgIHJldHVybiBodHRw
U3RhdHVzQ29kZSgpID09IDQwMTsKIH0KIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>