<?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>85128</bug_id>
          
          <creation_ts>2012-04-27 22:20:11 -0700</creation_ts>
          <short_desc>Made WeakSet::allocate() static and removed its JSGlobalData argument</short_desc>
          <delta_ts>2012-04-27 23:34:04 -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>528+ (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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>612152</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-27 22:20:11 -0700</bug_when>
    <thetext>Made WeakSet::allocate() static and removed its JSGlobalData argument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612156</commentid>
    <comment_count>1</comment_count>
      <attachid>139339</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-27 22:42:02 -0700</bug_when>
    <thetext>Created attachment 139339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612159</commentid>
    <comment_count>2</comment_count>
      <attachid>139339</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-27 22:55:56 -0700</bug_when>
    <thetext>Comment on attachment 139339
Patch

Attachment 139339 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12552502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612161</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-27 22:56:53 -0700</bug_when>
    <thetext>Committed r115545: &lt;http://trac.webkit.org/changeset/115545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612174</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-27 23:33:26 -0700</bug_when>
    <thetext>Reopen, because it broke the Qt build. Why did you land it when the EWS said you will break the build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612175</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-27 23:34:04 -0700</bug_when>
    <thetext>Oh fix was landed too - http://trac.webkit.org/changeset/115546</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139339</attachid>
            <date>2012-04-27 22:42:02 -0700</date>
            <delta_ts>2012-04-27 22:55:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85128-20120427224159.patch</filename>
            <type>text/plain</type>
            <size>34365</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE1NTQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDEyLTA0LTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFkZSBXZWFrU2V0OjphbGxvY2F0ZSgpIHN0YXRpYyBhbmQgcmVtb3ZlZCBpdHMgSlNHbG9i
YWxEYXRhIGFyZ3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZCBmYXN0ZXIgZmluYWxpemF0aW9uLgorCisgICAg
ICAgIFdlYWtTZXQ6OmFsbG9jYXRlKCkgbm93IGRlZHVjZXMgd2hpY2ggV2Vha1NldCB0byBhbGxv
Y2F0ZSBmcm9tIGJhc2VkIG9uCisgICAgICAgIGl0cyBKU0NlbGwqIGFyZ3VtZW50LiAoQ3VycmVu
dGx5LCB0aGVyZSdzIG9ubHkgb25lIFdlYWtTZXQsIGJ1dCBzb29uCisgICAgICAgIHRoZXJlIHdp
bGwgYmUgbWFueS4pCisKKyAgICAgICAgVGhpcyB3YXMgYSBnbG9iYWwgcmVwbGFjZSBvZiAiZ2xv
YmFsRGF0YS5oZWFwLndlYWtTZXQoKS0+YWxsb2NhdGUiIHdpdGgKKyAgICAgICAgIldlYWtTZXQ6
OmFsbG9jYXRlIiwgcGx1cyBieS1oYW5kIHJlbW92YWwgb2YgdGhlIEpTR2xvYmFsRGF0YSBhcmd1
bWVudC4KKworICAgICAgICAqIGhlYXAvV2Vha1NldElubGluZXMuaDogQ29waWVkIGZyb20gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldC5oLgorCisgICAgICAgIEkgaGFkIHRvIHNw
bGl0IG91dCBXZWFrU2V0OjphbGxvY2F0ZSgpIGluIHRvIGEgc2VwYXJhdGUgaGVhZGVyIHRvIGF2
b2lkCisgICAgICAgIGEgY3ljbGUuCisKKyAgICAgICAgKEpTQzo6V2Vha1NldDo6YWxsb2NhdGUp
OiBXZSBjYW4gbWFrcyB0aGUgcG9pbnRlciB3ZSdyZSBwYXNzZWQgdG8KKyAgICAgICAgZmlndXJl
IG91dCB3aGVyZSB0byBhbGxvY2F0ZSBvdXIgV2Vha0ltcGwuIChTb29uLCB3ZSdsbCB1c2UgdGhp
cyB0bworICAgICAgICBhc3NvY2lhdGUgdGhlIFdlYWtJbXBsIHdpdGggdGhlIEdDIGJsb2NrIGl0
IHJlZmVyZW5jZXMuKQorCiAyMDEyLTA0LTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBhbGlnbmVkIGFsbG9jYXRpb24gZm9yIFdlYWtC
bG9jawpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJl
dmlzaW9uIDExNTUzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDcgQEAgamF2YXNjcmlwdGNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0ltcGwuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWtTZXQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1Nl
dElubGluZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1JlZmVyZW5jZUhh
cnZlc3Rlci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Xcml0ZUJhcnJpZXJTdXBw
b3J0LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV3JpdGVCYXJyaWVyU3VwcG9y
dC5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCShy
ZXZpc2lvbiAxMTU1MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
Z3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTU2LDYgKzE1Niw3IEBACiAgICAgICAgICAgICAnaGVh
cC9XZWFrSW1wbC5oJywKICAgICAgICAgICAgICdoZWFwL1dlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIu
aCcsCiAgICAgICAgICAgICAnaGVhcC9XZWFrU2V0LmgnLAorICAgICAgICAgICAgJ2hlYXAvV2Vh
a1NldElubGluZXMuaCcsCiAgICAgICAgICAgICAnaGVhcC9Xcml0ZUJhcnJpZXJTdXBwb3J0Lmgn
LAogICAgICAgICAgICAgJ2RlYnVnZ2VyL0RlYnVnZ2VyLmgnLAogICAgICAgICAgICAgJ2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oJywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAxMTU1
MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+Ojppbml0KEV4ZWMKIAogICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzUHRy
ID0gY2xhc3NSZWYoKTsganNDbGFzc1B0cjsganNDbGFzc1B0ciA9IGpzQ2xhc3NQdHItPnBhcmVu
dENsYXNzKSB7CiAgICAgICAgIGlmIChqc0NsYXNzUHRyLT5maW5hbGl6ZSkgewotICAgICAgICAg
ICAgZXhlYy0+Z2xvYmFsRGF0YSgpLmhlYXAud2Vha1NldCgpLT5hbGxvY2F0ZSh0aGlzLCBtX2Nh
bGxiYWNrT2JqZWN0RGF0YS5nZXQoKSwgY2xhc3NSZWYoKSk7CisgICAgICAgICAgICBXZWFrU2V0
OjphbGxvY2F0ZSh0aGlzLCBtX2NhbGxiYWNrT2JqZWN0RGF0YS5nZXQoKSwgY2xhc3NSZWYoKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAkocmV2aXNpb24gMTE1NTMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEx
LDcgKzIxMSw3IEBAIEpTT2JqZWN0KiBPcGFxdWVKU0NsYXNzOjpwcm90b3R5cGUoRXhlY1MKIAog
ICAgIGlmICghanNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlKSB7CiAgICAgICAgIC8vIFJlY3Vy
c2l2ZSwgYnV0IHNob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igb3VyIHB1cnBvc2VzCi0gICAgICAg
IGpzQ2xhc3NEYXRhLmNhY2hlZFByb3RvdHlwZSA9IFBhc3NXZWFrPEpTT2JqZWN0PihleGVjLT5n
bG9iYWxEYXRhKCksIEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OmNyZWF0ZShl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+Y2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUoKSwgcHJvdG90eXBlQ2xhc3MsICZqc0NsYXNz
RGF0YSksIDApOyAvLyBzZXQganNDbGFzc0RhdGEgYXMgdGhlIG9iamVjdCdzIHByaXZhdGUgZGF0
YSwgc28gaXQgY2FuIGNsZWFyIG91ciByZWZlcmVuY2Ugb24gZGVzdHJ1Y3Rpb24KKyAgICAgICAg
anNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlID0gUGFzc1dlYWs8SlNPYmplY3Q+KEpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tPYmplY3RT
dHJ1Y3R1cmUoKSwgcHJvdG90eXBlQ2xhc3MsICZqc0NsYXNzRGF0YSksIDApOyAvLyBzZXQganND
bGFzc0RhdGEgYXMgdGhlIG9iamVjdCdzIHByaXZhdGUgZGF0YSwgc28gaXQgY2FuIGNsZWFyIG91
ciByZWZlcmVuY2Ugb24gZGVzdHJ1Y3Rpb24KICAgICAgICAgaWYgKHBhcmVudENsYXNzKSB7CiAg
ICAgICAgICAgICBpZiAoSlNPYmplY3QqIHByb3RvdHlwZSA9IHBhcmVudENsYXNzLT5wcm90b3R5
cGUoZXhlYykpCiAgICAgICAgICAgICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlLT5z
ZXRQcm90b3R5cGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm90b3R5cGUpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJ
KHJldmlzaW9uIDExNTUzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTQ2LDYgKzIxNDYsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caGVhcFxXZWFrU2V0SW5saW5lcy5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxoZWFwXFdlYWtJbXBs
LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDExNTUzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsNiArMTk1
LDcgQEAKIAkJMTQxMjExMzQwQTQ4Nzk1ODAwNDgwMjU1IC8qIG1pbmlkb20uYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTIxMTAyMEE0ODc4MDkwMDQ4
MDI1NSAvKiBtaW5pZG9tLmMgKi87IH07CiAJCTE0MTQ0OENCMTNBMTc2RUMwMEY1QkExQSAvKiBN
YXJrZWRCbG9ja1NldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQxNDQ4Q0ExM0ExNzZFQzAwRjVCQTFBIC8qIE1hcmtlZEJsb2NrU2V0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQxNDQ4Q0QxM0Ex
NzgzNzAwRjVCQTFBIC8qIFRpbnlCbG9vbUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxNDQ4Q0MxM0ExNzgzNzAwRjVCQTFBIC8qIFRpbnlC
bG9vbUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTE0MTUwMTMzMTU0QkIxM0YwMDVEOEM5OCAvKiBXZWFrU2V0SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxNTAxMzIxNTRCQjEz
RjAwNUQ4Qzk4IC8qIFdlYWtTZXRJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQyMEJFN0IxMEFBNkREQjAwRjQ1NUQyIC8qIFdlYWtS
YW5kb20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
MjBCRTdBMTBBQTZEREIwMEY0NTVEMiAvKiBXZWFrUmFuZG9tLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQyMTM1OUIwQTY3N0Y0RjAwQTgxOTVF
IC8qIEpTQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDIxMzU5QTBBNjc3RjRGMDBBODE5NUUgLyogSlNCYXNlLmNwcCAqLzsgfTsKIAkJMTQy
ODA4MjMxMDdFQzAyQzAwMTNFN0IyIC8qIERlYnVnZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODU4MDI1NTU5N0QwMUZGNjBGNyAvKiBE
ZWJ1Z2dlci5jcHAgKi87IH07CkBAIC04NjIsNiArODYzLDcgQEAKIAkJMTQxMjExMjAwQTQ4Nzkz
QzAwNDgwMjU1IC8qIG1pbmlkb20gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IG1pbmlkb207IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTE0MTQ0OENBMTNBMTc2RUMwMEY1QkExQSAvKiBNYXJrZWRCbG9ja1NldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXJrZWRCbG9ja1NldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDE0NDhDQzEzQTE3ODM3MDBGNUJBMUEgLyogVGlueUJsb29tRmls
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbnlCbG9vbUZpbHRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDE1MDEzMjE1NEJCMTNGMDA1RDhDOTgg
LyogV2Vha1NldElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vh
a1NldElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQyMEJFN0ExMEFB
NkREQjAwRjQ1NUQyIC8qIFdlYWtSYW5kb20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2Vha1JhbmRvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDIxMzU5
QTBBNjc3RjRGMDBBODE5NUUgLyogSlNCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0
MjcxMTM4MEE0NjBCQkIwMDgwRUVFQSAvKiBKU0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTU4
LDE0ICsxNTYwLDE0IEBACiAJCTE0MkUzMTJBMTM0RkYwQTYwMEFGQURCNSAvKiBoZWFwICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBNzUyMUUxMjE0Mjkx
NjlBMDAzQzhEMEMgLyogQ2FyZFNldC5oICovLAorCQkJCTE0NkIxNERCMTJFQjVCMTIwMDFCRUMx
QiAvKiBDb25zZXJ2YXRpdmVSb290cy5jcHAgKi8sCisJCQkJMTQ5REFBRjIxMkVCNTU5RDAwODNC
MTJCIC8qIENvbnNlcnZhdGl2ZVJvb3RzLmggKi8sCiAJCQkJQzJFQUQyRkIxNEYwMjQ5ODAwQTRC
MTU5IC8qIENvcGllZEFsbG9jYXRvci5oICovLAogCQkJCUMyQzhEMDJFMTRBM0NFRkMwMDU3OEU2
NSAvKiBDb3BpZWRCbG9jay5oICovLAogCQkJCUMyNDAzMDUzMTRCNDA0QzkwMDc5RUI2NCAvKiBD
b3BpZWRTcGFjZS5jcHAgKi8sCiAJCQkJQzJFQUEzRjgxNDlBODMwODAwRkNFMTEyIC8qIENvcGll
ZFNwYWNlLmggKi8sCiAJCQkJQzJDOEQwMkIxNEEzQzZCMjAwNTc4RTY1IC8qIENvcGllZFNwYWNl
SW5saW5lTWV0aG9kcy5oICovLAotCQkJCUE3NTIxRTEyMTQyOTE2OUEwMDNDOEQwQyAvKiBDYXJk
U2V0LmggKi8sCi0JCQkJMTQ2QjE0REIxMkVCNUIxMjAwMUJFQzFCIC8qIENvbnNlcnZhdGl2ZVJv
b3RzLmNwcCAqLywKLQkJCQkxNDlEQUFGMjEyRUI1NTlEMDA4M0IxMkIgLyogQ29uc2VydmF0aXZl
Um9vdHMuaCAqLywKIAkJCQkwRjJDNTU2RDE0NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nr
cy5jcHAgKi8sCiAJCQkJMEYyQzU1NkUxNDczOEYyRTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3Mu
aCAqLywKIAkJCQlCQ0JFMkNBRDE0RTk4NUFBMDAwNTkzQUQgLyogR0NBc3NlcnRpb25zLmggKi8s
CkBAIC0xNjA2LDEwICsxNjA4LDExIEBACiAJCQkJMTRFODRGOUExNEVFMUFDQzAwRDZENUQ0IC8q
IFdlYWtCbG9jay5oICovLAogCQkJCTE0RjcyNTYzMTRFRTI2NUUwMEIxNjUyQiAvKiBXZWFrSGFu
ZGxlT3duZXIuY3BwICovLAogCQkJCTE0RjcyNTY0MTRFRTI2NUUwMEIxNjUyQiAvKiBXZWFrSGFu
ZGxlT3duZXIuaCAqLywKLQkJCQkxNEU4NEY5QjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha1NldC5j
cHAgKi8sCi0JCQkJMTRFODRGOUMxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuaCAqLywKIAkJ
CQkxNEU4NEY5RDE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0ltcGwuaCAqLywKIAkJCQkwRjI0MkRB
NTEzRjNCMUJCMDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oICovLAorCQkJCTE0
RTg0RjlCMTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrU2V0LmNwcCAqLywKKwkJCQkxNEU4NEY5QzE0
RUUxQUNDMDBENkQ1RDQgLyogV2Vha1NldC5oICovLAorCQkJCTE0MTUwMTMyMTU0QkIxM0YwMDVE
OEM5OCAvKiBXZWFrU2V0SW5saW5lcy5oICovLAogCQkJCTBGQzgxNTA4MTQwNDNCQ0EwMENGQTYw
MyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCAqLywKIAkJCQkwRkM4MTUwOTE0MDQzQkQyMDBD
RkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9ydC5oICovLAogCQkJKTsKQEAgLTI1NjMsNiArMjU2
Niw3IEBACiAJCQkJODYxMkU0Q0QxNTIzODlFQzAwQzgzNkJFIC8qIE1hdGNoUmVzdWx0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjFFM0E0NjE1MzRDQkFGMDAwRjk0NTYgLyogREZHQXJndW1lbnRQ
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxRTNBNDcxNTM0Q0JCOTAwMEY5NDU2IC8q
IERGR0RvdWJsZUZvcm1hdFN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDE1MDEzMzE1NEJC
MTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDExNTUzMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgogI2luY2x1
ZGUgIlRyYWNpbmcuaCIKKyNpbmNsdWRlICJXZWFrU2V0SW5saW5lcy5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIApAQCAtOTUzLDcgKzk1NCw3
IEBAIHZvaWQgSGVhcDo6cmVsZWFzZUZyZWVCbG9ja3MoKQogCiB2b2lkIEhlYXA6OmFkZEZpbmFs
aXplcihKU0NlbGwqIGNlbGwsIEZpbmFsaXplciBmaW5hbGl6ZXIpCiB7Ci0gICAgd2Vha1NldCgp
LT5hbGxvY2F0ZShjZWxsLCAmbV9maW5hbGl6ZXJPd25lciwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oZmluYWxpemVyKSk7IC8vIEJhbGFuY2VkIGJ5IEZpbmFsaXplck93bmVyOjpmaW5hbGl6ZSgp
LgorICAgIFdlYWtTZXQ6OmFsbG9jYXRlKGNlbGwsICZtX2ZpbmFsaXplck93bmVyLCByZWludGVy
cHJldF9jYXN0PHZvaWQqPihmaW5hbGl6ZXIpKTsgLy8gQmFsYW5jZWQgYnkgRmluYWxpemVyT3du
ZXI6OmZpbmFsaXplKCkuCiB9CiAKIHZvaWQgSGVhcDo6RmluYWxpemVyT3duZXI6OmZpbmFsaXpl
KEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9QYXNzV2Vhay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Bhc3NXZWFrLmgJKHJldmlzaW9uIDExNTUzNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1Bhc3NXZWFrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgUGFzc1dlYWtfaAogCiAjaW5jbHVkZSAiSlNDZWxsLmgiCisjaW5jbHVkZSAi
V2Vha1NldElubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi9OdWxsUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4KQEAgLTU3LDcgKzU4
LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1dlYWsoKTsKICAgICBQYXNzV2VhayhzdGQ6Om51bGxw
dHJfdCk7Ci0gICAgUGFzc1dlYWsoSlNHbG9iYWxEYXRhJiwgR2V0VHlwZSwgV2Vha0hhbmRsZU93
bmVyKiA9IDAsIHZvaWQqIGNvbnRleHQgPSAwKTsKKyAgICBQYXNzV2VhayhHZXRUeXBlLCBXZWFr
SGFuZGxlT3duZXIqID0gMCwgdm9pZCogY29udGV4dCA9IDApOwogCiAgICAgLy8gSXQgc29tZXdo
YXQgYnJlYWtzIHRoZSB0eXBlIHN5c3RlbSB0byBhbGxvdyB0cmFuc2ZlciBvZiBvd25lcnNoaXAg
b3V0IG9mCiAgICAgLy8gYSBjb25zdCBQYXNzV2Vhay4gSG93ZXZlciwgaXQgbWFrZXMgaXQgbXVj
aCBlYXNpZXIgdG8gd29yayB3aXRoIFBhc3NXZWFrCkBAIC0xMTgsOCArMTE5LDggQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIFBhc3NXZWFrPFQ+OgogewogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgUGFzc1dlYWs8VD46OlBhc3NXZWFrKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgdHlwZW5hbWUgUGFzc1dlYWs8VD46OkdldFR5cGUgZ2V0VHlwZSwgV2Vha0hhbmRsZU93
bmVyKiB3ZWFrT3duZXIsIHZvaWQqIGNvbnRleHQpCi0gICAgOiBtX2ltcGwoZ2V0VHlwZSA/IGds
b2JhbERhdGEuaGVhcC53ZWFrU2V0KCktPmFsbG9jYXRlKGdldFR5cGUsIHdlYWtPd25lciwgY29u
dGV4dCkgOiAwKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFBhc3NXZWFrPFQ+OjpQYXNz
V2Vhayh0eXBlbmFtZSBQYXNzV2VhazxUPjo6R2V0VHlwZSBnZXRUeXBlLCBXZWFrSGFuZGxlT3du
ZXIqIHdlYWtPd25lciwgdm9pZCogY29udGV4dCkKKyAgICA6IG1faW1wbChnZXRUeXBlID8gV2Vh
a1NldDo6YWxsb2NhdGUoZ2V0VHlwZSwgd2Vha093bmVyLCBjb250ZXh0KSA6IDApCiB7CiB9CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgJKHJldmlzaW9uIDExNTUzNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCAr
MjcsOCBAQAogI2RlZmluZSBXZWFrX2gKIAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiUGFzc1dlYWsuaCIKKyNpbmNsdWRl
ICJXZWFrU2V0SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDAsNyArNDAsNyBA
QCBwdWJsaWM6CiAKICAgICBXZWFrKCk7CiAgICAgV2VhayhzdGQ6Om51bGxwdHJfdCk7Ci0gICAg
V2VhayhKU0dsb2JhbERhdGEmLCBHZXRUeXBlLCBXZWFrSGFuZGxlT3duZXIqID0gMCwgdm9pZCog
Y29udGV4dCA9IDApOworICAgIFdlYWsoR2V0VHlwZSwgV2Vha0hhbmRsZU93bmVyKiA9IDAsIHZv
aWQqIGNvbnRleHQgPSAwKTsKIAogICAgIGVudW0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnIHsg
SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH07CiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0OwpAQCAtNzgsOCArNzgsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
V2VhazxUPjo6V2VhCiB7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBXZWFrPFQ+
OjpXZWFrKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgdHlwZW5hbWUgV2VhazxUPjo6R2V0VHlw
ZSBnZXRUeXBlLCBXZWFrSGFuZGxlT3duZXIqIHdlYWtPd25lciwgdm9pZCogY29udGV4dCkKLSAg
ICA6IG1faW1wbChnZXRUeXBlID8gZ2xvYmFsRGF0YS5oZWFwLndlYWtTZXQoKS0+YWxsb2NhdGUo
Z2V0VHlwZSwgd2Vha093bmVyLCBjb250ZXh0KSA6IDApCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgV2VhazxUPjo6V2Vhayh0eXBlbmFtZSBXZWFrPFQ+OjpHZXRUeXBlIGdldFR5cGUsIFdl
YWtIYW5kbGVPd25lciogd2Vha093bmVyLCB2b2lkKiBjb250ZXh0KQorICAgIDogbV9pbXBsKGdl
dFR5cGUgPyBXZWFrU2V0OjphbGxvY2F0ZShnZXRUeXBlLCB3ZWFrT3duZXIsIGNvbnRleHQpIDog
MCkKIHsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaAkocmV2aXNp
b24gMTE1NTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpbmFsaXplQWxs
KCk7CiAgICAgfldlYWtTZXQoKTsKIAotICAgIFdlYWtJbXBsKiBhbGxvY2F0ZShKU1ZhbHVlLCBX
ZWFrSGFuZGxlT3duZXIqID0gMCwgdm9pZCogY29udGV4dCA9IDApOworICAgIHN0YXRpYyBXZWFr
SW1wbCogYWxsb2NhdGUoSlNWYWx1ZSwgV2Vha0hhbmRsZU93bmVyKiA9IDAsIHZvaWQqIGNvbnRl
eHQgPSAwKTsKICAgICBzdGF0aWMgdm9pZCBkZWFsbG9jYXRlKFdlYWtJbXBsKik7CiAKICAgICB2
b2lkIHZpc2l0TGl2ZVdlYWtJbXBscyhIZWFwUm9vdFZpc2l0b3ImKTsKQEAgLTY5LDE3ICs2OSw2
IEBAIGlubGluZSBXZWFrU2V0OjpXZWFrU2V0KEhlYXAqIGhlYXApCiB7CiB9CiAKLWlubGluZSBX
ZWFrSW1wbCogV2Vha1NldDo6YWxsb2NhdGUoSlNWYWx1ZSBqc1ZhbHVlLCBXZWFrSGFuZGxlT3du
ZXIqIHdlYWtIYW5kbGVPd25lciwgdm9pZCogY29udGV4dCkKLXsKLSAgICBXZWFrQmxvY2s6OkZy
ZWVDZWxsKiBhbGxvY2F0b3IgPSBtX2FsbG9jYXRvcjsKLSAgICBpZiAoVU5MSUtFTFkoIWFsbG9j
YXRvcikpCi0gICAgICAgIGFsbG9jYXRvciA9IGZpbmRBbGxvY2F0b3IoKTsKLSAgICBtX2FsbG9j
YXRvciA9IGFsbG9jYXRvci0+bmV4dDsKLQotICAgIFdlYWtJbXBsKiB3ZWFrSW1wbCA9IFdlYWtC
bG9jazo6YXNXZWFrSW1wbChhbGxvY2F0b3IpOwotICAgIHJldHVybiBuZXcgKE5vdE51bGwsIHdl
YWtJbXBsKSBXZWFrSW1wbChqc1ZhbHVlLCB3ZWFrSGFuZGxlT3duZXIsIGNvbnRleHQpOwotfQot
CiBpbmxpbmUgdm9pZCBXZWFrU2V0OjpkZWFsbG9jYXRlKFdlYWtJbXBsKiB3ZWFrSW1wbCkKIHsK
ICAgICB3ZWFrSW1wbC0+c2V0U3RhdGUoV2Vha0ltcGw6OkRlYWxsb2NhdGVkKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXRJbmxpbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldElubGluZXMuaAkocmV2aXNpb24gMTE1
NTM4KQkoZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0Lmg6MTE1NTM4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldElubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWFrU2V0X2gKKyNk
ZWZpbmUgV2Vha1NldF9oCisKKyNpbmNsdWRlICJXZWFrQmxvY2suaCIKKworbmFtZXNwYWNlIEpT
QyB7CisKK2NsYXNzIEhlYXA7CitjbGFzcyBXZWFrSW1wbDsKKworY2xhc3MgV2Vha1NldCB7Citw
dWJsaWM6CisgICAgV2Vha1NldChIZWFwKik7CisgICAgdm9pZCBmaW5hbGl6ZUFsbCgpOworICAg
IH5XZWFrU2V0KCk7CisKKyAgICBXZWFrSW1wbCogYWxsb2NhdGUoSlNWYWx1ZSwgV2Vha0hhbmRs
ZU93bmVyKiA9IDAsIHZvaWQqIGNvbnRleHQgPSAwKTsKKyAgICBzdGF0aWMgdm9pZCBkZWFsbG9j
YXRlKFdlYWtJbXBsKik7CisKKyAgICB2b2lkIHZpc2l0TGl2ZVdlYWtJbXBscyhIZWFwUm9vdFZp
c2l0b3ImKTsKKyAgICB2b2lkIHZpc2l0RGVhZFdlYWtJbXBscyhIZWFwUm9vdFZpc2l0b3ImKTsK
KworICAgIHZvaWQgc3dlZXAoKTsKKyAgICB2b2lkIHJlc2V0QWxsb2NhdG9yKCk7CisKKyAgICB2
b2lkIHNocmluaygpOworCitwcml2YXRlOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFdlYWtCbG9j
azo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoKTsKKyAgICBXZWFrQmxvY2s6OkZyZWVDZWxsKiB0
cnlGaW5kQWxsb2NhdG9yKCk7CisgICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogYWRkQWxsb2NhdG9y
KCk7CisgICAgdm9pZCByZW1vdmVBbGxvY2F0b3IoV2Vha0Jsb2NrKik7CisKKyAgICBXZWFrQmxv
Y2s6OkZyZWVDZWxsKiBtX2FsbG9jYXRvcjsKKyAgICBXZWFrQmxvY2sqIG1fbmV4dEFsbG9jYXRv
cjsKKyAgICBEb3VibHlMaW5rZWRMaXN0PFdlYWtCbG9jaz4gbV9ibG9ja3M7CisgICAgSGVhcCog
bV9oZWFwOworfTsKKworaW5saW5lIFdlYWtTZXQ6OldlYWtTZXQoSGVhcCogaGVhcCkKKyAgICA6
IG1fYWxsb2NhdG9yKDApCisgICAgLCBtX25leHRBbGxvY2F0b3IoMCkKKyAgICAsIG1faGVhcCho
ZWFwKQoreworfQorCitpbmxpbmUgV2Vha0ltcGwqIFdlYWtTZXQ6OmFsbG9jYXRlKEpTVmFsdWUg
anNWYWx1ZSwgV2Vha0hhbmRsZU93bmVyKiB3ZWFrSGFuZGxlT3duZXIsIHZvaWQqIGNvbnRleHQp
Cit7CisgICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogYWxsb2NhdG9yID0gbV9hbGxvY2F0b3I7Cisg
ICAgaWYgKFVOTElLRUxZKCFhbGxvY2F0b3IpKQorICAgICAgICBhbGxvY2F0b3IgPSBmaW5kQWxs
b2NhdG9yKCk7CisgICAgbV9hbGxvY2F0b3IgPSBhbGxvY2F0b3ItPm5leHQ7CisKKyAgICBXZWFr
SW1wbCogd2Vha0ltcGwgPSBXZWFrQmxvY2s6OmFzV2Vha0ltcGwoYWxsb2NhdG9yKTsKKyAgICBy
ZXR1cm4gbmV3IChOb3ROdWxsLCB3ZWFrSW1wbCkgV2Vha0ltcGwoanNWYWx1ZSwgd2Vha0hhbmRs
ZU93bmVyLCBjb250ZXh0KTsKK30KKworaW5saW5lIHZvaWQgV2Vha1NldDo6ZGVhbGxvY2F0ZShX
ZWFrSW1wbCogd2Vha0ltcGwpCit7CisgICAgd2Vha0ltcGwtPnNldFN0YXRlKFdlYWtJbXBsOjpE
ZWFsbG9jYXRlZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gV2Vha1Nl
dF9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0SW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXRJbmxpbmVzLmgJ
KHJldmlzaW9uIDExNTUzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXRJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDY4ICsyMywyNSBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2Vha1NldF9oCi0jZGVmaW5l
IFdlYWtTZXRfaAorI2lmbmRlZiBXZWFrU2V0SW5saW5lc19oCisjZGVmaW5lIFdlYWtTZXRJbmxp
bmVzX2gKIAotI2luY2x1ZGUgIldlYWtCbG9jay5oIgorI2luY2x1ZGUgIldlYWtTZXQuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEhlYXA7Ci1jbGFzcyBXZWFrSW1wbDsKLQotY2xhc3Mg
V2Vha1NldCB7Ci1wdWJsaWM6Ci0gICAgV2Vha1NldChIZWFwKik7Ci0gICAgdm9pZCBmaW5hbGl6
ZUFsbCgpOwotICAgIH5XZWFrU2V0KCk7Ci0KLSAgICBXZWFrSW1wbCogYWxsb2NhdGUoSlNWYWx1
ZSwgV2Vha0hhbmRsZU93bmVyKiA9IDAsIHZvaWQqIGNvbnRleHQgPSAwKTsKLSAgICBzdGF0aWMg
dm9pZCBkZWFsbG9jYXRlKFdlYWtJbXBsKik7Ci0KLSAgICB2b2lkIHZpc2l0TGl2ZVdlYWtJbXBs
cyhIZWFwUm9vdFZpc2l0b3ImKTsKLSAgICB2b2lkIHZpc2l0RGVhZFdlYWtJbXBscyhIZWFwUm9v
dFZpc2l0b3ImKTsKLQotICAgIHZvaWQgc3dlZXAoKTsKLSAgICB2b2lkIHJlc2V0QWxsb2NhdG9y
KCk7Ci0KLSAgICB2b2lkIHNocmluaygpOwotCi1wcml2YXRlOgotICAgIEpTX0VYUE9SVF9QUklW
QVRFIFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoKTsKLSAgICBXZWFrQmxvY2s6
OkZyZWVDZWxsKiB0cnlGaW5kQWxsb2NhdG9yKCk7Ci0gICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCog
YWRkQWxsb2NhdG9yKCk7Ci0gICAgdm9pZCByZW1vdmVBbGxvY2F0b3IoV2Vha0Jsb2NrKik7Ci0K
LSAgICBXZWFrQmxvY2s6OkZyZWVDZWxsKiBtX2FsbG9jYXRvcjsKLSAgICBXZWFrQmxvY2sqIG1f
bmV4dEFsbG9jYXRvcjsKLSAgICBEb3VibHlMaW5rZWRMaXN0PFdlYWtCbG9jaz4gbV9ibG9ja3M7
Ci0gICAgSGVhcCogbV9oZWFwOwotfTsKLQotaW5saW5lIFdlYWtTZXQ6OldlYWtTZXQoSGVhcCog
aGVhcCkKLSAgICA6IG1fYWxsb2NhdG9yKDApCi0gICAgLCBtX25leHRBbGxvY2F0b3IoMCkKLSAg
ICAsIG1faGVhcChoZWFwKQotewotfQotCiBpbmxpbmUgV2Vha0ltcGwqIFdlYWtTZXQ6OmFsbG9j
YXRlKEpTVmFsdWUganNWYWx1ZSwgV2Vha0hhbmRsZU93bmVyKiB3ZWFrSGFuZGxlT3duZXIsIHZv
aWQqIGNvbnRleHQpCiB7Ci0gICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogYWxsb2NhdG9yID0gbV9h
bGxvY2F0b3I7CisgICAgV2Vha1NldCYgd2Vha1NldCA9ICpIZWFwOjpoZWFwKGpzVmFsdWUuYXND
ZWxsKCkpLT53ZWFrU2V0KCk7CisgICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogYWxsb2NhdG9yID0g
d2Vha1NldC5tX2FsbG9jYXRvcjsKICAgICBpZiAoVU5MSUtFTFkoIWFsbG9jYXRvcikpCi0gICAg
ICAgIGFsbG9jYXRvciA9IGZpbmRBbGxvY2F0b3IoKTsKLSAgICBtX2FsbG9jYXRvciA9IGFsbG9j
YXRvci0+bmV4dDsKKyAgICAgICAgYWxsb2NhdG9yID0gd2Vha1NldC5maW5kQWxsb2NhdG9yKCk7
CisgICAgd2Vha1NldC5tX2FsbG9jYXRvciA9IGFsbG9jYXRvci0+bmV4dDsKIAogICAgIFdlYWtJ
bXBsKiB3ZWFrSW1wbCA9IFdlYWtCbG9jazo6YXNXZWFrSW1wbChhbGxvY2F0b3IpOwogICAgIHJl
dHVybiBuZXcgKE5vdE51bGwsIHdlYWtJbXBsKSBXZWFrSW1wbChqc1ZhbHVlLCB3ZWFrSGFuZGxl
T3duZXIsIGNvbnRleHQpOwogfQogCi1pbmxpbmUgdm9pZCBXZWFrU2V0OjpkZWFsbG9jYXRlKFdl
YWtJbXBsKiB3ZWFrSW1wbCkKLXsKLSAgICB3ZWFrSW1wbC0+c2V0U3RhdGUoV2Vha0ltcGw6OkRl
YWxsb2NhdGVkKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBXZWFrU2V0
X2gKKyNlbmRpZiAvLyBXZWFrU2V0SW5saW5lc19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTE1NTMzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0ODIsNyArMzQ4Miw3IEBA
IE5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW8KIHsKICAgICBIb3N0RnVu
Y3Rpb25TdHViTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5h
ZGQoZnVuY3Rpb24sIFBhc3NXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KCkpOwogICAgIGlmICghcmVz
dWx0Lml0ZXJhdG9yLT5zZWNvbmQpCi0gICAgICAgIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kID0g
UGFzc1dlYWs8TmF0aXZlRXhlY3V0YWJsZT4oKmdsb2JhbERhdGEsIE5hdGl2ZUV4ZWN1dGFibGU6
OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRh
LCBmdW5jdGlvbiksIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZN
YW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNvbnN0cnVjdG9yLCBOb0ludHJp
bnNpYykpOworICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnNlY29uZCA9IFBhc3NXZWFrPE5hdGl2
ZUV4ZWN1dGFibGU+KE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqZ2xvYmFsRGF0YSwgSklUOjpj
b21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlvbiksIGZ1bmN0aW9uLCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25z
dHJ1Y3QoKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYykpOwogICAgIHJldHVybiByZXN1bHQu
aXRlcmF0b3ItPnNlY29uZC5nZXQoKTsKIH0KIApAQCAtMzQ5OCw3ICszNDk4LDcgQEAgTmF0aXZl
RXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3RpbwogICAgICAgICAgICAgICAgIGNvZGUg
PSBNYWNyb0Fzc2VtYmxlckNvZGVSZWYoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBj
b2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBmdW5jdGlvbik7Ci0g
ICAgICAgIGVudHJ5Lml0ZXJhdG9yLT5zZWNvbmQgPSBQYXNzV2VhazxOYXRpdmVFeGVjdXRhYmxl
PigqZ2xvYmFsRGF0YSwgTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCpnbG9iYWxEYXRhLCBjb2Rl
LCBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVS
ZWYoY3RpTmF0aXZlQ29uc3RydWN0KCkpLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvciwg
aW50cmluc2ljKSk7CisgICAgICAgIGVudHJ5Lml0ZXJhdG9yLT5zZWNvbmQgPSBQYXNzV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKmdsb2JhbERhdGEsIGNv
ZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29k
ZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3QoKSksIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9y
LCBpbnRyaW5zaWMpKTsKICAgICB9CiAgICAgcmV0dXJuIGVudHJ5Lml0ZXJhdG9yLT5zZWNvbmQu
Z2V0KCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCShyZXZpc2lvbiAxMTU1MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgUmVn
RXhwKiBSZWdFeHBDYWNoZTo6bG9va3VwT3JDcmVhdGUoY29ucwogICAgIC8vIFdlIG5lZWQgdG8g
ZG8gYSBzZWNvbmQgbG9va3VwIHRvIGFkZCB0aGUgUmVnRXhwIGFzCiAgICAgLy8gYWxsb2NhdGlu
ZyBpdCBtYXkgaGF2ZSBjYXVzZWQgYSBnYyBjeWNsZSwgd2hpY2ggaW4KICAgICAvLyB0dXJuIG1h
eSBoYXZlIHJlbW92ZWQgaXRlbXMgZnJvbSB0aGUgY2FjaGUuCi0gICAgbV93ZWFrQ2FjaGUuYWRk
KGtleSwgUGFzc1dlYWs8UmVnRXhwPigqbV9nbG9iYWxEYXRhLCByZWdFeHAsIHRoaXMpKTsKKyAg
ICBtX3dlYWtDYWNoZS5hZGQoa2V5LCBQYXNzV2VhazxSZWdFeHA+KHJlZ0V4cCwgdGhpcykpOwog
ICAgIHJldHVybiByZWdFeHA7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCShyZXZpc2lvbiAx
MTU1MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0
aW9uVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDEyICsxMzUsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIAotICAgIHZvaWQgc2V0U2luZ2xlVHJhbnNp
dGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAg
IHZvaWQgc2V0U2luZ2xlVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1VzaW5nU2luZ2xlU2xvdCgpKTsKICAgICAg
ICAgaWYgKFdlYWtJbXBsKiBpbXBsID0gdGhpcy0+d2Vha0ltcGwoKSkKICAgICAgICAgICAgIFdl
YWtTZXQ6OmRlYWxsb2NhdGUoaW1wbCk7Ci0gICAgICAgIFdlYWtJbXBsKiBpbXBsID0gZ2xvYmFs
RGF0YS5oZWFwLndlYWtTZXQoKS0+YWxsb2NhdGUocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihz
dHJ1Y3R1cmUpKTsKKyAgICAgICAgV2Vha0ltcGwqIGltcGwgPSBXZWFrU2V0OjphbGxvY2F0ZShy
ZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHN0cnVjdHVyZSkpOwogICAgICAgICBtX2RhdGEgPSBy
ZWludGVycHJldF9jYXN0PGludHB0cl90PihpbXBsKSB8IFVzaW5nU2luZ2xlU2xvdEZsYWc7CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaAko
cmV2aXNpb24gMTE1NTMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dD
TWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNywyMiArMTE3LDIyIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIEhhbmRsZVR5cGVzPE1hcHBlZFR5cGU+OjpnZXRGcm9tU2xvdChjb25zdF9jYXN0
PEpTVmFsdWUqPigmbV9tYXAuZ2V0KGtleSktPmpzVmFsdWUoKSkpOwogICAgIH0KIAotICAgIEFk
ZFJlc3VsdCBhZGQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBLZXlUeXBlJiBrZXks
IEV4dGVybmFsVHlwZSB2YWx1ZSkKKyAgICBBZGRSZXN1bHQgYWRkKEpTR2xvYmFsRGF0YSYsIGNv
bnN0IEtleVR5cGUmIGtleSwgRXh0ZXJuYWxUeXBlIHZhbHVlKQogICAgIHsKICAgICAgICAgdHlw
ZW5hbWUgTWFwVHlwZTo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fbWFwLmFkZChrZXksIDApOwogICAg
ICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgICAgICByZXN1bHQuaXRlcmF0b3It
PnNlY29uZCA9IGdsb2JhbERhdGEuaGVhcC53ZWFrU2V0KCktPmFsbG9jYXRlKHZhbHVlLCB0aGlz
LCBGaW5hbGl6ZXJDYWxsYmFjazo6ZmluYWxpemVyQ29udGV4dEZvcihrZXkpKTsKKyAgICAgICAg
ICAgIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kID0gV2Vha1NldDo6YWxsb2NhdGUodmFsdWUsIHRo
aXMsIEZpbmFsaXplckNhbGxiYWNrOjpmaW5hbGl6ZXJDb250ZXh0Rm9yKGtleSkpOwogCiAgICAg
ICAgIC8vIFdlYWtHQ01hcCBleHBvc2VzIGEgZGlmZmVyZW50IGl0ZXJhdG9yLCBzbyB3ZSBuZWVk
IHRvIHdyYXAgaXQgYW5kIGNyZWF0ZSBvdXIgb3duIEFkZFJlc3VsdC4KICAgICAgICAgcmV0dXJu
IEFkZFJlc3VsdChpdGVyYXRvcihyZXN1bHQuaXRlcmF0b3IpLCByZXN1bHQuaXNOZXdFbnRyeSk7
CiAgICAgfQogCi0gICAgdm9pZCBzZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBL
ZXlUeXBlJiBrZXksIEV4dGVybmFsVHlwZSB2YWx1ZSkKKyAgICB2b2lkIHNldChKU0dsb2JhbERh
dGEmLCBjb25zdCBLZXlUeXBlJiBrZXksIEV4dGVybmFsVHlwZSB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIHR5cGVuYW1lIE1hcFR5cGU6OkFkZFJlc3VsdCByZXN1bHQgPSBtX21hcC5hZGQoa2V5LCAw
KTsKICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIFdlYWtTZXQ6
OmRlYWxsb2NhdGUocmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQpOwotICAgICAgICByZXN1bHQuaXRl
cmF0b3ItPnNlY29uZCA9IGdsb2JhbERhdGEuaGVhcC53ZWFrU2V0KCktPmFsbG9jYXRlKHZhbHVl
LCB0aGlzLCBGaW5hbGl6ZXJDYWxsYmFjazo6ZmluYWxpemVyQ29udGV4dEZvcihrZXkpKTsKKyAg
ICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgPSBXZWFrU2V0OjphbGxvY2F0ZSh2YWx1ZSwg
dGhpcywgRmluYWxpemVyQ2FsbGJhY2s6OmZpbmFsaXplckNvbnRleHRGb3Ioa2V5KSk7CiAgICAg
fQogCiAgICAgRXh0ZXJuYWxUeXBlIHRha2UoY29uc3QgS2V5VHlwZSYga2V5KQpJbmRleDogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTE1NTQzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDQtMjcgIEdlb2ZmcmV5IEdhcmVuICA8
Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBNYWRlIFdlYWtTZXQ6OmFsbG9jYXRlKCkgc3Rh
dGljIGFuZCByZW1vdmVkIGl0cyBKU0dsb2JhbERhdGEgYXJndW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTI4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVjaGFuaWNhbGx5IHJlbW92ZWQgSlNH
bG9iYWxEYXRhIGFyZ3VtZW50cyBmcm9tIFBhc3NXZWFrPFQ+IGFuZCBXZWFrPFQ+IGFsbG9jYXRp
b24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNTdHJpbmdTbG93Q2FzZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OnNldFdyYXBw
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXJDb25kaXRpb246OkpTTm9kZUZpbHRlckNvbmRp
dGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OnNldFdyYXBwZXIpOgorICAgICAgICAqIGJyaWRn
ZS9qc2MvQnJpZGdlSlNDLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Okluc3RhbmNlOjpj
cmVhdGVSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9yb290LmNwcDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OlJvb3RPYmplY3Q6OmFkZFJ1bnRpbWVPYmplY3QpOgorCiAyMDEyLTA0LTI3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5k
IGFsdGVybmF0ZS1yZXZlcnNlIGluIENBIGFuaW1hdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMTE1NTMzKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDksNyArNDksNyBAQCBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0SGFzaFRhYmxlRm9yR2xv
CiBKU1ZhbHVlIGpzU3RyaW5nU2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVjLCBKU1N0cmluZ0NhY2hl
JiBzdHJpbmdDYWNoZSwgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKIHsKICAgICBKU1N0cmluZyog
d3JhcHBlciA9IGpzU3RyaW5nKGV4ZWMsIFVTdHJpbmcoc3RyaW5nSW1wbCkpOwotICAgIHN0cmlu
Z0NhY2hlLmFkZChzdHJpbmdJbXBsLCBQYXNzV2VhazxKU1N0cmluZz4oZXhlYy0+Z2xvYmFsRGF0
YSgpLCB3cmFwcGVyLCBjdXJyZW50V29ybGQoZXhlYyktPnN0cmluZ1dyYXBwZXJPd25lcigpLCBz
dHJpbmdJbXBsKSk7CisgICAgc3RyaW5nQ2FjaGUuYWRkKHN0cmluZ0ltcGwsIFBhc3NXZWFrPEpT
U3RyaW5nPih3cmFwcGVyLCBjdXJyZW50V29ybGQoZXhlYyktPnN0cmluZ1dyYXBwZXJPd25lcigp
LCBzdHJpbmdJbXBsKSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lvbiAxMTU1MzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpA
QCAtMTQxLDcgKzE0MSw3IEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAgICAgewog
ICAgICAgICBpZiAoc2V0SW5saW5lQ2FjaGVkV3JhcHBlcih3b3JsZCwgZG9tT2JqZWN0LCB3cmFw
cGVyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSlNDOjpQYXNzV2VhazxKU0RPTVdy
YXBwZXI+IHBhc3NXZWFrKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCB3cmFwcGVyLCB3cmFwcGVyT3du
ZXIod29ybGQsIGRvbU9iamVjdCksIHdyYXBwZXJDb250ZXh0KHdvcmxkLCBkb21PYmplY3QpKTsK
KyAgICAgICAgSlNDOjpQYXNzV2VhazxKU0RPTVdyYXBwZXI+IHBhc3NXZWFrKHdyYXBwZXIsIHdy
YXBwZXJPd25lcih3b3JsZCwgZG9tT2JqZWN0KSwgd3JhcHBlckNvbnRleHQod29ybGQsIGRvbU9i
amVjdCkpOwogICAgICAgICBET01PYmplY3RXcmFwcGVyTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0g
d29ybGQtPm1fd3JhcHBlcnMuYWRkKGRvbU9iamVjdCwgcGFzc1dlYWspOwogICAgICAgICBBU1NF
UlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNpb24g
MTE1NTMzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKEpTT2JqZWN0KiBmdW5jdGlvbiwgSlNP
YmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERPTVdyYXBwZXJXb3JsZCogaXNvbGF0
ZWRXb3JsZCkKICAgICA6IEV2ZW50TGlzdGVuZXIoSlNFdmVudExpc3RlbmVyVHlwZSkKLSAgICAs
IG1fd3JhcHBlcigqaXNvbGF0ZWRXb3JsZC0+Z2xvYmFsRGF0YSgpLCB3cmFwcGVyKQorICAgICwg
bV93cmFwcGVyKHdyYXBwZXIpCiAgICAgLCBtX2lzQXR0cmlidXRlKGlzQXR0cmlidXRlKQogICAg
ICwgbV9pc29sYXRlZFdvcmxkKGlzb2xhdGVkV29ybGQpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAkocmV2aXNpb24gMTE1NTMzKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBET01XcmFw
cGVyV29ybGQqIGlzb2xhdGVkV29ybGQoKSBjb25zdCB7IHJldHVybiBtX2lzb2xhdGVkV29ybGQu
Z2V0KCk7IH0KIAogICAgICAgICBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKCkgY29uc3QgeyByZXR1
cm4gbV93cmFwcGVyLmdldCgpOyB9Ci0gICAgICAgIHZvaWQgc2V0V3JhcHBlcihKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU09iamVjdCogd3JhcHBlcikgY29uc3QgeyBtX3dy
YXBwZXIgPSBKU0M6OlBhc3NXZWFrPEpTQzo6SlNPYmplY3Q+KGdsb2JhbERhdGEsIHdyYXBwZXIs
IDApOyB9CisgICAgICAgIHZvaWQgc2V0V3JhcHBlcihKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6
SlNPYmplY3QqIHdyYXBwZXIpIGNvbnN0IHsgbV93cmFwcGVyID0gSlNDOjpQYXNzV2VhazxKU0M6
OkpTT2JqZWN0Pih3cmFwcGVyKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBK
U0M6OkpTT2JqZWN0KiBpbml0aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJD
b25kaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAJKHJldmlzaW9uIDExNTUzMykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDExICszMyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIEFTU0VSVF9DTEFTU19G
SVRTX0lOX0NFTEwoSlNOb2RlRmlsdGVyQ29uZGl0aW9uKTsKIAotSlNOb2RlRmlsdGVyQ29uZGl0
aW9uOjpKU05vZGVGaWx0ZXJDb25kaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOb2Rl
RmlsdGVyKiBvd25lciwgSlNWYWx1ZSBmaWx0ZXIpCitKU05vZGVGaWx0ZXJDb25kaXRpb246OkpT
Tm9kZUZpbHRlckNvbmRpdGlvbihKU0dsb2JhbERhdGEmLCBOb2RlRmlsdGVyKiBvd25lciwgSlNW
YWx1ZSBmaWx0ZXIpCisgICAgOiBtX2ZpbHRlcihmaWx0ZXIuaXNPYmplY3QoKSA/IFBhc3NXZWFr
PEpTT2JqZWN0Pihqc0Nhc3Q8SlNPYmplY3QqPihmaWx0ZXIpLCAmbV93ZWFrT3duZXIsIG93bmVy
KSA6IDApCiB7Ci0gICAgaWYgKCFmaWx0ZXIuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIG1fZmlsdGVyID0gUGFzc1dlYWs8SlNPYmplY3Q+KGdsb2JhbERhdGEsIGpzQ2FzdDxKU09i
amVjdCo+KGZpbHRlciksICZtX3dlYWtPd25lciwgb3duZXIpOwogfQogCiBzaG9ydCBKU05vZGVG
aWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZp
bHRlck5vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRX
cmFwcGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRXcmFwcGFibGUuaAkocmV2aXNpb24gMTE1NTMzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0MywxMCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7CiAgICAgfQogCi0gICAg
dm9pZCBzZXRXcmFwcGVyKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0RPTVdyYXBw
ZXIqIHdyYXBwZXIsIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIsIHZvaWQqIGNv
bnRleHQpCisgICAgdm9pZCBzZXRXcmFwcGVyKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNET01XcmFw
cGVyKiB3cmFwcGVyLCBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyLCB2b2lkKiBj
b250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3dyYXBwZXIpOwotICAgICAgICBtX3dy
YXBwZXIgPSBKU0M6OlBhc3NXZWFrPEpTRE9NV3JhcHBlcj4oZ2xvYmFsRGF0YSwgd3JhcHBlciwg
d3JhcHBlck93bmVyLCBjb250ZXh0KTsKKyAgICAgICAgbV93cmFwcGVyID0gSlNDOjpQYXNzV2Vh
azxKU0RPTVdyYXBwZXI+KHdyYXBwZXIsIHdyYXBwZXJPd25lciwgY29udGV4dCk7CiAgICAgfQog
CiAgICAgdm9pZCBjbGVhcldyYXBwZXIoSlNET01XcmFwcGVyKiB3cmFwcGVyKQpJbmRleDogU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5jcHAJKHJldmlzaW9uIDExNTUzMykKKysrIFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzYsMTIgKzE3NiwxMiBAQCB2b2lkIFJvb3RPYmplY3Q6OnVwZGF0ZUdsb2JhbE9iamVjdChKU0ds
CiAgICAgbV9nbG9iYWxPYmplY3Quc2V0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9i
YWxPYmplY3QpOwogfQogCi12b2lkIFJvb3RPYmplY3Q6OmFkZFJ1bnRpbWVPYmplY3QoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBSdW50aW1lT2JqZWN0KiBvYmplY3QpCit2b2lkIFJvb3RPYmpl
Y3Q6OmFkZFJ1bnRpbWVPYmplY3QoSlNHbG9iYWxEYXRhJiwgUnVudGltZU9iamVjdCogb2JqZWN0
KQogewogICAgIEFTU0VSVChtX2lzVmFsaWQpOwogICAgIEFTU0VSVCghbV9ydW50aW1lT2JqZWN0
cy5nZXQob2JqZWN0KSk7CiAKLSAgICBtX3J1bnRpbWVPYmplY3RzLnNldChvYmplY3QsIEpTQzo6
UGFzc1dlYWs8UnVudGltZU9iamVjdD4oZ2xvYmFsRGF0YSwgb2JqZWN0LCB0aGlzKSk7CisgICAg
bV9ydW50aW1lT2JqZWN0cy5zZXQob2JqZWN0LCBKU0M6OlBhc3NXZWFrPFJ1bnRpbWVPYmplY3Q+
KG9iamVjdCwgdGhpcykpOwogfQogCiB2b2lkIFJvb3RPYmplY3Q6OnJlbW92ZVJ1bnRpbWVPYmpl
Y3QoUnVudGltZU9iamVjdCogb2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL2pz
Yy9CcmlkZ2VKU0MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qc2Mv
QnJpZGdlSlNDLmNwcAkocmV2aXNpb24gMTE1NTM0KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdl
L2pzYy9CcmlkZ2VKU0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIEpTT2Jq
ZWN0KiBJbnN0YW5jZTo6Y3JlYXRlUnVudGltZU9iamVjdCgKIAogICAgIEpTTG9jayBsb2NrKFNp
bGVuY2VBc3NlcnRpb25zT25seSk7CiAgICAgUnVudGltZU9iamVjdCogbmV3T2JqZWN0ID0gbmV3
UnVudGltZU9iamVjdChleGVjKTsKLSAgICBtX3J1bnRpbWVPYmplY3QgPSBQYXNzV2VhazxSdW50
aW1lT2JqZWN0PihleGVjLT5nbG9iYWxEYXRhKCksIG5ld09iamVjdCk7CisgICAgbV9ydW50aW1l
T2JqZWN0ID0gUGFzc1dlYWs8UnVudGltZU9iamVjdD4obmV3T2JqZWN0KTsKICAgICBtX3Jvb3RP
YmplY3QtPmFkZFJ1bnRpbWVPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBuZXdPYmplY3QpOwog
ICAgIHJldHVybiBuZXdPYmplY3Q7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCShyZXZpc2lvbiAxMTU1MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3NCwxMiArOTc0LDEyIEBAIFF0
UnVudGltZU1ldGhvZDo6UXRSdW50aW1lTWV0aG9kKFF0UnVudGkKIHsKIH0KIAotdm9pZCBRdFJ1
bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllciwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0YW5jZSkKK3ZvaWQg
UXRSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3RhbmNlKQogewogICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgaWRlbnRpZmllcik7CiAg
ICAgUVdfRChRdFJ1bnRpbWVNZXRob2QpOwogICAgIGQtPm1faW5zdGFuY2UgPSBpbnN0YW5jZTsK
LSAgICBkLT5tX2ZpbmFsaXplciA9IFBhc3NXZWFrPFF0UnVudGltZU1ldGhvZD4oZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBkKTsKKyAgICBkLT5tX2ZpbmFsaXplciA9IFBhc3NXZWFrPFF0UnVu
dGltZU1ldGhvZD4odGhpcywgZCk7CiB9CiAKIFF0UnVudGltZU1ldGhvZDo6flF0UnVudGltZU1l
dGhvZCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTU1NDMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNC0yNyAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIE1hZGUgV2Vha1Nl
dDo6YWxsb2NhdGUoKSBzdGF0aWMgYW5kIHJlbW92ZWQgaXRzIEpTR2xvYmFsRGF0YSBhcmd1bWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxMjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWNoYW5p
Y2FsbHkgcmVtb3ZlZCBKU0dsb2JhbERhdGEgYXJndW1lbnRzIGZyb20gUGFzc1dlYWs8VD4gYW5k
IFdlYWs8VD4gYWxsb2NhdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUFJ1bnRpbWVP
YmplY3RNYXA6OmdldE9yQ3JlYXRlSlNPYmplY3QpOgorCiAyMDEyLTA0LTI3ICBZYWVsIEFoYXJv
biAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gRG9uJ3QgY2Fs
bCBzeW5jUmVtb3RlQ29udGVudHMgZnJvbSBXZWJMYXllclRyZWVSZW5kZXJlcjo6cGFpbnRUb0N1
cnJlbnRHTENvbnRleHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCShy
ZXZpc2lvbiAxMTU1MzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEw
Miw3IEBAIEpTT2JqZWN0KiBOUFJ1bnRpbWVPYmplY3RNYXA6OmdldE9yQ3JlYXQKICAgICAgICAg
cmV0dXJuIGpzTlBPYmplY3Q7CiAKICAgICBKU05QT2JqZWN0KiBqc05QT2JqZWN0ID0gSlNOUE9i
amVjdDo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdGhpcywgbnBPYmplY3QpOwotICAgIG1fanNOUE9i
amVjdHMuc2V0KG5wT2JqZWN0LCBKU0M6OlBhc3NXZWFrPEpTTlBPYmplY3Q+KGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBqc05QT2JqZWN0LCB0aGlzLCBucE9iamVjdCkpOworICAgIG1fanNO
UE9iamVjdHMuc2V0KG5wT2JqZWN0LCBKU0M6OlBhc3NXZWFrPEpTTlBPYmplY3Q+KGpzTlBPYmpl
Y3QsIHRoaXMsIG5wT2JqZWN0KSk7CiAKICAgICByZXR1cm4ganNOUE9iamVjdDsKIH0K
</data>
<flag name="review"
          id="144941"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="144943"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>