<?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>151432</bug_id>
          
          <creation_ts>2015-11-18 21:44:00 -0800</creation_ts>
          <short_desc>[JSC] Add bitwise Double-Int conversion to B3</short_desc>
          <delta_ts>2015-11-19 00:38:27 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143179</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-18 21:44:00 -0800</bug_when>
    <thetext>[JSC] Add bitwise Double-Int conversion to B3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143182</commentid>
    <comment_count>1</comment_count>
      <attachid>265844</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-18 21:47:08 -0800</bug_when>
    <thetext>Created attachment 265844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143187</commentid>
    <comment_count>2</comment_count>
      <attachid>265846</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-18 21:56:01 -0800</bug_when>
    <thetext>Created attachment 265846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143191</commentid>
    <comment_count>3</comment_count>
      <attachid>265846</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-18 22:15:00 -0800</bug_when>
    <thetext>Comment on attachment 265846
Patch

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

&gt; Source/JavaScriptCore/b3/air/AirOpcode.opcodes:240
&gt; +    Addr, Tmp as loadDouble

Could also add the store variants. :-) That will give the spiller more options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143210</commentid>
    <comment_count>4</comment_count>
      <attachid>265846</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-18 23:49:58 -0800</bug_when>
    <thetext>Comment on attachment 265846
Patch

(In reply to comment #3)
&gt; Comment on attachment 265846 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265846&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirOpcode.opcodes:240
&gt; &gt; +    Addr, Tmp as loadDouble
&gt; 
&gt; Could also add the store variants. :-) That will give the spiller more
&gt; options.

There is something fishy with that one. I&apos;ll look into it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143227</commentid>
    <comment_count>5</comment_count>
      <attachid>265846</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-19 00:38:23 -0800</bug_when>
    <thetext>Comment on attachment 265846
Patch

Clearing flags on attachment: 265846

Committed r192619: &lt;http://trac.webkit.org/changeset/192619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143228</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-19 00:38:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265844</attachid>
            <date>2015-11-18 21:47:08 -0800</date>
            <delta_ts>2015-11-18 21:55:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151432-20151118214657.patch</filename>
            <type>text/plain</type>
            <size>18335</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NmE1YWMyMGE3OGFiMjgwYzEzZjkyMmFjMjcyYWZhNzkwZWM2NTNjLi4zYjJmNTZmZDAzNzE3NGRi
