<?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>204051</bug_id>
          
          <creation_ts>2019-11-09 11:27:26 -0800</creation_ts>
          <short_desc>[WebAssembly] Improve bytecode dumping</short_desc>
          <delta_ts>2019-11-11 17:01:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589025</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-09 11:27:26 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589026</commentid>
    <comment_count>1</comment_count>
      <attachid>383224</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-09 11:30:20 -0800</bug_when>
    <thetext>Created attachment 383224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589029</commentid>
    <comment_count>2</comment_count>
      <attachid>383224</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-11-09 12:00:30 -0800</bug_when>
    <thetext>Comment on attachment 383224
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        &lt;?&gt;.wasm-function[26]: 6 instructions (0 16-bit instructions, 0 32-bit instructions); 14 bytes; 1 parameter(s); 18 local(s); 22 callee register(s)

It’d be cool if we could dump the signature of the function here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589042</commentid>
    <comment_count>3</comment_count>
      <attachid>383224</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-09 14:07:02 -0800</bug_when>
    <thetext>Comment on attachment 383224
Patch

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

Thanks for the review

&gt;&gt; Source/JavaScriptCore/ChangeLog:17
&gt;&gt; +        &lt;?&gt;.wasm-function[26]: 6 instructions (0 16-bit instructions, 0 32-bit instructions); 14 bytes; 1 parameter(s); 18 local(s); 22 callee register(s)
&gt; 
&gt; It’d be cool if we could dump the signature of the function here.

Nice, I&apos;ll add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589043</commentid>
    <comment_count>4</comment_count>
      <attachid>383226</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-09 14:19:24 -0800</bug_when>
    <thetext>Created attachment 383226
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589044</commentid>
    <comment_count>5</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-09 14:34:36 -0800</bug_when>
    <thetext>Oops, I forgot to include WasmSignatureInlines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589045</commentid>
    <comment_count>6</comment_count>
      <attachid>383227</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-09 14:35:38 -0800</bug_when>
    <thetext>Created attachment 383227
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589053</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-09 15:34:29 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 383227:

inspector/model/remote-object-weak-collection.html bug 204016 (authors: drousso@apple.com and joepeck@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589054</commentid>
    <comment_count>8</comment_count>
      <attachid>383227</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-09 15:35:18 -0800</bug_when>
    <thetext>Comment on attachment 383227
Patch for landing

Clearing flags on attachment: 383227

Committed r252310: &lt;https://trac.webkit.org/changeset/252310&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589055</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-09 15:35:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589388</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-11 17:01:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/57099444&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383224</attachid>
            <date>2019-11-09 11:30:20 -0800</date>
            <delta_ts>2019-11-09 14:19:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204051-20191109113018.patch</filename>
            <type>text/plain</type>
            <size>20140</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjQyMDdiMzdjYmNlNzMxMzNiM2I3Yzg3YmM0ZTZmYjZhYTA4MTBjLi41ODE0OTE4MjdmNjk0ZmMw
NWRhM2Q2ZTE4OWRmYmZhYmNiNThhZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NSBAQAorMjAxOS0xMS0wOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXNzZW1ibHldIEltcHJvdmUgYnl0ZWNvZGUgZHVtcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBp
bXByb3ZlcyB0aGUgYnl0ZWNvZGUgZHVtcGluZyBmb3IgV2FzbSBieToKKyAgICAgICAgLSBBZGRp
bmcgYSBuZXcgb3B0aW9uIHRoYXQgZHVtcHMgb25seSB0aGUgV2FzbSBieXRlY29kZS4gSXQgY2Fu
IGJlIHF1aXRlIGhhcmQgdG8gZmluZAorICAgICAgICAgIHRoZSBXYXNtIGJ5dGVjb2RlIGluIHRo
ZSBtaWRkbGUgb2YgYSB0b24gb2YgSlMgYnl0ZWNvZGUgZHVtcHMuCisgICAgICAgIC0gQWRkaW5n
IGEgaGVhZGVyIHdpdGggbmFtZSBvZiB0aGUgZnVuY3Rpb24gYW5kIHN0YXRzLCBzaW1pbGFyIHRv
IHRoZSBKUyBkdW1wLgorICAgICAgICAtIFVzaW5nIFdhc20gdHlwZXMgdG8gcHJvcGVybHkgcHJp
bnQgY29uc3RhbnRzLCBhbmQgaW5jbHVkaW5nIHRoZSB0eXBlIGluIGNvbnN0YW50cworICAgICAg
ICAgIHRhYmxlIGF0IHRoZSBlbmQgb2YgdGhlIGR1bXAuCisKKyAgICAgICAgSGVyZSdzIGFuIGV4
YW1wbGUgb2YgdGhlIHVwZGF0ZWQgYnl0ZWNvZGUgZHVtcDoKKworICAgICAgICA8Pz4ud2FzbS1m
dW5jdGlvblsyNl06IDYgaW5zdHJ1Y3Rpb25zICgwIDE2LWJpdCBpbnN0cnVjdGlvbnMsIDAgMzIt
Yml0IGluc3RydWN0aW9ucyk7IDE0IGJ5dGVzOyAxIHBhcmFtZXRlcihzKTsgMTggbG9jYWwocyk7
IDIyIGNhbGxlZSByZWdpc3RlcihzKQorICAgICAgICBbICAgMF0gZW50ZXIKKyAgICAgICAgWyAg
IDFdIG1vdiAgICAgICAgICAgICAgICBsb2MxOCwgbnVsbChjb25zdDApCisgICAgICAgIFsgICA0
XSBtb3YgICAgICAgICAgICAgICAgbG9jMjAsIGxvYzQKKyAgICAgICAgWyAgIDddIG1vdiAgICAg
ICAgICAgICAgICBsb2MxOSwgbG9jMjAKKyAgICAgICAgWyAgMTBdIG1vdiAgICAgICAgICAgICAg
ICBsb2M0LCBsb2MxOQorICAgICAgICBbICAxM10gcmV0CisKKyAgICAgICAgQ29uc3RhbnRzOgor
ICAgICAgICAgICBjb25zdDAgOiBBbnlyZWYgPSBudWxsCisKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Qnl0ZWNvZGVEdW1wZXI6OmR1bXBC
bG9jayk6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpkdW1wQ29uc3RhbnRz
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6Qnl0ZWNvZGVEdW1wZXI6OmNvbnN0YW50TmFtZSBjb25z
dCk6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpmb3JtYXRDb25zdGFudCBj
b25zdCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaDoKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVEdW1wZXI6On5CeXRlY29kZUR1bXBlcik6CisgICAgICAgICogcnVudGltZS9P
cHRpb25zTGlzdC5oOgorICAgICAgICAqIHdhc20vV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmNwcDoK
KyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvbkNvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6ZnVuY3Rpb25JbmRleCBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpudW1WYXJzIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6Om51bUNhbGxlZUxvY2FscyBjb25zdCk6CisgICAg
ICAgIChKU0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpudW1Bcmd1bWVudHMgY29uc3QpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6Y29uc3RhbnRUeXBlcyBjb25z
dCk6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpjb25zdGFudHMgY29u
c3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6aW5zdHJ1Y3Rpb25z
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6OmdldENvbnN0
YW50VHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtR2VuZXJhdG9yVHJhaXRzLmg6IEFk
ZGVkLgorICAgICAgICAqIHdhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKiB3YXNtL1dh
c21MTEludFBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludFBsYW46OmRpZENvbXBs
ZXRlQ29tcGlsYXRpb24pOgorCiAyMDE5LTExLTA4ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gTExJbnRHZW5lcmF0b3Igc2hvdWxk
IG5vdCByZXRhaW4gVmlydHVhbFJlZ2lzdGVycyB1c2VkIGZvciBjb25zdGFudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggODAzZTA4ZGU2YWI3MjFhYjI1NzFlYzZjODQ3Yjg0NDI0
MDIzYmVjZS4uNGQyN2Q5ODEwMTQzNzg5NDRhM2ExNjI4NzVhODU1MzJhOTE2Y2JkNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzNjEsNiArMzM2MSw3IEBACiAJCTE0ODJCN0Uy
MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU09iamVjdFJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTE0ODc0QUUxMTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxNDg3NEFFMjE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTE0ODdDRTE2MjM3NzQxMDAwMDQ0NDI5QyAvKiBXYXNtR2VuZXJhdG9yVHJh
aXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21HZW5lcmF0b3JUcmFp
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QTdCRUQxQjgyOTc1QTAwMkQ5
MTU3IC8qIElubGluZUNhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmxpbmVDYWxsRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxNDhBN0JFRTFCODI5NzVBMDAyRDkxNTcgLyogSW5saW5lQ2FsbEZyYW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNhbGxGcmFtZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDhCMTQxNjIyNUREMUQ3MDBENkU5OTggLyogQ2FjaGVQYXlsb2Fk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlUGF5bG9hZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjc4Nyw2ICs2Nzg4LDcgQEAKIAkJCQkxNEM1QUQ2
NzIyRjMzRkJGMDBGMUZCODMgLyogV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmNwcCAqLywKIAkJCQkx
NEM1QUQ2QjIyRjMzRkMwMDBGMUZCODMgLyogV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmggKi8sCiAJ
CQkJNTNGNDBFOEExRDU5MDFCQjAwOTlBMUI2IC8qIFdhc21GdW5jdGlvblBhcnNlci5oICovLAor
CQkJCTE0ODdDRTE2MjM3NzQxMDAwMDQ0NDI5QyAvKiBXYXNtR2VuZXJhdG9yVHJhaXRzLmggKi8s
CiAJCQkJQUQ4RkYzOTYxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAgKi8s
CiAJCQkJQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovLAog
CQkJCUFENUMzNkRFMUY2OTlFQjYwMDBCQ0FBRiAvKiBXYXNtSW5zdGFuY2UuY3BwICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5k
ZXggODU4YWI5MDUwMmU4NGQ3MDc5MTUzMjVmNjkzZWUzZDVkNTg1YzhlNy4uMzU2MWI4MWI5MzQ2
M2M2MDA5MDU0ZGIwNzFiMzI2M2Y2ZTdjNmEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiQnl0ZWNvZGVEdW1wZXIuaCIKIAogI2luY2x1ZGUgIkFyaXRoUHJvZmlsZS5oIgorI2lu
Y2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVTdHJ1Y3RzLmgiCiAjaW5jbHVkZSAiQ2FsbExpbmtTdGF0dXMuaCIKQEAgLTQy
LDYgKzQzLDkgQEAKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgogI2luY2x1ZGUgIlVu
bGlua2VkTWV0YWRhdGFUYWJsZUlubGluZXMuaCIKICNpbmNsdWRlICJXYXNtRnVuY3Rpb25Db2Rl
QmxvY2suaCIKKyNpbmNsdWRlICJXYXNtR2VuZXJhdG9yVHJhaXRzLmgiCisjaW5jbHVkZSAiV2Fz
bU1vZHVsZUluZm9ybWF0aW9uLmgiCisjaW5jbHVkZSAiV2FzbU9wcy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMjQ1LDEwICsyNDksOTYgQEAgdm9pZCBDb2RlQmxvY2tCeXRlY29kZUR1bXBl
cjxCbG9jaz46OmR1bXBCbG9jayhCbG9jayogYmxvY2ssIGNvbnN0IEluc3RydWN0aW9uU3QKIH0K
IAogdGVtcGxhdGUgY2xhc3MgQnl0ZWNvZGVEdW1wZXI8Q29kZUJsb2NrPjsKLSNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCi10ZW1wbGF0ZSBjbGFzcyBCeXRlY29kZUR1bXBlcjxXYXNtOjpGdW5jdGlv
bkNvZGVCbG9jaz47Ci0jZW5kaWYKIHRlbXBsYXRlIGNsYXNzIENvZGVCbG9ja0J5dGVjb2RlRHVt
cGVyPFVubGlua2VkQ29kZUJsb2NrPjsKIHRlbXBsYXRlIGNsYXNzIENvZGVCbG9ja0J5dGVjb2Rl
RHVtcGVyPENvZGVCbG9jaz47CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKK25hbWVzcGFj
ZSBXYXNtIHsKKwordm9pZCBCeXRlY29kZUR1bXBlcjo6ZHVtcEJsb2NrKEZ1bmN0aW9uQ29kZUJs
b2NrKiBibG9jaywgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1vZHVsZUluZm9ybWF0aW9uLCBQ
cmludFN0cmVhbSYgb3V0KQoreworICAgIHNpemVfdCBpbnN0cnVjdGlvbkNvdW50ID0gMDsKKyAg
ICBzaXplX3Qgd2lkZTE2SW5zdHJ1Y3Rpb25Db3VudCA9IDA7CisgICAgc2l6ZV90IHdpZGUzMklu
c3RydWN0aW9uQ291bnQgPSAwOworCisgICAgZm9yIChhdXRvIGl0ID0gYmxvY2stPmluc3RydWN0
aW9ucygpLmJlZ2luKCk7IGl0ICE9IGJsb2NrLT5pbnN0cnVjdGlvbnMoKS5lbmQoKTsgaXQgKz0g
aXQtPnNpemU8V2FzbU9wY29kZVRyYWl0cz4oKSkgeworICAgICAgICBpZiAoaXQtPmlzV2lkZTE2
KCkpCisgICAgICAgICAgICArK3dpZGUxNkluc3RydWN0aW9uQ291bnQ7CisgICAgICAgIGVsc2Ug
aWYgKGl0LT5pc1dpZGUzMigpKQorICAgICAgICAgICAgKyt3aWRlMzJJbnN0cnVjdGlvbkNvdW50
OworICAgICAgICArK2luc3RydWN0aW9uQ291bnQ7CisgICAgfQorCisgICAgc2l6ZV90IGZ1bmN0
aW9uSW5kZXhTcGFjZSA9IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9uQ291bnQoKSAr
IGJsb2NrLT5mdW5jdGlvbkluZGV4KCk7CisgICAgb3V0LnByaW50KG1ha2VTdHJpbmcoSW5kZXhP
ck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBtb2R1bGVJbmZvcm1hdGlvbi5uYW1lU2VjdGlvbi0+
Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKSk7CisgICAgb3V0LnByaW50ZigKKyAgICAgICAgIjog
JWx1IGluc3RydWN0aW9ucyAoJWx1IDE2LWJpdCBpbnN0cnVjdGlvbnMsICVsdSAzMi1iaXQgaW5z
dHJ1Y3Rpb25zKTsgJWx1IGJ5dGVzOyAlZCBwYXJhbWV0ZXIocyk7ICVkIGxvY2FsKHMpOyAlZCBj
YWxsZWUgcmVnaXN0ZXIocylcbiIsCisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+
KGluc3RydWN0aW9uQ291bnQpLAorICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPih3
aWRlMTZJbnN0cnVjdGlvbkNvdW50KSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9u
Zz4od2lkZTMySW5zdHJ1Y3Rpb25Db3VudCksCisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmc+KGJsb2NrLT5pbnN0cnVjdGlvbnMoKS5zaXplSW5CeXRlcygpKSwKKyAgICAgICAgYmxv
Y2stPm51bUFyZ3VtZW50cygpLAorICAgICAgICBibG9jay0+bnVtVmFycygpLAorICAgICAgICBi
bG9jay0+bnVtQ2FsbGVlTG9jYWxzKCkpOworCisgICAgQnl0ZWNvZGVEdW1wZXIgZHVtcGVyKGJs
b2NrLCBvdXQpOworICAgIGZvciAoYXV0byBpdCA9IGJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpOyBpdCAhPSBibG9jay0+aW5zdHJ1Y3Rpb25zKCkuZW5kKCk7IGl0ICs9IGl0LT5zaXplPFdh
c21PcGNvZGVUcmFpdHM+KCkpIHsKKyAgICAgICAgZHVtcFdhc20oJmR1bXBlciwgaXQub2Zmc2V0
KCksIGl0LnB0cigpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KKworICAgIGR1
bXBlci5kdW1wQ29uc3RhbnRzKCk7CisKKyAgICBvdXQucHJpbnRmKCJcbiIpOworfQorCit2b2lk
IEJ5dGVjb2RlRHVtcGVyOjpkdW1wQ29uc3RhbnRzKCkKK3sKKyAgICBGdW5jdGlvbkNvZGVCbG9j
ayogYmxvY2sgPSB0aGlzLT5ibG9jaygpOworICAgIGlmICghYmxvY2stPmNvbnN0YW50cygpLmlz
RW1wdHkoKSkgeworICAgICAgICB0aGlzLT5tX291dC5wcmludGYoIlxuQ29uc3RhbnRzOlxuIik7
CisgICAgICAgIHVuc2lnbmVkIGkgPSAwOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0
YW50IDogYmxvY2stPmNvbnN0YW50cygpKSB7CisgICAgICAgICAgICBUeXBlIHR5cGUgPSBibG9j
ay0+Y29uc3RhbnRUeXBlcygpW2ldOworICAgICAgICAgICAgdGhpcy0+bV9vdXQucHJpbnQoIiAg
IGNvbnN0IiwgaSwgIiA6ICIsIHR5cGUsICIgPSAiLCBmb3JtYXRDb25zdGFudCh0eXBlLCBjb25z
dGFudCksICJcbiIpOworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgfQorfQorCitD
U3RyaW5nIEJ5dGVjb2RlRHVtcGVyOjpjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdAorewor
ICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBibG9jayA9IHRoaXMtPmJsb2NrKCk7CisgICAgYXV0byB2
YWx1ZSA9IGZvcm1hdENvbnN0YW50KGJsb2NrLT5nZXRDb25zdGFudFR5cGUoaW5kZXgpLCBibG9j
ay0+Z2V0Q29uc3RhbnQoaW5kZXgpKTsKKyAgICByZXR1cm4gdG9DU3RyaW5nKHZhbHVlLCAiKCIs
IFZpcnR1YWxSZWdpc3RlcihpbmRleCksICIpIik7Cit9CisKK0NTdHJpbmcgQnl0ZWNvZGVEdW1w
ZXI6OmZvcm1hdENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0Cit7
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBUeXBlOjpJMzI6CisgICAgICAgIHJldHVy
biB0b0NTdHJpbmcoc3RhdGljX2Nhc3Q8aW50MzJfdD4oY29uc3RhbnQpKTsKKyAgICBjYXNlIFR5
cGU6Okk2NDoKKyAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhjb25zdGFudCk7CisgICAgY2FzZSBU
eXBlOjpGMzI6CisgICAgICAgIHJldHVybiB0b0NTdHJpbmcoYml0d2lzZV9jYXN0PGZsb2F0Pihz
dGF0aWNfY2FzdDxpbnQzMl90Pihjb25zdGFudCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBUeXBlOjpGNjQ6CisgICAgICAgIHJldHVybiB0b0NTdHJpbmcoYml0d2lzZV9jYXN0PGRvdWJs
ZT4oY29uc3RhbnQpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpBbnlyZWY6Cisg
ICAgY2FzZSBUeXBlOjpGdW5jcmVmOgorICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0
YW50KSA9PSBqc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiAibnVsbCI7CisgICAgICAgIHJl
dHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkp
OworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiAiIjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdhc20KKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKaW5kZXggOTQ4YTVhNTNkMmM2OWMzOGRlMWUzMWVk
ZDFmNzBlZTgyODM2YjMzNC4uNjg5ZTAyMmNiNDViMGIzMjMyYTkzZGI3YmE5NzUzNjhkMDJiM2Nm
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVt
cGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVy
LmgKQEAgLTcwLDYgKzcwLDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKKyAgICB2aXJ0dWFs
IH5CeXRlY29kZUR1bXBlcigpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJsb2NrKCkg
Y29uc3QgeyByZXR1cm4gbV9ibG9jazsgfQogCkBAIC03OSw3ICs4MSw3IEBAIHByb3RlY3RlZDoK
IAogcHJpdmF0ZToKICAgICBDU3RyaW5nIHJlZ2lzdGVyTmFtZShpbnQgcikgY29uc3Q7Ci0gICAg
Q1N0cmluZyBjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIENTdHJp
bmcgY29uc3RhbnROYW1lKGludCBpbmRleCkgY29uc3Q7CiAKICAgICBCbG9jayogbV9ibG9jazsK
ICAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IG1fY3VycmVudExvY2F0aW9uIHsgMCB9OwpA
QCAtMTA0LDQgKzEwNiwyOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcFN0cmluZ1N3aXRjaEp1
bXBUYWJsZXMoKTsKIH07CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKK25hbWVzcGFjZSBX
YXNtIHsKKworY2xhc3MgRnVuY3Rpb25Db2RlQmxvY2s7CitzdHJ1Y3QgTW9kdWxlSW5mb3JtYXRp
b247CitlbnVtIFR5cGUgOiBpbnQ4X3Q7CisKK2NsYXNzIEJ5dGVjb2RlRHVtcGVyIDogcHVibGlj
IEpTQzo6Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rpb25Db2RlQmxvY2s+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgdm9pZCBkdW1wQmxvY2soRnVuY3Rpb25Db2RlQmxvY2sqLCBjb25zdCBNb2R1bGVJbmZv
cm1hdGlvbiYsIFByaW50U3RyZWFtJiBvdXQpOworCitwcml2YXRlOgorICAgIHVzaW5nIEpTQzo6
Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rpb25Db2RlQmxvY2s+OjpCeXRlY29kZUR1bXBlcjsKKworICAg
IHZvaWQgZHVtcENvbnN0YW50cygpOworICAgIENTdHJpbmcgY29uc3RhbnROYW1lKGludCBpbmRl
eCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ1N0cmluZyBmb3JtYXRDb25zdGFudChUeXBlLCB1aW50
NjRfdCkgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXYXNtCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zTGlzdC5oCmluZGV4IDI4YzBhY2YxNTQxMThmOTU2YTBkZjU4Y2UyNGM3ZjYzOWJjNGFkNTQu
LmNmMTQ1ZjFlYmY1NzY3YWI5MmM5OTg1NjYxYzZlOWIwNjEwZDA1YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtODYsNiArODYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB2KFVuc2lnbmVkLCByZXBhdGNoQnVmZmVyaW5nQ291bnRkb3duLCA4
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihCb29sLCBkdW1wR2VuZXJhdGVkQnl0
ZWNvZGVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihCb29sLCBkdW1wR2VuZXJh
dGVkV2FzbUJ5dGVjb2RlcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwg
ZHVtcEJ5dGVjb2RlTGl2ZW5lc3NSZXN1bHRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihCb29sLCB2YWxpZGF0ZUJ5dGVjb2RlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihCb29sLCBmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RnVuY3Rpb25Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1
bmN0aW9uQ29kZUJsb2NrLmNwcAppbmRleCBiNWNkYWMzMzIzNjE1YTg2MDY0OWVmMDRjZDkwMDQy
MWYyNmMxYTVlLi5kMzUwNWMzMDA4MTllYWU0Y2E2OTQ4Zjk4ZDhmYmE3Y2EyM2ZjZGI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvbkNvZGVCbG9j
ay5jcHAKQEAgLTQyLDE1ICs0Miw2IEBAIHZvaWQgRnVuY3Rpb25Db2RlQmxvY2s6OnNldEluc3Ry
dWN0aW9ucyhzdGQ6OnVuaXF1ZV9wdHI8SW5zdHJ1Y3Rpb25TdHJlYW0+IGluc3RyCiAgICAgbV9p
bnN0cnVjdGlvbnNSYXdQb2ludGVyID0gbV9pbnN0cnVjdGlvbnMtPnJhd1BvaW50ZXIoKTsKIH0K
IAotdm9pZCBGdW5jdGlvbkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKCkKLXsKLSAgICBCeXRlY29k
ZUR1bXBlcjxGdW5jdGlvbkNvZGVCbG9jaz4gZHVtcGVyKHRoaXMsIFdURjo6ZGF0YUZpbGUoKSk7
Ci0gICAgZm9yIChhdXRvIGl0ID0gbV9pbnN0cnVjdGlvbnMtPmJlZ2luKCk7IGl0ICE9IG1faW5z
dHJ1Y3Rpb25zLT5lbmQoKTsgaXQgKz0gaXQtPnNpemU8V2FzbU9wY29kZVRyYWl0cz4oKSkgewot
ICAgICAgICBkdW1wV2FzbSgmZHVtcGVyLCBpdC5vZmZzZXQoKSwgaXQucHRyKCkpOwotICAgICAg
ICBkYXRhTG9nTG4oKTsKLSAgICB9Ci19Ci0KIHZvaWQgRnVuY3Rpb25Db2RlQmxvY2s6OmFkZE91
dE9mTGluZUp1bXBUYXJnZXQoSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBieXRlY29kZU9mZnNl
dCwgaW50IHRhcmdldCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCh0YXJnZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaAppbmRleCBi
ZGI5NWUzZmFkZTk2ODAyOTBjYjg2NjVkMThlYzRjN2JmZDhkYzNmLi5mZWQ0NDc1Y2E1ZDU3OTc2
NDhhOWY3YjI5YzUwYTk1NzZhNGNjMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3Bh
Y2UgV2FzbSB7CiAKIGNsYXNzIFNpZ25hdHVyZTsKIHN0cnVjdCBHZW5lcmF0b3JUcmFpdHM7Citl
bnVtIFR5cGUgOiBpbnQ4X3Q7CiAKIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIHRoaXMgd2l0
aCBMTEludENhbGxlZQogLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzY5MQpAQCAtNjMsMTIgKzY0LDIyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAg
dWludDMyX3QgZnVuY3Rpb25JbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25JbmRleDsg
fQorICAgIGludCBudW1WYXJzKCkgY29uc3QgeyByZXR1cm4gbV9udW1WYXJzOyB9CisgICAgaW50
IG51bUNhbGxlZUxvY2FscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtQ2FsbGVlTG9jYWxzOyB9Cisg
ICAgdWludDMyX3QgbnVtQXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9udW1Bcmd1bWVudHM7
IH0KKyAgICBjb25zdCBWZWN0b3I8VHlwZT4mIGNvbnN0YW50VHlwZXMoKSBjb25zdCB7IHJldHVy
biBtX2NvbnN0YW50VHlwZXM7IH0KKyAgICBjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBjb25zdGFu
dHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0YW50czsgfQorICAgIGNvbnN0IEluc3RydWN0aW9u
U3RyZWFtJiBpbnN0cnVjdGlvbnMoKSBjb25zdCB7IHJldHVybiAqbV9pbnN0cnVjdGlvbnM7IH0K
KwogICAgIEFMV0FZU19JTkxJTkUgdWludDY0X3QgZ2V0Q29uc3RhbnQoaW50IGluZGV4KSBjb25z
dCB7IHJldHVybiBtX2NvbnN0YW50c1tpbmRleCAtIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4
XTsgfQotICAgIEFMV0FZU19JTkxJTkUgdWludDMyX3QgZnVuY3Rpb25JbmRleCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnVuY3Rpb25JbmRleDsgfQorICAgIEFMV0FZU19JTkxJTkUgVHlwZSBnZXRDb25z
dGFudFR5cGUoaW50IGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKE9wdGlvbnM6
OmR1bXBHZW5lcmF0ZWRXYXNtQnl0ZWNvZGVzKCkpOworICAgICAgICByZXR1cm4gbV9jb25zdGFu
dFR5cGVzW2luZGV4IC0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXhdOworICAgIH0KIAogICAg
IHZvaWQgc2V0SW5zdHJ1Y3Rpb25zKHN0ZDo6dW5pcXVlX3B0cjxJbnN0cnVjdGlvblN0cmVhbT4p
OwotICAgIHZvaWQgZHVtcEJ5dGVjb2RlKCk7Ci0KICAgICB2b2lkIGFkZEp1bXBUYXJnZXQoSW5z
dHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBqdW1wVGFyZ2V0KSB7IG1fanVtcFRhcmdldHMuYXBwZW5k
KGp1bXBUYXJnZXQpOyB9CiAgICAgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBudW1iZXJPZkp1
bXBUYXJnZXRzKCkgeyByZXR1cm4gbV9qdW1wVGFyZ2V0cy5zaXplKCk7IH0KICAgICBJbnN0cnVj
dGlvblN0cmVhbTo6T2Zmc2V0IGxhc3RKdW1wVGFyZ2V0KCkgeyByZXR1cm4gbV9qdW1wVGFyZ2V0
cy5sYXN0KCk7IH0KQEAgLTEwOSw2ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIC8vIE51bWJlciBv
ZiBWaXJ0dWFsUmVnaXN0ZXIuIFRoZSBuYW1pbmcgaXMgdW5mb3J0dW5hdGUsIGJ1dCBoYXMgdG8g
bWF0Y2ggVW5saW5rZWRDb2RlQmxvY2sKICAgICBpbnQgbV9udW1DYWxsZWVMb2NhbHMgeyAwIH07
CiAgICAgdWludDMyX3QgbV9udW1Bcmd1bWVudHMgeyAwIH07CisgICAgVmVjdG9yPFR5cGU+IG1f
Y29uc3RhbnRUeXBlczsKICAgICBWZWN0b3I8dWludDY0X3Q+IG1fY29uc3RhbnRzOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbnN0cnVjdGlvblN0cmVhbT4gbV9pbnN0cnVjdGlvbnM7CiAgICAgY29u
c3Qgdm9pZCogbV9pbnN0cnVjdGlvbnNSYXdQb2ludGVyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdlbmVyYXRvclRyYWl0cy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdlbmVyYXRvclRyYWl0cy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZjY2E2YmIxZGRmYjMwOTVhZDg4YWViOTczMTlhNzUzNzRjNTQ5MzYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2VuZXJhdG9yVHJhaXRzLmgKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJCeXRlY29kZVN0cnVjdHMu
aCIKKyNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IFdhc20geworCitzdHJ1Y3QgR2VuZXJhdG9yVHJhaXRzIHsKKyAgICB1c2luZyBPcGNvZGVUcmFp
dHMgPSBXYXNtT3Bjb2RlVHJhaXRzOworICAgIHVzaW5nIE9wY29kZUlEID0gV2FzbU9wY29kZUlE
OworICAgIHVzaW5nIE9wTm9wID0gV2FzbU5vcDsKKyAgICB1c2luZyBDb2RlQmxvY2sgPSBzdGQ6
OnVuaXF1ZV9wdHI8RnVuY3Rpb25Db2RlQmxvY2s+OworICAgIHN0YXRpYyBjb25zdGV4cHIgT3Bj
b2RlSUQgb3Bjb2RlRm9yRGlzYWJsaW5nT3B0aW1pemF0aW9ucyA9IHdhc21fdW5yZWFjaGFibGU7
Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxM
SW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdl
bmVyYXRvci5jcHAKaW5kZXggMWQ0YzQyY2M0NzI2OTk0ZGU0M2Y4MjhjYzk5ZjI3Mzg0MDgzNDEz
Ny4uYmFlZjUwNzAzN2Y5NjE3MzRhOWE4YmVhNDI3NzY2OTRmZjM3NWI0MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2Fz
bUZ1bmN0aW9uQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiV2FzbUZ1bmN0aW9uUGFyc2VyLmgiCisj
aW5jbHVkZSAiV2FzbUdlbmVyYXRvclRyYWl0cy5oIgogI2luY2x1ZGUgIldhc21UaHVua3MuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZFVub3JkZXJlZE1hcC5o
PgpAQCAtNDQsMTQgKzQ1LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsK
IAotc3RydWN0IEdlbmVyYXRvclRyYWl0cyB7Ci0gICAgdXNpbmcgT3Bjb2RlVHJhaXRzID0gV2Fz
bU9wY29kZVRyYWl0czsKLSAgICB1c2luZyBPcGNvZGVJRCA9IFdhc21PcGNvZGVJRDsKLSAgICB1
c2luZyBPcE5vcCA9IFdhc21Ob3A7Ci0gICAgdXNpbmcgQ29kZUJsb2NrID0gc3RkOjp1bmlxdWVf
cHRyPEZ1bmN0aW9uQ29kZUJsb2NrPjsKLSAgICBzdGF0aWMgY29uc3RleHByIE9wY29kZUlEIG9w
Y29kZUZvckRpc2FibGluZ09wdGltaXphdGlvbnMgPSB3YXNtX3VucmVhY2hhYmxlOwotfTsKLQog
Y2xhc3MgTExJbnRHZW5lcmF0b3IgOiBwdWJsaWMgQnl0ZWNvZGVHZW5lcmF0b3JCYXNlPEdlbmVy
YXRvclRyYWl0cz4gewogcHVibGljOgogICAgIHVzaW5nIEV4cHJlc3Npb25UeXBlID0gUmVmUHRy
PFJlZ2lzdGVySUQ+OwpAQCAtNDk4LDEzICs0OTEsMTUgQEAgdm9pZCBMTEludEdlbmVyYXRvcjo6
ZGlkRmluaXNoUGFyc2luZ0xvY2FscygpCiAgICAgbV91bml0aWFsaXplZExvY2Fscy5jbGVhcigp
OwogfQogCi1hdXRvIExMSW50R2VuZXJhdG9yOjphZGRDb25zdGFudChUeXBlLCB1aW50NjRfdCB2
YWx1ZSkgLT4gRXhwcmVzc2lvblR5cGUKK2F1dG8gTExJbnRHZW5lcmF0b3I6OmFkZENvbnN0YW50
KFR5cGUgdHlwZSwgdWludDY0X3QgdmFsdWUpIC0+IEV4cHJlc3Npb25UeXBlCiB7CiAgICAgVmly
dHVhbFJlZ2lzdGVyIHNvdXJjZShGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCArIG1fY29kZUJs
b2NrLT5tX2NvbnN0YW50cy5zaXplKCkpOwogICAgIGF1dG8gcmVzdWx0ID0gbV9jb25zdGFudE1h
cC5lbXBsYWNlKHZhbHVlLCBzb3VyY2UpOwotICAgIGlmIChyZXN1bHQuc2Vjb25kKQorICAgIGlm
IChyZXN1bHQuc2Vjb25kKSB7CiAgICAgICAgIG1fY29kZUJsb2NrLT5tX2NvbnN0YW50cy5hcHBl
bmQodmFsdWUpOwotICAgIGVsc2UKKyAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmR1bXBH
ZW5lcmF0ZWRXYXNtQnl0ZWNvZGVzKCkpKQorICAgICAgICAgICAgbV9jb2RlQmxvY2stPm1fY29u
c3RhbnRUeXBlcy5hcHBlbmQodHlwZSk7CisgICAgfSBlbHNlCiAgICAgICAgIHNvdXJjZSA9IHJl
c3VsdC5maXJzdC0+c2Vjb25kOwogICAgIGF1dG8gdGFyZ2V0ID0gbmV3VGVtcG9yYXJ5KCk7CiAg
ICAgV2FzbU1vdjo6ZW1pdCh0aGlzLCB0YXJnZXQsIHNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmluZGV4IDQxOWM0MmM1MzI4NjkwODdiODNj
NGNjYjE3MWNlNDZhNmUxODgxNWEuLjc3MmI1MTk2NmU0NTdkMjk2OGJjNjViMzEwOTM4ZGRmYmMy
YjEwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBs
YW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAi
QjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgiCiAjaW5jbHVkZSAi
Q2FsbGVlQml0cy5oIgogI2luY2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgpAQCAtOTAsMTEgKzkxLDYgQEAgdm9pZCBMTEludFBsYW46OmNvbXBpbGVGdW5jdGlv
bih1aW50MzJfdCBmdW5jdGlvbkluZGV4KQogCiB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVD
b21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogewotICAgIGlmIChPcHRp
b25zOjpkdW1wR2VuZXJhdGVkQnl0ZWNvZGVzKCkpIHsKLSAgICAgICAgZm9yIChjb25zdCBhdXRv
JiBjb2RlQmxvY2sgOiBtX3dhc21JbnRlcm5hbEZ1bmN0aW9ucykKLSAgICAgICAgICAgIGNvZGVC
bG9jay0+ZHVtcEJ5dGVjb2RlKCk7Ci0gICAgfQotCiAgICAgZm9yICh1aW50MzJfdCBmdW5jdGlv
bkluZGV4ID0gMDsgZnVuY3Rpb25JbmRleCA8IG1fbW9kdWxlSW5mb3JtYXRpb24tPmZ1bmN0aW9u
cy5zaXplKCk7IGZ1bmN0aW9uSW5kZXgrKykgewogICAgICAgICBTaWduYXR1cmVJbmRleCBzaWdu
YXR1cmVJbmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFsRnVuY3Rpb25TaWduYXR1
cmVJbmRpY2VzW2Z1bmN0aW9uSW5kZXhdOwogICAgICAgICBjb25zdCBTaWduYXR1cmUmIHNpZ25h
dHVyZSA9IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoc2lnbmF0dXJlSW5kZXgpOwpAQCAtMTIx
LDYgKzExNywxMCBAQCB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogICAgICAgICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpK
dW1wPiBqdW1wcyhmdW5jdGlvbkNvdW50KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZ1bmN0aW9uQ291bnQ7ICsraSkgewogICAgICAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5k
ZXhTcGFjZSA9IGkgKyBtX21vZHVsZUluZm9ybWF0aW9uLT5pbXBvcnRGdW5jdGlvbkNvdW50KCk7
CisKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wR2VuZXJhdGVkV2FzbUJ5
dGVjb2RlcygpKSkKKyAgICAgICAgICAgICAgICBCeXRlY29kZUR1bXBlcjo6ZHVtcEJsb2NrKG1f
d2FzbUludGVybmFsRnVuY3Rpb25zW2ldLmdldCgpLCBtX21vZHVsZUluZm9ybWF0aW9uLCBXVEY6
OmRhdGFGaWxlKCkpOworCiAgICAgICAgICAgICBtX2NhbGxlZXNbaV0gPSBXYXNtOjpMTEludENh
bGxlZTo6Y3JlYXRlKFdURk1vdmUobV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbaV0pLCBmdW5jdGlv
bkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rp
b25JbmRleFNwYWNlKSk7CiAgICAgICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGppdC5sYWJlbCgp
OwogI2lmIENQVShYODZfNjQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383226</attachid>
            <date>2019-11-09 14:19:24 -0800</date>
            <delta_ts>2019-11-09 14:35:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204051-20191109141923.patch</filename>
            <type>text/plain</type>
            <size>20590</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjQyMDdiMzdjYmNlNzMxMzNiM2I3Yzg3YmM0ZTZmYjZhYTA4MTBjLi4wNDAyMzIxZGE4NGM4YzU5
MzkyZjU3YmU0NDYzNjVhZDhmNmNmNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxOS0xMS0wOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXNzZW1ibHldIEltcHJvdmUgYnl0ZWNvZGUgZHVtcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
cm92ZXMgdGhlIGJ5dGVjb2RlIGR1bXBpbmcgZm9yIFdhc20gYnk6CisgICAgICAgIC0gQWRkaW5n
IGEgbmV3IG9wdGlvbiB0aGF0IGR1bXBzIG9ubHkgdGhlIFdhc20gYnl0ZWNvZGUuIEl0IGNhbiBi
ZSBxdWl0ZSBoYXJkIHRvIGZpbmQKKyAgICAgICAgICB0aGUgV2FzbSBieXRlY29kZSBpbiB0aGUg
bWlkZGxlIG9mIGEgdG9uIG9mIEpTIGJ5dGVjb2RlIGR1bXBzLgorICAgICAgICAtIEFkZGluZyBh
IGhlYWRlciB3aXRoIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGFuZCBzdGF0cywgc2ltaWxhciB0byB0
aGUgSlMgZHVtcC4KKyAgICAgICAgLSBVc2luZyBXYXNtIHR5cGVzIHRvIHByb3Blcmx5IHByaW50
IGNvbnN0YW50cywgYW5kIGluY2x1ZGluZyB0aGUgdHlwZSBpbiBjb25zdGFudHMKKyAgICAgICAg
ICB0YWJsZSBhdCB0aGUgZW5kIG9mIHRoZSBkdW1wLgorCisgICAgICAgIEhlcmUncyBhbiBleGFt
cGxlIG9mIHRoZSB1cGRhdGVkIGJ5dGVjb2RlIGR1bXA6CisKKyAgICAgICAgPD8+Lndhc20tZnVu
Y3Rpb25bMjZdIDogKEkzMikgLT4gW0kzMl0KKyAgICAgICAgd2FzbSBzaXplOiA0IGJ5dGVzCisg
ICAgICAgIGJ5dGVjb2RlOiA2IGluc3RydWN0aW9ucyAoMCAxNi1iaXQgaW5zdHJ1Y3Rpb25zLCAw
IDMyLWJpdCBpbnN0cnVjdGlvbnMpOyAxNCBieXRlczsgMSBwYXJhbWV0ZXIocyk7IDE4IGxvY2Fs
KHMpOyAyMiBjYWxsZWUgcmVnaXN0ZXIocykKKyAgICAgICAgWyAgIDBdIGVudGVyCisgICAgICAg
IFsgICAxXSBtb3YgICAgICAgICAgICAgICAgbG9jMTgsIG51bGwoY29uc3QwKQorICAgICAgICBb
ICAgNF0gbW92ICAgICAgICAgICAgICAgIGxvYzIwLCBsb2M0CisgICAgICAgIFsgICA3XSBtb3Yg
ICAgICAgICAgICAgICAgbG9jMTksIGxvYzIwCisgICAgICAgIFsgIDEwXSBtb3YgICAgICAgICAg
ICAgICAgbG9jNCwgbG9jMTkKKyAgICAgICAgWyAgMTNdIHJldAorCisgICAgICAgIENvbnN0YW50
czoKKyAgICAgICAgICAgY29uc3QwIDogQW55cmVmID0gbnVsbAorCisgICAgICAgICogSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9C
eXRlY29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpk
dW1wQmxvY2spOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6ZHVtcENvbnN0
YW50cyk6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpjb25zdGFudE5hbWUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3Rh
bnQgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmg6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlRHVtcGVyOjp+Qnl0ZWNvZGVEdW1wZXIpOgorICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvbkNvZGVCbG9jay5j
cHA6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaDoKKyAgICAgICAgKEpT
Qzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6OmZ1bmN0aW9uSW5kZXggY29uc3QpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6bnVtVmFycyBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpudW1DYWxsZWVMb2NhbHMgY29uc3QpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6bnVtQXJndW1lbnRzIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6OmNvbnN0YW50VHlwZXMg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6Y29uc3RhbnRz
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6Omluc3RydWN0
aW9ucyBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpnZXRD
b25zdGFudFR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUdlbmVyYXRvclRyYWl0cy5o
OiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRDb25zdGFudCk6CisgICAgICAgICogd2Fz
bS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRD
b21wbGV0ZUNvbXBpbGF0aW9uKToKKwogMjAxOS0xMS0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdh
bGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXNzZW1ibHldIExMSW50R2VuZXJhdG9yIHNo
b3VsZCBub3QgcmV0YWluIFZpcnR1YWxSZWdpc3RlcnMgdXNlZCBmb3IgY29uc3RhbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgwM2UwOGRlNmFiNzIxYWIyNTcxZWM2Yzg0N2I4
NDQyNDAyM2JlY2UuLjRkMjdkOTgxMDE0Mzc4OTQ0YTNhMTYyODc1YTg1NTMyYTkxNmNiZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzYxLDYgKzMzNjEsNyBAQAogCQkxNDgy
QjdFMjBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNPYmplY3RSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDg3NEFFMTE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njb3BlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4NzRBRTIxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY29wZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxNDg3Q0UxNjIzNzc0MTAwMDA0NDQyOUMgLyogV2FzbUdlbmVyYXRv
clRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtR2VuZXJhdG9y
VHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OEE3QkVEMUI4Mjk3NUEw
MDJEOTE1NyAvKiBJbmxpbmVDYWxsRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5saW5lQ2FsbEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTQ4QTdCRUUxQjgyOTc1QTAwMkQ5MTU3IC8qIElubGluZUNhbGxGcmFtZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVDYWxsRnJhbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QjE0MTYyMjVERDFENzAwRDZFOTk4IC8qIENhY2hlUGF5
bG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVBheWxvYWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3ODcsNiArNjc4OCw3IEBACiAJCQkJMTRD
NUFENjcyMkYzM0ZCRjAwRjFGQjgzIC8qIFdhc21GdW5jdGlvbkNvZGVCbG9jay5jcHAgKi8sCiAJ
CQkJMTRDNUFENkIyMkYzM0ZDMDAwRjFGQjgzIC8qIFdhc21GdW5jdGlvbkNvZGVCbG9jay5oICov
LAogCQkJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rpb25QYXJzZXIuaCAq
LywKKwkJCQkxNDg3Q0UxNjIzNzc0MTAwMDA0NDQyOUMgLyogV2FzbUdlbmVyYXRvclRyYWl0cy5o
ICovLAogCQkJCUFEOEZGMzk2MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuY3Bw
ICovLAogCQkJCUFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCAq
LywKIAkJCQlBRDVDMzZERTFGNjk5RUI2MDAwQkNBQUYgLyogV2FzbUluc3RhbmNlLmNwcCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CmluZGV4IDg1OGFiOTA1MDJlODRkNzA3OTE1MzI1ZjY5M2VlM2Q1ZDU4NWM4ZTcuLjNkN2EwZGQ0
NmU4NjNmZGIyNjNiY2UxMTY0YzI3ZDUxMTNkNjQ0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgiCiAKICNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIK
KyNpbmNsdWRlICJCM1R5cGUuaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogI2lu
Y2x1ZGUgIkJ5dGVjb2RlU3RydWN0cy5oIgogI2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkBA
IC00Miw2ICs0Myw5IEBACiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJVbmxpbmtlZE1ldGFkYXRhVGFibGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUZ1bmN0aW9u
Q29kZUJsb2NrLmgiCisjaW5jbHVkZSAiV2FzbUdlbmVyYXRvclRyYWl0cy5oIgorI2luY2x1ZGUg
Ildhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIldhc21PcHMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTI0NSwxMCArMjQ5LDEwMyBAQCB2b2lkIENvZGVCbG9ja0J5dGVjb2Rl
RHVtcGVyPEJsb2NrPjo6ZHVtcEJsb2NrKEJsb2NrKiBibG9jaywgY29uc3QgSW5zdHJ1Y3Rpb25T
dAogfQogCiB0ZW1wbGF0ZSBjbGFzcyBCeXRlY29kZUR1bXBlcjxDb2RlQmxvY2s+OwotI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLXRlbXBsYXRlIGNsYXNzIEJ5dGVjb2RlRHVtcGVyPFdhc206OkZ1
bmN0aW9uQ29kZUJsb2NrPjsKLSNlbmRpZgogdGVtcGxhdGUgY2xhc3MgQ29kZUJsb2NrQnl0ZWNv
ZGVEdW1wZXI8VW5saW5rZWRDb2RlQmxvY2s+OwogdGVtcGxhdGUgY2xhc3MgQ29kZUJsb2NrQnl0
ZWNvZGVEdW1wZXI8Q29kZUJsb2NrPjsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFt
ZXNwYWNlIFdhc20geworCit2b2lkIEJ5dGVjb2RlRHVtcGVyOjpkdW1wQmxvY2soRnVuY3Rpb25D
b2RlQmxvY2sqIGJsb2NrLCBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbW9kdWxlSW5mb3JtYXRp
b24sIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgc2l6ZV90IGluc3RydWN0aW9uQ291bnQgPSAw
OworICAgIHNpemVfdCB3aWRlMTZJbnN0cnVjdGlvbkNvdW50ID0gMDsKKyAgICBzaXplX3Qgd2lk
ZTMySW5zdHJ1Y3Rpb25Db3VudCA9IDA7CisKKyAgICBmb3IgKGF1dG8gaXQgPSBibG9jay0+aW5z
dHJ1Y3Rpb25zKCkuYmVnaW4oKTsgaXQgIT0gYmxvY2stPmluc3RydWN0aW9ucygpLmVuZCgpOyBp
dCArPSBpdC0+c2l6ZTxXYXNtT3Bjb2RlVHJhaXRzPigpKSB7CisgICAgICAgIGlmIChpdC0+aXNX
aWRlMTYoKSkKKyAgICAgICAgICAgICsrd2lkZTE2SW5zdHJ1Y3Rpb25Db3VudDsKKyAgICAgICAg
ZWxzZSBpZiAoaXQtPmlzV2lkZTMyKCkpCisgICAgICAgICAgICArK3dpZGUzMkluc3RydWN0aW9u
Q291bnQ7CisgICAgICAgICsraW5zdHJ1Y3Rpb25Db3VudDsKKyAgICB9CisKKyAgICBzaXplX3Qg
ZnVuY3Rpb25JbmRleFNwYWNlID0gbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0RnVuY3Rpb25Db3Vu
dCgpICsgYmxvY2stPmZ1bmN0aW9uSW5kZXgoKTsKKyAgICBvdXQucHJpbnQobWFrZVN0cmluZyhJ
bmRleE9yTmFtZShmdW5jdGlvbkluZGV4U3BhY2UsIG1vZHVsZUluZm9ybWF0aW9uLm5hbWVTZWN0
aW9uLT5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSkpKTsKKworICAgIGNvbnN0IGF1dG8mIGZ1bmN0
aW9uID0gbW9kdWxlSW5mb3JtYXRpb24uZnVuY3Rpb25zW2Jsb2NrLT5mdW5jdGlvbkluZGV4KCld
OworICAgIFNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4ID0gbW9kdWxlSW5mb3JtYXRpb24u
aW50ZXJuYWxGdW5jdGlvblNpZ25hdHVyZUluZGljZXNbYmxvY2stPmZ1bmN0aW9uSW5kZXgoKV07
CisgICAgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUgPSBTaWduYXR1cmVJbmZvcm1hdGlvbjo6
Z2V0KHNpZ25hdHVyZUluZGV4KTsKKyAgICBvdXQucHJpbnQoIiA6ICIsIHNpZ25hdHVyZSwgIlxu
Iik7CisgICAgb3V0LnByaW50KCJ3YXNtIHNpemU6ICIsIGZ1bmN0aW9uLmRhdGEuc2l6ZSgpLCAi
IGJ5dGVzXG4iKTsKKworICAgIG91dC5wcmludGYoCisgICAgICAgICJieXRlY29kZTogJWx1IGlu
c3RydWN0aW9ucyAoJWx1IDE2LWJpdCBpbnN0cnVjdGlvbnMsICVsdSAzMi1iaXQgaW5zdHJ1Y3Rp
b25zKTsgJWx1IGJ5dGVzOyAlZCBwYXJhbWV0ZXIocyk7ICVkIGxvY2FsKHMpOyAlZCBjYWxsZWUg
cmVnaXN0ZXIocylcbiIsCisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGluc3Ry
dWN0aW9uQ291bnQpLAorICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPih3aWRlMTZJ
bnN0cnVjdGlvbkNvdW50KSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4od2lk
ZTMySW5zdHJ1Y3Rpb25Db3VudCksCisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+
KGJsb2NrLT5pbnN0cnVjdGlvbnMoKS5zaXplSW5CeXRlcygpKSwKKyAgICAgICAgYmxvY2stPm51
bUFyZ3VtZW50cygpLAorICAgICAgICBibG9jay0+bnVtVmFycygpLAorICAgICAgICBibG9jay0+
bnVtQ2FsbGVlTG9jYWxzKCkpOworCisgICAgQnl0ZWNvZGVEdW1wZXIgZHVtcGVyKGJsb2NrLCBv
dXQpOworICAgIGZvciAoYXV0byBpdCA9IGJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOyBp
dCAhPSBibG9jay0+aW5zdHJ1Y3Rpb25zKCkuZW5kKCk7IGl0ICs9IGl0LT5zaXplPFdhc21PcGNv
ZGVUcmFpdHM+KCkpIHsKKyAgICAgICAgZHVtcFdhc20oJmR1bXBlciwgaXQub2Zmc2V0KCksIGl0
LnB0cigpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KKworICAgIGR1bXBlci5k
dW1wQ29uc3RhbnRzKCk7CisKKyAgICBvdXQucHJpbnRmKCJcbiIpOworfQorCit2b2lkIEJ5dGVj
b2RlRHVtcGVyOjpkdW1wQ29uc3RhbnRzKCkKK3sKKyAgICBGdW5jdGlvbkNvZGVCbG9jayogYmxv
Y2sgPSB0aGlzLT5ibG9jaygpOworICAgIGlmICghYmxvY2stPmNvbnN0YW50cygpLmlzRW1wdHko
KSkgeworICAgICAgICB0aGlzLT5tX291dC5wcmludGYoIlxuQ29uc3RhbnRzOlxuIik7CisgICAg
ICAgIHVuc2lnbmVkIGkgPSAwOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDog
YmxvY2stPmNvbnN0YW50cygpKSB7CisgICAgICAgICAgICBUeXBlIHR5cGUgPSBibG9jay0+Y29u
c3RhbnRUeXBlcygpW2ldOworICAgICAgICAgICAgdGhpcy0+bV9vdXQucHJpbnQoIiAgIGNvbnN0
IiwgaSwgIiA6ICIsIHR5cGUsICIgPSAiLCBmb3JtYXRDb25zdGFudCh0eXBlLCBjb25zdGFudCks
ICJcbiIpOworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgfQorfQorCitDU3RyaW5n
IEJ5dGVjb2RlRHVtcGVyOjpjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdAoreworICAgIEZ1
bmN0aW9uQ29kZUJsb2NrKiBibG9jayA9IHRoaXMtPmJsb2NrKCk7CisgICAgYXV0byB2YWx1ZSA9
IGZvcm1hdENvbnN0YW50KGJsb2NrLT5nZXRDb25zdGFudFR5cGUoaW5kZXgpLCBibG9jay0+Z2V0
Q29uc3RhbnQoaW5kZXgpKTsKKyAgICByZXR1cm4gdG9DU3RyaW5nKHZhbHVlLCAiKCIsIFZpcnR1
YWxSZWdpc3RlcihpbmRleCksICIpIik7Cit9CisKK0NTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZv
cm1hdENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0Cit7CisgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBUeXBlOjpJMzI6CisgICAgICAgIHJldHVybiB0b0NT
dHJpbmcoc3RhdGljX2Nhc3Q8aW50MzJfdD4oY29uc3RhbnQpKTsKKyAgICBjYXNlIFR5cGU6Okk2
NDoKKyAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhjb25zdGFudCk7CisgICAgY2FzZSBUeXBlOjpG
MzI6CisgICAgICAgIHJldHVybiB0b0NTdHJpbmcoYml0d2lzZV9jYXN0PGZsb2F0PihzdGF0aWNf
Y2FzdDxpbnQzMl90Pihjb25zdGFudCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBl
OjpGNjQ6CisgICAgICAgIHJldHVybiB0b0NTdHJpbmcoYml0d2lzZV9jYXN0PGRvdWJsZT4oY29u
c3RhbnQpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpBbnlyZWY6CisgICAgY2Fz
ZSBUeXBlOjpGdW5jcmVmOgorICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0YW50KSA9
PSBqc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiAibnVsbCI7CisgICAgICAgIHJldHVybiB0
b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAg
IGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiAiIjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdhc20KKworI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlRHVtcGVyLmgKaW5kZXggOTQ4YTVhNTNkMmM2OWMzOGRlMWUzMWVkZDFmNzBl
ZTgyODM2YjMzNC4uNjg5ZTAyMmNiNDViMGIzMjMyYTkzZGI3YmE5NzUzNjhkMDJiM2NmYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKQEAg
LTcwLDYgKzcwLDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5CeXRl
Y29kZUR1bXBlcigpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJsb2NrKCkgY29uc3Qg
eyByZXR1cm4gbV9ibG9jazsgfQogCkBAIC03OSw3ICs4MSw3IEBAIHByb3RlY3RlZDoKIAogcHJp
dmF0ZToKICAgICBDU3RyaW5nIHJlZ2lzdGVyTmFtZShpbnQgcikgY29uc3Q7Ci0gICAgQ1N0cmlu
ZyBjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIENTdHJpbmcgY29u
c3RhbnROYW1lKGludCBpbmRleCkgY29uc3Q7CiAKICAgICBCbG9jayogbV9ibG9jazsKICAgICBJ
bnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IG1fY3VycmVudExvY2F0aW9uIHsgMCB9OwpAQCAtMTA0
LDQgKzEwNiwyOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcFN0cmluZ1N3aXRjaEp1bXBUYWJs
ZXMoKTsKIH07CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKK25hbWVzcGFjZSBXYXNtIHsK
KworY2xhc3MgRnVuY3Rpb25Db2RlQmxvY2s7CitzdHJ1Y3QgTW9kdWxlSW5mb3JtYXRpb247Citl
bnVtIFR5cGUgOiBpbnQ4X3Q7CisKK2NsYXNzIEJ5dGVjb2RlRHVtcGVyIDogcHVibGljIEpTQzo6
Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rpb25Db2RlQmxvY2s+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
dm9pZCBkdW1wQmxvY2soRnVuY3Rpb25Db2RlQmxvY2sqLCBjb25zdCBNb2R1bGVJbmZvcm1hdGlv
biYsIFByaW50U3RyZWFtJiBvdXQpOworCitwcml2YXRlOgorICAgIHVzaW5nIEpTQzo6Qnl0ZWNv
ZGVEdW1wZXI8RnVuY3Rpb25Db2RlQmxvY2s+OjpCeXRlY29kZUR1bXBlcjsKKworICAgIHZvaWQg
ZHVtcENvbnN0YW50cygpOworICAgIENTdHJpbmcgY29uc3RhbnROYW1lKGludCBpbmRleCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgQ1N0cmluZyBmb3JtYXRDb25zdGFudChUeXBlLCB1aW50NjRfdCkg
Y29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXYXNtCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oCmluZGV4IDI4YzBhY2YxNTQxMThmOTU2YTBkZjU4Y2UyNGM3ZjYzOWJjNGFkNTQuLmNmMTQ1
ZjFlYmY1NzY3YWI5MmM5OTg1NjYxYzZlOWIwNjEwZDA1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICB2KFVuc2lnbmVkLCByZXBhdGNoQnVmZmVyaW5nQ291bnRkb3duLCA4LCBOb3Jt
YWwsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihCb29sLCBkdW1wR2VuZXJhdGVkQnl0ZWNvZGVz
LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihCb29sLCBkdW1wR2VuZXJhdGVkV2Fz
bUJ5dGVjb2RlcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgZHVtcEJ5
dGVjb2RlTGl2ZW5lc3NSZXN1bHRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihC
b29sLCB2YWxpZGF0ZUJ5dGVjb2RlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihC
b29sLCBmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxs
cHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rp
b25Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9u
Q29kZUJsb2NrLmNwcAppbmRleCBiNWNkYWMzMzIzNjE1YTg2MDY0OWVmMDRjZDkwMDQyMWYyNmMx
YTVlLi5kMzUwNWMzMDA4MTllYWU0Y2E2OTQ4Zjk4ZDhmYmE3Y2EyM2ZjZGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvbkNvZGVCbG9jay5jcHAK
QEAgLTQyLDE1ICs0Miw2IEBAIHZvaWQgRnVuY3Rpb25Db2RlQmxvY2s6OnNldEluc3RydWN0aW9u
cyhzdGQ6OnVuaXF1ZV9wdHI8SW5zdHJ1Y3Rpb25TdHJlYW0+IGluc3RyCiAgICAgbV9pbnN0cnVj
dGlvbnNSYXdQb2ludGVyID0gbV9pbnN0cnVjdGlvbnMtPnJhd1BvaW50ZXIoKTsKIH0KIAotdm9p
ZCBGdW5jdGlvbkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKCkKLXsKLSAgICBCeXRlY29kZUR1bXBl
cjxGdW5jdGlvbkNvZGVCbG9jaz4gZHVtcGVyKHRoaXMsIFdURjo6ZGF0YUZpbGUoKSk7Ci0gICAg
Zm9yIChhdXRvIGl0ID0gbV9pbnN0cnVjdGlvbnMtPmJlZ2luKCk7IGl0ICE9IG1faW5zdHJ1Y3Rp
b25zLT5lbmQoKTsgaXQgKz0gaXQtPnNpemU8V2FzbU9wY29kZVRyYWl0cz4oKSkgewotICAgICAg
ICBkdW1wV2FzbSgmZHVtcGVyLCBpdC5vZmZzZXQoKSwgaXQucHRyKCkpOwotICAgICAgICBkYXRh
TG9nTG4oKTsKLSAgICB9Ci19Ci0KIHZvaWQgRnVuY3Rpb25Db2RlQmxvY2s6OmFkZE91dE9mTGlu
ZUp1bXBUYXJnZXQoSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBieXRlY29kZU9mZnNldCwgaW50
IHRhcmdldCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCh0YXJnZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaAppbmRleCBiZGI5NWUz
ZmFkZTk2ODAyOTBjYjg2NjVkMThlYzRjN2JmZDhkYzNmLi5mZWQ0NDc1Y2E1ZDU3OTc2NDhhOWY3
YjI5YzUwYTk1NzZhNGNjMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2Fz
bSB7CiAKIGNsYXNzIFNpZ25hdHVyZTsKIHN0cnVjdCBHZW5lcmF0b3JUcmFpdHM7CitlbnVtIFR5
cGUgOiBpbnQ4X3Q7CiAKIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIHRoaXMgd2l0aCBMTElu
dENhbGxlZQogLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5
MQpAQCAtNjMsMTIgKzY0LDIyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgdWludDMy
X3QgZnVuY3Rpb25JbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25JbmRleDsgfQorICAg
IGludCBudW1WYXJzKCkgY29uc3QgeyByZXR1cm4gbV9udW1WYXJzOyB9CisgICAgaW50IG51bUNh
bGxlZUxvY2FscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtQ2FsbGVlTG9jYWxzOyB9CisgICAgdWlu
dDMyX3QgbnVtQXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9udW1Bcmd1bWVudHM7IH0KKyAg
ICBjb25zdCBWZWN0b3I8VHlwZT4mIGNvbnN0YW50VHlwZXMoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnN0YW50VHlwZXM7IH0KKyAgICBjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBjb25zdGFudHMoKSBj
b25zdCB7IHJldHVybiBtX2NvbnN0YW50czsgfQorICAgIGNvbnN0IEluc3RydWN0aW9uU3RyZWFt
JiBpbnN0cnVjdGlvbnMoKSBjb25zdCB7IHJldHVybiAqbV9pbnN0cnVjdGlvbnM7IH0KKwogICAg
IEFMV0FZU19JTkxJTkUgdWludDY0X3QgZ2V0Q29uc3RhbnQoaW50IGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX2NvbnN0YW50c1tpbmRleCAtIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4XTsgfQot
ICAgIEFMV0FZU19JTkxJTkUgdWludDMyX3QgZnVuY3Rpb25JbmRleCgpIGNvbnN0IHsgcmV0dXJu
IG1fZnVuY3Rpb25JbmRleDsgfQorICAgIEFMV0FZU19JTkxJTkUgVHlwZSBnZXRDb25zdGFudFR5
cGUoaW50IGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKE9wdGlvbnM6OmR1bXBH
ZW5lcmF0ZWRXYXNtQnl0ZWNvZGVzKCkpOworICAgICAgICByZXR1cm4gbV9jb25zdGFudFR5cGVz
W2luZGV4IC0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXhdOworICAgIH0KIAogICAgIHZvaWQg
c2V0SW5zdHJ1Y3Rpb25zKHN0ZDo6dW5pcXVlX3B0cjxJbnN0cnVjdGlvblN0cmVhbT4pOwotICAg
IHZvaWQgZHVtcEJ5dGVjb2RlKCk7Ci0KICAgICB2b2lkIGFkZEp1bXBUYXJnZXQoSW5zdHJ1Y3Rp
b25TdHJlYW06Ok9mZnNldCBqdW1wVGFyZ2V0KSB7IG1fanVtcFRhcmdldHMuYXBwZW5kKGp1bXBU
YXJnZXQpOyB9CiAgICAgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBudW1iZXJPZkp1bXBUYXJn
ZXRzKCkgeyByZXR1cm4gbV9qdW1wVGFyZ2V0cy5zaXplKCk7IH0KICAgICBJbnN0cnVjdGlvblN0
cmVhbTo6T2Zmc2V0IGxhc3RKdW1wVGFyZ2V0KCkgeyByZXR1cm4gbV9qdW1wVGFyZ2V0cy5sYXN0
KCk7IH0KQEAgLTEwOSw2ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIC8vIE51bWJlciBvZiBWaXJ0
dWFsUmVnaXN0ZXIuIFRoZSBuYW1pbmcgaXMgdW5mb3J0dW5hdGUsIGJ1dCBoYXMgdG8gbWF0Y2gg
VW5saW5rZWRDb2RlQmxvY2sKICAgICBpbnQgbV9udW1DYWxsZWVMb2NhbHMgeyAwIH07CiAgICAg
dWludDMyX3QgbV9udW1Bcmd1bWVudHMgeyAwIH07CisgICAgVmVjdG9yPFR5cGU+IG1fY29uc3Rh
bnRUeXBlczsKICAgICBWZWN0b3I8dWludDY0X3Q+IG1fY29uc3RhbnRzOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJbnN0cnVjdGlvblN0cmVhbT4gbV9pbnN0cnVjdGlvbnM7CiAgICAgY29uc3Qgdm9p
ZCogbV9pbnN0cnVjdGlvbnNSYXdQb2ludGVyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdlbmVyYXRvclRyYWl0cy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUdlbmVyYXRvclRyYWl0cy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjY2E2
YmIxZGRmYjMwOTVhZDg4YWViOTczMTlhNzUzNzRjNTQ5MzYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2VuZXJhdG9yVHJhaXRzLmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJCeXRlY29kZVN0cnVjdHMuaCIKKyNp
bmNsdWRlICJJbnN0cnVjdGlvbi5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20g
eworCitzdHJ1Y3QgR2VuZXJhdG9yVHJhaXRzIHsKKyAgICB1c2luZyBPcGNvZGVUcmFpdHMgPSBX
YXNtT3Bjb2RlVHJhaXRzOworICAgIHVzaW5nIE9wY29kZUlEID0gV2FzbU9wY29kZUlEOworICAg
IHVzaW5nIE9wTm9wID0gV2FzbU5vcDsKKyAgICB1c2luZyBDb2RlQmxvY2sgPSBzdGQ6OnVuaXF1
ZV9wdHI8RnVuY3Rpb25Db2RlQmxvY2s+OworICAgIHN0YXRpYyBjb25zdGV4cHIgT3Bjb2RlSUQg
b3Bjb2RlRm9yRGlzYWJsaW5nT3B0aW1pemF0aW9ucyA9IHdhc21fdW5yZWFjaGFibGU7Cit9Owor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRv
ci5jcHAKaW5kZXggMWQ0YzQyY2M0NzI2OTk0ZGU0M2Y4MjhjYzk5ZjI3Mzg0MDgzNDEzNy4uYmFl
ZjUwNzAzN2Y5NjE3MzRhOWE4YmVhNDI3NzY2OTRmZjM3NWI0MyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUZ1bmN0
aW9uQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiV2FzbUZ1bmN0aW9uUGFyc2VyLmgiCisjaW5jbHVk
ZSAiV2FzbUdlbmVyYXRvclRyYWl0cy5oIgogI2luY2x1ZGUgIldhc21UaHVua3MuaCIKICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZFVub3JkZXJlZE1hcC5oPgpAQCAt
NDQsMTQgKzQ1LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAotc3Ry
dWN0IEdlbmVyYXRvclRyYWl0cyB7Ci0gICAgdXNpbmcgT3Bjb2RlVHJhaXRzID0gV2FzbU9wY29k
ZVRyYWl0czsKLSAgICB1c2luZyBPcGNvZGVJRCA9IFdhc21PcGNvZGVJRDsKLSAgICB1c2luZyBP
cE5vcCA9IFdhc21Ob3A7Ci0gICAgdXNpbmcgQ29kZUJsb2NrID0gc3RkOjp1bmlxdWVfcHRyPEZ1
bmN0aW9uQ29kZUJsb2NrPjsKLSAgICBzdGF0aWMgY29uc3RleHByIE9wY29kZUlEIG9wY29kZUZv
ckRpc2FibGluZ09wdGltaXphdGlvbnMgPSB3YXNtX3VucmVhY2hhYmxlOwotfTsKLQogY2xhc3Mg
TExJbnRHZW5lcmF0b3IgOiBwdWJsaWMgQnl0ZWNvZGVHZW5lcmF0b3JCYXNlPEdlbmVyYXRvclRy
YWl0cz4gewogcHVibGljOgogICAgIHVzaW5nIEV4cHJlc3Npb25UeXBlID0gUmVmUHRyPFJlZ2lz
dGVySUQ+OwpAQCAtNDk4LDEzICs0OTEsMTUgQEAgdm9pZCBMTEludEdlbmVyYXRvcjo6ZGlkRmlu
aXNoUGFyc2luZ0xvY2FscygpCiAgICAgbV91bml0aWFsaXplZExvY2Fscy5jbGVhcigpOwogfQog
Ci1hdXRvIExMSW50R2VuZXJhdG9yOjphZGRDb25zdGFudChUeXBlLCB1aW50NjRfdCB2YWx1ZSkg
LT4gRXhwcmVzc2lvblR5cGUKK2F1dG8gTExJbnRHZW5lcmF0b3I6OmFkZENvbnN0YW50KFR5cGUg
dHlwZSwgdWludDY0X3QgdmFsdWUpIC0+IEV4cHJlc3Npb25UeXBlCiB7CiAgICAgVmlydHVhbFJl
Z2lzdGVyIHNvdXJjZShGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCArIG1fY29kZUJsb2NrLT5t
X2NvbnN0YW50cy5zaXplKCkpOwogICAgIGF1dG8gcmVzdWx0ID0gbV9jb25zdGFudE1hcC5lbXBs
YWNlKHZhbHVlLCBzb3VyY2UpOwotICAgIGlmIChyZXN1bHQuc2Vjb25kKQorICAgIGlmIChyZXN1
bHQuc2Vjb25kKSB7CiAgICAgICAgIG1fY29kZUJsb2NrLT5tX2NvbnN0YW50cy5hcHBlbmQodmFs
dWUpOwotICAgIGVsc2UKKyAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmR1bXBHZW5lcmF0
ZWRXYXNtQnl0ZWNvZGVzKCkpKQorICAgICAgICAgICAgbV9jb2RlQmxvY2stPm1fY29uc3RhbnRU
eXBlcy5hcHBlbmQodHlwZSk7CisgICAgfSBlbHNlCiAgICAgICAgIHNvdXJjZSA9IHJlc3VsdC5m
aXJzdC0+c2Vjb25kOwogICAgIGF1dG8gdGFyZ2V0ID0gbmV3VGVtcG9yYXJ5KCk7CiAgICAgV2Fz
bU1vdjo6ZW1pdCh0aGlzLCB0YXJnZXQsIHNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmluZGV4IDQxOWM0MmM1MzI4NjkwODdiODNjNGNjYjE3
MWNlNDZhNmUxODgxNWEuLjc3MmI1MTk2NmU0NTdkMjk2OGJjNjViMzEwOTM4ZGRmYmMyYjEwZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQjNDb21w
aWxhdGlvbi5oIgorI2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgiCiAjaW5jbHVkZSAiQ2FsbGVl
Qml0cy5oIgogI2luY2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgpAQCAtOTAsMTEgKzkxLDYgQEAgdm9pZCBMTEludFBsYW46OmNvbXBpbGVGdW5jdGlvbih1aW50
MzJfdCBmdW5jdGlvbkluZGV4KQogCiB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxh
dGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogewotICAgIGlmIChPcHRpb25zOjpk
dW1wR2VuZXJhdGVkQnl0ZWNvZGVzKCkpIHsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb2Rl
QmxvY2sgOiBtX3dhc21JbnRlcm5hbEZ1bmN0aW9ucykKLSAgICAgICAgICAgIGNvZGVCbG9jay0+
ZHVtcEJ5dGVjb2RlKCk7Ci0gICAgfQotCiAgICAgZm9yICh1aW50MzJfdCBmdW5jdGlvbkluZGV4
ID0gMDsgZnVuY3Rpb25JbmRleCA8IG1fbW9kdWxlSW5mb3JtYXRpb24tPmZ1bmN0aW9ucy5zaXpl
KCk7IGZ1bmN0aW9uSW5kZXgrKykgewogICAgICAgICBTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJ
bmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJbmRp
Y2VzW2Z1bmN0aW9uSW5kZXhdOwogICAgICAgICBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSA9
IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoc2lnbmF0dXJlSW5kZXgpOwpAQCAtMTIxLDYgKzEx
NywxMCBAQCB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0
cmFjdExvY2tlciYgbG9ja2VyKQogICAgICAgICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpKdW1wPiBq
dW1wcyhmdW5jdGlvbkNvdW50KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZ1
bmN0aW9uQ291bnQ7ICsraSkgewogICAgICAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFj
ZSA9IGkgKyBtX21vZHVsZUluZm9ybWF0aW9uLT5pbXBvcnRGdW5jdGlvbkNvdW50KCk7CisKKyAg
ICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wR2VuZXJhdGVkV2FzbUJ5dGVjb2Rl
cygpKSkKKyAgICAgICAgICAgICAgICBCeXRlY29kZUR1bXBlcjo6ZHVtcEJsb2NrKG1fd2FzbUlu
dGVybmFsRnVuY3Rpb25zW2ldLmdldCgpLCBtX21vZHVsZUluZm9ybWF0aW9uLCBXVEY6OmRhdGFG
aWxlKCkpOworCiAgICAgICAgICAgICBtX2NhbGxlZXNbaV0gPSBXYXNtOjpMTEludENhbGxlZTo6
Y3JlYXRlKFdURk1vdmUobV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbaV0pLCBmdW5jdGlvbkluZGV4
U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRl
eFNwYWNlKSk7CiAgICAgICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGppdC5sYWJlbCgpOwogI2lm
IENQVShYODZfNjQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383227</attachid>
            <date>2019-11-09 14:35:38 -0800</date>
            <delta_ts>2019-11-09 15:35:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204051-20191109143537.patch</filename>
            <type>text/plain</type>
            <size>20626</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjQyMDdiMzdjYmNlNzMxMzNiM2I3Yzg3YmM0ZTZmYjZhYTA4MTBjLi4wNDAyMzIxZGE4NGM4YzU5
MzkyZjU3YmU0NDYzNjVhZDhmNmNmNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxOS0xMS0wOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXNzZW1ibHldIEltcHJvdmUgYnl0ZWNvZGUgZHVtcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
cm92ZXMgdGhlIGJ5dGVjb2RlIGR1bXBpbmcgZm9yIFdhc20gYnk6CisgICAgICAgIC0gQWRkaW5n
IGEgbmV3IG9wdGlvbiB0aGF0IGR1bXBzIG9ubHkgdGhlIFdhc20gYnl0ZWNvZGUuIEl0IGNhbiBi
ZSBxdWl0ZSBoYXJkIHRvIGZpbmQKKyAgICAgICAgICB0aGUgV2FzbSBieXRlY29kZSBpbiB0aGUg
bWlkZGxlIG9mIGEgdG9uIG9mIEpTIGJ5dGVjb2RlIGR1bXBzLgorICAgICAgICAtIEFkZGluZyBh
IGhlYWRlciB3aXRoIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGFuZCBzdGF0cywgc2ltaWxhciB0byB0
aGUgSlMgZHVtcC4KKyAgICAgICAgLSBVc2luZyBXYXNtIHR5cGVzIHRvIHByb3Blcmx5IHByaW50
IGNvbnN0YW50cywgYW5kIGluY2x1ZGluZyB0aGUgdHlwZSBpbiBjb25zdGFudHMKKyAgICAgICAg
ICB0YWJsZSBhdCB0aGUgZW5kIG9mIHRoZSBkdW1wLgorCisgICAgICAgIEhlcmUncyBhbiBleGFt
cGxlIG9mIHRoZSB1cGRhdGVkIGJ5dGVjb2RlIGR1bXA6CisKKyAgICAgICAgPD8+Lndhc20tZnVu
Y3Rpb25bMjZdIDogKEkzMikgLT4gW0kzMl0KKyAgICAgICAgd2FzbSBzaXplOiA0IGJ5dGVzCisg
ICAgICAgIGJ5dGVjb2RlOiA2IGluc3RydWN0aW9ucyAoMCAxNi1iaXQgaW5zdHJ1Y3Rpb25zLCAw
IDMyLWJpdCBpbnN0cnVjdGlvbnMpOyAxNCBieXRlczsgMSBwYXJhbWV0ZXIocyk7IDE4IGxvY2Fs
KHMpOyAyMiBjYWxsZWUgcmVnaXN0ZXIocykKKyAgICAgICAgWyAgIDBdIGVudGVyCisgICAgICAg
IFsgICAxXSBtb3YgICAgICAgICAgICAgICAgbG9jMTgsIG51bGwoY29uc3QwKQorICAgICAgICBb
ICAgNF0gbW92ICAgICAgICAgICAgICAgIGxvYzIwLCBsb2M0CisgICAgICAgIFsgICA3XSBtb3Yg
ICAgICAgICAgICAgICAgbG9jMTksIGxvYzIwCisgICAgICAgIFsgIDEwXSBtb3YgICAgICAgICAg
ICAgICAgbG9jNCwgbG9jMTkKKyAgICAgICAgWyAgMTNdIHJldAorCisgICAgICAgIENvbnN0YW50
czoKKyAgICAgICAgICAgY29uc3QwIDogQW55cmVmID0gbnVsbAorCisgICAgICAgICogSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9C
eXRlY29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpk
dW1wQmxvY2spOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6ZHVtcENvbnN0
YW50cyk6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpjb25zdGFudE5hbWUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3Rh
bnQgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmg6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlRHVtcGVyOjp+Qnl0ZWNvZGVEdW1wZXIpOgorICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvbkNvZGVCbG9jay5j
cHA6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suaDoKKyAgICAgICAgKEpT
Qzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6OmZ1bmN0aW9uSW5kZXggY29uc3QpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6bnVtVmFycyBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpudW1DYWxsZWVMb2NhbHMgY29uc3QpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6bnVtQXJndW1lbnRzIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6OmNvbnN0YW50VHlwZXMg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvbkNvZGVCbG9jazo6Y29uc3RhbnRz
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25Db2RlQmxvY2s6Omluc3RydWN0
aW9ucyBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uQ29kZUJsb2NrOjpnZXRD
b25zdGFudFR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUdlbmVyYXRvclRyYWl0cy5o
OiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRDb25zdGFudCk6CisgICAgICAgICogd2Fz
bS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRD
b21wbGV0ZUNvbXBpbGF0aW9uKToKKwogMjAxOS0xMS0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdh
bGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXNzZW1ibHldIExMSW50R2VuZXJhdG9yIHNo
b3VsZCBub3QgcmV0YWluIFZpcnR1YWxSZWdpc3RlcnMgdXNlZCBmb3IgY29uc3RhbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgwM2UwOGRlNmFiNzIxYWIyNTcxZWM2Yzg0N2I4
NDQyNDAyM2JlY2UuLjRkMjdkOTgxMDE0Mzc4OTQ0YTNhMTYyODc1YTg1NTMyYTkxNmNiZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzYxLDYgKzMzNjEsNyBAQAogCQkxNDgy
QjdFMjBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNPYmplY3RSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDg3NEFFMTE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njb3BlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4NzRBRTIxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY29wZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxNDg3Q0UxNjIzNzc0MTAwMDA0NDQyOUMgLyogV2FzbUdlbmVyYXRv
clRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtR2VuZXJhdG9y
VHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OEE3QkVEMUI4Mjk3NUEw
MDJEOTE1NyAvKiBJbmxpbmVDYWxsRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5saW5lQ2FsbEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTQ4QTdCRUUxQjgyOTc1QTAwMkQ5MTU3IC8qIElubGluZUNhbGxGcmFtZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVDYWxsRnJhbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QjE0MTYyMjVERDFENzAwRDZFOTk4IC8qIENhY2hlUGF5
bG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVBheWxvYWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3ODcsNiArNjc4OCw3IEBACiAJCQkJMTRD
NUFENjcyMkYzM0ZCRjAwRjFGQjgzIC8qIFdhc21GdW5jdGlvbkNvZGVCbG9jay5jcHAgKi8sCiAJ
CQkJMTRDNUFENkIyMkYzM0ZDMDAwRjFGQjgzIC8qIFdhc21GdW5jdGlvbkNvZGVCbG9jay5oICov
LAogCQkJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rpb25QYXJzZXIuaCAq
LywKKwkJCQkxNDg3Q0UxNjIzNzc0MTAwMDA0NDQyOUMgLyogV2FzbUdlbmVyYXRvclRyYWl0cy5o
ICovLAogCQkJCUFEOEZGMzk2MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuY3Bw
ICovLAogCQkJCUFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCAq
LywKIAkJCQlBRDVDMzZERTFGNjk5RUI2MDAwQkNBQUYgLyogV2FzbUluc3RhbmNlLmNwcCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CmluZGV4IDg1OGFiOTA1MDJlODRkNzA3OTE1MzI1ZjY5M2VlM2Q1ZDU4NWM4ZTcuLjdiNDE1NDky
ZDUxN2EyZGI0YzIxZDkzMzYzM2QxOGY5N2IzNTJiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgiCiAKICNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIK
KyNpbmNsdWRlICJCM1R5cGUuaCIKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogI2lu
Y2x1ZGUgIkJ5dGVjb2RlU3RydWN0cy5oIgogI2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCkBA
IC00Miw2ICs0MywxMCBAQAogI2luY2x1ZGUgIlVubGlua2VkQ29kZUJsb2NrLmgiCiAjaW5jbHVk
ZSAiVW5saW5rZWRNZXRhZGF0YVRhYmxlSW5saW5lcy5oIgogI2luY2x1ZGUgIldhc21GdW5jdGlv
bkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIldhc21HZW5lcmF0b3JUcmFpdHMuaCIKKyNpbmNsdWRl
ICJXYXNtTW9kdWxlSW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJXYXNtT3BzLmgiCisjaW5jbHVk
ZSAiV2FzbVNpZ25hdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTI0NSwx
MCArMjUwLDEwMyBAQCB2b2lkIENvZGVCbG9ja0J5dGVjb2RlRHVtcGVyPEJsb2NrPjo6ZHVtcEJs
b2NrKEJsb2NrKiBibG9jaywgY29uc3QgSW5zdHJ1Y3Rpb25TdAogfQogCiB0ZW1wbGF0ZSBjbGFz
cyBCeXRlY29kZUR1bXBlcjxDb2RlQmxvY2s+OwotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLXRl
bXBsYXRlIGNsYXNzIEJ5dGVjb2RlRHVtcGVyPFdhc206OkZ1bmN0aW9uQ29kZUJsb2NrPjsKLSNl
bmRpZgogdGVtcGxhdGUgY2xhc3MgQ29kZUJsb2NrQnl0ZWNvZGVEdW1wZXI8VW5saW5rZWRDb2Rl
QmxvY2s+OwogdGVtcGxhdGUgY2xhc3MgQ29kZUJsb2NrQnl0ZWNvZGVEdW1wZXI8Q29kZUJsb2Nr
PjsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFtZXNwYWNlIFdhc20geworCit2b2lk
IEJ5dGVjb2RlRHVtcGVyOjpkdW1wQmxvY2soRnVuY3Rpb25Db2RlQmxvY2sqIGJsb2NrLCBjb25z
dCBNb2R1bGVJbmZvcm1hdGlvbiYgbW9kdWxlSW5mb3JtYXRpb24sIFByaW50U3RyZWFtJiBvdXQp
Cit7CisgICAgc2l6ZV90IGluc3RydWN0aW9uQ291bnQgPSAwOworICAgIHNpemVfdCB3aWRlMTZJ
bnN0cnVjdGlvbkNvdW50ID0gMDsKKyAgICBzaXplX3Qgd2lkZTMySW5zdHJ1Y3Rpb25Db3VudCA9
IDA7CisKKyAgICBmb3IgKGF1dG8gaXQgPSBibG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsg
aXQgIT0gYmxvY2stPmluc3RydWN0aW9ucygpLmVuZCgpOyBpdCArPSBpdC0+c2l6ZTxXYXNtT3Bj
b2RlVHJhaXRzPigpKSB7CisgICAgICAgIGlmIChpdC0+aXNXaWRlMTYoKSkKKyAgICAgICAgICAg
ICsrd2lkZTE2SW5zdHJ1Y3Rpb25Db3VudDsKKyAgICAgICAgZWxzZSBpZiAoaXQtPmlzV2lkZTMy
KCkpCisgICAgICAgICAgICArK3dpZGUzMkluc3RydWN0aW9uQ291bnQ7CisgICAgICAgICsraW5z
dHJ1Y3Rpb25Db3VudDsKKyAgICB9CisKKyAgICBzaXplX3QgZnVuY3Rpb25JbmRleFNwYWNlID0g
bW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0RnVuY3Rpb25Db3VudCgpICsgYmxvY2stPmZ1bmN0aW9u
SW5kZXgoKTsKKyAgICBvdXQucHJpbnQobWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbklu
ZGV4U3BhY2UsIG1vZHVsZUluZm9ybWF0aW9uLm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRl
eFNwYWNlKSkpKTsKKworICAgIGNvbnN0IGF1dG8mIGZ1bmN0aW9uID0gbW9kdWxlSW5mb3JtYXRp
b24uZnVuY3Rpb25zW2Jsb2NrLT5mdW5jdGlvbkluZGV4KCldOworICAgIFNpZ25hdHVyZUluZGV4
IHNpZ25hdHVyZUluZGV4ID0gbW9kdWxlSW5mb3JtYXRpb24uaW50ZXJuYWxGdW5jdGlvblNpZ25h
dHVyZUluZGljZXNbYmxvY2stPmZ1bmN0aW9uSW5kZXgoKV07CisgICAgY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUgPSBTaWduYXR1cmVJbmZvcm1hdGlvbjo6Z2V0KHNpZ25hdHVyZUluZGV4KTsK
KyAgICBvdXQucHJpbnQoIiA6ICIsIHNpZ25hdHVyZSwgIlxuIik7CisgICAgb3V0LnByaW50KCJ3
YXNtIHNpemU6ICIsIGZ1bmN0aW9uLmRhdGEuc2l6ZSgpLCAiIGJ5dGVzXG4iKTsKKworICAgIG91
dC5wcmludGYoCisgICAgICAgICJieXRlY29kZTogJWx1IGluc3RydWN0aW9ucyAoJWx1IDE2LWJp
dCBpbnN0cnVjdGlvbnMsICVsdSAzMi1iaXQgaW5zdHJ1Y3Rpb25zKTsgJWx1IGJ5dGVzOyAlZCBw
YXJhbWV0ZXIocyk7ICVkIGxvY2FsKHMpOyAlZCBjYWxsZWUgcmVnaXN0ZXIocylcbiIsCisgICAg
ICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGluc3RydWN0aW9uQ291bnQpLAorICAgICAg
ICBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPih3aWRlMTZJbnN0cnVjdGlvbkNvdW50KSwKKyAg
ICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4od2lkZTMySW5zdHJ1Y3Rpb25Db3VudCks
CisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGJsb2NrLT5pbnN0cnVjdGlvbnMo
KS5zaXplSW5CeXRlcygpKSwKKyAgICAgICAgYmxvY2stPm51bUFyZ3VtZW50cygpLAorICAgICAg
ICBibG9jay0+bnVtVmFycygpLAorICAgICAgICBibG9jay0+bnVtQ2FsbGVlTG9jYWxzKCkpOwor
CisgICAgQnl0ZWNvZGVEdW1wZXIgZHVtcGVyKGJsb2NrLCBvdXQpOworICAgIGZvciAoYXV0byBp
dCA9IGJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOyBpdCAhPSBibG9jay0+aW5zdHJ1Y3Rp
b25zKCkuZW5kKCk7IGl0ICs9IGl0LT5zaXplPFdhc21PcGNvZGVUcmFpdHM+KCkpIHsKKyAgICAg
ICAgZHVtcFdhc20oJmR1bXBlciwgaXQub2Zmc2V0KCksIGl0LnB0cigpKTsKKyAgICAgICAgb3V0
LnByaW50KCJcbiIpOworICAgIH0KKworICAgIGR1bXBlci5kdW1wQ29uc3RhbnRzKCk7CisKKyAg
ICBvdXQucHJpbnRmKCJcbiIpOworfQorCit2b2lkIEJ5dGVjb2RlRHVtcGVyOjpkdW1wQ29uc3Rh
bnRzKCkKK3sKKyAgICBGdW5jdGlvbkNvZGVCbG9jayogYmxvY2sgPSB0aGlzLT5ibG9jaygpOwor
ICAgIGlmICghYmxvY2stPmNvbnN0YW50cygpLmlzRW1wdHkoKSkgeworICAgICAgICB0aGlzLT5t
X291dC5wcmludGYoIlxuQ29uc3RhbnRzOlxuIik7CisgICAgICAgIHVuc2lnbmVkIGkgPSAwOwor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogYmxvY2stPmNvbnN0YW50cygpKSB7
CisgICAgICAgICAgICBUeXBlIHR5cGUgPSBibG9jay0+Y29uc3RhbnRUeXBlcygpW2ldOworICAg
ICAgICAgICAgdGhpcy0+bV9vdXQucHJpbnQoIiAgIGNvbnN0IiwgaSwgIiA6ICIsIHR5cGUsICIg
PSAiLCBmb3JtYXRDb25zdGFudCh0eXBlLCBjb25zdGFudCksICJcbiIpOworICAgICAgICAgICAg
KytpOworICAgICAgICB9CisgICAgfQorfQorCitDU3RyaW5nIEJ5dGVjb2RlRHVtcGVyOjpjb25z
dGFudE5hbWUoaW50IGluZGV4KSBjb25zdAoreworICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBibG9j
ayA9IHRoaXMtPmJsb2NrKCk7CisgICAgYXV0byB2YWx1ZSA9IGZvcm1hdENvbnN0YW50KGJsb2Nr
LT5nZXRDb25zdGFudFR5cGUoaW5kZXgpLCBibG9jay0+Z2V0Q29uc3RhbnQoaW5kZXgpKTsKKyAg
ICByZXR1cm4gdG9DU3RyaW5nKHZhbHVlLCAiKCIsIFZpcnR1YWxSZWdpc3RlcihpbmRleCksICIp
Iik7Cit9CisKK0NTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5cGUgdHlw
ZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
Y2FzZSBUeXBlOjpJMzI6CisgICAgICAgIHJldHVybiB0b0NTdHJpbmcoc3RhdGljX2Nhc3Q8aW50
MzJfdD4oY29uc3RhbnQpKTsKKyAgICBjYXNlIFR5cGU6Okk2NDoKKyAgICAgICAgcmV0dXJuIHRv
Q1N0cmluZyhjb25zdGFudCk7CisgICAgY2FzZSBUeXBlOjpGMzI6CisgICAgICAgIHJldHVybiB0
b0NTdHJpbmcoYml0d2lzZV9jYXN0PGZsb2F0PihzdGF0aWNfY2FzdDxpbnQzMl90Pihjb25zdGFu
dCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpGNjQ6CisgICAgICAgIHJldHVy
biB0b0NTdHJpbmcoYml0d2lzZV9jYXN0PGRvdWJsZT4oY29uc3RhbnQpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUeXBlOjpBbnlyZWY6CisgICAgY2FzZSBUeXBlOjpGdW5jcmVmOgorICAg
ICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0YW50KSA9PSBqc051bGwoKSkKKyAgICAgICAg
ICAgIHJldHVybiAibnVsbCI7CisgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihi
aXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdhc20KKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1
bXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgK
aW5kZXggOTQ4YTVhNTNkMmM2OWMzOGRlMWUzMWVkZDFmNzBlZTgyODM2YjMzNC4uNjg5ZTAyMmNi
NDViMGIzMjMyYTkzZGI3YmE5NzUzNjhkMDJiM2NmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKQEAgLTcwLDYgKzcwLDggQEAgcHVibGlj
OgogICAgIHsKICAgICB9CiAKKyAgICB2aXJ0dWFsIH5CeXRlY29kZUR1bXBlcigpIHsgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9ibG9jazsgfQog
CkBAIC03OSw3ICs4MSw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBDU3RyaW5nIHJl
Z2lzdGVyTmFtZShpbnQgcikgY29uc3Q7Ci0gICAgQ1N0cmluZyBjb25zdGFudE5hbWUoaW50IGlu
ZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIENTdHJpbmcgY29uc3RhbnROYW1lKGludCBpbmRleCkg
Y29uc3Q7CiAKICAgICBCbG9jayogbV9ibG9jazsKICAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zm
c2V0IG1fY3VycmVudExvY2F0aW9uIHsgMCB9OwpAQCAtMTA0LDQgKzEwNiwyOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZHVtcFN0cmluZ1N3aXRjaEp1bXBUYWJsZXMoKTsKIH07CiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCisKK25hbWVzcGFjZSBXYXNtIHsKKworY2xhc3MgRnVuY3Rpb25Db2Rl
QmxvY2s7CitzdHJ1Y3QgTW9kdWxlSW5mb3JtYXRpb247CitlbnVtIFR5cGUgOiBpbnQ4X3Q7CisK
K2NsYXNzIEJ5dGVjb2RlRHVtcGVyIDogcHVibGljIEpTQzo6Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rp
b25Db2RlQmxvY2s+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBkdW1wQmxvY2soRnVuY3Rp
b25Db2RlQmxvY2sqLCBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYsIFByaW50U3RyZWFtJiBvdXQp
OworCitwcml2YXRlOgorICAgIHVzaW5nIEpTQzo6Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rpb25Db2Rl
QmxvY2s+OjpCeXRlY29kZUR1bXBlcjsKKworICAgIHZvaWQgZHVtcENvbnN0YW50cygpOworICAg
IENTdHJpbmcgY29uc3RhbnROYW1lKGludCBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ1N0
cmluZyBmb3JtYXRDb25zdGFudChUeXBlLCB1aW50NjRfdCkgY29uc3Q7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXYXNtCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDI4YzBhY2YxNTQx
MThmOTU2YTBkZjU4Y2UyNGM3ZjYzOWJjNGFkNTQuLmNmMTQ1ZjFlYmY1NzY3YWI5MmM5OTg1NjYx
YzZlOWIwNjEwZDA1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
c0xpc3QuaApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB2KFVuc2lnbmVk
LCByZXBhdGNoQnVmZmVyaW5nQ291bnRkb3duLCA4LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBc
CiAgICAgdihCb29sLCBkdW1wR2VuZXJhdGVkQnl0ZWNvZGVzLCBmYWxzZSwgTm9ybWFsLCBudWxs
cHRyKSBcCisgICAgdihCb29sLCBkdW1wR2VuZXJhdGVkV2FzbUJ5dGVjb2RlcywgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgZHVtcEJ5dGVjb2RlTGl2ZW5lc3NSZXN1bHRz
LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB2YWxpZGF0ZUJ5dGVjb2Rl
LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCBmb3JjZURlYnVnZ2VyQnl0
ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmNwcAppbmRleCBi
NWNkYWMzMzIzNjE1YTg2MDY0OWVmMDRjZDkwMDQyMWYyNmMxYTVlLi5kMzUwNWMzMDA4MTllYWU0
Y2E2OTQ4Zjk4ZDhmYmE3Y2EyM2ZjZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21GdW5jdGlvbkNvZGVCbG9jay5jcHAKQEAgLTQyLDE1ICs0Miw2IEBAIHZv
aWQgRnVuY3Rpb25Db2RlQmxvY2s6OnNldEluc3RydWN0aW9ucyhzdGQ6OnVuaXF1ZV9wdHI8SW5z
dHJ1Y3Rpb25TdHJlYW0+IGluc3RyCiAgICAgbV9pbnN0cnVjdGlvbnNSYXdQb2ludGVyID0gbV9p
bnN0cnVjdGlvbnMtPnJhd1BvaW50ZXIoKTsKIH0KIAotdm9pZCBGdW5jdGlvbkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKCkKLXsKLSAgICBCeXRlY29kZUR1bXBlcjxGdW5jdGlvbkNvZGVCbG9jaz4g
ZHVtcGVyKHRoaXMsIFdURjo6ZGF0YUZpbGUoKSk7Ci0gICAgZm9yIChhdXRvIGl0ID0gbV9pbnN0
cnVjdGlvbnMtPmJlZ2luKCk7IGl0ICE9IG1faW5zdHJ1Y3Rpb25zLT5lbmQoKTsgaXQgKz0gaXQt
PnNpemU8V2FzbU9wY29kZVRyYWl0cz4oKSkgewotICAgICAgICBkdW1wV2FzbSgmZHVtcGVyLCBp
dC5vZmZzZXQoKSwgaXQucHRyKCkpOwotICAgICAgICBkYXRhTG9nTG4oKTsKLSAgICB9Ci19Ci0K
IHZvaWQgRnVuY3Rpb25Db2RlQmxvY2s6OmFkZE91dE9mTGluZUp1bXBUYXJnZXQoSW5zdHJ1Y3Rp
b25TdHJlYW06Ok9mZnNldCBieXRlY29kZU9mZnNldCwgaW50IHRhcmdldCkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVCh0YXJnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRnVuY3Rpb25Db2RlQmxvY2suaAppbmRleCBiZGI5NWUzZmFkZTk2ODAyOTBjYjg2NjVkMThl
YzRjN2JmZDhkYzNmLi5mZWQ0NDc1Y2E1ZDU3OTc2NDhhOWY3YjI5YzUwYTk1NzZhNGNjMTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxv
Y2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25Db2RlQmxv
Y2suaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2FzbSB7CiAKIGNsYXNzIFNpZ25hdHVy
ZTsKIHN0cnVjdCBHZW5lcmF0b3JUcmFpdHM7CitlbnVtIFR5cGUgOiBpbnQ4X3Q7CiAKIC8vIEZJ
WE1FOiBDb25zaWRlciBtZXJnaW5nIHRoaXMgd2l0aCBMTEludENhbGxlZQogLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MQpAQCAtNjMsMTIgKzY0LDIyIEBA
IHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgdWludDMyX3QgZnVuY3Rpb25JbmRleCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25JbmRleDsgfQorICAgIGludCBudW1WYXJzKCkgY29uc3Qg
eyByZXR1cm4gbV9udW1WYXJzOyB9CisgICAgaW50IG51bUNhbGxlZUxvY2FscygpIGNvbnN0IHsg
cmV0dXJuIG1fbnVtQ2FsbGVlTG9jYWxzOyB9CisgICAgdWludDMyX3QgbnVtQXJndW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9udW1Bcmd1bWVudHM7IH0KKyAgICBjb25zdCBWZWN0b3I8VHlwZT4m
IGNvbnN0YW50VHlwZXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0YW50VHlwZXM7IH0KKyAgICBj
b25zdCBWZWN0b3I8dWludDY0X3Q+JiBjb25zdGFudHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0
YW50czsgfQorICAgIGNvbnN0IEluc3RydWN0aW9uU3RyZWFtJiBpbnN0cnVjdGlvbnMoKSBjb25z
dCB7IHJldHVybiAqbV9pbnN0cnVjdGlvbnM7IH0KKwogICAgIEFMV0FZU19JTkxJTkUgdWludDY0
X3QgZ2V0Q29uc3RhbnQoaW50IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2NvbnN0YW50c1tpbmRl
eCAtIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4XTsgfQotICAgIEFMV0FZU19JTkxJTkUgdWlu
dDMyX3QgZnVuY3Rpb25JbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25JbmRleDsgfQor
ICAgIEFMV0FZU19JTkxJTkUgVHlwZSBnZXRDb25zdGFudFR5cGUoaW50IGluZGV4KSBjb25zdAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKE9wdGlvbnM6OmR1bXBHZW5lcmF0ZWRXYXNtQnl0ZWNvZGVz
KCkpOworICAgICAgICByZXR1cm4gbV9jb25zdGFudFR5cGVzW2luZGV4IC0gRmlyc3RDb25zdGFu
dFJlZ2lzdGVySW5kZXhdOworICAgIH0KIAogICAgIHZvaWQgc2V0SW5zdHJ1Y3Rpb25zKHN0ZDo6
dW5pcXVlX3B0cjxJbnN0cnVjdGlvblN0cmVhbT4pOwotICAgIHZvaWQgZHVtcEJ5dGVjb2RlKCk7
Ci0KICAgICB2b2lkIGFkZEp1bXBUYXJnZXQoSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBqdW1w
VGFyZ2V0KSB7IG1fanVtcFRhcmdldHMuYXBwZW5kKGp1bXBUYXJnZXQpOyB9CiAgICAgSW5zdHJ1
Y3Rpb25TdHJlYW06Ok9mZnNldCBudW1iZXJPZkp1bXBUYXJnZXRzKCkgeyByZXR1cm4gbV9qdW1w
VGFyZ2V0cy5zaXplKCk7IH0KICAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IGxhc3RKdW1w
VGFyZ2V0KCkgeyByZXR1cm4gbV9qdW1wVGFyZ2V0cy5sYXN0KCk7IH0KQEAgLTEwOSw2ICsxMjAs
NyBAQCBwcml2YXRlOgogICAgIC8vIE51bWJlciBvZiBWaXJ0dWFsUmVnaXN0ZXIuIFRoZSBuYW1p
bmcgaXMgdW5mb3J0dW5hdGUsIGJ1dCBoYXMgdG8gbWF0Y2ggVW5saW5rZWRDb2RlQmxvY2sKICAg
ICBpbnQgbV9udW1DYWxsZWVMb2NhbHMgeyAwIH07CiAgICAgdWludDMyX3QgbV9udW1Bcmd1bWVu
dHMgeyAwIH07CisgICAgVmVjdG9yPFR5cGU+IG1fY29uc3RhbnRUeXBlczsKICAgICBWZWN0b3I8
dWludDY0X3Q+IG1fY29uc3RhbnRzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnN0cnVjdGlvblN0
cmVhbT4gbV9pbnN0cnVjdGlvbnM7CiAgICAgY29uc3Qgdm9pZCogbV9pbnN0cnVjdGlvbnNSYXdQ
b2ludGVyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUdlbmVyYXRvclRyYWl0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUdlbmVyYXRvclRyYWl0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjY2E2YmIxZGRmYjMwOTVhZDg4YWViOTcz
MTlhNzUzNzRjNTQ5MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtR2VuZXJhdG9yVHJhaXRzLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKKyNpbmNsdWRlICJCeXRlY29kZVN0cnVjdHMuaCIKKyNpbmNsdWRlICJJbnN0cnVjdGlvbi5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCitzdHJ1Y3QgR2VuZXJhdG9y
VHJhaXRzIHsKKyAgICB1c2luZyBPcGNvZGVUcmFpdHMgPSBXYXNtT3Bjb2RlVHJhaXRzOworICAg
IHVzaW5nIE9wY29kZUlEID0gV2FzbU9wY29kZUlEOworICAgIHVzaW5nIE9wTm9wID0gV2FzbU5v
cDsKKyAgICB1c2luZyBDb2RlQmxvY2sgPSBzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb25Db2RlQmxv
Y2s+OworICAgIHN0YXRpYyBjb25zdGV4cHIgT3Bjb2RlSUQgb3Bjb2RlRm9yRGlzYWJsaW5nT3B0
aW1pemF0aW9ucyA9IHdhc21fdW5yZWFjaGFibGU7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6V2FzbQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggMWQ0YzQyY2M0
NzI2OTk0ZGU0M2Y4MjhjYzk5ZjI3Mzg0MDgzNDEzNy4uYmFlZjUwNzAzN2Y5NjE3MzRhOWE4YmVh
NDI3NzY2OTRmZjM3NWI0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2FzbUNv
bnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbUZ1bmN0aW9uQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiV2FzbUZ1bmN0aW9uUGFyc2VyLmgiCisjaW5jbHVkZSAiV2FzbUdlbmVyYXRvclRyYWl0
cy5oIgogI2luY2x1ZGUgIldhc21UaHVua3MuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZFVub3JkZXJlZE1hcC5oPgpAQCAtNDQsMTQgKzQ1LDYgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAotc3RydWN0IEdlbmVyYXRvclRyYWl0cyB7
Ci0gICAgdXNpbmcgT3Bjb2RlVHJhaXRzID0gV2FzbU9wY29kZVRyYWl0czsKLSAgICB1c2luZyBP
cGNvZGVJRCA9IFdhc21PcGNvZGVJRDsKLSAgICB1c2luZyBPcE5vcCA9IFdhc21Ob3A7Ci0gICAg
dXNpbmcgQ29kZUJsb2NrID0gc3RkOjp1bmlxdWVfcHRyPEZ1bmN0aW9uQ29kZUJsb2NrPjsKLSAg
ICBzdGF0aWMgY29uc3RleHByIE9wY29kZUlEIG9wY29kZUZvckRpc2FibGluZ09wdGltaXphdGlv
bnMgPSB3YXNtX3VucmVhY2hhYmxlOwotfTsKLQogY2xhc3MgTExJbnRHZW5lcmF0b3IgOiBwdWJs
aWMgQnl0ZWNvZGVHZW5lcmF0b3JCYXNlPEdlbmVyYXRvclRyYWl0cz4gewogcHVibGljOgogICAg
IHVzaW5nIEV4cHJlc3Npb25UeXBlID0gUmVmUHRyPFJlZ2lzdGVySUQ+OwpAQCAtNDk4LDEzICs0
OTEsMTUgQEAgdm9pZCBMTEludEdlbmVyYXRvcjo6ZGlkRmluaXNoUGFyc2luZ0xvY2FscygpCiAg
ICAgbV91bml0aWFsaXplZExvY2Fscy5jbGVhcigpOwogfQogCi1hdXRvIExMSW50R2VuZXJhdG9y
OjphZGRDb25zdGFudChUeXBlLCB1aW50NjRfdCB2YWx1ZSkgLT4gRXhwcmVzc2lvblR5cGUKK2F1
dG8gTExJbnRHZW5lcmF0b3I6OmFkZENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0X3QgdmFsdWUp
IC0+IEV4cHJlc3Npb25UeXBlCiB7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHNvdXJjZShGaXJzdENv
bnN0YW50UmVnaXN0ZXJJbmRleCArIG1fY29kZUJsb2NrLT5tX2NvbnN0YW50cy5zaXplKCkpOwog
ICAgIGF1dG8gcmVzdWx0ID0gbV9jb25zdGFudE1hcC5lbXBsYWNlKHZhbHVlLCBzb3VyY2UpOwot
ICAgIGlmIChyZXN1bHQuc2Vjb25kKQorICAgIGlmIChyZXN1bHQuc2Vjb25kKSB7CiAgICAgICAg
IG1fY29kZUJsb2NrLT5tX2NvbnN0YW50cy5hcHBlbmQodmFsdWUpOwotICAgIGVsc2UKKyAgICAg
ICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmR1bXBHZW5lcmF0ZWRXYXNtQnl0ZWNvZGVzKCkpKQor
ICAgICAgICAgICAgbV9jb2RlQmxvY2stPm1fY29uc3RhbnRUeXBlcy5hcHBlbmQodHlwZSk7Cisg
ICAgfSBlbHNlCiAgICAgICAgIHNvdXJjZSA9IHJlc3VsdC5maXJzdC0+c2Vjb25kOwogICAgIGF1
dG8gdGFyZ2V0ID0gbmV3VGVtcG9yYXJ5KCk7CiAgICAgV2FzbU1vdjo6ZW1pdCh0aGlzLCB0YXJn
ZXQsIHNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TExJbnRQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4u
Y3BwCmluZGV4IDQxOWM0MmM1MzI4NjkwODdiODNjNGNjYjE3MWNlNDZhNmUxODgxNWEuLjc3MmI1
MTk2NmU0NTdkMjk2OGJjNjViMzEwOTM4ZGRmYmMyYjEwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUg
IkJ5dGVjb2RlRHVtcGVyLmgiCiAjaW5jbHVkZSAiQ2FsbGVlQml0cy5oIgogI2luY2x1ZGUgIkxM
SW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgpAQCAtOTAsMTEgKzkxLDYgQEAg
dm9pZCBMTEludFBsYW46OmNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBmdW5jdGlvbkluZGV4KQog
CiB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExv
Y2tlciYgbG9ja2VyKQogewotICAgIGlmIChPcHRpb25zOjpkdW1wR2VuZXJhdGVkQnl0ZWNvZGVz
KCkpIHsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb2RlQmxvY2sgOiBtX3dhc21JbnRlcm5h
bEZ1bmN0aW9ucykKLSAgICAgICAgICAgIGNvZGVCbG9jay0+ZHVtcEJ5dGVjb2RlKCk7Ci0gICAg
fQotCiAgICAgZm9yICh1aW50MzJfdCBmdW5jdGlvbkluZGV4ID0gMDsgZnVuY3Rpb25JbmRleCA8
IG1fbW9kdWxlSW5mb3JtYXRpb24tPmZ1bmN0aW9ucy5zaXplKCk7IGZ1bmN0aW9uSW5kZXgrKykg
ewogICAgICAgICBTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1fbW9kdWxlSW5mb3Jt
YXRpb24tPmludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzW2Z1bmN0aW9uSW5kZXhdOwog
ICAgICAgICBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSA9IFNpZ25hdHVyZUluZm9ybWF0aW9u
OjpnZXQoc2lnbmF0dXJlSW5kZXgpOwpAQCAtMTIxLDYgKzExNywxMCBAQCB2b2lkIExMSW50UGxh
bjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQog
ICAgICAgICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpKdW1wPiBqdW1wcyhmdW5jdGlvbkNvdW50KTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZ1bmN0aW9uQ291bnQ7ICsraSkgewog
ICAgICAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IGkgKyBtX21vZHVsZUluZm9y
bWF0aW9uLT5pbXBvcnRGdW5jdGlvbkNvdW50KCk7CisKKyAgICAgICAgICAgIGlmIChVTkxJS0VM
WShPcHRpb25zOjpkdW1wR2VuZXJhdGVkV2FzbUJ5dGVjb2RlcygpKSkKKyAgICAgICAgICAgICAg
ICBCeXRlY29kZUR1bXBlcjo6ZHVtcEJsb2NrKG1fd2FzbUludGVybmFsRnVuY3Rpb25zW2ldLmdl
dCgpLCBtX21vZHVsZUluZm9ybWF0aW9uLCBXVEY6OmRhdGFGaWxlKCkpOworCiAgICAgICAgICAg
ICBtX2NhbGxlZXNbaV0gPSBXYXNtOjpMTEludENhbGxlZTo6Y3JlYXRlKFdURk1vdmUobV93YXNt
SW50ZXJuYWxGdW5jdGlvbnNbaV0pLCBmdW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3Jt
YXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSk7CiAgICAgICAgICAg
ICBlbnRyeXBvaW50c1tpXSA9IGppdC5sYWJlbCgpOwogI2lmIENQVShYODZfNjQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>