<?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>194248</bug_id>
          
          <creation_ts>2019-02-04 16:14:10 -0800</creation_ts>
          <short_desc>Change llint operand macros to inline functions</short_desc>
          <delta_ts>2019-02-04 19:24:30 -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>New Bugs</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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</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>1502084</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-04 16:14:10 -0800</bug_when>
    <thetext>Change llint operand macros to inline functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502085</commentid>
    <comment_count>1</comment_count>
      <attachid>361120</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-04 16:15:29 -0800</bug_when>
    <thetext>Created attachment 361120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502109</commentid>
    <comment_count>2</comment_count>
      <attachid>361120</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-04 16:40:13 -0800</bug_when>
    <thetext>Comment on attachment 361120
Patch

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

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:145
&gt; +        getOperand(exec, bytecode.m_dst) = __r_returnValue;          \

How. An this work?  You’re assigning to a returned value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502115</commentid>
    <comment_count>3</comment_count>
      <attachid>361129</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-04 16:45:01 -0800</bug_when>
    <thetext>Created attachment 361129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502116</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-04 16:45:42 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #2)
&gt; Comment on attachment 361120 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=361120&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:145
&gt; &gt; +        getOperand(exec, bytecode.m_dst) = __r_returnValue;          \
&gt; 
&gt; How. An this work?  You’re assigning to a returned value.

Sorry, that happened from a bad find-replace. I fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502135</commentid>
    <comment_count>5</comment_count>
      <attachid>361129</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-04 17:11:44 -0800</bug_when>
    <thetext>Comment on attachment 361129
Patch

r=me if EWS bits are green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502140</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-04 17:12:34 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #5)
&gt; Comment on attachment 361129 [details]
&gt; Patch
&gt; 
&gt; r=me if EWS bits are green.