ZGU2OWUwYmU3NzM2MDIwNGUxNzUwNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNS0xMS0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KIAorICAgICAgICBbSlNDXSBBZGQgYml0d2lzZSBEb3VibGUtSW50IGNvbnZlcnNpb24g
dG8gQjMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgaXMgbmVlZGVkIGZvciBib3hpbmcvdW5ib3hpbmcgZG91Ymxlcy4KKworICAgICAgICAqIGIz
L0IzQ29uc3Q2NFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6Yml0
d2lzZUNhc3RDb25zdGFudCk6CisgICAgICAgICogYjMvQjNDb25zdDY0VmFsdWUuaDoKKyAgICAg
ICAgKiBiMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3RE
b3VibGVWYWx1ZTo6Yml0d2lzZUNhc3RDb25zdGFudCk6CisgICAgICAgICogYjMvQjNDb25zdERv
dWJsZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bG93ZXIpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmNw
cDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvQjNPcGNvZGUu
aDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1Zh
bGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OlZhbHVlOjpiaXR3aXNlQ2FzdENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpl
ZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBi
My9CM1ZhbHVlLmg6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAg
ICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlQXJnVG9JbnQ2
NEJpdHdpc2VDYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVJbW1Ub0ludDY0Qml0
d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0SW50NjRCSW1tVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjppbnQ2
NE9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6QjM6OnJ1bik6CisgICAgICAgICogZnRsL0ZUTEIz
T3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpiaXRDYXN0KToKKworMjAxNS0x
MS0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKwogICAgICAgICBb
SlNDXSBBZGQgc29tZSBtaXNzaW5nIGxvYWQvc3RvcmUgdG8gRlRMQjNPdXRwdXQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQyNwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcAppbmRleCA2NjM1NzBlYjBkZDRh
NTNhY2ExNzAwNTk3YzRjOWZhZjgwNmYzYmExLi45ZTA0M2VlYjBhZTA4MTdkOGM4ZjA3NTlmNjg4
ZjgxZjA2NzAyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25z
dDY0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1
ZS5jcHAKQEAgLTE1NCw2ICsxNTQsMTEgQEAgVmFsdWUqIENvbnN0NjRWYWx1ZTo6elNockNvbnN0
YW50KFByb2NlZHVyZSYgcHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogICAgIHJldHVy
biBwcm9jLmFkZDxDb25zdDY0VmFsdWU+KG9yaWdpbigpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGF0aWNfY2FzdDx1aW50NjRfdD4obV92YWx1ZSkgPj4gKG90aGVyLT5hc0ludDMyKCkgJiA2Mykp
KTsKIH0KIAorVmFsdWUqIENvbnN0NjRWYWx1ZTo6Yml0d2lzZUNhc3RDb25zdGFudChQcm9jZWR1
cmUmIHByb2MpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RG91YmxlVmFsdWU+
KG9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPihtX3ZhbHVlKSk7Cit9CisKIFRyaVN0YXRl
IENvbnN0NjRWYWx1ZTo6ZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7
CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29uc3Q2NFZhbHVlLmgKaW5kZXggYjZlOTM0MjliODM4YjYwYTI1YmZmYTlkZjZjMmQyMjNmNThk
N2QzNC4uODFmMDhmZDFiNzgxMzgxMjBhNDRmNGU1MWRiZjIzNDEyY2Q5YWZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVi
bGljOgogICAgIFZhbHVlKiBzaGxDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZhbHVlKiBzU2hyQ29uc3RhbnQoUHJvY2VkdXJlJiwg
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogelNockNvbnN0
YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
VmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgVHJpU3RhdGUgbm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29uc3REb3VibGVWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERv
dWJsZVZhbHVlLmNwcAppbmRleCA5MzMwYTM5NWQ3YWI3MmZiNDM5MjQ2MWI0MDQ4NzlhOWY5ZjA3
MmI5Li4zMTNjODUyMDlkZDdmMjNmZDk3OGQ3ZGI2NzQ4ZjUyNWMwNmVlYWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcApAQCAtNjgsNiAr
NjgsMTEgQEAgVmFsdWUqIENvbnN0RG91YmxlVmFsdWU6Om11bENvbnN0YW50KFByb2NlZHVyZSYg
cHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogICAgIHJldHVybiBwcm9jLmFkZDxDb25z
dERvdWJsZVZhbHVlPihvcmlnaW4oKSwgbV92YWx1ZSAqIG90aGVyLT5hc0RvdWJsZSgpKTsKIH0K
IAorVmFsdWUqIENvbnN0RG91YmxlVmFsdWU6OmJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJl
JiBwcm9jKSBjb25zdAoreworICAgIHJldHVybiBwcm9jLmFkZDxDb25zdDY0VmFsdWU+KG9yaWdp
bigpLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4obV92YWx1ZSkpOworfQorCiBWYWx1ZSogQ29uc3RE
b3VibGVWYWx1ZTo6ZGl2Q29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFvdGhlci0+aGFzRG91YmxlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgKaW5kZXggOTg2N2Y4NGM2OTgzOGZh
ZWVlYjJkMmIyM2U4Yzk1YzQ0NmFmZWRiNy4uMGEzZDIyOGZiNzE5ZTU3NDNiMmJlYWM4Zjk5NzAy
MjEwNzU3MjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RE
b3VibGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91Ymxl
VmFsdWUuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgVmFsdWUqIHN1YkNvbnN0YW50
KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmFs
dWUqIGRpdkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgVmFsdWUqIG11bENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJv
Y2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVHJpU3RhdGUgbm90RXF1YWxD
b25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCAxNjRkNzY2YTQ2ODg2ZmJlMTU5NDFl
ZTg1ZTQ0NjdiODI0MjY2ZmNiLi4zZTg3M2VlMmQ1MDc4MmRhZWU4MDQ1MzI5ZTU1MmM3YTkwMGVi
OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApAQCAtMTM0
NCw2ICsxMzQ0LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAorICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OiB7CisgICAgICAgICAgICBhcHBlbmRVbk9wPEFp
cjo6T29wcywgTW92ZTY0VG9Eb3VibGUsIE1vdmVEb3VibGVUbzY0PihtX3ZhbHVlLT5jaGlsZCgw
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIFN0b3Jl
OiB7CiAgICAgICAgICAgICBWYWx1ZSogdmFsdWVUb1N0b3JlID0gbV92YWx1ZS0+Y2hpbGQoMCk7
CiAgICAgICAgICAgICBpZiAoY2FuQmVJbnRlcm5hbCh2YWx1ZVRvU3RvcmUpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAppbmRleCBkYmY2MWZjYzY5NGJhMWE1OTkwZGJkNDY4
YTA0ZTgxZGJhYmM5Y2ExLi42MmE3MTNlYTQzYjBhYjQyNDhhOTUwOTkxMjk5OGUwYjQ1ZjIxMDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKQEAgLTEzNyw2ICsxMzcsOSBA
QCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bjb2RlIG9wY29kZSkKICAg
ICBjYXNlIFpTaHI6CiAgICAgICAgIG91dC5wcmludCgiWlNociIpOwogICAgICAgICByZXR1cm47
CisgICAgY2FzZSBCaXR3aXNlQ2FzdDoKKyAgICAgICAgb3V0LnByaW50KCJCaXR3aXNlQ2FzdCIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTRXh0ODoKICAgICAgICAgb3V0LnByaW50KCJT
RXh0OCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCmlu
ZGV4IDBkYmJmZTNkNjA4NGQxZjk3ZjY5YWYyNDc0NTUzNDNmZGY3ZDQ0N2UuLjVkYzcwOTdmYjQ3
NDYwZTcyYTUzYjEwNmEwZjk0YTZjMzVjNjU5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5oCkBAIC04Miw2ICs4Miw4IEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgWlNo
ciwgLy8gTG9naWNhbCBTaGlmdC4KIAogICAgIC8vIENhc3RzIGFuZCBzdWNoLgorICAgIC8vIEJp
dHdpc2UgQ2FzdCBvZiBEb3VibGUtPkludDY0IG9yIEludDY0LT5Eb3VibGUKKyAgICBCaXR3aXNl
Q2FzdCwKICAgICAvLyBUYWtlcyBhbmQgcmV0dXJucyBJbnQzMjoKICAgICBTRXh0OCwKICAgICBT
RXh0MTYsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJl
bmd0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAK
aW5kZXggYTQ0MTA0ODhkYmE4ZjQ5YzI1ZDAxZTIyZjUwMmEzZDIzYzI2YzkwNi4uYmU0NGNlNDJm
MTAyNjgzNTI1ZGQ4NjkyMjRkZjY4NmUxYTg0ODM4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApAQCAtNDY0LDYgKzQ2NCwyNCBAQCBwcml2YXRl
OgogCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBCaXR3aXNlQ2FzdChjb25zdGFudCkKKyAgICAgICAgICAg
IC8vIEludG8gdGhpczogYml0d2lzZV9jYXN0PHZhbHVlLT50eXBlKCk+KGNvbnN0YW50KQorICAg
ICAgICAgICAgaWYgKFZhbHVlKiBjb25zdGFudCA9IG1fdmFsdWUtPmNoaWxkKDApLT5iaXR3aXNl
Q2FzdENvbnN0YW50KG1fcHJvYykpIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aE5ld1Zh
bHVlKGNvbnN0YW50KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCaXR3aXNlQ2FzdChCaXR3aXNlQ2FzdCh2YWx1ZSkp
CisgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IHZhbHVlCisgICAgICAgICAgICBpZiAobV92YWx1
ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdHdpc2VDYXN0KSB7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCkp
OworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2Ug
TG9hZDhaOgogICAgICAgICBjYXNlIExvYWQ4UzoKICAgICAgICAgY2FzZSBMb2FkMTZaOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCmluZGV4IDc5Yzk5NjhlZGVhZmE0NGQ1
M2Q4OThiMjI3YjYzYTFiZjc5YmEzYmEuLmMwMmYyM2NmYzUxYTExYmFlNjMwMDg5ZmFiYTc0MDk2
NjE4Mzc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKQEAgLTE3
Miw2ICsxNzIsMTQgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5j
aGlsZCgxKS0+dHlwZSgpID09IEludDMyLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCaXR3aXNlQ2FzdDoKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgIT0gdmFsdWUt
PmNoaWxkKDApLT50eXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUoCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZS0+dHlwZSgpID09IEludDY0ICYmIHZh
bHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IERvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAgfHwg
KHZhbHVlLT50eXBlKCkgPT0gRG91YmxlICYmIHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IElu
dDY0KSwKKyAgICAgICAgICAgICAgICAgICAgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU0V4dDg6CiAgICAgICAgICAgICBjYXNlIFNF
eHQxNjoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAx
LCAoIkF0ICIsICp2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCmluZGV4
IGYxNWU4MmY1ZTIwZGI1NGViMzE5ODllYTYwNmRmOGI5MzFiM2ZkMjIuLjRkZDkwMjdhNjVkN2I2
ZjdhNGI2Y2FjMDZhN2IzMTBlOTU0MTIxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAKQEAgLTE5NCw2ICsxOTQsMTEgQEAgVmFsdWUqIFZhbHVlOjp6U2hyQ29uc3RhbnQoUHJv
Y2VkdXJlJiwgY29uc3QgVmFsdWUqKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitW
YWx1ZSogVmFsdWU6OmJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogVHJpU3RhdGUgVmFsdWU6OmVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqKSBjb25zdAogewogICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwpAQCAtMzIwLDYg
KzMyNSw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgIGNhc2UgU2hsOgog
ICAgIGNhc2UgU1NocjoKICAgICBjYXNlIFpTaHI6CisgICAgY2FzZSBCaXR3aXNlQ2FzdDoKICAg
ICBjYXNlIFNFeHQ4OgogICAgIGNhc2UgU0V4dDE2OgogICAgIGNhc2UgU0V4dDMyOgpAQCAtNTE0
LDYgKzUyMCwxMiBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlKiBm
aXJzdENoaWxkKQogICAgIGNhc2UgRlJvdW5kOgogICAgIGNhc2UgSVRvRDoKICAgICAgICAgcmV0
dXJuIERvdWJsZTsKKyAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBpZiAoZmlyc3RDaGls
ZC0+dHlwZSgpID09IEludDY0KQorICAgICAgICAgICAgcmV0dXJuIERvdWJsZTsKKyAgICAgICAg
aWYgKGZpcnN0Q2hpbGQtPnR5cGUoKSA9PSBEb3VibGUpCisgICAgICAgICAgICByZXR1cm4gSW50
NjQ7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIGNhc2UgTm9wOgogICAgICAg
ICByZXR1cm4gVm9pZDsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgK
aW5kZXggYWE5OWY1ZjEzMzk0YTNjNGJiZDI0ZTcyNWViMWQxMzVjNDQ3NjUwZi4uM2JkOWUyYWM4
ZThkY2FhNDZhMjk4OGE5NTkzMGMyY2IwMzVhNzNkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCkBAIC0xMjcsNiArMTI3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgVmFsdWUqIHNo
bENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7CiAgICAgdmly
dHVhbCBWYWx1ZSogc1NockNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3Q7CiAgICAgdmlydHVhbCBWYWx1ZSogelNockNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0
IFZhbHVlKiBvdGhlcikgY29uc3Q7CisgICAgdmlydHVhbCBWYWx1ZSogYml0d2lzZUNhc3RDb25z
dGFudChQcm9jZWR1cmUmKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIFRyaVN0YXRlIGVxdWFs
Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsKICAgICB2aXJ0dWFsIFRyaVN0YXRl
IG5vdEVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IGNjOTgzODJiZTRl
ZGYxYmQ5OTE1N2M4NDI1YjI0ODZkYjczNGQ3YTMuLjkxMmRkNDY0NGI0MmQ1MGMyZjJhMTJkMTQ3
Mzg2MDUyYWM5ZTRjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJP
cGNvZGUub3Bjb2RlcwpAQCAtMjM3LDkgKzIzNywxMSBAQCBNb3ZlWmVyb1RvRG91YmxlIEQ6Rgog
CiBNb3ZlNjRUb0RvdWJsZSBVOkcsIEQ6RgogICAgIFRtcCwgVG1wCisgICAgQWRkciwgVG1wIGFz
IGxvYWREb3VibGUKIAogTW92ZURvdWJsZVRvNjQgVTpGLCBEOkcKICAgICBUbXAsIFRtcAorICAg
IEFkZHIsIFRtcCBhcyBsb2FkNjQKIAogTG9hZDggVTpHLCBEOkcKICAgICBBZGRyLCBUbXAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKaW5kZXggZThkZTYyMzk0MWFiMjA2NmIxNTQzMTE0
YTY4NWJiY2M2ZTYxMjI3MS4uNWI1NDQ2NzMyZjI3MzdmOTZjY2EyYWYyMDc2MDI4ODNlZTUxNjU5
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKQEAgLTE3MjksNiArMTcyOSwxMTAg
QEAgdm9pZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQzMl90IGEsIHVpbnQzMl90IGIpCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjx1aW50MzJfdD4ocHJvYywgYSkgPT0gKGEgPj4gYikpOwogfQogCit2
b2lkIHRlc3REb3VibGVBcmdUb0ludDY0Qml0d2lzZUNhc3QoZG91YmxlIHZhbHVlKQoreworICAg
IFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOworCisgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZh
bHVlKSkpOworfQorCit2b2lkIHRlc3REb3VibGVJbW1Ub0ludDY0Qml0d2lzZUNhc3QoZG91Ymxl
IHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsK
K30KKwordm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkRvdWJsZShkb3VibGUgdmFsdWUpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CisgICAgVmFsdWUqIGZp
cnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKKyAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKKyAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworCisgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVlKSwgdmFsdWUp
KTsKK30KKwordm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5KGRvdWJsZSB2YWx1
ZSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1l
bW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBWYWx1ZSogY2FzdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91
YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjYXN0KTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOworfQor
Cit2b2lkIHRlc3RJbnQ2NEJBcmdUb0RvdWJsZUJpdHdpc2VDYXN0KGludDY0X3QgdmFsdWUpCit7
CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisKKyAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2YWx1ZSksIGJpdHdpc2VfY2FzdDxkb3VibGU+
KHZhbHVlKSkpOworfQorCit2b2lkIHRlc3RJbnQ2NEJJbW1Ub0RvdWJsZUJpdHdpc2VDYXN0KGlu
dDY0X3QgdmFsdWUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwor
fQorCit2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50NjQoaW50NjRfdCB2YWx1ZSkKK3sKKyAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogZmly
c3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQpOworICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOworICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisKKyAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSwgdmFsdWUp
KTsKK30KKwordm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1vcnkoaW50NjRfdCB2YWx1
ZSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1l
bW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOworICAgIFZhbHVlKiBjYXN0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3Vi
bGUpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhc3QpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZhbHVlKSkpOworfQorCiB2
b2lkIHRlc3RTdG9yZShpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC00NTQ3
LDEyICs0NjUxLDE1IEBAIGRvdWJsZSBuZWdJbmZpbml0eSgpCiAgICAgcmV0dXJuIC1zdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CiB9CiAKLQotc3RydWN0IERvdWJsZU9w
ZXJhbmQgewordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0cnVjdCBPcGVyYW5kIHsKICAgICBj
b25zdCBjaGFyKiBuYW1lOwotICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBUeXBlIHZhbHVlOwogfTsK
IAordHlwZWRlZiBPcGVyYW5kPGRvdWJsZT4gRG91YmxlT3BlcmFuZDsKK3R5cGVkZWYgT3BlcmFu
ZDxpbnQ2NF90PiBJbnQ2NE9wZXJhbmQ7CisKIHN0YXRpYyBjb25zdCBzdGQ6OmFycmF5PERvdWJs
ZU9wZXJhbmQsIDk+JiBkb3VibGVPcGVyYW5kcygpCiB7CiAgICAgc3RhdGljIGNvbnN0IHN0ZDo6
YXJyYXk8RG91YmxlT3BlcmFuZCwgOT4gb3BlcmFuZHMgPSB7ewpAQCAtNDU2OSw2ICs0Njc2LDE0
IEBAIHN0YXRpYyBjb25zdCBzdGQ6OmFycmF5PERvdWJsZU9wZXJhbmQsIDk+JiBkb3VibGVPcGVy
YW5kcygpCiAgICAgcmV0dXJuIG9wZXJhbmRzOwogfTsKIAorc3RhdGljIFZlY3RvcjxJbnQ2NE9w
ZXJhbmQ+IGludDY0T3BlcmFuZHMoKQoreworICAgIFZlY3RvcjxJbnQ2NE9wZXJhbmQ+IG9wZXJh
bmRzOworICAgIGZvciAoRG91YmxlT3BlcmFuZCBkb3VibGVPcGVyYW5kIDogZG91YmxlT3BlcmFu
ZHMoKSkKKyAgICAgICAgb3BlcmFuZHMuYXBwZW5kKHsgZG91YmxlT3BlcmFuZC5uYW1lLCBiaXR3
aXNlX2Nhc3Q8aW50NjRfdD4oZG91YmxlT3BlcmFuZC52YWx1ZSkgfSk7CisgICAgcmV0dXJuIG9w
ZXJhbmRzOworfQorCiAjZGVmaW5lIFJVTih0ZXN0KSBkbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIGlmICghc2hvdWxkUnVuKCN0ZXN0KSkgICAgICAgICAgICAgICAgICBc
CiAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC01
MDUyLDYgKzUxNjcsMTUgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0
ZXN0WlNockFyZ0ltbTMyKDB4ZmZmZmZmZmYsIDEpKTsKICAgICBSVU4odGVzdFpTaHJBcmdJbW0z
MigweGZmZmZmZmZmLCA2MykpOwogCisgICAgUlVOX1VOQVJZKHRlc3REb3VibGVBcmdUb0ludDY0
Qml0d2lzZUNhc3QsIGRvdWJsZU9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0RG91Ymxl
SW1tVG9JbnQ2NEJpdHdpc2VDYXN0LCBkb3VibGVPcGVyYW5kcygpKTsKKyAgICBSVU5fVU5BUlko
dGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUsIGRvdWJsZU9wZXJhbmRzKCkpOworICAgIFJVTl9V
TkFSWSh0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5LCBkb3VibGVPcGVyYW5kcygpKTsK
KyAgICBSVU5fVU5BUlkodGVzdEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QsIGludDY0T3Bl
cmFuZHMoKSk7CisgICAgUlVOX1VOQVJZKHRlc3RJbnQ2NEJJbW1Ub0RvdWJsZUJpdHdpc2VDYXN0
LCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0VHdvQml0d2lzZUNhc3RPbklu
dDY0LCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Qml0d2lzZUNhc3RPbklu
dDY0SW5NZW1vcnksIGludDY0T3BlcmFuZHMoKSk7CisKICAgICBSVU4odGVzdFN0b3JlKDQ0KSk7
CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50KDQ5KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0
YW50UHRyKDQ5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIz
T3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0LmgKaW5kZXgg
YjczNzQzOWE1YTRhNDI3MTAxOWY5ZTdkNTRiYzlhNjE5NDA2ODcwMy4uMTYyNjI1MDRiY2RlZjE2
N2VkNjk3ZjI5NzNjMTVjYjAxNjFhYTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExCM091dHB1dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QjNPdXRwdXQuaApAQCAtMTg5LDcgKzE4OSw3IEBAIHB1YmxpYzoKICAgICBMVmFsdWUgZnBDYXN0
KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyBDUkFTSCgpOyB9CiAgICAgTFZhbHVlIGludFRv
UHRyKExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyBDUkFTSCgpOyB9CiAgICAgTFZhbHVlIHB0
clRvSW50KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyBDUkFTSCgpOyB9Ci0gICAgTFZhbHVl
IGJpdENhc3QoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IENSQVNIKCk7IH0KKyAgICBMVmFs
dWUgYml0Q2FzdChMVmFsdWUsIExUeXBlKTsKIAogICAgIExWYWx1ZSBmcm91bmQoTFZhbHVlIGRv
dWJsZVZhbHVlKSB7IENSQVNIKCk7IH0KIApAQCAtNDEyLDYgKzQxMiwxMSBAQCBpbmxpbmUgdm9p
ZCBPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxvY2sgdmFs
dWUsIFBhcmFtcy4uLgogICAgIGFkZEluY29taW5nVG9QaGkocGhpLCB0aGVSZXN0Li4uKTsKIH0K
IAoraW5saW5lIExWYWx1ZSBPdXRwdXQ6OmJpdENhc3QoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBl
KQoreworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBpbnQ2NCB8fCB0eXBlID09IGRv
dWJsZVR5cGUpOworICAgIHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3By
b2MsIEIzOjpCaXR3aXNlQ2FzdCwgb3JpZ2luKCksIHZhbHVlKTsKK30KIAogI2lmIENPTVBJTEVS
KENMQU5HKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265846</attachid>
            <date>2015-11-18 21:56:01 -0800</date>
            <delta_ts>2015-11-19 00:38:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151432-20151118215549.patch</filename>
            <type>text/plain</type>
            <size>18357</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NmE1YWMyMGE3OGFiMjgwYzEzZjkyMmFjMjcyYWZhNzkwZWM2NTNjLi4zYjJmNTZmZDAzNzE3NGRi
