<?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>156043</bug_id>
          
          <creation_ts>2016-03-30 15:44:25 -0700</creation_ts>
          <short_desc>[JSC][x86] Add the 3 operands forms of floating point addition and multiplication</short_desc>
          <delta_ts>2016-04-18 14:58:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>ggaren</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>1179214</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-30 15:44:25 -0700</bug_when>
    <thetext>[JSC][x86] Add the 3 operands forms of floating point addition and multiplication</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179220</commentid>
    <comment_count>1</comment_count>
      <attachid>275232</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-30 16:02:20 -0700</bug_when>
    <thetext>Created attachment 275232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179244</commentid>
    <comment_count>2</comment_count>
      <attachid>275232</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-30 17:08:48 -0700</bug_when>
    <thetext>Comment on attachment 275232
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179268</commentid>
    <comment_count>3</comment_count>
      <attachid>275246</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-30 17:58:09 -0700</bug_when>
    <thetext>Created attachment 275246
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179292</commentid>
    <comment_count>4</comment_count>
      <attachid>275246</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-30 19:05:11 -0700</bug_when>
    <thetext>Comment on attachment 275246
Patch for landing

Clearing flags on attachment: 275246

Committed r198873: &lt;http://trac.webkit.org/changeset/198873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179293</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-30 19:05:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179434</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-31 09:13:26 -0700</bug_when>
    <thetext>There was an infinite recursion bug in r198873 which was fixed in r198894: &lt;http://trac.webkit.org/r198894&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184828</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-18 14:58:30 -0700</bug_when>
    <thetext>This is 10x regression on some hardware.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275232</attachid>
            <date>2016-03-30 16:02:20 -0700</date>
            <delta_ts>2016-03-30 17:58:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156043-20160330160224.patch</filename>
            <type>text/plain</type>
            <size>38067</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmI5NDc4N2Q5ZGYxNjQ4ZjVkZTg5NzVmNTZkOWE4MGU3ZTEyYmYyLi5iMzE0ZGQ0NzI1OTkwMjgz
