<?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>200932</bug_id>
          
          <creation_ts>2019-08-20 12:07:07 -0700</creation_ts>
          <short_desc>[WebAuthn] Warn users when multiple NFC tags present</short_desc>
          <delta_ts>2019-10-27 15:54:11 -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>WebKit 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>202559</dependson>
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jlewis3</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1563178</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-08-20 12:07:07 -0700</bug_when>
    <thetext>Allow user to select a different NFC tag if multiple present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563874</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-08-21 18:25:12 -0700</bug_when>
    <thetext>A solution here is when multiple tags are detected, we could advise users to pick one to use in the UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566755</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-30 11:49:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/54890736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581632</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 17:24:30 -0700</bug_when>
    <thetext>*** Bug 201017 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582256</commentid>
    <comment_count>4</comment_count>
      <attachid>381511</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-21 22:50:40 -0700</bug_when>
    <thetext>Created attachment 381511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582311</commentid>
    <comment_count>5</comment_count>
      <attachid>381533</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-22 02:06:18 -0700</bug_when>
    <thetext>Created attachment 381533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583028</commentid>
    <comment_count>6</comment_count>
      <attachid>381533</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-23 14:27:50 -0700</bug_when>
    <thetext>Comment on attachment 381533
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381533&amp;action=review

Looks good! Nice to see more WPT&apos;s passing. r=me.

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorTransportService.h:60
&gt; +    // These operation are guaranteed to execute asynchronously.

These operations are ...

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:133
&gt; +    NSError *error = nil;

You don&apos;t have to initialize to &apos;nil&apos; in ObjC. It happens automatically.

&gt; Source/WebKit/UIProcess/WebAuthentication/Mock/MockNfcService.mm:259
&gt; +            [tags addObject:adoptNS([[WKMockNFTag alloc] initWithType:NFTagTypeGeneric4A tagID:adoptNS([[NSData alloc] initWithBytes:tagID2 length:sizeof(tagID2)]).get()]).get()];