ZGU2OWUwYmU3NzM2MDIwNGUxNzUwNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNS0xMS0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KIAorICAgICAgICBbSlNDXSBBZGQgYml0d2lzZSBEb3VibGUtSW50IGNvbnZlcnNpb24g
dG8gQjMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgaXMgbmVlZGVkIGZvciBib3hpbmcvdW5ib3hpbmcgZG91Ymxlcy4KKworICAgICAgICAqIGIz
L0IzQ29uc3Q2NFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6Yml0
d2lzZUNhc3RDb25zdGFudCk6CisgICAgICAgICogYjMvQjNDb25zdDY0VmFsdWUuaDoKKyAgICAg
ICAgKiBiMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3RE
b3VibGVWYWx1ZTo6Yml0d2lzZUNhc3RDb25zdGFudCk6CisgICAgICAgICogYjMvQjNDb25zdERv
dWJsZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bG93ZXIpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmNw
cDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvQjNPcGNvZGUu
aDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1Zh
bGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OlZhbHVlOjpiaXR3aXNlQ2FzdENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpl
ZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBi
My9CM1ZhbHVlLmg6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAg
ICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlQXJnVG9JbnQ2
NEJpdHdpc2VDYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVJbW1Ub0ludDY0Qml0
d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0SW50NjRCSW1tVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjppbnQ2
NE9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6QjM6OnJ1bik6CisgICAgICAgICogZnRsL0ZUTEIz
T3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpiaXRDYXN0KToKKworMjAxNS0x
MS0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKwogICAgICAgICBb
SlNDXSBBZGQgc29tZSBtaXNzaW5nIGxvYWQvc3RvcmUgdG8gRlRMQjNPdXRwdXQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQyNwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcAppbmRleCA2NjM1NzBlYjBkZDRh
NTNhY2ExNzAwNTk3YzRjOWZhZjgwNmYzYmExLi45ZTA0M2VlYjBhZTA4MTdkOGM4ZjA3NTlmNjg4
ZjgxZjA2NzAyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25z
dDY0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1
ZS5jcHAKQEAgLTE1NCw2ICsxNTQsMTEgQEAgVmFsdWUqIENvbnN0NjRWYWx1ZTo6elNockNvbnN0
YW50KFByb2NlZHVyZSYgcHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogICAgIHJldHVy
biBwcm9jLmFkZDxDb25zdDY0VmFsdWU+KG9yaWdpbigpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGF0aWNfY2FzdDx1aW50NjRfdD4obV92YWx1ZSkgPj4gKG90aGVyLT5hc0ludDMyKCkgJiA2Mykp
KTsKIH0KIAorVmFsdWUqIENvbnN0NjRWYWx1ZTo6Yml0d2lzZUNhc3RDb25zdGFudChQcm9jZWR1
cmUmIHByb2MpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RG91YmxlVmFsdWU+
KG9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPihtX3ZhbHVlKSk7Cit9CisKIFRyaVN0YXRl
IENvbnN0NjRWYWx1ZTo6ZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7
CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29uc3Q2NFZhbHVlLmgKaW5kZXggYjZlOTM0MjliODM4YjYwYTI1YmZmYTlkZjZjMmQyMjNmNThk
N2QzNC4uODFmMDhmZDFiNzgxMzgxMjBhNDRmNGU1MWRiZjIzNDEyY2Q5YWZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVi
bGljOgogICAgIFZhbHVlKiBzaGxDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZhbHVlKiBzU2hyQ29uc3RhbnQoUHJvY2VkdXJlJiwg
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogelNockNvbnN0
YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
VmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgVHJpU3RhdGUgbm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29uc3REb3VibGVWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERv
dWJsZVZhbHVlLmNwcAppbmRleCA5MzMwYTM5NWQ3YWI3MmZiNDM5MjQ2MWI0MDQ4NzlhOWY5ZjA3
MmI5Li4zMTNjODUyMDlkZDdmMjNmZDk3OGQ3ZGI2NzQ4ZjUyNWMwNmVlYWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcApAQCAtNjgsNiAr
NjgsMTEgQEAgVmFsdWUqIENvbnN0RG91YmxlVmFsdWU6Om11bENvbnN0YW50KFByb2NlZHVyZSYg
cHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogICAgIHJldHVybiBwcm9jLmFkZDxDb25z
dERvdWJsZVZhbHVlPihvcmlnaW4oKSwgbV92YWx1ZSAqIG90aGVyLT5hc0RvdWJsZSgpKTsKIH0K
IAorVmFsdWUqIENvbnN0RG91YmxlVmFsdWU6OmJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJl
JiBwcm9jKSBjb25zdAoreworICAgIHJldHVybiBwcm9jLmFkZDxDb25zdDY0VmFsdWU+KG9yaWdp
bigpLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4obV92YWx1ZSkpOworfQorCiBWYWx1ZSogQ29uc3RE
b3VibGVWYWx1ZTo6ZGl2Q29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFvdGhlci0+aGFzRG91YmxlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgKaW5kZXggOTg2N2Y4NGM2OTgzOGZh
ZWVlYjJkMmIyM2U4Yzk1YzQ0NmFmZWRiNy4uMGEzZDIyOGZiNzE5ZTU3NDNiMmJlYWM4Zjk5NzAy
MjEwNzU3MjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RE
b3VibGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91Ymxl
VmFsdWUuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgVmFsdWUqIHN1YkNvbnN0YW50
KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmFs
dWUqIGRpdkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgVmFsdWUqIG11bENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJv
Y2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVHJpU3RhdGUgbm90RXF1YWxD
b25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCAxNjRkNzY2YTQ2ODg2ZmJlMTU5NDFl
ZTg1ZTQ0NjdiODI0MjY2ZmNiLi4zZTg3M2VlMmQ1MDc4MmRhZWU4MDQ1MzI5ZTU1MmM3YTkwMGVi
OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApAQCAtMTM0
NCw2ICsxMzQ0LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAorICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OiB7CisgICAgICAgICAgICBhcHBlbmRVbk9wPEFp
cjo6T29wcywgTW92ZTY0VG9Eb3VibGUsIE1vdmVEb3VibGVUbzY0PihtX3ZhbHVlLT5jaGlsZCgw
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIFN0b3Jl
OiB7CiAgICAgICAgICAgICBWYWx1ZSogdmFsdWVUb1N0b3JlID0gbV92YWx1ZS0+Y2hpbGQoMCk7
CiAgICAgICAgICAgICBpZiAoY2FuQmVJbnRlcm5hbCh2YWx1ZVRvU3RvcmUpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAppbmRleCBkYmY2MWZjYzY5NGJhMWE1OTkwZGJkNDY4
YTA0ZTgxZGJhYmM5Y2ExLi42MmE3MTNlYTQzYjBhYjQyNDhhOTUwOTkxMjk5OGUwYjQ1ZjIxMDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKQEAgLTEzNyw2ICsxMzcsOSBA
QCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bjb2RlIG9wY29kZSkKICAg
ICBjYXNlIFpTaHI6CiAgICAgICAgIG91dC5wcmludCgiWlNociIpOwogICAgICAgICByZXR1cm47
CisgICAgY2FzZSBCaXR3aXNlQ2FzdDoKKyAgICAgICAgb3V0LnByaW50KCJCaXR3aXNlQ2FzdCIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTRXh0ODoKICAgICAgICAgb3V0LnByaW50KCJT
RXh0OCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCmlu
ZGV4IDBkYmJmZTNkNjA4NGQxZjk3ZjY5YWYyNDc0NTUzNDNmZGY3ZDQ0N2UuLjVkYzcwOTdmYjQ3
NDYwZTcyYTUzYjEwNmEwZjk0YTZjMzVjNjU5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5oCkBAIC04Miw2ICs4Miw4IEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgWlNo
ciwgLy8gTG9naWNhbCBTaGlmdC4KIAogICAgIC8vIENhc3RzIGFuZCBzdWNoLgorICAgIC8vIEJp
dHdpc2UgQ2FzdCBvZiBEb3VibGUtPkludDY0IG9yIEludDY0LT5Eb3VibGUKKyAgICBCaXR3aXNl
Q2FzdCwKICAgICAvLyBUYWtlcyBhbmQgcmV0dXJucyBJbnQzMjoKICAgICBTRXh0OCwKICAgICBT
RXh0MTYsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJl
bmd0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAK
aW5kZXggYTQ0MTA0ODhkYmE4ZjQ5YzI1ZDAxZTIyZjUwMmEzZDIzYzI2YzkwNi4uYmU0NGNlNDJm
MTAyNjgzNTI1ZGQ4NjkyMjRkZjY4NmUxYTg0ODM4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApAQCAtNDY0LDYgKzQ2NCwyNCBAQCBwcml2YXRl
OgogCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBCaXR3aXNlQ2FzdChjb25zdGFudCkKKyAgICAgICAgICAg
IC8vIEludG8gdGhpczogYml0d2lzZV9jYXN0PHZhbHVlLT50eXBlKCk+KGNvbnN0YW50KQorICAg
ICAgICAgICAgaWYgKFZhbHVlKiBjb25zdGFudCA9IG1fdmFsdWUtPmNoaWxkKDApLT5iaXR3aXNl
Q2FzdENvbnN0YW50KG1fcHJvYykpIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aE5ld1Zh
bHVlKGNvbnN0YW50KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCaXR3aXNlQ2FzdChCaXR3aXNlQ2FzdCh2YWx1ZSkp
CisgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IHZhbHVlCisgICAgICAgICAgICBpZiAobV92YWx1
ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdHdpc2VDYXN0KSB7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCkp
OworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2Ug
TG9hZDhaOgogICAgICAgICBjYXNlIExvYWQ4UzoKICAgICAgICAgY2FzZSBMb2FkMTZaOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCmluZGV4IDc5Yzk5NjhlZGVhZmE0NGQ1
M2Q4OThiMjI3YjYzYTFiZjc5YmEzYmEuLmMwMmYyM2NmYzUxYTExYmFlNjMwMDg5ZmFiYTc0MDk2
NjE4Mzc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKQEAgLTE3
Miw2ICsxNzIsMTQgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5j
aGlsZCgxKS0+dHlwZSgpID09IEludDMyLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCaXR3aXNlQ2FzdDoKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgIT0gdmFsdWUt
PmNoaWxkKDApLT50eXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUoCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZS0+dHlwZSgpID09IEludDY0ICYmIHZh
bHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IERvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAgfHwg
KHZhbHVlLT50eXBlKCkgPT0gRG91YmxlICYmIHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IElu
dDY0KSwKKyAgICAgICAgICAgICAgICAgICAgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU0V4dDg6CiAgICAgICAgICAgICBjYXNlIFNF
eHQxNjoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAx
LCAoIkF0ICIsICp2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCmluZGV4
IGYxNWU4MmY1ZTIwZGI1NGViMzE5ODllYTYwNmRmOGI5MzFiM2ZkMjIuLjE2M2Y2YjA3OWZhN2U3
MjY5YmY0Mjg2MjM4NWZkNDNhZDc3Y2I4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAKQEAgLTE5NCw2ICsxOTQsMTEgQEAgVmFsdWUqIFZhbHVlOjp6U2hyQ29uc3RhbnQoUHJv
Y2VkdXJlJiwgY29uc3QgVmFsdWUqKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitW
YWx1ZSogVmFsdWU6OmJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogVHJpU3RhdGUgVmFsdWU6OmVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqKSBjb25zdAogewogICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwpAQCAtMzIwLDYg
KzMyNSw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgIGNhc2UgU2hsOgog
ICAgIGNhc2UgU1NocjoKICAgICBjYXNlIFpTaHI6CisgICAgY2FzZSBCaXR3aXNlQ2FzdDoKICAg
ICBjYXNlIFNFeHQ4OgogICAgIGNhc2UgU0V4dDE2OgogICAgIGNhc2UgU0V4dDMyOgpAQCAtNTE0
LDYgKzUyMCwxMyBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlKiBm
aXJzdENoaWxkKQogICAgIGNhc2UgRlJvdW5kOgogICAgIGNhc2UgSVRvRDoKICAgICAgICAgcmV0
dXJuIERvdWJsZTsKKyAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBpZiAoZmlyc3RDaGls
ZC0+dHlwZSgpID09IEludDY0KQorICAgICAgICAgICAgcmV0dXJuIERvdWJsZTsKKyAgICAgICAg
aWYgKGZpcnN0Q2hpbGQtPnR5cGUoKSA9PSBEb3VibGUpCisgICAgICAgICAgICByZXR1cm4gSW50
NjQ7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gVm9pZDsK
ICAgICBjYXNlIE5vcDoKICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgZGVmYXVsdDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5oCmluZGV4IGFhOTlmNWYxMzM5NGEzYzRiYmQyNGU3MjVlYjFk
MTM1YzQ0NzY1MGYuLjNiZDllMmFjOGU4ZGNhYTQ2YTI5ODhhOTU5MzBjMmNiMDM1YTczZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaApAQCAtMTI3LDYgKzEyNyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFZhbHVlKiBzaGxDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUqIHNTaHJDb25zdGFudChQcm9jZWR1cmUm
LCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUqIHpTaHJDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OworICAgIHZpcnR1YWwg
VmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Q7CiAgICAgCiAgICAg
dmlydHVhbCBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7
CiAgICAgdmlydHVhbCBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcwppbmRleCBjYzk4MzgyYmU0ZWRmMWJkOTkxNTdjODQyNWIyNDg2ZGI3MzRkN2EzLi45MTJk
ZDQ2NDRiNDJkNTBjMmYyYTEyZDE0NzM4NjA1MmFjOWU0YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTIzNyw5ICsyMzcsMTEgQEAg
TW92ZVplcm9Ub0RvdWJsZSBEOkYKIAogTW92ZTY0VG9Eb3VibGUgVTpHLCBEOkYKICAgICBUbXAs
IFRtcAorICAgIEFkZHIsIFRtcCBhcyBsb2FkRG91YmxlCiAKIE1vdmVEb3VibGVUbzY0IFU6Riwg
RDpHCiAgICAgVG1wLCBUbXAKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDY0CiAKIExvYWQ4IFU6Rywg
RDpHCiAgICAgQWRkciwgVG1wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGU4
ZGU2MjM5NDFhYjIwNjZiMTU0MzExNGE2ODViYmNjNmU2MTIyNzEuLjViNTQ0NjczMmYyNzM3Zjk2
Y2NhMmFmMjA3NjAyODgzZWU1MTY1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3Bw
CkBAIC0xNzI5LDYgKzE3MjksMTEwIEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0zMih1aW50MzJfdCBh
LCB1aW50MzJfdCBiKQogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dWludDMyX3Q+KHByb2MsIGEp
ID09IChhID4+IGIpKTsKIH0KIAordm9pZCB0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0
KGRvdWJsZSB2YWx1ZSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIwKTsKKworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOworCisgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSksIGJp
dHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0RG91YmxlSW1tVG9J
bnQ2NEJpdHdpc2VDYXN0KGRvdWJsZSB2YWx1ZSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFs
dWUpOworCisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CisKKyAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MpLCBiaXR3aXNlX2Nh
c3Q8aW50NjRfdD4odmFsdWUpKSk7Cit9CisKK3ZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25Eb3Vi
bGUoZG91YmxlIHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApOworICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgVmFsdWUqIHNlY29uZCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7Cit9CisKK3ZvaWQgdGVzdEJpdHdpc2VDYXN0T25Eb3Vi
bGVJbk1lbW9yeShkb3VibGUgdmFsdWUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7
CisgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisKKyAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxp
bnQ2NF90Pih2YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNl
Q2FzdChpbnQ2NF90IHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOworCisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CisK
KyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUp
LCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0SW50NjRCSW1t
VG9Eb3VibGVCaXR3aXNlQ2FzdChpbnQ2NF90IHZhbHVlKQoreworICAgIFByb2NlZHVyZSBwcm9j
OworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZh
bHVlKTsKKworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOworCisgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBiaXR3aXNlX2Nh
c3Q8ZG91YmxlPih2YWx1ZSkpKTsKK30KKwordm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0
KGludDY0X3QgdmFsdWUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisgICAgVmFsdWUqIGZpcnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICBWYWx1ZSogc2Vjb25kID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsK
KyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzZWNvbmQpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7Cit9CisKK3ZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2
NEluTWVtb3J5KGludDY0X3QgdmFsdWUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsK
KyAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKworICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZG91
YmxlPih2YWx1ZSkpKTsKK30KKwogdm9pZCB0ZXN0U3RvcmUoaW50IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwpAQCAtNDU0NywxMiArNDY1MSwxNSBAQCBkb3VibGUgbmVnSW5maW5pdHko
KQogICAgIHJldHVybiAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwog
fQogCi0KLXN0cnVjdCBEb3VibGVPcGVyYW5kIHsKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Citz
dHJ1Y3QgT3BlcmFuZCB7CiAgICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBkb3VibGUgdmFsdWU7
CisgICAgVHlwZSB2YWx1ZTsKIH07CiAKK3R5cGVkZWYgT3BlcmFuZDxkb3VibGU+IERvdWJsZU9w
ZXJhbmQ7Cit0eXBlZGVmIE9wZXJhbmQ8aW50NjRfdD4gSW50NjRPcGVyYW5kOworCiBzdGF0aWMg
Y29uc3Qgc3RkOjphcnJheTxEb3VibGVPcGVyYW5kLCA5PiYgZG91YmxlT3BlcmFuZHMoKQogewog
ICAgIHN0YXRpYyBjb25zdCBzdGQ6OmFycmF5PERvdWJsZU9wZXJhbmQsIDk+IG9wZXJhbmRzID0g
e3sKQEAgLTQ1NjksNiArNDY3NiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxEb3VibGVP
cGVyYW5kLCA5PiYgZG91YmxlT3BlcmFuZHMoKQogICAgIHJldHVybiBvcGVyYW5kczsKIH07CiAK
K3N0YXRpYyBWZWN0b3I8SW50NjRPcGVyYW5kPiBpbnQ2NE9wZXJhbmRzKCkKK3sKKyAgICBWZWN0
b3I8SW50NjRPcGVyYW5kPiBvcGVyYW5kczsKKyAgICBmb3IgKERvdWJsZU9wZXJhbmQgZG91Ymxl
T3BlcmFuZCA6IGRvdWJsZU9wZXJhbmRzKCkpCisgICAgICAgIG9wZXJhbmRzLmFwcGVuZCh7IGRv
dWJsZU9wZXJhbmQubmFtZSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KGRvdWJsZU9wZXJhbmQudmFs
dWUpIH0pOworICAgIHJldHVybiBvcGVyYW5kczsKK30KKwogI2RlZmluZSBSVU4odGVzdCkgZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBpZiAoIXNob3VsZFJ1bigjdGVz
dCkpICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXApAQCAtNTA1Miw2ICs1MTY3LDE1IEBAIHZvaWQgcnVuKGNvbnN0IGNo
YXIqIGZpbHRlcikKICAgICBSVU4odGVzdFpTaHJBcmdJbW0zMigweGZmZmZmZmZmLCAxKSk7CiAg
ICAgUlVOKHRlc3RaU2hyQXJnSW1tMzIoMHhmZmZmZmZmZiwgNjMpKTsKIAorICAgIFJVTl9VTkFS
WSh0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0LCBkb3VibGVPcGVyYW5kcygpKTsKKyAg
ICBSVU5fVU5BUlkodGVzdERvdWJsZUltbVRvSW50NjRCaXR3aXNlQ2FzdCwgZG91YmxlT3BlcmFu
ZHMoKSk7CisgICAgUlVOX1VOQVJZKHRlc3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlLCBkb3VibGVP
cGVyYW5kcygpKTsKKyAgICBSVU5fVU5BUlkodGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9y
eSwgZG91YmxlT3BlcmFuZHMoKSk7CisgICAgUlVOX1VOQVJZKHRlc3RJbnQ2NEJBcmdUb0RvdWJs
ZUJpdHdpc2VDYXN0LCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0SW50NjRC
SW1tVG9Eb3VibGVCaXR3aXNlQ2FzdCwgaW50NjRPcGVyYW5kcygpKTsKKyAgICBSVU5fVU5BUlko
dGVzdFR3b0JpdHdpc2VDYXN0T25JbnQ2NCwgaW50NjRPcGVyYW5kcygpKTsKKyAgICBSVU5fVU5B
UlkodGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5LCBpbnQ2NE9wZXJhbmRzKCkpOworCiAg
ICAgUlVOKHRlc3RTdG9yZSg0NCkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudCg0OSkpOwog
ICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudFB0cig0OSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExCM091dHB1dC5oCmluZGV4IGI3Mzc0MzlhNWE0YTQyNzEwMTlmOWU3ZDU0YmM5YTYxOTQw
Njg3MDMuLjE2MjYyNTA0YmNkZWYxNjdlZDY5N2YyOTczYzE1Y2IwMTYxYWEwMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0LmgKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJs
aWM6CiAgICAgTFZhbHVlIGZwQ2FzdChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgQ1JBU0go
KTsgfQogICAgIExWYWx1ZSBpbnRUb1B0cihMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgQ1JB
U0goKTsgfQogICAgIExWYWx1ZSBwdHJUb0ludChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsg
Q1JBU0goKTsgfQotICAgIExWYWx1ZSBiaXRDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkg
eyBDUkFTSCgpOyB9CisgICAgTFZhbHVlIGJpdENhc3QoTFZhbHVlLCBMVHlwZSk7CiAKICAgICBM
VmFsdWUgZnJvdW5kKExWYWx1ZSBkb3VibGVWYWx1ZSkgeyBDUkFTSCgpOyB9CiAKQEAgLTQxMiw2
ICs0MTIsMTEgQEAgaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBw
aGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlLCBQYXJhbXMuLi4KICAgICBhZGRJbmNvbWluZ1RvUGhp
KHBoaSwgdGhlUmVzdC4uLik7CiB9CiAKK2lubGluZSBMVmFsdWUgT3V0cHV0OjpiaXRDYXN0KExW
YWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIHR5cGUg
PT0gaW50NjQgfHwgdHlwZSA9PSBkb3VibGVUeXBlKTsKKyAgICByZXR1cm4gbV9ibG9jay0+YXBw
ZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6Qml0d2lzZUNhc3QsIG9yaWdpbigpLCB2YWx1
ZSk7Cit9CiAKICNpZiBDT01QSUxFUihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AK
</data>

          </attachment>
      

    </bug>

</bugzilla>