MmU3YzAxZTY4NmU4Yjg4MTFiODJjODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MCBAQAorMjAxNi0wMy0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ11beDg2XSBBZGQgdGhlIDMgb3BlcmFuZHMgZm9ybXMgb2Yg
ZmxvYXRpbmcgcG9pbnQgYWRkaXRpb24gYW5kIG11bHRpcGxpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwNDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZXkgYXJlIGF2YWlsYWJs
ZSwgVkFERCBhbmQgVk1VTCBhcmUgYmV0dGVyIG9wdGlvbnMgdG8gbG93ZXIKKyAgICAgICAgZmxv
YXRpbmcgcG9pbnQgYWRkaXRpb24gYW5kIG11bHRpcGxpY2F0aW9uLgorCisgICAgICAgIEluIHRo
ZSBzaW1wbGUgY2FzZXMgd2hlbiBvbmUgb2YgdGhlIG9wZXJhbmRzIGlzIGFsaWFzZWQgdG8gdGhl
IGRlc3RpbmF0aW9uLAorICAgICAgICB0aG9zZSBmb3JtcyBoYXZlIHRoZSBzYW1lIHNpemUgb3Ig
MSBieXRlIHNob3J0ZXIgZGVwZW5kaW5nIG9uIHRoZSByZWdpc3RlcnMuCisKKyAgICAgICAgSW4g
dGhlIG1vcmUgYWR2YW5jZWQgY2FzZXMsIHdlIGdhaW4gYSBuaWNlIGFkdmFudGFnZXMgd2l0aCB0
aGUgbmV3IGZvcm1zOgorICAgICAgICAtV2UgY2FuIGdldCByaWQgb2YgdGhlIE1vdmVEb3VibGUg
aW4gZnJvbnQgdGhlIGluc3RydWN0aW9uIHdoZW4gd2UgY2Fubm90CisgICAgICAgICBhbGlhcy4K
KyAgICAgICAgLVdlIGNhbiBkaXNhYmxlIGFsaWFzaW5nIGVudGlyZWx5IGluIEFpci4gVGhhdCBp
cyB1c2VmdWwgZm9yIGxhdGVuY3kKKyAgICAgICAgIHNpbmNlIGNvbXB1dGluZyBjb2FsZXNjaW5n
IGlzIG5vdCBleGFjdGx5IGNoZWFwLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2Q29tbW9uLmNwcDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFuZDMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om11bDMyKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om9yMzIpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6eG9yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbjo6YnJhbmNoQWRkMzIpOgorICAgICAgICBUaGUgY2hhbmdlIGluIEIzTG93ZXJU
b0FpciBleHBvc2VkIGEgYnVnIGluIHRoZSBmYWtlIDMgb3BlcmFuZHMKKyAgICAgICAgZm9ybXMg
b2YgdGhvc2UgaW5zdHJ1Y3Rpb25zLiBJZiB0aGUgYWRkcmVzcyBpcyBlcXVhbCB0bworICAgICAg
ICB0aGUgZGVzdGluYXRpb24sIHdlIHdlcmUgbnVraW5nIHRoZSBhZGRyZXNzLgorCisgICAgICAg
IEZvciBleGFtcGxlLAorICAgICAgICAgICAgQWRkMzIoWyVyMTFdLCAlZWF4LCAlcjExKQorICAg
ICAgICB3b3VsZCBnZW5lcmF0ZToKKyAgICAgICAgICAgIG1vdmUgJWVheCwgJXIxMQorICAgICAg
ICAgICAgYWRkMzIgWyVyMTFdLCAlcjExCisgICAgICAgIHdoaWNoIGNyYXNoZXMuCisKKyAgICAg
ICAgSSB1cGRhdGVkIGNvZGVnZW4gb2YgdGhvc2UgY2FzZXMgdG8gc3VwcG9ydCB0aGF0IGNhc2Ug
dGhyb3VnaAorICAgICAgICAgICAgbG9hZDMyIFslcjExXSwgJXIxMQorICAgICAgICAgICAgYWRk
MzIgJWVheCwgJXIxMQorCisgICAgICAgIFRoZSB3ZWlyZCBjYXNlIHdlcmUgYWxsIGFyZ3VtZW50
cyBoYXZlIHRoZSBzYW1lIHJlZ2lzdGVycworICAgICAgICBpcyBoYW5kbGVkIHRvby4KKworICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YWRkRG91YmxlKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZEZsb2F0KToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om11bERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjptdWxGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyWDg2Q29tbW9uOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdXBwb3J0c0FWWCk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjp1cGRhdGVFYXgxRWN4RmxhZ3MpOgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlclg4Nl82NDo6YnJhbmNoQWRkNjQpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjp2YWRkc2RfcnIpOgorICAgICAg
ICAoSlNDOjpYODZBc3NlbWJsZXI6OnZhZGRzZF9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2Vt
Ymxlcjo6dmFkZHNzX3JyKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjp2YWRkc3NfbXIp
OgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OnZtdWxzZF9ycik6CisgICAgICAgIChKU0M6
Olg4NkFzc2VtYmxlcjo6dm11bHNkX21yKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjp2
bXVsc3NfcnIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OnZtdWxzc19tcik6CisgICAg
ICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6WDg2SW5zdHJ1Y3Rpb25Gb3JtYXR0ZXI6OlNpbmdsZUlu
c3RydWN0aW9uQnVmZmVyV3JpdGVyOjptZW1vcnlNb2RSTSk6CisgICAgICAgICogYjMvQjNMb3dl
clRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6YXBwZW5kQmlu
T3ApOgorICAgICAgICBBZGQgdGhlIDMgb3BlcmFuZCBmb3JtcyBzbyB0aGF0IHdlIGxvd2VyIEFk
ZCBhbmQgTXVsCisgICAgICAgIHRvIHRoZSBiZXN0IGZvcm0gZGlyZWN0bHkuCisKKyAgICAgICAg
SSB3aWxsIGNoYW5nZSBob3cgd2UgbG93ZXIgdGhlIGZha2UgMyBvcGVyYW5kcyBpbnN0cnVjdGlv
bnMKKyAgICAgICAgYnV0IHRoZSBjb2RlZ2VuIHNob3VsZCBlbmQgdXAgdGhlIHNhbWUgaW4gbW9z
dCBjYXNlcy4KKyAgICAgICAgVGhlIG5ldyBjb2RlZ2VuIGlzIHRoZSBsb2FkMzIgKyBvcCBhYm92
ZS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJbnN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0OjpzaG91bGRUcnlBbGlhc2luZ0RlZik6CisgICAgICAgICogYjMvYWlyL3Rl
c3RhaXIuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjp0ZXN0WDg2Vk1VTFNEKToKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4NlZNVUxTRERlc3RSZXgpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjp0ZXN0WDg2Vk1VTFNET3AxRGVzdFJleCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OnRlc3RYODZWTVVMU0RPcDJEZXN0UmV4KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4
NlZNVUxTRE9wc0Rlc3RSZXgpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjp0ZXN0WDg2Vk1VTFNE
QWRkcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnRlc3RYODZWTVVMU0RBZGRyT3BSZXhBZGRy
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4NlZNVUxTRERlc3RSZXhBZGRyKToKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4NlZNVUxTRFJlZ09wRGVzdFJleEFkZHIpOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjp0ZXN0WDg2Vk1VTFNEQWRkck9wRGVzdFJleEFkZHIpOgorICAg
ICAgICBNYWtlIHN1cmUgd2UgaGF2ZSBzb21lIGNvdmVyYWdlIGZvciBBVlggZW5jb2Rpbmcgb2Yg
aW5zdHJ1Y3Rpb25zLgorCiAyMDE2LTAzLTMwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIEltcGxlbWVudCBTdHJpbmcucHJvdG90eXBlLnJl
cGVhdCBpbiBidWlsdGlucyBKUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAppbmRleCAwY2JmM2E3Nzlk
M2JiN2IyMGZmY2U5NmI2MTRjMGNhZGIzZjllOGY1Li44NzUxMjI1NjJmODQ5ZTZlZjU5MjEyNDM2
MGI3ZDc0NjZlOTFiMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcApAQCAtNTUzLDYgKzU1Myw3
IEBAIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpTU0UyQ2hlY2tTdGF0ZSBNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbjo6c19zc2UyQ2hlY2tTdGF0CiAjZW5kaWYKIAogTWFjcm9Bc3NlbWJsZXJYODZD
b21tb246OkNQVUlEQ2hlY2tTdGF0ZSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2U0XzFD
aGVja1N0YXRlID0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2VkOworTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OkNQVUlEQ2hlY2tTdGF0ZSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19hdnhD
aGVja1N0YXRlID0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2VkOwogTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OkNQVUlEQ2hlY2tTdGF0ZSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19semNu
dENoZWNrU3RhdGUgPSBDUFVJRENoZWNrU3RhdGU6Ok5vdENoZWNrZWQ7CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDY4Y2I4MDkzYTBhNTllMzRjYWI1ZjMzMDNh
NjE3Mjc2YThlMDM3ZTkuLjk4NDIxZTRjMWQ1YTFiNzBjOTk5NjUyNzZjMjNkZWMzOTNkYjVmYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTI3MCwxNCArMjcwLDIwIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYW5kMzIoQWRkcmVzcyBvcDEsIFJlZ2lzdGVySUQgb3AyLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtb3ZlMzJJZk5lZWRlZChvcDIsIGRlc3QpOwotICAgICAgICBhbmQz
MihvcDEsIGRlc3QpOworICAgICAgICBpZiAob3AyID09IGRlc3QpCisgICAgICAgICAgICBhbmQz
MihvcDEsIGRlc3QpOworICAgICAgICBlbHNlIGlmIChvcDEuYmFzZSA9PSBkZXN0KSB7CisgICAg
ICAgICAgICBsb2FkMzIob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIGFuZDMyKG9wMiwgZGVzdCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihvcDIsIGRl
c3QpOworICAgICAgICAgICAgYW5kMzIob3AxLCBkZXN0KTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIHZvaWQgYW5kMzIoUmVnaXN0ZXJJRCBvcDEsIEFkZHJlc3Mgb3AyLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBtb3ZlMzJJZk5lZWRlZChvcDEsIGRlc3QpOwotICAgICAgICBh
bmQzMihvcDIsIGRlc3QpOworICAgICAgICBhbmQzMihvcDIsIG9wMSwgZGVzdCk7CiAgICAgfQog
CiAgICAgdm9pZCBhbmQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0
ZXJJRCBkZXN0KQpAQCAtMzYwLDE2ICszNjYsMjIgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2Vt
Ymxlci5pbXVsbF9tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVzdCk7CiAgICAgfQogCi0gICAg
dm9pZCBtdWwzMihBZGRyZXNzIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgbXVsMzIoQWRkcmVzcyBvcDEsIFJlZ2lzdGVySUQgb3AyLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlMzJJZk5lZWRlZChzcmMyLCBkZXN0KTsKLSAgICAg
ICAgbXVsMzIoc3JjMSwgZGVzdCk7CisgICAgICAgIGlmIChvcDIgPT0gZGVzdCkKKyAgICAgICAg
ICAgIG11bDMyKG9wMSwgZGVzdCk7CisgICAgICAgIGVsc2UgaWYgKG9wMS5iYXNlID09IGRlc3Qp
IHsKKyAgICAgICAgICAgIGxvYWQzMihvcDEsIGRlc3QpOworICAgICAgICAgICAgbXVsMzIob3Ay
LCBkZXN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHplcm9FeHRlbmQzMlRvUHRy
KG9wMiwgZGVzdCk7CisgICAgICAgICAgICBtdWwzMihvcDEsIGRlc3QpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgdm9pZCBtdWwzMihSZWdpc3RlcklEIHNyYzEsIEFkZHJlc3Mgc3JjMiwgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbW92ZTMySWZOZWVkZWQoc3JjMSwgZGVzdCk7
Ci0gICAgICAgIG11bDMyKHNyYzIsIGRlc3QpOworICAgICAgICBtdWwzMihzcmMyLCBzcmMxLCBk
ZXN0KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBtdWwzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdp
c3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtNDUwLDE0ICs0NjIsMjAgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBvcjMyKEFkZHJlc3Mgb3AxLCBSZWdpc3RlcklEIG9wMiwgUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKLSAgICAgICAgbW92ZTMySWZOZWVkZWQob3AyLCBkZXN0KTsKLSAgICAg
ICAgb3IzMihvcDEsIGRlc3QpOworICAgICAgICBpZiAob3AyID09IGRlc3QpCisgICAgICAgICAg
ICBvcjMyKG9wMSwgZGVzdCk7CisgICAgICAgIGVsc2UgaWYgKG9wMS5iYXNlID09IGRlc3QpIHsK
KyAgICAgICAgICAgIGxvYWQzMihvcDEsIGRlc3QpOworICAgICAgICAgICAgb3IzMihvcDIsIGRl
c3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgemVyb0V4dGVuZDMyVG9QdHIob3Ay
LCBkZXN0KTsKKyAgICAgICAgICAgIG9yMzIob3AxLCBkZXN0KTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIHZvaWQgb3IzMihSZWdpc3RlcklEIG9wMSwgQWRkcmVzcyBvcDIsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUzMklmTmVlZGVkKG9wMSwgZGVzdCk7Ci0gICAgICAg
IG9yMzIob3AyLCBkZXN0KTsKKyAgICAgICAgb3IzMihvcDIsIG9wMSwgZGVzdCk7CiAgICAgfQog
CiAgICAgdm9pZCBvcjMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3Rl
cklEIGRlc3QpCkBAIC02MDksMTQgKzYyNywyMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHhvcjMy
KEFkZHJlc3Mgb3AxLCBSZWdpc3RlcklEIG9wMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAg
ICAgICAgbW92ZTMySWZOZWVkZWQob3AyLCBkZXN0KTsKLSAgICAgICAgeG9yMzIob3AxLCBkZXN0
KTsKKyAgICAgICAgaWYgKG9wMiA9PSBkZXN0KQorICAgICAgICAgICAgeG9yMzIob3AxLCBkZXN0
KTsKKyAgICAgICAgZWxzZSBpZiAob3AxLmJhc2UgPT0gZGVzdCkgeworICAgICAgICAgICAgbG9h
ZDMyKG9wMSwgZGVzdCk7CisgICAgICAgICAgICB4b3IzMihvcDIsIGRlc3QpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgemVyb0V4dGVuZDMyVG9QdHIob3AyLCBkZXN0KTsKKyAgICAg
ICAgICAgIHhvcjMyKG9wMSwgZGVzdCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIHhv
cjMyKFJlZ2lzdGVySUQgb3AxLCBBZGRyZXNzIG9wMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsK
LSAgICAgICAgbW92ZTMySWZOZWVkZWQob3AxLCBkZXN0KTsKLSAgICAgICAgeG9yMzIob3AyLCBk
ZXN0KTsKKyAgICAgICAgeG9yMzIob3AyLCBvcDEsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQg
eG9yMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkK
QEAgLTEwNjYsOTYgKzEwOTAsOTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGREb3VibGUoRlBS
ZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQo
aXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkc2RfcnIoc3JjLCBkZXN0
KTsKKyAgICAgICAgYWRkRG91YmxlKHNyYywgZGVzdCwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9p
ZCBhZGREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAg
ICAgaWYgKG9wMSA9PSBkZXN0KQotICAgICAgICAgICAgYWRkRG91YmxlKG9wMiwgZGVzdCk7Cisg
ICAgICAgIGlmIChzdXBwb3J0c0FWWCgpKQorICAgICAgICAgICAgbV9hc3NlbWJsZXIudmFkZHNk
X3JyKG9wMSwgb3AyLCBkZXN0KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtb3ZlRG91
YmxlKG9wMiwgZGVzdCk7Ci0gICAgICAgICAgICBhZGREb3VibGUob3AxLCBkZXN0KTsKKyAgICAg
ICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOworICAgICAgICAgICAgaWYgKG9wMSA9PSBk
ZXN0KQorICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHNkX3JyKG9wMiwgZGVzdCk7Cisg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtb3ZlRG91YmxlKG9wMiwgZGVzdCk7
CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkc2RfcnIob3AxLCBkZXN0KTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgYWRkRG91YmxlKEFkZHJlc3Mg
c3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVz
ZW50KCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5hZGRzZF9tcihzcmMub2Zmc2V0LCBzcmMuYmFz
ZSwgZGVzdCk7CisgICAgICAgIGFkZERvdWJsZShzcmMsIGRlc3QsIGRlc3QpOwogICAgIH0KIAog
ICAgIHZvaWQgYWRkRG91YmxlKEFkZHJlc3Mgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAg
ICAgICBpZiAob3AyID09IGRlc3QpIHsKLSAgICAgICAgICAgIGFkZERvdWJsZShvcDEsIGRlc3Qp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlmIChzdXBwb3J0c0FW
WCgpKQorICAgICAgICAgICAgbV9hc3NlbWJsZXIudmFkZHNkX21yKG9wMS5vZmZzZXQsIG9wMS5i
YXNlLCBvcDIsIGRlc3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1NT
RTJQcmVzZW50KCkpOworICAgICAgICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7CisgICAgICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkc2RfbXIob3AxLm9mZnNldCwgb3AxLmJhc2UsIGRlc3QpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBsb2FkRG91
YmxlKG9wMSwgZGVzdCk7Ci0gICAgICAgIGFkZERvdWJsZShvcDIsIGRlc3QpOworICAgICAgICAg
ICAgbG9hZERvdWJsZShvcDEsIGRlc3QpOworICAgICAgICAgICAgYWRkRG91YmxlKG9wMiwgZGVz
dCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGFkZERvdWJsZShGUFJlZ2lzdGVySUQg
b3AxLCBBZGRyZXNzIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NF
UlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAgaWYgKG9wMSA9PSBkZXN0KSB7Ci0gICAgICAg
ICAgICBhZGREb3VibGUob3AyLCBkZXN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIGxvYWREb3VibGUob3AyLCBkZXN0KTsKLSAgICAgICAgYWRkRG91YmxlKG9w
MSwgZGVzdCk7CisgICAgICAgIGFkZERvdWJsZShvcDIsIG9wMSwgZGVzdCk7CiAgICAgfQogCiAg
ICAgdm9pZCBhZGRGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBtX2Fzc2VtYmxl
ci5hZGRzc19ycihzcmMsIGRlc3QpOworICAgICAgICBhZGRGbG9hdChzcmMsIGRlc3QsIGRlc3Qp
OwogICAgIH0KIAogICAgIHZvaWQgYWRkRmxvYXQoQWRkcmVzcyBzcmMsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIG1f
YXNzZW1ibGVyLmFkZHNzX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBkZXN0KTsKKyAgICAgICAg
YWRkRmxvYXQoc3JjLCBkZXN0LCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIGFkZEZsb2F0KEZQ
UmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIGlmIChvcDEgPT0g
ZGVzdCkKLSAgICAgICAgICAgIGFkZEZsb2F0KG9wMiwgZGVzdCk7CisgICAgICAgIGlmIChzdXBw
b3J0c0FWWCgpKQorICAgICAgICAgICAgbV9hc3NlbWJsZXIudmFkZHNzX3JyKG9wMSwgb3AyLCBk
ZXN0KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtb3ZlRG91YmxlKG9wMiwgZGVzdCk7
Ci0gICAgICAgICAgICBhZGRGbG9hdChvcDEsIGRlc3QpOworICAgICAgICAgICAgQVNTRVJUKGlz
U1NFMlByZXNlbnQoKSk7CisgICAgICAgICAgICBpZiAob3AxID09IGRlc3QpCisgICAgICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkc3NfcnIob3AyLCBkZXN0KTsKKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIG1vdmVEb3VibGUob3AyLCBkZXN0KTsKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGRzc19ycihvcDEsIGRlc3QpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogCiAgICAgdm9pZCBhZGRGbG9hdChBZGRyZXNzIG9wMSwgRlBSZWdpc3RlcklE
IG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJl
c2VudCgpKTsKLSAgICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBhZGRGbG9h
dChvcDEsIGRlc3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGlm
IChzdXBwb3J0c0FWWCgpKQorICAgICAgICAgICAgbV9hc3NlbWJsZXIudmFkZHNzX21yKG9wMS5v
ZmZzZXQsIG9wMS5iYXNlLCBvcDIsIGRlc3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOworICAgICAgICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7
CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkc3NfbXIob3AxLm9mZnNldCwgb3AxLmJh
c2UsIGRlc3QpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAg
ICAgICBsb2FkRmxvYXQob3AxLCBkZXN0KTsKLSAgICAgICAgYWRkRmxvYXQob3AyLCBkZXN0KTsK
KyAgICAgICAgICAgIGxvYWRGbG9hdChvcDEsIGRlc3QpOworICAgICAgICAgICAgYWRkRmxvYXQo
b3AyLCBkZXN0KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgYWRkRmxvYXQoRlBSZWdp
c3RlcklEIG9wMSwgQWRkcmVzcyBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIGlmIChvcDEgPT0gZGVzdCkgewot
ICAgICAgICAgICAgYWRkRmxvYXQob3AyLCBkZXN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotCi0gICAgICAgIGxvYWRGbG9hdChvcDIsIGRlc3QpOwotICAgICAgICBhZGRGbG9h
dChvcDEsIGRlc3QpOworICAgICAgICBhZGRGbG9hdChvcDEsIG9wMiwgZGVzdCk7CiAgICAgfQog
CiAgICAgdm9pZCBkaXZEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CkBAIC0xMjI2LDkyICsxMjQ4LDkyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbXVsRG91YmxlKEZQ
UmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm11bHNkX3JyKHNyYywgZGVz
dCk7CisgICAgICAgIG11bERvdWJsZShzcmMsIGRlc3QsIGRlc3QpOwogICAgIH0KIAogICAgIHZv
aWQgbXVsRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAg
ICAgIGlmIChvcDEgPT0gZGVzdCkKLSAgICAgICAgICAgIG11bERvdWJsZShvcDIsIGRlc3QpOwor
ICAgICAgICBpZiAoc3VwcG9ydHNBVlgoKSkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnZtdWxz
ZF9ycihvcDEsIG9wMiwgZGVzdCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgbW92ZURv
dWJsZShvcDIsIGRlc3QpOwotICAgICAgICAgICAgbXVsRG91YmxlKG9wMSwgZGVzdCk7CisgICAg
ICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKKyAgICAgICAgICAgIGlmIChvcDEgPT0g
ZGVzdCkKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tdWxzZF9ycihvcDIsIGRlc3QpOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbW92ZURvdWJsZShvcDIsIGRlc3Qp
OworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm11bHNkX3JyKG9wMSwgZGVzdCk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIG11bERvdWJsZShBZGRyZXNz
IHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJl
c2VudCgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubXVsc2RfbXIoc3JjLm9mZnNldCwgc3JjLmJh
c2UsIGRlc3QpOworICAgICAgICBtdWxEb3VibGUoc3JjLCBkZXN0LCBkZXN0KTsKICAgICB9CiAK
ICAgICB2b2lkIG11bERvdWJsZShBZGRyZXNzIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAg
ICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBtdWxEb3VibGUob3AxLCBkZXN0
KTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHN1cHBvcnRzQVZYKCkpCisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci52bXVsc2RfbXIob3AxLm9mZnNldCwgb3AxLmJhc2UsIG9wMiwg
ZGVzdCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQo
KSk7CisgICAgICAgICAgICBpZiAob3AyID09IGRlc3QpIHsKKyAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5tdWxzZF9tcihvcDEub2Zmc2V0LCBvcDEuYmFzZSwgZGVzdCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9hZERvdWJsZShvcDEs
IGRlc3QpOworICAgICAgICAgICAgbXVsRG91YmxlKG9wMiwgZGVzdCk7CiAgICAgICAgIH0KLSAg
ICAgICAgbG9hZERvdWJsZShvcDEsIGRlc3QpOwotICAgICAgICBtdWxEb3VibGUob3AyLCBkZXN0
KTsKICAgICB9CiAKICAgICB2b2lkIG11bERvdWJsZShGUFJlZ2lzdGVySUQgb3AxLCBBZGRyZXNz
IG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJl
c2VudCgpKTsKLSAgICAgICAgaWYgKG9wMSA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBtdWxEb3Vi
bGUob3AyLCBkZXN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBs
b2FkRG91YmxlKG9wMiwgZGVzdCk7Ci0gICAgICAgIG11bERvdWJsZShvcDEsIGRlc3QpOworICAg
ICAgICByZXR1cm4gbXVsRG91YmxlKG9wMiwgb3AxLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lk
IG11bEZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm11bHNz
X3JyKHNyYywgZGVzdCk7CisgICAgICAgIG11bEZsb2F0KHNyYywgZGVzdCwgZGVzdCk7CiAgICAg
fQogCiAgICAgdm9pZCBtdWxGbG9hdChBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAgbV9hc3NlbWJs
ZXIubXVsc3NfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRlc3QpOworICAgICAgICBtdWxGbG9h
dChzcmMsIGRlc3QsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgbXVsRmxvYXQoRlBSZWdpc3Rl
cklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAg
ICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAgaWYgKG9wMSA9PSBkZXN0KQot
ICAgICAgICAgICAgbXVsRmxvYXQob3AyLCBkZXN0KTsKKyAgICAgICAgaWYgKHN1cHBvcnRzQVZY
KCkpCisgICAgICAgICAgICBtX2Fzc2VtYmxlci52bXVsc3NfcnIob3AxLCBvcDIsIGRlc3QpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1vdmVEb3VibGUob3AyLCBkZXN0KTsKLSAgICAg
ICAgICAgIG11bEZsb2F0KG9wMSwgZGVzdCk7CisgICAgICAgICAgICBBU1NFUlQoaXNTU0UyUHJl
c2VudCgpKTsKKyAgICAgICAgICAgIGlmIChvcDEgPT0gZGVzdCkKKyAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5tdWxzc19ycihvcDIsIGRlc3QpOworICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgbW92ZURvdWJsZShvcDIsIGRlc3QpOworICAgICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLm11bHNzX3JyKG9wMSwgZGVzdCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CiAKICAgICB2b2lkIG11bEZsb2F0KEFkZHJlc3Mgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBG
UFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkp
OwotICAgICAgICBpZiAob3AyID09IGRlc3QpIHsKLSAgICAgICAgICAgIG11bEZsb2F0KG9wMSwg
ZGVzdCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChzdXBwb3J0c0FWWCgpKQor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIudm11bHNzX21yKG9wMS5vZmZzZXQsIG9wMS5iYXNlLCBv
cDIsIGRlc3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1NTRTJQcmVz
ZW50KCkpOworICAgICAgICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7CisgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIubXVsc3NfbXIob3AxLm9mZnNldCwgb3AxLmJhc2UsIGRlc3QpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvYWRGbG9hdChv
cDEsIGRlc3QpOworICAgICAgICAgICAgbXVsRmxvYXQob3AyLCBkZXN0KTsKICAgICAgICAgfQot
ICAgICAgICBsb2FkRmxvYXQob3AxLCBkZXN0KTsKLSAgICAgICAgbXVsRmxvYXQob3AyLCBkZXN0
KTsKICAgICB9CiAKICAgICB2b2lkIG11bEZsb2F0KEZQUmVnaXN0ZXJJRCBvcDEsIEFkZHJlc3Mg
b3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVz
ZW50KCkpOwotICAgICAgICBpZiAob3AxID09IGRlc3QpIHsKLSAgICAgICAgICAgIG11bEZsb2F0
KG9wMiwgZGVzdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbG9h
ZEZsb2F0KG9wMiwgZGVzdCk7Ci0gICAgICAgIG11bEZsb2F0KG9wMSwgZGVzdCk7CisgICAgICAg
IG11bEZsb2F0KG9wMiwgb3AxLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIGFuZERvdWJsZShG
UFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQpAQCAtMjE0MywxNiArMjE2NSwyMSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2hBZGQzMihjb25kLCBzcmMxLCBkZXN0KTsK
ICAgICB9CiAKLSAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBBZGRy
ZXNzIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIEp1bXAgYnJh
bmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIEFkZHJlc3Mgb3AxLCBSZWdpc3RlcklEIG9w
MiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbW92ZTMySWZOZWVkZWQoc3JjMiwg
ZGVzdCk7Ci0gICAgICAgIHJldHVybiBicmFuY2hBZGQzMihjb25kLCBzcmMxLCBkZXN0KTsKKyAg
ICAgICAgaWYgKG9wMiA9PSBkZXN0KQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDMyKGNv
bmQsIG9wMSwgZGVzdCk7CisgICAgICAgIGlmIChvcDEuYmFzZSA9PSBkZXN0KSB7CisgICAgICAg
ICAgICBsb2FkMzIob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hBZGQzMihj
b25kLCBvcDIsIGRlc3QpOworICAgICAgICB9CisgICAgICAgIHplcm9FeHRlbmQzMlRvUHRyKG9w
MiwgZGVzdCk7CisgICAgICAgIHJldHVybiBicmFuY2hBZGQzMihjb25kLCBvcDEsIGRlc3QpOwog
ICAgIH0KIAogICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lz
dGVySUQgc3JjMSwgQWRkcmVzcyBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAg
ICBtb3ZlMzJJZk5lZWRlZChzcmMxLCBkZXN0KTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDMy
KGNvbmQsIHNyYzIsIGRlc3QpOworICAgICAgICByZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwgc3Jj
Miwgc3JjMSwgZGVzdCk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2hBZGQzMihSZXN1bHRDb25k
aXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQg
ZGVzdCkKQEAgLTI0NTIsMzggKzI0NzksNTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKQogICAgIHsKLSAgICAgICAgaWYgKHNfc3Nl
NF8xQ2hlY2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6Ok5vdENoZWNrZWQpIHsKLSAgICAgICAg
ICAgIGludCBmbGFncyA9IDA7CisgICAgICAgIGlmIChzX3NzZTRfMUNoZWNrU3RhdGUgPT0gQ1BV
SURDaGVja1N0YXRlOjpOb3RDaGVja2VkKQorICAgICAgICAgICAgdXBkYXRlRWF4MUVjeEZsYWdz
KCk7CisgICAgICAgIHJldHVybiBzX3NzZTRfMUNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRl
OjpTZXQ7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBVlgoKQorICAgIHsKKyAg
ICAgICAgaWYgKHNfYXZ4Q2hlY2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6Ok5vdENoZWNrZWQp
CisgICAgICAgICAgICB1cGRhdGVFYXgxRWN4RmxhZ3MoKTsKKyAgICAgICAgcmV0dXJuIHNfYXZ4
Q2hlY2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6OlNldDsKKyAgICB9CisKKyAgICBzdGF0aWMg
dm9pZCB1cGRhdGVFYXgxRWN4RmxhZ3MoKQorICAgIHsKKyAgICAgICAgaW50IGZsYWdzID0gMDsK
ICNpZiBDT01QSUxFUihNU1ZDKQotICAgICAgICAgICAgaW50IGNwdUluZm9bNF07Ci0gICAgICAg
ICAgICBfX2NwdWlkKGNwdUluZm8sIDB4MSk7Ci0gICAgICAgICAgICBmbGFncyA9IGNwdUluZm9b
Ml07CisgICAgICAgIGludCBjcHVJbmZvWzRdOworICAgICAgICBfX2NwdWlkKGNwdUluZm8sIDB4
MSk7CisgICAgICAgIGZsYWdzID0gY3B1SW5mb1syXTsKICNlbGlmIENPTVBJTEVSKEdDQ19PUl9D
TEFORykKICNpZiBDUFUoWDg2XzY0KQotICAgICAgICAgICAgYXNtICgKLSAgICAgICAgICAgICAg
ICAibW92bCAkMHgxLCAlJWVheDsiCi0gICAgICAgICAgICAgICAgImNwdWlkOyIKLSAgICAgICAg
ICAgICAgICAibW92bCAlJWVjeCwgJTA7IgotICAgICAgICAgICAgICAgIDogIj1nIiAoZmxhZ3Mp
Ci0gICAgICAgICAgICAgICAgOgotICAgICAgICAgICAgICAgIDogIiVlYXgiLCAiJWVieCIsICIl
ZWN4IiwgIiVlZHgiCi0gICAgICAgICAgICAgICAgKTsKKyAgICAgICAgYXNtICgKKyAgICAgICAg
ICAgICJtb3ZsICQweDEsICUlZWF4OyIKKyAgICAgICAgICAgICJjcHVpZDsiCisgICAgICAgICAg
ICAibW92bCAlJWVjeCwgJTA7IgorICAgICAgICAgICAgOiAiPWciIChmbGFncykKKyAgICAgICAg
ICAgIDoKKyAgICAgICAgICAgIDogIiVlYXgiLCAiJWVieCIsICIlZWN4IiwgIiVlZHgiCisgICAg
ICAgICAgICApOwogI2Vsc2UKLSAgICAgICAgICAgIGFzbSAoCi0gICAgICAgICAgICAgICAgIm1v
dmwgJDB4MSwgJSVlYXg7IgotICAgICAgICAgICAgICAgICJwdXNobCAlJWVieDsiCi0gICAgICAg
ICAgICAgICAgImNwdWlkOyIKLSAgICAgICAgICAgICAgICAicG9wbCAlJWVieDsiCi0gICAgICAg
ICAgICAgICAgIm1vdmwgJSVlY3gsICUwOyIKLSAgICAgICAgICAgICAgICA6ICI9ZyIgKGZsYWdz
KQotICAgICAgICAgICAgICAgIDoKLSAgICAgICAgICAgICAgICA6ICIlZWF4IiwgIiVlY3giLCAi
JWVkeCIKLSAgICAgICAgICAgICAgICApOworICAgICAgICBhc20gKAorICAgICAgICAgICAgIm1v
dmwgJDB4MSwgJSVlYXg7IgorICAgICAgICAgICAgInB1c2hsICUlZWJ4OyIKKyAgICAgICAgICAg
ICJjcHVpZDsiCisgICAgICAgICAgICAicG9wbCAlJWVieDsiCisgICAgICAgICAgICAibW92bCAl
JWVjeCwgJTA7IgorICAgICAgICAgICAgOiAiPWciIChmbGFncykKKyAgICAgICAgICAgIDoKKyAg
ICAgICAgICAgIDogIiVlYXgiLCAiJWVjeCIsICIlZWR4IgorICAgICAgICAgICAgKTsKICNlbmRp
ZgogI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSAgICAgICAgICAgIHNfc3NlNF8x
Q2hlY2tTdGF0ZSA9IChmbGFncyAmICgxIDw8IDE5KSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6
IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHNfc3Nl
NF8xQ2hlY2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6OlNldDsKKyAgICAgICAgc19zc2U0XzFD
aGVja1N0YXRlID0gKGZsYWdzICYgKDEgPDwgMTkpKSA/IENQVUlEQ2hlY2tTdGF0ZTo6U2V0IDog
Q1BVSURDaGVja1N0YXRlOjpDbGVhcjsKKyAgICAgICAgc19hdnhDaGVja1N0YXRlID0gKGZsYWdz
ICYgKDEgPDwgMjgpKSA/IENQVUlEQ2hlY2tTdGF0ZTo6U2V0IDogQ1BVSURDaGVja1N0YXRlOjpD
bGVhcjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKQEAgLTI3MzEsNyArMjc3MCw4
IEBAIHByaXZhdGU6CiAgICAgICAgIENsZWFyLAogICAgICAgICBTZXQKICAgICB9OwotICAgIHN0
YXRpYyBDUFVJRENoZWNrU3RhdGUgc19zc2U0XzFDaGVja1N0YXRlOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUgc19zc2U0XzFDaGVja1N0YXRlOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUgc19hdnhDaGVja1N0YXRlOwog
ICAgIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUgc19semNudENoZWNrU3RhdGU7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKaW5kZXggNzc4M2Q5NDBhYjYyOTVjODYzY2IwMGRhZGFhMGE0YTYzM2VjODIyMS4uZGZk
YmUyM2NhMDY2MDI3MmI2OTVmMmRkY2VkMTUwMDdiYzNmZjBhYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAt
OTIyLDE2ICs5MjIsMjEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYnJhbmNoQWRkNjQoY29u
ZCwgc3JjMSwgZGVzdCk7CiAgICAgfQogCi0gICAgSnVtcCBicmFuY2hBZGQ2NChSZXN1bHRDb25k
aXRpb24gY29uZCwgQWRkcmVzcyBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICBKdW1wIGJyYW5jaEFkZDY0KFJlc3VsdENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIG9w
MSwgUmVnaXN0ZXJJRCBvcDIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUo
c3JjMiwgZGVzdCk7Ci0gICAgICAgIHJldHVybiBicmFuY2hBZGQ2NChjb25kLCBzcmMxLCBkZXN0
KTsKKyAgICAgICAgaWYgKG9wMiA9PSBkZXN0KQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaEFk
ZDY0KGNvbmQsIG9wMSwgZGVzdCk7CisgICAgICAgIGlmIChvcDEuYmFzZSA9PSBkZXN0KSB7Cisg
ICAgICAgICAgICBsb2FkMzIob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hB
ZGQ2NChjb25kLCBvcDIsIGRlc3QpOworICAgICAgICB9CisgICAgICAgIG1vdmUob3AyLCBkZXN0
KTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDY0KGNvbmQsIG9wMSwgZGVzdCk7CiAgICAgfQog
CiAgICAgSnVtcCBicmFuY2hBZGQ2NChSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBz
cmMxLCBBZGRyZXNzIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUo
c3JjMSwgZGVzdCk7Ci0gICAgICAgIHJldHVybiBicmFuY2hBZGQ2NChjb25kLCBzcmMyLCBkZXN0
KTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDY0KGNvbmQsIHNyYzIsIHNyYzEsIGRlc3QpOwog
ICAgIH0KIAogICAgIEp1bXAgYnJhbmNoQWRkNjQoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lz
dGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAppbmRleCA1ZWJmMGE2NTEwZjUzMzUwMTQwNDExNDZmNWI3
NzQzNzdmMDFjN2ZlLi4xZDhjN2E1NmE5MTliNmM1OTI1Y2NiNTY2OTMzNjc1N2NjYzUxODc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKQEAg
LTMwNSw2ICszMDUsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgT1AzX01GRU5DRSAgICAgICAgICAg
PSAweEYwLAogICAgIH0gVGhyZWVCeXRlT3Bjb2RlSUQ7CiAKKyAgICBzdHJ1Y3QgVmV4UHJlZml4
IHsKKyAgICAgICAgZW51bSA6IHVpbnQ4X3QgeworICAgICAgICAgICAgVHdvQnl0ZXMgPSAweEM1
LAorICAgICAgICAgICAgVGhyZWVCeXRlcyA9IDB4QzQKKyAgICAgICAgfTsKKyAgICB9OworICAg
IGVudW0gY2xhc3MgVmV4SW1wbGllZEJ5dGVzIDogdWludDhfdCB7CisgICAgICAgIFR3b0J5dGVz
T3AgPSAxLAorICAgICAgICBUaHJlZUJ5dGVzT3AzOCA9IDIsCisgICAgICAgIFRocmVlQnl0ZXNP
cDNBID0gMworICAgIH07CiAgICAgCiAgICAgVHdvQnl0ZU9wY29kZUlEIGNtb3ZjYyhDb25kaXRp
b24gY29uZCkKICAgICB7CkBAIC0yMDg3LDI0ICsyMDk4LDQ0IEBAIHB1YmxpYzoKICAgICAgICAg
bV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9BRERTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwg
KFJlZ2lzdGVySUQpc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIHZhZGRzZF9ycihYTU1SZWdpc3Rl
cklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAg
ICBtX2Zvcm1hdHRlci52ZXhOZHNMaWdXaWdDb21tdXRhdGl2ZVR3b0J5dGVPcChQUkVfU1NFX0Yy
LCBPUDJfQUREU0RfVnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklEKWEsIChSZWdp
c3RlcklEKWIpOworICAgIH0KKwogICAgIHZvaWQgYWRkc2RfbXIoaW50IG9mZnNldCwgUmVnaXN0
ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVy
LnByZWZpeChQUkVfU1NFX0YyKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9B
RERTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKKyAg
ICB2b2lkIHZhZGRzZF9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFhNTVJlZ2lzdGVy
SUQgYiwgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZXhO
ZHNMaWdXaWdUd29CeXRlT3AoUFJFX1NTRV9GMiwgT1AyX0FERFNEX1ZzZFdzZCwgKFJlZ2lzdGVy
SUQpZHN0LCAoUmVnaXN0ZXJJRCliLCBiYXNlLCBvZmZzZXQpOworICAgIH0KKwogICAgIHZvaWQg
YWRkc3NfcnIoWE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAg
ICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMpOwogICAgICAgICBtX2Zvcm1hdHRl
ci50d29CeXRlT3AoT1AyX0FERFNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJ
RClzcmMpOwogICAgIH0KIAorICAgIHZvaWQgdmFkZHNzX3JyKFhNTVJlZ2lzdGVySUQgYSwgWE1N
UmVnaXN0ZXJJRCBiLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0
dGVyLnZleE5kc0xpZ1dpZ0NvbW11dGF0aXZlVHdvQnl0ZU9wKFBSRV9TU0VfRjMsIE9QMl9BRERT
RF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7
CisgICAgfQorCiAgICAgdm9pZCBhZGRzc19tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2Us
IFhNTVJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBS
RV9TU0VfRjMpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0FERFNEX1ZzZFdz
ZCwgKFJlZ2lzdGVySUQpZHN0LCBiYXNlLCBvZmZzZXQpOwogICAgIH0KIAorICAgIHZvaWQgdmFk
ZHNzX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgWE1NUmVnaXN0ZXJJRCBiLCBYTU1S
ZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnZleE5kc0xpZ1dpZ1R3
b0J5dGVPcChQUkVfU1NFX0YzLCBPUDJfQUREU0RfVnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIChS
ZWdpc3RlcklEKWIsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCiAjaWYgIUNQVShYODZfNjQpCiAg
ICAgdm9pZCBhZGRzZF9tcihjb25zdCB2b2lkKiBhZGRyZXNzLCBYTU1SZWdpc3RlcklEIGRzdCkK
ICAgICB7CkBAIC0yMjk1LDI0ICsyMzI2LDQ0IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0
ZXIudHdvQnl0ZU9wKE9QMl9NVUxTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVy
SUQpc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIHZtdWxzZF9ycihYTU1SZWdpc3RlcklEIGEsIFhN
TVJlZ2lzdGVySUQgYiwgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1h
dHRlci52ZXhOZHNMaWdXaWdDb21tdXRhdGl2ZVR3b0J5dGVPcChQUkVfU1NFX0YyLCBPUDJfTVVM
U0RfVnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklEKWEsIChSZWdpc3RlcklEKWIp
OworICAgIH0KKwogICAgIHZvaWQgbXVsc2RfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNl
LCBYTU1SZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQ
UkVfU1NFX0YyKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9NVUxTRF9Wc2RX
c2QsIChSZWdpc3RlcklEKWRzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKKyAgICB2b2lkIHZt
dWxzZF9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFhNTVJlZ2lzdGVySUQgYiwgWE1N
UmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZXhOZHNMaWdXaWdU
d29CeXRlT3AoUFJFX1NTRV9GMiwgT1AyX01VTFNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAo
UmVnaXN0ZXJJRCliLCBiYXNlLCBvZmZzZXQpOworICAgIH0KKwogICAgIHZvaWQgbXVsc3NfcnIo
WE1NUmVnaXN0ZXJJRCBzcmMsIFhNTVJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9m
b3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRl
T3AoT1AyX01VTFNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRClzcmMpOwog
ICAgIH0KIAorICAgIHZvaWQgdm11bHNzX3JyKFhNTVJlZ2lzdGVySUQgYSwgWE1NUmVnaXN0ZXJJ
RCBiLCBYTU1SZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnZleE5k
c0xpZ1dpZ0NvbW11dGF0aXZlVHdvQnl0ZU9wKFBSRV9TU0VfRjMsIE9QMl9NVUxTRF9Wc2RXc2Qs
IChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgfQor
CiAgICAgdm9pZCBtdWxzc19tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFhNTVJlZ2lz
dGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMp
OwogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX01VTFNEX1ZzZFdzZCwgKFJlZ2lz
dGVySUQpZHN0LCBiYXNlLCBvZmZzZXQpOwogICAgIH0KIAorICAgIHZvaWQgdm11bHNzX21yKGlu
dCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgWE1NUmVnaXN0ZXJJRCBiLCBYTU1SZWdpc3RlcklE
IGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnZleE5kc0xpZ1dpZ1R3b0J5dGVPcChQ
UkVfU1NFX0YzLCBPUDJfTVVMU0RfVnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklE
KWIsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCiAgICAgdm9pZCBwZXh0cndfaXJyKGludCB3aGlj
aFdvcmQsIFhNTVJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAg
IG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKQEAgLTMwNjgsNiArMzExOSw0NiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIHB1dEludFVuY2hlY2tlZChyZWludGVycHJldF9jYXN0
PGludDMyX3Q+KGFkZHJlc3MpKTsKICAgICAgICAgICAgIH0KICNlbmRpZgorICAgICAgICAgICAg
QUxXQVlTX0lOTElORSB2b2lkIHR3b0J5dGVzVmV4KE9uZUJ5dGVPcGNvZGVJRCBzaW1kUHJlZml4
LCBSZWdpc3RlcklEIGluT3BSZWcsIFJlZ2lzdGVySUQgcikKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBwdXRCeXRlVW5jaGVja2VkKFZleFByZWZpeDo6VHdvQnl0ZXMpOworCisgICAg
ICAgICAgICAgICAgdWludDhfdCBzZWNvbmRCeXRlID0gdmV4RW5jb2RlU2ltZFByZWZpeChzaW1k
UHJlZml4KTsKKyAgICAgICAgICAgICAgICBzZWNvbmRCeXRlIHw9ICh+aW5PcFJlZyAmIDB4Zikg
PDwgMzsKKyAgICAgICAgICAgICAgICBzZWNvbmRCeXRlIHw9ICFyZWdSZXF1aXJlc1JleChyKSA8
PCA3OworICAgICAgICAgICAgICAgIHB1dEJ5dGVVbmNoZWNrZWQoc2Vjb25kQnl0ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCB0aHJlZUJ5dGVzVmV4
TmRzKE9uZUJ5dGVPcGNvZGVJRCBzaW1kUHJlZml4LCBWZXhJbXBsaWVkQnl0ZXMgaW1wbGllZEJ5
dGVzLCBSZWdpc3RlcklEIHIsIFJlZ2lzdGVySUQgaW5PcFJlZywgUmVnaXN0ZXJJRCBiKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIHB1dEJ5dGVVbmNoZWNrZWQoVmV4UHJlZml4OjpU
aHJlZUJ5dGVzKTsKKworICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc2Vjb25kQnl0ZSA9IHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KGltcGxpZWRCeXRlcyk7CisgICAgICAgICAgICAgICAgc2Vjb25kQnl0
ZSB8PSAhcmVnUmVxdWlyZXNSZXgocikgPDwgNzsKKyAgICAgICAgICAgICAgICBzZWNvbmRCeXRl
IHw9IDEgPDwgNjsgLy8gUkVYLlgKKyAgICAgICAgICAgICAgICBzZWNvbmRCeXRlIHw9ICFyZWdS
ZXF1aXJlc1JleChiKSA8PCA1OworICAgICAgICAgICAgICAgIHB1dEJ5dGVVbmNoZWNrZWQoc2Vj
b25kQnl0ZSk7CisKKyAgICAgICAgICAgICAgICB1aW50OF90IHRoaXJkQnl0ZSA9IHZleEVuY29k
ZVNpbWRQcmVmaXgoc2ltZFByZWZpeCk7CisgICAgICAgICAgICAgICAgdGhpcmRCeXRlIHw9ICh+
aW5PcFJlZyAmIDB4ZikgPDwgMzsKKyAgICAgICAgICAgICAgICBwdXRCeXRlVW5jaGVja2VkKHRo
aXJkQnl0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICB1
aW50OF90IHZleEVuY29kZVNpbWRQcmVmaXgoT25lQnl0ZU9wY29kZUlEIHNpbWRQcmVmaXgpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChzaW1kUHJlZml4KSB7CisgICAg
ICAgICAgICAgICAgY2FzZSAweDY2OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAg
ICAgICAgICAgICAgICBjYXNlIDB4RjM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOwor
ICAgICAgICAgICAgICAgIGNhc2UgMHhGMjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM7
CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICB9CisKICAgICAgICAgfTsKIAogICAgICAgICAvLyBXb3Jk
LXNpemVkIG9wZXJhbmRzIC8gbm8gb3BlcmFuZCBpbnN0cnVjdGlvbiBmb3JtYXR0ZXJzLgpAQCAt
MzE4OSw2ICszMjgwLDMyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICB3cml0ZXIubWVtb3J5TW9k
Uk0ocmVnLCBhZGRyZXNzKTsKICAgICAgICAgfQogI2VuZGlmCisgICAgICAgIHZvaWQgdmV4TmRz
TGlnV2lnQ29tbXV0YXRpdmVUd29CeXRlT3AoT25lQnl0ZU9wY29kZUlEIHNpbWRQcmVmaXgsIFR3
b0J5dGVPcGNvZGVJRCBvcGNvZGUsIFJlZ2lzdGVySUQgZGVzdCwgUmVnaXN0ZXJJRCBhLCBSZWdp
c3RlcklEIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbmdsZUluc3RydWN0aW9uQnVmZmVy
V3JpdGVyIHdyaXRlcihtX2J1ZmZlcik7CisKKyAgICAgICAgICAgIC8vIFNpbmNlIHRoaXMgaXMg
YSBjb21tdXRhdGl2ZSBvcGVyYXRpb24sIHdlIGNhbiB0cnkgc3dpdGNoaW5nIHRoZSBhcmd1bWVu
dHMuCisgICAgICAgICAgICBpZiAocmVnUmVxdWlyZXNSZXgoYikpCisgICAgICAgICAgICAgICAg
c3RkOjpzd2FwKGEsIGIpOworCisgICAgICAgICAgICBpZiAocmVnUmVxdWlyZXNSZXgoYikpCisg
ICAgICAgICAgICAgICAgd3JpdGVyLnRocmVlQnl0ZXNWZXhOZHMoc2ltZFByZWZpeCwgVmV4SW1w
bGllZEJ5dGVzOjpUd29CeXRlc09wLCBkZXN0LCBhLCBiKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB3cml0ZXIudHdvQnl0ZXNWZXgoc2ltZFByZWZpeCwgYSwgZGVzdCk7Cisg
ICAgICAgICAgICB3cml0ZXIucHV0Qnl0ZVVuY2hlY2tlZChvcGNvZGUpOworICAgICAgICAgICAg
d3JpdGVyLnJlZ2lzdGVyTW9kUk0oZGVzdCwgYik7CisgICAgICAgIH0KKworICAgICAgICB2b2lk
IHZleE5kc0xpZ1dpZ1R3b0J5dGVPcChPbmVCeXRlT3Bjb2RlSUQgc2ltZFByZWZpeCwgVHdvQnl0
ZU9wY29kZUlEIG9wY29kZSwgUmVnaXN0ZXJJRCBkZXN0LCBSZWdpc3RlcklEIGEsIFJlZ2lzdGVy
SUQgYmFzZSwgaW50IG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgU2luZ2xlSW5zdHJ1
Y3Rpb25CdWZmZXJXcml0ZXIgd3JpdGVyKG1fYnVmZmVyKTsKKyAgICAgICAgICAgIGlmIChyZWdS
ZXF1aXJlc1JleChiYXNlKSkKKyAgICAgICAgICAgICAgICB3cml0ZXIudGhyZWVCeXRlc1ZleE5k
cyhzaW1kUHJlZml4LCBWZXhJbXBsaWVkQnl0ZXM6OlR3b0J5dGVzT3AsIGRlc3QsIGEsIGJhc2Up
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHdyaXRlci50d29CeXRlc1ZleChz
aW1kUHJlZml4LCBhLCBkZXN0KTsKKyAgICAgICAgICAgIHdyaXRlci5wdXRCeXRlVW5jaGVja2Vk
KG9wY29kZSk7CisgICAgICAgICAgICB3cml0ZXIubWVtb3J5TW9kUk0oZGVzdCwgYmFzZSwgb2Zm
c2V0KTsKKyAgICAgICAgfQogCiAgICAgICAgIHZvaWQgdGhyZWVCeXRlT3AoVHdvQnl0ZU9wY29k
ZUlEIHR3b0J5dGVQcmVmaXgsIFRocmVlQnl0ZU9wY29kZUlEIG9wY29kZSkKICAgICAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCBhZTI0NzAzNjIy
ZTAxNWU1ZTlmYWUwZGZjYWIwNTk3YjNhNzU1YzNjLi5hNTQ3MmY3ZGQ4MDBkZmY0MWM0OWY1YTg2
Njk2Nzc3ZGQ1NjU4M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlclRvQWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWly
LmNwcApAQCAtNzE1LDggKzcxNSwxMyBAQCBwcml2YXRlOgogICAgICAgICAvLyBvdmVyIHRocmVl
IG9wZXJhbmQgZm9ybXMuCiAKICAgICAgICAgaWYgKGxlZnQgIT0gcmlnaHQpIHsKKyAgICAgICAg
ICAgIEFyZ1Byb21pc2UgbGVmdEFkZHIgPSBsb2FkUHJvbWlzZShsZWZ0KTsKKyAgICAgICAgICAg
IGlmIChpc1ZhbGlkRm9ybShvcGNvZGUsIGxlZnRBZGRyLmtpbmQoKSwgQXJnOjpUbXAsIEFyZzo6
VG1wKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChvcGNvZGUsIGxlZnRBZGRyLmNvbnN1bWUo
KnRoaXMpLCB0bXAocmlnaHQpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKGNvbW11dGF0aXZpdHkgPT0gQ29tbXV0YXRp
dmUpIHsKLSAgICAgICAgICAgICAgICBBcmdQcm9taXNlIGxlZnRBZGRyID0gbG9hZFByb21pc2Uo
bGVmdCk7CiAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKG9wY29kZSwgbGVmdEFkZHIu
a2luZCgpLCBBcmc6OlRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKHJlbGF4ZWRN
b3ZlRm9yVHlwZShtX3ZhbHVlLT50eXBlKCkpLCB0bXAocmlnaHQpLCByZXN1bHQpOwogICAgICAg
ICAgICAgICAgICAgICBhcHBlbmQob3Bjb2RlLCBsZWZ0QWRkci5jb25zdW1lKCp0aGlzKSwgcmVz
dWx0KTsKQEAgLTcyNSw2ICs3MzAsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgQXJnUHJvbWlzZSByaWdodEFkZHIgPSBsb2FkUHJvbWlzZShyaWdodCk7CisgICAg
ICAgICAgICBpZiAoaXNWYWxpZEZvcm0ob3Bjb2RlLCBBcmc6OlRtcCwgcmlnaHRBZGRyLmtpbmQo
KSwgQXJnOjpUbXApKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKG9wY29kZSwgdG1wKGxlZnQp
LCByaWdodEFkZHIuY29uc3VtZSgqdGhpcyksIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKG9wY29kZSwg
cmlnaHRBZGRyLmtpbmQoKSwgQXJnOjpUbXApKSB7CiAgICAgICAgICAgICAgICAgYXBwZW5kKHJl
bGF4ZWRNb3ZlRm9yVHlwZShtX3ZhbHVlLT50eXBlKCkpLCB0bXAobGVmdCksIHJlc3VsdCk7CiAg
ICAgICAgICAgICAgICAgYXBwZW5kKG9wY29kZSwgcmlnaHRBZGRyLmNvbnN1bWUoKnRoaXMpLCBy
ZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5o
CmluZGV4IDk5MGQ5MzBkMDM4N2E0MWRhMzBhNWU0OTFiNzhmZjJiZjkzOWMwZDAuLmU0NGJjZmNk
N2U3NzQzMWZlYzQ1NTNkNzNkM2U4OGE2MWFmNzUyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgKQEAgLTE4MCwxNyArMTgwLDI0IEBAIGlubGlu
ZSBPcHRpb25hbDx1bnNpZ25lZD4gSW5zdDo6c2hvdWxkVHJ5QWxpYXNpbmdEZWYoKQogICAgIGNh
c2UgT3I2NDoKICAgICBjYXNlIFhvcjMyOgogICAgIGNhc2UgWG9yNjQ6Ci0gICAgY2FzZSBBZGRE
b3VibGU6Ci0gICAgY2FzZSBBZGRGbG9hdDoKICAgICBjYXNlIEFuZEZsb2F0OgogICAgIGNhc2Ug
QW5kRG91YmxlOgotICAgIGNhc2UgTXVsRG91YmxlOgotICAgIGNhc2UgTXVsRmxvYXQ6CiAgICAg
Y2FzZSBYb3JEb3VibGU6CiAgICAgY2FzZSBYb3JGbG9hdDoKICAgICAgICAgaWYgKGFyZ3Muc2l6
ZSgpID09IDMpCiAgICAgICAgICAgICByZXR1cm4gMjsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBZGREb3VibGU6CisgICAgY2FzZSBBZGRGbG9hdDoKKyAgICBjYXNlIE11bERvdWJsZToKKyAg
ICBjYXNlIE11bEZsb2F0OgorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgIGlm
IChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNBVlgoKSkKKyAgICAgICAgICAgIHJldHVybiBOdWxs
b3B0OworI2VuZGlmCisgICAgICAgIGlmIChhcmdzLnNpemUoKSA9PSAzKQorICAgICAgICAgICAg
cmV0dXJuIDI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJhbmNoQWRkMzI6CiAgICAgY2Fz
ZSBCcmFuY2hBZGQ2NDoKICAgICAgICAgaWYgKGFyZ3Muc2l6ZSgpID09IDQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAppbmRleCA2NTI0OThmY2RiYTE5Y2Y3ZDJhNTA4
OWRhYmI2ZDRmMGE5YjU4N2YwLi43NzI1NjYyZTM2Mzc4ZWM5MWRjMDM3ZmRlZjk3YmJmYjRmMDhk
ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKQEAgLTE2MzMs
NiArMTYzMywxNTEgQEAgdm9pZCB0ZXN0U2h1ZmZsZVNoaWZ0RG91YmxlKCkKICAgICBDSEVDSyh0
aGluZ3NbM10gPT0gMyk7CiB9CiAKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQordm9pZCB0
ZXN0WDg2Vk1VTFNEKCkKK3sKKyAgICBCMzo6UHJvY2VkdXJlIHByb2M7CisgICAgQ29kZSYgY29k
ZSA9IHByb2MuY29kZSgpOworCisgICAgQmFzaWNCbG9jayogcm9vdCA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICByb290LT5hcHBlbmQoTXVsRG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKSwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMSksIFRtcChGUFJJbmZvOjphcmd1
bWVudEZQUjIpKTsKKyAgICByb290LT5hcHBlbmQoTW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKEZQ
UkluZm86OmFyZ3VtZW50RlBSMiksIFRtcChGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUikpOworICAg
IHJvb3QtPmFwcGVuZChSZXREb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjpyZXR1cm5WYWx1
ZUZQUikpOworCisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDIuNCwgNC4y
LCBwdXJlTmFOKCkpID09IDIuNCAqIDQuMik7Cit9CisKK3ZvaWQgdGVzdFg4NlZNVUxTRERlc3RS
ZXgoKQoreworICAgIEIzOjpQcm9jZWR1cmUgcHJvYzsKKyAgICBDb2RlJiBjb2RlID0gcHJvYy5j
b2RlKCk7CisKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gY29kZS5hZGRCbG9jaygpOworICAgIHJv
b3QtPmFwcGVuZChNdWxEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjAp
LCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIxKSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpKTsK
KyAgICByb290LT5hcHBlbmQoTW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKFg4NlJlZ2lzdGVyczo6
eG1tMTUpLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290LT5hcHBlbmQo
UmV0RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKworICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAyLjQsIDQuMiwgcHVyZU5hTigpKSA9
PSAyLjQgKiA0LjIpOworfQorCit2b2lkIHRlc3RYODZWTVVMU0RPcDFEZXN0UmV4KCkKK3sKKyAg
ICBCMzo6UHJvY2VkdXJlIHByb2M7CisgICAgQ29kZSYgY29kZSA9IHByb2MuY29kZSgpOworCisg
ICAgQmFzaWNCbG9jayogcm9vdCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICByb290LT5hcHBlbmQo
TW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMCksIFRtcChYODZS
ZWdpc3RlcnM6OnhtbTE0KSk7CisgICAgcm9vdC0+YXBwZW5kKE11bERvdWJsZSwgbnVsbHB0ciwg
VG1wKFg4NlJlZ2lzdGVyczo6eG1tMTQpLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIxKSwgVG1w
KFg4NlJlZ2lzdGVyczo6eG1tMTUpKTsKKyAgICByb290LT5hcHBlbmQoTW92ZURvdWJsZSwgbnVs
bHB0ciwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVG
UFIpKTsKKyAgICByb290LT5hcHBlbmQoUmV0RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6
cmV0dXJuVmFsdWVGUFIpKTsKKworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCAyLjQsIDQuMiwgcHVyZU5hTigpKSA9PSAyLjQgKiA0LjIpOworfQorCit2b2lkIHRlc3RYODZW
TVVMU0RPcDJEZXN0UmV4KCkKK3sKKyAgICBCMzo6UHJvY2VkdXJlIHByb2M7CisgICAgQ29kZSYg
Y29kZSA9IHByb2MuY29kZSgpOworCisgICAgQmFzaWNCbG9jayogcm9vdCA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICByb290LT5hcHBlbmQoTW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86
OmFyZ3VtZW50RlBSMSksIFRtcChYODZSZWdpc3RlcnM6OnhtbTE0KSk7CisgICAgcm9vdC0+YXBw
ZW5kKE11bERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMCksIFRtcChY
ODZSZWdpc3RlcnM6OnhtbTE0KSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpKTsKKyAgICByb290
LT5hcHBlbmQoTW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpLCBU
bXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290LT5hcHBlbmQoUmV0RG91Ymxl
LCBudWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKworICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAyLjQsIDQuMiwgcHVyZU5hTigpKSA9PSAyLjQgKiA0
LjIpOworfQorCit2b2lkIHRlc3RYODZWTVVMU0RPcHNEZXN0UmV4KCkKK3sKKyAgICBCMzo6UHJv
Y2VkdXJlIHByb2M7CisgICAgQ29kZSYgY29kZSA9IHByb2MuY29kZSgpOworCisgICAgQmFzaWNC
bG9jayogcm9vdCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICByb290LT5hcHBlbmQoTW92ZURvdWJs
ZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMCksIFRtcChYODZSZWdpc3RlcnM6
OnhtbTE0KSk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJ
bmZvOjphcmd1bWVudEZQUjEpLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xMykpOworICAgIHJvb3Qt
PmFwcGVuZChNdWxEb3VibGUsIG51bGxwdHIsIFRtcChYODZSZWdpc3RlcnM6OnhtbTE0KSwgVG1w
KFg4NlJlZ2lzdGVyczo6eG1tMTMpLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNSkpOworICAgIHJv
b3QtPmFwcGVuZChNb3ZlRG91YmxlLCBudWxscHRyLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNSks
IFRtcChGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUikpOworICAgIHJvb3QtPmFwcGVuZChSZXREb3Vi
bGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUikpOworCisgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDIuNCwgNC4yLCBwdXJlTmFOKCkpID09IDIuNCAq
IDQuMik7Cit9CisKK3ZvaWQgdGVzdFg4NlZNVUxTREFkZHIoKQoreworICAgIEIzOjpQcm9jZWR1
cmUgcHJvYzsKKyAgICBDb2RlJiBjb2RlID0gcHJvYy5jb2RlKCk7CisKKyAgICBCYXNpY0Jsb2Nr
KiByb290ID0gY29kZS5hZGRCbG9jaygpOworICAgIHJvb3QtPmFwcGVuZChNdWxEb3VibGUsIG51
bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjApLCBBcmc6OmFkZHIoVG1wKEdQUkluZm86
OmFyZ3VtZW50R1BSMCksIC0gMTYpLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIyKSk7CisgICAg
cm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQ
UjIpLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290LT5hcHBlbmQoUmV0
RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKworICAgIGRv
dWJsZSBzZWNvbmRBcmcgPSA0LjI7CisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MsIDIuNCwgJnNlY29uZEFyZyArIDIsIHB1cmVOYU4oKSkgPT0gMi40ICogNC4yKTsKK30KKwor
dm9pZCB0ZXN0WDg2Vk1VTFNEQWRkck9wUmV4QWRkcigpCit7CisgICAgQjM6OlByb2NlZHVyZSBw
cm9jOworICAgIENvZGUmIGNvZGUgPSBwcm9jLmNvZGUoKTsKKworICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmUsIG51bGxwdHIsIFRt
cChHUFJJbmZvOjphcmd1bWVudEdQUjApLCBUbXAoWDg2UmVnaXN0ZXJzOjpyMTMpKTsKKyAgICBy
b290LT5hcHBlbmQoTXVsRG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIw
KSwgQXJnOjphZGRyKFRtcChYODZSZWdpc3RlcnM6OnIxMyksIC0gMTYpLCBUbXAoRlBSSW5mbzo6
YXJndW1lbnRGUFIyKSk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRt
cChGUFJJbmZvOjphcmd1bWVudEZQUjIpLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsK
KyAgICByb290LT5hcHBlbmQoUmV0RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJu
VmFsdWVGUFIpKTsKKworICAgIGRvdWJsZSBzZWNvbmRBcmcgPSA0LjI7CisgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDIuNCwgJnNlY29uZEFyZyArIDIsIHB1cmVOYU4oKSkg
PT0gMi40ICogNC4yKTsKK30KKwordm9pZCB0ZXN0WDg2Vk1VTFNERGVzdFJleEFkZHIoKQorewor
ICAgIEIzOjpQcm9jZWR1cmUgcHJvYzsKKyAgICBDb2RlJiBjb2RlID0gcHJvYy5jb2RlKCk7CisK
KyAgICBCYXNpY0Jsb2NrKiByb290ID0gY29kZS5hZGRCbG9jaygpOworICAgIHJvb3QtPmFwcGVu
ZChNdWxEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjApLCBBcmc6OmFk
ZHIoVG1wKEdQUkluZm86OmFyZ3VtZW50R1BSMCksIDE2KSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1t
MTUpKTsKKyAgICByb290LT5hcHBlbmQoTW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKFg4NlJlZ2lz
dGVyczo6eG1tMTUpLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290LT5h
cHBlbmQoUmV0RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsK
KworICAgIGRvdWJsZSBzZWNvbmRBcmcgPSA0LjI7CisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIDIuNCwgJnNlY29uZEFyZyAtIDIsIHB1cmVOYU4oKSkgPT0gMi40ICogNC4y
KTsKK30KKwordm9pZCB0ZXN0WDg2Vk1VTFNEUmVnT3BEZXN0UmV4QWRkcigpCit7CisgICAgQjM6
OlByb2NlZHVyZSBwcm9jOworICAgIENvZGUmIGNvZGUgPSBwcm9jLmNvZGUoKTsKKworICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVE
b3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjApLCBUbXAoWDg2UmVnaXN0
ZXJzOjp4bW0xNCkpOworICAgIHJvb3QtPmFwcGVuZChNdWxEb3VibGUsIG51bGxwdHIsIEFyZzo6
YWRkcihUbXAoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksIFRtcChYODZSZWdpc3RlcnM6OnhtbTE0
KSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpKTsKKyAgICByb290LT5hcHBlbmQoTW92ZURvdWJs
ZSwgbnVsbHB0ciwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpLCBUbXAoRlBSSW5mbzo6cmV0dXJu
VmFsdWVGUFIpKTsKKyAgICByb290LT5hcHBlbmQoUmV0RG91YmxlLCBudWxscHRyLCBUbXAoRlBS
SW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKworICAgIGRvdWJsZSBzZWNvbmRBcmcgPSA0LjI7Cisg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDIuNCwgJnNlY29uZEFyZywgcHVy
ZU5hTigpKSA9PSAyLjQgKiA0LjIpOworfQorCit2b2lkIHRlc3RYODZWTVVMU0RBZGRyT3BEZXN0
UmV4QWRkcigpCit7CisgICAgQjM6OlByb2NlZHVyZSBwcm9jOworICAgIENvZGUmIGNvZGUgPSBw
cm9jLmNvZGUoKTsKKworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgcm9vdC0+YXBwZW5kKE1vdmUsIG51bGxwdHIsIFRtcChHUFJJbmZvOjphcmd1bWVudEdQUjAp
LCBUbXAoWDg2UmVnaXN0ZXJzOjpyMTMpKTsKKyAgICByb290LT5hcHBlbmQoTXVsRG91YmxlLCBu
dWxscHRyLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIwKSwgQXJnOjphZGRyKFRtcChYODZSZWdp
c3RlcnM6OnIxMyksIDgpLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNSkpOworICAgIHJvb3QtPmFw
cGVuZChNb3ZlRG91YmxlLCBudWxscHRyLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNSksIFRtcChG
UFJJbmZvOjpyZXR1cm5WYWx1ZUZQUikpOworICAgIHJvb3QtPmFwcGVuZChSZXREb3VibGUsIG51
bGxwdHIsIFRtcChGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUikpOworCisgICAgZG91YmxlIHNlY29u
ZEFyZyA9IDQuMjsKKyAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMi40LCAm
c2Vjb25kQXJnIC0gMSwgcHVyZU5hTigpKSA9PSAyLjQgKiA0LjIpOworfQorCisjZW5kaWYKKwog
I2RlZmluZSBSVU4odGVzdCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICBpZiAoIXNob3VsZFJ1bigjdGVzdCkpICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg
YnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTY5Myw2ICsxODM4LDIw
IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFNodWZmbGVTd2Fw
RG91YmxlKCkpOwogICAgIFJVTih0ZXN0U2h1ZmZsZVNoaWZ0RG91YmxlKCkpOwogCisjaWYgQ1BV
KFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAgICBSVU4odGVzdFg4NlZNVUxTRCgpKTsKKyAgICBSVU4o
dGVzdFg4NlZNVUxTRERlc3RSZXgoKSk7CisgICAgUlVOKHRlc3RYODZWTVVMU0RPcDFEZXN0UmV4
KCkpOworICAgIFJVTih0ZXN0WDg2Vk1VTFNET3AyRGVzdFJleCgpKTsKKyAgICBSVU4odGVzdFg4
NlZNVUxTRE9wc0Rlc3RSZXgoKSk7CisKKyAgICBSVU4odGVzdFg4NlZNVUxTREFkZHIoKSk7Cisg
ICAgUlVOKHRlc3RYODZWTVVMU0RBZGRyT3BSZXhBZGRyKCkpOworICAgIFJVTih0ZXN0WDg2Vk1V
TFNERGVzdFJleEFkZHIoKSk7CisgICAgUlVOKHRlc3RYODZWTVVMU0RSZWdPcERlc3RSZXhBZGRy
KCkpOworICAgIFJVTih0ZXN0WDg2Vk1VTFNEQWRkck9wRGVzdFJleEFkZHIoKSk7CisjZW5kaWYK
KwogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275246</attachid>
            <date>2016-03-30 17:58:09 -0700</date>
            <delta_ts>2016-03-30 19:05:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-156043-20160330175813.patch</filename>
            <type>text/plain</type>
            <size>38062</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4ODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OTFmMDQ4M2ZhMGFmM2YzYjQ4NWYzNWMyNzk2YjljMmMxNzM1NGNhLi45MTY3OTE5MmJkM2M3NjI0