Could something in here be &apos;mutable&apos; so we can leave this as a &apos;const&apos; method? (Assuming the mutation is not something that actually changes the logical constness of the object?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583037</commentid>
    <comment_count>7</comment_count>
      <attachid>381533</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-23 14:38:36 -0700</bug_when>
    <thetext>Comment on attachment 381533
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381533&amp;action=review

Thanks Brent for r+ this patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorTransportService.h:60
&gt;&gt; +    // These operation are guaranteed to execute asynchronously.
&gt; 
&gt; These operations are ...

Fixed.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:133
&gt;&gt; +    NSError *error = nil;
&gt; 
&gt; You don&apos;t have to initialize to &apos;nil&apos; in ObjC. It happens automatically.

I tried to grep different patterns on the project, and here is the result:
&quot;NSError *error;&quot;: 10
&quot;NSError *error = nil;&quot;: 46

So I think maybe &quot;NSError *error = nil;&quot; is more inline with our coding practice.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Mock/MockNfcService.mm:259
&gt;&gt; +            [tags addObject:adoptNS([[WKMockNFTag alloc] initWithType:NFTagTypeGeneric4A tagID:adoptNS([[NSData alloc] initWithBytes:tagID2 length:sizeof(tagID2)]).get()]).get()];
&gt; 
&gt; Could something in here be &apos;mutable&apos; so we can leave this as a &apos;const&apos; method? (Assuming the mutation is not something that actually changes the logical constness of the object?)

Good catch. This is a mistake. I was doing something else that requires dropping the const qualifier, but then later I removed those code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583061</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-23 14:58:25 -0700</bug_when>
    <thetext>Committed r251500: &lt;https://trac.webkit.org/changeset/251500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584013</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2019-10-25 14:32:01 -0700</bug_when>
    <thetext>This was rolled out because it interfered with rolling out of

https://bugs.webkit.org/show_bug.cgi?id=202561

The rollout https://trac.webkit.org/changeset/251602/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584026</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-25 15:07:05 -0700</bug_when>
    <thetext>(In reply to Matt Lewis from comment #9)
&gt; This was rolled out because it interfered with rolling out of
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=202561
&gt; 
&gt; The rollout https://trac.webkit.org/changeset/251602/webkit

I don&apos;t think rolling out this important bug fix because you had trouble rolling out a separate patch is appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584103</commentid>
    <comment_count>11</comment_count>
      <attachid>381983</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-25 17:05:38 -0700</bug_when>
    <thetext>Created attachment 381983
Patch for relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584230</commentid>
    <comment_count>12</comment_count>
      <attachid>381983</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-26 06:49:22 -0700</bug_when>
    <thetext>Comment on attachment 381983
Patch for relanding

The iOS EWS seems stuck. cq+ it regardless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584356</commentid>
    <comment_count>13</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-27 15:53:42 -0700</bug_when>
    <thetext>Committed r251645: &lt;https://trac.webkit.org/changeset/251645&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381511</attachid>
            <date>2019-10-21 22:50:40 -0700</date>
            <delta_ts>2019-10-22 02:06:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200932-20191021225039.patch</filename>
            <type>text/plain</type>
            <size>45778</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE1MmMxZGU3MmMzN2Q5
YTE4NTc5ZTRmYTJkYzdlN2IxNjhiYmZkNi4uNjBkZDMyZTY4YjBjNTFmMTAxNTQzNTNhMzliYTc0
MGZkMTM1YmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTIxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBXYXJu
IHVzZXJzIHdoZW4gbXVsdGlwbGUgTkZDIHRhZ3MgcHJlc2VudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTMyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NDg5MDczNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IG5ldyB0ZXN0cyBpbiBleGlzdGluZyB0ZXN0IGZpbGUuCisKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Ok5mY0Nv
bmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpOZmNDb25maWd1cmF0aW9uOjpkZWNvZGUpOgorICAg
ICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGw6Cisg
ICAgICAgIEFkZHMgYSBuZXcgdGVzdCBvcHRpb24uCisKIDIwMTktMTAtMjEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIFN1cHBvcnQg
aGlkaW5nIGlmcmFtZSBzY3JvbGxiYXJzIHZpYSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHN0eWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGU0MWRlMzhjNzA1NmMzYzNhNzc3M2I2NzJlYWJhNGM2NmYwNGFkMDcuLmE2NmYw
MTVkOWI2YmVmYzVkOWYxMTZjNDc1OGM3MDYwODZhODdhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzYgQEAKKzIwMTktMTAtMjEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNlcnMgd2hlbiBtdWx0aXBsZSBORkMgdGFncyBwcmVz
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5
MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0ODkwNzM2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgLVtfV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRp
b25QYW5lbDpdIHRvCisgICAgICAgIGluZm9ybSBjbGllbnRzIGFib3V0IG11bHRpcGxlIHBoeXNp
Y2FsIHRhZ3MgYXJlIHByZXNlbnRpbmcgc3VjaCB0aGF0IGNsaWVudHMgY2FuIGluc3RydWN0IHVz
ZXJzCisgICAgICAgIHRvIHNlbGVjdCBvbmx5IG9uZSBvZiB0aGVtIHBoeXNpY2FsbHkuIEdpdmVu
IGEgcGh5c2ljYWwgdGFnIGNvdWxkIGhhdmUgbXVsdGlwbGUgZGlmZmVyZW50CisgICAgICAgIGlu
dGVyZmFjZXMsIHdoaWNoIE5lYXJGaWVsZCB3aWxsIHRyZWF0IHRoZW0gaW50byBkaWZmZXJlbnQg
TkZUYWdzLCB0aGUgdGFnSUQgaXMgdGhlbiB1c2VkIHRvCisgICAgICAgIGlkZW50aWZ5IGlmIHRo
ZXJlIGFyZSBhY3R1YWxseSBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWxzbyBhZGRzIHRoZSBhYmlsaXR5IHRvIHJlc3RhcnQgcG9sbGluZyBvZiBhIHBhcnRp
dWNsYXIgTkZSZWFkZXJTZXNzaW9uIHRvIE5mY0Nvbm5lY3Rpb24KKyAgICAgICAgYW5kIHRoZSBh
YmlsaXR5IHRvIHJlc3RhcnQgdGhlIHdob2xlIHNlc3Npb24gdG8gTmZjU2VydmljZS4gVGhlIGZv
cm1lciBpcyB1c2VkIHRvIHJlY292ZXIgZnJvbSBlcnJvcnMKKyAgICAgICAgaW4gdGhlIGRpc2Nv
dmVyeSBzdGFnZXMsIGFuZCB0aGUgbGF0dGVyIGlzIHVzZWQgdG8gcmVjb3ZlciBmcm9tIGVycm9y
cyByZXR1cm5lZCBmcm9tIGF1dGhlbnRpY2F0b3JzCisgICAgICAgIGluIHRoZSByZXF1ZXN0IHN0
YWdlcy4gRm9yIHRoZSBsYXR0ZXIsIGdpdmVuIE5mY0Nvbm5lY3Rpb24gaXMgbm90IGF3YXJlZCBv
ZiB0aGUgc3ludGF4IG9mIEZJRE8yL1UyRgorICAgICAgICBwcm90b2NvbCwgYW5kIEN0YXBBdXRo
ZW50aWNhdG9yL1UyZkF1dGhlbnRpY2F0b3IgYXJlIG5vdCBhd2FyZWQgdGhlIHRyYW5zcG9ydCBv
ZiB0aGUgdW5kZXJuZWF0aCBkcml2ZXIuCisgICAgICAgIEEgZ2VuZXJpYyByZXN0YXJ0RGlzY292
ZXJ5IHByb2Nlc3MgaXMgYWRkZWQgdG8gZWFjaCBzZXJ2aWNlIGFuZCBpdCBpcyB1cCB0byB0aGUg
YWN0dWFsIHNlcnZpY2UgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBhY3R1YWwgcHJvY2VzcyBz
dWNoIHRoYXQgQXV0aGVudGljYXRvck1hbmFnZXIgY2FuIGFyYml0cmFyaWx5IGNhbGwgaXQgYWZ0
ZXIgZXhjZXB0aW9ucworICAgICAgICBhcmUgcmV0dXJuZWQgdG8gcmVzdGFydCB0aGUgd2hvbGUg
TkZDIHNlc3Npb24uIFRvIGFjaGlldmUgcmVzdGFydERpc2NvdmVyeSwgTmZjQ29ubmVjdGlvbiBp
cyBtYWRlCisgICAgICAgIFJlZkNvdW50ZWQgYXMgd2VsbCBzdWNoIHRoYXQgYm90aCB0aGUgTmZj
U2VydmljZSBhbmQgdGhlIEN0YXBOZmNEcml2ZXIgY291bGQgaG9sZCBpdCBhdCB0aGUgc2FtZSB0
aW1lLgorICAgICAgICBDdGFwTmZjRHJpdmVyIHVzZXMgdGhlIGNvbm5lY3Rpb24gdG8gY29tcGxl
dGUgcmVxdWVzdHMgYXMgYmVmb3JlIHdoaWxlIE5mY1NlcnZpY2UgaGFzIHRoZSBuZXcgY2FwYWJp
bGl0eQorICAgICAgICB0byB1c2UgaXQgdG8gc3RvcCB0aGUgY3VycmVudCBzZXNzaW9uIHdoZW4g
cmVzdGFydERpc2NvdmVyeSBraWNrcyBvZmYuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29j
b2EvTmVhckZpZWxkU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRv
ck1hbmFnZXI6OnNlcnZpY2VTdGF0dXNVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpyZXN0YXJ0RGlzY292ZXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6c3RhcnRE
aXNjb3ZlcnkpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vydmlj
ZTo6cmVzdGFydERpc2NvdmVyeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmg6CisgICAgICAgIChXZWJLaXQ6OkF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpyZXN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5l
Y3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZmNDb25uZWN0aW9uOjp+TmZjQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5m
Y0Nvbm5lY3Rpb246OnN0b3AgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9u
OjpkaWREZXRlY3RUYWdzKToKKyAgICAgICAgKFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6cmVzdGFy
dFBvbGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9uOjpzdGFydFBvbGxpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9uOjpkaWREZXRlY3RUYWdzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
U2VydmljZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9O
ZmNTZXJ2aWNlLm1tOgorICAgICAgICAoV2ViS2l0OjpOZmNTZXJ2aWNlOjpOZmNTZXJ2aWNlKToK
KyAgICAgICAgKFdlYktpdDo6TmZjU2VydmljZTo6ZGlkQ29ubmVjdFRhZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5mY1NlcnZpY2U6OmRpZERldGVjdE11bHRpcGxlVGFncyBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5mY1NlcnZpY2U6OnNldENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZmNTZXJ2aWNlOjpyZXN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpO
ZmNTZXJ2aWNlOjpwbGF0Zm9ybVN0YXJ0RGlzY292ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6TmZj
U2VydmljZTo6c2V0RHJpdmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNTZXJ2aWNlLm1tOgorICAgICAgICAoLVtXS01v
Y2tORlRhZyB0YWdJRF0pOgorICAgICAgICAoLVtXS01vY2tORlRhZyBpbml0V2l0aE5GVGFnOl0p
OgorICAgICAgICAoLVtXS01vY2tORlRhZyBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLTW9ja05G
VGFnIGluaXRXaXRoVHlwZTpdKToKKyAgICAgICAgKC1bV0tNb2NrTkZUYWcgaW5pdFdpdGhUeXBl
OnRhZ0lEOl0pOgorICAgICAgICAoV2ViS2l0OjpNb2NrTmZjU2VydmljZTo6cmVjZWl2ZVN0b3BQ
b2xsaW5nKToKKyAgICAgICAgKFdlYktpdDo6TW9ja05mY1NlcnZpY2U6OnJlY2VpdmVTdGFydFBv
bGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpNb2NrTmZjU2VydmljZTo6cGxhdGZvcm1TdGFydERp
c2NvdmVyeSk6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RUYWdzKToK
KyAgICAgICAgKFdlYktpdDo6TW9ja05mY1NlcnZpY2U6OmRldGVjdFRhZ3MgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNE
cml2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwTmZjRHJpdmVyOjpDdGFwTmZjRHJpdmVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJp
dmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0
aGVudGljYXRvci5jcHA6CisKIDIwMTktMTAtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgbW9yZSByZWxlYXNlIGxvZ2dpbmcgZm9yICJVbmV4cGVjdGVk
bHkgcmVzdW1lZCIgYXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCmluZGV4IGViMzgxY2Jh
MzE1YjI1NTAxNmI1N2U5OWZkMjc1ZDY5YTg2ZmI2ZDMuLjMyOGJiOWQ0ZWFhZmM3NWQ4M2M3MWE3
YzcyNzRkMTY1MDM2N2QyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCkBAIC05Myw2ICs5Myw3
IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIHsKICAgICAgICAg
TmZjRXJyb3IgZXJyb3IgeyBOZmNFcnJvcjo6U3VjY2VzcyB9OwogICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBwYXlsb2FkQmFzZTY0OwogICAgICAgICBib29sIG11bHRpcGxlVGFncyB7IGZhbHNlIH07
CisgICAgICAgIGJvb2wgbXVsdGlwbGVQaHlzaWNhbFRhZ3MgeyBmYWxzZSB9OwogCiAgICAgICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE5mY0NvbmZpZ3Vy
YXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xOTMsNyArMTk0LDcgQEAgT3B0aW9uYWw8TW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbj4gTW9ja1dl
YkF1dGhlbnRpY2EKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb246Ok5mY0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZXJyb3IgPDwgcGF5bG9hZEJhc2U2NCA8
PCBtdWx0aXBsZVRhZ3M7CisgICAgZW5jb2RlciA8PCBlcnJvciA8PCBwYXlsb2FkQmFzZTY0IDw8
IG11bHRpcGxlVGFncyA8PCBtdWx0aXBsZVBoeXNpY2FsVGFnczsKIH0KIAogdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KQEAgLTIwNiw2ICsyMDcsOCBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uOjpOZmNDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0aGVudGljYQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0Lm11bHRpcGxlVGFncykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubXVsdGlwbGVQaHlzaWNhbFRhZ3MpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb24uaWRsCmluZGV4IDE2NDcwZjkyNzI5ZGJhYTJhOTE1MmEwNTZiN2Y4YzVmNzQ1Y2Mz
OGQuLjc4NTM4NTE0NzZmY2NkNjIyODRjMzZiZjI3OTQyYThiMTdjNWRlMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmlkbApAQCAtMTAwLDQgKzEwMCw1IEBACiAgICAgTW9ja05mY0Vycm9yIGVy
cm9yID0gInN1Y2Nlc3MiOwogICAgIHNlcXVlbmNlPERPTVN0cmluZz4gcGF5bG9hZEJhc2U2NDsK
ICAgICBib29sZWFuIG11bHRpcGxlVGFncyA9IGZhbHNlOworICAgIGJvb2xlYW4gbXVsdGlwbGVQ
aHlzaWNhbFRhZ3MgPSBmYWxzZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9Db2NvYS9OZWFyRmllbGRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL05lYXJGaWVsZFNQSS5oCmluZGV4IDZiY2JhYTU0OWU3ODFlOWFjOWZjMWJiZDBlZGIx
M2RjZGIzZjI0OWYuLmUyMDZhMzZiZmUxNzI4ZTZmNjk4N2E0ZThiODYxNTk1NzU0OTZmZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCkBA
IC05MywxMiArOTMsMTEgQEAgdHlwZWRlZiBOU19FTlVNKHVpbnQzMl90LCBORk5kZWZBdmFpbGFi
aWxpdHkpIHsKIEBpbnRlcmZhY2UgTkZSZWFkZXJTZXNzaW9uIDogTkZTZXNzaW9uCiBAcHJvcGVy
dHkgKGFzc2lnbikgaWQ8TkZSZWFkZXJTZXNzaW9uRGVsZWdhdGU+IGRlbGVnYXRlOwogCi0tIChC
T09MKXN0YXJ0UG9sbGluZzsKKy0gKEJPT0wpc3RhcnRQb2xsaW5nV2l0aEVycm9yOihOU0Vycm9y
ICoqKW91dEVycm9yOwogLSAoQk9PTClzdG9wUG9sbGluZzsKIC0gKEJPT0wpY29ubmVjdFRhZzoo
TkZUYWcqKXRhZzsKIC0gKEJPT0wpZGlzY29ubmVjdFRhZzsKIC0gKE5TRGF0YSopdHJhbnNjZWl2
ZTooTlNEYXRhKiljYXBkdTsKLS0gKE5TRXJyb3IgKil1cGRhdGVVSUFsZXJ0TWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYWdlOwogQGVuZAogCiBAcHJvdG9jb2wgTkZSZWFkZXJTZXNzaW9uRGVsZWdh
dGUgPE5TT2JqZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDRj
ODE5ZWFhYTExNTQ5NjFjYTE3ZWRmMjIwMDNjZGQ3NTI1YjVmZWQuLjYyODkxZjQyZTBjZTIyMjA4
ZTQ2NDA0N2Y3MjdhNGNkNGU4YzQwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdl
ci5jcHAKQEAgLTIxMyw2ICsyMTMsMTIgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0
aGVudGljYXRvckFkZGVkKFJlZjxBdXRoZW50aWNhdG9yPiYmIGF1dGhlbnRpY2F0b3IKICAgICBB
U1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQogCit2b2lk
IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50aWNh
dGlvblN0YXR1cyBzdGF0dXMpCit7CisgICAgaWYgKGF1dG8gKnBhbmVsID0gbV9wZW5kaW5nUmVx
dWVzdERhdGEucGFuZWwuZ2V0KCkpCisgICAgICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5l
bChzdGF0dXMpOworfQorCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2
ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
QEAgLTIzMCw2ICsyMzYsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVj
ZWl2ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcmVz
cG9uZFJlY2VpdmVkSW50ZXJuYWwoV1RGTW92ZShyZXNwb25kKSk7CisgICAgcmVzdGFydERpc2Nv
dmVyeSgpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkb3duZ3JhZGUoQXV0aGVu
dGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNhdG9y
KQpAQCAtMzQxLDYgKzM0OCwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNldFN0
YXRlKCkKICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YSA9IHsgfTsKIH0KIAordm9pZCBBdXRoZW50
aWNhdG9yTWFuYWdlcjo6cmVzdGFydERpc2NvdmVyeSgpCit7CisgICAgZm9yIChhdXRvJiBzZXJ2
aWNlIDogbV9zZXJ2aWNlcykKKyAgICAgICAgc2VydmljZS0+cmVzdGFydERpc2NvdmVyeSgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAppbmRleCA0OTRhNDRkYzFkMGMxODI3ZDBl
YzVkYzAyNDFkMGM5ZjBmYjJhYmJkLi4zNjI4ZDU5OGZmNTVjYWU1NmMzZDU3ODk1YmVkNDY0MGRm
NmZjY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTczLDYgKzczLDcg
QEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vy
dmljZTo6T2JzZXJ2ZXIKICAgICB2b2lkIGF1dGhlbnRpY2F0b3JBZGRlZChSZWY8QXV0aGVudGlj
YXRvcj4mJikgZmluYWw7CisgICAgdm9pZCBzZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50
aWNhdGlvblN0YXR1cykgZmluYWw7CiAKICAgICAvLyBBdXRoZW50aWNhdG9yOjpPYnNlcnZlcgog
ICAgIHZvaWQgcmVzcG9uZFJlY2VpdmVkKFJlc3BvbmQmJikgZmluYWw7CkBAIC05MCw2ICs5MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5QYW5lbCgpOwogICAgIHZvaWQgc3RhcnRSZXF1ZXN0
KCk7CiAgICAgdm9pZCByZXNldFN0YXRlKCk7CisgICAgdm9pZCByZXN0YXJ0RGlzY292ZXJ5KCk7
CiAKICAgICAvLyBSZXF1ZXN0OiBXZSBvbmx5IGFsbG93IG9uZSByZXF1ZXN0IHBlciB0aW1lLiBB
IG5ldyByZXF1ZXN0IHdpbGwgY2FuY2VsIGFueSBwZW5kaW5nIG9uZXMuCiAgICAgV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YSBtX3BlbmRpbmdSZXF1ZXN0RGF0YTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFu
c3BvcnRTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcAppbmRleCBlODEwMzliNmRjYjQw
YzU2MjU1ZDc3ZjRkZWZkZTk2ZjFlNGQ0ZWY2Li5lZDE3NTllNzNhMzA1NjRlMmE0OTYyOGUyNDQ0
NzA2YjM3OGEzOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2UuY3BwCkBAIC03NSw3ICs3NSw2IEBAIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZShPYnNlcnZlciYgb2JzZXJ2ZXIpCiAK
IHZvaWQgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5KCkKIHsK
LSAgICAvLyBFbmZvcmNlIGFzeW5jaHJvbm91cyBleGVjdXRpb24gb2YgbWFrZUNyZWRlbnRpYWwu
CiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
ODMsNiArODIsMTUgQEAgdm9pZCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6c3RhcnRE
aXNjb3ZlcnkoKQogICAgIH0pOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlOjpyZXN0YXJ0RGlzY292ZXJ5KCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5yZXN0YXJ0RGlzY292ZXJ5
SW50ZXJuYWwoKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFu
c3BvcnRTZXJ2aWNlLmgKaW5kZXggMDkwODRhYjhhN2M3OTA5MDUxN2YyZTcyZWI3YTU0NmQ5YWQy
NmVhMy4uOGNiZDEwMGVkYmIzOGVhMzY2ZDMzN2QzMDQ2NTEzMmJjZDBmZTg5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
clRyYW5zcG9ydFNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRp
b25GbGFncy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvclRyYW5zcG9ydC5oPgog
I2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAt
NDgsNiArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZh
dWx0OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yQWRkZWQoUmVmPEF1dGhl
bnRpY2F0b3I+JiYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VTdGF0dXNVcGRh
dGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRpYyBV
bmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IGNyZWF0ZShXZWJDb3JlOjpB
dXRoZW50aWNhdG9yVHJhbnNwb3J0LCBPYnNlcnZlciYpOwpAQCAtNTUsOCArNTcsOSBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZSgpID0gZGVm
YXVsdDsKIAotICAgIC8vIFRoaXMgb3BlcmF0aW9uIGlzIGd1YXJhbnRlZWQgdG8gZXhlY3V0ZSBh
c3luY2hyb25vdXNseS4KKyAgICAvLyBUaGVzZSBvcGVyYXRpb24gYXJlIGd1YXJhbnRlZWQgdG8g
ZXhlY3V0ZSBhc3luY2hyb25vdXNseS4KICAgICB2b2lkIHN0YXJ0RGlzY292ZXJ5KCk7CisgICAg
dm9pZCByZXN0YXJ0RGlzY292ZXJ5KCk7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZShPYnNlcnZlciYpOwpAQCAtNjUsNiArNjgsOSBAQCBw
cm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RGlzY292ZXJ5SW50
ZXJuYWwoKSA9IDA7CisgICAgLy8gTkZDIHNlcnZpY2UncyBwb2xsaW5nIGlzIG9uZSBzaG90LiBJ
dCBoYWx0cyBhZnRlciB0aGUgZmlyc3QgdGFncyBhcmUgZGV0ZWN0ZWQuCisgICAgLy8gVGhlcmVm
b3JlLCBhIHJlc3RhcnQgcHJvY2VzcyBpcyBuZWVkZWQgdG8gcmVzdW1lIHBvbGxpbmcgYWZ0ZXIg
ZXhjZXB0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdGFydERpc2NvdmVyeUludGVybmFsKCkg
eyB9OwogCiAgICAgV2Vha1B0cjxPYnNlcnZlcj4gbV9vYnNlcnZlcjsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9OZmNDb25uZWN0aW9uLmgKaW5kZXggM2I5ZDk1NzdlMjA1YWFiN2RiN2EzYWIxZTU1OWI5N2Rj
M2U5MjQ1Zi4uYjhhOTE3ZWFkMGEwYjhhZTc0NzMyNDZlMzg3MTNjMTc2ZTk2MWU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24uaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgRU5BQkxF
KFdFQl9BVVRITikgJiYgSEFWRShORUFSX0ZJRUxEKQogCi0jaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIE9CSkNfQ0xBU1MgTkZSZWFkZXJTZXNz
aW9uOwpAQCAtNDAsMjIgKzQwLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZmNT
ZXJ2aWNlOwogCi1jbGFzcyBOZmNDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5m
Y0Nvbm5lY3Rpb24+IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShOZmNDb25uZWN0aW9uKTsKK2NsYXNzIE5mY0Nvbm5lY3Rpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxOZmNDb25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5mY0Nv
bm5lY3Rpb24+IHsKIHB1YmxpYzoKLSAgICBOZmNDb25uZWN0aW9uKFJldGFpblB0cjxORlJlYWRl
clNlc3Npb24+JiYsIE5mY1NlcnZpY2UmKTsKKyAgICBzdGF0aWMgUmVmPE5mY0Nvbm5lY3Rpb24+
IGNyZWF0ZShSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmLCBOZmNTZXJ2aWNlJik7CiAgICAg
fk5mY0Nvbm5lY3Rpb24oKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiB0cmFuc2FjdChWZWN0b3I8
dWludDhfdD4mJiBkYXRhKSBjb25zdDsKKyAgICB2b2lkIHN0b3AoKSBjb25zdDsKIAogICAgIC8v
IEZvciBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlCi0gICAgdm9pZCBkaWREZXRlY3RUYWdzKE5T
QXJyYXkgKikgY29uc3Q7CisgICAgdm9pZCBkaWREZXRlY3RUYWdzKE5TQXJyYXkgKik7CiAKIHBy
aXZhdGU6CisgICAgTmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmLCBO
ZmNTZXJ2aWNlJik7CisKKyAgICB2b2lkIHJlc3RhcnRQb2xsaW5nKCk7CisgICAgdm9pZCBzdGFy
dFBvbGxpbmcoKTsKKwogICAgIFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+IG1fc2Vzc2lvbjsK
ICAgICBSZXRhaW5QdHI8V0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKICAg
ICBXZWFrUHRyPE5mY1NlcnZpY2U+IG1fc2VydmljZTsKKyAgICBSdW5Mb29wOjpUaW1lcjxOZmND
b25uZWN0aW9uPiBtX3JldHJ5VGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L05mY0Nvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tCmluZGV4IDMyNDZlZTc0OTc2ZTlhODBmZTZhM2Q0
NDY3ZTVjN2Y1MDEwMWZhNDIuLjhlZDcxZWU2ZjI0MWE3NDU4YzBmNjA1ZDNlZDhhMWQ0ZGI1NTZh
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL05mY0Nvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNDUsMjAgKzQ1LDI0IEBA
IGlubGluZSBib29sIGNvbXBhcmVWZXJzaW9uKE5TRGF0YSAqZGF0YSwgY29uc3QgdWludDhfdCB2
ZXJzaW9uW10sIHNpemVfdCB2ZXJzaW9uCiB9CiB9IC8vIG5hbWVzcGFjZQogCitSZWY8TmZjQ29u
bmVjdGlvbj4gTmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+
JiYgc2Vzc2lvbiwgTmZjU2VydmljZSYgc2VydmljZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOZmNDb25uZWN0aW9uKFdURk1vdmUoc2Vzc2lvbiksIHNlcnZpY2UpKTsKK30KKwogTmZj
Q29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmIHNl
c3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Npb24oV1RGTW92ZShzZXNz
aW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQogICAgICwgbV9zZXJ2aWNlKG1h
a2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9yZXRyeVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJk5mY0Nvbm5lY3Rpb246OnN0YXJ0UG9sbGluZykKIHsKICAgICBbbV9zZXNzaW9uIHNl
dERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOwotICAgIFttX3Nlc3Npb24gc3RhcnRQb2xsaW5n
XTsKKyAgICBzdGFydFBvbGxpbmcoKTsKIH0KIAogTmZjQ29ubmVjdGlvbjo6fk5mY0Nvbm5lY3Rp
b24oKQogewotICAgIFttX3Nlc3Npb24gZGlzY29ubmVjdFRhZ107Ci0gICAgW21fc2Vzc2lvbiBz
dG9wUG9sbGluZ107Ci0gICAgW21fc2Vzc2lvbiBlbmRTZXNzaW9uXTsKKyAgICBzdG9wKCk7CiB9
CiAKIFZlY3Rvcjx1aW50OF90PiBOZmNDb25uZWN0aW9uOjp0cmFuc2FjdChWZWN0b3I8dWludDhf
dD4mJiBkYXRhKSBjb25zdApAQCAtNzEsMTYgKzc1LDMzIEBAIFZlY3Rvcjx1aW50OF90PiBOZmND
b25uZWN0aW9uOjp0cmFuc2FjdChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSBjb25zdAogICAgIHJl
dHVybiByZXNwb25zZTsKIH0KIAotdm9pZCBOZmNDb25uZWN0aW9uOjpkaWREZXRlY3RUYWdzKE5T
QXJyYXkgKnRhZ3MpIGNvbnN0Cit2b2lkIE5mY0Nvbm5lY3Rpb246OnN0b3AoKSBjb25zdAorewor
ICAgIFttX3Nlc3Npb24gZGlzY29ubmVjdFRhZ107CisgICAgW21fc2Vzc2lvbiBzdG9wUG9sbGlu
Z107CisgICAgW21fc2Vzc2lvbiBlbmRTZXNzaW9uXTsKK30KKwordm9pZCBOZmNDb25uZWN0aW9u
OjpkaWREZXRlY3RUYWdzKE5TQXJyYXkgKnRhZ3MpCiB7Ci0gICAgaWYgKCFtX3NlcnZpY2UpCisg
ICAgaWYgKCFtX3NlcnZpY2UgfHwgIXRhZ3MuY291bnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIEZJWE1FKDIwMDkzMik6IFdhcm4gdXNlcnMgd2hlbiBtdWx0aXBsZSBORkMgdGFncyBwcmVz
ZW50Ci0gICAgZm9yIChORlRhZyAqdGFnIGluIHRhZ3MpIHsKLSAgICAgICAgaWYgKHRhZy50eXBl
ICE9IE5GVGFnVHlwZUdlbmVyaWM0QSkKKyAgICAvLyBBIHBoeXNpY2FsIE5GQyB0YWcgY291bGQg
aGF2ZSBtdWx0aXBsZSBpbnRlcmZhY2VzLgorICAgIC8vIFRoZXJlZm9yZSwgd2UgdXNlIHRhZ0lE
IHRvIGRldGVjdCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcGh5c2ljYWwgdGFncy4KKyAgICBOU0Rh
dGEgKnRhZ0lEID0gKChORlRhZyAqKXRhZ3NbMF0pLnRhZ0lEOworICAgIGZvciAoTkZUYWcgKnRh
ZyA6IHRhZ3MpIHsKKyAgICAgICAgaWYgKFt0YWdJRCBpc0VxdWFsVG9EYXRhOnRhZy50YWdJRF0p
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFbbV9zZXNzaW9uIGNvbm5lY3RU
YWc6dGFnXSkKKyAgICAgICAgbV9zZXJ2aWNlLT5kaWREZXRlY3RNdWx0aXBsZVRhZ3MoKTsKKyAg
ICAgICAgcmVzdGFydFBvbGxpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IEZJWE1FKDIwMzIzNCk6IFRlbGwgdXNlcnMgdG8gc3dpdGNoIHRvIGEgZGlmZmVyZW50IHRhZyBp
ZiB0aGUgdGFnIGlzIG5vdCBvZiB0eXBlIE5GVGFnVHlwZUdlbmVyaWM0QQorICAgIC8vIG9yIGNh
bid0IHNwZWFrIFUyRi9GSURPMi4KKyAgICBmb3IgKE5GVGFnICp0YWcgOiB0YWdzKSB7CisgICAg
ICAgIGlmICh0YWcudHlwZSAhPSBORlRhZ1R5cGVHZW5lcmljNEEgfHwgIVttX3Nlc3Npb24gY29u
bmVjdFRhZzp0YWddKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQ29uZmly
bSB0aGUgRklETyBhcHBsZXQgaXMgYXZhbGlhYmxlIGJlZm9yZSByZXR1cm4uCkBAIC05NCw4ICsx
MTUsMjUgQEAgdm9pZCBOZmNDb25uZWN0aW9uOjpkaWREZXRlY3RUYWdzKE5TQXJyYXkgKnRhZ3Mp
IGNvbnN0CiAgICAgICAgIH0KIAogICAgICAgICBtX3NlcnZpY2UtPmRpZENvbm5lY3RUYWcoKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgcmVzdGFydFBvbGxp
bmcoKTsKK30KKworLy8gTmVhckZpZWxkIHBvbGxpbmcgaXMgYSBvbmUgc2hvdCBwb2xsaW5nLiBJ
dCBoYWx0cyBhZnRlciB0YWdzIGFyZSBkZXRlY3RlZC4KKy8vIFRoZXJlZm9yZSwgYSByZXN0YXJ0
IHByb2Nlc3MgaXMgbmVlZGVkIHRvIHJlc3VtZSBwb2xsaW5nIGFmdGVyIGVycm9yLgordm9pZCBO
ZmNDb25uZWN0aW9uOjpyZXN0YXJ0UG9sbGluZygpCit7CisgICAgW21fc2Vzc2lvbiBzdG9wUG9s
bGluZ107CisgICAgbV9yZXRyeVRpbWVyLnN0YXJ0T25lU2hvdCgxX3MpOyAvLyBNYWdpYyBudW1i
ZXIgdG8gZ2l2ZSB1c2VycyBlbm91Z2ggdGltZSBmb3IgcmVhY3Rpb25zLgorfQorCit2b2lkIE5m
Y0Nvbm5lY3Rpb246OnN0YXJ0UG9sbGluZygpCit7CisgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7
CisgICAgW21fc2Vzc2lvbiBzdGFydFBvbGxpbmdXaXRoRXJyb3I6JmVycm9yXTsKKyAgICBpZiAo
ZXJyb3IpCisgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQgTkZDIHJlYWRlciBwb2xs
aW5nOiAlQCIsIGVycm9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2
aWNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9O
ZmNTZXJ2aWNlLmgKaW5kZXggMzcyODAxOTQ3MTg5NWYzZDc1NTU1YjlkYTQ4NTg0NjdjN2U2OGZl
My4uMjE1MDM0NGMxZjYyMDVjM2M2Nzg1YWVlNzZjMDRiY2U1ZmM3MDBiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2Vydmlj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L05mY1NlcnZpY2UuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
IAogI2luY2x1ZGUgIkZpZG9TZXJ2aWNlLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAog
T0JKQ19DTEFTUyBORlJlYWRlclNlc3Npb247CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBDdGFwTmZjRHJpdmVyOworY2xhc3MgTmZjQ29ubmVjdGlvbjsKIAogY2xhc3MgTmZjU2Vydmlj
ZSA6IHB1YmxpYyBGaWRvU2VydmljZSB7CiBwdWJsaWM6CkBAIC00MiwxNSArNDMsMTYgQEAgcHVi
bGljOgogCiAgICAgLy8gRm9yIE5mY0Nvbm5lY3Rpb24uCiAgICAgdm9pZCBkaWRDb25uZWN0VGFn
KCk7CisgICAgdm9pZCBkaWREZXRlY3RNdWx0aXBsZVRhZ3MoKSBjb25zdDsKIAogI2lmIEhBVkUo
TkVBUl9GSUVMRCkKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNldERyaXZlcihzdGQ6OnVuaXF1ZV9w
dHI8Q3RhcE5mY0RyaXZlcj4mJik7CisgICAgdm9pZCBzZXRDb25uZWN0aW9uKFJlZjxOZmNDb25u
ZWN0aW9uPiYmKTsgLy8gRm9yIE1vY2tOZmNDb25uZWN0aW9uCiAjZW5kaWYKIAogcHJpdmF0ZToK
ICAgICB2b2lkIHN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKSBmaW5hbDsKLSAgICB2b2lkIGNvbnRp
bnVlQWRkRGV2aWNlQWZ0ZXJHZXRJbmZvKFZlY3Rvcjx1aW50OF90PiYmIHJlc3BvbnNlKTsKKyAg
ICB2b2lkIHJlc3RhcnREaXNjb3ZlcnlJbnRlcm5hbCgpIGZpbmFsOwogCiAgICAgLy8gT3ZlcnJp
ZGVkIGJ5IE1vY2tOZmNTZXJ2aWNlLgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVN0YXJ0RGlz
Y292ZXJ5KCk7CkBAIC01OCw4ICs2MCw5IEBAIHByaXZhdGU6CiAjaWYgSEFWRShORUFSX0ZJRUxE
KQogICAgIC8vIE9ubHkgb25lIHJlYWRlciBzZXNzaW9uIGlzIGFsbG93ZWQgcGVyIHRpbWUuCiAg
ICAgLy8gS2VlcCB0aGUgcmVhZGVyIHNlc3Npb24gYWxpdmUgaGVyZSB3aGVuIGl0IHRyaWVzIHRv
IGNvbm5lY3QgdG8gYSB0YWcuCi0gICAgc3RkOjp1bmlxdWVfcHRyPEN0YXBOZmNEcml2ZXI+IG1f
ZHJpdmVyOworICAgIFJlZlB0cjxOZmNDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAjZW5kaWYK
KyAgICBSdW5Mb29wOjpUaW1lcjxOZmNTZXJ2aWNlPiBtX3Jlc3RhcnRUaW1lcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0KaW5kZXggNzUyZDc4
OGQzYjUyMzY5ZDA0OTA4YjA2ODYzMTQ0MjVhZWYyNGU2NS4uNTgzMjdiMjJmZmNlNTA3YmNhMDRl
NGU4MTQ4OTk1MTZmZWY0NmM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1tCkBAIC00MSw2
ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZmNTZXJ2aWNlOjpOZmNTZXJ2aWNlKE9i
c2VydmVyJiBvYnNlcnZlcikKICAgICA6IEZpZG9TZXJ2aWNlKG9ic2VydmVyKQorICAgICwgbV9y
ZXN0YXJ0VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjU2VydmljZTo6cGxhdGZvcm1T
dGFydERpc2NvdmVyeSkKIHsKIH0KIApAQCAtNTEsMTQgKzUyLDIyIEBAIE5mY1NlcnZpY2U6On5O
ZmNTZXJ2aWNlKCkKIHZvaWQgTmZjU2VydmljZTo6ZGlkQ29ubmVjdFRhZygpCiB7CiAjaWYgSEFW
RShORUFSX0ZJRUxEKQotICAgIGdldEluZm8oV1RGTW92ZShtX2RyaXZlcikpOworICAgIGF1dG8g
Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKKyAgICBBU1NFUlQoY29ubmVjdGlvbik7CisgICAg
Z2V0SW5mbyhXVEY6Om1ha2VVbmlxdWU8Q3RhcE5mY0RyaXZlcj4oY29ubmVjdGlvbi5yZWxlYXNl
Tm9uTnVsbCgpKSk7CiAjZW5kaWYKIH0KIAordm9pZCBOZmNTZXJ2aWNlOjpkaWREZXRlY3RNdWx0
aXBsZVRhZ3MoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRoaXMtPm9ic2Vy
dmVyKCkpCisgICAgICAgIG9ic2VydmVyLT5zZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50
aWNhdGlvblN0YXR1czo6TXVsdGlwbGVORkNUYWdzUHJlc2VudCk7Cit9CisKICNpZiBIQVZFKE5F
QVJfRklFTEQpCi12b2lkIE5mY1NlcnZpY2U6OnNldERyaXZlcihzdGQ6OnVuaXF1ZV9wdHI8Q3Rh
cE5mY0RyaXZlcj4mJiBkcml2ZXIpCit2b2lkIE5mY1NlcnZpY2U6OnNldENvbm5lY3Rpb24oUmVm
PE5mY0Nvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICBtX2RyaXZlciA9IFdURk1vdmUo
ZHJpdmVyKTsKKyAgICBtX2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKGNvbm5lY3Rpb24pOwogfQogI2Vu
ZGlmCiAKQEAgLTY3LDYgKzc2LDE1IEBAIHZvaWQgTmZjU2VydmljZTo6c3RhcnREaXNjb3ZlcnlJ
bnRlcm5hbCgpCiAgICAgcGxhdGZvcm1TdGFydERpc2NvdmVyeSgpOwogfQogCit2b2lkIE5mY1Nl
cnZpY2U6OnJlc3RhcnREaXNjb3ZlcnlJbnRlcm5hbCgpCit7CisjaWYgSEFWRShORUFSX0ZJRUxE
KQorICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+c3RvcCgpOwor
I2VuZGlmCisgICAgbV9yZXN0YXJ0VGltZXIuc3RhcnRPbmVTaG90KDFfcyk7IC8vIE1hZ2ljIG51
bWJlciB0byBnaXZlIHVzZXJzIGVub3VnaCB0aW1lIGZvciByZWFjdGlvbnMuCit9CisKIHZvaWQg
TmZjU2VydmljZTo6cGxhdGZvcm1TdGFydERpc2NvdmVyeSgpCiB7CiAjaWYgSEFWRShORUFSX0ZJ
RUxEKQpAQCAtODcsOCArMTA1LDggQEAgdm9pZCBOZmNTZXJ2aWNlOjpwbGF0Zm9ybVN0YXJ0RGlz
Y292ZXJ5KCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIC8vIEN0YXBOZmNEcml2ZXIgYW5kIE5mY0Nvbm5lY3Rpb24gd2lsbCB0YWtlIGNhcmUg
b2YgcG9sbGluZyB0YWdzIGFuZCBjb25uZWN0aW5nIHRvIHRoZW0uCi0gICAgICAgICAgICBtX2Ry
aXZlciA9IFdURjo6bWFrZVVuaXF1ZTxDdGFwTmZjRHJpdmVyPihtYWtlVW5pcXVlUmVmPE5mY0Nv
bm5lY3Rpb24+KFdURk1vdmUoc2Vzc2lvbiksICp0aGlzKSk7CisgICAgICAgICAgICAvLyBOZmND
b25uZWN0aW9uIHdpbGwgdGFrZSBjYXJlIG9mIHBvbGxpbmcgdGFncyBhbmQgY29ubmVjdGluZyB0
byB0aGVtLgorICAgICAgICAgICAgbV9jb25uZWN0aW9uID0gTmZjQ29ubmVjdGlvbjo6Y3JlYXRl
KFdURk1vdmUoc2Vzc2lvbiksICp0aGlzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAgICAgW1tn
ZXRORkhhcmR3YXJlTWFuYWdlckNsYXNzKCkgc2hhcmVkSGFyZHdhcmVNYW5hZ2VyXSBzdGFydFJl
YWRlclNlc3Npb246Y2FsbGJhY2suZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5o
CmluZGV4IDlmZDFjOWI0MTBiODIzMmI0ZDM1ZTBlMTI4NjdmZDM2NDZkNTY2YmEuLjMxNzYyYjE0
ZjVjYzgwMzRhMjNkZmE0YWZhYTc0ZWJmNzgxMjE4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNT
ZXJ2aWNlLmgKQEAgLTM5LDExICszOSwxMyBAQCBwdWJsaWM6CiAgICAgTW9ja05mY1NlcnZpY2Uo
T2JzZXJ2ZXImLCBjb25zdCBXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uJik7CiAKICAgICBOU0RhdGEqIHRyYW5zY2VpdmUoKTsKKyAgICB2b2lkIHJlY2VpdmVTdG9w
UG9sbGluZygpOworICAgIHZvaWQgcmVjZWl2ZVN0YXJ0UG9sbGluZygpOwogCiBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1TdGFydERpc2NvdmVyeSgpIGZpbmFsOwogCi0gICAgdm9pZCBkZXRl
Y3RUYWdzKCkgY29uc3Q7CisgICAgdm9pZCBkZXRlY3RUYWdzKCk7CiAKICAgICBXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tOZmNTZXJ2aWNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5tbQppbmRleCBjYTUyMmM1ZTNhM2QyOGQ0MjA1NTgz
NzJiMTU3MWY3MTNlMzdkMWM5Li5jMzA4NThmYmVkODY5MWRhMzFjYWM3MDdmN2UxNzNjOTA0ZmYz
ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tOZmNTZXJ2aWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UubW0KQEAgLTM4LDIwICszOCwyNiBA
QAogCiAjaW1wb3J0ICJOZWFyRmllbGRTb2Z0TGluay5oIgogCituYW1lc3BhY2UgewordWludDhf
dCB0YWdJRDFbXSA9IHsgMHgwMSB9OwordWludDhfdCB0YWdJRDJbXSA9IHsgMHgwMiB9OworfQor
CiAjaWYgSEFWRShORUFSX0ZJRUxEKQogCiBAaW50ZXJmYWNlIFdLTW9ja05GVGFnIDogTlNPYmpl
Y3QgPE5GVGFnPgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihORlRhZ1R5cGUpdHlw
ZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFR5cGU6KE5GVGFnVHlwZSl0eXBlIHRhZ0lEOihO
U0RhdGEgKil0YWdJRDsKIAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tNb2NrTkZUYWcgewog
ICAgIE5GVGFnVHlwZSBfdHlwZTsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBfdGFnSUQ7CiB9CiAK
IEBzeW50aGVzaXplIHRlY2hub2xvZ3k9X3RlY2hub2xvZ3k7Ci1Ac3ludGhlc2l6ZSB0YWdJRD1f
dGFnSUQ7CiBAc3ludGhlc2l6ZSBBcHBEYXRhPV9BcHBEYXRhOwogQHN5bnRoZXNpemUgVUlEPV9V
SUQ7CiBAc3ludGhlc2l6ZSBuZGVmQXZhaWxhYmlsaXR5PV9uZGVmQXZhaWxhYmlsaXR5OwpAQCAt
NjYsMTcgKzcyLDIyIEBAIC0gKE5GVGFnVHlwZSl0eXBlCiAgICAgcmV0dXJuIF90eXBlOwogfQog
CistIChOU0RhdGEgKil0YWdJRAoreworICAgIHJldHVybiBfdGFnSUQuZ2V0KCk7Cit9CisKIC0g
KGluc3RhbmNldHlwZSlpbml0V2l0aE5GVGFnOihpZDxORlRhZz4pdGFnCiB7Ci0gICAgaWYgKChz
ZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7CiAg
ICAgICAgIF90eXBlID0gdGFnLnR5cGU7CisgICAgICAgIF90YWdJRCA9IHRhZy50YWdJRDsKKyAg
ICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIFtfdGFn
SUQgcmVsZWFzZV07Ci0gICAgX3RhZ0lEID0gbmlsOwogICAgIFtfQXBwRGF0YSByZWxlYXNlXTsK
ICAgICBfQXBwRGF0YSA9IG5pbDsKICAgICBbX1VJRCByZWxlYXNlXTsKQEAgLTk3LDggKzEwOCwx
NSBAQCAtIChCT09MKWlzRXF1YWxUb05GVGFnOihpZDxORlRhZz4pdGFnCiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFR5cGU6KE5GVGFnVHlwZSl0eXBlCiB7Ci0gICAgaWYgKChzZWxmID0gW3N1
cGVyIGluaXRdKSkKKyAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhUeXBlOnR5cGUgdGFnSUQ6YWRv
cHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0YWdJRDEgbGVuZ3RoOnNpemVvZih0
YWdJRDEpXSkuZ2V0KCldOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihORlRh
Z1R5cGUpdHlwZSB0YWdJRDooTlNEYXRhICopdGFnSUQKK3sKKyAgICBpZiAoKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKSB7CiAgICAgICAgIF90eXBlID0gdHlwZTsKKyAgICAgICAgX3RhZ0lEID0gdGFn
SUQ7CisgICAgfQogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xMzIsNiArMTUwLDIyIEBAIHN0
YXRpYyBCT09MIE5GUmVhZGVyU2Vzc2lvbkNvbm5lY3RUYWcoaWQsIFNFTCwgTkZUYWcgKikKICAg
ICByZXR1cm4gWUVTOwogfQogCitzdGF0aWMgQk9PTCBORlJlYWRlclNlc3Npb25TdG9wUG9sbGlu
ZyhpZCwgU0VMKQoreworICAgIGlmICghZ2xvYmFsTmZjU2VydmljZSkKKyAgICAgICAgcmV0dXJu
IE5POworICAgIGdsb2JhbE5mY1NlcnZpY2UtPnJlY2VpdmVTdG9wUG9sbGluZygpOworICAgIHJl
dHVybiBZRVM7Cit9CisKK3N0YXRpYyBCT09MIE5GUmVhZGVyU2Vzc2lvblN0YXJ0UG9sbGluZ1dp
dGhFcnJvcihpZCwgU0VMLCBOU0Vycm9yICoqKQoreworICAgIGlmICghZ2xvYmFsTmZjU2Vydmlj
ZSkKKyAgICAgICAgcmV0dXJuIE5POworICAgIGdsb2JhbE5mY1NlcnZpY2UtPnJlY2VpdmVTdGFy
dFBvbGxpbmcoKTsKKyAgICByZXR1cm4gWUVTOworfQorCiBzdGF0aWMgTlNEYXRhKiBORlJlYWRl
clNlc3Npb25UcmFuc2NlaXZlKGlkLCBTRUwsIE5TRGF0YSAqKQogewogICAgIGlmICghZ2xvYmFs
TmZjU2VydmljZSkKQEAgLTE1OSw2ICsxOTMsMjEgQEAgTlNEYXRhKiBNb2NrTmZjU2VydmljZTo6
dHJhbnNjZWl2ZSgpCiAgICAgcmV0dXJuIFtyZXN1bHQgYXV0b3JlbGVhc2VdOwogfQogCit2b2lk
IE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZlU3RvcFBvbGxpbmcoKQoreworICAgIC8vIEZvciBwdXJw
b3NlIG9mIHJlc3RhcnQgcG9sbGluZy4KKyAgICBtX2NvbmZpZ3VyYXRpb24ubmZjLT5tdWx0aXBs
ZVBoeXNpY2FsVGFncyA9IGZhbHNlOworfQorCit2b2lkIE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZl
U3RhcnRQb2xsaW5nKCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5kZXRlY3RUYWdzKCk7CisgICAgfSk7Cit9
CisKIHZvaWQgTW9ja05mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKQogewogI2lm
IEhBVkUoTkVBUl9GSUVMRCkKQEAgLTE3NywyMSArMjI2LDIwIEBAIHZvaWQgTW9ja05mY1NlcnZp
Y2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKQogICAgICAgICBNZXRob2QgbWV0aG9kVG9Td2l6
emxlMyA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGdldE5GUmVhZGVyU2Vzc2lvbkNsYXNzKCks
IEBzZWxlY3Rvcih0cmFuc2NlaXZlOikpOwogICAgICAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRp
b24obWV0aG9kVG9Td2l6emxlMywgKElNUClORlJlYWRlclNlc3Npb25UcmFuc2NlaXZlKTsKIAot
ICAgICAgICBhdXRvIHJlYWRlclNlc3Npb24gPSBhZG9wdE5TKFthbGxvY05GUmVhZGVyU2Vzc2lv
bkluc3RhbmNlKCkgaW5pdF0pOwotICAgICAgICBzZXREcml2ZXIoV1RGOjptYWtlVW5pcXVlPEN0
YXBOZmNEcml2ZXI+KG1ha2VVbmlxdWVSZWY8TmZjQ29ubmVjdGlvbj4ocmVhZGVyU2Vzc2lvbi5n
ZXQoKSwgKnRoaXMpKSk7CisgICAgICAgIE1ldGhvZCBtZXRob2RUb1N3aXp6bGU0ID0gY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2QoZ2V0TkZSZWFkZXJTZXNzaW9uQ2xhc3MoKSwgQHNlbGVjdG9yKHN0
b3BQb2xsaW5nKSk7CisgICAgICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtZXRob2RUb1N3
aXp6bGU0LCAoSU1QKU5GUmVhZGVyU2Vzc2lvblN0b3BQb2xsaW5nKTsKIAotICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7Ci0g
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIHdlYWtUaGlzLT5kZXRlY3RUYWdzKCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1
cm47CisgICAgICAgIE1ldGhvZCBtZXRob2RUb1N3aXp6bGU1ID0gY2xhc3NfZ2V0SW5zdGFuY2VN
ZXRob2QoZ2V0TkZSZWFkZXJTZXNzaW9uQ2xhc3MoKSwgQHNlbGVjdG9yKHN0YXJ0UG9sbGluZ1dp
dGhFcnJvcjopKTsKKyAgICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvU3dp
enpsZTUsIChJTVApTkZSZWFkZXJTZXNzaW9uU3RhcnRQb2xsaW5nV2l0aEVycm9yKTsKKworICAg
ICAgICBhdXRvIHJlYWRlclNlc3Npb24gPSBhZG9wdE5TKFthbGxvY05GUmVhZGVyU2Vzc2lvbklu
c3RhbmNlKCkgaW5pdF0pOworICAgICAgICBzZXRDb25uZWN0aW9uKE5mY0Nvbm5lY3Rpb246OmNy
ZWF0ZShyZWFkZXJTZXNzaW9uLmdldCgpLCAqdGhpcykpOwogICAgIH0KICAgICBMT0dfRVJST1Io
Ik5vIG5mYyBhdXRoZW50aWNhdG9ycyBpcyBhdmFpbGFibGUuIik7CiAjZW5kaWYgLy8gSEFWRShO
RUFSX0ZJRUxEKQogfQogCi12b2lkIE1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RUYWdzKCkgY29uc3QK
K3ZvaWQgTW9ja05mY1NlcnZpY2U6OmRldGVjdFRhZ3MoKQogewogI2lmIEhBVkUoTkVBUl9GSUVM
RCkKICAgICBpZiAobV9jb25maWd1cmF0aW9uLm5mYy0+ZXJyb3IgPT0gTW9jazo6TmZjRXJyb3I6
Ok5vVGFncykKQEAgLTIwNyw2ICsyNTUsOSBAQCB2b2lkIE1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RU
YWdzKCkgY29uc3QKICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24ubmZjLT5tdWx0aXBsZVRhZ3Mp
CiAgICAgICAgICAgICBbdGFncyBhZGRPYmplY3Q6YWRvcHROUyhbW1dLTW9ja05GVGFnIGFsbG9j
XSBpbml0V2l0aFR5cGU6TkZUYWdUeXBlR2VuZXJpYzRBXSkuZ2V0KCldOwogCisgICAgICAgIGlm
IChjb25maWd1cmF0aW9uLm5mYy0+bXVsdGlwbGVQaHlzaWNhbFRhZ3MpCisgICAgICAgICAgICBb
dGFncyBhZGRPYmplY3Q6YWRvcHROUyhbW1dLTW9ja05GVGFnIGFsbG9jXSBpbml0V2l0aFR5cGU6
TkZUYWdUeXBlR2VuZXJpYzRBIHRhZ0lEOmFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6dGFnSUQyIGxlbmd0aDpzaXplb2YodGFnSUQyKV0pLmdldCgpXSkuZ2V0KCldOworCiAg
ICAgICAgIFtnbG9iYWxORlJlYWRlclNlc3Npb25EZWxlZ2F0ZSByZWFkZXJTZXNzaW9uOm5pbCBk
aWREZXRlY3RUYWdzOnRhZ3MuZ2V0KCldOwogICAgIH0pOwogICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwg
MCksIGNhbGxiYWNrLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNEcml2ZXIuY3BwCmluZGV4
IDBmNmE3OTFjZWFkOWJmZWM1OTljYjZkNjkxZjI4OTgwZGMxMDMxMTcuLjRhOWNhZjIwMzBmNzY2
NzMyOGM4MGM1Y2E5YjMyMDVkMjRhZTU0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVy
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBhcGR1OwogdXNpbmcgbmFtZXNwYWNlIGZpZG87CiAKLUN0YXBOZmNEcml2ZXI6OkN0YXBOZmNE
cml2ZXIoVW5pcXVlUmVmPE5mY0Nvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK0N0YXBOZmNEcml2
ZXI6OkN0YXBOZmNEcml2ZXIoUmVmPE5mY0Nvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6
IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBO
ZmNEcml2ZXIuaAppbmRleCBlNmQxMjllNzRlNDgxMTBlYjdjOGQwYTU5Y2RmMjQ0NzRmYTMwNjM1
Li4zNTlkYWFmODFkY2YwNDcxYWU0NDgyNzI4MzU3NzMyOGNlYWYxYWRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNEcml2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRv
L0N0YXBOZmNEcml2ZXIuaApAQCAtMzcsMTQgKzM3LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Ly8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE5MDEzMC9m
aWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxOTAxMzAuaHRt
bCNuZmMKIGNsYXNzIEN0YXBOZmNEcml2ZXIgOiBwdWJsaWMgQ3RhcERyaXZlciB7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgQ3RhcE5mY0RyaXZlcihVbmlxdWVSZWY8TmZjQ29ubmVjdGlvbj4mJik7
CisgICAgZXhwbGljaXQgQ3RhcE5mY0RyaXZlcihSZWY8TmZjQ29ubmVjdGlvbj4mJik7CiAKICAg
ICB2b2lkIHRyYW5zYWN0KFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIFJlc3BvbnNlQ2FsbGJhY2sm
JikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXNwb25kQXN5bmMoUmVzcG9uc2VDYWxs
YmFjayYmLCBWZWN0b3I8dWludDhfdD4mJiByZXNwb25zZSkgY29uc3Q7CiAKLSAgICBVbmlxdWVS
ZWY8TmZjQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFJlZjxOZmNDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVudGlj
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRv
L1UyZkF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IDc5MzZjNWIyZWMyYWI1ZmU2MDJlMGQyMjgyNjJj
NzUxNzI0ZTkyZmYuLjlkM2JkYTUyYTVlYjE0Yjk1ZWFjMWY1NTQ1NzM5NjZlM2EyOGUzNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
VTJmQXV0aGVudGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNwcApAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVTJm
Q29tbWFuZENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VMmZSZXNwb25zZUNvbnZl
cnRlci5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQyMzkzZmZjNGZmOGIz
MmNhZWU2MDE1OGVlOTE0NTBhMjNhZjQ3ZTguLjQ2NjAwNWM3MjM4Mjc1MDM5YmEwOGFiOTFkYjBk
ZjlhMjcyMWMwZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMC0yMSAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gV2FybiB1c2VycyB3aGVuIG11bHRp
cGxlIE5GQyB0YWdzIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDkzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQ4OTA3MzY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW06CisgICAgICAgICgtW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFu
ZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICBBZGRzIGEgbmV3IHRlc3QgZm9yIC1bX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XS4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWw6IEFkZGVkLgorCiAyMDE5
LTEwLTE4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBF
V1Mgc2hvdWxkIGhhdmUgYSB3YXkgdG8gcmV0cnkgYSBwYXRjaApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBiODBlODI0NDBlZGU1YWE3M2FhMmE4ODM1NWMzZTllNzE2MmYzN2Y4Li5lNzk0ZDhk
NDBjNWQxY2FjZTFlYWQwYmE3OTE0YWQxMmVlNWYxZGIxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzUwLDYgKzM1MCw3IEBACiAJCTU3OTY1MUU3MjE2QkZERUQwMDZFQkZFNSAvKiBGaWRv
SGlkTWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5j
cHAgKi87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50
RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1
bHRDcnlwdG8uY3BwICovOyB9OwogCQk1Nzk3RkUzMzFFQjE1QUIxMDBCMkY0QTAgLyogbmF2aWdh
dGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyog
bmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLzsgfTsKKwkJNTc5ODMzN0My
MzVFQjY4OTAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1t
dWx0aXBsZS10YWdzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc5ODMzN0IyMzVFQjY1QzAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWwgKi87IH07CiAJCTU3QTc5
ODU3MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2
RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tICovOyB9OwogCQk1N0MzRkE2NjFGN0MyNDhGMDA5
RDRCODAgLyogV2Vha1B0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0I5QkMzNzFBNjc0ODIzMDBGRTU2NzggLyogV2Vha1B0ci5jcHAgKi87IH07
CiAJCTU3QzYyNDRFMjM0NkJDRkEwMDM4M0ZFNyAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDNjI0
NEQyMzQ2QkNGQTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gKi87IH07
CkBAIC0xNDQ5LDYgKzE0NTAsNyBAQAogCQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4NUUwOSAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTU3NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1
Nzk4MzM3QzIzNUVCNjg5MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2
M0RFQTIzNEVBNjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
bmZjLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUx
RUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFs
cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZF
NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMTg4NCw2ICsxODg2LDcgQEAKIAkJNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1
IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRD
cnlwdG8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlv
bkNsaWVudERlZmF1bHRDcnlwdG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlw
dG8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJuYXZpZ2F0aW9uLWNsaWVudC1k
ZWZhdWx0LWNyeXB0by5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc5ODMz
N0IyMzVFQjY1QzAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5m
Yy1tdWx0aXBsZS10YWdzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OThFMkFGMUNBRjVDMjgwMEM1Q0JBMCAvKiBQcm92
aXNpb25hbFVSTE5vdENoYW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFByb3Zpc2lvbmFsVVJMTm90Q2hhbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0M2MjQ0RDIzNDZCQ0ZBMDAzODNGRTcgLyogX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzk5LDYgKzM0
MDIsNyBAQAogCQkJCTU3NjYzREYyMjM1N0U0NUQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgKi8sCiAJCQkJNTc3NDU0Q0YyMzU5QjMz
ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVk
ZW50aWFscy5odG1sICovLAogCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKKwkJCQk1Nzk4MzM3QjIzNUVC
NjVDMDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRp
cGxlLXRhZ3MuaHRtbCAqLywKIAkJCQk1NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgKi8sCiAJCQkJNTc3NDU0RDEyMzU5
QkFENTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1j
cmVkZW50aWFscy5odG1sICovLAogCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCmluZGV4IDZmNDE4YWUwMTQ5NGZmMDgzMTcyZTJmYTdlNzllNDM5ZGQ5
ZWY3YmUuLmIxZmM5Y2I1YTIzZTM5NWUwNDE3YjY4ZWVhOGNhMjcyYWEyNGFiZTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTQyLDYgKzQyLDcgQEAKIHN0YXRpYyBi
b29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxGYWlsZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxTdWNjZWRlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRp
b25QYW5lbFVwZGF0ZU11bHRpcGxlTkZDVGFnc1ByZXNlbnQgPSBmYWxzZTsKIHN0YXRpYyBib29s
IHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQgPSBmYWxzZTsK
IHN0YXRpYyBSZXRhaW5QdHI8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbD4gZ1BhbmVsOwogCkBA
IC01Myw4ICs1NCwxNCBAQCBAaW1wbGVtZW50YXRpb24gVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxEZWxlZ2F0ZQogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBh
bmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVcGRhdGUpdXBkYXRlCiB7CiAgICAgQVNTRVJUX05FKHBhbmVsLCBuaWwpOwotICAgIGlmICh1
cGRhdGUgPT0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3Vu
ZCkKKyAgICBpZiAodXBkYXRlID09IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVNdWx0
aXBsZU5GQ1RhZ3NQcmVzZW50KSB7CisgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRh
dGVNdWx0aXBsZU5GQ1RhZ3NQcmVzZW50ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAodXBkYXRlID09IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRl
bnRpYWxzRm91bmQpIHsKICAgICAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3Jl
ZGVudGlhbHNGb3VuZCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIC0gKHZv
aWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0
aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KXJl
c3VsdApAQCAtNTc4LDYgKzU4NSwyMyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE51
bGxQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgW3dlYlZpZXcgd2FpdEZvck1l
c3NhZ2U6QCJPcGVyYXRpb24gdGltZWQgb3V0LiJdOwogfQogCitURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdzUHJlc2VudCkKK3sKKyAgICByZXNldCgpOwor
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtbXVsdGlw
bGUtdGFncyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7Cisg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGlj
YXRpb25QYW5lbFJhbik7CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBk
YXRlTXVsdGlwbGVORkNUYWdzUHJlc2VudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBs
ZS10YWdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RhM2Y1OGM2MjkyMTFkMGZjNjEzMWFhOGZhNzlmYjVl
MDIwMWE4OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRh
Z3MuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4K
KzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxz
LnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0
cnVlLCBuZmM6IHsgbXVsdGlwbGVQaHlzaWNhbFRhZ3M6dHJ1ZSB9IH0pOworICAgICAgICBpbnRl
cm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQor
CisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAg
ICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHRpbWVvdXQ6IDEw
MCwKKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9w
dGlvbnMpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDVmM2E0NDVhOTc0NTRkMGI2N2ZkYzhkMTE4MzM1
ZWUzZDY2MmQ5NC4uYWU4OTIyNTg2MGU1N2I3Y2ExODAyZGJhOWY2N2E1NjZjMGVjOGUzNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTIxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBXYXJuIHVzZXJzIHdoZW4gbXVsdGlwbGUg
TkZDIHRhZ3MgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwOTMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDg5MDczNj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMuaHRtbDoKKyAgICAgICAgQWRkcyBuZXcgdGVz
dHMgZm9yIG11bHRpcGxlIHBoeXNpY2FsIHRhZ3MgYW5kIHNlcnZpY2UgcmVzdGFydC4KKwogMjAx
OS0xMC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TIFdLMl0gU3VwcG9ydCBoaWRpbmcgaWZyYW1lIHNjcm9sbGJhcnMgdmlhIDo6LXdlYmtp
dC1zY3JvbGxiYXIgc3R5bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyZWF0ZS1zdWNjZXNzLW5mYy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggOWY1ZTgzMTJl
MDJmM2JiZjk1OGEyOGI0MzcxZGVkYmVlMzA1ZjM3Zi4uZDM3NGQ2OWNmZGUwZDk0MTE5OGJkZTZj
NWZiZGM5NmI2YTA3ZDVkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLW5mYy5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1zdWNjZXNzLW5mYy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsNCArMyw2
IEBAIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaW5pbXVtIG9w
dGlvbnMgaW4gYSBtb2NrIG5mYyBhdXRoZW50CiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2NyZWF0ZV1dIHdpdGggYXV0aGVudGljYXRvclNlbGVjdGlvbiB7ICdjcm9zcy1wbGF0Zm9ybScg
fSBpbiBhIG1vY2sgbmZjIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tjcmVhdGVdXSB3aXRoIG11bHRpcGxlIHRhZ3MgaW4gYSBtb2NrIG5mYyBhdXRoZW50aWNh
dG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBVMkYgaW4g
YSBtb2NrIG5mYyBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Y3JlYXRlXV0gd2l0aCBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzIGluIGEgbW9jayBuZmMgYXV0aGVu
dGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2Vy
dmljZSByZXN0YXJ0IGluIGEgbW9jayBuZmMgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtc3VjY2Vzcy1uZmMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMuaHRtbAppbmRl
eCA4MmQwNzA2MThiM2UwMzNjMzQ4YTc3NDJjMTBhZjZlYzExYzY2MzU2Li4wYjk2MjJhNjZiMmU5
MmE0YjAxMzE2MGIyNDFhNmYyYWJmMTc2NDYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbmZjLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLW5mYy5odHRwcy5odG1sCkBAIC0yMSw4ICsyMSw3IEBA
CiAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJN
VEl6TkRVMiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJw
dWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAKKyAg
ICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0KICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIApAQCAtNDQsOCArNDMsNyBAQAog
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwu
cGFyc2UoIk1USXpORFUyIiksCiAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb246IHsgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ6ICJjcm9zcy1wbGF0Zm9y
bSIgfSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgICAgICAgICBhdXRo
ZW50aWNhdG9yU2VsZWN0aW9uOiB7IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiAiY3Jvc3MtcGxh
dGZvcm0iIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIApAQCAtNjYsOCArNjQsNyBAQAog
ICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCiAgICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJ
ek5EVTIiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVi
bGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC03IH1dCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKQEAgLTkwLDggKzg3LDcgQEAKICAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAogICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpO
RFUyIiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1Ymxp
Yy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XQogICAgICAgICAgICAgfQogICAgICAgICB9OwogCkBAIC0xMDEsNCArOTcsNTAgQEAKICAg
ICAgICAgICAgIGNoZWNrVTJmTWFrZUNyZWRlbnRpYWxSZXN1bHQoY3JlZGVudGlhbCk7CiAgICAg
ICAgIH0pOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIFUy
RiBpbiBhIG1vY2sgbmZjIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsK
KyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxo
b3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAg
ICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAor
ICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
YWxnOiAtNyB9XQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNh
dGlvbkNvbmZpZ3VyYXRpb24oeyBuZmM6IHsgZXJyb3I6ICJzdWNjZXNzIiwgcGF5bG9hZEJhc2U2
NDogW3Rlc3ROZmNDdGFwVmVyc2lvbkJhc2U2NCwgdGVzdEdldEluZm9SZXNwb25zZUFwZHVCYXNl
NjQsIHRlc3RDcmVhdGlvbk1lc3NhZ2VBcGR1QmFzZTY0XSwgbXVsdGlwbGVQaHlzaWNhbFRhZ3M6
IHRydWUgfSB9KTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
b3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgIGNoZWNrQ3RhcE1ha2VD
cmVkZW50aWFsUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzIGlu
IGEgbW9jayBuZmMgYXV0aGVudGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3Qi
LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAg
ICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC03IH1dCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIG5mYzogeyBlcnJvcjogIm1hbGlj
aW91cy1wYXlsb2FkIiwgcGF5bG9hZEJhc2U2NDogW3Rlc3REdW1teU1lc3NhZ2VQYXlsb2FkQmFz
ZTY0LCB0ZXN0TmZjQ3RhcFZlcnNpb25CYXNlNjQsIHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1QmFz
ZTY0LCB0ZXN0Q3JlYXRpb25NZXNzYWdlQXBkdUJhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+
IHsKKyAgICAgICAgICAgIGNoZWNrQ3RhcE1ha2VDcmVkZW50aWFsUmVzdWx0KGNyZWRlbnRpYWwp
OworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCBzZXJ2aWNlIHJlc3RhcnQgaW4gYSBtb2NrIG5mYyBhdXRoZW50aWNhdG9yLiIpOwogPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381533</attachid>
            <date>2019-10-22 02:06:18 -0700</date>
            <delta_ts>2019-10-23 14:27:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200932-20191022020617.patch</filename>
            <type>text/plain</type>
            <size>45808</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE1MmMxZGU3MmMzN2Q5
YTE4NTc5ZTRmYTJkYzdlN2IxNjhiYmZkNi4uNjBkZDMyZTY4YjBjNTFmMTAxNTQzNTNhMzliYTc0
MGZkMTM1YmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTIxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBXYXJu
IHVzZXJzIHdoZW4gbXVsdGlwbGUgTkZDIHRhZ3MgcHJlc2VudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTMyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NDg5MDczNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IG5ldyB0ZXN0cyBpbiBleGlzdGluZyB0ZXN0IGZpbGUuCisKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Ok5mY0Nv
bmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpOZmNDb25maWd1cmF0aW9uOjpkZWNvZGUpOgorICAg
ICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGw6Cisg
ICAgICAgIEFkZHMgYSBuZXcgdGVzdCBvcHRpb24uCisKIDIwMTktMTAtMjEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIFN1cHBvcnQg
aGlkaW5nIGlmcmFtZSBzY3JvbGxiYXJzIHZpYSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHN0eWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGU0MWRlMzhjNzA1NmMzYzNhNzc3M2I2NzJlYWJhNGM2NmYwNGFkMDcuLmE2NmYw
MTVkOWI2YmVmYzVkOWYxMTZjNDc1OGM3MDYwODZhODdhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzYgQEAKKzIwMTktMTAtMjEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNlcnMgd2hlbiBtdWx0aXBsZSBORkMgdGFncyBwcmVz
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5
MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0ODkwNzM2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgLVtfV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRp
b25QYW5lbDpdIHRvCisgICAgICAgIGluZm9ybSBjbGllbnRzIGFib3V0IG11bHRpcGxlIHBoeXNp
Y2FsIHRhZ3MgYXJlIHByZXNlbnRpbmcgc3VjaCB0aGF0IGNsaWVudHMgY2FuIGluc3RydWN0IHVz
ZXJzCisgICAgICAgIHRvIHNlbGVjdCBvbmx5IG9uZSBvZiB0aGVtIHBoeXNpY2FsbHkuIEdpdmVu
IGEgcGh5c2ljYWwgdGFnIGNvdWxkIGhhdmUgbXVsdGlwbGUgZGlmZmVyZW50CisgICAgICAgIGlu
dGVyZmFjZXMsIHdoaWNoIE5lYXJGaWVsZCB3aWxsIHRyZWF0IHRoZW0gaW50byBkaWZmZXJlbnQg
TkZUYWdzLCB0aGUgdGFnSUQgaXMgdGhlbiB1c2VkIHRvCisgICAgICAgIGlkZW50aWZ5IGlmIHRo
ZXJlIGFyZSBhY3R1YWxseSBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWxzbyBhZGRzIHRoZSBhYmlsaXR5IHRvIHJlc3RhcnQgcG9sbGluZyBvZiBhIHBhcnRp
dWNsYXIgTkZSZWFkZXJTZXNzaW9uIHRvIE5mY0Nvbm5lY3Rpb24KKyAgICAgICAgYW5kIHRoZSBh
YmlsaXR5IHRvIHJlc3RhcnQgdGhlIHdob2xlIHNlc3Npb24gdG8gTmZjU2VydmljZS4gVGhlIGZv
cm1lciBpcyB1c2VkIHRvIHJlY292ZXIgZnJvbSBlcnJvcnMKKyAgICAgICAgaW4gdGhlIGRpc2Nv
dmVyeSBzdGFnZXMsIGFuZCB0aGUgbGF0dGVyIGlzIHVzZWQgdG8gcmVjb3ZlciBmcm9tIGVycm9y
cyByZXR1cm5lZCBmcm9tIGF1dGhlbnRpY2F0b3JzCisgICAgICAgIGluIHRoZSByZXF1ZXN0IHN0
YWdlcy4gRm9yIHRoZSBsYXR0ZXIsIGdpdmVuIE5mY0Nvbm5lY3Rpb24gaXMgbm90IGF3YXJlZCBv
ZiB0aGUgc3ludGF4IG9mIEZJRE8yL1UyRgorICAgICAgICBwcm90b2NvbCwgYW5kIEN0YXBBdXRo
ZW50aWNhdG9yL1UyZkF1dGhlbnRpY2F0b3IgYXJlIG5vdCBhd2FyZWQgdGhlIHRyYW5zcG9ydCBv
ZiB0aGUgdW5kZXJuZWF0aCBkcml2ZXIuCisgICAgICAgIEEgZ2VuZXJpYyByZXN0YXJ0RGlzY292
ZXJ5IHByb2Nlc3MgaXMgYWRkZWQgdG8gZWFjaCBzZXJ2aWNlIGFuZCBpdCBpcyB1cCB0byB0aGUg
YWN0dWFsIHNlcnZpY2UgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBhY3R1YWwgcHJvY2VzcyBz
dWNoIHRoYXQgQXV0aGVudGljYXRvck1hbmFnZXIgY2FuIGFyYml0cmFyaWx5IGNhbGwgaXQgYWZ0
ZXIgZXhjZXB0aW9ucworICAgICAgICBhcmUgcmV0dXJuZWQgdG8gcmVzdGFydCB0aGUgd2hvbGUg
TkZDIHNlc3Npb24uIFRvIGFjaGlldmUgcmVzdGFydERpc2NvdmVyeSwgTmZjQ29ubmVjdGlvbiBp
cyBtYWRlCisgICAgICAgIFJlZkNvdW50ZWQgYXMgd2VsbCBzdWNoIHRoYXQgYm90aCB0aGUgTmZj
U2VydmljZSBhbmQgdGhlIEN0YXBOZmNEcml2ZXIgY291bGQgaG9sZCBpdCBhdCB0aGUgc2FtZSB0
aW1lLgorICAgICAgICBDdGFwTmZjRHJpdmVyIHVzZXMgdGhlIGNvbm5lY3Rpb24gdG8gY29tcGxl
dGUgcmVxdWVzdHMgYXMgYmVmb3JlIHdoaWxlIE5mY1NlcnZpY2UgaGFzIHRoZSBuZXcgY2FwYWJp
bGl0eQorICAgICAgICB0byB1c2UgaXQgdG8gc3RvcCB0aGUgY3VycmVudCBzZXNzaW9uIHdoZW4g
cmVzdGFydERpc2NvdmVyeSBraWNrcyBvZmYuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29j
b2EvTmVhckZpZWxkU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRv
ck1hbmFnZXI6OnNlcnZpY2VTdGF0dXNVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRvck1hbmFnZXI6OnJlc3BvbmRSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpyZXN0YXJ0RGlzY292ZXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6c3RhcnRE
aXNjb3ZlcnkpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vydmlj
ZTo6cmVzdGFydERpc2NvdmVyeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmg6CisgICAgICAgIChXZWJLaXQ6OkF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpyZXN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5l
Y3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZmNDb25uZWN0aW9uOjp+TmZjQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5m
Y0Nvbm5lY3Rpb246OnN0b3AgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9u
OjpkaWREZXRlY3RUYWdzKToKKyAgICAgICAgKFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6cmVzdGFy
dFBvbGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9uOjpzdGFydFBvbGxpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9uOjpkaWREZXRlY3RUYWdzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
U2VydmljZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9O
ZmNTZXJ2aWNlLm1tOgorICAgICAgICAoV2ViS2l0OjpOZmNTZXJ2aWNlOjpOZmNTZXJ2aWNlKToK
KyAgICAgICAgKFdlYktpdDo6TmZjU2VydmljZTo6ZGlkQ29ubmVjdFRhZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5mY1NlcnZpY2U6OmRpZERldGVjdE11bHRpcGxlVGFncyBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5mY1NlcnZpY2U6OnNldENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZmNTZXJ2aWNlOjpyZXN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpO
ZmNTZXJ2aWNlOjpwbGF0Zm9ybVN0YXJ0RGlzY292ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6TmZj
U2VydmljZTo6c2V0RHJpdmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNTZXJ2aWNlLm1tOgorICAgICAgICAoLVtXS01v
Y2tORlRhZyB0YWdJRF0pOgorICAgICAgICAoLVtXS01vY2tORlRhZyBpbml0V2l0aE5GVGFnOl0p
OgorICAgICAgICAoLVtXS01vY2tORlRhZyBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLTW9ja05G
VGFnIGluaXRXaXRoVHlwZTpdKToKKyAgICAgICAgKC1bV0tNb2NrTkZUYWcgaW5pdFdpdGhUeXBl
OnRhZ0lEOl0pOgorICAgICAgICAoV2ViS2l0OjpNb2NrTmZjU2VydmljZTo6cmVjZWl2ZVN0b3BQ
b2xsaW5nKToKKyAgICAgICAgKFdlYktpdDo6TW9ja05mY1NlcnZpY2U6OnJlY2VpdmVTdGFydFBv
bGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpNb2NrTmZjU2VydmljZTo6cGxhdGZvcm1TdGFydERp
c2NvdmVyeSk6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RUYWdzKToK
KyAgICAgICAgKFdlYktpdDo6TW9ja05mY1NlcnZpY2U6OmRldGVjdFRhZ3MgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNE
cml2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwTmZjRHJpdmVyOjpDdGFwTmZjRHJpdmVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJp
dmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0
aGVudGljYXRvci5jcHA6CisKIDIwMTktMTAtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgbW9yZSByZWxlYXNlIGxvZ2dpbmcgZm9yICJVbmV4cGVjdGVk
bHkgcmVzdW1lZCIgYXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCmluZGV4IGViMzgxY2Jh
MzE1YjI1NTAxNmI1N2U5OWZkMjc1ZDY5YTg2ZmI2ZDMuLjMyOGJiOWQ0ZWFhZmM3NWQ4M2M3MWE3
YzcyNzRkMTY1MDM2N2QyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCkBAIC05Myw2ICs5Myw3
IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIHsKICAgICAgICAg
TmZjRXJyb3IgZXJyb3IgeyBOZmNFcnJvcjo6U3VjY2VzcyB9OwogICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBwYXlsb2FkQmFzZTY0OwogICAgICAgICBib29sIG11bHRpcGxlVGFncyB7IGZhbHNlIH07
CisgICAgICAgIGJvb2wgbXVsdGlwbGVQaHlzaWNhbFRhZ3MgeyBmYWxzZSB9OwogCiAgICAgICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE5mY0NvbmZpZ3Vy
YXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xOTMsNyArMTk0LDcgQEAgT3B0aW9uYWw8TW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbj4gTW9ja1dl
YkF1dGhlbnRpY2EKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb246Ok5mY0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZXJyb3IgPDwgcGF5bG9hZEJhc2U2NCA8
PCBtdWx0aXBsZVRhZ3M7CisgICAgZW5jb2RlciA8PCBlcnJvciA8PCBwYXlsb2FkQmFzZTY0IDw8
IG11bHRpcGxlVGFncyA8PCBtdWx0aXBsZVBoeXNpY2FsVGFnczsKIH0KIAogdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KQEAgLTIwNiw2ICsyMDcsOCBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uOjpOZmNDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0aGVudGljYQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0Lm11bHRpcGxlVGFncykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubXVsdGlwbGVQaHlzaWNhbFRhZ3MpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb24uaWRsCmluZGV4IDE2NDcwZjkyNzI5ZGJhYTJhOTE1MmEwNTZiN2Y4YzVmNzQ1Y2Mz
OGQuLjc4NTM4NTE0NzZmY2NkNjIyODRjMzZiZjI3OTQyYThiMTdjNWRlMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmlkbApAQCAtMTAwLDQgKzEwMCw1IEBACiAgICAgTW9ja05mY0Vycm9yIGVy
cm9yID0gInN1Y2Nlc3MiOwogICAgIHNlcXVlbmNlPERPTVN0cmluZz4gcGF5bG9hZEJhc2U2NDsK
ICAgICBib29sZWFuIG11bHRpcGxlVGFncyA9IGZhbHNlOworICAgIGJvb2xlYW4gbXVsdGlwbGVQ
aHlzaWNhbFRhZ3MgPSBmYWxzZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9Db2NvYS9OZWFyRmllbGRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL05lYXJGaWVsZFNQSS5oCmluZGV4IDZiY2JhYTU0OWU3ODFlOWFjOWZjMWJiZDBlZGIx
M2RjZGIzZjI0OWYuLmUyMDZhMzZiZmUxNzI4ZTZmNjk4N2E0ZThiODYxNTk1NzU0OTZmZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCkBA
IC05MywxMiArOTMsMTEgQEAgdHlwZWRlZiBOU19FTlVNKHVpbnQzMl90LCBORk5kZWZBdmFpbGFi
aWxpdHkpIHsKIEBpbnRlcmZhY2UgTkZSZWFkZXJTZXNzaW9uIDogTkZTZXNzaW9uCiBAcHJvcGVy
dHkgKGFzc2lnbikgaWQ8TkZSZWFkZXJTZXNzaW9uRGVsZWdhdGU+IGRlbGVnYXRlOwogCi0tIChC
T09MKXN0YXJ0UG9sbGluZzsKKy0gKEJPT0wpc3RhcnRQb2xsaW5nV2l0aEVycm9yOihOU0Vycm9y
ICoqKW91dEVycm9yOwogLSAoQk9PTClzdG9wUG9sbGluZzsKIC0gKEJPT0wpY29ubmVjdFRhZzoo
TkZUYWcqKXRhZzsKIC0gKEJPT0wpZGlzY29ubmVjdFRhZzsKIC0gKE5TRGF0YSopdHJhbnNjZWl2
ZTooTlNEYXRhKiljYXBkdTsKLS0gKE5TRXJyb3IgKil1cGRhdGVVSUFsZXJ0TWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYWdlOwogQGVuZAogCiBAcHJvdG9jb2wgTkZSZWFkZXJTZXNzaW9uRGVsZWdh
dGUgPE5TT2JqZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDRj
ODE5ZWFhYTExNTQ5NjFjYTE3ZWRmMjIwMDNjZGQ3NTI1YjVmZWQuLjYyODkxZjQyZTBjZTIyMjA4
ZTQ2NDA0N2Y3MjdhNGNkNGU4YzQwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdl
ci5jcHAKQEAgLTIxMyw2ICsyMTMsMTIgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0
aGVudGljYXRvckFkZGVkKFJlZjxBdXRoZW50aWNhdG9yPiYmIGF1dGhlbnRpY2F0b3IKICAgICBB
U1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQogCit2b2lk
IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50aWNh
dGlvblN0YXR1cyBzdGF0dXMpCit7CisgICAgaWYgKGF1dG8gKnBhbmVsID0gbV9wZW5kaW5nUmVx
dWVzdERhdGEucGFuZWwuZ2V0KCkpCisgICAgICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5l
bChzdGF0dXMpOworfQorCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2
ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
QEAgLTIzMCw2ICsyMzYsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVj
ZWl2ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcmVz
cG9uZFJlY2VpdmVkSW50ZXJuYWwoV1RGTW92ZShyZXNwb25kKSk7CisgICAgcmVzdGFydERpc2Nv
dmVyeSgpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkb3duZ3JhZGUoQXV0aGVu
dGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNhdG9y
KQpAQCAtMzQxLDYgKzM0OCwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNldFN0
YXRlKCkKICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YSA9IHsgfTsKIH0KIAordm9pZCBBdXRoZW50
aWNhdG9yTWFuYWdlcjo6cmVzdGFydERpc2NvdmVyeSgpCit7CisgICAgZm9yIChhdXRvJiBzZXJ2
aWNlIDogbV9zZXJ2aWNlcykKKyAgICAgICAgc2VydmljZS0+cmVzdGFydERpc2NvdmVyeSgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAppbmRleCA0OTRhNDRkYzFkMGMxODI3ZDBl
YzVkYzAyNDFkMGM5ZjBmYjJhYmJkLi4zNjI4ZDU5OGZmNTVjYWU1NmMzZDU3ODk1YmVkNDY0MGRm
NmZjY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTczLDYgKzczLDcg
QEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vy
dmljZTo6T2JzZXJ2ZXIKICAgICB2b2lkIGF1dGhlbnRpY2F0b3JBZGRlZChSZWY8QXV0aGVudGlj
YXRvcj4mJikgZmluYWw7CisgICAgdm9pZCBzZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50
aWNhdGlvblN0YXR1cykgZmluYWw7CiAKICAgICAvLyBBdXRoZW50aWNhdG9yOjpPYnNlcnZlcgog
ICAgIHZvaWQgcmVzcG9uZFJlY2VpdmVkKFJlc3BvbmQmJikgZmluYWw7CkBAIC05MCw2ICs5MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5QYW5lbCgpOwogICAgIHZvaWQgc3RhcnRSZXF1ZXN0
KCk7CiAgICAgdm9pZCByZXNldFN0YXRlKCk7CisgICAgdm9pZCByZXN0YXJ0RGlzY292ZXJ5KCk7
CiAKICAgICAvLyBSZXF1ZXN0OiBXZSBvbmx5IGFsbG93IG9uZSByZXF1ZXN0IHBlciB0aW1lLiBB
IG5ldyByZXF1ZXN0IHdpbGwgY2FuY2VsIGFueSBwZW5kaW5nIG9uZXMuCiAgICAgV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YSBtX3BlbmRpbmdSZXF1ZXN0RGF0YTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFu
c3BvcnRTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcAppbmRleCBlODEwMzliNmRjYjQw
YzU2MjU1ZDc3ZjRkZWZkZTk2ZjFlNGQ0ZWY2Li5lZDE3NTllNzNhMzA1NjRlMmE0OTYyOGUyNDQ0
NzA2YjM3OGEzOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2UuY3BwCkBAIC03NSw3ICs3NSw2IEBAIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZShPYnNlcnZlciYgb2JzZXJ2ZXIpCiAK
IHZvaWQgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5KCkKIHsK
LSAgICAvLyBFbmZvcmNlIGFzeW5jaHJvbm91cyBleGVjdXRpb24gb2YgbWFrZUNyZWRlbnRpYWwu
CiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
ODMsNiArODIsMTUgQEAgdm9pZCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6c3RhcnRE
aXNjb3ZlcnkoKQogICAgIH0pOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2
aWNlOjpyZXN0YXJ0RGlzY292ZXJ5KCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5yZXN0YXJ0RGlzY292ZXJ5
SW50ZXJuYWwoKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFu
c3BvcnRTZXJ2aWNlLmgKaW5kZXggMDkwODRhYjhhN2M3OTA5MDUxN2YyZTcyZWI3YTU0NmQ5YWQy
NmVhMy4uOGNiZDEwMGVkYmIzOGVhMzY2ZDMzN2QzMDQ2NTEzMmJjZDBmZTg5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
clRyYW5zcG9ydFNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRp
b25GbGFncy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvclRyYW5zcG9ydC5oPgog
I2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAt
NDgsNiArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZh
dWx0OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yQWRkZWQoUmVmPEF1dGhl
bnRpY2F0b3I+JiYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VTdGF0dXNVcGRh
dGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRpYyBV
bmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IGNyZWF0ZShXZWJDb3JlOjpB
dXRoZW50aWNhdG9yVHJhbnNwb3J0LCBPYnNlcnZlciYpOwpAQCAtNTUsOCArNTcsOSBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZSgpID0gZGVm
YXVsdDsKIAotICAgIC8vIFRoaXMgb3BlcmF0aW9uIGlzIGd1YXJhbnRlZWQgdG8gZXhlY3V0ZSBh
c3luY2hyb25vdXNseS4KKyAgICAvLyBUaGVzZSBvcGVyYXRpb24gYXJlIGd1YXJhbnRlZWQgdG8g
ZXhlY3V0ZSBhc3luY2hyb25vdXNseS4KICAgICB2b2lkIHN0YXJ0RGlzY292ZXJ5KCk7CisgICAg
dm9pZCByZXN0YXJ0RGlzY292ZXJ5KCk7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZShPYnNlcnZlciYpOwpAQCAtNjUsNiArNjgsOSBAQCBw
cm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RGlzY292ZXJ5SW50
ZXJuYWwoKSA9IDA7CisgICAgLy8gTkZDIHNlcnZpY2UncyBwb2xsaW5nIGlzIG9uZSBzaG90LiBJ
dCBoYWx0cyBhZnRlciB0aGUgZmlyc3QgdGFncyBhcmUgZGV0ZWN0ZWQuCisgICAgLy8gVGhlcmVm
b3JlLCBhIHJlc3RhcnQgcHJvY2VzcyBpcyBuZWVkZWQgdG8gcmVzdW1lIHBvbGxpbmcgYWZ0ZXIg
ZXhjZXB0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdGFydERpc2NvdmVyeUludGVybmFsKCkg
eyB9OwogCiAgICAgV2Vha1B0cjxPYnNlcnZlcj4gbV9vYnNlcnZlcjsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9OZmNDb25uZWN0aW9uLmgKaW5kZXggM2I5ZDk1NzdlMjA1YWFiN2RiN2EzYWIxZTU1OWI5N2Rj
M2U5MjQ1Zi4uYjhhOTE3ZWFkMGEwYjhhZTc0NzMyNDZlMzg3MTNjMTc2ZTk2MWU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24uaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgRU5BQkxF
KFdFQl9BVVRITikgJiYgSEFWRShORUFSX0ZJRUxEKQogCi0jaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIE9CSkNfQ0xBU1MgTkZSZWFkZXJTZXNz
aW9uOwpAQCAtNDAsMjIgKzQwLDI3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZmNT
ZXJ2aWNlOwogCi1jbGFzcyBOZmNDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5m
Y0Nvbm5lY3Rpb24+IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShOZmNDb25uZWN0aW9uKTsKK2NsYXNzIE5mY0Nvbm5lY3Rpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxOZmNDb25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5mY0Nv
bm5lY3Rpb24+IHsKIHB1YmxpYzoKLSAgICBOZmNDb25uZWN0aW9uKFJldGFpblB0cjxORlJlYWRl
clNlc3Npb24+JiYsIE5mY1NlcnZpY2UmKTsKKyAgICBzdGF0aWMgUmVmPE5mY0Nvbm5lY3Rpb24+
IGNyZWF0ZShSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmLCBOZmNTZXJ2aWNlJik7CiAgICAg
fk5mY0Nvbm5lY3Rpb24oKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiB0cmFuc2FjdChWZWN0b3I8
dWludDhfdD4mJiBkYXRhKSBjb25zdDsKKyAgICB2b2lkIHN0b3AoKSBjb25zdDsKIAogICAgIC8v
IEZvciBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlCi0gICAgdm9pZCBkaWREZXRlY3RUYWdzKE5T
QXJyYXkgKikgY29uc3Q7CisgICAgdm9pZCBkaWREZXRlY3RUYWdzKE5TQXJyYXkgKik7CiAKIHBy
aXZhdGU6CisgICAgTmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmLCBO
ZmNTZXJ2aWNlJik7CisKKyAgICB2b2lkIHJlc3RhcnRQb2xsaW5nKCk7CisgICAgdm9pZCBzdGFy
dFBvbGxpbmcoKTsKKwogICAgIFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+IG1fc2Vzc2lvbjsK
ICAgICBSZXRhaW5QdHI8V0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKICAg
ICBXZWFrUHRyPE5mY1NlcnZpY2U+IG1fc2VydmljZTsKKyAgICBSdW5Mb29wOjpUaW1lcjxOZmND
b25uZWN0aW9uPiBtX3JldHJ5VGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L05mY0Nvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tCmluZGV4IDMyNDZlZTc0OTc2ZTlhODBmZTZhM2Q0
NDY3ZTVjN2Y1MDEwMWZhNDIuLjhlZDcxZWU2ZjI0MWE3NDU4YzBmNjA1ZDNlZDhhMWQ0ZGI1NTZh
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL05mY0Nvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbQpAQCAtNDUsMjAgKzQ1LDI0IEBA
IGlubGluZSBib29sIGNvbXBhcmVWZXJzaW9uKE5TRGF0YSAqZGF0YSwgY29uc3QgdWludDhfdCB2
ZXJzaW9uW10sIHNpemVfdCB2ZXJzaW9uCiB9CiB9IC8vIG5hbWVzcGFjZQogCitSZWY8TmZjQ29u
bmVjdGlvbj4gTmZjQ29ubmVjdGlvbjo6Y3JlYXRlKFJldGFpblB0cjxORlJlYWRlclNlc3Npb24+
JiYgc2Vzc2lvbiwgTmZjU2VydmljZSYgc2VydmljZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOZmNDb25uZWN0aW9uKFdURk1vdmUoc2Vzc2lvbiksIHNlcnZpY2UpKTsKK30KKwogTmZj
Q29ubmVjdGlvbjo6TmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiYmIHNl
c3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCiAgICAgOiBtX3Nlc3Npb24oV1RGTW92ZShzZXNz
aW9uKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLTkZSZWFkZXJTZXNzaW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjoqdGhpc10pKQogICAgICwgbV9zZXJ2aWNlKG1h
a2VXZWFrUHRyKHNlcnZpY2UpKQorICAgICwgbV9yZXRyeVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJk5mY0Nvbm5lY3Rpb246OnN0YXJ0UG9sbGluZykKIHsKICAgICBbbV9zZXNzaW9uIHNl
dERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOwotICAgIFttX3Nlc3Npb24gc3RhcnRQb2xsaW5n
XTsKKyAgICBzdGFydFBvbGxpbmcoKTsKIH0KIAogTmZjQ29ubmVjdGlvbjo6fk5mY0Nvbm5lY3Rp
b24oKQogewotICAgIFttX3Nlc3Npb24gZGlzY29ubmVjdFRhZ107Ci0gICAgW21fc2Vzc2lvbiBz
dG9wUG9sbGluZ107Ci0gICAgW21fc2Vzc2lvbiBlbmRTZXNzaW9uXTsKKyAgICBzdG9wKCk7CiB9
CiAKIFZlY3Rvcjx1aW50OF90PiBOZmNDb25uZWN0aW9uOjp0cmFuc2FjdChWZWN0b3I8dWludDhf
dD4mJiBkYXRhKSBjb25zdApAQCAtNzEsMTYgKzc1LDMzIEBAIFZlY3Rvcjx1aW50OF90PiBOZmND
b25uZWN0aW9uOjp0cmFuc2FjdChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSBjb25zdAogICAgIHJl
dHVybiByZXNwb25zZTsKIH0KIAotdm9pZCBOZmNDb25uZWN0aW9uOjpkaWREZXRlY3RUYWdzKE5T
QXJyYXkgKnRhZ3MpIGNvbnN0Cit2b2lkIE5mY0Nvbm5lY3Rpb246OnN0b3AoKSBjb25zdAorewor
ICAgIFttX3Nlc3Npb24gZGlzY29ubmVjdFRhZ107CisgICAgW21fc2Vzc2lvbiBzdG9wUG9sbGlu
Z107CisgICAgW21fc2Vzc2lvbiBlbmRTZXNzaW9uXTsKK30KKwordm9pZCBOZmNDb25uZWN0aW9u
OjpkaWREZXRlY3RUYWdzKE5TQXJyYXkgKnRhZ3MpCiB7Ci0gICAgaWYgKCFtX3NlcnZpY2UpCisg
ICAgaWYgKCFtX3NlcnZpY2UgfHwgIXRhZ3MuY291bnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIEZJWE1FKDIwMDkzMik6IFdhcm4gdXNlcnMgd2hlbiBtdWx0aXBsZSBORkMgdGFncyBwcmVz
ZW50Ci0gICAgZm9yIChORlRhZyAqdGFnIGluIHRhZ3MpIHsKLSAgICAgICAgaWYgKHRhZy50eXBl
ICE9IE5GVGFnVHlwZUdlbmVyaWM0QSkKKyAgICAvLyBBIHBoeXNpY2FsIE5GQyB0YWcgY291bGQg
aGF2ZSBtdWx0aXBsZSBpbnRlcmZhY2VzLgorICAgIC8vIFRoZXJlZm9yZSwgd2UgdXNlIHRhZ0lE
IHRvIGRldGVjdCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcGh5c2ljYWwgdGFncy4KKyAgICBOU0Rh
dGEgKnRhZ0lEID0gKChORlRhZyAqKXRhZ3NbMF0pLnRhZ0lEOworICAgIGZvciAoTkZUYWcgKnRh
ZyA6IHRhZ3MpIHsKKyAgICAgICAgaWYgKFt0YWdJRCBpc0VxdWFsVG9EYXRhOnRhZy50YWdJRF0p
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFbbV9zZXNzaW9uIGNvbm5lY3RU
YWc6dGFnXSkKKyAgICAgICAgbV9zZXJ2aWNlLT5kaWREZXRlY3RNdWx0aXBsZVRhZ3MoKTsKKyAg
ICAgICAgcmVzdGFydFBvbGxpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IEZJWE1FKDIwMzIzNCk6IFRlbGwgdXNlcnMgdG8gc3dpdGNoIHRvIGEgZGlmZmVyZW50IHRhZyBp
ZiB0aGUgdGFnIGlzIG5vdCBvZiB0eXBlIE5GVGFnVHlwZUdlbmVyaWM0QQorICAgIC8vIG9yIGNh
bid0IHNwZWFrIFUyRi9GSURPMi4KKyAgICBmb3IgKE5GVGFnICp0YWcgOiB0YWdzKSB7CisgICAg
ICAgIGlmICh0YWcudHlwZSAhPSBORlRhZ1R5cGVHZW5lcmljNEEgfHwgIVttX3Nlc3Npb24gY29u
bmVjdFRhZzp0YWddKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQ29uZmly
bSB0aGUgRklETyBhcHBsZXQgaXMgYXZhbGlhYmxlIGJlZm9yZSByZXR1cm4uCkBAIC05NCw4ICsx
MTUsMjUgQEAgdm9pZCBOZmNDb25uZWN0aW9uOjpkaWREZXRlY3RUYWdzKE5TQXJyYXkgKnRhZ3Mp
IGNvbnN0CiAgICAgICAgIH0KIAogICAgICAgICBtX3NlcnZpY2UtPmRpZENvbm5lY3RUYWcoKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgcmVzdGFydFBvbGxp
bmcoKTsKK30KKworLy8gTmVhckZpZWxkIHBvbGxpbmcgaXMgYSBvbmUgc2hvdCBwb2xsaW5nLiBJ
dCBoYWx0cyBhZnRlciB0YWdzIGFyZSBkZXRlY3RlZC4KKy8vIFRoZXJlZm9yZSwgYSByZXN0YXJ0
IHByb2Nlc3MgaXMgbmVlZGVkIHRvIHJlc3VtZSBwb2xsaW5nIGFmdGVyIGVycm9yLgordm9pZCBO
ZmNDb25uZWN0aW9uOjpyZXN0YXJ0UG9sbGluZygpCit7CisgICAgW21fc2Vzc2lvbiBzdG9wUG9s
bGluZ107CisgICAgbV9yZXRyeVRpbWVyLnN0YXJ0T25lU2hvdCgxX3MpOyAvLyBNYWdpYyBudW1i
ZXIgdG8gZ2l2ZSB1c2VycyBlbm91Z2ggdGltZSBmb3IgcmVhY3Rpb25zLgorfQorCit2b2lkIE5m
Y0Nvbm5lY3Rpb246OnN0YXJ0UG9sbGluZygpCit7CisgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7
CisgICAgW21fc2Vzc2lvbiBzdGFydFBvbGxpbmdXaXRoRXJyb3I6JmVycm9yXTsKKyAgICBpZiAo
ZXJyb3IpCisgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQgTkZDIHJlYWRlciBwb2xs
aW5nOiAlQCIsIGVycm9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2
aWNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9O
ZmNTZXJ2aWNlLmgKaW5kZXggMzcyODAxOTQ3MTg5NWYzZDc1NTU1YjlkYTQ4NTg0NjdjN2U2OGZl
My4uMjE1MDM0NGMxZjYyMDVjM2M2Nzg1YWVlNzZjMDRiY2U1ZmM3MDBiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2Vydmlj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L05mY1NlcnZpY2UuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
IAogI2luY2x1ZGUgIkZpZG9TZXJ2aWNlLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAog
T0JKQ19DTEFTUyBORlJlYWRlclNlc3Npb247CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBDdGFwTmZjRHJpdmVyOworY2xhc3MgTmZjQ29ubmVjdGlvbjsKIAogY2xhc3MgTmZjU2Vydmlj
ZSA6IHB1YmxpYyBGaWRvU2VydmljZSB7CiBwdWJsaWM6CkBAIC00MiwxNSArNDMsMTYgQEAgcHVi
bGljOgogCiAgICAgLy8gRm9yIE5mY0Nvbm5lY3Rpb24uCiAgICAgdm9pZCBkaWRDb25uZWN0VGFn
KCk7CisgICAgdm9pZCBkaWREZXRlY3RNdWx0aXBsZVRhZ3MoKSBjb25zdDsKIAogI2lmIEhBVkUo
TkVBUl9GSUVMRCkKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNldERyaXZlcihzdGQ6OnVuaXF1ZV9w
dHI8Q3RhcE5mY0RyaXZlcj4mJik7CisgICAgdm9pZCBzZXRDb25uZWN0aW9uKFJlZjxOZmNDb25u
ZWN0aW9uPiYmKTsgLy8gRm9yIE1vY2tOZmNDb25uZWN0aW9uCiAjZW5kaWYKIAogcHJpdmF0ZToK
ICAgICB2b2lkIHN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKSBmaW5hbDsKLSAgICB2b2lkIGNvbnRp
bnVlQWRkRGV2aWNlQWZ0ZXJHZXRJbmZvKFZlY3Rvcjx1aW50OF90PiYmIHJlc3BvbnNlKTsKKyAg
ICB2b2lkIHJlc3RhcnREaXNjb3ZlcnlJbnRlcm5hbCgpIGZpbmFsOwogCiAgICAgLy8gT3ZlcnJp
ZGVkIGJ5IE1vY2tOZmNTZXJ2aWNlLgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVN0YXJ0RGlz
Y292ZXJ5KCk7CkBAIC01OCw4ICs2MCw5IEBAIHByaXZhdGU6CiAjaWYgSEFWRShORUFSX0ZJRUxE
KQogICAgIC8vIE9ubHkgb25lIHJlYWRlciBzZXNzaW9uIGlzIGFsbG93ZWQgcGVyIHRpbWUuCiAg
ICAgLy8gS2VlcCB0aGUgcmVhZGVyIHNlc3Npb24gYWxpdmUgaGVyZSB3aGVuIGl0IHRyaWVzIHRv
IGNvbm5lY3QgdG8gYSB0YWcuCi0gICAgc3RkOjp1bmlxdWVfcHRyPEN0YXBOZmNEcml2ZXI+IG1f
ZHJpdmVyOworICAgIFJlZlB0cjxOZmNDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAjZW5kaWYK
KyAgICBSdW5Mb29wOjpUaW1lcjxOZmNTZXJ2aWNlPiBtX3Jlc3RhcnRUaW1lcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0KaW5kZXggNzUyZDc4
OGQzYjUyMzY5ZDA0OTA4YjA2ODYzMTQ0MjVhZWYyNGU2NS4uNTgzMjdiMjJmZmNlNTA3YmNhMDRl
NGU4MTQ4OTk1MTZmZWY0NmM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1tCkBAIC00MSw2
ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZmNTZXJ2aWNlOjpOZmNTZXJ2aWNlKE9i
c2VydmVyJiBvYnNlcnZlcikKICAgICA6IEZpZG9TZXJ2aWNlKG9ic2VydmVyKQorICAgICwgbV9y
ZXN0YXJ0VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmZjU2VydmljZTo6cGxhdGZvcm1T
dGFydERpc2NvdmVyeSkKIHsKIH0KIApAQCAtNTEsMTQgKzUyLDIyIEBAIE5mY1NlcnZpY2U6On5O
ZmNTZXJ2aWNlKCkKIHZvaWQgTmZjU2VydmljZTo6ZGlkQ29ubmVjdFRhZygpCiB7CiAjaWYgSEFW
RShORUFSX0ZJRUxEKQotICAgIGdldEluZm8oV1RGTW92ZShtX2RyaXZlcikpOworICAgIGF1dG8g
Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKKyAgICBBU1NFUlQoY29ubmVjdGlvbik7CisgICAg
Z2V0SW5mbyhXVEY6Om1ha2VVbmlxdWU8Q3RhcE5mY0RyaXZlcj4oY29ubmVjdGlvbi5yZWxlYXNl
Tm9uTnVsbCgpKSk7CiAjZW5kaWYKIH0KIAordm9pZCBOZmNTZXJ2aWNlOjpkaWREZXRlY3RNdWx0
aXBsZVRhZ3MoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRoaXMtPm9ic2Vy
dmVyKCkpCisgICAgICAgIG9ic2VydmVyLT5zZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50
aWNhdGlvblN0YXR1czo6TXVsdGlwbGVORkNUYWdzUHJlc2VudCk7Cit9CisKICNpZiBIQVZFKE5F
QVJfRklFTEQpCi12b2lkIE5mY1NlcnZpY2U6OnNldERyaXZlcihzdGQ6OnVuaXF1ZV9wdHI8Q3Rh
cE5mY0RyaXZlcj4mJiBkcml2ZXIpCit2b2lkIE5mY1NlcnZpY2U6OnNldENvbm5lY3Rpb24oUmVm
PE5mY0Nvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICBtX2RyaXZlciA9IFdURk1vdmUo
ZHJpdmVyKTsKKyAgICBtX2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKGNvbm5lY3Rpb24pOwogfQogI2Vu
ZGlmCiAKQEAgLTY3LDYgKzc2LDE1IEBAIHZvaWQgTmZjU2VydmljZTo6c3RhcnREaXNjb3ZlcnlJ
bnRlcm5hbCgpCiAgICAgcGxhdGZvcm1TdGFydERpc2NvdmVyeSgpOwogfQogCit2b2lkIE5mY1Nl
cnZpY2U6OnJlc3RhcnREaXNjb3ZlcnlJbnRlcm5hbCgpCit7CisjaWYgSEFWRShORUFSX0ZJRUxE
KQorICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+c3RvcCgpOwor
I2VuZGlmCisgICAgbV9yZXN0YXJ0VGltZXIuc3RhcnRPbmVTaG90KDFfcyk7IC8vIE1hZ2ljIG51
bWJlciB0byBnaXZlIHVzZXJzIGVub3VnaCB0aW1lIGZvciByZWFjdGlvbnMuCit9CisKIHZvaWQg
TmZjU2VydmljZTo6cGxhdGZvcm1TdGFydERpc2NvdmVyeSgpCiB7CiAjaWYgSEFWRShORUFSX0ZJ
RUxEKQpAQCAtODcsOCArMTA1LDggQEAgdm9pZCBOZmNTZXJ2aWNlOjpwbGF0Zm9ybVN0YXJ0RGlz
Y292ZXJ5KCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIC8vIEN0YXBOZmNEcml2ZXIgYW5kIE5mY0Nvbm5lY3Rpb24gd2lsbCB0YWtlIGNhcmUg
b2YgcG9sbGluZyB0YWdzIGFuZCBjb25uZWN0aW5nIHRvIHRoZW0uCi0gICAgICAgICAgICBtX2Ry
aXZlciA9IFdURjo6bWFrZVVuaXF1ZTxDdGFwTmZjRHJpdmVyPihtYWtlVW5pcXVlUmVmPE5mY0Nv
bm5lY3Rpb24+KFdURk1vdmUoc2Vzc2lvbiksICp0aGlzKSk7CisgICAgICAgICAgICAvLyBOZmND
b25uZWN0aW9uIHdpbGwgdGFrZSBjYXJlIG9mIHBvbGxpbmcgdGFncyBhbmQgY29ubmVjdGluZyB0
byB0aGVtLgorICAgICAgICAgICAgbV9jb25uZWN0aW9uID0gTmZjQ29ubmVjdGlvbjo6Y3JlYXRl
KFdURk1vdmUoc2Vzc2lvbiksICp0aGlzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAgICAgW1tn
ZXRORkhhcmR3YXJlTWFuYWdlckNsYXNzKCkgc2hhcmVkSGFyZHdhcmVNYW5hZ2VyXSBzdGFydFJl
YWRlclNlc3Npb246Y2FsbGJhY2suZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5o
CmluZGV4IDlmZDFjOWI0MTBiODIzMmI0ZDM1ZTBlMTI4NjdmZDM2NDZkNTY2YmEuLjMxNzYyYjE0
ZjVjYzgwMzRhMjNkZmE0YWZhYTc0ZWJmNzgxMjE4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNT
ZXJ2aWNlLmgKQEAgLTM5LDExICszOSwxMyBAQCBwdWJsaWM6CiAgICAgTW9ja05mY1NlcnZpY2Uo
T2JzZXJ2ZXImLCBjb25zdCBXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uJik7CiAKICAgICBOU0RhdGEqIHRyYW5zY2VpdmUoKTsKKyAgICB2b2lkIHJlY2VpdmVTdG9w
UG9sbGluZygpOworICAgIHZvaWQgcmVjZWl2ZVN0YXJ0UG9sbGluZygpOwogCiBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1TdGFydERpc2NvdmVyeSgpIGZpbmFsOwogCi0gICAgdm9pZCBkZXRl
Y3RUYWdzKCkgY29uc3Q7CisgICAgdm9pZCBkZXRlY3RUYWdzKCk7CiAKICAgICBXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tOZmNTZXJ2aWNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5tbQppbmRleCBjYTUyMmM1ZTNhM2QyOGQ0MjA1NTgz
NzJiMTU3MWY3MTNlMzdkMWM5Li5jMzA4NThmYmVkODY5MWRhMzFjYWM3MDdmN2UxNzNjOTA0ZmYz
ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tOZmNTZXJ2aWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UubW0KQEAgLTM4LDIwICszOCwyNiBA
QAogCiAjaW1wb3J0ICJOZWFyRmllbGRTb2Z0TGluay5oIgogCituYW1lc3BhY2UgewordWludDhf
dCB0YWdJRDFbXSA9IHsgMHgwMSB9OwordWludDhfdCB0YWdJRDJbXSA9IHsgMHgwMiB9OworfQor
CiAjaWYgSEFWRShORUFSX0ZJRUxEKQogCiBAaW50ZXJmYWNlIFdLTW9ja05GVGFnIDogTlNPYmpl
Y3QgPE5GVGFnPgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihORlRhZ1R5cGUpdHlw
ZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFR5cGU6KE5GVGFnVHlwZSl0eXBlIHRhZ0lEOihO
U0RhdGEgKil0YWdJRDsKIAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tNb2NrTkZUYWcgewog
ICAgIE5GVGFnVHlwZSBfdHlwZTsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBfdGFnSUQ7CiB9CiAK
IEBzeW50aGVzaXplIHRlY2hub2xvZ3k9X3RlY2hub2xvZ3k7Ci1Ac3ludGhlc2l6ZSB0YWdJRD1f
dGFnSUQ7CiBAc3ludGhlc2l6ZSBBcHBEYXRhPV9BcHBEYXRhOwogQHN5bnRoZXNpemUgVUlEPV9V
SUQ7CiBAc3ludGhlc2l6ZSBuZGVmQXZhaWxhYmlsaXR5PV9uZGVmQXZhaWxhYmlsaXR5OwpAQCAt
NjYsMTcgKzcyLDIyIEBAIC0gKE5GVGFnVHlwZSl0eXBlCiAgICAgcmV0dXJuIF90eXBlOwogfQog
CistIChOU0RhdGEgKil0YWdJRAoreworICAgIHJldHVybiBfdGFnSUQuZ2V0KCk7Cit9CisKIC0g
KGluc3RhbmNldHlwZSlpbml0V2l0aE5GVGFnOihpZDxORlRhZz4pdGFnCiB7Ci0gICAgaWYgKChz
ZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7CiAg
ICAgICAgIF90eXBlID0gdGFnLnR5cGU7CisgICAgICAgIF90YWdJRCA9IHRhZy50YWdJRDsKKyAg
ICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIFtfdGFn
SUQgcmVsZWFzZV07Ci0gICAgX3RhZ0lEID0gbmlsOwogICAgIFtfQXBwRGF0YSByZWxlYXNlXTsK
ICAgICBfQXBwRGF0YSA9IG5pbDsKICAgICBbX1VJRCByZWxlYXNlXTsKQEAgLTk3LDggKzEwOCwx
NSBAQCAtIChCT09MKWlzRXF1YWxUb05GVGFnOihpZDxORlRhZz4pdGFnCiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFR5cGU6KE5GVGFnVHlwZSl0eXBlCiB7Ci0gICAgaWYgKChzZWxmID0gW3N1
cGVyIGluaXRdKSkKKyAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhUeXBlOnR5cGUgdGFnSUQ6YWRv
cHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0YWdJRDEgbGVuZ3RoOnNpemVvZih0
YWdJRDEpXSkuZ2V0KCldOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihORlRh
Z1R5cGUpdHlwZSB0YWdJRDooTlNEYXRhICopdGFnSUQKK3sKKyAgICBpZiAoKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKSB7CiAgICAgICAgIF90eXBlID0gdHlwZTsKKyAgICAgICAgX3RhZ0lEID0gdGFn
SUQ7CisgICAgfQogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xMzIsNiArMTUwLDIyIEBAIHN0
YXRpYyBCT09MIE5GUmVhZGVyU2Vzc2lvbkNvbm5lY3RUYWcoaWQsIFNFTCwgTkZUYWcgKikKICAg
ICByZXR1cm4gWUVTOwogfQogCitzdGF0aWMgQk9PTCBORlJlYWRlclNlc3Npb25TdG9wUG9sbGlu
ZyhpZCwgU0VMKQoreworICAgIGlmICghZ2xvYmFsTmZjU2VydmljZSkKKyAgICAgICAgcmV0dXJu
IE5POworICAgIGdsb2JhbE5mY1NlcnZpY2UtPnJlY2VpdmVTdG9wUG9sbGluZygpOworICAgIHJl
dHVybiBZRVM7Cit9CisKK3N0YXRpYyBCT09MIE5GUmVhZGVyU2Vzc2lvblN0YXJ0UG9sbGluZ1dp
dGhFcnJvcihpZCwgU0VMLCBOU0Vycm9yICoqKQoreworICAgIGlmICghZ2xvYmFsTmZjU2Vydmlj
ZSkKKyAgICAgICAgcmV0dXJuIE5POworICAgIGdsb2JhbE5mY1NlcnZpY2UtPnJlY2VpdmVTdGFy
dFBvbGxpbmcoKTsKKyAgICByZXR1cm4gWUVTOworfQorCiBzdGF0aWMgTlNEYXRhKiBORlJlYWRl
clNlc3Npb25UcmFuc2NlaXZlKGlkLCBTRUwsIE5TRGF0YSAqKQogewogICAgIGlmICghZ2xvYmFs
TmZjU2VydmljZSkKQEAgLTE1OSw2ICsxOTMsMjEgQEAgTlNEYXRhKiBNb2NrTmZjU2VydmljZTo6
dHJhbnNjZWl2ZSgpCiAgICAgcmV0dXJuIFtyZXN1bHQgYXV0b3JlbGVhc2VdOwogfQogCit2b2lk
IE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZlU3RvcFBvbGxpbmcoKQoreworICAgIC8vIEZvciBwdXJw
b3NlIG9mIHJlc3RhcnQgcG9sbGluZy4KKyAgICBtX2NvbmZpZ3VyYXRpb24ubmZjLT5tdWx0aXBs
ZVBoeXNpY2FsVGFncyA9IGZhbHNlOworfQorCit2b2lkIE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZl
U3RhcnRQb2xsaW5nKCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5kZXRlY3RUYWdzKCk7CisgICAgfSk7Cit9
CisKIHZvaWQgTW9ja05mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKQogewogI2lm
IEhBVkUoTkVBUl9GSUVMRCkKQEAgLTE3NywyMSArMjI2LDIwIEBAIHZvaWQgTW9ja05mY1NlcnZp
Y2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKQogICAgICAgICBNZXRob2QgbWV0aG9kVG9Td2l6
emxlMyA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKGdldE5GUmVhZGVyU2Vzc2lvbkNsYXNzKCks
IEBzZWxlY3Rvcih0cmFuc2NlaXZlOikpOwogICAgICAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRp
b24obWV0aG9kVG9Td2l6emxlMywgKElNUClORlJlYWRlclNlc3Npb25UcmFuc2NlaXZlKTsKIAot
ICAgICAgICBhdXRvIHJlYWRlclNlc3Npb24gPSBhZG9wdE5TKFthbGxvY05GUmVhZGVyU2Vzc2lv
bkluc3RhbmNlKCkgaW5pdF0pOwotICAgICAgICBzZXREcml2ZXIoV1RGOjptYWtlVW5pcXVlPEN0
YXBOZmNEcml2ZXI+KG1ha2VVbmlxdWVSZWY8TmZjQ29ubmVjdGlvbj4ocmVhZGVyU2Vzc2lvbi5n
ZXQoKSwgKnRoaXMpKSk7CisgICAgICAgIE1ldGhvZCBtZXRob2RUb1N3aXp6bGU0ID0gY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2QoZ2V0TkZSZWFkZXJTZXNzaW9uQ2xhc3MoKSwgQHNlbGVjdG9yKHN0
b3BQb2xsaW5nKSk7CisgICAgICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtZXRob2RUb1N3
aXp6bGU0LCAoSU1QKU5GUmVhZGVyU2Vzc2lvblN0b3BQb2xsaW5nKTsKIAotICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7Ci0g
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIHdlYWtUaGlzLT5kZXRlY3RUYWdzKCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1
cm47CisgICAgICAgIE1ldGhvZCBtZXRob2RUb1N3aXp6bGU1ID0gY2xhc3NfZ2V0SW5zdGFuY2VN
ZXRob2QoZ2V0TkZSZWFkZXJTZXNzaW9uQ2xhc3MoKSwgQHNlbGVjdG9yKHN0YXJ0UG9sbGluZ1dp
dGhFcnJvcjopKTsKKyAgICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvU3dp
enpsZTUsIChJTVApTkZSZWFkZXJTZXNzaW9uU3RhcnRQb2xsaW5nV2l0aEVycm9yKTsKKworICAg
ICAgICBhdXRvIHJlYWRlclNlc3Npb24gPSBhZG9wdE5TKFthbGxvY05GUmVhZGVyU2Vzc2lvbklu
c3RhbmNlKCkgaW5pdF0pOworICAgICAgICBzZXRDb25uZWN0aW9uKE5mY0Nvbm5lY3Rpb246OmNy
ZWF0ZShyZWFkZXJTZXNzaW9uLmdldCgpLCAqdGhpcykpOwogICAgIH0KICAgICBMT0dfRVJST1Io
Ik5vIG5mYyBhdXRoZW50aWNhdG9ycyBpcyBhdmFpbGFibGUuIik7CiAjZW5kaWYgLy8gSEFWRShO
RUFSX0ZJRUxEKQogfQogCi12b2lkIE1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RUYWdzKCkgY29uc3QK
K3ZvaWQgTW9ja05mY1NlcnZpY2U6OmRldGVjdFRhZ3MoKQogewogI2lmIEhBVkUoTkVBUl9GSUVM
RCkKICAgICBpZiAobV9jb25maWd1cmF0aW9uLm5mYy0+ZXJyb3IgPT0gTW9jazo6TmZjRXJyb3I6
Ok5vVGFncykKQEAgLTIwNyw2ICsyNTUsOSBAQCB2b2lkIE1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RU
YWdzKCkgY29uc3QKICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24ubmZjLT5tdWx0aXBsZVRhZ3Mp
CiAgICAgICAgICAgICBbdGFncyBhZGRPYmplY3Q6YWRvcHROUyhbW1dLTW9ja05GVGFnIGFsbG9j
XSBpbml0V2l0aFR5cGU6TkZUYWdUeXBlR2VuZXJpYzRBXSkuZ2V0KCldOwogCisgICAgICAgIGlm
IChjb25maWd1cmF0aW9uLm5mYy0+bXVsdGlwbGVQaHlzaWNhbFRhZ3MpCisgICAgICAgICAgICBb
dGFncyBhZGRPYmplY3Q6YWRvcHROUyhbW1dLTW9ja05GVGFnIGFsbG9jXSBpbml0V2l0aFR5cGU6
TkZUYWdUeXBlR2VuZXJpYzRBIHRhZ0lEOmFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6dGFnSUQyIGxlbmd0aDpzaXplb2YodGFnSUQyKV0pLmdldCgpXSkuZ2V0KCldOworCiAg
ICAgICAgIFtnbG9iYWxORlJlYWRlclNlc3Npb25EZWxlZ2F0ZSByZWFkZXJTZXNzaW9uOm5pbCBk
aWREZXRlY3RUYWdzOnRhZ3MuZ2V0KCldOwogICAgIH0pOwogICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwg
MCksIGNhbGxiYWNrLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNEcml2ZXIuY3BwCmluZGV4
IDBmNmE3OTFjZWFkOWJmZWM1OTljYjZkNjkxZjI4OTgwZGMxMDMxMTcuLjRhOWNhZjIwMzBmNzY2
NzMyOGM4MGM1Y2E5YjMyMDVkMjRhZTU0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVy
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBhcGR1OwogdXNpbmcgbmFtZXNwYWNlIGZpZG87CiAKLUN0YXBOZmNEcml2ZXI6OkN0YXBOZmNE
cml2ZXIoVW5pcXVlUmVmPE5mY0Nvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK0N0YXBOZmNEcml2
ZXI6OkN0YXBOZmNEcml2ZXIoUmVmPE5mY0Nvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6
IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBO
ZmNEcml2ZXIuaAppbmRleCBlNmQxMjllNzRlNDgxMTBlYjdjOGQwYTU5Y2RmMjQ0NzRmYTMwNjM1
Li4zNTlkYWFmODFkY2YwNDcxYWU0NDgyNzI4MzU3NzMyOGNlYWYxYWRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNEcml2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRv
L0N0YXBOZmNEcml2ZXIuaApAQCAtMzcsMTQgKzM3LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Ly8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE5MDEzMC9m
aWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxOTAxMzAuaHRt
bCNuZmMKIGNsYXNzIEN0YXBOZmNEcml2ZXIgOiBwdWJsaWMgQ3RhcERyaXZlciB7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgQ3RhcE5mY0RyaXZlcihVbmlxdWVSZWY8TmZjQ29ubmVjdGlvbj4mJik7
CisgICAgZXhwbGljaXQgQ3RhcE5mY0RyaXZlcihSZWY8TmZjQ29ubmVjdGlvbj4mJik7CiAKICAg
ICB2b2lkIHRyYW5zYWN0KFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIFJlc3BvbnNlQ2FsbGJhY2sm
JikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXNwb25kQXN5bmMoUmVzcG9uc2VDYWxs
YmFjayYmLCBWZWN0b3I8dWludDhfdD4mJiByZXNwb25zZSkgY29uc3Q7CiAKLSAgICBVbmlxdWVS
ZWY8TmZjQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFJlZjxOZmNDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVudGlj
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRv
L1UyZkF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IDc5MzZjNWIyZWMyYWI1ZmU2MDJlMGQyMjgyNjJj
NzUxNzI0ZTkyZmYuLjlkM2JkYTUyYTVlYjE0Yjk1ZWFjMWY1NTQ1NzM5NjZlM2EyOGUzNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
VTJmQXV0aGVudGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNwcApAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVTJm
Q29tbWFuZENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VMmZSZXNwb25zZUNvbnZl
cnRlci5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQyMzkzZmZjNGZmOGIz
MmNhZWU2MDE1OGVlOTE0NTBhMjNhZjQ3ZTguLjQ2NjAwNWM3MjM4Mjc1MDM5YmEwOGFiOTFkYjBk
ZjlhMjcyMWMwZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMC0yMSAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gV2FybiB1c2VycyB3aGVuIG11bHRp
cGxlIE5GQyB0YWdzIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDkzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQ4OTA3MzY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW06CisgICAgICAgICgtW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgcGFu
ZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICBBZGRzIGEgbmV3IHRlc3QgZm9yIC1bX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XS4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWw6IEFkZGVkLgorCiAyMDE5
LTEwLTE4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBF
V1Mgc2hvdWxkIGhhdmUgYSB3YXkgdG8gcmV0cnkgYSBwYXRjaApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBiODBlODI0NDBlZGU1YWE3M2FhMmE4ODM1NWMzZTllNzE2MmYzN2Y4Li5lNzk0ZDhk
NDBjNWQxY2FjZTFlYWQwYmE3OTE0YWQxMmVlNWYxZGIxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzUwLDYgKzM1MCw3IEBACiAJCTU3OTY1MUU3MjE2QkZERUQwMDZFQkZFNSAvKiBGaWRv
SGlkTWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5j
cHAgKi87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50
RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1
bHRDcnlwdG8uY3BwICovOyB9OwogCQk1Nzk3RkUzMzFFQjE1QUIxMDBCMkY0QTAgLyogbmF2aWdh
dGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyog
bmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLzsgfTsKKwkJNTc5ODMzN0My
MzVFQjY4OTAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1t
dWx0aXBsZS10YWdzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc5ODMzN0IyMzVFQjY1QzAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWwgKi87IH07CiAJCTU3QTc5
ODU3MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2
RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tICovOyB9OwogCQk1N0MzRkE2NjFGN0MyNDhGMDA5
RDRCODAgLyogV2Vha1B0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0I5QkMzNzFBNjc0ODIzMDBGRTU2NzggLyogV2Vha1B0ci5jcHAgKi87IH07
CiAJCTU3QzYyNDRFMjM0NkJDRkEwMDM4M0ZFNyAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDNjI0
NEQyMzQ2QkNGQTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gKi87IH07
CkBAIC0xNDQ5LDYgKzE0NTAsNyBAQAogCQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4NUUwOSAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTU3NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1
Nzk4MzM3QzIzNUVCNjg5MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2
M0RFQTIzNEVBNjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
bmZjLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUx
RUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFs
cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZF
NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMTg4NCw2ICsxODg2LDcgQEAKIAkJNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1
IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRD
cnlwdG8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlv
bkNsaWVudERlZmF1bHRDcnlwdG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlw
dG8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJuYXZpZ2F0aW9uLWNsaWVudC1k
ZWZhdWx0LWNyeXB0by5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc5ODMz
N0IyMzVFQjY1QzAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5m
Yy1tdWx0aXBsZS10YWdzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OThFMkFGMUNBRjVDMjgwMEM1Q0JBMCAvKiBQcm92
aXNpb25hbFVSTE5vdENoYW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFByb3Zpc2lvbmFsVVJMTm90Q2hhbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0M2MjQ0RDIzNDZCQ0ZBMDAzODNGRTcgLyogX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzk5LDYgKzM0
MDIsNyBAQAogCQkJCTU3NjYzREYyMjM1N0U0NUQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgKi8sCiAJCQkJNTc3NDU0Q0YyMzU5QjMz
ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVk
ZW50aWFscy5odG1sICovLAogCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKKwkJCQk1Nzk4MzM3QjIzNUVC
NjVDMDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRp
cGxlLXRhZ3MuaHRtbCAqLywKIAkJCQk1NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgKi8sCiAJCQkJNTc3NDU0RDEyMzU5
QkFENTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1j
cmVkZW50aWFscy5odG1sICovLAogCQkJCTU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCmluZGV4IDZmNDE4YWUwMTQ5NGZmMDgzMTcyZTJmYTdlNzllNDM5ZGQ5
ZWY3YmUuLjcxNTUwYWVjOTRmMGRmN2QzMjQyODVkN2NiYzUzMTJmZThjMTlkNjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTQyLDYgKzQyLDcgQEAKIHN0YXRpYyBi
b29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxGYWlsZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxTdWNjZWRlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRp
b25QYW5lbFVwZGF0ZU11bHRpcGxlTkZDVGFnc1ByZXNlbnQgPSBmYWxzZTsKIHN0YXRpYyBib29s
IHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQgPSBmYWxzZTsK
IHN0YXRpYyBSZXRhaW5QdHI8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbD4gZ1BhbmVsOwogCkBA
IC01Myw4ICs1NCwxNCBAQCBAaW1wbGVtZW50YXRpb24gVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxEZWxlZ2F0ZQogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBh
bmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVcGRhdGUpdXBkYXRlCiB7CiAgICAgQVNTRVJUX05FKHBhbmVsLCBuaWwpOwotICAgIGlmICh1
cGRhdGUgPT0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3Vu
ZCkKKyAgICBpZiAodXBkYXRlID09IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVNdWx0
aXBsZU5GQ1RhZ3NQcmVzZW50KSB7CisgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRh
dGVNdWx0aXBsZU5GQ1RhZ3NQcmVzZW50ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAodXBkYXRlID09IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRl
bnRpYWxzRm91bmQpIHsKICAgICAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3Jl
ZGVudGlhbHNGb3VuZCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIC0gKHZv
aWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0
aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KXJl
c3VsdApAQCAtNTc4LDYgKzU4NSwyNSBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE51
bGxQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgW3dlYlZpZXcgd2FpdEZvck1l
c3NhZ2U6QCJPcGVyYXRpb24gdGltZWQgb3V0LiJdOwogfQogCisjaWYgSEFWRShORUFSX0ZJRUxE
KQorVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbE11bHRpcGxlTkZDVGFnc1ByZXNl
bnQpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBV
dGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4pOworICAgIFV0aWw6OnJ1bigmd2Vi
QXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU11bHRpcGxlTkZDVGFnc1ByZXNlbnQpOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0
bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Rh
M2Y1OGM2MjkyMTFkMGZjNjEzMWFhOGZhNzlmYjVlMDIwMWE4OAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBuZmM6IHsgbXVsdGlwbGVQaHlzaWNh
bFRhZ3M6dHJ1ZSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+
IHsgaW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5
KDE2KSwKKyAgICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgfQorICAgIH07CisKKyAg
ICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NDVmM2E0NDVhOTc0NTRkMGI2N2ZkYzhkMTE4MzM1ZWUzZDY2MmQ5NC4uYWU4OTIyNTg2MGU1N2I3
Y2ExODAyZGJhOWY2N2E1NjZjMGVjOGUzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEw
LTIxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1
dGhuXSBXYXJuIHVzZXJzIHdoZW4gbXVsdGlwbGUgTkZDIHRhZ3MgcHJlc2VudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTMyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NDg5MDczNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0
cHMuaHRtbDoKKyAgICAgICAgQWRkcyBuZXcgdGVzdHMgZm9yIG11bHRpcGxlIHBoeXNpY2FsIHRh
Z3MgYW5kIHNlcnZpY2UgcmVzdGFydC4KKwogMjAxOS0xMC0yMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gU3VwcG9ydCBoaWRpbmcg
aWZyYW1lIHNjcm9sbGJhcnMgdmlhIDo6LXdlYmtpdC1zY3JvbGxiYXIgc3R5bGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLW5mYy5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggOWY1ZTgzMTJlMDJmM2JiZjk1OGEyOGI0MzcxZGVkYmVlMzA1
ZjM3Zi4uZDM3NGQ2OWNmZGUwZDk0MTE5OGJkZTZjNWZiZGM5NmI2YTA3ZDVkNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1zdWNjZXNzLW5mYy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLW5mYy5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTMsNCArMyw2IEBAIFBBU1MgUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgaW4gYSBtb2NrIG5mYyBhdXRoZW50
CiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggYXV0aGVudGljYXRv
clNlbGVjdGlvbiB7ICdjcm9zcy1wbGF0Zm9ybScgfSBpbiBhIG1vY2sgbmZjIGF1dGhlbnRpY2F0
b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG11bHRpcGxl
IHRhZ3MgaW4gYSBtb2NrIG5mYyBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBVMkYgaW4gYSBtb2NrIG5mYyBhdXRoZW50aWNhdG9yLiAK
K1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtdWx0aXBsZSBwaHlz
aWNhbCB0YWdzIGluIGEgbW9jayBuZmMgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2VydmljZSByZXN0YXJ0IGluIGEgbW9jayBuZmMg
YXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtc3VjY2Vzcy1uZmMuaHR0cHMuaHRtbAppbmRleCA4MmQwNzA2MThiM2UwMzNjMzQ4YTc3NDJj
MTBhZjZlYzExYzY2MzU2Li4wYjk2MjJhNjZiMmU5MmE0YjAxMzE2MGIyNDFhNmYyYWJmMTc2NDYx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbmZjLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLW5m
Yy5odHRwcy5odG1sCkBAIC0yMSw4ICsyMSw3IEBACiAgICAgICAgICAgICAgICAgICAgIGRpc3Bs
YXlOYW1lOiAiQXBwbGVzZWVkIiwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
IGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAotICAgICAgICAgICAgICAg
IHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAg
ICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFy
YW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfTsKIApAQCAtNDQsOCArNDMsNyBAQAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCiAgICAgICAg
ICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03
IH1dLAotICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgYXV0aGVudGlj
YXRvckF0dGFjaG1lbnQ6ICJjcm9zcy1wbGF0Zm9ybSIgfSwKLSAgICAgICAgICAgICAgICB0aW1l
b3V0OiAxMDAKKyAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IGF1dGhl
bnRpY2F0b3JBdHRhY2htZW50OiAiY3Jvc3MtcGxhdGZvcm0iIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfTsKIApAQCAtNjYsOCArNjQsNyBAQAogICAgICAgICAgICAgICAgICAgICBkaXNwbGF5
TmFtZTogIkFwcGxlc2VlZCIsCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKLSAgICAgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAg
ICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH07CiAKQEAgLTkwLDggKzg3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5h
bWU6ICJBcHBsZXNlZWQiLAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCi0gICAgICAgICAgICAgICAgcHVi
S2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAg
ICAgICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6
IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQogICAgICAgICAgICAgfQogICAgICAg
ICB9OwogCkBAIC0xMDEsNCArOTcsNTAgQEAKICAgICAgICAgICAgIGNoZWNrVTJmTWFrZUNyZWRl
bnRpYWxSZXN1bHQoY3JlZGVudGlhbCk7CiAgICAgICAgIH0pOwogICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIFUyRiBpbiBhIG1vY2sgbmZjIGF1dGhlbnRpY2F0
b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0
VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
QmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICAgICAgfQor
ICAgICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
aW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBuZmM6IHsg
ZXJyb3I6ICJzdWNjZXNzIiwgcGF5bG9hZEJhc2U2NDogW3Rlc3ROZmNDdGFwVmVyc2lvbkJhc2U2
NCwgdGVzdEdldEluZm9SZXNwb25zZUFwZHVCYXNlNjQsIHRlc3RDcmVhdGlvbk1lc3NhZ2VBcGR1
QmFzZTY0XSwgbXVsdGlwbGVQaHlzaWNhbFRhZ3M6IHRydWUgfSB9KTsKKyAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+
IHsKKyAgICAgICAgICAgIGNoZWNrQ3RhcE1ha2VDcmVkZW50aWFsUmVzdWx0KGNyZWRlbnRpYWwp
OworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzIGluIGEgbW9jayBuZmMgYXV0aGVudGljYXRvci4i
KTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
KyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2Vy
aGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNl
ZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNl
NjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCisgICAgICAgICAgICB9CisgICAg
ICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1
cmU6IHRydWUsIG5mYzogeyBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgcGF5bG9hZEJhc2U2
NDogW3Rlc3REdW1teU1lc3NhZ2VQYXlsb2FkQmFzZTY0LCB0ZXN0TmZjQ3RhcFZlcnNpb25CYXNl
NjQsIHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1QmFzZTY0LCB0ZXN0Q3JlYXRpb25NZXNzYWdlQXBk
dUJhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgIGNoZWNrQ3RhcE1h
a2VDcmVkZW50aWFsUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzZXJ2aWNlIHJlc3RhcnQgaW4gYSBt
b2NrIG5mYyBhdXRoZW50aWNhdG9yLiIpOwogPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="397274"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381983</attachid>
            <date>2019-10-25 17:05:38 -0700</date>
            <delta_ts>2019-10-27 15:54:11 -0700</delta_ts>
            <desc>Patch for relanding</desc>
            <filename>bug-200932-20191025170537.patch</filename>
            <type>text/plain</type>
            <size>45509</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJiYTAxNjgzMGMyMTRm
MTI4NGYyYTQ1ZTRmMmQzZDFkN2Y1N2FjZC4uOTE3NjA0MWZhODg3OGRiNWMwM2U0ZGZmNDc3YWY2
M2IzZDYzMTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTIxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBXYXJu
IHVzZXJzIHdoZW4gbXVsdGlwbGUgTkZDIHRhZ3MgcHJlc2VudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTMyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NDg5MDczNj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisg
ICAgICAgIENvdmVyZWQgYnkgbmV3IHRlc3RzIGluIGV4aXN0aW5nIHRlc3QgZmlsZS4KKworICAg
ICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6TmZjQ29u
ZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Ok5mY0NvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAg
ICAgICogdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbDoKKyAg
ICAgICAgQWRkcyBhIG5ldyB0ZXN0IG9wdGlvbi4KKwogMjAxOS0xMC0yNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBtb3JlIGNhc2NhZGUgcmVsYXRl
ZCBjb2RlIGZyb20gU3R5bGVSZXNvbHZlciB0byBQcm9wZXJ0eUNhc2NhZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDE3ZmY0MTI2YTE1ZmI0OTdlZjZlNDg2NDI5YTRkMzdjYWZjNzZiNy4uZjNlZTZkYTc0OGVjMGIw
MWMyNDg3ODAwNjZhM2I1MTkxNDY0NmMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NiBAQAorMjAx
OS0xMC0yMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRobl0gV2FybiB1c2VycyB3aGVuIG11bHRpcGxlIE5GQyB0YWdzIHByZXNlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDkzMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTQ4OTA3MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIHV0aWxpemVzIC1bX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XSB0
bworICAgICAgICBpbmZvcm0gY2xpZW50cyBhYm91dCBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzIGFy
ZSBwcmVzZW50aW5nIHN1Y2ggdGhhdCBjbGllbnRzIGNhbiBpbnN0cnVjdCB1c2VycworICAgICAg
ICB0byBzZWxlY3Qgb25seSBvbmUgb2YgdGhlbSBwaHlzaWNhbGx5LiBHaXZlbiBhIHBoeXNpY2Fs
IHRhZyBjb3VsZCBoYXZlIG11bHRpcGxlIGRpZmZlcmVudAorICAgICAgICBpbnRlcmZhY2VzLCB3
aGljaCBOZWFyRmllbGQgd2lsbCB0cmVhdCB0aGVtIGludG8gZGlmZmVyZW50IE5GVGFncywgdGhl
IHRhZ0lEIGlzIHRoZW4gdXNlZCB0bworICAgICAgICBpZGVudGlmeSBpZiB0aGVyZSBhcmUgYWN0
dWFsbHkgbXVsdGlwbGUgcGh5c2ljYWwgdGFncy4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28g
YWRkcyB0aGUgYWJpbGl0eSB0byByZXN0YXJ0IHBvbGxpbmcgb2YgYSBwYXJ0aXVjbGFyIE5GUmVh
ZGVyU2Vzc2lvbiB0byBOZmNDb25uZWN0aW9uCisgICAgICAgIGFuZCB0aGUgYWJpbGl0eSB0byBy
ZXN0YXJ0IHRoZSB3aG9sZSBzZXNzaW9uIHRvIE5mY1NlcnZpY2UuIFRoZSBmb3JtZXIgaXMgdXNl
ZCB0byByZWNvdmVyIGZyb20gZXJyb3JzCisgICAgICAgIGluIHRoZSBkaXNjb3Zlcnkgc3RhZ2Vz
LCBhbmQgdGhlIGxhdHRlciBpcyB1c2VkIHRvIHJlY292ZXIgZnJvbSBlcnJvcnMgcmV0dXJuZWQg
ZnJvbSBhdXRoZW50aWNhdG9ycworICAgICAgICBpbiB0aGUgcmVxdWVzdCBzdGFnZXMuIEZvciB0
aGUgbGF0dGVyLCBnaXZlbiBOZmNDb25uZWN0aW9uIGlzIG5vdCBhd2FyZWQgb2YgdGhlIHN5bnRh
eCBvZiBGSURPMi9VMkYKKyAgICAgICAgcHJvdG9jb2wsIGFuZCBDdGFwQXV0aGVudGljYXRvci9V
MmZBdXRoZW50aWNhdG9yIGFyZSBub3QgYXdhcmVkIHRoZSB0cmFuc3BvcnQgb2YgdGhlIHVuZGVy
bmVhdGggZHJpdmVyLgorICAgICAgICBBIGdlbmVyaWMgcmVzdGFydERpc2NvdmVyeSBwcm9jZXNz
IGlzIGFkZGVkIHRvIGVhY2ggc2VydmljZSBhbmQgaXQgaXMgdXAgdG8gdGhlIGFjdHVhbCBzZXJ2
aWNlIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgYWN0dWFsIHByb2Nlc3Mgc3VjaCB0aGF0IEF1
dGhlbnRpY2F0b3JNYW5hZ2VyIGNhbiBhcmJpdHJhcmlseSBjYWxsIGl0IGFmdGVyIGV4Y2VwdGlv
bnMKKyAgICAgICAgYXJlIHJldHVybmVkIHRvIHJlc3RhcnQgdGhlIHdob2xlIE5GQyBzZXNzaW9u
LiBUbyBhY2hpZXZlIHJlc3RhcnREaXNjb3ZlcnksIE5mY0Nvbm5lY3Rpb24gaXMgbWFkZQorICAg
ICAgICBSZWZDb3VudGVkIGFzIHdlbGwgc3VjaCB0aGF0IGJvdGggdGhlIE5mY1NlcnZpY2UgYW5k
IHRoZSBDdGFwTmZjRHJpdmVyIGNvdWxkIGhvbGQgaXQgYXQgdGhlIHNhbWUgdGltZS4KKyAgICAg
ICAgQ3RhcE5mY0RyaXZlciB1c2VzIHRoZSBjb25uZWN0aW9uIHRvIGNvbXBsZXRlIHJlcXVlc3Rz
IGFzIGJlZm9yZSB3aGlsZSBOZmNTZXJ2aWNlIGhhcyB0aGUgbmV3IGNhcGFiaWxpdHkKKyAgICAg
ICAgdG8gdXNlIGl0IHRvIHN0b3AgdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aGVuIHJlc3RhcnREaXNj
b3Zlcnkga2lja3Mgb2ZmLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVs
ZFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpz
ZXJ2aWNlU3RhdHVzVXBkYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjpyZXNwb25kUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFu
YWdlcjo6cmVzdGFydERpc2NvdmVyeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5KToK
KyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OnJlc3RhcnRE
aXNjb3ZlcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9y
VHJhbnNwb3J0U2VydmljZTo6cmVzdGFydERpc2NvdmVyeUludGVybmFsKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpOZmNDb25uZWN0aW9uOjpOZmNDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmZjQ29u
bmVjdGlvbjo6fk5mY0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZmNDb25uZWN0aW9u
OjpzdG9wIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0
VGFncyk6CisgICAgICAgIChXZWJLaXQ6Ok5mY0Nvbm5lY3Rpb246OnJlc3RhcnRQb2xsaW5nKToK
KyAgICAgICAgKFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6c3RhcnRQb2xsaW5nKToKKyAgICAgICAg
KFdlYktpdDo6TmZjQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0VGFncyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmZjU2VydmljZTo6TmZjU2VydmljZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5mY1NlcnZpY2U6OmRpZENvbm5lY3RUYWcpOgorICAgICAgICAoV2ViS2l0OjpOZmNT
ZXJ2aWNlOjpkaWREZXRlY3RNdWx0aXBsZVRhZ3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpO
ZmNTZXJ2aWNlOjpzZXRDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmZjU2VydmljZTo6
cmVzdGFydERpc2NvdmVyeUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6TmZjU2VydmljZTo6
cGxhdGZvcm1TdGFydERpc2NvdmVyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5mY1NlcnZpY2U6OnNl
dERyaXZlcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja05mY1NlcnZpY2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5tbToKKyAgICAgICAgKC1bV0tNb2NrTkZUYWcgdGFn
SURdKToKKyAgICAgICAgKC1bV0tNb2NrTkZUYWcgaW5pdFdpdGhORlRhZzpdKToKKyAgICAgICAg
KC1bV0tNb2NrTkZUYWcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS01vY2tORlRhZyBpbml0V2l0
aFR5cGU6XSk6CisgICAgICAgICgtW1dLTW9ja05GVGFnIGluaXRXaXRoVHlwZTp0YWdJRDpdKToK
KyAgICAgICAgKFdlYktpdDo6TW9ja05mY1NlcnZpY2U6OnJlY2VpdmVTdG9wUG9sbGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZlU3RhcnRQb2xsaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6TW9ja05mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkpOgor
ICAgICAgICAoV2ViS2l0OjpNb2NrTmZjU2VydmljZTo6ZGV0ZWN0VGFncyk6CisgICAgICAgIChX
ZWJLaXQ6Ok1vY2tOZmNTZXJ2aWNlOjpkZXRlY3RUYWdzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q3RhcE5mY0RyaXZlcjo6Q3RhcE5mY0RyaXZlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3Iu
Y3BwOgorCiAyMDE5LTEwLTI1ICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUm9sbGluZyBvdXQgcjI1MTU3OSxyMjUxMTYyLHIyNTE1MTIscjI1MTUwMCwgYW5kIHIy
NTE0OTggZm9yIGJ1aWxkIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCmluZGV4IGViMzgx
Y2JhMzE1YjI1NTAxNmI1N2U5OWZkMjc1ZDY5YTg2ZmI2ZDMuLjMyOGJiOWQ0ZWFhZmM3NWQ4M2M3
MWE3YzcyNzRkMTY1MDM2N2QyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCkBAIC05Myw2ICs5
Myw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIHsKICAgICAg
ICAgTmZjRXJyb3IgZXJyb3IgeyBOZmNFcnJvcjo6U3VjY2VzcyB9OwogICAgICAgICBWZWN0b3I8
U3RyaW5nPiBwYXlsb2FkQmFzZTY0OwogICAgICAgICBib29sIG11bHRpcGxlVGFncyB7IGZhbHNl
IH07CisgICAgICAgIGJvb2wgbXVsdGlwbGVQaHlzaWNhbFRhZ3MgeyBmYWxzZSB9OwogCiAgICAg
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
ICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE5mY0NvbmZp
Z3VyYXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xOTMsNyArMTk0LDcgQEAgT3B0aW9uYWw8
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbj4gTW9j
a1dlYkF1dGhlbnRpY2EKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246Ok5mY0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZXJyb3IgPDwgcGF5bG9hZEJhc2U2
NCA8PCBtdWx0aXBsZVRhZ3M7CisgICAgZW5jb2RlciA8PCBlcnJvciA8PCBwYXlsb2FkQmFzZTY0
IDw8IG11bHRpcGxlVGFncyA8PCBtdWx0aXBsZVBoeXNpY2FsVGFnczsKIH0KIAogdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KQEAgLTIwNiw2ICsyMDcsOCBAQCBPcHRpb25hbDxNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uOjpOZmNDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0aGVudGlj
YQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm11bHRpcGxlVGFncykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubXVsdGlwbGVQaHlzaWNhbFRhZ3MpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24uaWRsCmluZGV4IDE2NDcwZjkyNzI5ZGJhYTJhOTE1MmEwNTZiN2Y4YzVmNzQ1
Y2MzOGQuLjc4NTM4NTE0NzZmY2NkNjIyODRjMzZiZjI3OTQyYThiMTdjNWRlMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uLmlkbApAQCAtMTAwLDQgKzEwMCw1IEBACiAgICAgTW9ja05mY0Vycm9y
IGVycm9yID0gInN1Y2Nlc3MiOwogICAgIHNlcXVlbmNlPERPTVN0cmluZz4gcGF5bG9hZEJhc2U2
NDsKICAgICBib29sZWFuIG11bHRpcGxlVGFncyA9IGZhbHNlOworICAgIGJvb2xlYW4gbXVsdGlw
bGVQaHlzaWNhbFRhZ3MgPSBmYWxzZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9OZWFyRmllbGRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL0NvY29hL05lYXJGaWVsZFNQSS5oCmluZGV4IDZiY2JhYTU0OWU3ODFlOWFjOWZjMWJiZDBl
ZGIxM2RjZGIzZjI0OWYuLmUyMDZhMzZiZmUxNzI4ZTZmNjk4N2E0ZThiODYxNTk1NzU0OTZmZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQ
SS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL05lYXJGaWVsZFNQSS5o
CkBAIC05MywxMiArOTMsMTEgQEAgdHlwZWRlZiBOU19FTlVNKHVpbnQzMl90LCBORk5kZWZBdmFp
bGFiaWxpdHkpIHsKIEBpbnRlcmZhY2UgTkZSZWFkZXJTZXNzaW9uIDogTkZTZXNzaW9uCiBAcHJv
cGVydHkgKGFzc2lnbikgaWQ8TkZSZWFkZXJTZXNzaW9uRGVsZWdhdGU+IGRlbGVnYXRlOwogCi0t
IChCT09MKXN0YXJ0UG9sbGluZzsKKy0gKEJPT0wpc3RhcnRQb2xsaW5nV2l0aEVycm9yOihOU0Vy
cm9yICoqKW91dEVycm9yOwogLSAoQk9PTClzdG9wUG9sbGluZzsKIC0gKEJPT0wpY29ubmVjdFRh
ZzooTkZUYWcqKXRhZzsKIC0gKEJPT0wpZGlzY29ubmVjdFRhZzsKIC0gKE5TRGF0YSopdHJhbnNj
ZWl2ZTooTlNEYXRhKiljYXBkdTsKLS0gKE5TRXJyb3IgKil1cGRhdGVVSUFsZXJ0TWVzc2FnZToo
TlNTdHJpbmcgKiltZXNzYWdlOwogQGVuZAogCiBAcHJvdG9jb2wgTkZSZWFkZXJTZXNzaW9uRGVs
ZWdhdGUgPE5TT2JqZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4
IGFjMzJkMDM1NWFmNWM3YTVmNDkzOWZjN2NiMTkzNGI0NWZkNzhkZWYuLjRkYjQ4ZjNlZjlkZjY2
NjUxNjNjOGFiM2U1ZjI0YzMyZWZjZTlmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKQEAgLTIxMyw2ICsyMTMsMTIgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6
YXV0aGVudGljYXRvckFkZGVkKFJlZjxBdXRoZW50aWNhdG9yPiYmIGF1dGhlbnRpY2F0b3IKICAg
ICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQogCit2
b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50
aWNhdGlvblN0YXR1cyBzdGF0dXMpCit7CisgICAgaWYgKGF1dG8gKnBhbmVsID0gbV9wZW5kaW5n
UmVxdWVzdERhdGEucGFuZWwuZ2V0KCkpCisgICAgICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQ
YW5lbChzdGF0dXMpOworfQorCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVj
ZWl2ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKQEAgLTIzMCw2ICsyMzYsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25k
UmVjZWl2ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
cmVzcG9uZFJlY2VpdmVkSW50ZXJuYWwoV1RGTW92ZShyZXNwb25kKSk7CisgICAgcmVzdGFydERp
c2NvdmVyeSgpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkb3duZ3JhZGUoQXV0
aGVudGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRoZW50aWNh
dG9yKQpAQCAtMzQ1LDYgKzM1MiwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNl
dFN0YXRlKCkKICAgICBtX3BlbmRpbmdSZXF1ZXN0RGF0YSA9IHsgfTsKIH0KIAordm9pZCBBdXRo
ZW50aWNhdG9yTWFuYWdlcjo6cmVzdGFydERpc2NvdmVyeSgpCit7CisgICAgZm9yIChhdXRvJiBz
ZXJ2aWNlIDogbV9zZXJ2aWNlcykKKyAgICAgICAgc2VydmljZS0+cmVzdGFydERpc2NvdmVyeSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVU
SE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAppbmRleCA0OTRhNDRkYzFkMGMxODI3
ZDBlYzVkYzAyNDFkMGM5ZjBmYjJhYmJkLi4zNjI4ZDU5OGZmNTVjYWU1NmMzZDU3ODk1YmVkNDY0
MGRmNmZjY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTczLDYgKzcz
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZTo6T2JzZXJ2ZXIKICAgICB2b2lkIGF1dGhlbnRpY2F0b3JBZGRlZChSZWY8QXV0aGVu
dGljYXRvcj4mJikgZmluYWw7CisgICAgdm9pZCBzZXJ2aWNlU3RhdHVzVXBkYXRlZChXZWJBdXRo
ZW50aWNhdGlvblN0YXR1cykgZmluYWw7CiAKICAgICAvLyBBdXRoZW50aWNhdG9yOjpPYnNlcnZl
cgogICAgIHZvaWQgcmVzcG9uZFJlY2VpdmVkKFJlc3BvbmQmJikgZmluYWw7CkBAIC05MCw2ICs5
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5QYW5lbCgpOwogICAgIHZvaWQgc3RhcnRSZXF1
ZXN0KCk7CiAgICAgdm9pZCByZXNldFN0YXRlKCk7CisgICAgdm9pZCByZXN0YXJ0RGlzY292ZXJ5
KCk7CiAKICAgICAvLyBSZXF1ZXN0OiBXZSBvbmx5IGFsbG93IG9uZSByZXF1ZXN0IHBlciB0aW1l
LiBBIG5ldyByZXF1ZXN0IHdpbGwgY2FuY2VsIGFueSBwZW5kaW5nIG9uZXMuCiAgICAgV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YSBtX3BlbmRpbmdSZXF1ZXN0RGF0YTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JU
cmFuc3BvcnRTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcAppbmRleCBlODEwMzliNmRj
YjQwYzU2MjU1ZDc3ZjRkZWZkZTk2ZjFlNGQ0ZWY2Li5lZDE3NTllNzNhMzA1NjRlMmE0OTYyOGUy
NDQ0NzA2YjM3OGEzOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5z
cG9ydFNlcnZpY2UuY3BwCkBAIC03NSw3ICs3NSw2IEBAIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRT
ZXJ2aWNlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZShPYnNlcnZlciYgb2JzZXJ2ZXIp
CiAKIHZvaWQgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5KCkK
IHsKLSAgICAvLyBFbmZvcmNlIGFzeW5jaHJvbm91cyBleGVjdXRpb24gb2YgbWFrZUNyZWRlbnRp
YWwuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtODMsNiArODIsMTUgQEAgdm9pZCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6c3Rh
cnREaXNjb3ZlcnkoKQogICAgIH0pOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRT
ZXJ2aWNlOjpyZXN0YXJ0RGlzY292ZXJ5KCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5yZXN0YXJ0RGlzY292
ZXJ5SW50ZXJuYWwoKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JU
cmFuc3BvcnRTZXJ2aWNlLmgKaW5kZXggMDkwODRhYjhhN2M3OTA5MDUxN2YyZTcyZWI3YTU0NmQ5
YWQyNmVhMy4uNjE3NTJlYTkyYmFiMzJkMTg0OTY4N2JkZDQwY2I2MWI3Yzk2ODMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRvclRyYW5zcG9ydFNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiV2ViQXV0aGVudGlj
YXRpb25GbGFncy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvclRyYW5zcG9ydC5o
PgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpA
QCAtNDgsNiArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBk
ZWZhdWx0OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yQWRkZWQoUmVmPEF1
dGhlbnRpY2F0b3I+JiYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VTdGF0dXNV
cGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRp
YyBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IGNyZWF0ZShXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBPYnNlcnZlciYpOwpAQCAtNTUsOCArNTcsOSBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIH5BdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZSgpID0g
ZGVmYXVsdDsKIAotICAgIC8vIFRoaXMgb3BlcmF0aW9uIGlzIGd1YXJhbnRlZWQgdG8gZXhlY3V0
ZSBhc3luY2hyb25vdXNseS4KKyAgICAvLyBUaGVzZSBvcGVyYXRpb25zIGFyZSBndWFyYW50ZWVk
IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzbHkuCiAgICAgdm9pZCBzdGFydERpc2NvdmVyeSgpOwor
ICAgIHZvaWQgcmVzdGFydERpc2NvdmVyeSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UoT2JzZXJ2ZXImKTsKQEAgLTY1LDYgKzY4LDkg
QEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydERpc2NvdmVy
eUludGVybmFsKCkgPSAwOworICAgIC8vIE5GQyBzZXJ2aWNlJ3MgcG9sbGluZyBpcyBvbmUgc2hv
dC4gSXQgaGFsdHMgYWZ0ZXIgdGhlIGZpcnN0IHRhZ3MgYXJlIGRldGVjdGVkLgorICAgIC8vIFRo
ZXJlZm9yZSwgYSByZXN0YXJ0IHByb2Nlc3MgaXMgbmVlZGVkIHRvIHJlc3VtZSBwb2xsaW5nIGFm
dGVyIGV4Y2VwdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIHJlc3RhcnREaXNjb3ZlcnlJbnRlcm5h
bCgpIHsgfTsKIAogICAgIFdlYWtQdHI8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvTmZjQ29ubmVjdGlvbi5oCmluZGV4IDNiOWQ5NTc3ZTIwNWFhYjdkYjdhM2FiMWU1NTli
OTdkYzNlOTI0NWYuLmI4YTkxN2VhZDBhMGI4YWU3NDczMjQ2ZTM4NzEzYzE3NmU5NjFlODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L05mY0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAogI2lmIEVO
QUJMRShXRUJfQVVUSE4pICYmIEhBVkUoTkVBUl9GSUVMRCkKIAotI2luY2x1ZGUgPHd0Zi9GYXN0
TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBPQkpDX0NMQVNTIE5GUmVhZGVy
U2Vzc2lvbjsKQEAgLTQwLDIyICs0MCwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
TmZjU2VydmljZTsKIAotY2xhc3MgTmZjQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZmNDb25uZWN0aW9uPiB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTmZjQ29ubmVjdGlvbik7CitjbGFzcyBOZmNDb25uZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8TmZjQ29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxO
ZmNDb25uZWN0aW9uPiB7CiBwdWJsaWM6Ci0gICAgTmZjQ29ubmVjdGlvbihSZXRhaW5QdHI8TkZS
ZWFkZXJTZXNzaW9uPiYmLCBOZmNTZXJ2aWNlJik7CisgICAgc3RhdGljIFJlZjxOZmNDb25uZWN0
aW9uPiBjcmVhdGUoUmV0YWluUHRyPE5GUmVhZGVyU2Vzc2lvbj4mJiwgTmZjU2VydmljZSYpOwog
ICAgIH5OZmNDb25uZWN0aW9uKCk7CiAKICAgICBWZWN0b3I8dWludDhfdD4gdHJhbnNhY3QoVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSkgY29uc3Q7CisgICAgdm9pZCBzdG9wKCkgY29uc3Q7CiAKICAg
ICAvLyBGb3IgV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZQotICAgIHZvaWQgZGlkRGV0ZWN0VGFn
cyhOU0FycmF5ICopIGNvbnN0OworICAgIHZvaWQgZGlkRGV0ZWN0VGFncyhOU0FycmF5ICopOwog
CiBwcml2YXRlOgorICAgIE5mY0Nvbm5lY3Rpb24oUmV0YWluUHRyPE5GUmVhZGVyU2Vzc2lvbj4m
JiwgTmZjU2VydmljZSYpOworCisgICAgdm9pZCByZXN0YXJ0UG9sbGluZygpOworICAgIHZvaWQg
c3RhcnRQb2xsaW5nKCk7CisKICAgICBSZXRhaW5QdHI8TkZSZWFkZXJTZXNzaW9uPiBtX3Nlc3Np
b247CiAgICAgUmV0YWluUHRyPFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGU+IG1fZGVsZWdhdGU7
CiAgICAgV2Vha1B0cjxOZmNTZXJ2aWNlPiBtX3NlcnZpY2U7CisgICAgUnVuTG9vcDo6VGltZXI8
TmZjQ29ubmVjdGlvbj4gbV9yZXRyeVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9OZmNDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvTmZjQ29ubmVjdGlvbi5tbQppbmRleCAzMjQ2ZWU3NDk3NmU5YTgwZmU2
YTNkNDQ2N2U1YzdmNTAxMDFmYTQyLi44ZWQ3MWVlNmYyNDFhNzQ1OGMwZjYwNWQzZWQ4YTFkNGRi
NTU2YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9OZmNDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY0Nvbm5lY3Rpb24ubW0KQEAgLTQ1LDIwICs0NSwy
NCBAQCBpbmxpbmUgYm9vbCBjb21wYXJlVmVyc2lvbihOU0RhdGEgKmRhdGEsIGNvbnN0IHVpbnQ4
X3QgdmVyc2lvbltdLCBzaXplX3QgdmVyc2lvbgogfQogfSAvLyBuYW1lc3BhY2UKIAorUmVmPE5m
Y0Nvbm5lY3Rpb24+IE5mY0Nvbm5lY3Rpb246OmNyZWF0ZShSZXRhaW5QdHI8TkZSZWFkZXJTZXNz
aW9uPiYmIHNlc3Npb24sIE5mY1NlcnZpY2UmIHNlcnZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmZjQ29ubmVjdGlvbihXVEZNb3ZlKHNlc3Npb24pLCBzZXJ2aWNlKSk7Cit9CisK
IE5mY0Nvbm5lY3Rpb246Ok5mY0Nvbm5lY3Rpb24oUmV0YWluUHRyPE5GUmVhZGVyU2Vzc2lvbj4m
JiBzZXNzaW9uLCBOZmNTZXJ2aWNlJiBzZXJ2aWNlKQogICAgIDogbV9zZXNzaW9uKFdURk1vdmUo
c2Vzc2lvbikpCiAgICAgLCBtX2RlbGVnYXRlKGFkb3B0TlMoW1tXS05GUmVhZGVyU2Vzc2lvbkRl
bGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbm5lY3Rpb246KnRoaXNdKSkKICAgICAsIG1fc2Vydmlj
ZShtYWtlV2Vha1B0cihzZXJ2aWNlKSkKKyAgICAsIG1fcmV0cnlUaW1lcihSdW5Mb29wOjptYWlu
KCksIHRoaXMsICZOZmNDb25uZWN0aW9uOjpzdGFydFBvbGxpbmcpCiB7CiAgICAgW21fc2Vzc2lv
biBzZXREZWxlZ2F0ZTptX2RlbGVnYXRlLmdldCgpXTsKLSAgICBbbV9zZXNzaW9uIHN0YXJ0UG9s
bGluZ107CisgICAgc3RhcnRQb2xsaW5nKCk7CiB9CiAKIE5mY0Nvbm5lY3Rpb246On5OZmNDb25u
ZWN0aW9uKCkKIHsKLSAgICBbbV9zZXNzaW9uIGRpc2Nvbm5lY3RUYWddOwotICAgIFttX3Nlc3Np
b24gc3RvcFBvbGxpbmddOwotICAgIFttX3Nlc3Npb24gZW5kU2Vzc2lvbl07CisgICAgc3RvcCgp
OwogfQogCiBWZWN0b3I8dWludDhfdD4gTmZjQ29ubmVjdGlvbjo6dHJhbnNhY3QoVmVjdG9yPHVp
bnQ4X3Q+JiYgZGF0YSkgY29uc3QKQEAgLTcxLDE2ICs3NSwzMyBAQCBWZWN0b3I8dWludDhfdD4g
TmZjQ29ubmVjdGlvbjo6dHJhbnNhY3QoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgY29uc3QKICAg
ICByZXR1cm4gcmVzcG9uc2U7CiB9CiAKLXZvaWQgTmZjQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0VGFn
cyhOU0FycmF5ICp0YWdzKSBjb25zdAordm9pZCBOZmNDb25uZWN0aW9uOjpzdG9wKCkgY29uc3QK
K3sKKyAgICBbbV9zZXNzaW9uIGRpc2Nvbm5lY3RUYWddOworICAgIFttX3Nlc3Npb24gc3RvcFBv
bGxpbmddOworICAgIFttX3Nlc3Npb24gZW5kU2Vzc2lvbl07Cit9CisKK3ZvaWQgTmZjQ29ubmVj
dGlvbjo6ZGlkRGV0ZWN0VGFncyhOU0FycmF5ICp0YWdzKQogewotICAgIGlmICghbV9zZXJ2aWNl
KQorICAgIGlmICghbV9zZXJ2aWNlIHx8ICF0YWdzLmNvdW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICAvLyBGSVhNRSgyMDA5MzIpOiBXYXJuIHVzZXJzIHdoZW4gbXVsdGlwbGUgTkZDIHRhZ3Mg
cHJlc2VudAotICAgIGZvciAoTkZUYWcgKnRhZyBpbiB0YWdzKSB7Ci0gICAgICAgIGlmICh0YWcu
dHlwZSAhPSBORlRhZ1R5cGVHZW5lcmljNEEpCisgICAgLy8gQSBwaHlzaWNhbCBORkMgdGFnIGNv
dWxkIGhhdmUgbXVsdGlwbGUgaW50ZXJmYWNlcy4KKyAgICAvLyBUaGVyZWZvcmUsIHdlIHVzZSB0
YWdJRCB0byBkZXRlY3QgaWYgdGhlcmUgYXJlIG11bHRpcGxlIHBoeXNpY2FsIHRhZ3MuCisgICAg
TlNEYXRhICp0YWdJRCA9ICgoTkZUYWcgKil0YWdzWzBdKS50YWdJRDsKKyAgICBmb3IgKE5GVGFn
ICp0YWcgOiB0YWdzKSB7CisgICAgICAgIGlmIChbdGFnSUQgaXNFcXVhbFRvRGF0YTp0YWcudGFn
SURdKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghW21fc2Vzc2lvbiBjb25u
ZWN0VGFnOnRhZ10pCisgICAgICAgIG1fc2VydmljZS0+ZGlkRGV0ZWN0TXVsdGlwbGVUYWdzKCk7
CisgICAgICAgIHJlc3RhcnRQb2xsaW5nKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRSgyMDMyMzQpOiBUZWxsIHVzZXJzIHRvIHN3aXRjaCB0byBhIGRpZmZlcmVudCB0
YWcgaWYgdGhlIHRhZyBpcyBub3Qgb2YgdHlwZSBORlRhZ1R5cGVHZW5lcmljNEEKKyAgICAvLyBv
ciBjYW4ndCBzcGVhayBVMkYvRklETzIuCisgICAgZm9yIChORlRhZyAqdGFnIDogdGFncykgewor
ICAgICAgICBpZiAodGFnLnR5cGUgIT0gTkZUYWdUeXBlR2VuZXJpYzRBIHx8ICFbbV9zZXNzaW9u
IGNvbm5lY3RUYWc6dGFnXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIC8vIENv
bmZpcm0gdGhlIEZJRE8gYXBwbGV0IGlzIGF2YWxpYWJsZSBiZWZvcmUgcmV0dXJuLgpAQCAtOTQs
OCArMTE1LDI1IEBAIHZvaWQgTmZjQ29ubmVjdGlvbjo6ZGlkRGV0ZWN0VGFncyhOU0FycmF5ICp0
YWdzKSBjb25zdAogICAgICAgICB9CiAKICAgICAgICAgbV9zZXJ2aWNlLT5kaWRDb25uZWN0VGFn
KCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgIHJlc3RhcnRQ
b2xsaW5nKCk7Cit9CisKKy8vIE5lYXJGaWVsZCBwb2xsaW5nIGlzIGEgb25lIHNob3QgcG9sbGlu
Zy4gSXQgaGFsdHMgYWZ0ZXIgdGFncyBhcmUgZGV0ZWN0ZWQuCisvLyBUaGVyZWZvcmUsIGEgcmVz
dGFydCBwcm9jZXNzIGlzIG5lZWRlZCB0byByZXN1bWUgcG9sbGluZyBhZnRlciBlcnJvci4KK3Zv
aWQgTmZjQ29ubmVjdGlvbjo6cmVzdGFydFBvbGxpbmcoKQoreworICAgIFttX3Nlc3Npb24gc3Rv
cFBvbGxpbmddOworICAgIG1fcmV0cnlUaW1lci5zdGFydE9uZVNob3QoMV9zKTsgLy8gTWFnaWMg
bnVtYmVyIHRvIGdpdmUgdXNlcnMgZW5vdWdoIHRpbWUgZm9yIHJlYWN0aW9ucy4KK30KKwordm9p
ZCBOZmNDb25uZWN0aW9uOjpzdGFydFBvbGxpbmcoKQoreworICAgIE5TRXJyb3IgKmVycm9yID0g
bmlsOworICAgIFttX3Nlc3Npb24gc3RhcnRQb2xsaW5nV2l0aEVycm9yOiZlcnJvcl07CisgICAg
aWYgKGVycm9yKQorICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHN0YXJ0IE5GQyByZWFkZXIg
cG9sbGluZzogJUAiLCBlcnJvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZj
U2VydmljZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvTmZjU2VydmljZS5oCmluZGV4IDM3MjgwMTk0NzE4OTVmM2Q3NTU1NWI5ZGE0ODU4NDY3Yzdl
NjhmZTMuLjIxNTAzNDRjMWY2MjA1YzNjNjc4NWFlZTc2YzA0YmNlNWZjNzAwYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1Nl
cnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9OZmNTZXJ2aWNlLmgKQEAgLTI4LDEyICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCiAKICNpbmNsdWRlICJGaWRvU2VydmljZS5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAKIE9CSkNfQ0xBU1MgTkZSZWFkZXJTZXNzaW9uOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
Y2xhc3MgQ3RhcE5mY0RyaXZlcjsKK2NsYXNzIE5mY0Nvbm5lY3Rpb247CiAKIGNsYXNzIE5mY1Nl
cnZpY2UgOiBwdWJsaWMgRmlkb1NlcnZpY2UgewogcHVibGljOgpAQCAtNDIsMTUgKzQzLDE2IEBA
IHB1YmxpYzoKIAogICAgIC8vIEZvciBOZmNDb25uZWN0aW9uLgogICAgIHZvaWQgZGlkQ29ubmVj
dFRhZygpOworICAgIHZvaWQgZGlkRGV0ZWN0TXVsdGlwbGVUYWdzKCkgY29uc3Q7CiAKICNpZiBI
QVZFKE5FQVJfRklFTEQpCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBzZXREcml2ZXIoc3RkOjp1bmlx
dWVfcHRyPEN0YXBOZmNEcml2ZXI+JiYpOworICAgIHZvaWQgc2V0Q29ubmVjdGlvbihSZWY8TmZj
Q29ubmVjdGlvbj4mJik7IC8vIEZvciBNb2NrTmZjQ29ubmVjdGlvbgogI2VuZGlmCiAKIHByaXZh
dGU6CiAgICAgdm9pZCBzdGFydERpc2NvdmVyeUludGVybmFsKCkgZmluYWw7Ci0gICAgdm9pZCBj
b250aW51ZUFkZERldmljZUFmdGVyR2V0SW5mbyhWZWN0b3I8dWludDhfdD4mJiByZXNwb25zZSk7
CisgICAgdm9pZCByZXN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKSBmaW5hbDsKIAogICAgIC8vIE92
ZXJyaWRlZCBieSBNb2NrTmZjU2VydmljZS4KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1TdGFy
dERpc2NvdmVyeSgpOwpAQCAtNTgsOCArNjAsOSBAQCBwcml2YXRlOgogI2lmIEhBVkUoTkVBUl9G
SUVMRCkKICAgICAvLyBPbmx5IG9uZSByZWFkZXIgc2Vzc2lvbiBpcyBhbGxvd2VkIHBlciB0aW1l
LgogICAgIC8vIEtlZXAgdGhlIHJlYWRlciBzZXNzaW9uIGFsaXZlIGhlcmUgd2hlbiBpdCB0cmll
cyB0byBjb25uZWN0IHRvIGEgdGFnLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDdGFwTmZjRHJpdmVy
PiBtX2RyaXZlcjsKKyAgICBSZWZQdHI8TmZjQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogI2Vu
ZGlmCisgICAgUnVuTG9vcDo6VGltZXI8TmZjU2VydmljZT4gbV9yZXN0YXJ0VGltZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1tCmluZGV4IDc1
MmQ3ODhkM2I1MjM2OWQwNDkwOGIwNjg2MzE0NDI1YWVmMjRlNjUuLjU4MzI3YjIyZmZjZTUwN2Jj
YTA0ZTRlODE0ODk5NTE2ZmVmNDZjNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbQpAQCAt
NDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogTmZjU2VydmljZTo6TmZjU2Vydmlj
ZShPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgOiBGaWRvU2VydmljZShvYnNlcnZlcikKKyAgICAs
IG1fcmVzdGFydFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk5mY1NlcnZpY2U6OnBsYXRm
b3JtU3RhcnREaXNjb3ZlcnkpCiB7CiB9CiAKQEAgLTUxLDE0ICs1MiwyMiBAQCBOZmNTZXJ2aWNl
Ojp+TmZjU2VydmljZSgpCiB2b2lkIE5mY1NlcnZpY2U6OmRpZENvbm5lY3RUYWcoKQogewogI2lm
IEhBVkUoTkVBUl9GSUVMRCkKLSAgICBnZXRJbmZvKFdURk1vdmUobV9kcml2ZXIpKTsKKyAgICBh
dXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb247CisgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwor
ICAgIGdldEluZm8oV1RGOjptYWtlVW5pcXVlPEN0YXBOZmNEcml2ZXI+KGNvbm5lY3Rpb24ucmVs
ZWFzZU5vbk51bGwoKSkpOwogI2VuZGlmCiB9CiAKK3ZvaWQgTmZjU2VydmljZTo6ZGlkRGV0ZWN0
TXVsdGlwbGVUYWdzKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5v
YnNlcnZlcigpKQorICAgICAgICBvYnNlcnZlci0+c2VydmljZVN0YXR1c1VwZGF0ZWQoV2ViQXV0
aGVudGljYXRpb25TdGF0dXM6Ok11bHRpcGxlTkZDVGFnc1ByZXNlbnQpOworfQorCiAjaWYgSEFW
RShORUFSX0ZJRUxEKQotdm9pZCBOZmNTZXJ2aWNlOjpzZXREcml2ZXIoc3RkOjp1bmlxdWVfcHRy
PEN0YXBOZmNEcml2ZXI+JiYgZHJpdmVyKQordm9pZCBOZmNTZXJ2aWNlOjpzZXRDb25uZWN0aW9u
KFJlZjxOZmNDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgbV9kcml2ZXIgPSBXVEZN
b3ZlKGRyaXZlcik7CisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKIH0K
ICNlbmRpZgogCkBAIC02Nyw2ICs3NiwxNSBAQCB2b2lkIE5mY1NlcnZpY2U6OnN0YXJ0RGlzY292
ZXJ5SW50ZXJuYWwoKQogICAgIHBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKTsKIH0KIAordm9pZCBO
ZmNTZXJ2aWNlOjpyZXN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKQoreworI2lmIEhBVkUoTkVBUl9G
SUVMRCkKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnN0b3Ao
KTsKKyNlbmRpZgorICAgIG1fcmVzdGFydFRpbWVyLnN0YXJ0T25lU2hvdCgxX3MpOyAvLyBNYWdp
YyBudW1iZXIgdG8gZ2l2ZSB1c2VycyBlbm91Z2ggdGltZSBmb3IgcmVhY3Rpb25zLgorfQorCiB2
b2lkIE5mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKQogewogI2lmIEhBVkUoTkVB
Ul9GSUVMRCkKQEAgLTg3LDggKzEwNSw4IEBAIHZvaWQgTmZjU2VydmljZTo6cGxhdGZvcm1TdGFy
dERpc2NvdmVyeSgpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAvLyBDdGFwTmZjRHJpdmVyIGFuZCBOZmNDb25uZWN0aW9uIHdpbGwgdGFrZSBj
YXJlIG9mIHBvbGxpbmcgdGFncyBhbmQgY29ubmVjdGluZyB0byB0aGVtLgotICAgICAgICAgICAg
bV9kcml2ZXIgPSBXVEY6Om1ha2VVbmlxdWU8Q3RhcE5mY0RyaXZlcj4obWFrZVVuaXF1ZVJlZjxO
ZmNDb25uZWN0aW9uPihXVEZNb3ZlKHNlc3Npb24pLCAqdGhpcykpOworICAgICAgICAgICAgLy8g
TmZjQ29ubmVjdGlvbiB3aWxsIHRha2UgY2FyZSBvZiBwb2xsaW5nIHRhZ3MgYW5kIGNvbm5lY3Rp
bmcgdG8gdGhlbS4KKyAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IE5mY0Nvbm5lY3Rpb246OmNy
ZWF0ZShXVEZNb3ZlKHNlc3Npb24pLCAqdGhpcyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogICAg
IFtbZ2V0TkZIYXJkd2FyZU1hbmFnZXJDbGFzcygpIHNoYXJlZEhhcmR3YXJlTWFuYWdlcl0gc3Rh
cnRSZWFkZXJTZXNzaW9uOmNhbGxiYWNrLmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZp
Y2UuaAppbmRleCA5ZmQxYzliNDEwYjgyMzJiNGQzNWUwZTEyODY3ZmQzNjQ2ZDU2NmJhLi5kMjI0
MWU2NTIzOTg5ZDQzNDA3N2I1YzZmZjFhYjMwNWM2ODU5MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNTZXJ2aWNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2Nr
TmZjU2VydmljZS5oCkBAIC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKICAgICBNb2NrTmZjU2Vydmlj
ZShPYnNlcnZlciYsIGNvbnN0IFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb24mKTsKIAogICAgIE5TRGF0YSogdHJhbnNjZWl2ZSgpOworICAgIHZvaWQgcmVjZWl2ZVN0
b3BQb2xsaW5nKCk7CisgICAgdm9pZCByZWNlaXZlU3RhcnRQb2xsaW5nKCk7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBwbGF0Zm9ybVN0YXJ0RGlzY292ZXJ5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNTZXJ2
aWNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9N
b2NrTmZjU2VydmljZS5tbQppbmRleCBjYTUyMmM1ZTNhM2QyOGQ0MjA1NTgzNzJiMTU3MWY3MTNl
MzdkMWM5Li45OGNkNzQ1ODRmNWE4MTQzYTQzOTkyZTY5ZDY5OGEwN2YyMGUzMTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tO
ZmNTZXJ2aWNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL01vY2svTW9ja05mY1NlcnZpY2UubW0KQEAgLTM4LDIwICszOCwyNiBAQAogCiAjaW1wb3J0
ICJOZWFyRmllbGRTb2Z0TGluay5oIgogCituYW1lc3BhY2UgewordWludDhfdCB0YWdJRDFbXSA9
IHsgMHgwMSB9OwordWludDhfdCB0YWdJRDJbXSA9IHsgMHgwMiB9OworfQorCiAjaWYgSEFWRShO
RUFSX0ZJRUxEKQogCiBAaW50ZXJmYWNlIFdLTW9ja05GVGFnIDogTlNPYmplY3QgPE5GVGFnPgog
CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihORlRhZ1R5cGUpdHlwZTsKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aFR5cGU6KE5GVGFnVHlwZSl0eXBlIHRhZ0lEOihOU0RhdGEgKil0YWdJ
RDsKIAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tNb2NrTkZUYWcgewogICAgIE5GVGFnVHlw
ZSBfdHlwZTsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBfdGFnSUQ7CiB9CiAKIEBzeW50aGVzaXpl
IHRlY2hub2xvZ3k9X3RlY2hub2xvZ3k7Ci1Ac3ludGhlc2l6ZSB0YWdJRD1fdGFnSUQ7CiBAc3lu
dGhlc2l6ZSBBcHBEYXRhPV9BcHBEYXRhOwogQHN5bnRoZXNpemUgVUlEPV9VSUQ7CiBAc3ludGhl
c2l6ZSBuZGVmQXZhaWxhYmlsaXR5PV9uZGVmQXZhaWxhYmlsaXR5OwpAQCAtNjYsMTcgKzcyLDIy
IEBAIC0gKE5GVGFnVHlwZSl0eXBlCiAgICAgcmV0dXJuIF90eXBlOwogfQogCistIChOU0RhdGEg
Kil0YWdJRAoreworICAgIHJldHVybiBfdGFnSUQuZ2V0KCk7Cit9CisKIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aE5GVGFnOihpZDxORlRhZz4pdGFnCiB7Ci0gICAgaWYgKChzZWxmID0gW3N1cGVy
IGluaXRdKSkKKyAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7CiAgICAgICAgIF90eXBl
ID0gdGFnLnR5cGU7CisgICAgICAgIF90YWdJRCA9IHRhZy50YWdJRDsKKyAgICB9CiAgICAgcmV0
dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIFtfdGFnSUQgcmVsZWFzZV07
Ci0gICAgX3RhZ0lEID0gbmlsOwogICAgIFtfQXBwRGF0YSByZWxlYXNlXTsKICAgICBfQXBwRGF0
YSA9IG5pbDsKICAgICBbX1VJRCByZWxlYXNlXTsKQEAgLTk3LDggKzEwOCwxNSBAQCAtIChCT09M
KWlzRXF1YWxUb05GVGFnOihpZDxORlRhZz4pdGFnCiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFR5cGU6KE5GVGFnVHlwZSl0eXBlCiB7Ci0gICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhUeXBlOnR5cGUgdGFnSUQ6YWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0YWdJRDEgbGVuZ3RoOnNpemVvZih0YWdJRDEpXSkuZ2V0
KCldOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihORlRhZ1R5cGUpdHlwZSB0
YWdJRDooTlNEYXRhICopdGFnSUQKK3sKKyAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7
CiAgICAgICAgIF90eXBlID0gdHlwZTsKKyAgICAgICAgX3RhZ0lEID0gdGFnSUQ7CisgICAgfQog
ICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xMzIsNiArMTUwLDIyIEBAIHN0YXRpYyBCT09MIE5G
UmVhZGVyU2Vzc2lvbkNvbm5lY3RUYWcoaWQsIFNFTCwgTkZUYWcgKikKICAgICByZXR1cm4gWUVT
OwogfQogCitzdGF0aWMgQk9PTCBORlJlYWRlclNlc3Npb25TdG9wUG9sbGluZyhpZCwgU0VMKQor
eworICAgIGlmICghZ2xvYmFsTmZjU2VydmljZSkKKyAgICAgICAgcmV0dXJuIE5POworICAgIGds
b2JhbE5mY1NlcnZpY2UtPnJlY2VpdmVTdG9wUG9sbGluZygpOworICAgIHJldHVybiBZRVM7Cit9
CisKK3N0YXRpYyBCT09MIE5GUmVhZGVyU2Vzc2lvblN0YXJ0UG9sbGluZ1dpdGhFcnJvcihpZCwg
U0VMLCBOU0Vycm9yICoqKQoreworICAgIGlmICghZ2xvYmFsTmZjU2VydmljZSkKKyAgICAgICAg
cmV0dXJuIE5POworICAgIGdsb2JhbE5mY1NlcnZpY2UtPnJlY2VpdmVTdGFydFBvbGxpbmcoKTsK
KyAgICByZXR1cm4gWUVTOworfQorCiBzdGF0aWMgTlNEYXRhKiBORlJlYWRlclNlc3Npb25UcmFu
c2NlaXZlKGlkLCBTRUwsIE5TRGF0YSAqKQogewogICAgIGlmICghZ2xvYmFsTmZjU2VydmljZSkK
QEAgLTE1OSw2ICsxOTMsMjEgQEAgTlNEYXRhKiBNb2NrTmZjU2VydmljZTo6dHJhbnNjZWl2ZSgp
CiAgICAgcmV0dXJuIFtyZXN1bHQgYXV0b3JlbGVhc2VdOwogfQogCit2b2lkIE1vY2tOZmNTZXJ2
aWNlOjpyZWNlaXZlU3RvcFBvbGxpbmcoKQoreworICAgIC8vIEZvciBwdXJwb3NlIG9mIHJlc3Rh
cnQgcG9sbGluZy4KKyAgICBtX2NvbmZpZ3VyYXRpb24ubmZjLT5tdWx0aXBsZVBoeXNpY2FsVGFn
cyA9IGZhbHNlOworfQorCit2b2lkIE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZlU3RhcnRQb2xsaW5n
KCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHdlYWtUaGlzLT5kZXRlY3RUYWdzKCk7CisgICAgfSk7Cit9CisKIHZvaWQgTW9j
a05mY1NlcnZpY2U6OnBsYXRmb3JtU3RhcnREaXNjb3ZlcnkoKQogewogI2lmIEhBVkUoTkVBUl9G
SUVMRCkKQEAgLTE3NywxNSArMjI2LDE0IEBAIHZvaWQgTW9ja05mY1NlcnZpY2U6OnBsYXRmb3Jt
U3RhcnREaXNjb3ZlcnkoKQogICAgICAgICBNZXRob2QgbWV0aG9kVG9Td2l6emxlMyA9IGNsYXNz
X2dldEluc3RhbmNlTWV0aG9kKGdldE5GUmVhZGVyU2Vzc2lvbkNsYXNzKCksIEBzZWxlY3Rvcih0
cmFuc2NlaXZlOikpOwogICAgICAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obWV0aG9kVG9T
d2l6emxlMywgKElNUClORlJlYWRlclNlc3Npb25UcmFuc2NlaXZlKTsKIAotICAgICAgICBhdXRv
IHJlYWRlclNlc3Npb24gPSBhZG9wdE5TKFthbGxvY05GUmVhZGVyU2Vzc2lvbkluc3RhbmNlKCkg
aW5pdF0pOwotICAgICAgICBzZXREcml2ZXIoV1RGOjptYWtlVW5pcXVlPEN0YXBOZmNEcml2ZXI+
KG1ha2VVbmlxdWVSZWY8TmZjQ29ubmVjdGlvbj4ocmVhZGVyU2Vzc2lvbi5nZXQoKSwgKnRoaXMp
KSk7CisgICAgICAgIE1ldGhvZCBtZXRob2RUb1N3aXp6bGU0ID0gY2xhc3NfZ2V0SW5zdGFuY2VN
ZXRob2QoZ2V0TkZSZWFkZXJTZXNzaW9uQ2xhc3MoKSwgQHNlbGVjdG9yKHN0b3BQb2xsaW5nKSk7
CisgICAgICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtZXRob2RUb1N3aXp6bGU0LCAoSU1Q
KU5GUmVhZGVyU2Vzc2lvblN0b3BQb2xsaW5nKTsKIAotICAgICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7Ci0gICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHdlYWtU
aGlzLT5kZXRlY3RUYWdzKCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47CisgICAgICAg
IE1ldGhvZCBtZXRob2RUb1N3aXp6bGU1ID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoZ2V0TkZS
ZWFkZXJTZXNzaW9uQ2xhc3MoKSwgQHNlbGVjdG9yKHN0YXJ0UG9sbGluZ1dpdGhFcnJvcjopKTsK
KyAgICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvU3dpenpsZTUsIChJTVAp
TkZSZWFkZXJTZXNzaW9uU3RhcnRQb2xsaW5nV2l0aEVycm9yKTsKKworICAgICAgICBhdXRvIHJl
YWRlclNlc3Npb24gPSBhZG9wdE5TKFthbGxvY05GUmVhZGVyU2Vzc2lvbkluc3RhbmNlKCkgaW5p
dF0pOworICAgICAgICBzZXRDb25uZWN0aW9uKE5mY0Nvbm5lY3Rpb246OmNyZWF0ZShyZWFkZXJT
ZXNzaW9uLmdldCgpLCAqdGhpcykpOwogICAgIH0KICAgICBMT0dfRVJST1IoIk5vIG5mYyBhdXRo
ZW50aWNhdG9ycyBpcyBhdmFpbGFibGUuIik7CiAjZW5kaWYgLy8gSEFWRShORUFSX0ZJRUxEKQpA
QCAtMjA3LDYgKzI1NSw5IEBAIHZvaWQgTW9ja05mY1NlcnZpY2U6OmRldGVjdFRhZ3MoKSBjb25z
dAogICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5uZmMtPm11bHRpcGxlVGFncykKICAgICAgICAg
ICAgIFt0YWdzIGFkZE9iamVjdDphZG9wdE5TKFtbV0tNb2NrTkZUYWcgYWxsb2NdIGluaXRXaXRo
VHlwZTpORlRhZ1R5cGVHZW5lcmljNEFdKS5nZXQoKV07CiAKKyAgICAgICAgaWYgKGNvbmZpZ3Vy
YXRpb24ubmZjLT5tdWx0aXBsZVBoeXNpY2FsVGFncykKKyAgICAgICAgICAgIFt0YWdzIGFkZE9i
amVjdDphZG9wdE5TKFtbV0tNb2NrTkZUYWcgYWxsb2NdIGluaXRXaXRoVHlwZTpORlRhZ1R5cGVH
ZW5lcmljNEEgdGFnSUQ6YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0YWdJ
RDIgbGVuZ3RoOnNpemVvZih0YWdJRDIpXSkuZ2V0KCldKS5nZXQoKV07CisKICAgICAgICAgW2ds
b2JhbE5GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlIHJlYWRlclNlc3Npb246bmlsIGRpZERldGVjdFRh
Z3M6dGFncy5nZXQoKV07CiAgICAgfSk7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgY2FsbGJh
Y2suZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5jcHAKaW5kZXggMGY2YTc5MWNl
YWQ5YmZlYzU5OWNiNmQ2OTFmMjg5ODBkYzEwMzExNy4uNGE5Y2FmMjAzMGY3NjY3MzI4YzgwYzVj
YTliMzIwNWQyNGFlNTRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwTmZjRHJpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNEcml2ZXIuY3BwCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIGFwZHU7CiB1
c2luZyBuYW1lc3BhY2UgZmlkbzsKIAotQ3RhcE5mY0RyaXZlcjo6Q3RhcE5mY0RyaXZlcihVbmlx
dWVSZWY8TmZjQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorQ3RhcE5mY0RyaXZlcjo6Q3RhcE5m
Y0RyaXZlcihSZWY8TmZjQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9jb25uZWN0
aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBOZmNEcml2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5o
CmluZGV4IGU2ZDEyOWU3NGU0ODExMGViN2M4ZDBhNTljZGYyNDQ3NGZhMzA2MzUuLjM1OWRhYWY4
MWRjZjA0NzFhZTQ0ODI3MjgzNTc3MzI4Y2VhZjFhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0RyaXZlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcE5mY0Ry
aXZlci5oCkBAIC0zNywxNCArMzcsMTQgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTkwMTMwL2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEzMC5odG1sI25mYwogY2xh
c3MgQ3RhcE5mY0RyaXZlciA6IHB1YmxpYyBDdGFwRHJpdmVyIHsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBDdGFwTmZjRHJpdmVyKFVuaXF1ZVJlZjxOZmNDb25uZWN0aW9uPiYmKTsKKyAgICBleHBs
aWNpdCBDdGFwTmZjRHJpdmVyKFJlZjxOZmNDb25uZWN0aW9uPiYmKTsKIAogICAgIHZvaWQgdHJh
bnNhY3QoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgUmVzcG9uc2VDYWxsYmFjayYmKSBmaW5hbDsK
IAogcHJpdmF0ZToKICAgICB2b2lkIHJlc3BvbmRBc3luYyhSZXNwb25zZUNhbGxiYWNrJiYsIFZl
Y3Rvcjx1aW50OF90PiYmIHJlc3BvbnNlKSBjb25zdDsKIAotICAgIFVuaXF1ZVJlZjxOZmNDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUmVmPE5mY0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVu
dGljYXRvci5jcHAKaW5kZXggNzkzNmM1YjJlYzJhYjVmZTYwMmUwZDIyODI2MmM3NTE3MjRlOTJm
Zi4uOWQzYmRhNTJhNWViMTRiOTVlYWMxZjU1NDU3Mzk2NmUzYTI4ZTM1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50
aWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VMmZDb21tYW5kQ29u
c3RydWN0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1UyZlJlc3BvbnNlQ29udmVydGVyLmg+Ci0j
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzVjNTM5OGRjMTU0M2E4ZDEwYThkM2E3
YzlmNzgwNzliYzM0YzkyNy4uMmZmMDFhMGU0M2JmYjU4MDY0ZWI0M2M4YTQ5YzMwZjlhNzg0MGUw
MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDE5LTEwLTIxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBXYXJuIHVzZXJzIHdoZW4gbXVsdGlwbGUgTkZDIHRh
Z3MgcHJlc2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAwOTMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDg5MDczNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAg
ICAgICAoLVtUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWw6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgQWRkcyBhIG5ldyB0ZXN0IGZvciAtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxE
ZWxlZ2F0ZSBwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOl0uCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0yNSAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgUHl0aG9uIDM6IEFk
ZCBzdXBwb3J0IGluIHdlYmtpdHB5Lnhjb2RlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0
MTY4NDJlOTY3Y2Y5NjNjNWI0ZTJhZjU0ZjcxNzcyOWQ5NGY1NWQuLmI4MWViMTJjYjRjNWI4NmQ5
NGNkZDAzNjhkNTJlODAzMWIyMjc3MjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTAs
NiArMzUwLDcgQEAKIAkJNTc5NjUxRTcyMTZCRkRFRDAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdl
VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
Nzk2NTFFNjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCAqLzsgfTsK
IAkJNTc5N0ZFMzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5
cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
OTdGRTJGMUVCMTVBNUYwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5j
cHAgKi87IH07CiAJCTU3OTdGRTMzMUVCMTVBQjEwMEIyRjRBMCAvKiBuYXZpZ2F0aW9uLWNsaWVu
dC1kZWZhdWx0LWNyeXB0by5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3OTdGRTMyMUVCMTVBODkwMEIyRjRBMCAvKiBuYXZpZ2F0aW9u
LWNsaWVudC1kZWZhdWx0LWNyeXB0by5odG1sICovOyB9OworCQk1Nzk4MzM3QzIzNUVCNjg5MDA4
RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRh
Z3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1Nzk4MzM3QjIzNUVCNjVDMDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCAqLzsgfTsKIAkJNTdBNzk4NTcyMjRBQjM0
RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJD
cnlwdG9NYXN0ZXJLZXkubW0gKi87IH07CiAJCTU3QzNGQTY2MUY3QzI0OEYwMDlENEI4MCAvKiBX
ZWFrUHRyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQjlCQzM3MUE2NzQ4MjMwMEZFNTY3OCAvKiBXZWFrUHRyLmNwcCAqLzsgfTsKIAkJNTdDNjI0
NEUyMzQ2QkNGQTAwMzgzRkU3IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0RDIzNDZCQ0ZB
MDAzODNGRTcgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSAqLzsgfTsKQEAgLTE0NTMs
NiArMTQ1NCw3IEBACiAJCQkJNTc2NjNERjMyMzU3RTQ4OTAwRTg1RTA5IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1Nzc0NTREMDIzNTlCMzc4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJNTc2NjNERUMyMzRGMUY5MzAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3OTgzMzdDMjM1
RUI2ODkwMDhFNTU0NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtbXVs
dGlwbGUtdGFncy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVBMjM0RUE2
NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzc0NTREMjIzNTlCQjAxMDA4RTFFRDcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBA
IC0xODg5LDYgKzE4OTEsNyBAQAogCQk1Nzk2NTFFNjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hp
ZE1lc3NhZ2VUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZp
ZG9IaWRNZXNzYWdlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OTdG
RTJGMUVCMTVBNUYwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0aW9uQ2xpZW50RGVm
YXVsdENyeXB0by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OTdGRTMyMUVC
MTVBODkwMEIyRjRBMCAvKiBuYXZpZ2F0aW9uLWNsaWVudC1kZWZhdWx0LWNyeXB0by5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5
cHRvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Nzk4MzM3QjIzNUVCNjVD
MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxl
LXRhZ3MuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncy5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTc5OEUyQUYxQ0FGNUMyODAwQzVDQkEwIC8qIFByb3Zpc2lvbmFsVVJM
Tm90Q2hhbmdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJv
dmlzaW9uYWxVUkxOb3RDaGFuZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJDcnlwdG9NYXN0ZXJLZXkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3QzYyNDREMjM0NkJDRkEwMDM4M0ZFNyAvKiBfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0MTIsNiArMzQxNSw3IEBACiAJ
CQkJNTc2NjNERjIyMzU3RTQ1RDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCAqLywKIAkJCQk1Nzc0NTRDRjIzNTlCMzM4MDA4RTFFRDcg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0
bWwgKi8sCiAJCQkJNTc2NjNERUIyMzRGMUY4MDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sICovLAorCQkJCTU3OTgzMzdCMjM1RUI2NUMwMDhFNTU0
NyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncy5o
dG1sICovLAogCQkJCTU3NjYzREU5MjM0RUE2MEIwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCAqLywKIAkJCQk1Nzc0NTREMTIzNTlCQUQ1MDA4RTFF
RDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxz
Lmh0bWwgKi8sCiAJCQkJNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KaW5kZXggNzRmYzQzZTA3ZGFiYmNjMWVlODVhYWIwYTQxOWY1OGU1ZmZkZjMzNi4uNzAx
NjIzMzM2YzZkNDBjNzEwNTE0OTY2ZmExZWE1YTA0YzM3NWQ1ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQpAQCAtNDIsNiArNDIsNyBAQAogc3RhdGljIGJvb2wgd2ViQXV0
aGVudGljYXRpb25QYW5lbFJhbiA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRp
b25QYW5lbEZhaWxlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5l
bFN1Y2NlZGVkID0gZmFsc2U7CitzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBk
YXRlTXVsdGlwbGVORkNUYWdzUHJlc2VudCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVu
dGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3VuZCA9IGZhbHNlOwogc3RhdGljIFJl
dGFpblB0cjxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsPiBnUGFuZWw7CiAKQEAgLTUzLDggKzU0
LDE0IEBAIEBpbXBsZW1lbnRhdGlvbiBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRl
CiAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgdXBkYXRl
V2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZSl1
cGRhdGUKIHsKICAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7Ci0gICAgaWYgKHVwZGF0ZSA9PSBf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kKQorICAgIGlm
ICh1cGRhdGUgPT0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU11bHRpcGxlTkZDVGFn
c1ByZXNlbnQpIHsKKyAgICAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU11bHRpcGxl
TkZDVGFnc1ByZXNlbnQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1
cGRhdGUgPT0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3Vu
ZCkgewogICAgICAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0Zv
dW5kID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogLSAodm9pZClwYW5lbDoo
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGRpc21pc3NXZWJBdXRoZW50aWNhdGlv
blBhbmVsV2l0aFJlc3VsdDooX1dLV2ViQXV0aGVudGljYXRpb25SZXN1bHQpcmVzdWx0CkBAIC02
MDYsNiArNjEzLDI1IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVsbFBhbmVsSGlk
Q3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk9w
ZXJhdGlvbiB0aW1lZCBvdXQuIl07CiB9CiAKKyNpZiBIQVZFKE5FQVJfRklFTEQpCitURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdzUHJlc2VudCkKK3sKKyAg
ICByZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1uZmMtbXVsdGlwbGUtdGFncyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigm
d2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNh
dGlvblBhbmVsVXBkYXRlTXVsdGlwbGVORkNUYWdzUHJlc2VudCk7Cit9CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZGEzZjU4YzYyOTIx
MWQwZmM2MTMxYWE4ZmE3OWZiNWUwMjAxYTg4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1uZmMtbXVsdGlwbGUtdGFncy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bih7IHNpbGVudEZhaWx1cmU6IHRydWUsIG5mYzogeyBtdWx0aXBsZVBoeXNpY2FsVGFnczp0cnVl
IH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5m
b2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAg
ICAgICAgICAgdGltZW91dDogMTAwLAorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZDhhM2IwNjY5
ZDIzYzkzYzA4MTM0YWQxYTZlNjQxYzc3ZjgyNTI3Li5kNDFkNTZlZGEwOTkzZjQyNDE3NTAxNWM4
MzE2MmJiMWY3Y2Y2MjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTAtMjEgIEppZXdl
biBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4g
dXNlcnMgd2hlbiBtdWx0aXBsZSBORkMgdGFncyBwcmVzZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU0ODkwNzM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAg
ICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1
Y2Nlc3MtbmZjLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbmZjLmh0dHBzLmh0bWw6Cisg
ICAgICAgIEFkZHMgbmV3IHRlc3RzIGZvciBtdWx0aXBsZSBwaHlzaWNhbCB0YWdzIGFuZCBzZXJ2
aWNlIHJlc3RhcnQuCisKIDIwMTktMTAtMjUgIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGRpbmcgZXhwZWN0YXRpb25zIGZvciBlZGl0aW5nL3Bhc3RlYm9h
cmQvc21hcnQtcGFzdGUtcGFyYWdyYXBoLTAwMy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3Mt
bmZjLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDlmNWU4MzEyZTAyZjNiYmY5NThhMjhiNDM3MWRlZGJlZTMwNWYzN2YuLmQzNzRkNjlj
ZmRlMGQ5NDExOThiZGU2YzVmYmRjOTZiNmEwN2Q1ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1u
ZmMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0zLDQgKzMsNiBAQCBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggbWluaW11bSBvcHRpb25zIGluIGEgbW9jayBuZmMgYXV0aGVudAogUEFTUyBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24geyAn
Y3Jvc3MtcGxhdGZvcm0nIH0gaW4gYSBtb2NrIG5mYyBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtdWx0aXBsZSB0YWdzIGluIGEgbW9j
ayBuZmMgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggVTJGIGluIGEgbW9jayBuZmMgYXV0aGVudGljYXRvci4gCitQQVNTIFB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbXVsdGlwbGUgcGh5c2ljYWwgdGFncyBpbiBh
IG1vY2sgbmZjIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSB3aXRoIHNlcnZpY2UgcmVzdGFydCBpbiBhIG1vY2sgbmZjIGF1dGhlbnRpY2F0b3Iu
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbmZjLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbmZj
Lmh0dHBzLmh0bWwKaW5kZXggODJkMDcwNjE4YjNlMDMzYzM0OGE3NzQyYzEwYWY2ZWMxMWM2NjM1
Ni4uMGI5NjIyYTY2YjJlOTJhNGIwMTMxNjBiMjQxYTZmMmFiZjE3NjQ2MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLW5mYy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1uZmMuaHR0cHMuaHRtbApA
QCAtMjEsOCArMjEsNyBAQAogICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxl
c2VlZCIsCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJh
c2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFy
YW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAg
dGltZW91dDogMTAwCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTog
InB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKQEAg
LTQ0LDggKzQzLDcgQEAKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAogICAgICAgICAgICAgICAgIHB1Yktl
eUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAg
ICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50
OiAiY3Jvc3MtcGxhdGZvcm0iIH0sCi0gICAgICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAg
ICAgICAgICAgICAgYXV0aGVudGljYXRvclNlbGVjdGlvbjogeyBhdXRoZW50aWNhdG9yQXR0YWNo
bWVudDogImNyb3NzLXBsYXRmb3JtIiB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKQEAg
LTY2LDggKzY0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNl
ZWQiLAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNl
NjRVUkwucGFyc2UoIk1USXpORFUyIiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIHRp
bWVvdXQ6IDEwMAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJw
dWJsaWMta2V5IiwgYWxnOiAtNyB9XQogICAgICAgICAgICAgfQogICAgICAgICB9OwogCkBAIC05
MCw4ICs4Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVk
IiwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0
VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6
IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICB0aW1l
b3V0OiAxMDAKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVi
bGljLWtleSIsIGFsZzogLTcgfV0KICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIApAQCAtMTAx
LDQgKzk3LDUwIEBACiAgICAgICAgICAgICBjaGVja1UyZk1ha2VDcmVkZW50aWFsUmVzdWx0KGNy
ZWRlbnRpYWwpOwogICAgICAgICB9KTsKICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Y3JlYXRlXV0gd2l0aCBVMkYgaW4gYSBtb2NrIG5mYyBhdXRoZW50aWNhdG9yLiIpOworCisgICAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAg
ICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisg
ICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNl
NjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJz
ZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBl
OiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKwor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgbmZjOiB7IGVycm9yOiAic3VjY2Vz
cyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0TmZjQ3RhcFZlcnNpb25CYXNlNjQsIHRlc3RHZXRJbmZv
UmVzcG9uc2VBcGR1QmFzZTY0LCB0ZXN0Q3JlYXRpb25NZXNzYWdlQXBkdUJhc2U2NF0sIG11bHRp
cGxlUGh5c2ljYWxUYWdzOiB0cnVlIH0gfSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAg
ICBjaGVja0N0YXBNYWtlQ3JlZGVudGlhbFJlc3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAgfSk7
CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbXVsdGlwbGUg
cGh5c2ljYWwgdGFncyBpbiBhIG1vY2sgbmZjIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBw
dWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBu
YW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVz
ZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCks
CisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJN
VEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJw
dWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBuZmM6
IHsgZXJyb3I6ICJtYWxpY2lvdXMtcGF5bG9hZCIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0RHVtbXlN
ZXNzYWdlUGF5bG9hZEJhc2U2NCwgdGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0SW5m
b1Jlc3BvbnNlQXBkdUJhc2U2NCwgdGVzdENyZWF0aW9uTWVzc2FnZUFwZHVCYXNlNjRdIH0gfSk7
CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRo
ZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICBjaGVja0N0YXBNYWtlQ3JlZGVudGlhbFJl
c3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggc2VydmljZSByZXN0YXJ0IGluIGEgbW9jayBuZmMgYXV0aGVu
dGljYXRvci4iKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>