Autocorrect fail: /bits/bots/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502203</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-04 18:56:54 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #6)
&gt; (In reply to Mark Lam from comment #5)
&gt; &gt; Comment on attachment 361129 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; r=me if EWS bits are green.
&gt; 
&gt; Autocorrect fail: /bits/bots/

There are bits in the colors of the pixels so it&apos;s not totally inaccurate!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502210</commentid>
    <comment_count>8</comment_count>
      <attachid>361129</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 19:23:10 -0800</bug_when>
    <thetext>Comment on attachment 361129
Patch

Clearing flags on attachment: 361129

Committed r240960: &lt;https://trac.webkit.org/changeset/240960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502211</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 19:23:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502212</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-04 19:24:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/47808722&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361120</attachid>
            <date>2019-02-04 16:15:29 -0800</date>
            <delta_ts>2019-02-04 16:44:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194248-20190204161528.patch</filename>
            <type>text/plain</type>
            <size>27862</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZWZkMzQzYWNkYjMwZDg1MjEwNjg1ODVjNmU5YTI3ZWJkZGMxMTAwLi45MjcwNTg4ZTA3Y2E2ZDMw
NjU3N2ZkYTNkYjk4Yzk4ZWI5ZGI4N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxOS0wMi0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDaGFuZ2UgbGxpbnQgb3BlcmFuZCBtYWNyb3MgdG8gaW5saW5lIGZ1
bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk0MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpnZXRPcGVy
YW5kKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldENvbnN0YW50T3BlcmFuZCk6CisgICAgICAg
IChKU0M6OkxMSW50OjpsbGludF90cmFjZV92YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpM
TElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgIChKU0M6OkxMSW50OjpnZXRCeVZhbCk6Cisg
ICAgICAgIChKU0M6OkxMSW50OjpnZW5lcmljQ2FsbCk6CisgICAgICAgIChKU0M6OkxMSW50Ojp2
YXJhcmdzU2V0dXApOgorICAgICAgICAoSlNDOjpMTEludDo6Y29tbW9uQ2FsbEV2YWwpOgorCiAy
MDE5LTAyLTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcn
cyBkb2VzR0MoKSBpcyBpbmNvcnJlY3QgYWJvdXQgdGhlIFNhbWVWYWx1ZSBub2RlJ3MgYmVoYXZp
b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApp
bmRleCA1MjdkMzk1ZDhkNzk1YzQ4ZWZjNDQzN2ZmM2VkYzFlNTExMGMzMDA0Li5hNzA5ZWE3ODUy
ZmQzMmZhOTlkNGYzY2Y5ODRhMWI5MjFmZmNmMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTk0LDggKzk0LDggQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VUX1BDKCk7ICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgTExJTlRfU0VUX1BDX0ZPUl9TVFVCUygpCiAKLSNkZWZp
bmUgTExJTlRfT1AoX19yKSAoZXhlYy0+dW5jaGVja2VkUihfX3Iub2Zmc2V0KCkpKQotI2RlZmlu
ZSBMTElOVF9PUF9DKF9fcikgKGV4ZWMtPnIoX19yLm9mZnNldCgpKSkKK2lubGluZSBKU1ZhbHVl
IGdldE9wZXJhbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBWaXJ0dWFsUmVnaXN0ZXImIG9wZXJh
bmQpIHsgcmV0dXJuIGV4ZWMtPnVuY2hlY2tlZFIob3BlcmFuZC5vZmZzZXQoKSkuanNWYWx1ZSgp
OyB9CitpbmxpbmUgSlNWYWx1ZSBnZXRDb25zdGFudE9wZXJhbmQoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBWaXJ0dWFsUmVnaXN0ZXImIG9wZXJhbmQpIHsgcmV0dXJuIGV4ZWMtPnIob3BlcmFuZC5v
ZmZzZXQoKSkuanNWYWx1ZSgpOyB9CiAKICNkZWZpbmUgTExJTlRfUkVUVVJOX1RXTyhmaXJzdCwg
c2Vjb25kKSBkbyB7ICAgICAgIFwKICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChmaXJzdCwg
c2Vjb25kKTsgICAgICAgIFwKQEAgLTE0MiwxNCArMTQyLDE0IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9SRVRVUk4odmFsdWUpIGRvIHsgICAgICAg
ICAgICAgICAgXAogICAgICAgICBKU1ZhbHVlIF9fcl9yZXR1cm5WYWx1ZSA9ICh2YWx1ZSk7ICAg
ICAgXAogICAgICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsgICAgICAgICAgICAgICAgXAot
ICAgICAgICBMTElOVF9PUChieXRlY29kZS5tX2RzdCkgPSBfX3JfcmV0dXJuVmFsdWU7ICAgICAg
ICAgIFwKKyAgICAgICAgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2RzdCkgPSBfX3JfcmV0
dXJuVmFsdWU7ICAgICAgICAgIFwKICAgICAgICAgTExJTlRfRU5EX0lNUEwoKTsgICAgICAgICAg
ICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9SRVRV
Uk5fUFJPRklMRUQodmFsdWUpIGRvIHsgICAgICAgICAgICAgICBcCiAgICAgICAgIEpTVmFsdWUg
X19ycF9yZXR1cm5WYWx1ZSA9ICh2YWx1ZSk7ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgTExJTlRfT1AoYnl0ZWNvZGUubV9kc3QpID0gX19ycF9yZXR1cm5WYWx1ZTsg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVj
b2RlLm1fZHN0KSA9IF9fcnBfcmV0dXJuVmFsdWU7ICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgTExJTlRfUFJPRklMRV9WQUxVRShfX3JwX3JldHVyblZhbHVlKTsgICAgICAgICAg
XAogICAgICAgICBMTElOVF9FTkRfSU1QTCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKQEAgLTI0NCw3ICsyNDQsNyBAQCBleHRl
cm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV92YWx1ZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEluc3RydWN0aQogICAgIGlmICghT3B0aW9uczo6dHJhY2VMTEludEV4ZWN1dGlv
bigpKQogICAgICAgICBMTElOVF9FTkRfSU1QTCgpOwogCi0gICAgSlNWYWx1ZSB2YWx1ZSA9IExM
SU5UX09QX0Mob3BlcmFuZCkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgdmFsdWUgPSBnZXRDb25z
dGFudE9wZXJhbmQoZXhlYywgb3BlcmFuZCk7CiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICAgICAgdWludDMyX3QgdGFnOwpAQCAtNTc5LDcgKzU3OSw3IEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyYXkpCiAgICAgTExJTlRfQkVHSU4oKTsKICAg
ICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wTmV3QXJyYXk+KCk7CiAgICAgYXV0byYgbWV0YWRh
dGEgPSBieXRlY29kZS5tZXRhZGF0YShleGVjKTsKLSAgICBMTElOVF9SRVRVUk4oY29uc3RydWN0
QXJyYXlOZWdhdGl2ZUluZGV4ZWQoZXhlYywgJm1ldGFkYXRhLm1fYXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZSwgYml0d2lzZV9jYXN0PEpTVmFsdWUqPigmTExJTlRfT1AoYnl0ZWNvZGUubV9hcmd2KSks
IGJ5dGVjb2RlLm1fYXJnYykpOworICAgIExMSU5UX1JFVFVSTihjb25zdHJ1Y3RBcnJheU5lZ2F0
aXZlSW5kZXhlZChleGVjLCAmbWV0YWRhdGEubV9hcnJheUFsbG9jYXRpb25Qcm9maWxlLCBiaXR3
aXNlX2Nhc3Q8SlNWYWx1ZSo+KCZleGVjLT51bmNoZWNrZWRSKGJ5dGVjb2RlLm1fYXJndikpLCBi
eXRlY29kZS5tX2FyZ2MpKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX25l
d19hcnJheV93aXRoX3NpemUpCkBAIC01ODcsMTQgKzU4NywxNCBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfbmV3X2FycmF5X3dpdGhfc2l6ZSkKICAgICBMTElOVF9CRUdJTigpOwog
ICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BOZXdBcnJheVdpdGhTaXplPigpOwogICAgIGF1
dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEoZXhlYyk7Ci0gICAgTExJTlRfUkVUVVJO
KGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhleGVjLCAmbWV0YWRhdGEubV9hcnJheUFsbG9j
YXRpb25Qcm9maWxlLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIExMSU5UX09QX0MoYnl0
ZWNvZGUubV9sZW5ndGgpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX1JFVFVSTihjb25zdHJ1Y3RB
cnJheVdpdGhTaXplUXVpcmsoZXhlYywgJm1ldGFkYXRhLm1fYXJyYXlBbGxvY2F0aW9uUHJvZmls
ZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywg
Ynl0ZWNvZGUubV9sZW5ndGgpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9uZXdfcmVnZXhwKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRlY29kZSA9
IHBjLT5hczxPcE5ld1JlZ2V4cD4oKTsKLSAgICBSZWdFeHAqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdF
eHAqPihMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcmVnZXhwKS5qc1ZhbHVlKCkpOworICAgIFJlZ0V4
cCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cCo+KGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRl
Y29kZS5tX3JlZ2V4cCkpOwogICAgIEFTU0VSVChyZWdFeHAtPmlzVmFsaWQoKSk7CiAgICAgTExJ
TlRfUkVUVVJOKFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHApKTsKIH0KQEAgLTYwMyw4ICs2MDMsOCBA
QCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZikKIHsKICAgICBMTElO
VF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BJbnN0YW5jZW9mPigpOwot
ICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fdmFsdWUpLmpzVmFsdWUo
KTsKLSAgICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3RvdHlwZSku
anNWYWx1ZSgpOworICAgIEpTVmFsdWUgdmFsdWUgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywg
Ynl0ZWNvZGUubV92YWx1ZSk7CisgICAgSlNWYWx1ZSBwcm90byA9IGdldENvbnN0YW50T3BlcmFu
ZChleGVjLCBieXRlY29kZS5tX3Byb3RvdHlwZSk7CiAgICAgTExJTlRfUkVUVVJOKGpzQm9vbGVh
bihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKIH0K
IApAQCAtNjEzLDkgKzYxMyw5IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0
YW5jZW9mX2N1c3RvbSkKICAgICBMTElOVF9CRUdJTigpOwogCiAgICAgYXV0byBieXRlY29kZSA9
IHBjLT5hczxPcEluc3RhbmNlb2ZDdXN0b20+KCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5U
X09QX0MoYnl0ZWNvZGUubV92YWx1ZSkuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgY29uc3RydWN0
b3IgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fY29uc3RydWN0b3IpLmpzVmFsdWUoKTsKLSAgICBK
U1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1faGFzSW5zdGFu
Y2VWYWx1ZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgdmFsdWUgPSBnZXRDb25zdGFudE9wZXJh
bmQoZXhlYywgYnl0ZWNvZGUubV92YWx1ZSk7CisgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IGdl
dENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2NvbnN0cnVjdG9yKTsKKyAgICBKU1Zh
bHVlIGhhc0luc3RhbmNlVmFsdWUgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUu
bV9oYXNJbnN0YW5jZVZhbHVlKTsKIAogICAgIEFTU0VSVChjb25zdHJ1Y3Rvci5pc09iamVjdCgp
KTsKICAgICBBU1NFUlQoaGFzSW5zdGFuY2VWYWx1ZSAhPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgfHwgIWNvbnN0
cnVjdG9yLmdldE9iamVjdCgpLT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UoKSk7CkBAIC02MzAsNyArNjMwLDcgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpCiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5h
czxPcFRyeUdldEJ5SWQ+KCk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2Rl
QmxvY2soKTsKICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRp
ZmllcihieXRlY29kZS5tX3Byb3BlcnR5KTsKLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IExMSU5U
X09QX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBiYXNlVmFsdWUg
PSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKTsKICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6UHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7CiAKICAgICBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90
KGV4ZWMsIGlkZW50LCBzbG90KTsKQEAgLTY0NSw3ICs2NDUsNyBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfZ2V0X2J5X2lkX2RpcmVjdCkKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMt
PmFzPE9wR2V0QnlJZERpcmVjdD4oKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMt
PmNvZGVCbG9jaygpOwogICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGJ5dGVjb2RlLm1fcHJvcGVydHkpOwotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0g
TExJTlRfT1BfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGJhc2VW
YWx1ZSA9IGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpOwogICAgIFBy
b3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSwgUHJvcGVydHlTbG90OjpQcm9wZXJ0eVNsb3Q6Oklu
dGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpOwogCiAgICAgYm9vbCBmb3VuZCA9IGJh
c2VWYWx1ZS5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpOwpAQCAtNzU4LDEy
ICs3NTgsMTIgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCkKICAg
ICBhdXRvJiBtZXRhZGF0YSA9IGJ5dGVjb2RlLm1ldGFkYXRhKGV4ZWMpOwogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgY29uc3QgSWRlbnRpZmllciYg
aWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIoYnl0ZWNvZGUubV9wcm9wZXJ0eSk7Ci0gICAg
SlNWYWx1ZSBiYXNlVmFsdWUgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgp
OworICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVj
b2RlLm1fYmFzZSk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBQcm9wZXJ0eVNs
b3Q6OlByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogCiAgICAgSlNWYWx1
ZSByZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGV4ZWMsIGlkZW50LCBzbG90KTsKICAgICBMTElOVF9D
SEVDS19FWENFUFRJT04oKTsKLSAgICBMTElOVF9PUChieXRlY29kZS5tX2RzdCkgPSByZXN1bHQ7
CisgICAgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2RzdCkgPSByZXN1bHQ7CiAgICAgCiAg
ICAgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cKICAgICAgICAgJiYgYmFzZVZhbHVlLmlz
Q2VsbCgpCkBAIC04NDQsMTIgKzg0NCwxMiBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfcHV0X2J5X2lkKQogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2Nr
KCk7CiAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIo
Ynl0ZWNvZGUubV9wcm9wZXJ0eSk7CiAgICAgCi0gICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBMTElO
VF9PUF9DKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSk7CiAgICAgUHV0UHJv
cGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBjb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpLCBjb2Rl
QmxvY2stPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIGlmIChieXRlY29kZS5tX2ZsYWdzICYgUHV0
QnlJZElzRGlyZWN0KQotICAgICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlm
eSh2bSwgZXhlYywgYXNPYmplY3QoYmFzZVZhbHVlKSwgaWRlbnQsIExMSU5UX09QX0MoYnl0ZWNv
ZGUubV92YWx1ZSkuanNWYWx1ZSgpLCBzbG90KTsKKyAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjpw
dXREaXJlY3RXaXRoUmVpZnkodm0sIGV4ZWMsIGFzT2JqZWN0KGJhc2VWYWx1ZSksIGlkZW50LCBn
ZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV92YWx1ZSksIHNsb3QpOwogICAgIGVs
c2UKLSAgICAgICAgYmFzZVZhbHVlLnB1dElubGluZShleGVjLCBpZGVudCwgTExJTlRfT1BfQyhi
eXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCksIHNsb3QpOworICAgICAgICBiYXNlVmFsdWUucHV0
SW5saW5lKGV4ZWMsIGlkZW50LCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV92
YWx1ZSksIHNsb3QpOwogICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOwogICAgIAogICAgIGlm
ICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XCkBAIC05MjIsNyArOTIyLDcgQEAgTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2RlbF9ieV9pZCkKICAgICBMTElOVF9CRUdJTigpOwogICAg
IGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BEZWxCeUlkPigpOwogICAgIENvZGVCbG9jayogY29k
ZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBM
TElOVF9PUF9DKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpLnRvT2JqZWN0KGV4ZWMpOworICAg
IEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2Rl
Lm1fYmFzZSkudG9PYmplY3QoZXhlYyk7CiAgICAgTExJTlRfQ0hFQ0tfRVhDRVBUSU9OKCk7CiAg
ICAgYm9vbCBjb3VsZERlbGV0ZSA9IGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+ZGVsZXRl
UHJvcGVydHkoYmFzZU9iamVjdCwgZXhlYywgY29kZUJsb2NrLT5pZGVudGlmaWVyKGJ5dGVjb2Rl
Lm1fcHJvcGVydHkpKTsKICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsKQEAgLTkzMyw4ICs5
MzMsOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVsX2J5X2lkKQogCiBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGdldEJ5VmFsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBPcEdldEJ5VmFsIGJ5dGVjb2RlKQogewotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gTExJTlRf
T1BfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9
IExMSU5UX09QX0MoYnl0ZWNvZGUubV9wcm9wZXJ0eSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSk7Cisg
ICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUu
bV9wcm9wZXJ0eSk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgaWYgKExJS0VMWShiYXNlVmFsdWUuaXNDZWxsKCkgJiYgc3Vic2NyaXB0LmlzU3RyaW5n
KCkpKSB7CkBAIC0xMDAwLDkgKzEwMDAsOSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfcHV0X2J5X3ZhbCkKICAgICBMTElOVF9CRUdJTigpOwogICAgIAogICAgIGF1dG8gYnl0ZWNv
ZGUgPSBwYy0+YXM8T3BQdXRCeVZhbD4oKTsKLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IExMSU5U
X09QX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQg
PSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcHJvcGVydHkpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVl
IHZhbHVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSBiYXNlVmFsdWUgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNl
KTsKKyAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRl
Y29kZS5tX3Byb3BlcnR5KTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0Q29uc3RhbnRPcGVyYW5k
KGV4ZWMsIGJ5dGVjb2RlLm1fdmFsdWUpOwogICAgIGJvb2wgaXNTdHJpY3RNb2RlID0gZXhlYy0+
Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwogICAgIAogICAgIGlmIChMSUtFTFkoc3Vic2Ny
aXB0LmlzVUludDMyKCkpKSB7CkBAIC0xMDMxLDkgKzEwMzEsOSBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfcHV0X2J5X3ZhbF9kaXJlY3QpCiAgICAgTExJTlRfQkVHSU4oKTsKICAg
ICAKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wUHV0QnlWYWxEaXJlY3Q+KCk7Ci0gICAg
SlNWYWx1ZSBiYXNlVmFsdWUgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgp
OwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3BlcnR5
KS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV92
YWx1ZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gZ2V0Q29uc3RhbnRPcGVy
YW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSk7CisgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBnZXRD
b25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9wcm9wZXJ0eSk7CisgICAgSlNWYWx1ZSB2
YWx1ZSA9IGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3ZhbHVlKTsKICAgICBS
RUxFQVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgSlNPYmplY3QqIGJhc2VP
YmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgIGJvb2wgaXNTdHJpY3RNb2RlID0gZXhl
Yy0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwpAQCAtMTA3MSwxMSArMTA3MSwxMSBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVsX2J5X3ZhbCkKIHsKICAgICBMTElOVF9C
RUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BEZWxCeVZhbD4oKTsKLSAgICBK
U1ZhbHVlIGJhc2VWYWx1ZSA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9iYXNlKTsKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGJhc2VWYWx1ZS50b09iamVj
dChleGVjKTsKICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsKIAotICAgIEpTVmFsdWUgc3Vi
c2NyaXB0ID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3BlcnR5KS5qc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSBzdWJzY3JpcHQgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9w
cm9wZXJ0eSk7CiAgICAgCiAgICAgYm9vbCBjb3VsZERlbGV0ZTsKICAgICAKQEAgLTExMDAsMTIg
KzExMDAsMTIgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9nZXR0ZXJfYnlf
aWQpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9w
UHV0R2V0dGVyQnlJZD4oKTsKLSAgICBBU1NFUlQoTExJTlRfT1AoYnl0ZWNvZGUubV9iYXNlKS5q
c1ZhbHVlKCkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChM
TElOVF9PUChieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKSk7CisgICAgQVNTRVJUKGdldE9wZXJh
bmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKS5pc09iamVjdCgpKTsKKyAgICBKU09iamVjdCogYmFz
ZU9iaiA9IGFzT2JqZWN0KGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKSk7CiAKICAg
ICB1bnNpZ25lZCBvcHRpb25zID0gYnl0ZWNvZGUubV9hdHRyaWJ1dGVzOwogCi0gICAgSlNWYWx1
ZSBnZXR0ZXIgPSBMTElOVF9PUChieXRlY29kZS5tX2FjY2Vzc29yKS5qc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSBnZXR0ZXIgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYWNjZXNzb3IpOwog
ICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSk7CiAKICAgICBiYXNlT2JqLT5wdXRHZXR0ZXIo
ZXhlYywgZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIoYnl0ZWNvZGUubV9wcm9wZXJ0eSks
IGFzT2JqZWN0KGdldHRlciksIG9wdGlvbnMpOwpAQCAtMTExNiwxMiArMTExNiwxMiBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X3NldHRlcl9ieV9pZCkKIHsKICAgICBMTElO
VF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BQdXRTZXR0ZXJCeUlkPigp
OwotICAgIEFTU0VSVChMTElOVF9PUChieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKS5pc09iamVj
dCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KExMSU5UX09QKGJ5dGVjb2Rl
Lm1fYmFzZSkuanNWYWx1ZSgpKTsKKyAgICBBU1NFUlQoZ2V0T3BlcmFuZChleGVjLCBieXRlY29k
ZS5tX2Jhc2UpLmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3Qo
Z2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpKTsKIAogICAgIHVuc2lnbmVkIG9wdGlv
bnMgPSBieXRlY29kZS5tX2F0dHJpYnV0ZXM7CiAKLSAgICBKU1ZhbHVlIHNldHRlciA9IExMSU5U
X09QKGJ5dGVjb2RlLm1fYWNjZXNzb3IpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHNldHRlciA9
IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9hY2Nlc3Nvcik7CiAgICAgQVNTRVJUKHNldHRl
ci5pc09iamVjdCgpKTsKIAogICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCBleGVjLT5jb2Rl
QmxvY2soKS0+aWRlbnRpZmllcihieXRlY29kZS5tX3Byb3BlcnR5KSwgYXNPYmplY3Qoc2V0dGVy
KSwgb3B0aW9ucyk7CkBAIC0xMTMyLDExICsxMTMyLDExIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9wdXRfZ2V0dGVyX3NldHRlcl9ieV9pZCkKIHsKICAgICBMTElOVF9CRUdJTigp
OwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BQdXRHZXR0ZXJTZXR0ZXJCeUlkPigpOwot
ICAgIEFTU0VSVChMTElOVF9PUChieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKS5pc09iamVjdCgp
KTsKLSAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGFzT2JqZWN0KExMSU5UX09QKGJ5dGVjb2Rl
Lm1fYmFzZSkuanNWYWx1ZSgpKTsKKyAgICBBU1NFUlQoZ2V0T3BlcmFuZChleGVjLCBieXRlY29k
ZS5tX2Jhc2UpLmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmpl
Y3QoZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpKTsKIAotICAgIEpTVmFsdWUgZ2V0
dGVyID0gTExJTlRfT1AoYnl0ZWNvZGUubV9nZXR0ZXIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVl
IHNldHRlciA9IExMSU5UX09QKGJ5dGVjb2RlLm1fc2V0dGVyKS5qc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSBnZXR0ZXIgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fZ2V0dGVyKTsKKyAgICBK
U1ZhbHVlIHNldHRlciA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9zZXR0ZXIpOwogICAg
IEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3QoKSk7CiAgICAgR2V0
dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIGdldHRlciwgc2V0dGVyKTsKIApAQCAtMTE0OCwxMyArMTE0OCwx
MyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2dldHRlcl9ieV92YWwpCiB7
CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wUHV0R2V0
dGVyQnlWYWw+KCk7Ci0gICAgQVNTRVJUKExMSU5UX09QKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1
ZSgpLmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoTExJTlRf
T1AoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCkpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0g
TExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3BlcnR5KS5qc1ZhbHVlKCk7CisgICAgQVNTRVJUKGdl
dE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKS5pc09iamVjdCgpKTsKKyAgICBKU09iamVj
dCogYmFzZU9iaiA9IGFzT2JqZWN0KGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKSk7
CisgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9wcm9wZXJ0eSk7CiAKICAgICB1bnNpZ25lZCBvcHRpb25zID0gYnl0ZWNvZGUubV9hdHRy
aWJ1dGVzOwogCi0gICAgSlNWYWx1ZSBnZXR0ZXIgPSBMTElOVF9PUChieXRlY29kZS5tX2FjY2Vz
c29yKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBnZXR0ZXIgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5
dGVjb2RlLm1fYWNjZXNzb3IpOwogICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSk7CiAKICAg
ICBhdXRvIHByb3BlcnR5ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CkBAIC0xMTY4
LDEzICsxMTY4LDEzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfc2V0dGVy
X2J5X3ZhbCkKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+
YXM8T3BQdXRTZXR0ZXJCeVZhbD4oKTsKLSAgICBBU1NFUlQoTExJTlRfT1AoYnl0ZWNvZGUubV9i
YXNlKS5qc1ZhbHVlKCkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09i
amVjdChMTElOVF9PUChieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKSk7Ci0gICAgSlNWYWx1ZSBz
dWJzY3JpcHQgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcHJvcGVydHkpLmpzVmFsdWUoKTsKKyAg
ICBBU1NFUlQoZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpLmlzT2JqZWN0KCkpOwor
ICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoZ2V0T3BlcmFuZChleGVjLCBieXRlY29k
ZS5tX2Jhc2UpKTsKKyAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IGdldENvbnN0YW50T3BlcmFuZChl
eGVjLCBieXRlY29kZS5tX3Byb3BlcnR5KTsKIAogICAgIHVuc2lnbmVkIG9wdGlvbnMgPSBieXRl
Y29kZS5tX2F0dHJpYnV0ZXM7CiAKLSAgICBKU1ZhbHVlIHNldHRlciA9IExMSU5UX09QKGJ5dGVj
b2RlLm1fYWNjZXNzb3IpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHNldHRlciA9IGdldE9wZXJh
bmQoZXhlYywgYnl0ZWNvZGUubV9hY2Nlc3Nvcik7CiAgICAgQVNTRVJUKHNldHRlci5pc09iamVj
dCgpKTsKIAogICAgIGF1dG8gcHJvcGVydHkgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShleGVj
KTsKQEAgLTExODgsMTA1ICsxMTg4LDEwNSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfanRydWUpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMt
PmFzPE9wSnRydWU+KCk7Ci0gICAgTExJTlRfQlJBTkNIKExMSU5UX09QX0MoYnl0ZWNvZGUubV9j
b25kaXRpb24pLmpzVmFsdWUoKS50b0Jvb2xlYW4oZXhlYykpOworICAgIExMSU5UX0JSQU5DSChn
ZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9jb25kaXRpb24pLnRvQm9vbGVhbihl
eGVjKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qZmFsc2UpCiB7CiAg
ICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSmZhbHNlPigp
OwotICAgIExMSU5UX0JSQU5DSCghTExJTlRfT1BfQyhieXRlY29kZS5tX2NvbmRpdGlvbikuanNW
YWx1ZSgpLnRvQm9vbGVhbihleGVjKSk7CisgICAgTExJTlRfQlJBTkNIKCFnZXRDb25zdGFudE9w
ZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9jb25kaXRpb24pLnRvQm9vbGVhbihleGVjKSk7CiB9CiAK
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qbGVzcykKIHsKICAgICBMTElOVF9CRUdJ
TigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BKbGVzcz4oKTsKLSAgICBMTElOVF9C
UkFOQ0goanNMZXNzPHRydWU+KGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFs
dWUoKSwgTExJTlRfT1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRf
QlJBTkNIKGpzTGVzczx0cnVlPihleGVjLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9saHMpLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9
CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qbmxlc3MpCiB7CiAgICAgTExJTlRf
QkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSm5sZXNzPigpOwotICAgIExM
SU5UX0JSQU5DSCghanNMZXNzPHRydWU+KGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMp
LmpzVmFsdWUoKSwgTExJTlRfT1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAg
TExJTlRfQlJBTkNIKCFqc0xlc3M8dHJ1ZT4oZXhlYywgZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMs
IGJ5dGVjb2RlLm1fbGhzKSwgZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fcmhz
KSkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfamdyZWF0ZXIpCiB7CiAg
ICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSmdyZWF0ZXI+
KCk7Ci0gICAgTExJTlRfQlJBTkNIKGpzTGVzczxmYWxzZT4oZXhlYywgTExJTlRfT1BfQyhieXRl
Y29kZS5tX3JocykuanNWYWx1ZSgpLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fbGhzKS5qc1ZhbHVl
KCkpKTsKKyAgICBMTElOVF9CUkFOQ0goanNMZXNzPGZhbHNlPihleGVjLCBnZXRDb25zdGFudE9w
ZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0
ZWNvZGUubV9saHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qbmdy
ZWF0ZXIpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFz
PE9wSm5ncmVhdGVyPigpOwotICAgIExMSU5UX0JSQU5DSCghanNMZXNzPGZhbHNlPihleGVjLCBM
TElOVF9PUF9DKGJ5dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCksIExMSU5UX09QX0MoYnl0ZWNvZGUu
bV9saHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSCghanNMZXNzPGZhbHNlPihleGVj
LCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpLCBnZXRDb25zdGFudE9w
ZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9saHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9qbGVzc2VxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRl
Y29kZSA9IHBjLT5hczxPcEpsZXNzZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKGpzTGVzc0VxPHRy
dWU+KGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSwgTExJTlRfT1Bf
QyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRfQlJBTkNIKGpzTGVzc0Vx
PHRydWU+KGV4ZWMsIGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocyksIGdl
dENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocykpKTsKIH0KIAogTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2pubGVzc2VxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAg
ICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEpubGVzc2VxPigpOwotICAgIExMSU5UX0JSQU5D
SCghanNMZXNzRXE8dHJ1ZT4oZXhlYywgTExJTlRfT1BfQyhieXRlY29kZS5tX2xocykuanNWYWx1
ZSgpLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCkpKTsKKyAgICBMTElOVF9C
UkFOQ0goIWpzTGVzc0VxPHRydWU+KGV4ZWMsIGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRl
Y29kZS5tX2xocyksIGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocykpKTsK
IH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2pncmVhdGVyZXEpCiB7CiAgICAg
TExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSmdyZWF0ZXJlcT4o
KTsKLSAgICBMTElOVF9CUkFOQ0goanNMZXNzRXE8ZmFsc2U+KGV4ZWMsIExMSU5UX09QX0MoYnl0
ZWNvZGUubV9yaHMpLmpzVmFsdWUoKSwgTExJTlRfT1BfQyhieXRlY29kZS5tX2xocykuanNWYWx1
ZSgpKSk7CisgICAgTExJTlRfQlJBTkNIKGpzTGVzc0VxPGZhbHNlPihleGVjLCBnZXRDb25zdGFu
dE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywg
Ynl0ZWNvZGUubV9saHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9q
bmdyZWF0ZXJlcSkKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBw
Yy0+YXM8T3BKbmdyZWF0ZXJlcT4oKTsKLSAgICBMTElOVF9CUkFOQ0goIWpzTGVzc0VxPGZhbHNl
PihleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCksIExMSU5UX09QX0Mo
Ynl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSCghanNMZXNzRXE8
ZmFsc2U+KGV4ZWMsIGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocyksIGdl
dENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocykpKTsKIH0KIAogTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2plcSkKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1
dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BKZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKEpTVmFsdWU6
OmVxdWFsKGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSwgTExJTlRf
T1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRfQlJBTkNIKEpTVmFs
dWU6OmVxdWFsKGV4ZWMsIGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocyks
IGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocykpKTsKIH0KIAogTExJTlRf
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2puZXEpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAg
ICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSm5lcT4oKTsKLSAgICBMTElOVF9CUkFOQ0goIUpT
VmFsdWU6OmVxdWFsKGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSwg
TExJTlRfT1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRfQlJBTkNI
KCFKU1ZhbHVlOjplcXVhbChleGVjLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUu
bV9saHMpLCBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9CiAK
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qc3RyaWN0ZXEpCiB7CiAgICAgTExJTlRf
QkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSnN0cmljdGVxPigpOwotICAg
IExMSU5UX0JSQU5DSChKU1ZhbHVlOjpzdHJpY3RFcXVhbChleGVjLCBMTElOVF9PUF9DKGJ5dGVj
b2RlLm1fbGhzKS5qc1ZhbHVlKCksIExMSU5UX09QX0MoYnl0ZWNvZGUubV9yaHMpLmpzVmFsdWUo
KSkpOworICAgIExMSU5UX0JSQU5DSChKU1ZhbHVlOjpzdHJpY3RFcXVhbChleGVjLCBnZXRDb25z
dGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9saHMpLCBnZXRDb25zdGFudE9wZXJhbmQoZXhl
YywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9qbnN0cmljdGVxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRlY29kZSA9
IHBjLT5hczxPcEpuc3RyaWN0ZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKCFKU1ZhbHVlOjpzdHJp
Y3RFcXVhbChleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fbGhzKS5qc1ZhbHVlKCksIExMSU5U
X09QX0MoYnl0ZWNvZGUubV9yaHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSCghSlNW
YWx1ZTo6c3RyaWN0RXF1YWwoZXhlYywgZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2Rl
Lm1fbGhzKSwgZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fcmhzKSkpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc3dpdGNoX2ltbSkKIHsKICAgICBMTElO
VF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BTd2l0Y2hJbW0+KCk7Ci0g
ICAgSlNWYWx1ZSBzY3J1dGluZWUgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fc2NydXRpbmVlKS5q
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBzY3J1dGluZWUgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhl
YywgYnl0ZWNvZGUubV9zY3J1dGluZWUpOwogICAgIEFTU0VSVChzY3J1dGluZWUuaXNEb3VibGUo
KSk7CiAgICAgZG91YmxlIHZhbHVlID0gc2NydXRpbmVlLmFzRG91YmxlKCk7CiAgICAgaW50MzJf
dCBpbnRWYWx1ZSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KHZhbHVlKTsKQEAgLTEzMDMsNyArMTMw
Myw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zd2l0Y2hfY2hhcikKIHsKICAg
ICBMTElOVF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BTd2l0Y2hDaGFy
PigpOwotICAgIEpTVmFsdWUgc2NydXRpbmVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3NjcnV0
aW5lZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgc2NydXRpbmVlID0gZ2V0Q29uc3RhbnRPcGVy
YW5kKGV4ZWMsIGJ5dGVjb2RlLm1fc2NydXRpbmVlKTsKICAgICBBU1NFUlQoc2NydXRpbmVlLmlz
U3RyaW5nKCkpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0cmluZyhzY3J1dGluZWUpOwog
ICAgIEFTU0VSVChzdHJpbmctPmxlbmd0aCgpID09IDEpOwpAQCAtMTMxOCw3ICsxMzE4LDcgQEAg
TExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3N3aXRjaF9zdHJpbmcpCiB7CiAgICAgTExJ
TlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wU3dpdGNoU3RyaW5nPigp
OwotICAgIEpTVmFsdWUgc2NydXRpbmVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3NjcnV0aW5l
ZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgc2NydXRpbmVlID0gZ2V0Q29uc3RhbnRPcGVyYW5k
KGV4ZWMsIGJ5dGVjb2RlLm1fc2NydXRpbmVlKTsKICAgICBpbnQgZGVmYXVsdE9mZnNldCA9IEpV
TVBfT0ZGU0VUKGJ5dGVjb2RlLm1fZGVmYXVsdE9mZnNldCk7CiAgICAgaWYgKCFzY3J1dGluZWUu
aXNTdHJpbmcoKSkKICAgICAgICAgSlVNUF9UTyhkZWZhdWx0T2Zmc2V0KTsKQEAgLTE0MjEsOCAr
MTQyMSw4IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zZXRfZnVuY3Rpb25fbmFt
ZSkKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BT
ZXRGdW5jdGlvbk5hbWU+KCk7Ci0gICAgSlNGdW5jdGlvbiogZnVuYyA9IGpzQ2FzdDxKU0Z1bmN0
aW9uKj4oTExJTlRfT1AoYnl0ZWNvZGUubV9mdW5jdGlvbikuUmVnaXN0ZXI6OnVuYm94ZWRDZWxs
KCkpOwotICAgIEpTVmFsdWUgbmFtZSA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9uYW1lKS5SZWdp
c3Rlcjo6anNWYWx1ZSgpOworICAgIEpTRnVuY3Rpb24qIGZ1bmMgPSBqc0Nhc3Q8SlNGdW5jdGlv
bio+KGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9mdW5jdGlvbikpOworICAgIEpTVmFsdWUg
bmFtZSA9IGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX25hbWUpOwogICAgIGZ1
bmMtPnNldEZ1bmN0aW9uTmFtZShleGVjLCBuYW1lKTsKICAgICBMTElOVF9FTkQoKTsKIH0KQEAg
LTE1NjYsNyArMTU2Niw3IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgZ2VuZXJpY0NhbGwo
RXhlY1N0YXRlKiBleGVjLCBPcCYmIGJ5dGVjb2RlLCBDb2RlU3BlY2lhCiAgICAgLy8gLSBJZiBw
b3NzaWJsZSwgbGluayB0aGUgY2FsbCdzIGlubGluZSBjYWNoZS4KICAgICAvLyAtIFJldHVybiBh
IHR1cGxlIG9mIG1hY2hpbmUgY29kZSBhZGRyZXNzIHRvIGNhbGwgYW5kIHRoZSBuZXcgY2FsbCBm
cmFtZS4KICAgICAKLSAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUgPSBMTElOVF9PUF9DKGJ5dGVj
b2RlLm1fY2FsbGVlKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZ2V0
Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fY2FsbGVlKTsKICAgICAKICAgICBFeGVj
U3RhdGUqIGV4ZWNDYWxsZWUgPSBleGVjIC0gYnl0ZWNvZGUubV9hcmd2OwogICAgIApAQCAtMTYw
OSwyMSArMTYwOSwyMSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9mcmFt
ZV9mb3JfdmFyYXJncykKICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczogewogICAgICAgICBhdXRv
IGJ5dGVjb2RlID0gcGMtPmFzPE9wQ2FsbFZhcmFyZ3M+KCk7CiAgICAgICAgIG51bVVzZWRTdGFj
a1Nsb3RzID0gLWJ5dGVjb2RlLm1fZmlyc3RGcmVlLm9mZnNldCgpOwotICAgICAgICBhcmd1bWVu
dHMgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fYXJndW1lbnRzKS5qc1ZhbHVlKCk7CisgICAgICAg
IGFyZ3VtZW50cyA9IGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2FyZ3VtZW50
cyk7CiAgICAgICAgIGZpcnN0VmFyQXJnID0gYnl0ZWNvZGUubV9maXJzdFZhckFyZzsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ugb3BfdGFpbF9jYWxsX3ZhcmFyZ3M6IHsKICAgICAg
ICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcFRhaWxDYWxsVmFyYXJncz4oKTsKICAgICAgICAg
bnVtVXNlZFN0YWNrU2xvdHMgPSAtYnl0ZWNvZGUubV9maXJzdEZyZWUub2Zmc2V0KCk7Ci0gICAg
ICAgIGFyZ3VtZW50cyA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9hcmd1bWVudHMpLmpzVmFsdWUo
KTsKKyAgICAgICAgYXJndW1lbnRzID0gZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2Rl
Lm1fYXJndW1lbnRzKTsKICAgICAgICAgZmlyc3RWYXJBcmcgPSBieXRlY29kZS5tX2ZpcnN0VmFy
QXJnOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBvcF9jb25zdHJ1Y3RfdmFyYXJn
czogewogICAgICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wQ29uc3RydWN0VmFyYXJncz4o
KTsKICAgICAgICAgbnVtVXNlZFN0YWNrU2xvdHMgPSAtYnl0ZWNvZGUubV9maXJzdEZyZWUub2Zm
c2V0KCk7Ci0gICAgICAgIGFyZ3VtZW50cyA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9hcmd1bWVu
dHMpLmpzVmFsdWUoKTsKKyAgICAgICAgYXJndW1lbnRzID0gZ2V0Q29uc3RhbnRPcGVyYW5kKGV4
ZWMsIGJ5dGVjb2RlLm1fYXJndW1lbnRzKTsKICAgICAgICAgZmlyc3RWYXJBcmcgPSBieXRlY29k
ZS5tX2ZpcnN0VmFyQXJnOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xNjc0LDE1ICsxNjc0
LDE1IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgdmFyYXJnc1NldHVwKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSW5zdHJ1Y3Rpb24qIHBjLCBDCiAgICAgLy8gLSBSZXR1cm4gYSB0dXBsZSBv
ZiBtYWNoaW5lIGNvZGUgYWRkcmVzcyB0byBjYWxsIGFuZCB0aGUgbmV3IGNhbGwgZnJhbWUuCiAK
ICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wPigpOwotICAgIEpTVmFsdWUgY2FsbGVlQXNW
YWx1ZSA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9jYWxsZWUpLmpzVmFsdWUoKTsKKyAgICBKU1Zh
bHVlIGNhbGxlZUFzVmFsdWUgPSBnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9j
YWxsZWUpOwogCiAgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlID0gdm0ubmV3Q2FsbEZyYW1lUmV0
dXJuVmFsdWU7CiAKICAgICBpZiAoc2V0ID09IFNldEFyZ3VtZW50c1dpdGg6Ok9iamVjdCkgewot
ICAgICAgICBzZXR1cFZhcmFyZ3NGcmFtZUFuZFNldFRoaXMoZXhlYywgZXhlY0NhbGxlZSwgTExJ
TlRfT1BfQyhieXRlY29kZS5tX3RoaXNWYWx1ZSkuanNWYWx1ZSgpLCBMTElOVF9PUF9DKGJ5dGVj
b2RlLm1fYXJndW1lbnRzKS5qc1ZhbHVlKCksIGJ5dGVjb2RlLm1fZmlyc3RWYXJBcmcsIHZtLnZh
cmFyZ3NMZW5ndGgpOworICAgICAgICBzZXR1cFZhcmFyZ3NGcmFtZUFuZFNldFRoaXMoZXhlYywg
ZXhlY0NhbGxlZSwgZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fdGhpc1ZhbHVl
KSwgZ2V0Q29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYXJndW1lbnRzKSwgYnl0ZWNv
ZGUubV9maXJzdFZhckFyZywgdm0udmFyYXJnc0xlbmd0aCk7CiAgICAgICAgIExMSU5UX0NBTExf
Q0hFQ0tfRVhDRVBUSU9OKGV4ZWMsIGV4ZWMpOwogICAgIH0gZWxzZQotICAgICAgICBzZXR1cEZv
cndhcmRBcmd1bWVudHNGcmFtZUFuZFNldFRoaXMoZXhlYywgZXhlY0NhbGxlZSwgTExJTlRfT1Bf
QyhieXRlY29kZS5tX3RoaXNWYWx1ZSkuanNWYWx1ZSgpLCB2bS52YXJhcmdzTGVuZ3RoKTsKKyAg
ICAgICAgc2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWVBbmRTZXRUaGlzKGV4ZWMsIGV4ZWNDYWxs
ZWUsIGdldENvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3RoaXNWYWx1ZSksIHZtLnZh
cmFyZ3NMZW5ndGgpOwogCiAgICAgZXhlY0NhbGxlZS0+c2V0Q2FsbGVyRnJhbWUoZXhlYyk7CiAg
ICAgZXhlY0NhbGxlZS0+dW5jaGVja2VkUihDYWxsRnJhbWVTbG90OjpjYWxsZWUpID0gY2FsbGVl
QXNWYWx1ZTsKQEAgLTE3MTUsNyArMTcxNSw3IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUg
Y29tbW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0cnVjdGlvbiogcGMsCiB7
CiAgICAgTExJTlRfQkVHSU5fTk9fU0VUX1BDKCk7CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5h
czxPcENhbGxFdmFsPigpOwotICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1ZSA9IExMSU5UX09QKGJ5
dGVjb2RlLm1fY2FsbGVlKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0g
Z2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2NhbGxlZSk7CiAgICAgCiAgICAgRXhlY1N0YXRl
KiBleGVjQ2FsbGVlID0gZXhlYyAtIGJ5dGVjb2RlLm1fYXJndjsKICAgICAKQEAgLTE3NDcsMjEg
KzE3NDcsMjEgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3N0cmNhdCkKIHsKICAg
ICBMTElOVF9CRUdJTigpOwogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BTdHJjYXQ+KCk7
Ci0gICAgTExJTlRfUkVUVVJOKGpzU3RyaW5nRnJvbVJlZ2lzdGVyQXJyYXkoZXhlYywgJkxMSU5U
X09QKGJ5dGVjb2RlLm1fc3JjKSwgYnl0ZWNvZGUubV9jb3VudCkpOworICAgIExMSU5UX1JFVFVS
Tihqc1N0cmluZ0Zyb21SZWdpc3RlckFycmF5KGV4ZWMsICZleGVjLT51bmNoZWNrZWRSKGJ5dGVj
b2RlLm1fc3JjKSwgYnl0ZWNvZGUubV9jb3VudCkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfdG9fcHJpbWl0aXZlKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0
byBieXRlY29kZSA9IHBjLT5hczxPcFRvUHJpbWl0aXZlPigpOwotICAgIExMSU5UX1JFVFVSTihM
TElOVF9PUF9DKGJ5dGVjb2RlLm1fc3JjKS5qc1ZhbHVlKCkudG9QcmltaXRpdmUoZXhlYykpOwor
ICAgIExMSU5UX1JFVFVSTihnZXRDb25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9zcmMp
LnRvUHJpbWl0aXZlKGV4ZWMpKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3Rocm93KQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5h
czxPcFRocm93PigpOwotICAgIExMSU5UX1RIUk9XKExMSU5UX09QX0MoYnl0ZWNvZGUubV92YWx1
ZSkuanNWYWx1ZSgpKTsKKyAgICBMTElOVF9USFJPVyhnZXRDb25zdGFudE9wZXJhbmQoZXhlYywg
Ynl0ZWNvZGUubV92YWx1ZSkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
aGFuZGxlX3RyYXBzKQpAQCAtMTc5Niw3ICsxNzk2LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX2dldF9mcm9tX3Njb3BlKQogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BH
ZXRGcm9tU2NvcGU+KCk7CiAgICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YShl
eGVjKTsKICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5p
ZGVudGlmaWVyKGJ5dGVjb2RlLm1fdmFyKTsKLSAgICBKU09iamVjdCogc2NvcGUgPSBqc0Nhc3Q8
SlNPYmplY3QqPihMTElOVF9PUChieXRlY29kZS5tX3Njb3BlKS5qc1ZhbHVlKCkpOworICAgIEpT
T2JqZWN0KiBzY29wZSA9IGpzQ2FzdDxKU09iamVjdCo+KGdldE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9zY29wZSkpOwogCiAgICAgLy8gTW9kdWxlVmFyIGlzIGFsd2F5cyBjb252ZXJ0ZWQgdG8g
Q2xvc3VyZVZhciBmb3IgZ2V0X2Zyb21fc2NvcGUuCiAgICAgQVNTRVJUKG1ldGFkYXRhLm1fZ2V0
UHV0SW5mby5yZXNvbHZlVHlwZSgpICE9IE1vZHVsZVZhcik7CkBAIC0xODMyLDggKzE4MzIsOCBA
QCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X3RvX3Njb3BlKQogICAgIGF1dG8m
IG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEoZXhlYyk7CiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9
IGNvZGVCbG9jay0+aWRlbnRpZmllcihieXRlY29kZS5tX3Zhcik7Ci0gICAgSlNPYmplY3QqIHNj
b3BlID0ganNDYXN0PEpTT2JqZWN0Kj4oTExJTlRfT1AoYnl0ZWNvZGUubV9zY29wZSkuanNWYWx1
ZSgpKTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3ZhbHVlKS5q
c1ZhbHVlKCk7CisgICAgSlNPYmplY3QqIHNjb3BlID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0T3Bl
cmFuZChleGVjLCBieXRlY29kZS5tX3Njb3BlKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGdldENv
bnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3ZhbHVlKTsKICAgICBpZiAobWV0YWRhdGEu
bV9nZXRQdXRJbmZvLnJlc29sdmVUeXBlKCkgPT0gTG9jYWxDbG9zdXJlVmFyKSB7CiAgICAgICAg
IEpTTGV4aWNhbEVudmlyb25tZW50KiBlbnZpcm9ubWVudCA9IGpzQ2FzdDxKU0xleGljYWxFbnZp
cm9ubWVudCo+KHNjb3BlKTsKICAgICAgICAgZW52aXJvbm1lbnQtPnZhcmlhYmxlQXQoU2NvcGVP
ZmZzZXQobWV0YWRhdGEubV9vcGVyYW5kKSkuc2V0KHZtLCBlbnZpcm9ubWVudCwgdmFsdWUpOwpA
QCAtMTg5Nyw3ICsxODk3LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2xvZ19z
aGFkb3dfY2hpY2tlbl90YWlsKQogICAgIExMSU5UX0JFR0lOKCk7CiAKICAgICBhdXRvIGJ5dGVj
b2RlID0gcGMtPmFzPE9wTG9nU2hhZG93Q2hpY2tlblRhaWw+KCk7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBMTElOVF9PUChieXRlY29kZS5tX3RoaXNWYWx1ZSkuanNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3RoaXNWYWx1ZSk7
CiAgICAgSlNTY29wZSogc2NvcGUgPSBleGVjLT51bmNoZWNrZWRSKGJ5dGVjb2RlLm1fc2NvcGUp
LlJlZ2lzdGVyOjpzY29wZSgpOwogICAgIAogI2lmIFVTRShKU1ZBTFVFNjQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361129</attachid>
            <date>2019-02-04 16:45:01 -0800</date>
            <delta_ts>2019-02-04 19:23:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194248-20190204164459.patch</filename>
            <type>text/plain</type>
            <size>27555</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZWZkMzQzYWNkYjMwZDg1MjEwNjg1ODVjNmU5YTI3ZWJkZGMxMTAwLi4zMjE1M2E0MmYxN2FjYmU1
MzExNjQyZTlkYWNhMTJkODAzMmY3YTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxOS0wMi0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDaGFuZ2UgbGxpbnQgb3BlcmFuZCBtYWNyb3MgdG8gaW5saW5lIGZ1
bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk0MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpnZXROb25D
b25zdGFudE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0T3BlcmFuZCk6CisgICAg
ICAgIChKU0M6OkxMSW50OjpsbGludF90cmFjZV92YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50
OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgIChKU0M6OkxMSW50OjpnZXRCeVZhbCk6
CisgICAgICAgIChKU0M6OkxMSW50OjpnZW5lcmljQ2FsbCk6CisgICAgICAgIChKU0M6OkxMSW50
Ojp2YXJhcmdzU2V0dXApOgorICAgICAgICAoSlNDOjpMTEludDo6Y29tbW9uQ2FsbEV2YWwpOgor
CiAyMDE5LTAyLTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBE
RkcncyBkb2VzR0MoKSBpcyBpbmNvcnJlY3QgYWJvdXQgdGhlIFNhbWVWYWx1ZSBub2RlJ3MgYmVo
YXZpb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAppbmRleCA1MjdkMzk1ZDhkNzk1YzQ4ZWZjNDQzN2ZmM2VkYzFlNTExMGMzMDA0Li4yYjNjN2Ni
MWUzMTRiZjg0YjVlZjg4ZjlhZTZkNDViNWFjYzQ5ZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTk0LDggKzk0LDggQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VUX1BDKCk7
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgTExJTlRfU0VUX1BDX0ZPUl9TVFVCUygpCiAKLSNk
ZWZpbmUgTExJTlRfT1AoX19yKSAoZXhlYy0+dW5jaGVja2VkUihfX3Iub2Zmc2V0KCkpKQotI2Rl
ZmluZSBMTElOVF9PUF9DKF9fcikgKGV4ZWMtPnIoX19yLm9mZnNldCgpKSkKK2lubGluZSBKU1Zh
bHVlIGdldE5vbkNvbnN0YW50T3BlcmFuZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFZpcnR1YWxS
ZWdpc3RlciYgb3BlcmFuZCkgeyByZXR1cm4gZXhlYy0+dW5jaGVja2VkUihvcGVyYW5kLm9mZnNl
dCgpKS5qc1ZhbHVlKCk7IH0KK2lubGluZSBKU1ZhbHVlIGdldE9wZXJhbmQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBWaXJ0dWFsUmVnaXN0ZXImIG9wZXJhbmQpIHsgcmV0dXJuIGV4ZWMtPnIob3Bl
cmFuZC5vZmZzZXQoKSkuanNWYWx1ZSgpOyB9CiAKICNkZWZpbmUgTExJTlRfUkVUVVJOX1RXTyhm
aXJzdCwgc2Vjb25kKSBkbyB7ICAgICAgIFwKICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChm
aXJzdCwgc2Vjb25kKTsgICAgICAgIFwKQEAgLTE0MiwxNCArMTQyLDE0IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9SRVRVUk4odmFsdWUpIGRvIHsg
ICAgICAgICAgICAgICAgXAogICAgICAgICBKU1ZhbHVlIF9fcl9yZXR1cm5WYWx1ZSA9ICh2YWx1
ZSk7ICAgICAgXAogICAgICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsgICAgICAgICAgICAg
ICAgXAotICAgICAgICBMTElOVF9PUChieXRlY29kZS5tX2RzdCkgPSBfX3JfcmV0dXJuVmFsdWU7
ICAgICAgICAgIFwKKyAgICAgICAgZXhlYy0+dW5jaGVja2VkUihieXRlY29kZS5tX2RzdCkgPSBf
X3JfcmV0dXJuVmFsdWU7ICAgICAgICAgIFwKICAgICAgICAgTExJTlRfRU5EX0lNUEwoKTsgICAg
ICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElO
VF9SRVRVUk5fUFJPRklMRUQodmFsdWUpIGRvIHsgICAgICAgICAgICAgICBcCiAgICAgICAgIEpT
VmFsdWUgX19ycF9yZXR1cm5WYWx1ZSA9ICh2YWx1ZSk7ICAgICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgTExJTlRfT1AoYnl0ZWNvZGUubV9kc3QpID0gX19ycF9yZXR1cm5W
YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBleGVjLT51bmNoZWNrZWRS
KGJ5dGVjb2RlLm1fZHN0KSA9IF9fcnBfcmV0dXJuVmFsdWU7ICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgTExJTlRfUFJPRklMRV9WQUxVRShfX3JwX3JldHVyblZhbHVlKTsgICAg
ICAgICAgXAogICAgICAgICBMTElOVF9FTkRfSU1QTCgpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKQEAgLTI0NCw3ICsyNDQsNyBA
QCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV92YWx1ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEluc3RydWN0aQogICAgIGlmICghT3B0aW9uczo6dHJhY2VMTEludEV4
ZWN1dGlvbigpKQogICAgICAgICBMTElOVF9FTkRfSU1QTCgpOwogCi0gICAgSlNWYWx1ZSB2YWx1
ZSA9IExMSU5UX09QX0Mob3BlcmFuZCkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgdmFsdWUgPSBn
ZXRPcGVyYW5kKGV4ZWMsIG9wZXJhbmQpOwogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsK
ICAgICAgICAgICAgIHVpbnQzMl90IHRhZzsKQEAgLTU3OSw3ICs1NzksNyBAQCBMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfbmV3X2FycmF5KQogICAgIExMSU5UX0JFR0lOKCk7CiAgICAg
YXV0byBieXRlY29kZSA9IHBjLT5hczxPcE5ld0FycmF5PigpOwogICAgIGF1dG8mIG1ldGFkYXRh
ID0gYnl0ZWNvZGUubWV0YWRhdGEoZXhlYyk7Ci0gICAgTExJTlRfUkVUVVJOKGNvbnN0cnVjdEFy
cmF5TmVnYXRpdmVJbmRleGVkKGV4ZWMsICZtZXRhZGF0YS5tX2FycmF5QWxsb2NhdGlvblByb2Zp
bGUsIGJpdHdpc2VfY2FzdDxKU1ZhbHVlKj4oJkxMSU5UX09QKGJ5dGVjb2RlLm1fYXJndikpLCBi
eXRlY29kZS5tX2FyZ2MpKTsKKyAgICBMTElOVF9SRVRVUk4oY29uc3RydWN0QXJyYXlOZWdhdGl2
ZUluZGV4ZWQoZXhlYywgJm1ldGFkYXRhLm1fYXJyYXlBbGxvY2F0aW9uUHJvZmlsZSwgYml0d2lz
ZV9jYXN0PEpTVmFsdWUqPigmZXhlYy0+dW5jaGVja2VkUihieXRlY29kZS5tX2FyZ3YpKSwgYnl0
ZWNvZGUubV9hcmdjKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZXdf
YXJyYXlfd2l0aF9zaXplKQpAQCAtNTg3LDE0ICs1ODcsMTQgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX25ld19hcnJheV93aXRoX3NpemUpCiAgICAgTExJTlRfQkVHSU4oKTsKICAg
ICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wTmV3QXJyYXlXaXRoU2l6ZT4oKTsKICAgICBhdXRv
JiBtZXRhZGF0YSA9IGJ5dGVjb2RlLm1ldGFkYXRhKGV4ZWMpOwotICAgIExMSU5UX1JFVFVSTihj
b25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywgJm1ldGFkYXRhLm1fYXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBMTElOVF9PUF9DKGJ5dGVj
b2RlLm1fbGVuZ3RoKS5qc1ZhbHVlKCkpKTsKKyAgICBMTElOVF9SRVRVUk4oY29uc3RydWN0QXJy
YXlXaXRoU2l6ZVF1aXJrKGV4ZWMsICZtZXRhZGF0YS5tX2FycmF5QWxsb2NhdGlvblByb2ZpbGUs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5t
X2xlbmd0aCkpKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX25ld19yZWdl
eHApCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9w
TmV3UmVnZXhwPigpOwotICAgIFJlZ0V4cCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cCo+KExMSU5U
X09QX0MoYnl0ZWNvZGUubV9yZWdleHApLmpzVmFsdWUoKSk7CisgICAgUmVnRXhwKiByZWdFeHAg
PSBqc0Nhc3Q8UmVnRXhwKj4oZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JlZ2V4cCkpOwog
ICAgIEFTU0VSVChyZWdFeHAtPmlzVmFsaWQoKSk7CiAgICAgTExJTlRfUkVUVVJOKFJlZ0V4cE9i
amVjdDo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVj
dHVyZSgpLCByZWdFeHApKTsKIH0KQEAgLTYwMyw4ICs2MDMsOCBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfaW5zdGFuY2VvZikKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1
dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BJbnN0YW5jZW9mPigpOwotICAgIEpTVmFsdWUgdmFsdWUg
PSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fdmFsdWUpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHBy
b3RvID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3RvdHlwZSkuanNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdmFsdWUgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fdmFsdWUpOworICAgIEpT
VmFsdWUgcHJvdG8gPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fcHJvdG90eXBlKTsKICAg
ICBMTElOVF9SRVRVUk4oanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhl
YywgdmFsdWUsIHByb3RvKSkpOwogfQogCkBAIC02MTMsOSArNjEzLDkgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQogICAgIExMSU5UX0JFR0lOKCk7
CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSW5zdGFuY2VvZkN1c3RvbT4oKTsKLSAg
ICBKU1ZhbHVlIHZhbHVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCk7
Ci0gICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9jb25zdHJ1
Y3RvcikuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSA9IExMSU5UX09Q
X0MoYnl0ZWNvZGUubV9oYXNJbnN0YW5jZVZhbHVlKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB2
YWx1ZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV92YWx1ZSk7CisgICAgSlNWYWx1ZSBj
b25zdHJ1Y3RvciA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9jb25zdHJ1Y3Rvcik7Cisg
ICAgSlNWYWx1ZSBoYXNJbnN0YW5jZVZhbHVlID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5t
X2hhc0luc3RhbmNlVmFsdWUpOwogCiAgICAgQVNTRVJUKGNvbnN0cnVjdG9yLmlzT2JqZWN0KCkp
OwogICAgIEFTU0VSVChoYXNJbnN0YW5jZVZhbHVlICE9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSB8fCAhY29uc3Ry
dWN0b3IuZ2V0T2JqZWN0KCktPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSgpKTsKQEAgLTYzMCw3ICs2MzAsNyBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFz
PE9wVHJ5R2V0QnlJZD4oKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVC
bG9jaygpOwogICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlm
aWVyKGJ5dGVjb2RlLm1fcHJvcGVydHkpOwotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gTExJTlRf
T1BfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9
IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xv
dChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6OlZNSW5xdWlyeSk7CiAKICAgICBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlk
ZW50LCBzbG90KTsKQEAgLTY0NSw3ICs2NDUsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfZ2V0X2J5X2lkX2RpcmVjdCkKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wR2V0
QnlJZERpcmVjdD4oKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9j
aygpOwogICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVy
KGJ5dGVjb2RlLm1fcHJvcGVydHkpOwotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gTExJTlRfT1Bf
QyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IGdl
dE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChi
YXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6
OkdldE93blByb3BlcnR5KTsKIAogICAgIGJvb2wgZm91bmQgPSBiYXNlVmFsdWUuZ2V0T3duUHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKQEAgLTc1OCwxMiArNzU4LDEyIEBAIExMSU5U
X1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCiAgICAgYXV0byYgbWV0YWRhdGEg
PSBieXRlY29kZS5tZXRhZGF0YShleGVjKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4
ZWMtPmNvZGVCbG9jaygpOwogICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGJ5dGVjb2RlLm1fcHJvcGVydHkpOwotICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gTExJTlRfT1BfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGJh
c2VWYWx1ZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKTsKICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdChiYXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6UHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OkdldCk7CiAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQo
ZXhlYywgaWRlbnQsIHNsb3QpOwogICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOwotICAgIExM
SU5UX09QKGJ5dGVjb2RlLm1fZHN0KSA9IHJlc3VsdDsKKyAgICBleGVjLT51bmNoZWNrZWRSKGJ5
dGVjb2RlLm1fZHN0KSA9IHJlc3VsdDsKICAgICAKICAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NF
U1NfU0xPVwogICAgICAgICAmJiBiYXNlVmFsdWUuaXNDZWxsKCkKQEAgLTg0NCwxMiArODQ0LDEy
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAgICBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihieXRlY29kZS5tX3Byb3BlcnR5KTsKICAg
ICAKLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9iYXNlKS5q
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVj
b2RlLm1fYmFzZSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBjb2RlQmxv
Y2stPmlzU3RyaWN0TW9kZSgpLCBjb2RlQmxvY2stPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIGlm
IChieXRlY29kZS5tX2ZsYWdzICYgUHV0QnlJZElzRGlyZWN0KQotICAgICAgICBDb21tb25TbG93
UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZXhlYywgYXNPYmplY3QoYmFzZVZhbHVlKSwg
aWRlbnQsIExMSU5UX09QX0MoYnl0ZWNvZGUubV92YWx1ZSkuanNWYWx1ZSgpLCBzbG90KTsKKyAg
ICAgICAgQ29tbW9uU2xvd1BhdGhzOjpwdXREaXJlY3RXaXRoUmVpZnkodm0sIGV4ZWMsIGFzT2Jq
ZWN0KGJhc2VWYWx1ZSksIGlkZW50LCBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fdmFsdWUp
LCBzbG90KTsKICAgICBlbHNlCi0gICAgICAgIGJhc2VWYWx1ZS5wdXRJbmxpbmUoZXhlYywgaWRl
bnQsIExMSU5UX09QX0MoYnl0ZWNvZGUubV92YWx1ZSkuanNWYWx1ZSgpLCBzbG90KTsKKyAgICAg
ICAgYmFzZVZhbHVlLnB1dElubGluZShleGVjLCBpZGVudCwgZ2V0T3BlcmFuZChleGVjLCBieXRl
Y29kZS5tX3ZhbHVlKSwgc2xvdCk7CiAgICAgTExJTlRfQ0hFQ0tfRVhDRVBUSU9OKCk7CiAgICAg
CiAgICAgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cKQEAgLTkyMiw3ICs5MjIsNyBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVsX2J5X2lkKQogICAgIExMSU5UX0JFR0lO
KCk7CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcERlbEJ5SWQ+KCk7CiAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICBKU09iamVjdCogYmFzZU9i
amVjdCA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCkudG9PYmplY3QoZXhl
Yyk7CisgICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2Rl
Lm1fYmFzZSkudG9PYmplY3QoZXhlYyk7CiAgICAgTExJTlRfQ0hFQ0tfRVhDRVBUSU9OKCk7CiAg
ICAgYm9vbCBjb3VsZERlbGV0ZSA9IGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+ZGVsZXRl
UHJvcGVydHkoYmFzZU9iamVjdCwgZXhlYywgY29kZUJsb2NrLT5pZGVudGlmaWVyKGJ5dGVjb2Rl
Lm1fcHJvcGVydHkpKTsKICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsKQEAgLTkzMyw4ICs5
MzMsOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVsX2J5X2lkKQogCiBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGdldEJ5VmFsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBPcEdldEJ5VmFsIGJ5dGVjb2RlKQogewotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gTExJTlRf
T1BfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9
IExMSU5UX09QX0MoYnl0ZWNvZGUubV9wcm9wZXJ0eSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpOworICAgIEpTVmFs
dWUgc3Vic2NyaXB0ID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3Byb3BlcnR5KTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoTElLRUxZ
KGJhc2VWYWx1ZS5pc0NlbGwoKSAmJiBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKQEAgLTEwMDAs
OSArMTAwMCw5IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfdmFsKQog
ICAgIExMSU5UX0JFR0lOKCk7CiAgICAgCiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcFB1
dEJ5VmFsPigpOwotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gTExJTlRfT1BfQyhieXRlY29kZS5t
X2Jhc2UpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IExMSU5UX09QX0MoYnl0
ZWNvZGUubV9wcm9wZXJ0eSkuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9P
UF9DKGJ5dGVjb2RlLm1fdmFsdWUpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9
IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKTsKKyAgICBKU1ZhbHVlIHN1YnNjcmlw
dCA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9wcm9wZXJ0eSk7CisgICAgSlNWYWx1ZSB2
YWx1ZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV92YWx1ZSk7CiAgICAgYm9vbCBpc1N0
cmljdE1vZGUgPSBleGVjLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCk7CiAgICAgCiAgICAg
aWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsKQEAgLTEwMzEsOSArMTAzMSw5IEBA
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfdmFsX2RpcmVjdCkKICAgICBM
TElOVF9CRUdJTigpOwogICAgIAogICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BQdXRCeVZh
bERpcmVjdD4oKTsKLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IExMSU5UX09QX0MoYnl0ZWNvZGUu
bV9iYXNlKS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBMTElOVF9PUF9DKGJ5
dGVjb2RlLm1fcHJvcGVydHkpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gTExJTlRf
T1BfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBiYXNlVmFsdWUg
PSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSk7CisgICAgSlNWYWx1ZSBzdWJzY3Jp
cHQgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fcHJvcGVydHkpOworICAgIEpTVmFsdWUg
dmFsdWUgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fdmFsdWUpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9
IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgYm9vbCBpc1N0cmljdE1vZGUgPSBleGVjLT5jb2Rl
QmxvY2soKS0+aXNTdHJpY3RNb2RlKCk7CkBAIC0xMDcxLDExICsxMDcxLDExIEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfdmFsKQogewogICAgIExMSU5UX0JFR0lOKCk7
CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcERlbEJ5VmFsPigpOwotICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIGJhc2VWYWx1ZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9iYXNlKTsKICAg
ICBKU09iamVjdCogYmFzZU9iamVjdCA9IGJhc2VWYWx1ZS50b09iamVjdChleGVjKTsKICAgICBM
TElOVF9DSEVDS19FWENFUFRJT04oKTsKIAotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gTExJTlRf
T1BfQyhieXRlY29kZS5tX3Byb3BlcnR5KS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBzdWJzY3Jp
cHQgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fcHJvcGVydHkpOwogICAgIAogICAgIGJv
b2wgY291bGREZWxldGU7CiAgICAgCkBAIC0xMTAwLDEyICsxMTAwLDEyIEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfZ2V0dGVyX2J5X2lkKQogewogICAgIExMSU5UX0JFR0lO
KCk7CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcFB1dEdldHRlckJ5SWQ+KCk7Ci0gICAg
QVNTRVJUKExMSU5UX09QKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpLmlzT2JqZWN0KCkpOwot
ICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoTExJTlRfT1AoYnl0ZWNvZGUubV9iYXNl
KS5qc1ZhbHVlKCkpOworICAgIEFTU0VSVChnZXROb25Db25zdGFudE9wZXJhbmQoZXhlYywgYnl0
ZWNvZGUubV9iYXNlKS5pc09iamVjdCgpKTsKKyAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2Jq
ZWN0KGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpKTsKIAogICAg
IHVuc2lnbmVkIG9wdGlvbnMgPSBieXRlY29kZS5tX2F0dHJpYnV0ZXM7CiAKLSAgICBKU1ZhbHVl
IGdldHRlciA9IExMSU5UX09QKGJ5dGVjb2RlLm1fYWNjZXNzb3IpLmpzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIGdldHRlciA9IGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Fj
Y2Vzc29yKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwogCiAgICAgYmFzZU9iai0+
cHV0R2V0dGVyKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKGJ5dGVjb2RlLm1f
cHJvcGVydHkpLCBhc09iamVjdChnZXR0ZXIpLCBvcHRpb25zKTsKQEAgLTExMTYsMTIgKzExMTYs
MTIgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9zZXR0ZXJfYnlfaWQpCiB7
CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wUHV0U2V0
dGVyQnlJZD4oKTsKLSAgICBBU1NFUlQoTExJTlRfT1AoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVl
KCkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChMTElOVF9P
UChieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKSk7CisgICAgQVNTRVJUKGdldE5vbkNvbnN0YW50
T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpLmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0
KiBiYXNlT2JqID0gYXNPYmplY3QoZ2V0Tm9uQ29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2Rl
Lm1fYmFzZSkpOwogCiAgICAgdW5zaWduZWQgb3B0aW9ucyA9IGJ5dGVjb2RlLm1fYXR0cmlidXRl
czsKIAotICAgIEpTVmFsdWUgc2V0dGVyID0gTExJTlRfT1AoYnl0ZWNvZGUubV9hY2Nlc3Nvciku
anNWYWx1ZSgpOworICAgIEpTVmFsdWUgc2V0dGVyID0gZ2V0Tm9uQ29uc3RhbnRPcGVyYW5kKGV4
ZWMsIGJ5dGVjb2RlLm1fYWNjZXNzb3IpOwogICAgIEFTU0VSVChzZXR0ZXIuaXNPYmplY3QoKSk7
CiAKICAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50
aWZpZXIoYnl0ZWNvZGUubV9wcm9wZXJ0eSksIGFzT2JqZWN0KHNldHRlciksIG9wdGlvbnMpOwpA
QCAtMTEzMiwxMSArMTEzMiwxMSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0
X2dldHRlcl9zZXR0ZXJfYnlfaWQpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5
dGVjb2RlID0gcGMtPmFzPE9wUHV0R2V0dGVyU2V0dGVyQnlJZD4oKTsKLSAgICBBU1NFUlQoTExJ
TlRfT1AoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmpl
Y3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChMTElOVF9PUChieXRlY29kZS5tX2Jhc2UpLmpzVmFs
dWUoKSk7CisgICAgQVNTRVJUKGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5t
X2Jhc2UpLmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3Qo
Z2V0Tm9uQ29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSkpOwogCi0gICAgSlNW
YWx1ZSBnZXR0ZXIgPSBMTElOVF9PUChieXRlY29kZS5tX2dldHRlcikuanNWYWx1ZSgpOwotICAg
IEpTVmFsdWUgc2V0dGVyID0gTExJTlRfT1AoYnl0ZWNvZGUubV9zZXR0ZXIpLmpzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIGdldHRlciA9IGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29k
ZS5tX2dldHRlcik7CisgICAgSlNWYWx1ZSBzZXR0ZXIgPSBnZXROb25Db25zdGFudE9wZXJhbmQo
ZXhlYywgYnl0ZWNvZGUubV9zZXR0ZXIpOwogICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8
fCBzZXR0ZXIuaXNPYmplY3QoKSk7CiAgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGdldHRlciwg
c2V0dGVyKTsKIApAQCAtMTE0OCwxMyArMTE0OCwxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChz
bG93X3BhdGhfcHV0X2dldHRlcl9ieV92YWwpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBh
dXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wUHV0R2V0dGVyQnlWYWw+KCk7Ci0gICAgQVNTRVJUKExM
SU5UX09QKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpLmlzT2JqZWN0KCkpOwotICAgIEpTT2Jq
ZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoTExJTlRfT1AoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVl
KCkpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3Bl
cnR5KS5qc1ZhbHVlKCk7CisgICAgQVNTRVJUKGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBi
eXRlY29kZS5tX2Jhc2UpLmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNP
YmplY3QoZ2V0Tm9uQ29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSkpOworICAg
IEpTVmFsdWUgc3Vic2NyaXB0ID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3Byb3BlcnR5
KTsKIAogICAgIHVuc2lnbmVkIG9wdGlvbnMgPSBieXRlY29kZS5tX2F0dHJpYnV0ZXM7CiAKLSAg
ICBKU1ZhbHVlIGdldHRlciA9IExMSU5UX09QKGJ5dGVjb2RlLm1fYWNjZXNzb3IpLmpzVmFsdWUo
KTsKKyAgICBKU1ZhbHVlIGdldHRlciA9IGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRl
Y29kZS5tX2FjY2Vzc29yKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwogCiAgICAg
YXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOwpAQCAtMTE2OCwx
MyArMTE2OCwxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X3NldHRlcl9i
eV92YWwpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFz
PE9wUHV0U2V0dGVyQnlWYWw+KCk7Ci0gICAgQVNTRVJUKExMSU5UX09QKGJ5dGVjb2RlLm1fYmFz
ZSkuanNWYWx1ZSgpLmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmpl
Y3QoTExJTlRfT1AoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCkpOwotICAgIEpTVmFsdWUgc3Vi
c2NyaXB0ID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3Byb3BlcnR5KS5qc1ZhbHVlKCk7CisgICAg
QVNTRVJUKGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Jhc2UpLmlzT2Jq
ZWN0KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoZ2V0Tm9uQ29uc3RhbnRP
cGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fYmFzZSkpOworICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0g
Z2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3Byb3BlcnR5KTsKIAogICAgIHVuc2lnbmVkIG9w
dGlvbnMgPSBieXRlY29kZS5tX2F0dHJpYnV0ZXM7CiAKLSAgICBKU1ZhbHVlIHNldHRlciA9IExM
SU5UX09QKGJ5dGVjb2RlLm1fYWNjZXNzb3IpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHNldHRl
ciA9IGdldE5vbkNvbnN0YW50T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2FjY2Vzc29yKTsKICAg
ICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkpOwogCiAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNj
cmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOwpAQCAtMTE4OCwxMDUgKzExODgsMTA1IEBAIExMSU5U
X1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qdHJ1ZSkKIHsKICAgICBMTElOVF9CRUdJTigpOwog
ICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BKdHJ1ZT4oKTsKLSAgICBMTElOVF9CUkFOQ0go
TExJTlRfT1BfQyhieXRlY29kZS5tX2NvbmRpdGlvbikuanNWYWx1ZSgpLnRvQm9vbGVhbihleGVj
KSk7CisgICAgTExJTlRfQlJBTkNIKGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9jb25kaXRp
b24pLnRvQm9vbGVhbihleGVjKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9qZmFsc2UpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMt
PmFzPE9wSmZhbHNlPigpOwotICAgIExMSU5UX0JSQU5DSCghTExJTlRfT1BfQyhieXRlY29kZS5t
X2NvbmRpdGlvbikuanNWYWx1ZSgpLnRvQm9vbGVhbihleGVjKSk7CisgICAgTExJTlRfQlJBTkNI
KCFnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fY29uZGl0aW9uKS50b0Jvb2xlYW4oZXhlYykp
OwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfamxlc3MpCiB7CiAgICAgTExJ
TlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSmxlc3M+KCk7Ci0gICAg
TExJTlRfQlJBTkNIKGpzTGVzczx0cnVlPihleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fbGhz
KS5qc1ZhbHVlKCksIExMSU5UX09QX0MoYnl0ZWNvZGUubV9yaHMpLmpzVmFsdWUoKSkpOworICAg
IExMSU5UX0JSQU5DSChqc0xlc3M8dHJ1ZT4oZXhlYywgZ2V0T3BlcmFuZChleGVjLCBieXRlY29k
ZS5tX2xocyksIGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9CiAKIExMSU5U
X1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qbmxlc3MpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsK
ICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSm5sZXNzPigpOwotICAgIExMSU5UX0JSQU5D
SCghanNMZXNzPHRydWU+KGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUo
KSwgTExJTlRfT1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRfQlJB
TkNIKCFqc0xlc3M8dHJ1ZT4oZXhlYywgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocyks
IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9qZ3JlYXRlcikKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1
dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BKZ3JlYXRlcj4oKTsKLSAgICBMTElOVF9CUkFOQ0goanNM
ZXNzPGZhbHNlPihleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCksIExM
SU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSChq
c0xlc3M8ZmFsc2U+KGV4ZWMsIGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpLCBnZXRP
cGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fbGhzKSkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfam5ncmVhdGVyKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBi
eXRlY29kZSA9IHBjLT5hczxPcEpuZ3JlYXRlcj4oKTsKLSAgICBMTElOVF9CUkFOQ0goIWpzTGVz
czxmYWxzZT4oZXhlYywgTExJTlRfT1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpLCBMTElO
VF9PUF9DKGJ5dGVjb2RlLm1fbGhzKS5qc1ZhbHVlKCkpKTsKKyAgICBMTElOVF9CUkFOQ0goIWpz
TGVzczxmYWxzZT4oZXhlYywgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocyksIGdldE9w
ZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9saHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9qbGVzc2VxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRl
Y29kZSA9IHBjLT5hczxPcEpsZXNzZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKGpzTGVzc0VxPHRy
dWU+KGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSwgTExJTlRfT1Bf
QyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRfQlJBTkNIKGpzTGVzc0Vx
PHRydWU+KGV4ZWMsIGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9saHMpLCBnZXRPcGVyYW5k
KGV4ZWMsIGJ5dGVjb2RlLm1fcmhzKSkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfam5sZXNzZXEpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2Rl
ID0gcGMtPmFzPE9wSm5sZXNzZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKCFqc0xlc3NFcTx0cnVl
PihleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fbGhzKS5qc1ZhbHVlKCksIExMSU5UX09QX0Mo
Ynl0ZWNvZGUubV9yaHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSCghanNMZXNzRXE8
dHJ1ZT4oZXhlYywgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocyksIGdldE9wZXJhbmQo
ZXhlYywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9qZ3JlYXRlcmVxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRlY29k
ZSA9IHBjLT5hczxPcEpncmVhdGVyZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKGpzTGVzc0VxPGZh
bHNlPihleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCksIExMSU5UX09Q
X0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSChqc0xlc3NF
cTxmYWxzZT4oZXhlYywgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocyksIGdldE9wZXJh
bmQoZXhlYywgYnl0ZWNvZGUubV9saHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9qbmdyZWF0ZXJlcSkKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGF1dG8gYnl0
ZWNvZGUgPSBwYy0+YXM8T3BKbmdyZWF0ZXJlcT4oKTsKLSAgICBMTElOVF9CUkFOQ0goIWpzTGVz
c0VxPGZhbHNlPihleGVjLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCksIExM
SU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSCgh
anNMZXNzRXE8ZmFsc2U+KGV4ZWMsIGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9yaHMpLCBn
ZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fbGhzKSkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfamVxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRl
Y29kZSA9IHBjLT5hczxPcEplcT4oKTsKLSAgICBMTElOVF9CUkFOQ0goSlNWYWx1ZTo6ZXF1YWwo
ZXhlYywgTExJTlRfT1BfQyhieXRlY29kZS5tX2xocykuanNWYWx1ZSgpLCBMTElOVF9PUF9DKGJ5
dGVjb2RlLm1fcmhzKS5qc1ZhbHVlKCkpKTsKKyAgICBMTElOVF9CUkFOQ0goSlNWYWx1ZTo6ZXF1
YWwoZXhlYywgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocyksIGdldE9wZXJhbmQoZXhl
YywgYnl0ZWNvZGUubV9yaHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9qbmVxKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRlY29kZSA9IHBjLT5h
czxPcEpuZXE+KCk7Ci0gICAgTExJTlRfQlJBTkNIKCFKU1ZhbHVlOjplcXVhbChleGVjLCBMTElO
VF9PUF9DKGJ5dGVjb2RlLm1fbGhzKS5qc1ZhbHVlKCksIExMSU5UX09QX0MoYnl0ZWNvZGUubV9y
aHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSCghSlNWYWx1ZTo6ZXF1YWwoZXhlYywg
Z2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2xocyksIGdldE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9yaHMpKSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qc3RyaWN0
ZXEpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9w
SnN0cmljdGVxPigpOwotICAgIExMSU5UX0JSQU5DSChKU1ZhbHVlOjpzdHJpY3RFcXVhbChleGVj
LCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fbGhzKS5qc1ZhbHVlKCksIExMSU5UX09QX0MoYnl0ZWNv
ZGUubV9yaHMpLmpzVmFsdWUoKSkpOworICAgIExMSU5UX0JSQU5DSChKU1ZhbHVlOjpzdHJpY3RF
cXVhbChleGVjLCBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fbGhzKSwgZ2V0T3BlcmFuZChl
eGVjLCBieXRlY29kZS5tX3JocykpKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX2puc3RyaWN0ZXEpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2Rl
ID0gcGMtPmFzPE9wSm5zdHJpY3RlcT4oKTsKLSAgICBMTElOVF9CUkFOQ0goIUpTVmFsdWU6OnN0
cmljdEVxdWFsKGV4ZWMsIExMSU5UX09QX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSwgTExJ
TlRfT1BfQyhieXRlY29kZS5tX3JocykuanNWYWx1ZSgpKSk7CisgICAgTExJTlRfQlJBTkNIKCFK
U1ZhbHVlOjpzdHJpY3RFcXVhbChleGVjLCBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fbGhz
KSwgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3JocykpKTsKIH0KIAogTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX3N3aXRjaF9pbW0pCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAg
ICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wU3dpdGNoSW1tPigpOwotICAgIEpTVmFsdWUgc2Ny
dXRpbmVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX3NjcnV0aW5lZSkuanNWYWx1ZSgpOworICAg
IEpTVmFsdWUgc2NydXRpbmVlID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3NjcnV0aW5l
ZSk7CiAgICAgQVNTRVJUKHNjcnV0aW5lZS5pc0RvdWJsZSgpKTsKICAgICBkb3VibGUgdmFsdWUg
PSBzY3J1dGluZWUuYXNEb3VibGUoKTsKICAgICBpbnQzMl90IGludFZhbHVlID0gc3RhdGljX2Nh
c3Q8aW50MzJfdD4odmFsdWUpOwpAQCAtMTMwMyw3ICsxMzAzLDcgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3N3aXRjaF9jaGFyKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAg
YXV0byBieXRlY29kZSA9IHBjLT5hczxPcFN3aXRjaENoYXI+KCk7Ci0gICAgSlNWYWx1ZSBzY3J1
dGluZWUgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fc2NydXRpbmVlKS5qc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSBzY3J1dGluZWUgPSBnZXRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fc2NydXRpbmVl
KTsKICAgICBBU1NFUlQoc2NydXRpbmVlLmlzU3RyaW5nKCkpOwogICAgIEpTU3RyaW5nKiBzdHJp
bmcgPSBhc1N0cmluZyhzY3J1dGluZWUpOwogICAgIEFTU0VSVChzdHJpbmctPmxlbmd0aCgpID09
IDEpOwpAQCAtMTMxOCw3ICsxMzE4LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3N3aXRjaF9zdHJpbmcpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2Rl
ID0gcGMtPmFzPE9wU3dpdGNoU3RyaW5nPigpOwotICAgIEpTVmFsdWUgc2NydXRpbmVlID0gTExJ
TlRfT1BfQyhieXRlY29kZS5tX3NjcnV0aW5lZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgc2Ny
dXRpbmVlID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3NjcnV0aW5lZSk7CiAgICAgaW50
IGRlZmF1bHRPZmZzZXQgPSBKVU1QX09GRlNFVChieXRlY29kZS5tX2RlZmF1bHRPZmZzZXQpOwog
ICAgIGlmICghc2NydXRpbmVlLmlzU3RyaW5nKCkpCiAgICAgICAgIEpVTVBfVE8oZGVmYXVsdE9m
ZnNldCk7CkBAIC0xNDIxLDggKzE0MjEsOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfc2V0X2Z1bmN0aW9uX25hbWUpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5
dGVjb2RlID0gcGMtPmFzPE9wU2V0RnVuY3Rpb25OYW1lPigpOwotICAgIEpTRnVuY3Rpb24qIGZ1
bmMgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KExMSU5UX09QKGJ5dGVjb2RlLm1fZnVuY3Rpb24pLlJl
Z2lzdGVyOjp1bmJveGVkQ2VsbCgpKTsKLSAgICBKU1ZhbHVlIG5hbWUgPSBMTElOVF9PUF9DKGJ5
dGVjb2RlLm1fbmFtZSkuUmVnaXN0ZXI6OmpzVmFsdWUoKTsKKyAgICBKU0Z1bmN0aW9uKiBmdW5j
ID0ganNDYXN0PEpTRnVuY3Rpb24qPihnZXROb25Db25zdGFudE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9mdW5jdGlvbikpOworICAgIEpTVmFsdWUgbmFtZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0
ZWNvZGUubV9uYW1lKTsKICAgICBmdW5jLT5zZXRGdW5jdGlvbk5hbWUoZXhlYywgbmFtZSk7CiAg
ICAgTExJTlRfRU5EKCk7CiB9CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBpbmxpbmUgU2xvd1BhdGhS
ZXR1cm5UeXBlIGdlbmVyaWNDYWxsKEV4ZWNTdGF0ZSogZXhlYywgT3AmJiBieXRlY29kZSwgQ29k
ZVNwZWNpYQogICAgIC8vIC0gSWYgcG9zc2libGUsIGxpbmsgdGhlIGNhbGwncyBpbmxpbmUgY2Fj
aGUuCiAgICAgLy8gLSBSZXR1cm4gYSB0dXBsZSBvZiBtYWNoaW5lIGNvZGUgYWRkcmVzcyB0byBj
YWxsIGFuZCB0aGUgbmV3IGNhbGwgZnJhbWUuCiAgICAgCi0gICAgSlNWYWx1ZSBjYWxsZWVBc1Zh
bHVlID0gTExJTlRfT1BfQyhieXRlY29kZS5tX2NhbGxlZSkuanNWYWx1ZSgpOworICAgIEpTVmFs
dWUgY2FsbGVlQXNWYWx1ZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9jYWxsZWUpOwog
ICAgIAogICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IGV4ZWMgLSBieXRlY29kZS5tX2FyZ3Y7
CiAgICAgCkBAIC0xNjA5LDIxICsxNjA5LDIxIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKQogICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOiB7
CiAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BDYWxsVmFyYXJncz4oKTsKICAgICAg
ICAgbnVtVXNlZFN0YWNrU2xvdHMgPSAtYnl0ZWNvZGUubV9maXJzdEZyZWUub2Zmc2V0KCk7Ci0g
ICAgICAgIGFyZ3VtZW50cyA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9hcmd1bWVudHMpLmpzVmFs
dWUoKTsKKyAgICAgICAgYXJndW1lbnRzID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX2Fy
Z3VtZW50cyk7CiAgICAgICAgIGZpcnN0VmFyQXJnID0gYnl0ZWNvZGUubV9maXJzdFZhckFyZzsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ugb3BfdGFpbF9jYWxsX3ZhcmFyZ3M6IHsK
ICAgICAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcFRhaWxDYWxsVmFyYXJncz4oKTsKICAg
ICAgICAgbnVtVXNlZFN0YWNrU2xvdHMgPSAtYnl0ZWNvZGUubV9maXJzdEZyZWUub2Zmc2V0KCk7
Ci0gICAgICAgIGFyZ3VtZW50cyA9IExMSU5UX09QX0MoYnl0ZWNvZGUubV9hcmd1bWVudHMpLmpz
VmFsdWUoKTsKKyAgICAgICAgYXJndW1lbnRzID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5t
X2FyZ3VtZW50cyk7CiAgICAgICAgIGZpcnN0VmFyQXJnID0gYnl0ZWNvZGUubV9maXJzdFZhckFy
ZzsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6
IHsKICAgICAgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcENvbnN0cnVjdFZhcmFyZ3M+KCk7
CiAgICAgICAgIG51bVVzZWRTdGFja1Nsb3RzID0gLWJ5dGVjb2RlLm1fZmlyc3RGcmVlLm9mZnNl
dCgpOwotICAgICAgICBhcmd1bWVudHMgPSBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fYXJndW1lbnRz
KS5qc1ZhbHVlKCk7CisgICAgICAgIGFyZ3VtZW50cyA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9hcmd1bWVudHMpOwogICAgICAgICBmaXJzdFZhckFyZyA9IGJ5dGVjb2RlLm1fZmlyc3RW
YXJBcmc7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE2NzQsMTUgKzE2NzQsMTUgQEAgaW5s
aW5lIFNsb3dQYXRoUmV0dXJuVHlwZSB2YXJhcmdzU2V0dXAoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJbnN0cnVjdGlvbiogcGMsIEMKICAgICAvLyAtIFJldHVybiBhIHR1cGxlIG9mIG1hY2hpbmUg
Y29kZSBhZGRyZXNzIHRvIGNhbGwgYW5kIHRoZSBuZXcgY2FsbCBmcmFtZS4KIAogICAgIGF1dG8g
Ynl0ZWNvZGUgPSBwYy0+YXM8T3A+KCk7Ci0gICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gTExJ
TlRfT1BfQyhieXRlY29kZS5tX2NhbGxlZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgY2FsbGVl
QXNWYWx1ZSA9IGdldE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9jYWxsZWUpOwogCiAgICAgRXhl
Y1N0YXRlKiBleGVjQ2FsbGVlID0gdm0ubmV3Q2FsbEZyYW1lUmV0dXJuVmFsdWU7CiAKICAgICBp
ZiAoc2V0ID09IFNldEFyZ3VtZW50c1dpdGg6Ok9iamVjdCkgewotICAgICAgICBzZXR1cFZhcmFy
Z3NGcmFtZUFuZFNldFRoaXMoZXhlYywgZXhlY0NhbGxlZSwgTExJTlRfT1BfQyhieXRlY29kZS5t
X3RoaXNWYWx1ZSkuanNWYWx1ZSgpLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fYXJndW1lbnRzKS5q
c1ZhbHVlKCksIGJ5dGVjb2RlLm1fZmlyc3RWYXJBcmcsIHZtLnZhcmFyZ3NMZW5ndGgpOworICAg
ICAgICBzZXR1cFZhcmFyZ3NGcmFtZUFuZFNldFRoaXMoZXhlYywgZXhlY0NhbGxlZSwgZ2V0T3Bl
cmFuZChleGVjLCBieXRlY29kZS5tX3RoaXNWYWx1ZSksIGdldE9wZXJhbmQoZXhlYywgYnl0ZWNv
ZGUubV9hcmd1bWVudHMpLCBieXRlY29kZS5tX2ZpcnN0VmFyQXJnLCB2bS52YXJhcmdzTGVuZ3Ro
KTsKICAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oZXhlYywgZXhlYyk7CiAgICAg
fSBlbHNlCi0gICAgICAgIHNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lQW5kU2V0VGhpcyhleGVj
LCBleGVjQ2FsbGVlLCBMTElOVF9PUF9DKGJ5dGVjb2RlLm1fdGhpc1ZhbHVlKS5qc1ZhbHVlKCks
IHZtLnZhcmFyZ3NMZW5ndGgpOworICAgICAgICBzZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZUFu
ZFNldFRoaXMoZXhlYywgZXhlY0NhbGxlZSwgZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3Ro
aXNWYWx1ZSksIHZtLnZhcmFyZ3NMZW5ndGgpOwogCiAgICAgZXhlY0NhbGxlZS0+c2V0Q2FsbGVy
RnJhbWUoZXhlYyk7CiAgICAgZXhlY0NhbGxlZS0+dW5jaGVja2VkUihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpID0gY2FsbGVlQXNWYWx1ZTsKQEAgLTE3MTUsNyArMTcxNSw3IEBAIGlubGluZSBTbG93
UGF0aFJldHVyblR5cGUgY29tbW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0
cnVjdGlvbiogcGMsCiB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VUX1BDKCk7CiAgICAgYXV0byBi
eXRlY29kZSA9IHBjLT5hczxPcENhbGxFdmFsPigpOwotICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1
ZSA9IExMSU5UX09QKGJ5dGVjb2RlLm1fY2FsbGVlKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBj
YWxsZWVBc1ZhbHVlID0gZ2V0Tm9uQ29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fY2Fs
bGVlKTsKICAgICAKICAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUgPSBleGVjIC0gYnl0ZWNvZGUu
bV9hcmd2OwogICAgIApAQCAtMTc0NywyMSArMTc0NywyMSBAQCBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfc3RyY2F0KQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0byBieXRl
Y29kZSA9IHBjLT5hczxPcFN0cmNhdD4oKTsKLSAgICBMTElOVF9SRVRVUk4oanNTdHJpbmdGcm9t
UmVnaXN0ZXJBcnJheShleGVjLCAmTExJTlRfT1AoYnl0ZWNvZGUubV9zcmMpLCBieXRlY29kZS5t
X2NvdW50KSk7CisgICAgTExJTlRfUkVUVVJOKGpzU3RyaW5nRnJvbVJlZ2lzdGVyQXJyYXkoZXhl
YywgJmV4ZWMtPnVuY2hlY2tlZFIoYnl0ZWNvZGUubV9zcmMpLCBieXRlY29kZS5tX2NvdW50KSk7
CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90b19wcmltaXRpdmUpCiB7CiAg
ICAgTExJTlRfQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wVG9QcmltaXRp
dmU+KCk7Ci0gICAgTExJTlRfUkVUVVJOKExMSU5UX09QX0MoYnl0ZWNvZGUubV9zcmMpLmpzVmFs
dWUoKS50b1ByaW1pdGl2ZShleGVjKSk7CisgICAgTExJTlRfUkVUVVJOKGdldE9wZXJhbmQoZXhl
YywgYnl0ZWNvZGUubV9zcmMpLnRvUHJpbWl0aXZlKGV4ZWMpKTsKIH0KIAogTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX3Rocm93KQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgYXV0
byBieXRlY29kZSA9IHBjLT5hczxPcFRocm93PigpOwotICAgIExMSU5UX1RIUk9XKExMSU5UX09Q
X0MoYnl0ZWNvZGUubV92YWx1ZSkuanNWYWx1ZSgpKTsKKyAgICBMTElOVF9USFJPVyhnZXRPcGVy
YW5kKGV4ZWMsIGJ5dGVjb2RlLm1fdmFsdWUpKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX2hhbmRsZV90cmFwcykKQEAgLTE3OTYsNyArMTc5Niw3IEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29wZSkKICAgICBhdXRvIGJ5dGVjb2RlID0g
cGMtPmFzPE9wR2V0RnJvbVNjb3BlPigpOwogICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUu
bWV0YWRhdGEoZXhlYyk7CiAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBleGVjLT5jb2Rl
QmxvY2soKS0+aWRlbnRpZmllcihieXRlY29kZS5tX3Zhcik7Ci0gICAgSlNPYmplY3QqIHNjb3Bl
ID0ganNDYXN0PEpTT2JqZWN0Kj4oTExJTlRfT1AoYnl0ZWNvZGUubV9zY29wZSkuanNWYWx1ZSgp
KTsKKyAgICBKU09iamVjdCogc2NvcGUgPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXROb25Db25zdGFu
dE9wZXJhbmQoZXhlYywgYnl0ZWNvZGUubV9zY29wZSkpOwogCiAgICAgLy8gTW9kdWxlVmFyIGlz
IGFsd2F5cyBjb252ZXJ0ZWQgdG8gQ2xvc3VyZVZhciBmb3IgZ2V0X2Zyb21fc2NvcGUuCiAgICAg
QVNTRVJUKG1ldGFkYXRhLm1fZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpICE9IE1vZHVsZVZhcik7
CkBAIC0xODMyLDggKzE4MzIsOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0
X3RvX3Njb3BlKQogICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEoZXhlYyk7
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAgICBjb25z
dCBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihieXRlY29kZS5tX3Zh
cik7Ci0gICAgSlNPYmplY3QqIHNjb3BlID0ganNDYXN0PEpTT2JqZWN0Kj4oTExJTlRfT1AoYnl0
ZWNvZGUubV9zY29wZSkuanNWYWx1ZSgpKTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gTExJTlRfT1Bf
QyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCk7CisgICAgSlNPYmplY3QqIHNjb3BlID0ganND
YXN0PEpTT2JqZWN0Kj4oZ2V0Tm9uQ29uc3RhbnRPcGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fc2Nv
cGUpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0T3BlcmFuZChleGVjLCBieXRlY29kZS5tX3Zh
bHVlKTsKICAgICBpZiAobWV0YWRhdGEubV9nZXRQdXRJbmZvLnJlc29sdmVUeXBlKCkgPT0gTG9j
YWxDbG9zdXJlVmFyKSB7CiAgICAgICAgIEpTTGV4aWNhbEVudmlyb25tZW50KiBlbnZpcm9ubWVu
dCA9IGpzQ2FzdDxKU0xleGljYWxFbnZpcm9ubWVudCo+KHNjb3BlKTsKICAgICAgICAgZW52aXJv
bm1lbnQtPnZhcmlhYmxlQXQoU2NvcGVPZmZzZXQobWV0YWRhdGEubV9vcGVyYW5kKSkuc2V0KHZt
LCBlbnZpcm9ubWVudCwgdmFsdWUpOwpAQCAtMTg5Nyw3ICsxODk3LDcgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX2xvZ19zaGFkb3dfY2hpY2tlbl90YWlsKQogICAgIExMSU5UX0JF
R0lOKCk7CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wTG9nU2hhZG93Q2hpY2tlblRh
aWw+KCk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBMTElOVF9PUChieXRlY29kZS5tX3RoaXNW
YWx1ZSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZ2V0Tm9uQ29uc3RhbnRP
cGVyYW5kKGV4ZWMsIGJ5dGVjb2RlLm1fdGhpc1ZhbHVlKTsKICAgICBKU1Njb3BlKiBzY29wZSA9
IGV4ZWMtPnVuY2hlY2tlZFIoYnl0ZWNvZGUubV9zY29wZSkuUmVnaXN0ZXI6OnNjb3BlKCk7CiAg
ICAgCiAjaWYgVVNFKEpTVkFMVUU2NCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>