ZDllOTNlZjQxYjNlMjZiMDE1ZjI0ZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MCBAQAorMjAxNi0wMy0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ11beDg2XSBBZGQgdGhlIDMgb3BlcmFuZHMgZm9ybXMgb2Yg
ZmxvYXRpbmcgcG9pbnQgYWRkaXRpb24gYW5kIG11bHRpcGxpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwNDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBXaGVuIHRoZXkgYXJlIGF2YWlsYWJs
ZSwgVkFERCBhbmQgVk1VTCBhcmUgYmV0dGVyIG9wdGlvbnMgdG8gbG93ZXIKKyAgICAgICAgZmxv
YXRpbmcgcG9pbnQgYWRkaXRpb24gYW5kIG11bHRpcGxpY2F0aW9uLgorCisgICAgICAgIEluIHRo
ZSBzaW1wbGUgY2FzZXMgd2hlbiBvbmUgb2YgdGhlIG9wZXJhbmRzIGlzIGFsaWFzZWQgdG8gdGhl
IGRlc3RpbmF0aW9uLAorICAgICAgICB0aG9zZSBmb3JtcyBoYXZlIHRoZSBzYW1lIHNpemUgb3Ig
MSBieXRlIHNob3J0ZXIgZGVwZW5kaW5nIG9uIHRoZSByZWdpc3RlcnMuCisKKyAgICAgICAgSW4g
dGhlIG1vcmUgYWR2YW5jZWQgY2FzZXMsIHdlIGdhaW4gbmljZSBhZHZhbnRhZ2VzIHdpdGggdGhl
IG5ldyBmb3JtczoKKyAgICAgICAgLVdlIGNhbiBnZXQgcmlkIG9mIHRoZSBNb3ZlRG91YmxlIGlu
IGZyb250IHRoZSBpbnN0cnVjdGlvbiB3aGVuIHdlIGNhbm5vdAorICAgICAgICAgYWxpYXMuCisg
ICAgICAgIC1XZSBjYW4gZGlzYWJsZSBhbGlhc2luZyBlbnRpcmVseSBpbiBBaXIuIFRoYXQgaXMg
dXNlZnVsIGZvciBsYXRlbmN5CisgICAgICAgICBzaW5jZSBjb21wdXRpbmcgY29hbGVzY2luZyBp
cyBub3QgZXhhY3RseSBjaGVhcC4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbi5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphbmQzMik6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjptdWwzMik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpvcjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OnhvcjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OmJyYW5jaEFkZDMyKToKKyAgICAgICAgVGhlIGNoYW5nZSBpbiBCM0xvd2VyVG9B
aXIgZXhwb3NlZCBhIGJ1ZyBpbiB0aGUgZmFrZSAzIG9wZXJhbmRzCisgICAgICAgIGZvcm1zIG9m
IHRob3NlIGluc3RydWN0aW9ucy4gSWYgdGhlIGFkZHJlc3MgaXMgZXF1YWwgdG8KKyAgICAgICAg
dGhlIGRlc3RpbmF0aW9uLCB3ZSB3ZXJlIG51a2luZyB0aGUgYWRkcmVzcy4KKworICAgICAgICBG
b3IgZXhhbXBsZSwKKyAgICAgICAgICAgIEFkZDMyKFslcjExXSwgJWVheCwgJXIxMSkKKyAgICAg
ICAgd291bGQgZ2VuZXJhdGU6CisgICAgICAgICAgICBtb3ZlICVlYXgsICVyMTEKKyAgICAgICAg
ICAgIGFkZDMyIFslcjExXSwgJXIxMQorICAgICAgICB3aGljaCBjcmFzaGVzLgorCisgICAgICAg
IEkgdXBkYXRlZCBjb2RlZ2VuIG9mIHRob3NlIGNhc2VzIHRvIHN1cHBvcnQgdGhhdCBjYXNlIHRo
cm91Z2gKKyAgICAgICAgICAgIGxvYWQzMiBbJXIxMV0sICVyMTEKKyAgICAgICAgICAgIGFkZDMy
ICVlYXgsICVyMTEKKworICAgICAgICBUaGUgd2VpcmQgY2FzZSB3ZXJlIGFsbCBhcmd1bWVudHMg
aGF2ZSB0aGUgc2FtZSByZWdpc3RlcnMKKyAgICAgICAgaXMgaGFuZGxlZCB0b28uCisKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphZGRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uOjptdWxEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbjo6bXVsRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3VwcG9ydHNBVlgpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6dXBkYXRlRWF4MUVjeEZsYWdzKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJYODZfNjQ6OmJyYW5jaEFkZDY0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6dmFkZHNkX3JyKToKKyAgICAgICAg
KEpTQzo6WDg2QXNzZW1ibGVyOjp2YWRkc2RfbXIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJs
ZXI6OnZhZGRzc19ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6dmFkZHNzX21yKToK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjp2bXVsc2RfcnIpOgorICAgICAgICAoSlNDOjpY
ODZBc3NlbWJsZXI6OnZtdWxzZF9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6dm11
bHNzX3JyKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjp2bXVsc3NfbXIpOgorICAgICAg
ICAoSlNDOjpYODZBc3NlbWJsZXI6Olg4Nkluc3RydWN0aW9uRm9ybWF0dGVyOjpTaW5nbGVJbnN0
cnVjdGlvbkJ1ZmZlcldyaXRlcjo6bWVtb3J5TW9kUk0pOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6OmFwcGVuZEJpbk9w
KToKKyAgICAgICAgQWRkIHRoZSAzIG9wZXJhbmQgZm9ybXMgc28gdGhhdCB3ZSBsb3dlciBBZGQg
YW5kIE11bAorICAgICAgICB0byB0aGUgYmVzdCBmb3JtIGRpcmVjdGx5LgorCisgICAgICAgIEkg
d2lsbCBjaGFuZ2UgaG93IHdlIGxvd2VyIHRoZSBmYWtlIDMgb3BlcmFuZHMgaW5zdHJ1Y3Rpb25z
CisgICAgICAgIGJ1dCB0aGUgY29kZWdlbiBzaG91bGQgZW5kIHVwIHRoZSBzYW1lIGluIG1vc3Qg
Y2FzZXMuCisgICAgICAgIFRoZSBuZXcgY29kZWdlbiBpcyB0aGUgbG9hZDMyICsgb3AgYWJvdmUu
CisKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6SW5zdDo6c2hvdWxkVHJ5QWxpYXNpbmdEZWYpOgorICAgICAgICAqIGIzL2Fpci90ZXN0
YWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4NlZNVUxTRCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OnRlc3RYODZWTVVMU0REZXN0UmV4KToKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6dGVzdFg4NlZNVUxTRE9wMURlc3RSZXgpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjp0
ZXN0WDg2Vk1VTFNET3AyRGVzdFJleCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnRlc3RYODZW
TVVMU0RPcHNEZXN0UmV4KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4NlZNVUxTREFk
ZHIpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjp0ZXN0WDg2Vk1VTFNEQWRkck9wUmV4QWRkcik6
CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnRlc3RYODZWTVVMU0REZXN0UmV4QWRkcik6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OnRlc3RYODZWTVVMU0RSZWdPcERlc3RSZXhBZGRyKToKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6dGVzdFg4NlZNVUxTREFkZHJPcERlc3RSZXhBZGRyKToKKyAgICAg
ICAgTWFrZSBzdXJlIHdlIGhhdmUgc29tZSBjb3ZlcmFnZSBmb3IgQVZYIGVuY29kaW5nIG9mIGlu
c3RydWN0aW9ucy4KKwogMjAxNi0wMy0zMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSB0aGUgJHZtIGRlYnVnZ2luZyB0b29scyBhdmFpbGFibGUgdG8gYnVp
bHRpbnMgYXMgQCR2bS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKaW5kZXggMGNiZjNhNzc5ZDNiYjdi
MjBmZmNlOTZiNjE0YzBjYWRiM2Y5ZThmNS4uODc1MTIyNTYyZjg0OWU2ZWY1OTIxMjQzNjBiN2Q3
NDY2ZTkxYjJiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKQEAgLTU1Myw2ICs1NTMsNyBAQCBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZD
b21tb246OnNfc3NlMkNoZWNrU3RhdAogI2VuZGlmCiAKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfc3NlNF8xQ2hlY2tT
dGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90Q2hlY2tlZDsKK01hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfYXZ4Q2hlY2tT
dGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90Q2hlY2tlZDsKIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfbHpjbnRDaGVj
a1N0YXRlID0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2VkOwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAppbmRleCA2OGNiODA5M2EwYTU5ZTM0Y2FiNWYzMzAzYTYxNzI3
NmE4ZTAzN2U5Li45ODQyMWU0YzFkNWExYjcwYzk5OTY1Mjc2YzIzZGVjMzkzZGI1ZmJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCkBAIC0yNzAsMTQgKzI3MCwyMCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGFuZDMyKEFkZHJlc3Mgb3AxLCBSZWdpc3RlcklEIG9wMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKLSAgICAgICAgbW92ZTMySWZOZWVkZWQob3AyLCBkZXN0KTsKLSAgICAgICAgYW5kMzIob3Ax
LCBkZXN0KTsKKyAgICAgICAgaWYgKG9wMiA9PSBkZXN0KQorICAgICAgICAgICAgYW5kMzIob3Ax
LCBkZXN0KTsKKyAgICAgICAgZWxzZSBpZiAob3AxLmJhc2UgPT0gZGVzdCkgeworICAgICAgICAg
ICAgbG9hZDMyKG9wMSwgZGVzdCk7CisgICAgICAgICAgICBhbmQzMihvcDIsIGRlc3QpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgemVyb0V4dGVuZDMyVG9QdHIob3AyLCBkZXN0KTsK
KyAgICAgICAgICAgIGFuZDMyKG9wMSwgZGVzdCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2
b2lkIGFuZDMyKFJlZ2lzdGVySUQgb3AxLCBBZGRyZXNzIG9wMiwgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKLSAgICAgICAgbW92ZTMySWZOZWVkZWQob3AxLCBkZXN0KTsKLSAgICAgICAgYW5kMzIo
b3AyLCBkZXN0KTsKKyAgICAgICAgYW5kMzIob3AyLCBvcDEsIGRlc3QpOwogICAgIH0KIAogICAg
IHZvaWQgYW5kMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQg
ZGVzdCkKQEAgLTM2MCwxNiArMzY2LDIyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
aW11bGxfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQg
bXVsMzIoQWRkcmVzcyBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIG11bDMyKEFkZHJlc3Mgb3AxLCBSZWdpc3RlcklEIG9wMiwgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKLSAgICAgICAgbW92ZTMySWZOZWVkZWQoc3JjMiwgZGVzdCk7Ci0gICAgICAgIG11
bDMyKHNyYzEsIGRlc3QpOworICAgICAgICBpZiAob3AyID09IGRlc3QpCisgICAgICAgICAgICBt
dWwzMihvcDEsIGRlc3QpOworICAgICAgICBlbHNlIGlmIChvcDEuYmFzZSA9PSBkZXN0KSB7Cisg
ICAgICAgICAgICBsb2FkMzIob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIG11bDMyKG9wMiwgZGVz
dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihvcDIs
IGRlc3QpOworICAgICAgICAgICAgbXVsMzIob3AxLCBkZXN0KTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIHZvaWQgbXVsMzIoUmVnaXN0ZXJJRCBzcmMxLCBBZGRyZXNzIHNyYzIsIFJlZ2lzdGVy
SUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUzMklmTmVlZGVkKHNyYzEsIGRlc3QpOwotICAg
ICAgICBtdWwzMihzcmMyLCBkZXN0KTsKKyAgICAgICAgbXVsMzIoc3JjMiwgc3JjMSwgZGVzdCk7
CiAgICAgfQogICAgIAogICAgIHZvaWQgbXVsMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJ
RCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTQ1MCwxNCArNDYyLDIwIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgb3IzMihBZGRyZXNzIG9wMSwgUmVnaXN0ZXJJRCBvcDIsIFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7Ci0gICAgICAgIG1vdmUzMklmTmVlZGVkKG9wMiwgZGVzdCk7Ci0gICAgICAgIG9y
MzIob3AxLCBkZXN0KTsKKyAgICAgICAgaWYgKG9wMiA9PSBkZXN0KQorICAgICAgICAgICAgb3Iz
MihvcDEsIGRlc3QpOworICAgICAgICBlbHNlIGlmIChvcDEuYmFzZSA9PSBkZXN0KSB7CisgICAg
ICAgICAgICBsb2FkMzIob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIG9yMzIob3AyLCBkZXN0KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHplcm9FeHRlbmQzMlRvUHRyKG9wMiwgZGVz
dCk7CisgICAgICAgICAgICBvcjMyKG9wMSwgZGVzdCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICB2b2lkIG9yMzIoUmVnaXN0ZXJJRCBvcDEsIEFkZHJlc3Mgb3AyLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtb3ZlMzJJZk5lZWRlZChvcDEsIGRlc3QpOwotICAgICAgICBvcjMy
KG9wMiwgZGVzdCk7CisgICAgICAgIG9yMzIob3AyLCBvcDEsIGRlc3QpOwogICAgIH0KIAogICAg
IHZvaWQgb3IzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBk
ZXN0KQpAQCAtNjA5LDE0ICs2MjcsMjAgQEAgcHVibGljOgogCiAgICAgdm9pZCB4b3IzMihBZGRy
ZXNzIG9wMSwgUmVnaXN0ZXJJRCBvcDIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAg
IG1vdmUzMklmTmVlZGVkKG9wMiwgZGVzdCk7Ci0gICAgICAgIHhvcjMyKG9wMSwgZGVzdCk7Cisg
ICAgICAgIGlmIChvcDIgPT0gZGVzdCkKKyAgICAgICAgICAgIHhvcjMyKG9wMSwgZGVzdCk7Cisg
ICAgICAgIGVsc2UgaWYgKG9wMS5iYXNlID09IGRlc3QpIHsKKyAgICAgICAgICAgIGxvYWQzMihv
cDEsIGRlc3QpOworICAgICAgICAgICAgeG9yMzIob3AyLCBkZXN0KTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHplcm9FeHRlbmQzMlRvUHRyKG9wMiwgZGVzdCk7CisgICAgICAgICAg
ICB4b3IzMihvcDEsIGRlc3QpOworICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCB4b3IzMihS
ZWdpc3RlcklEIG9wMSwgQWRkcmVzcyBvcDIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAg
ICAgIG1vdmUzMklmTmVlZGVkKG9wMSwgZGVzdCk7Ci0gICAgICAgIHhvcjMyKG9wMiwgZGVzdCk7
CisgICAgICAgIHhvcjMyKG9wMiwgb3AxLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIHhvcjMy
KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0x
MDY2LDk2ICsxMDkwLDk0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkRG91YmxlKEZQUmVnaXN0
ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NF
MlByZXNlbnQoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFkZHNkX3JyKHNyYywgZGVzdCk7Cisg
ICAgICAgIGFkZERvdWJsZShzcmMsIGRlc3QsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgYWRk
RG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIGlm
IChvcDEgPT0gZGVzdCkKLSAgICAgICAgICAgIGFkZERvdWJsZShvcDIsIGRlc3QpOworICAgICAg
ICBpZiAoc3VwcG9ydHNBVlgoKSkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnZhZGRzZF9ycihv
cDEsIG9wMiwgZGVzdCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgbW92ZURvdWJsZShv
cDIsIGRlc3QpOwotICAgICAgICAgICAgYWRkRG91YmxlKG9wMSwgZGVzdCk7CisgICAgICAgICAg
ICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKKyAgICAgICAgICAgIGlmIChvcDEgPT0gZGVzdCkK
KyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRzZF9ycihvcDIsIGRlc3QpOworICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbW92ZURvdWJsZShvcDIsIGRlc3QpOworICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHNkX3JyKG9wMSwgZGVzdCk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGFkZERvdWJsZShBZGRyZXNzIHNyYywg
RlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgp
KTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkc2RfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRl
c3QpOworICAgICAgICBhZGREb3VibGUoc3JjLCBkZXN0LCBkZXN0KTsKICAgICB9CiAKICAgICB2
b2lkIGFkZERvdWJsZShBZGRyZXNzIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAg
aWYgKG9wMiA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBhZGREb3VibGUob3AxLCBkZXN0KTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAgICBpZiAoc3VwcG9ydHNBVlgoKSkK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnZhZGRzZF9tcihvcDEub2Zmc2V0LCBvcDEuYmFzZSwg
b3AyLCBkZXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoaXNTU0UyUHJl
c2VudCgpKTsKKyAgICAgICAgICAgIGlmIChvcDIgPT0gZGVzdCkgeworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHNkX21yKG9wMS5vZmZzZXQsIG9wMS5iYXNlLCBkZXN0KTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgbG9hZERvdWJsZShv
cDEsIGRlc3QpOwotICAgICAgICBhZGREb3VibGUob3AyLCBkZXN0KTsKKyAgICAgICAgICAgIGxv
YWREb3VibGUob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIGFkZERvdWJsZShvcDIsIGRlc3QpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBhZGREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwg
QWRkcmVzcyBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlz
U1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIGlmIChvcDEgPT0gZGVzdCkgewotICAgICAgICAgICAg
YWRkRG91YmxlKG9wMiwgZGVzdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICBsb2FkRG91YmxlKG9wMiwgZGVzdCk7Ci0gICAgICAgIGFkZERvdWJsZShvcDEsIGRl
c3QpOworICAgICAgICBhZGREb3VibGUob3AyLCBvcDEsIGRlc3QpOwogICAgIH0KIAogICAgIHZv
aWQgYWRkRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewot
ICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRk
c3NfcnIoc3JjLCBkZXN0KTsKKyAgICAgICAgYWRkRmxvYXQoc3JjLCBkZXN0LCBkZXN0KTsKICAg
ICB9CiAKICAgICB2b2lkIGFkZEZsb2F0KEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGRzc19tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVzdCk7CisgICAgICAgIGFkZEZs
b2F0KHNyYywgZGVzdCwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRGbG9hdChGUFJlZ2lz
dGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBpZiAob3AxID09IGRlc3Qp
Ci0gICAgICAgICAgICBhZGRGbG9hdChvcDIsIGRlc3QpOworICAgICAgICBpZiAoc3VwcG9ydHNB
VlgoKSkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnZhZGRzc19ycihvcDEsIG9wMiwgZGVzdCk7
CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgbW92ZURvdWJsZShvcDIsIGRlc3QpOwotICAg
ICAgICAgICAgYWRkRmxvYXQob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIEFTU0VSVChpc1NTRTJQ
cmVzZW50KCkpOworICAgICAgICAgICAgaWYgKG9wMSA9PSBkZXN0KQorICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZHNzX3JyKG9wMiwgZGVzdCk7CisgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBtb3ZlRG91YmxlKG9wMiwgZGVzdCk7CisgICAgICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkc3NfcnIob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIAogICAgIHZvaWQgYWRkRmxvYXQoQWRkcmVzcyBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIs
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQo
KSk7Ci0gICAgICAgIGlmIChvcDIgPT0gZGVzdCkgewotICAgICAgICAgICAgYWRkRmxvYXQob3Ax
LCBkZXN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAgICBpZiAoc3Vw
cG9ydHNBVlgoKSkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnZhZGRzc19tcihvcDEub2Zmc2V0
LCBvcDEuYmFzZSwgb3AyLCBkZXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NF
UlQoaXNTU0UyUHJlc2VudCgpKTsKKyAgICAgICAgICAgIGlmIChvcDIgPT0gZGVzdCkgeworICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHNzX21yKG9wMS5vZmZzZXQsIG9wMS5iYXNlLCBk
ZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAg
bG9hZEZsb2F0KG9wMSwgZGVzdCk7Ci0gICAgICAgIGFkZEZsb2F0KG9wMiwgZGVzdCk7CisgICAg
ICAgICAgICBsb2FkRmxvYXQob3AxLCBkZXN0KTsKKyAgICAgICAgICAgIGFkZEZsb2F0KG9wMiwg
ZGVzdCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGFkZEZsb2F0KEZQUmVnaXN0ZXJJ
RCBvcDEsIEFkZHJlc3Mgb3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFT
U0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBpZiAob3AxID09IGRlc3QpIHsKLSAgICAg
ICAgICAgIGFkZEZsb2F0KG9wMiwgZGVzdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBsb2FkRmxvYXQob3AyLCBkZXN0KTsKLSAgICAgICAgYWRkRmxvYXQob3Ax
LCBkZXN0KTsKKyAgICAgICAgYWRkRmxvYXQob3AxLCBvcDIsIGRlc3QpOwogICAgIH0KIAogICAg
IHZvaWQgZGl2RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQpAQCAt
MTIyNiw5MiArMTI0OCw5MiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG11bERvdWJsZShGUFJlZ2lz
dGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NT
RTJQcmVzZW50KCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5tdWxzZF9ycihzcmMsIGRlc3QpOwor
ICAgICAgICBtdWxEb3VibGUoc3JjLCBkZXN0LCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIG11
bERvdWJsZShGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBp
ZiAob3AxID09IGRlc3QpCi0gICAgICAgICAgICBtdWxEb3VibGUob3AyLCBkZXN0KTsKKyAgICAg
ICAgaWYgKHN1cHBvcnRzQVZYKCkpCisgICAgICAgICAgICBtX2Fzc2VtYmxlci52bXVsc2RfcnIo
b3AxLCBvcDIsIGRlc3QpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1vdmVEb3VibGUo
b3AyLCBkZXN0KTsKLSAgICAgICAgICAgIG11bERvdWJsZShvcDEsIGRlc3QpOworICAgICAgICAg
ICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7CisgICAgICAgICAgICBpZiAob3AxID09IGRlc3Qp
CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubXVsc2RfcnIob3AyLCBkZXN0KTsKKyAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1vdmVEb3VibGUob3AyLCBkZXN0KTsKKyAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tdWxzZF9ycihvcDEsIGRlc3QpOworICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBtdWxEb3VibGUoQWRkcmVzcyBzcmMs
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQo
KSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm11bHNkX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBk
ZXN0KTsKKyAgICAgICAgbXVsRG91YmxlKHNyYywgZGVzdCwgZGVzdCk7CiAgICAgfQogCiAgICAg
dm9pZCBtdWxEb3VibGUoQWRkcmVzcyBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAg
IGlmIChvcDIgPT0gZGVzdCkgewotICAgICAgICAgICAgbXVsRG91YmxlKG9wMSwgZGVzdCk7Ci0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChzdXBwb3J0c0FWWCgpKQorICAgICAgICAg
ICAgbV9hc3NlbWJsZXIudm11bHNkX21yKG9wMS5vZmZzZXQsIG9wMS5iYXNlLCBvcDIsIGRlc3Qp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwor
ICAgICAgICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubXVsc2RfbXIob3AxLm9mZnNldCwgb3AxLmJhc2UsIGRlc3QpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvYWREb3VibGUob3AxLCBkZXN0
KTsKKyAgICAgICAgICAgIG11bERvdWJsZShvcDIsIGRlc3QpOwogICAgICAgICB9Ci0gICAgICAg
IGxvYWREb3VibGUob3AxLCBkZXN0KTsKLSAgICAgICAgbXVsRG91YmxlKG9wMiwgZGVzdCk7CiAg
ICAgfQogCiAgICAgdm9pZCBtdWxEb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgQWRkcmVzcyBvcDIs
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQo
KSk7Ci0gICAgICAgIGlmIChvcDEgPT0gZGVzdCkgewotICAgICAgICAgICAgbXVsRG91YmxlKG9w
MiwgZGVzdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbG9hZERv
dWJsZShvcDIsIGRlc3QpOwotICAgICAgICBtdWxEb3VibGUob3AxLCBkZXN0KTsKKyAgICAgICAg
cmV0dXJuIG11bERvdWJsZShvcDIsIG9wMSwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBtdWxG
bG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAg
IEFTU0VSVChpc1NTRTJQcmVzZW50KCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5tdWxzc19ycihz
cmMsIGRlc3QpOworICAgICAgICBtdWxGbG9hdChzcmMsIGRlc3QsIGRlc3QpOwogICAgIH0KIAog
ICAgIHZvaWQgbXVsRmxvYXQoQWRkcmVzcyBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsK
LSAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm11
bHNzX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBkZXN0KTsKKyAgICAgICAgbXVsRmxvYXQoc3Jj
LCBkZXN0LCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIG11bEZsb2F0KEZQUmVnaXN0ZXJJRCBv
cDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAg
QVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7Ci0gICAgICAgIGlmIChvcDEgPT0gZGVzdCkKLSAgICAg
ICAgICAgIG11bEZsb2F0KG9wMiwgZGVzdCk7CisgICAgICAgIGlmIChzdXBwb3J0c0FWWCgpKQor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIudm11bHNzX3JyKG9wMSwgb3AyLCBkZXN0KTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBtb3ZlRG91YmxlKG9wMiwgZGVzdCk7Ci0gICAgICAgICAg
ICBtdWxGbG9hdChvcDEsIGRlc3QpOworICAgICAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQo
KSk7CisgICAgICAgICAgICBpZiAob3AxID09IGRlc3QpCisgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIubXVsc3NfcnIob3AyLCBkZXN0KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIG1vdmVEb3VibGUob3AyLCBkZXN0KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5tdWxzc19ycihvcDEsIGRlc3QpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
CiAgICAgdm9pZCBtdWxGbG9hdChBZGRyZXNzIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgpKTsKLSAg
ICAgICAgaWYgKG9wMiA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBtdWxGbG9hdChvcDEsIGRlc3Qp
OwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoc3VwcG9ydHNBVlgoKSkKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnZtdWxzc19tcihvcDEub2Zmc2V0LCBvcDEuYmFzZSwgb3AyLCBk
ZXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgp
KTsKKyAgICAgICAgICAgIGlmIChvcDIgPT0gZGVzdCkgeworICAgICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLm11bHNzX21yKG9wMS5vZmZzZXQsIG9wMS5iYXNlLCBkZXN0KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2FkRmxvYXQob3AxLCBk
ZXN0KTsKKyAgICAgICAgICAgIG11bEZsb2F0KG9wMiwgZGVzdCk7CiAgICAgICAgIH0KLSAgICAg
ICAgbG9hZEZsb2F0KG9wMSwgZGVzdCk7Ci0gICAgICAgIG11bEZsb2F0KG9wMiwgZGVzdCk7CiAg
ICAgfQogCiAgICAgdm9pZCBtdWxGbG9hdChGUFJlZ2lzdGVySUQgb3AxLCBBZGRyZXNzIG9wMiwg
RlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNTU0UyUHJlc2VudCgp
KTsKLSAgICAgICAgaWYgKG9wMSA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBtdWxGbG9hdChvcDIs
IGRlc3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGxvYWRGbG9h
dChvcDIsIGRlc3QpOwotICAgICAgICBtdWxGbG9hdChvcDEsIGRlc3QpOworICAgICAgICBtdWxG
bG9hdChvcDIsIG9wMSwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmREb3VibGUoRlBSZWdp
c3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKQEAgLTIxNDMsMTYgKzIxNjUsMjEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwgc3JjMSwgZGVzdCk7CiAgICAg
fQogCi0gICAgSnVtcCBicmFuY2hBZGQzMihSZXN1bHRDb25kaXRpb24gY29uZCwgQWRkcmVzcyBz
cmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICBKdW1wIGJyYW5jaEFk
ZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIG9wMSwgUmVnaXN0ZXJJRCBvcDIsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUzMklmTmVlZGVkKHNyYzIsIGRlc3Qp
OwotICAgICAgICByZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwgc3JjMSwgZGVzdCk7CisgICAgICAg
IGlmIChvcDIgPT0gZGVzdCkKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hBZGQzMihjb25kLCBv
cDEsIGRlc3QpOworICAgICAgICBpZiAob3AxLmJhc2UgPT0gZGVzdCkgeworICAgICAgICAgICAg
bG9hZDMyKG9wMSwgZGVzdCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwg
b3AyLCBkZXN0KTsKKyAgICAgICAgfQorICAgICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihvcDIsIGRl
c3QpOworICAgICAgICByZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwgb3AxLCBkZXN0KTsKICAgICB9
CiAKICAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklE
IHNyYzEsIEFkZHJlc3Mgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbW92
ZTMySWZOZWVkZWQoc3JjMSwgZGVzdCk7Ci0gICAgICAgIHJldHVybiBicmFuY2hBZGQzMihjb25k
LCBzcmMyLCBkZXN0KTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDMyKGNvbmQsIHNyYzIsIHNy
YzEsIGRlc3QpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9u
IGNvbmQsIFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3Qp
CkBAIC0yNDUyLDM4ICsyNDc5LDUwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkKICAgICB7Ci0gICAgICAgIGlmIChzX3NzZTRfMUNo
ZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2VkKSB7Ci0gICAgICAgICAgICBp
bnQgZmxhZ3MgPSAwOworICAgICAgICBpZiAoc19zc2U0XzFDaGVja1N0YXRlID09IENQVUlEQ2hl
Y2tTdGF0ZTo6Tm90Q2hlY2tlZCkKKyAgICAgICAgICAgIHVwZGF0ZUVheDFFY3hGbGFncygpOwor
ICAgICAgICByZXR1cm4gc19zc2U0XzFDaGVja1N0YXRlID09IENQVUlEQ2hlY2tTdGF0ZTo6U2V0
OworICAgIH0KKworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQVZYKCkKKyAgICB7CisgICAgICAg
IGlmIChzX2F2eENoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2VkKQorICAg
ICAgICAgICAgdXBkYXRlRWF4MUVjeEZsYWdzKCk7CisgICAgICAgIHJldHVybiBzX2F2eENoZWNr
U3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpTZXQ7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQg
dXBkYXRlRWF4MUVjeEZsYWdzKCkKKyAgICB7CisgICAgICAgIGludCBmbGFncyA9IDA7CiAjaWYg
Q09NUElMRVIoTVNWQykKLSAgICAgICAgICAgIGludCBjcHVJbmZvWzRdOwotICAgICAgICAgICAg
X19jcHVpZChjcHVJbmZvLCAweDEpOwotICAgICAgICAgICAgZmxhZ3MgPSBjcHVJbmZvWzJdOwor
ICAgICAgICBpbnQgY3B1SW5mb1s0XTsKKyAgICAgICAgX19jcHVpZChjcHVJbmZvLCAweDEpOwor
ICAgICAgICBmbGFncyA9IGNwdUluZm9bMl07CiAjZWxpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcp
CiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgICAgIGFzbSAoCi0gICAgICAgICAgICAgICAgIm1v
dmwgJDB4MSwgJSVlYXg7IgotICAgICAgICAgICAgICAgICJjcHVpZDsiCi0gICAgICAgICAgICAg
ICAgIm1vdmwgJSVlY3gsICUwOyIKLSAgICAgICAgICAgICAgICA6ICI9ZyIgKGZsYWdzKQotICAg
ICAgICAgICAgICAgIDoKLSAgICAgICAgICAgICAgICA6ICIlZWF4IiwgIiVlYngiLCAiJWVjeCIs
ICIlZWR4IgotICAgICAgICAgICAgICAgICk7CisgICAgICAgIGFzbSAoCisgICAgICAgICAgICAi
bW92bCAkMHgxLCAlJWVheDsiCisgICAgICAgICAgICAiY3B1aWQ7IgorICAgICAgICAgICAgIm1v
dmwgJSVlY3gsICUwOyIKKyAgICAgICAgICAgIDogIj1nIiAoZmxhZ3MpCisgICAgICAgICAgICA6
CisgICAgICAgICAgICA6ICIlZWF4IiwgIiVlYngiLCAiJWVjeCIsICIlZWR4IgorICAgICAgICAg
ICAgKTsKICNlbHNlCi0gICAgICAgICAgICBhc20gKAotICAgICAgICAgICAgICAgICJtb3ZsICQw
eDEsICUlZWF4OyIKLSAgICAgICAgICAgICAgICAicHVzaGwgJSVlYng7IgotICAgICAgICAgICAg
ICAgICJjcHVpZDsiCi0gICAgICAgICAgICAgICAgInBvcGwgJSVlYng7IgotICAgICAgICAgICAg
ICAgICJtb3ZsICUlZWN4LCAlMDsiCi0gICAgICAgICAgICAgICAgOiAiPWciIChmbGFncykKLSAg
ICAgICAgICAgICAgICA6Ci0gICAgICAgICAgICAgICAgOiAiJWVheCIsICIlZWN4IiwgIiVlZHgi
Ci0gICAgICAgICAgICAgICAgKTsKKyAgICAgICAgYXNtICgKKyAgICAgICAgICAgICJtb3ZsICQw
eDEsICUlZWF4OyIKKyAgICAgICAgICAgICJwdXNobCAlJWVieDsiCisgICAgICAgICAgICAiY3B1
aWQ7IgorICAgICAgICAgICAgInBvcGwgJSVlYng7IgorICAgICAgICAgICAgIm1vdmwgJSVlY3gs
ICUwOyIKKyAgICAgICAgICAgIDogIj1nIiAoZmxhZ3MpCisgICAgICAgICAgICA6CisgICAgICAg
ICAgICA6ICIlZWF4IiwgIiVlY3giLCAiJWVkeCIKKyAgICAgICAgICAgICk7CiAjZW5kaWYKICNl
bmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0gICAgICAgICAgICBzX3NzZTRfMUNoZWNr
U3RhdGUgPSAoZmxhZ3MgJiAoMSA8PCAxOSkpID8gQ1BVSURDaGVja1N0YXRlOjpTZXQgOiBDUFVJ
RENoZWNrU3RhdGU6OkNsZWFyOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzX3NzZTRfMUNo
ZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpTZXQ7CisgICAgICAgIHNfc3NlNF8xQ2hlY2tT
dGF0ZSA9IChmbGFncyAmICgxIDw8IDE5KSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6IENQVUlE
Q2hlY2tTdGF0ZTo6Q2xlYXI7CisgICAgICAgIHNfYXZ4Q2hlY2tTdGF0ZSA9IChmbGFncyAmICgx
IDw8IDI4KSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7
CiAgICAgfQogCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCkBAIC0yNzMxLDcgKzI3NzAsOCBAQCBw
cml2YXRlOgogICAgICAgICBDbGVhciwKICAgICAgICAgU2V0CiAgICAgfTsKLSAgICBzdGF0aWMg
Q1BVSURDaGVja1N0YXRlIHNfc3NlNF8xQ2hlY2tTdGF0ZTsKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgQ1BVSURDaGVja1N0YXRlIHNfc3NlNF8xQ2hlY2tTdGF0ZTsKKyAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgQ1BVSURDaGVja1N0YXRlIHNfYXZ4Q2hlY2tTdGF0ZTsKICAgICBz
dGF0aWMgQ1BVSURDaGVja1N0YXRlIHNfbHpjbnRDaGVja1N0YXRlOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5o
CmluZGV4IDc3ODNkOTQwYWI2Mjk1Yzg2M2NiMDBkYWRhYTBhNGE2MzNlYzgyMjEuLmRmZGJlMjNj
YTA2NjAyNzJiNjk1ZjJkZGNlZDE1MDA3YmMzZmYwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTkyMiwx
NiArOTIyLDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDY0KGNvbmQsIHNy
YzEsIGRlc3QpOwogICAgIH0KIAotICAgIEp1bXAgYnJhbmNoQWRkNjQoUmVzdWx0Q29uZGl0aW9u
IGNvbmQsIEFkZHJlc3Mgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgSnVtcCBicmFuY2hBZGQ2NChSZXN1bHRDb25kaXRpb24gY29uZCwgQWRkcmVzcyBvcDEsIFJl
Z2lzdGVySUQgb3AyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKHNyYzIs
IGRlc3QpOwotICAgICAgICByZXR1cm4gYnJhbmNoQWRkNjQoY29uZCwgc3JjMSwgZGVzdCk7Cisg
ICAgICAgIGlmIChvcDIgPT0gZGVzdCkKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hBZGQ2NChj
b25kLCBvcDEsIGRlc3QpOworICAgICAgICBpZiAob3AxLmJhc2UgPT0gZGVzdCkgeworICAgICAg
ICAgICAgbG9hZDMyKG9wMSwgZGVzdCk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoQWRkNjQo
Y29uZCwgb3AyLCBkZXN0KTsKKyAgICAgICAgfQorICAgICAgICBtb3ZlKG9wMiwgZGVzdCk7Cisg
ICAgICAgIHJldHVybiBicmFuY2hBZGQ2NChjb25kLCBvcDEsIGRlc3QpOwogICAgIH0KIAogICAg
IEp1bXAgYnJhbmNoQWRkNjQoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgc3JjMSwg
QWRkcmVzcyBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKHNyYzEs
IGRlc3QpOwotICAgICAgICByZXR1cm4gYnJhbmNoQWRkNjQoY29uZCwgc3JjMiwgZGVzdCk7Cisg
ICAgICAgIHJldHVybiBicmFuY2hBZGQ2NChjb25kLCBzcmMyLCBzcmMxLCBkZXN0KTsKICAgICB9
CiAKICAgICBKdW1wIGJyYW5jaEFkZDY0KFJlc3VsdENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNWViZjBhNjUxMGY1MzM1MDE0MDQxMTQ2ZjViNzc0Mzc3
ZjAxYzdmZS4uMWQ4YzdhNTZhOTE5YjZjNTkyNWNjYjU2NjkzMzY3NTdjY2M1MTg3NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0zMDUs
NiArMzA1LDE3IEBAIHByaXZhdGU6CiAgICAgICAgIE9QM19NRkVOQ0UgICAgICAgICAgID0gMHhG
MCwKICAgICB9IFRocmVlQnl0ZU9wY29kZUlEOwogCisgICAgc3RydWN0IFZleFByZWZpeCB7Cisg
ICAgICAgIGVudW0gOiB1aW50OF90IHsKKyAgICAgICAgICAgIFR3b0J5dGVzID0gMHhDNSwKKyAg
ICAgICAgICAgIFRocmVlQnl0ZXMgPSAweEM0CisgICAgICAgIH07CisgICAgfTsKKyAgICBlbnVt
IGNsYXNzIFZleEltcGxpZWRCeXRlcyA6IHVpbnQ4X3QgeworICAgICAgICBUd29CeXRlc09wID0g
MSwKKyAgICAgICAgVGhyZWVCeXRlc09wMzggPSAyLAorICAgICAgICBUaHJlZUJ5dGVzT3AzQSA9
IDMKKyAgICB9OwogICAgIAogICAgIFR3b0J5dGVPcGNvZGVJRCBjbW92Y2MoQ29uZGl0aW9uIGNv
bmQpCiAgICAgewpAQCAtMjA4NywyNCArMjA5OCw0NCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9y
bWF0dGVyLnR3b0J5dGVPcChPUDJfQUREU0RfVnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdp
c3RlcklEKXNyYyk7CiAgICAgfQogCisgICAgdm9pZCB2YWRkc2RfcnIoWE1NUmVnaXN0ZXJJRCBh
LCBYTU1SZWdpc3RlcklEIGIsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9m
b3JtYXR0ZXIudmV4TmRzTGlnV2lnQ29tbXV0YXRpdmVUd29CeXRlT3AoUFJFX1NTRV9GMiwgT1Ay
X0FERFNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRClhLCAoUmVnaXN0ZXJJ
RCliKTsKKyAgICB9CisKICAgICB2b2lkIGFkZHNkX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQg
YmFzZSwgWE1NUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5wcmVm
aXgoUFJFX1NTRV9GMik7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfQUREU0Rf
VnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQogCisgICAgdm9p
ZCB2YWRkc2RfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGIs
IFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmV4TmRzTGln
V2lnVHdvQnl0ZU9wKFBSRV9TU0VfRjIsIE9QMl9BRERTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRz
dCwgKFJlZ2lzdGVySUQpYiwgYmFzZSwgb2Zmc2V0KTsKKyAgICB9CisKICAgICB2b2lkIGFkZHNz
X3JyKFhNTVJlZ2lzdGVySUQgc3JjLCBYTU1SZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAg
IG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdv
Qnl0ZU9wKE9QMl9BRERTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVySUQpc3Jj
KTsKICAgICB9CiAKKyAgICB2b2lkIHZhZGRzc19ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lz
dGVySUQgYiwgWE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52
ZXhOZHNMaWdXaWdDb21tdXRhdGl2ZVR3b0J5dGVPcChQUkVfU1NFX0YzLCBPUDJfQUREU0RfVnNk
V3NkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklEKWEsIChSZWdpc3RlcklEKWIpOworICAg
IH0KKwogICAgIHZvaWQgYWRkc3NfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1S
ZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NF
X0YzKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9BRERTRF9Wc2RXc2QsIChS
ZWdpc3RlcklEKWRzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKKyAgICB2b2lkIHZhZGRzc19t
cihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFhNTVJlZ2lzdGVySUQgYiwgWE1NUmVnaXN0
ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZXhOZHNMaWdXaWdUd29CeXRl
T3AoUFJFX1NTRV9GMywgT1AyX0FERFNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0
ZXJJRCliLCBiYXNlLCBvZmZzZXQpOworICAgIH0KKwogI2lmICFDUFUoWDg2XzY0KQogICAgIHZv
aWQgYWRkc2RfbXIoY29uc3Qgdm9pZCogYWRkcmVzcywgWE1NUmVnaXN0ZXJJRCBkc3QpCiAgICAg
ewpAQCAtMjI5NSwyNCArMjMyNiw0NCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3
b0J5dGVPcChPUDJfTVVMU0RfVnNkV3NkLCAoUmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklEKXNy
Yyk7CiAgICAgfQogCisgICAgdm9pZCB2bXVsc2RfcnIoWE1NUmVnaXN0ZXJJRCBhLCBYTU1SZWdp
c3RlcklEIGIsIFhNTVJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
dmV4TmRzTGlnV2lnQ29tbXV0YXRpdmVUd29CeXRlT3AoUFJFX1NTRV9GMiwgT1AyX01VTFNEX1Zz
ZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRClhLCAoUmVnaXN0ZXJJRCliKTsKKyAg
ICB9CisKICAgICB2b2lkIG11bHNkX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgWE1N
UmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5wcmVmaXgoUFJFX1NT
RV9GMik7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfTVVMU0RfVnNkV3NkLCAo
UmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQogCisgICAgdm9pZCB2bXVsc2Rf
bXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklEIGIsIFhNTVJlZ2lz
dGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmV4TmRzTGlnV2lnVHdvQnl0
ZU9wKFBSRV9TU0VfRjIsIE9QMl9NVUxTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwgKFJlZ2lz
dGVySUQpYiwgYmFzZSwgb2Zmc2V0KTsKKyAgICB9CisKICAgICB2b2lkIG11bHNzX3JyKFhNTVJl
Z2lzdGVySUQgc3JjLCBYTU1SZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0
dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9Q
Ml9NVUxTRF9Wc2RXc2QsIChSZWdpc3RlcklEKWRzdCwgKFJlZ2lzdGVySUQpc3JjKTsKICAgICB9
CiAKKyAgICB2b2lkIHZtdWxzc19ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwg
WE1NUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZXhOZHNMaWdX
aWdDb21tdXRhdGl2ZVR3b0J5dGVPcChQUkVfU1NFX0YzLCBPUDJfTVVMU0RfVnNkV3NkLCAoUmVn
aXN0ZXJJRClkc3QsIChSZWdpc3RlcklEKWEsIChSZWdpc3RlcklEKWIpOworICAgIH0KKwogICAg
IHZvaWQgbXVsc3NfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBYTU1SZWdpc3RlcklE
IGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFX0YzKTsKICAg
ICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9NVUxTRF9Wc2RXc2QsIChSZWdpc3RlcklE
KWRzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKKyAgICB2b2lkIHZtdWxzc19tcihpbnQgb2Zm
c2V0LCBSZWdpc3RlcklEIGJhc2UsIFhNTVJlZ2lzdGVySUQgYiwgWE1NUmVnaXN0ZXJJRCBkc3Qp
CisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZXhOZHNMaWdXaWdUd29CeXRlT3AoUFJFX1NT
RV9GMywgT1AyX01VTFNEX1ZzZFdzZCwgKFJlZ2lzdGVySUQpZHN0LCAoUmVnaXN0ZXJJRCliLCBi
YXNlLCBvZmZzZXQpOworICAgIH0KKwogICAgIHZvaWQgcGV4dHJ3X2lycihpbnQgd2hpY2hXb3Jk
LCBYTU1SZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zv
cm1hdHRlci5wcmVmaXgoUFJFX1NTRV82Nik7CkBAIC0zMDY4LDYgKzMxMTksNDYgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBwdXRJbnRVbmNoZWNrZWQocmVpbnRlcnByZXRfY2FzdDxpbnQz
Ml90PihhZGRyZXNzKSk7CiAgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCB0d29CeXRlc1ZleChPbmVCeXRlT3Bjb2RlSUQgc2ltZFByZWZpeCwgUmVn
aXN0ZXJJRCBpbk9wUmVnLCBSZWdpc3RlcklEIHIpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgcHV0Qnl0ZVVuY2hlY2tlZChWZXhQcmVmaXg6OlR3b0J5dGVzKTsKKworICAgICAgICAg
ICAgICAgIHVpbnQ4X3Qgc2Vjb25kQnl0ZSA9IHZleEVuY29kZVNpbWRQcmVmaXgoc2ltZFByZWZp
eCk7CisgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSB8PSAofmluT3BSZWcgJiAweGYpIDw8IDM7
CisgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSB8PSAhcmVnUmVxdWlyZXNSZXgocikgPDwgNzsK
KyAgICAgICAgICAgICAgICBwdXRCeXRlVW5jaGVja2VkKHNlY29uZEJ5dGUpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdGhyZWVCeXRlc1ZleE5kcyhP
bmVCeXRlT3Bjb2RlSUQgc2ltZFByZWZpeCwgVmV4SW1wbGllZEJ5dGVzIGltcGxpZWRCeXRlcywg
UmVnaXN0ZXJJRCByLCBSZWdpc3RlcklEIGluT3BSZWcsIFJlZ2lzdGVySUQgYikKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBwdXRCeXRlVW5jaGVja2VkKFZleFByZWZpeDo6VGhyZWVC
eXRlcyk7CisKKyAgICAgICAgICAgICAgICB1aW50OF90IHNlY29uZEJ5dGUgPSBzdGF0aWNfY2Fz
dDx1aW50OF90PihpbXBsaWVkQnl0ZXMpOworICAgICAgICAgICAgICAgIHNlY29uZEJ5dGUgfD0g
IXJlZ1JlcXVpcmVzUmV4KHIpIDw8IDc7CisgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSB8PSAx
IDw8IDY7IC8vIFJFWC5YCisgICAgICAgICAgICAgICAgc2Vjb25kQnl0ZSB8PSAhcmVnUmVxdWly
ZXNSZXgoYikgPDwgNTsKKyAgICAgICAgICAgICAgICBwdXRCeXRlVW5jaGVja2VkKHNlY29uZEJ5
dGUpOworCisgICAgICAgICAgICAgICAgdWludDhfdCB0aGlyZEJ5dGUgPSB2ZXhFbmNvZGVTaW1k
UHJlZml4KHNpbWRQcmVmaXgpOworICAgICAgICAgICAgICAgIHRoaXJkQnl0ZSB8PSAofmluT3BS
ZWcgJiAweGYpIDw8IDM7CisgICAgICAgICAgICAgICAgcHV0Qnl0ZVVuY2hlY2tlZCh0aGlyZEJ5
dGUpOworICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgdWludDhf
dCB2ZXhFbmNvZGVTaW1kUHJlZml4KE9uZUJ5dGVPcGNvZGVJRCBzaW1kUHJlZml4KQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoc2ltZFByZWZpeCkgeworICAgICAgICAg
ICAgICAgIGNhc2UgMHg2NjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAg
ICAgICAgICAgY2FzZSAweEYzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAg
ICAgICAgICAgICBjYXNlIDB4RjI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAgICAgfQorCiAgICAgICAgIH07CiAKICAgICAgICAgLy8gV29yZC1zaXpl
ZCBvcGVyYW5kcyAvIG5vIG9wZXJhbmQgaW5zdHJ1Y3Rpb24gZm9ybWF0dGVycy4KQEAgLTMxODks
NiArMzI4MCwzMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgd3JpdGVyLm1lbW9yeU1vZFJNKHJl
ZywgYWRkcmVzcyk7CiAgICAgICAgIH0KICNlbmRpZgorICAgICAgICB2b2lkIHZleE5kc0xpZ1dp
Z0NvbW11dGF0aXZlVHdvQnl0ZU9wKE9uZUJ5dGVPcGNvZGVJRCBzaW1kUHJlZml4LCBUd29CeXRl
T3Bjb2RlSUQgb3Bjb2RlLCBSZWdpc3RlcklEIGRlc3QsIFJlZ2lzdGVySUQgYSwgUmVnaXN0ZXJJ
RCBiKQorICAgICAgICB7CisgICAgICAgICAgICBTaW5nbGVJbnN0cnVjdGlvbkJ1ZmZlcldyaXRl
ciB3cml0ZXIobV9idWZmZXIpOworCisgICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGEgY29t
bXV0YXRpdmUgb3BlcmF0aW9uLCB3ZSBjYW4gdHJ5IHN3aXRjaGluZyB0aGUgYXJndW1lbnRzLgor
ICAgICAgICAgICAgaWYgKHJlZ1JlcXVpcmVzUmV4KGIpKQorICAgICAgICAgICAgICAgIHN0ZDo6
c3dhcChhLCBiKTsKKworICAgICAgICAgICAgaWYgKHJlZ1JlcXVpcmVzUmV4KGIpKQorICAgICAg
ICAgICAgICAgIHdyaXRlci50aHJlZUJ5dGVzVmV4TmRzKHNpbWRQcmVmaXgsIFZleEltcGxpZWRC
eXRlczo6VHdvQnl0ZXNPcCwgZGVzdCwgYSwgYik7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgd3JpdGVyLnR3b0J5dGVzVmV4KHNpbWRQcmVmaXgsIGEsIGRlc3QpOworICAgICAg
ICAgICAgd3JpdGVyLnB1dEJ5dGVVbmNoZWNrZWQob3Bjb2RlKTsKKyAgICAgICAgICAgIHdyaXRl
ci5yZWdpc3Rlck1vZFJNKGRlc3QsIGIpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB2ZXhO
ZHNMaWdXaWdUd29CeXRlT3AoT25lQnl0ZU9wY29kZUlEIHNpbWRQcmVmaXgsIFR3b0J5dGVPcGNv
ZGVJRCBvcGNvZGUsIFJlZ2lzdGVySUQgZGVzdCwgUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGJh
c2UsIGludCBvZmZzZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbmdsZUluc3RydWN0aW9u
QnVmZmVyV3JpdGVyIHdyaXRlcihtX2J1ZmZlcik7CisgICAgICAgICAgICBpZiAocmVnUmVxdWly
ZXNSZXgoYmFzZSkpCisgICAgICAgICAgICAgICAgd3JpdGVyLnRocmVlQnl0ZXNWZXhOZHMoc2lt
ZFByZWZpeCwgVmV4SW1wbGllZEJ5dGVzOjpUd29CeXRlc09wLCBkZXN0LCBhLCBiYXNlKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB3cml0ZXIudHdvQnl0ZXNWZXgoc2ltZFBy
ZWZpeCwgYSwgZGVzdCk7CisgICAgICAgICAgICB3cml0ZXIucHV0Qnl0ZVVuY2hlY2tlZChvcGNv
ZGUpOworICAgICAgICAgICAgd3JpdGVyLm1lbW9yeU1vZFJNKGRlc3QsIGJhc2UsIG9mZnNldCk7
CisgICAgICAgIH0KIAogICAgICAgICB2b2lkIHRocmVlQnl0ZU9wKFR3b0J5dGVPcGNvZGVJRCB0
d29CeXRlUHJlZml4LCBUaHJlZUJ5dGVPcGNvZGVJRCBvcGNvZGUpCiAgICAgICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggYWUyNDcwMzYyMmUwMTVl
NWU5ZmFlMGRmY2FiMDU5N2IzYTc1NWMzYy4uYTU0NzJmN2RkODAwZGZmNDFjNDlmNWE4NjY5Njc3
N2RkNTY1ODNjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAK
QEAgLTcxNSw4ICs3MTUsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gb3ZlciB0aHJlZSBvcGVy
YW5kIGZvcm1zLgogCiAgICAgICAgIGlmIChsZWZ0ICE9IHJpZ2h0KSB7CisgICAgICAgICAgICBB
cmdQcm9taXNlIGxlZnRBZGRyID0gbG9hZFByb21pc2UobGVmdCk7CisgICAgICAgICAgICBpZiAo
aXNWYWxpZEZvcm0ob3Bjb2RlLCBsZWZ0QWRkci5raW5kKCksIEFyZzo6VG1wLCBBcmc6OlRtcCkp
IHsKKyAgICAgICAgICAgICAgICBhcHBlbmQob3Bjb2RlLCBsZWZ0QWRkci5jb25zdW1lKCp0aGlz
KSwgdG1wKHJpZ2h0KSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgIGlmIChjb21tdXRhdGl2aXR5ID09IENvbW11dGF0aXZlKSB7
Ci0gICAgICAgICAgICAgICAgQXJnUHJvbWlzZSBsZWZ0QWRkciA9IGxvYWRQcm9taXNlKGxlZnQp
OwogICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShvcGNvZGUsIGxlZnRBZGRyLmtpbmQo
KSwgQXJnOjpUbXApKSB7CiAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChyZWxheGVkTW92ZUZv
clR5cGUobV92YWx1ZS0+dHlwZSgpKSwgdG1wKHJpZ2h0KSwgcmVzdWx0KTsKICAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kKG9wY29kZSwgbGVmdEFkZHIuY29uc3VtZSgqdGhpcyksIHJlc3VsdCk7
CkBAIC03MjUsNiArNzMwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIEFyZ1Byb21pc2UgcmlnaHRBZGRyID0gbG9hZFByb21pc2UocmlnaHQpOworICAgICAgICAg
ICAgaWYgKGlzVmFsaWRGb3JtKG9wY29kZSwgQXJnOjpUbXAsIHJpZ2h0QWRkci5raW5kKCksIEFy
Zzo6VG1wKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChvcGNvZGUsIHRtcChsZWZ0KSwgcmln
aHRBZGRyLmNvbnN1bWUoKnRoaXMpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShvcGNvZGUsIHJpZ2h0
QWRkci5raW5kKCksIEFyZzo6VG1wKSkgewogICAgICAgICAgICAgICAgIGFwcGVuZChyZWxheGVk
TW92ZUZvclR5cGUobV92YWx1ZS0+dHlwZSgpKSwgdG1wKGxlZnQpLCByZXN1bHQpOwogICAgICAg
ICAgICAgICAgIGFwcGVuZChvcGNvZGUsIHJpZ2h0QWRkci5jb25zdW1lKCp0aGlzKSwgcmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGlu
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAppbmRl
eCA5OTBkOTMwZDAzODdhNDFkYTMwYTVlNDkxYjc4ZmYyYmY5MzljMGQwLi5lNDRiY2ZjZDdlNzc0
MzFmZWM0NTUzZDczZDNlODhhNjFhZjc1MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCkBAIC0xODAsMTcgKzE4MCwyNCBAQCBpbmxpbmUgT3B0
aW9uYWw8dW5zaWduZWQ+IEluc3Q6OnNob3VsZFRyeUFsaWFzaW5nRGVmKCkKICAgICBjYXNlIE9y
NjQ6CiAgICAgY2FzZSBYb3IzMjoKICAgICBjYXNlIFhvcjY0OgotICAgIGNhc2UgQWRkRG91Ymxl
OgotICAgIGNhc2UgQWRkRmxvYXQ6CiAgICAgY2FzZSBBbmRGbG9hdDoKICAgICBjYXNlIEFuZERv
dWJsZToKLSAgICBjYXNlIE11bERvdWJsZToKLSAgICBjYXNlIE11bEZsb2F0OgogICAgIGNhc2Ug
WG9yRG91YmxlOgogICAgIGNhc2UgWG9yRmxvYXQ6CiAgICAgICAgIGlmIChhcmdzLnNpemUoKSA9
PSAzKQogICAgICAgICAgICAgcmV0dXJuIDI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRk
RG91YmxlOgorICAgIGNhc2UgQWRkRmxvYXQ6CisgICAgY2FzZSBNdWxEb3VibGU6CisgICAgY2Fz
ZSBNdWxGbG9hdDoKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgICAgICBpZiAoTWFj
cm9Bc3NlbWJsZXI6OnN1cHBvcnRzQVZYKCkpCisgICAgICAgICAgICByZXR1cm4gTnVsbG9wdDsK
KyNlbmRpZgorICAgICAgICBpZiAoYXJncy5zaXplKCkgPT0gMykKKyAgICAgICAgICAgIHJldHVy
biAyOworICAgICAgICBicmVhazsKICAgICBjYXNlIEJyYW5jaEFkZDMyOgogICAgIGNhc2UgQnJh
bmNoQWRkNjQ6CiAgICAgICAgIGlmIChhcmdzLnNpemUoKSA9PSA0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKaW5kZXggNjUyNDk4ZmNkYmExOWNmN2QyYTUwODlkYWJi
NmQ0ZjBhOWI1ODdmMC4uNzcyNTY2MmUzNjM3OGVjOTFkYzAzN2ZkZWY5N2JiZmI0ZjA4ZDg1MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC0xNjMzLDYgKzE2
MzMsMTUxIEBAIHZvaWQgdGVzdFNodWZmbGVTaGlmdERvdWJsZSgpCiAgICAgQ0hFQ0sodGhpbmdz
WzNdID09IDMpOwogfQogCisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKK3ZvaWQgdGVzdFg4
NlZNVUxTRCgpCit7CisgICAgQjM6OlByb2NlZHVyZSBwcm9jOworICAgIENvZGUmIGNvZGUgPSBw
cm9jLmNvZGUoKTsKKworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgcm9vdC0+YXBwZW5kKE11bERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OmFyZ3VtZW50
RlBSMCksIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjEpLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRG
UFIyKSk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZv
Ojphcmd1bWVudEZQUjIpLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290
LT5hcHBlbmQoUmV0RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIp
KTsKKworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAyLjQsIDQuMiwgcHVy
ZU5hTigpKSA9PSAyLjQgKiA0LjIpOworfQorCit2b2lkIHRlc3RYODZWTVVMU0REZXN0UmV4KCkK
K3sKKyAgICBCMzo6UHJvY2VkdXJlIHByb2M7CisgICAgQ29kZSYgY29kZSA9IHByb2MuY29kZSgp
OworCisgICAgQmFzaWNCbG9jayogcm9vdCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICByb290LT5h
cHBlbmQoTXVsRG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIwKSwgVG1w
KEZQUkluZm86OmFyZ3VtZW50RlBSMSksIFRtcChYODZSZWdpc3RlcnM6OnhtbTE1KSk7CisgICAg
cm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChYODZSZWdpc3RlcnM6OnhtbTE1
KSwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisgICAgcm9vdC0+YXBwZW5kKFJldERv
dWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisKKyAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMi40LCA0LjIsIHB1cmVOYU4oKSkgPT0gMi40
ICogNC4yKTsKK30KKwordm9pZCB0ZXN0WDg2Vk1VTFNET3AxRGVzdFJleCgpCit7CisgICAgQjM6
OlByb2NlZHVyZSBwcm9jOworICAgIENvZGUmIGNvZGUgPSBwcm9jLmNvZGUoKTsKKworICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVE
b3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjApLCBUbXAoWDg2UmVnaXN0
ZXJzOjp4bW0xNCkpOworICAgIHJvb3QtPmFwcGVuZChNdWxEb3VibGUsIG51bGxwdHIsIFRtcChY
ODZSZWdpc3RlcnM6OnhtbTE0KSwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMSksIFRtcChYODZS
ZWdpc3RlcnM6OnhtbTE1KSk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIs
IFRtcChYODZSZWdpc3RlcnM6OnhtbTE1KSwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7
CisgICAgcm9vdC0+YXBwZW5kKFJldERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OnJldHVy
blZhbHVlRlBSKSk7CisKKyAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMi40
LCA0LjIsIHB1cmVOYU4oKSkgPT0gMi40ICogNC4yKTsKK30KKwordm9pZCB0ZXN0WDg2Vk1VTFNE
T3AyRGVzdFJleCgpCit7CisgICAgQjM6OlByb2NlZHVyZSBwcm9jOworICAgIENvZGUmIGNvZGUg
PSBwcm9jLmNvZGUoKTsKKworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1
bWVudEZQUjEpLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNCkpOworICAgIHJvb3QtPmFwcGVuZChN
dWxEb3VibGUsIG51bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjApLCBUbXAoWDg2UmVn
aXN0ZXJzOjp4bW0xNCksIFRtcChYODZSZWdpc3RlcnM6OnhtbTE1KSk7CisgICAgcm9vdC0+YXBw
ZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChYODZSZWdpc3RlcnM6OnhtbTE1KSwgVG1wKEZQ
UkluZm86OnJldHVyblZhbHVlRlBSKSk7CisgICAgcm9vdC0+YXBwZW5kKFJldERvdWJsZSwgbnVs
bHB0ciwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisKKyAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgMi40LCA0LjIsIHB1cmVOYU4oKSkgPT0gMi40ICogNC4yKTsK
K30KKwordm9pZCB0ZXN0WDg2Vk1VTFNET3BzRGVzdFJleCgpCit7CisgICAgQjM6OlByb2NlZHVy
ZSBwcm9jOworICAgIENvZGUmIGNvZGUgPSBwcm9jLmNvZGUoKTsKKworICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51
bGxwdHIsIFRtcChGUFJJbmZvOjphcmd1bWVudEZQUjApLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0x
NCkpOworICAgIHJvb3QtPmFwcGVuZChNb3ZlRG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6
YXJndW1lbnRGUFIxKSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTMpKTsKKyAgICByb290LT5hcHBl
bmQoTXVsRG91YmxlLCBudWxscHRyLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNCksIFRtcChYODZS
ZWdpc3RlcnM6OnhtbTEzKSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpKTsKKyAgICByb290LT5h
cHBlbmQoTW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpLCBUbXAo
RlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290LT5hcHBlbmQoUmV0RG91YmxlLCBu
dWxscHRyLCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKworICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCAyLjQsIDQuMiwgcHVyZU5hTigpKSA9PSAyLjQgKiA0LjIp
OworfQorCit2b2lkIHRlc3RYODZWTVVMU0RBZGRyKCkKK3sKKyAgICBCMzo6UHJvY2VkdXJlIHBy
b2M7CisgICAgQ29kZSYgY29kZSA9IHByb2MuY29kZSgpOworCisgICAgQmFzaWNCbG9jayogcm9v
dCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICByb290LT5hcHBlbmQoTXVsRG91YmxlLCBudWxscHRy
LCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIwKSwgQXJnOjphZGRyKFRtcChHUFJJbmZvOjphcmd1
bWVudEdQUjApLCAtIDE2KSwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMikpOworICAgIHJvb3Qt
PmFwcGVuZChNb3ZlRG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIyKSwg
VG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisgICAgcm9vdC0+YXBwZW5kKFJldERvdWJs
ZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisKKyAgICBkb3VibGUg
c2Vjb25kQXJnID0gNC4yOworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAy
LjQsICZzZWNvbmRBcmcgKyAyLCBwdXJlTmFOKCkpID09IDIuNCAqIDQuMik7Cit9CisKK3ZvaWQg
dGVzdFg4NlZNVUxTREFkZHJPcFJleEFkZHIoKQoreworICAgIEIzOjpQcm9jZWR1cmUgcHJvYzsK
KyAgICBDb2RlJiBjb2RlID0gcHJvYy5jb2RlKCk7CisKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
Y29kZS5hZGRCbG9jaygpOworICAgIHJvb3QtPmFwcGVuZChNb3ZlLCBudWxscHRyLCBUbXAoR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSwgVG1wKFg4NlJlZ2lzdGVyczo6cjEzKSk7CisgICAgcm9vdC0+
YXBwZW5kKE11bERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMCksIEFy
Zzo6YWRkcihUbXAoWDg2UmVnaXN0ZXJzOjpyMTMpLCAtIDE2KSwgVG1wKEZQUkluZm86OmFyZ3Vt
ZW50RlBSMikpOworICAgIHJvb3QtPmFwcGVuZChNb3ZlRG91YmxlLCBudWxscHRyLCBUbXAoRlBS
SW5mbzo6YXJndW1lbnRGUFIyKSwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisgICAg
cm9vdC0+YXBwZW5kKFJldERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OnJldHVyblZhbHVl
RlBSKSk7CisKKyAgICBkb3VibGUgc2Vjb25kQXJnID0gNC4yOworICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jLCAyLjQsICZzZWNvbmRBcmcgKyAyLCBwdXJlTmFOKCkpID09IDIu
NCAqIDQuMik7Cit9CisKK3ZvaWQgdGVzdFg4NlZNVUxTRERlc3RSZXhBZGRyKCkKK3sKKyAgICBC
Mzo6UHJvY2VkdXJlIHByb2M7CisgICAgQ29kZSYgY29kZSA9IHByb2MuY29kZSgpOworCisgICAg
QmFzaWNCbG9jayogcm9vdCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICByb290LT5hcHBlbmQoTXVs
RG91YmxlLCBudWxscHRyLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIwKSwgQXJnOjphZGRyKFRt
cChHUFJJbmZvOjphcmd1bWVudEdQUjApLCAxNiksIFRtcChYODZSZWdpc3RlcnM6OnhtbTE1KSk7
CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51bGxwdHIsIFRtcChYODZSZWdpc3RlcnM6
OnhtbTE1KSwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisgICAgcm9vdC0+YXBwZW5k
KFJldERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86OnJldHVyblZhbHVlRlBSKSk7CisKKyAg
ICBkb3VibGUgc2Vjb25kQXJnID0gNC4yOworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCAyLjQsICZzZWNvbmRBcmcgLSAyLCBwdXJlTmFOKCkpID09IDIuNCAqIDQuMik7Cit9
CisKK3ZvaWQgdGVzdFg4NlZNVUxTRFJlZ09wRGVzdFJleEFkZHIoKQoreworICAgIEIzOjpQcm9j
ZWR1cmUgcHJvYzsKKyAgICBDb2RlJiBjb2RlID0gcHJvYy5jb2RlKCk7CisKKyAgICBCYXNpY0Js
b2NrKiByb290ID0gY29kZS5hZGRCbG9jaygpOworICAgIHJvb3QtPmFwcGVuZChNb3ZlRG91Ymxl
LCBudWxscHRyLCBUbXAoRlBSSW5mbzo6YXJndW1lbnRGUFIwKSwgVG1wKFg4NlJlZ2lzdGVyczo6
eG1tMTQpKTsKKyAgICByb290LT5hcHBlbmQoTXVsRG91YmxlLCBudWxscHRyLCBBcmc6OmFkZHIo
VG1wKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLCBUbXAoWDg2UmVnaXN0ZXJzOjp4bW0xNCksIFRt
cChYODZSZWdpc3RlcnM6OnhtbTE1KSk7CisgICAgcm9vdC0+YXBwZW5kKE1vdmVEb3VibGUsIG51
bGxwdHIsIFRtcChYODZSZWdpc3RlcnM6OnhtbTE1KSwgVG1wKEZQUkluZm86OnJldHVyblZhbHVl
RlBSKSk7CisgICAgcm9vdC0+YXBwZW5kKFJldERvdWJsZSwgbnVsbHB0ciwgVG1wKEZQUkluZm86
OnJldHVyblZhbHVlRlBSKSk7CisKKyAgICBkb3VibGUgc2Vjb25kQXJnID0gNC4yOworICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAyLjQsICZzZWNvbmRBcmcsIHB1cmVOYU4o
KSkgPT0gMi40ICogNC4yKTsKK30KKwordm9pZCB0ZXN0WDg2Vk1VTFNEQWRkck9wRGVzdFJleEFk
ZHIoKQoreworICAgIEIzOjpQcm9jZWR1cmUgcHJvYzsKKyAgICBDb2RlJiBjb2RlID0gcHJvYy5j
b2RlKCk7CisKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gY29kZS5hZGRCbG9jaygpOworICAgIHJv
b3QtPmFwcGVuZChNb3ZlLCBudWxscHRyLCBUbXAoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwgVG1w
KFg4NlJlZ2lzdGVyczo6cjEzKSk7CisgICAgcm9vdC0+YXBwZW5kKE11bERvdWJsZSwgbnVsbHB0
ciwgVG1wKEZQUkluZm86OmFyZ3VtZW50RlBSMCksIEFyZzo6YWRkcihUbXAoWDg2UmVnaXN0ZXJz
OjpyMTMpLCA4KSwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpKTsKKyAgICByb290LT5hcHBlbmQo
TW92ZURvdWJsZSwgbnVsbHB0ciwgVG1wKFg4NlJlZ2lzdGVyczo6eG1tMTUpLCBUbXAoRlBSSW5m
bzo6cmV0dXJuVmFsdWVGUFIpKTsKKyAgICByb290LT5hcHBlbmQoUmV0RG91YmxlLCBudWxscHRy
LCBUbXAoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpKTsKKworICAgIGRvdWJsZSBzZWNvbmRBcmcg
PSA0LjI7CisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDIuNCwgJnNlY29u
ZEFyZyAtIDEsIHB1cmVOYU4oKSkgPT0gMi40ICogNC4yKTsKK30KKworI2VuZGlmCisKICNkZWZp
bmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYg
KCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGJyZWFr
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE2OTMsNiArMTgzOCwyMCBAQCB2
b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RTaHVmZmxlU3dhcERvdWJs
ZSgpKTsKICAgICBSVU4odGVzdFNodWZmbGVTaGlmdERvdWJsZSgpKTsKIAorI2lmIENQVShYODYp
IHx8IENQVShYODZfNjQpCisgICAgUlVOKHRlc3RYODZWTVVMU0QoKSk7CisgICAgUlVOKHRlc3RY
ODZWTVVMU0REZXN0UmV4KCkpOworICAgIFJVTih0ZXN0WDg2Vk1VTFNET3AxRGVzdFJleCgpKTsK
KyAgICBSVU4odGVzdFg4NlZNVUxTRE9wMkRlc3RSZXgoKSk7CisgICAgUlVOKHRlc3RYODZWTVVM
U0RPcHNEZXN0UmV4KCkpOworCisgICAgUlVOKHRlc3RYODZWTVVMU0RBZGRyKCkpOworICAgIFJV
Tih0ZXN0WDg2Vk1VTFNEQWRkck9wUmV4QWRkcigpKTsKKyAgICBSVU4odGVzdFg4NlZNVUxTRERl
c3RSZXhBZGRyKCkpOworICAgIFJVTih0ZXN0WDg2Vk1VTFNEUmVnT3BEZXN0UmV4QWRkcigpKTsK
KyAgICBSVU4odGVzdFg4NlZNVUxTREFkZHJPcERlc3RSZXhBZGRyKCkpOworI2VuZGlmCisKICAg
ICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAgICB1c2FnZSgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>