<?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>149200</bug_id>
          
          <creation_ts>2015-09-15 17:56:04 -0700</creation_ts>
          <short_desc>Convert return values from JavaScript functions to the expected types in WebAssembly</short_desc>
          <delta_ts>2015-09-17 17:04:09 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126223</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-15 17:56:04 -0700</bug_when>
    <thetext>Convert return values from JavaScript functions to the expected types in WebAssembly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126227</commentid>
    <comment_count>1</comment_count>
      <attachid>261274</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-15 18:03:45 -0700</bug_when>
    <thetext>Created attachment 261274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126230</commentid>
    <comment_count>2</comment_count>
      <attachid>261276</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-15 18:07:28 -0700</bug_when>
    <thetext>Created attachment 261276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126231</commentid>
    <comment_count>3</comment_count>
      <attachid>261277</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-15 18:08:28 -0700</bug_when>
    <thetext>Created attachment 261277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126664</commentid>
    <comment_count>4</comment_count>
      <attachid>261385</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-17 02:57:02 -0700</bug_when>
    <thetext>Created attachment 261385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126725</commentid>
    <comment_count>5</comment_count>
      <attachid>261385</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-09-17 10:27:25 -0700</bug_when>
    <thetext>Comment on attachment 261385
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126726</commentid>
    <comment_count>6</comment_count>
      <attachid>261385</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-17 10:34:06 -0700</bug_when>
    <thetext>Comment on attachment 261385
Patch

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

r=me with a comment

&gt; Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:109
&gt; +            // FIXME: No need to do type conversion if the caller is a WebAssembly function.

lets open a bug for this (if there isn&apos;t already one) and link it here.

&gt; Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:984
&gt; +        // FIXME: No need to do type conversion if the callee is a WebAssembly function.

Let&apos;s open a bug for this if there isn&apos;t one and link it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126917</commentid>
    <comment_count>7</comment_count>
      <attachid>261449</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-17 16:14:17 -0700</bug_when>
    <thetext>Created attachment 261449
Update to ToT and add a link to https://bugs.webkit.org/show_bug.cgi?id=149310</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126947</commentid>
    <comment_count>8</comment_count>
      <attachid>261449</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-17 17:04:05 -0700</bug_when>
    <thetext>Comment on attachment 261449
Update to ToT and add a link to https://bugs.webkit.org/show_bug.cgi?id=149310

Clearing flags on attachment: 261449

Committed r189946: &lt;http://trac.webkit.org/changeset/189946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126948</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-17 17:04:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261274</attachid>
            <date>2015-09-15 18:03:45 -0700</date>
            <delta_ts>2015-09-15 18:07:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149200-20150915180404.patch</filename>
            <type>text/plain</type>
            <size>23663</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWRjNzgxYzAzY2M2YjY3ODM5OGQ1ZjFiOWY4MWQ1MTQ1N2M2ZGM1Li5lNTk3NDgwYTAxYjA4ZWRj
NzNiNWNkZjU1YzdiNjEzMDYzYWJkNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1MSBAQAogMjAxNS0wOS0xNSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KIAorICAgICAgICBDb252ZXJ0IHJldHVybiB2YWx1ZXMgZnJvbSBKYXZhU2NyaXB0
IGZ1bmN0aW9ucyB0byB0aGUgZXhwZWN0ZWQgdHlwZXMgaW4gV2ViQXNzZW1ibHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTIwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBXZWJBc3NlbWJs
eSBmdW5jdGlvbiBjYWxscyBhIEphdmFTY3JpcHQgZnVuY3Rpb24sIHRoZXJlIGlzIG5vCisgICAg
ICAgIGd1YXJhbnRlZSB0aGF0IHRoZSBKYXZhU2NyaXB0IGZ1bmN0aW9uIHdpbGwgYWx3YXlzIHJl
dHVybiB2YWx1ZXMgb2YgdGhlCisgICAgICAgIHR5cGUgd2UgZXhwZWN0LiBUaGlzIHBhdGNoIGNv
bnZlcnRzIHRoZSByZXR1cm4gdmFsdWVzIHRvIHRoZSBleHBlY3RlZAorICAgICAgICB0eXBlcy4K
KworICAgICAgICAoVGhlIHJldmVyc2UgaXMgYWxzbyB0cnVlOiBXaGVuIGEgV2ViQXNzZW1ibHkg
ZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gYQorICAgICAgICBKYXZhU2NyaXB0IGZ1bmN0aW9uLCB0
aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgYXJndW1lbnRzIHRvIHRoZQorICAgICAgICBX
ZWJBc3NlbWJseSBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSBvZiB0aGUgdHlwZXMgd2UgZXhwZWN0
LiBXZSBoYXZlCisgICAgICAgIGZpeGVkIHRoaXMgaW4gQnVnIDE0OTAzMy4pCisKKyAgICAgICAg
V2UgZG9uJ3QgbmVlZCB0byB0eXBlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWVzIGlmIHRoZSBjYWxs
ZWUgaXMgYQorICAgICAgICBXZWJBc3NlbWJseSBmdW5jdGlvbi4gV2UgZG9uJ3QgbmVlZCB0byB0
eXBlIGNoZWNrIHRoZSBhcmd1bWVudHMgZWl0aGVyCisgICAgICAgIGlmIHRoZSBjYWxsZXIgaXMg
YSBXZWJBc3NlbWJseSBmdW5jdGlvbi4gVGhpcyBvcHRpbWl6YXRpb24gd2lsbCBiZQorICAgICAg
ICBpbXBsZW1lbnRlZCBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBm
aXhlcyAzMi1iaXQgYnVpbGQgaXNzdWVzIGFuZCBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8KKyAg
ICAgICAgcmVhZCBieSBhYnN0cmFjdGluZyBhd2F5IHNvbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiAz
Mi0gYW5kIDY0LWJpdAorICAgICAgICBpbnN0cnVjdGlvbnMuCisKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3Mvd2FzbS10eXBlLWNvbnZlcnNpb24uanM6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3dh
c20vdHlwZS1jb252ZXJzaW9uLndhc206CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25Db21w
aWxlci5oOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6c3RhcnRGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjplbmRGdW5jdGlvbik6Cisg
ICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFJldHVybik6CisgICAgICAg
IChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpib3hBcmd1bWVudHNBbmRBZGp1c3RTdGFja1Bv
aW50ZXIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbEFuZFVuYm94
UmVzdWx0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmNvbnZlcnRWYWx1
ZVRvSW50MzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y29udmVydFZh
bHVlVG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y29udmVy
dERvdWJsZVRvVmFsdWUpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6bG9h
ZFZhbHVlQW5kQ29udmVydFRvSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXQVNNRnVu
Y3Rpb25Db21waWxlcjo6bG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uSTMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1
bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GMzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVu
Y3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvblBhcnNlcjo6cGFyc2VDYWxsSW50ZXJuYWxFeHByZXNzaW9uSTMyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5oOgorCisyMDE1LTA5LTE1ICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCiAgICAgICAgIEltcGxlbWVudCBj
YWxscyB0byBKYXZhU2NyaXB0IGZ1bmN0aW9ucyBpbiBXZWJBc3NlbWJseQogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MDkzCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS10eXBlLWNvbnZlcnNpb24u
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tdHlwZS1jb252ZXJz
aW9uLmpzCmluZGV4IDg0YjNiODk3ZDVlMTRiYWViMGFjNWNkNWViZDIzYTk3Y2Q3MGU4MzYuLjM1
YmJmMWQyYzdkNDY5NGNiYWZkNjIwMTA0ZWI5MzhlZGM5Y2Y4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS10eXBlLWNvbnZlcnNpb24uanMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLXR5cGUtY29udmVyc2lv
bi5qcwpAQCAtOCwxNCArOCwxOCBAQCBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CiAvKgogd2FzbS90eXBlLWNvbnZlcnNpb24ud2FzbSBpcyBnZW5lcmF0ZWQgYnkgcGFjay1h
c21qcyA8aHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5L3BvbHlmaWxsLXByb3RvdHlwZS0x
PiBmcm9tIHRoZSBmb2xsb3dpbmcgc2NyaXB0OgogCi1mdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFs
LCBlbnYsIGJ1ZmZlcikgeworZnVuY3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgaW1wb3J0cywgYnVm
ZmVyKSB7CiAgICAgInVzZSBhc20iOwogCiAgICAgdmFyIGZyb3VuZCA9IGdsb2JhbC5NYXRoLmZy
b3VuZDsKKyAgICB2YXIgZ2V0SW50MzIgPSBpbXBvcnRzLmdldEludDMyOworICAgIHZhciBnZXRE
b3VibGUgPSBpbXBvcnRzLmdldERvdWJsZTsKKyAgICB2YXIgZ2V0U3RyaW5nID0gaW1wb3J0cy5n
ZXRTdHJpbmc7CisgICAgdmFyIGdldEJvb2xlYW4gPSBpbXBvcnRzLmdldEJvb2xlYW47CiAKICAg
ICBmdW5jdGlvbiB0YWtlQW5kUmV0dXJuSW50MzIoeCkgewogICAgICAgICB4ID0geCB8IDA7Ci0g
ICAgICAgIHJldHVybiB4OworICAgICAgICByZXR1cm4geCB8IDA7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gdGFrZUFuZFJldHVybkZsb2F0KHgpIHsKQEAgLTI4LDE0ICszMiw2MiBAQCBmdW5jdGlv
biBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICAgICByZXR1cm4geDsKICAg
ICB9CiAKKyAgICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21JbnQzMigpIHsKKyAgICAgICAgcmV0
dXJuIGdldEludDMyKCkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkludDMyRnJv
bURvdWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvdWJsZSgpIHwgMDsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBnZXRT
dHJpbmcoKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuSW50MzJGcm9tQm9vbGVh
bigpIHsKKyAgICAgICAgcmV0dXJuIGdldEJvb2xlYW4oKSB8IDA7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcmV0dXJuRG91YmxlRnJvbUludDMyKCkgeworICAgICAgICByZXR1cm4gK2dldEludDMy
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuRG91YmxlRnJvbURvdWJsZSgpIHsKKyAg
ICAgICAgcmV0dXJuICtnZXREb3VibGUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXR1cm5E
b3VibGVGcm9tU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gK2dldFN0cmluZygpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJldHVybkRvdWJsZUZyb21Cb29sZWFuKCkgeworICAgICAgICByZXR1
cm4gK2dldEJvb2xlYW4oKTsKKyAgICB9CisKICAgICByZXR1cm4gewogICAgICAgICB0YWtlQW5k
UmV0dXJuSW50MzI6IHRha2VBbmRSZXR1cm5JbnQzMiwKKyAgICAgICAgdGFrZUFuZFJldHVybkZs
b2F0OiB0YWtlQW5kUmV0dXJuRmxvYXQsCiAgICAgICAgIHRha2VBbmRSZXR1cm5Eb3VibGU6IHRh
a2VBbmRSZXR1cm5Eb3VibGUsCisKKyAgICAgICAgcmV0dXJuSW50MzJGcm9tSW50MzI6IHJldHVy
bkludDMyRnJvbUludDMyLAorICAgICAgICByZXR1cm5JbnQzMkZyb21Eb3VibGU6IHJldHVybklu
dDMyRnJvbURvdWJsZSwKKyAgICAgICAgcmV0dXJuSW50MzJGcm9tU3RyaW5nOiByZXR1cm5JbnQz
MkZyb21TdHJpbmcsCisgICAgICAgIHJldHVybkludDMyRnJvbUJvb2xlYW46IHJldHVybkludDMy
RnJvbUJvb2xlYW4sCisgICAgICAgIHJldHVybkRvdWJsZUZyb21JbnQzMjogcmV0dXJuRG91Ymxl
RnJvbUludDMyLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9tRG91YmxlOiByZXR1cm5Eb3VibGVG
cm9tRG91YmxlLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9tU3RyaW5nOiByZXR1cm5Eb3VibGVG
cm9tU3RyaW5nLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9tQm9vbGVhbjogcmV0dXJuRG91Ymxl
RnJvbUJvb2xlYW4sCiAgICAgfTsKIH0KICovCiAKLXZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1i
bHkoIndhc20vdHlwZS1jb252ZXJzaW9uLndhc20iKTsKK3ZhciBpbXBvcnRzID0geworICAgIGdl
dEludDMyOiAoKSA9PiA0MiwKKyAgICBnZXREb3VibGU6ICgpID0+IDQuMiwKKyAgICBnZXRTdHJp
bmc6ICgpID0+ICI0LjIiLAorICAgIGdldEJvb2xlYW46ICgpID0+IHRydWUsCit9OwordmFyIG1v
ZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS90eXBlLWNvbnZlcnNpb24ud2FzbSIsIGltcG9y
dHMpOwogCiB2YXIgdHdvID0gewogICAgIHZhbHVlT2YoKSB7IHJldHVybiAyOyB9CkBAIC03MCwz
ICsxMjIsMTIgQEAgc2hvdWxkQmUoaXNOYU4obW9kdWxlLnRha2VBbmRSZXR1cm5Eb3VibGUoIm9u
ZSIpKSwgdHJ1ZSk7CiBzaG91bGRCZShpc05hTihtb2R1bGUudGFrZUFuZFJldHVybkRvdWJsZSh7
IH0pKSwgdHJ1ZSk7CiBzaG91bGRCZShtb2R1bGUudGFrZUFuZFJldHVybkRvdWJsZShbMi41XSks
IDIuNSk7CiBzaG91bGRCZShtb2R1bGUudGFrZUFuZFJldHVybkRvdWJsZSh0d28pLCAyKTsKKwor
c2hvdWxkQmUobW9kdWxlLnJldHVybkludDMyRnJvbUludDMyKCksIDQyKTsKK3Nob3VsZEJlKG1v
ZHVsZS5yZXR1cm5JbnQzMkZyb21Eb3VibGUoKSwgNCk7CitzaG91bGRCZShtb2R1bGUucmV0dXJu
SW50MzJGcm9tU3RyaW5nKCksIDQpOworc2hvdWxkQmUobW9kdWxlLnJldHVybkludDMyRnJvbUJv
b2xlYW4oKSwgMSk7CitzaG91bGRCZShtb2R1bGUucmV0dXJuRG91YmxlRnJvbUludDMyKCksIDQy
KTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5Eb3VibGVGcm9tRG91YmxlKCksIDQuMik7CitzaG91
bGRCZShtb2R1bGUucmV0dXJuRG91YmxlRnJvbVN0cmluZygpLCA0LjIpOworc2hvdWxkQmUobW9k
dWxlLnJldHVybkRvdWJsZUZyb21Cb29sZWFuKCksIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL3R5cGUtY29udmVyc2lvbi53YXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL3R5cGUtY29udmVyc2lvbi53YXNt
CmluZGV4IDA2ODZiOTFlZjNlNDc1NDU5MTZlODRmNDZmZjc0ODU1MTk1MGRmNDguLjlkNDMxMTIw
MGEyZThhNjQwZDBlM2RhNzVjNDUwZDdmZGJlZThmNmQgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCA0MTgKemNtWjlIUTRXR0k0MklqVzBWMmolJlk+c0o3IXFJZzFUIXFlMndRPzl6SXFn
bjsqR3E1dEJlclZxPGA4az9WdDd+CnpwWTJ4d2cjWkxaV1hKIypAVSZMO3RuR2RXRWFJKntuZn0l
Ji0mfTJYKlJea3MjeHpRNT5pJE5zMGM0UjI/dChGUgp6PE0haW5ATDNRajd6cm5kbyNhUm9rcURC
KzNDKEJnMGRwJUs+WSVIT3ZWRXQ9bFZIS2gjeitnZVZBSHdYeWo2Q2wKbjlvTTZQYGU3Ym18RF8x
PF5sdj0hYWR8ZFJMaFJrc2tiQz04JFM0MHlSdSR3d0clJEF9CgpkZWx0YSA1NQp3Y21aMylvTkd7
P1NlI3FVJW00eis0MiVxbmpFcWMtT2tnZlZnbyZZbmteY1k/RjkyYWk9N34jZTBwRzkpdT5iJTcK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21w
aWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIu
aAppbmRleCBlNjJjNzVmM2UwZWIwODA1MzVlZTI1ZWYxMmU3NTIxMjdmYTFjZmNiLi44MDBiYTA4
ODBkYTBiZGI2MzBjN2M5MzlhOTVmMGQ5MjQ3NmM3NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTEwNiwyMiArMTA2LDI1
IEBAIHB1YmxpYzoKIAogICAgICAgICB1bnNpZ25lZCBsb2NhbEluZGV4ID0gMDsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIGRvIHR5cGUgY29udmVyc2lvbiBpZiB0aGUgY2FsbGVy
IGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCiAgICAgICAgICAgICBBZGRyZXNzIGFkZHJlc3Mo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6YXJndW1lbnRPZmZzZXQoaSkg
KiBzaXplb2YoUmVnaXN0ZXIpKTsKLSAgICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzW2ldKSB7
Ci0gICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAg
ICAgICAgICAgICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9JbnQzMihhZGRyZXNzLCBHUFJJbmZv
OjpyZWdUMCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MoR1BSSW5mbzo6cmVn
VDApOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9JbnQzMihh
ZGRyZXNzLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CiAjZW5k
aWYKKyAgICAgICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB2YWx1ZVJlZ3MpOworICAgICAgICAg
ICAgc3dpdGNoIChhcmd1bWVudHNbaV0pIHsKKyAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6Okkz
MjoKKyAgICAgICAgICAgICAgICBjb252ZXJ0VmFsdWVUb0ludDMyKHZhbHVlUmVncywgR1BSSW5m
bzo6cmVnVDApOwogICAgICAgICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsIGxvY2Fs
QWRkcmVzcyhsb2NhbEluZGV4KyspKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgV0FTTVR5cGU6OkYzMjoKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkY2NDoK
ICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgICAgIGxvYWRWYWx1ZUFuZENvbnZlcnRU
b0RvdWJsZShhZGRyZXNzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5m
bzo6cmVnVDEpOworICAgICAgICAgICAgICAgIGNvbnZlcnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVn
cywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVnVDEpOwogI2Vsc2UKLSAgICAgICAgICAg
ICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoYWRkcmVzcywgRlBSSW5mbzo6ZnBSZWdU
MCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMiwgRlBSSW5m
bzo6ZnBSZWdUMSk7CisgICAgICAgICAgICAgICAgY29udmVydFZhbHVlVG9Eb3VibGUodmFsdWVS
ZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZWdUMiwgRlBSSW5mbzo6ZnBSZWdUMSk7
CiAjZW5kaWYKICAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09IFdBU01UeXBlOjpG
MzIpCiAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUkluZm86OmZw
UmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwpAQCAtMTM1LDggKzEzOCwxNSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgbG9jYWxBZGRyZXNzKGxvY2FsSW5k
ZXgrKykpOwogICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtYmVyT2ZGMzJMb2Nh
bFZhcmlhYmxlczsgKytpKQogICAgICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIGxv
Y2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKLSAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsg
aSA8IG51bWJlck9mRjY0TG9jYWxWYXJpYWJsZXM7ICsraSkKKyAgICAgICAgZm9yICh1aW50MzJf
dCBpID0gMDsgaSA8IG51bWJlck9mRjY0TG9jYWxWYXJpYWJsZXM7ICsraSkgeworI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW02NCgwKSwgbG9jYWxBZGRy
ZXNzKGxvY2FsSW5kZXgrKykpOworI2Vsc2UKKyAgICAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZElt
bTMyKDApLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCkpOworICAgICAgICAgICAgc3RvcmUzMihU
cnVzdGVkSW1tMzIoMCksIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KS53aXRoT2Zmc2V0KDQpKTsK
KyAgICAgICAgICAgIGxvY2FsSW5kZXgrKzsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAg
bV9jb2RlQmxvY2stPnNldE51bVBhcmFtZXRlcnMoMSArIGFyZ3VtZW50cy5zaXplKCkpOwogICAg
IH0KQEAgLTE0Niw3ICsxNTYsMTIgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoIW1fdGVtcFN0
YWNrVG9wKTsKIAogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIGlmIHRoZSBsYXN0IHN0
YXRlbWVudCBpcyBhIHJldHVybiBzdGF0ZW1lbnQuCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbTY0
KEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU1ZhbHVlUmVncyByZXR1cm5WYWx1ZVJl
Z3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAgICAgICAgSlNWYWx1ZVJlZ3Mg
cmV0dXJuVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOworI2VuZGlmCisgICAgICAgIG1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQo
KSwgcmV0dXJuVmFsdWVSZWdzKTsKICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgcmV0KCk7CiAKQEAgLTI0NCw2ICsyNTksMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBi
dWlsZFJldHVybihpbnQsIFdBU01FeHByZXNzaW9uVHlwZSByZXR1cm5UeXBlKQogICAgIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU1ZhbHVlUmVncyByZXR1cm5WYWx1ZVJlZ3MoR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmV0dXJu
VmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworI2VuZGlmCiAgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZSkgewogICAgICAgICBjYXNl
IFdBU01FeHByZXNzaW9uVHlwZTo6STMyOgogICAgICAgICAgICAgbG9hZDMyKHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwpAQCAt
MjU5LDE1ICsyNzksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3Jh
cnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDApOwogICAgICAg
ICAgICAgaWYgKHJldHVyblR5cGUgPT0gV0FTTUV4cHJlc3Npb25UeXBlOjpGMzIpCiAgICAgICAg
ICAgICAgICAgY29udmVydEZsb2F0VG9Eb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6
ZnBSZWdUMCk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIGJveERvdWJsZShGUFJJ
bmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0jZWxzZQotICAgICAgICAg
ICAgYm94RG91YmxlKEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotI2VuZGlmCisgICAgICAgICAgICBjb252ZXJ0RG91
YmxlVG9WYWx1ZShGUFJJbmZvOjpmcFJlZ1QwLCByZXR1cm5WYWx1ZVJlZ3MpOwogICAgICAgICAg
ICAgbV90ZW1wU3RhY2tUb3AtLTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdB
U01FeHByZXNzaW9uVHlwZTo6Vm9pZDoKLSAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTY0KEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KyAgICAgICAgICAgIG1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgcmV0dXJuVmFsdWVS
ZWdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MzksNiArODU1LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogICAgIH0KICNlbHNlCisg
ICAgLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIu
IFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVu
LW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSkuCisgICAgLy8gVG8gYXZvaWQgYXNz
ZW1ibGllcyBmcm9tIHVzaW5nIHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIz
IHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4KKyNpZiAoQ09NUElMRVJfU1VQ
UE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkpIHx8IENQVShNSVBTKQorI2RlZmluZSBFQUJJXzMyQklU
X0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKKyNlbHNlCisjZGVmaW5lIEVBQklfMzJC
SVRfRFVNTVlfQVJHCisjZW5kaWYKKwogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJh
dGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBzcmNUYWcsIEdQUlJlZyBzcmNQYXlsb2FkLCBHUFJS
ZWcgZHN0KQogICAgIHsKICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklf
MzJCSVRfRFVNTVlfQVJHIHNyY1BheWxvYWQsIHNyY1RhZyk7CkBAIC04NzksNiArOTAzLDExIEBA
IHByaXZhdGU6CiAKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudENvdW50
OyArK2kpIHsKICAgICAgICAgICAgIEFkZHJlc3MgYWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgKHN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lOjphcmd1bWVudE9mZnNldChpKSkgKiBz
aXplb2YoUmVnaXN0ZXIpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKTsKKyNlbHNlCisgICAgICAgICAgICBKU1Zh
bHVlUmVncyB2YWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyNlbmRp
ZgogICAgICAgICAgICAgc3dpdGNoIChhcmd1bWVudHNbaV0pIHsKICAgICAgICAgICAgIGNhc2Ug
V0FTTVR5cGU6OkkzMjoKICAgICAgICAgICAgICAgICBsb2FkMzIodGVtcG9yYXJ5QWRkcmVzcyht
X3RlbXBTdGFja1RvcCAtIGFyZ3VtZW50Q291bnQgKyBpKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAt
ODkwLDYgKzkxOSwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHN0b3JlMzIoVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkp
OwogI2VuZGlmCiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01U
eXBlOjpGMzI6CisgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpGNjQ6CisgICAgICAgICAgICAg
ICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gYXJndW1lbnRD
b3VudCArIGkpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgICAgICBpZiAoYXJndW1l
bnRzW2ldID09IFdBU01UeXBlOjpGMzIpCisgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRGbG9h
dFRvRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAg
ICAgICAgIGNvbnZlcnREb3VibGVUb1ZhbHVlKEZQUkluZm86OmZwUmVnVDAsIHZhbHVlUmVncyk7
CisgICAgICAgICAgICAgICAgc3RvcmVWYWx1ZSh2YWx1ZVJlZ3MsIGFkZHJlc3MpOworICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0KQEAgLTkwNiw4ICs5NDMsOCBAQCBw
cml2YXRlOgogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoR1BSSW5mbzo6cmVn
VDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRp
Y19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykp
KTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIocmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVn
aXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVy
KSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7Ci0gICAgICAg
IHN0b3JlMzIoVHJ1c3RlZEltbTMyKENlbGxUYWcpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rlcikp
ICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgICAgIHN0b3Jl
MzIoR1BSSW5mbzo6cmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6
OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zm
c2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgICAgIHN0b3JlMzIoVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBK
U1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFn
T2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAjZW5kaWYKIAogICAgICAgICBE
YXRhTGFiZWxQdHIgYWRkcmVzc09mTGlua2VkRnVuY3Rpb25DaGVjazsKQEAgLTkyOSw5ICs5NjYs
MjcgQEAgcHJpdmF0ZToKICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtV1RGOjpyb3VuZFVw
VG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIG1fc3RhY2tIZWlnaHQpICog
c2l6ZW9mKFN0YWNrU2xvdCkgLSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGNo
ZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKKyAgICAgICAgLy8gRklYTUU6IE5vIG5lZWQg
dG8gZG8gdHlwZSBjb252ZXJzaW9uIGlmIHRoZSBjYWxsZWUgaXMgYSBXZWJBc3NlbWJseSBmdW5j
dGlvbi4KKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3Mo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFs
dWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OworI2VuZGlmCiAgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZSkgewogICAgICAgICBjYXNlIFdB
U01FeHByZXNzaW9uVHlwZTo6STMyOgotICAgICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CisgICAgICAg
ICAgICBjb252ZXJ0VmFsdWVUb0ludDMyKHZhbHVlUmVncywgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZWdUMCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBT
dGFja1RvcCsrKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNRXhwcmVz
c2lvblR5cGU6OkYzMjoKKyAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NDoKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgY29udmVydFZhbHVlVG9Eb3VibGUodmFsdWVS
ZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIp
OworI2Vsc2UKKyAgICAgICAgICAgIGNvbnZlcnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBS
SW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBGUFJJbmZv
OjpmcFJlZ1QxKTsKKyNlbmRpZgorICAgICAgICAgICAgaWYgKHJldHVyblR5cGUgPT0gV0FTTUV4
cHJlc3Npb25UeXBlOjpGMzIpCisgICAgICAgICAgICAgICAgY29udmVydERvdWJsZVRvRmxvYXQo
RlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBzdG9yZURv
dWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wKysp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6
Vm9pZDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTQxLDY5ICs5OTYsNzIgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIHZvaWQgbG9hZFZhbHVlQW5kQ29udmVy
dFRvSW50MzIoQWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgZHN0KQorICAgIHZvaWQgY29udmVydFZh
bHVlVG9JbnQzMihKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBkc3QpCiAgICAgewotICAg
ICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhkc3QpOwotICAgICAgICBsb2FkVmFsdWUoYWRkcmVz
cywgdGVtcFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIo
dGVtcFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodmFs
dWVSZWdzKTsKIAotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVl
VG9JbnQzMiwgZHN0LCBkc3QpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZl
cnRKU1ZhbHVlVG9JbnQzMiwgdmFsdWVSZWdzLmdwcigpLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogCiAg
ICAgICAgIGNoZWNrSlNJbnQzMi5saW5rKHRoaXMpOworICAgICAgICBtb3ZlKHZhbHVlUmVncy5n
cHIoKSwgZHN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJs
ZShBZGRyZXNzIGFkZHJlc3MsIEZQUlJlZyBkc3QsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNj
cmF0Y2gyKQorICAgIHZvaWQgY29udmVydFZhbHVlVG9Eb3VibGUoSlNWYWx1ZVJlZ3MgdmFsdWVS
ZWdzLCBGUFJSZWcgZHN0LCBHUFJSZWcgc2NyYXRjaCkKICAgICB7Ci0gICAgICAgIEpTVmFsdWVS
ZWdzIHRlbXBSZWdzKHNjcmF0Y2gxKTsKLSAgICAgICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBS
ZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdz
KTsKLSAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJhbmNoSWZOdW1iZXIodGVtcFJlZ3Ms
IHNjcmF0Y2gyKTsKKyAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBicmFuY2hJZkludDMyKHZh
bHVlUmVncyk7CisgICAgICAgIEp1bXAgY2hlY2tKU051bWJlciA9IGJyYW5jaElmTnVtYmVyKHZh
bHVlUmVncywgc2NyYXRjaCk7CiAgICAgICAgIEp1bXBMaXN0IGVuZDsKIAotICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9Eb3VibGUsIHRlbXBSZWdzLmdwcigp
LCBkc3QpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9E
b3VibGUsIHZhbHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICAgICAgZW5kLmFwcGVuZChqdW1wKCkp
OwogCiAgICAgICAgIGNoZWNrSlNJbnQzMi5saW5rKHRoaXMpOwotICAgICAgICBjb252ZXJ0SW50
MzJUb0RvdWJsZSh0ZW1wUmVncy5ncHIoKSwgZHN0KTsKKyAgICAgICAgY29udmVydEludDMyVG9E
b3VibGUodmFsdWVSZWdzLmdwcigpLCBkc3QpOwogICAgICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7
CiAKICAgICAgICAgY2hlY2tKU051bWJlci5saW5rKHRoaXMpOwotICAgICAgICB1bmJveERvdWJs
ZVdpdGhvdXRBc3NlcnRpb25zKHRlbXBSZWdzLmdwcigpLCBkc3QpOworICAgICAgICB1bmJveERv
dWJsZVdpdGhvdXRBc3NlcnRpb25zKHZhbHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICAgICAgZW5k
LmxpbmsodGhpcyk7CiAgICAgfQogI2Vsc2UKLSAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRU
b0ludDMyKEFkZHJlc3MgYWRkcmVzcywgR1BSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gpCisgICAg
dm9pZCBjb252ZXJ0VmFsdWVUb0ludDMyKEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVnIGRz
dCkKICAgICB7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKHNjcmF0Y2gsIGRzdCk7Ci0g
ICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB0ZW1wUmVncyk7Ci0gICAgICAgIEp1bXAgY2hlY2tK
U0ludDMyID0gYnJhbmNoSWZJbnQzMih0ZW1wUmVncyk7CisgICAgICAgIEp1bXAgY2hlY2tKU0lu
dDMyID0gYnJhbmNoSWZJbnQzMih2YWx1ZVJlZ3MpOwogCi0gICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0ludDMyLCB0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJl
Z3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNv
bnZlcnRKU1ZhbHVlVG9JbnQzMiwgdmFsdWVSZWdzLnRhZ0dQUigpLCB2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKIAogICAgICAgICBjaGVja0pTSW50MzIu
bGluayh0aGlzKTsKKyAgICAgICAgbW92ZSh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOwog
ICAgIH0KIAotICAgIHZvaWQgbG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKEFkZHJlc3MgYWRk
cmVzcywgRlBSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJl
ZyBzY3JhdGNoMywgRlBSUmVnIGZwU2NyYXRjaCkKKyAgICB2b2lkIGNvbnZlcnRWYWx1ZVRvRG91
YmxlKEpTVmFsdWVSZWdzIHZhbHVlUmVncywgRlBSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gsIEZQ
UlJlZyBmcFNjcmF0Y2gpCiAgICAgewotICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhzY3Jh
dGNoMiwgc2NyYXRjaDEpOwotICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3MpOwot
ICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOwotICAg
ICAgICBKdW1wIGNoZWNrSlNOdW1iZXIgPSBicmFuY2hJZk51bWJlcih0ZW1wUmVncywgc2NyYXRj
aDMpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodmFsdWVSZWdz
KTsKKyAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJhbmNoSWZOdW1iZXIodmFsdWVSZWdz
LCBzY3JhdGNoKTsKICAgICAgICAgSnVtcExpc3QgZW5kOwogCi0gICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSwgdGVtcFJlZ3MudGFnR1BSKCksIHRl
bXBSZWdzLnBheWxvYWRHUFIoKSwgZHN0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlLCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVlUmVncy5w
YXlsb2FkR1BSKCksIGRzdCk7CiAgICAgICAgIGVuZC5hcHBlbmQoanVtcCgpKTsKIAogICAgICAg
ICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKLSAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUo
dGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJs
ZSh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOwogICAgICAgICBlbmQuYXBwZW5kKGp1bXAo
KSk7CiAKICAgICAgICAgY2hlY2tKU051bWJlci5saW5rKHRoaXMpOwotICAgICAgICB1bmJveERv
dWJsZSh0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QsIGZwU2Ny
YXRjaCkKKyAgICAgICAgdW5ib3hEb3VibGUodmFsdWVSZWdzLnRhZ0dQUigpLCB2YWx1ZVJlZ3Mu
cGF5bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCk7CiAgICAgICAgIGVuZC5saW5rKHRoaXMpOwog
ICAgIH0KICNlbmRpZgogCisgICAgdm9pZCBjb252ZXJ0RG91YmxlVG9WYWx1ZShGUFJSZWcgZnBy
LCBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
ICAgIGJveERvdWJsZShmcHIsIHZhbHVlUmVncy5ncHIoKSk7CisjZWxzZQorICAgICAgICBib3hE
b3VibGUoZnByLCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwor
I2VuZGlmCisgICAgfQorCiAgICAgSlNXQVNNTW9kdWxlKiBtX21vZHVsZTsKICAgICB1bnNpZ25l
ZCBtX3N0YWNrSGVpZ2h0OwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZMb2NhbHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCBm
OGJhOWRmMGI1NjIzNTllNjE1MzdjZTkzZTM3MDhjNjFjNDY1MjE1Li5jYzNiZDdlZGZkOGMxOWY4
M2Q0NDlhZDdlYjg2N2IzOTc5MDU4NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTUyOSw3ICs1MjksNyBAQCBDb250ZXh0
RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkkzMihDb250ZXh0
JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OkdldEdsb2JhbDoK
ICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25JMzIoY29udGV4dCk7
CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6Q2FsbEludGVybmFsOgotICAgICAg
ICAgICAgcmV0dXJuIHBhcnNlQ2FsbEludGVybmFsRXhwcmVzc2lvbkkzMihjb250ZXh0KTsKKyAg
ICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lv
blR5cGU6OkkzMik7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6Q2FsbEltcG9y
dDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbXBvcnQoY29udGV4dCwgV0FTTUV4cHJl
c3Npb25UeXBlOjpJMzIpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6Ok5lZ2F0
ZToKQEAgLTY4MCwxMiArNjgwLDYgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFy
c2VyOjpwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25JMzIoQ29udGV4dCYgY29udGUKIH0KIAogdGVt
cGxhdGUgPGNsYXNzIENvbnRleHQ+Ci1Db250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJz
ZXI6OnBhcnNlQ2FsbEludGVybmFsRXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250ZXh0KQotewot
ICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6
OkkzMik7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgogQ29udGV4dEV4cHJlc3Npb24g
V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250
ZXh0LCBXQVNNT3BFeHByZXNzaW9uSTMyIG9wKQogewogICAgIENvbnRleHRFeHByZXNzaW9uIGV4
cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb25JMzIoY29udGV4dCk7CkBAIC03NTEsNiArNzQ1LDgg
QEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25G
MzIoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhw
cmVzc2lvbkYzMihjb250ZXh0KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpH
ZXRHbG9iYWw6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjMy
KGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNhbGxJbnRlcm5h
bDoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhw
cmVzc2lvblR5cGU6OkYzMik7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6TmVn
YXRlOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkFiczoKICAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpDZWlsOgpAQCAtNzY4LDcgKzc2NCw2IEBAIENvbnRleHRF
eHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjMyKENvbnRleHQm
IGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6TG9hZFdpdGhPZmZz
ZXQ6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6U3RvcmU6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6U3RvcmVXaXRoT2Zmc2V0OgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GMzI6OkNhbGxJbnRlcm5hbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjMyOjpDYWxsSW5kaXJlY3Q6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYz
Mjo6Q29uZGl0aW9uYWw6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q29tbWE6
CkBAIC04NzgsNiArODczLDggQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2Vy
OjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgICAgIHJldHVy
biBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpHZXRHbG9iYWw6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRH
bG9iYWxFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OkNhbGxJbnRlcm5hbDoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5h
bChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCk7CiAgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6Q2FsbEltcG9ydDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJ
bXBvcnQoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpGNjQpOwogICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgpAQCAtODg2LDcgKzg4Myw2IEBAIENvbnRleHRF
eHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQm
IGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG9hZFdpdGhPZmZz
ZXQ6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3RvcmU6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3RvcmVXaXRoT2Zmc2V0OgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbnRlcm5hbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpDYWxsSW5kaXJlY3Q6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6Q29uZGl0aW9uYWw6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29tbWE6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJz
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCmlu
ZGV4IDliNGNmM2NkNTg3OWIxNzNhOTI3YmNlY2EyNjZlMzBkZmIxYTk2NzAuLmQ4ZjU1NTVjMGMz
OTg2MzJlNGFkMzYzOTM0MTRlODhmZmM5NmFlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCkBAIC04OSw3ICs4OSw2IEBAIHByaXZhdGU6
CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0
TG9jYWxFeHByZXNzaW9uSTMyKENvbnRleHQmLCB1aW50MzJfdCBsb2NhbEluZGV4KTsKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4
cHJlc3Npb25JMzIoQ29udGV4dCYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250
ZXh0RXhwcmVzc2lvbiBwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25JMzIoQ29udGV4dCYpOwotICAg
IHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUNhbGxJbnRl
cm5hbEV4cHJlc3Npb25JMzIoQ29udGV4dCYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0
PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZVVuYXJ5RXhwcmVzc2lvbkkzMihDb250ZXh0JiwgV0FT
TU9wRXhwcmVzc2lvbkkzMik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRF
eHByZXNzaW9uIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkkzMihDb250ZXh0JiwgV0FTTU9wRXhwcmVz
c2lvbkkzMik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9u
IHBhcnNlUmVsYXRpb25hbEkzMkV4cHJlc3Npb25JMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Np
b25JMzIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261276</attachid>
            <date>2015-09-15 18:07:28 -0700</date>
            <delta_ts>2015-09-15 18:08:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>23628</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDY1ZGM3ODFjMDNjYzZiNjc4Mzk4ZDVmMWI5Zjgx
ZDUxNDU3YzZkYzUuLjM3MWUyN2ViMTFmYjc4MjZiOTNhYWY0Yjc2ODQxZTg5M2Q3MzYwY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDE1LTA5LTE1ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgogCisgICAgICAgIENvbnZlcnQg
cmV0dXJuIHZhbHVlcyBmcm9tIEphdmFTY3JpcHQgZnVuY3Rpb25zIHRvIHRoZSBleHBlY3RlZCB0
eXBlcyBpbiBXZWJBc3NlbWJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ5MjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiBhIFdlYkFzc2VtYmx5IGZ1bmN0aW9uIGNhbGxzIGEgSmF2YVNjcmlw
dCBmdW5jdGlvbiwgdGhlcmUgaXMgbm8KKyAgICAgICAgZ3VhcmFudGVlIHRoYXQgdGhlIEphdmFT
Y3JpcHQgZnVuY3Rpb24gd2lsbCBhbHdheXMgcmV0dXJuIHZhbHVlcyBvZiB0aGUKKyAgICAgICAg
dHlwZSB3ZSBleHBlY3QuIFRoaXMgcGF0Y2ggY29udmVydHMgdGhlIHJldHVybiB2YWx1ZXMgdG8g
dGhlIGV4cGVjdGVkCisgICAgICAgIHR5cGVzLgorCisgICAgICAgIChUaGUgcmV2ZXJzZSBpcyBh
bHNvIHRydWU6IFdoZW4gYSBXZWJBc3NlbWJseSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBhCisg
ICAgICAgIEphdmFTY3JpcHQgZnVuY3Rpb24sIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRo
ZSBhcmd1bWVudHMgdG8gdGhlCisgICAgICAgIFdlYkFzc2VtYmx5IGZ1bmN0aW9uIHdpbGwgYWx3
YXlzIGJlIG9mIHRoZSB0eXBlcyB3ZSBleHBlY3QuIFdlIGhhdmUKKyAgICAgICAgZml4ZWQgdGhp
cyBpbiBCdWcgMTQ5MDMzLikKKworICAgICAgICBXZSBkb24ndCBuZWVkIHRvIHR5cGUgY2hlY2sg
dGhlIHJldHVybiB2YWx1ZXMgaWYgdGhlIGNhbGxlZSBpcyBhCisgICAgICAgIFdlYkFzc2VtYmx5
IGZ1bmN0aW9uLiBXZSBkb24ndCBuZWVkIHRvIHR5cGUgY2hlY2sgdGhlIGFyZ3VtZW50cyBpZiB0
aGUKKyAgICAgICAgY2FsbGVyIGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rpb24uIFRoaXMgb3B0aW1p
emF0aW9uIHdpbGwgYmUKKyAgICAgICAgaW1wbGVtZW50ZWQgaW4gdGhlIGZ1dHVyZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgMzItYml0IGJ1aWxkIGlzc3VlcyBhbmQgbWFrZXMg
dGhlIGNvZGUgZWFzaWVyIHRvCisgICAgICAgIHJlYWQgYnkgYWJzdHJhY3RpbmcgYXdheSBzb21l
IGRpZmZlcmVuY2VzIGJldHdlZW4gMzItIGFuZCA2NC1iaXQKKyAgICAgICAgaW5zdHJ1Y3Rpb25z
LgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20tdHlwZS1jb252ZXJzaW9uLmpzOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy93YXNtL3R5cGUtY29udmVyc2lvbi53YXNtOgorICAgICAgICAq
IHdhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OnN0YXJ0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6ZW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6
YnVpbGRSZXR1cm4pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Ym94QXJn
dW1lbnRzQW5kQWRqdXN0U3RhY2tQb2ludGVyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OmNhbGxBbmRVbmJveFJlc3VsdCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlv
bkNvbXBpbGVyOjpjb252ZXJ0VmFsdWVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0
aW9uQ29tcGlsZXI6OmNvbnZlcnRWYWx1ZVRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1
bmN0aW9uQ29tcGlsZXI6OmNvbnZlcnREb3VibGVUb1ZhbHVlKToKKyAgICAgICAgKEpTQzo6V0FT
TUZ1bmN0aW9uQ29tcGlsZXI6OmxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmxvYWRWYWx1ZUFuZENvbnZlcnRU
b0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkkzMik6
CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjMyKToK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQpOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQ2FsbEludGVybmFsRXhwcmVz
c2lvbkkzMik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoK
KworMjAxNS0wOS0xNSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4K
KwogICAgICAgICBJbXBsZW1lbnQgY2FsbHMgdG8gSmF2YVNjcmlwdCBmdW5jdGlvbnMgaW4gV2Vi
QXNzZW1ibHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0OTA5MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3dhc20tdHlwZS1jb252ZXJzaW9uLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy93YXNtLXR5cGUtY29udmVyc2lvbi5qcwppbmRleCA4NGIzYjg5N2Q1ZTE0YmFlYjBhYzVj
ZDVlYmQyM2E5N2NkNzBlODM2Li4zNWJiZjFkMmM3ZDQ2OTRjYmFmZDYyMDEwNGViOTM4ZWRjOWNm
ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20t
dHlwZS1jb252ZXJzaW9uLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvd2FzbS10eXBlLWNvbnZlcnNpb24uanMKQEAgLTgsMTQgKzgsMTggQEAgZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogLyoKIHdhc20vdHlwZS1jb252ZXJzaW9uLndhc20g
aXMgZ2VuZXJhdGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs
eS9wb2x5ZmlsbC1wcm90b3R5cGUtMT4gZnJvbSB0aGUgZm9sbG93aW5nIHNjcmlwdDoKIAotZnVu
Y3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgZW52LCBidWZmZXIpIHsKK2Z1bmN0aW9uIGFzbU1vZHVs
ZShnbG9iYWwsIGltcG9ydHMsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAogICAgIHZhciBm
cm91bmQgPSBnbG9iYWwuTWF0aC5mcm91bmQ7CisgICAgdmFyIGdldEludDMyID0gaW1wb3J0cy5n
ZXRJbnQzMjsKKyAgICB2YXIgZ2V0RG91YmxlID0gaW1wb3J0cy5nZXREb3VibGU7CisgICAgdmFy
IGdldFN0cmluZyA9IGltcG9ydHMuZ2V0U3RyaW5nOworICAgIHZhciBnZXRCb29sZWFuID0gaW1w
b3J0cy5nZXRCb29sZWFuOwogCiAgICAgZnVuY3Rpb24gdGFrZUFuZFJldHVybkludDMyKHgpIHsK
ICAgICAgICAgeCA9IHggfCAwOwotICAgICAgICByZXR1cm4geDsKKyAgICAgICAgcmV0dXJuIHgg
fCAwOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHRha2VBbmRSZXR1cm5GbG9hdCh4KSB7CkBAIC0y
OCwxNCArMzIsNjIgQEAgZnVuY3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgZW52LCBidWZmZXIpIHsK
ICAgICAgICAgcmV0dXJuIHg7CiAgICAgfQogCisgICAgZnVuY3Rpb24gcmV0dXJuSW50MzJGcm9t
SW50MzIoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnQzMigpIHwgMDsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiByZXR1cm5JbnQzMkZyb21Eb3VibGUoKSB7CisgICAgICAgIHJldHVybiBnZXREb3Vi
bGUoKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuSW50MzJGcm9tU3RyaW5nKCkg
eworICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKCkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJldHVybkludDMyRnJvbUJvb2xlYW4oKSB7CisgICAgICAgIHJldHVybiBnZXRCb29sZWFuKCkg
fCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkRvdWJsZUZyb21JbnQzMigpIHsKKyAg
ICAgICAgcmV0dXJuICtnZXRJbnQzMigpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkRv
dWJsZUZyb21Eb3VibGUoKSB7CisgICAgICAgIHJldHVybiArZ2V0RG91YmxlKCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcmV0dXJuRG91YmxlRnJvbVN0cmluZygpIHsKKyAgICAgICAgcmV0dXJu
ICtnZXRTdHJpbmcoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXR1cm5Eb3VibGVGcm9tQm9v
bGVhbigpIHsKKyAgICAgICAgcmV0dXJuICtnZXRCb29sZWFuKCk7CisgICAgfQorCiAgICAgcmV0
dXJuIHsKICAgICAgICAgdGFrZUFuZFJldHVybkludDMyOiB0YWtlQW5kUmV0dXJuSW50MzIsCisg
ICAgICAgIHRha2VBbmRSZXR1cm5GbG9hdDogdGFrZUFuZFJldHVybkZsb2F0LAogICAgICAgICB0
YWtlQW5kUmV0dXJuRG91YmxlOiB0YWtlQW5kUmV0dXJuRG91YmxlLAorCisgICAgICAgIHJldHVy
bkludDMyRnJvbUludDMyOiByZXR1cm5JbnQzMkZyb21JbnQzMiwKKyAgICAgICAgcmV0dXJuSW50
MzJGcm9tRG91YmxlOiByZXR1cm5JbnQzMkZyb21Eb3VibGUsCisgICAgICAgIHJldHVybkludDMy
RnJvbVN0cmluZzogcmV0dXJuSW50MzJGcm9tU3RyaW5nLAorICAgICAgICByZXR1cm5JbnQzMkZy
b21Cb29sZWFuOiByZXR1cm5JbnQzMkZyb21Cb29sZWFuLAorICAgICAgICByZXR1cm5Eb3VibGVG
cm9tSW50MzI6IHJldHVybkRvdWJsZUZyb21JbnQzMiwKKyAgICAgICAgcmV0dXJuRG91YmxlRnJv
bURvdWJsZTogcmV0dXJuRG91YmxlRnJvbURvdWJsZSwKKyAgICAgICAgcmV0dXJuRG91YmxlRnJv
bVN0cmluZzogcmV0dXJuRG91YmxlRnJvbVN0cmluZywKKyAgICAgICAgcmV0dXJuRG91YmxlRnJv
bUJvb2xlYW46IHJldHVybkRvdWJsZUZyb21Cb29sZWFuLAogICAgIH07CiB9CiAqLwogCi12YXIg
bW9kdWxlID0gbG9hZFdlYkFzc2VtYmx5KCJ3YXNtL3R5cGUtY29udmVyc2lvbi53YXNtIik7Cit2
YXIgaW1wb3J0cyA9IHsKKyAgICBnZXRJbnQzMjogKCkgPT4gNDIsCisgICAgZ2V0RG91YmxlOiAo
KSA9PiA0LjIsCisgICAgZ2V0U3RyaW5nOiAoKSA9PiAiNC4yIiwKKyAgICBnZXRCb29sZWFuOiAo
KSA9PiB0cnVlLAorfTsKK3ZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndhc20vdHlwZS1j
b252ZXJzaW9uLndhc20iLCBpbXBvcnRzKTsKIAogdmFyIHR3byA9IHsKICAgICB2YWx1ZU9mKCkg
eyByZXR1cm4gMjsgfQpAQCAtNzAsMyArMTIyLDEyIEBAIHNob3VsZEJlKGlzTmFOKG1vZHVsZS50
YWtlQW5kUmV0dXJuRG91YmxlKCJvbmUiKSksIHRydWUpOwogc2hvdWxkQmUoaXNOYU4obW9kdWxl
LnRha2VBbmRSZXR1cm5Eb3VibGUoeyB9KSksIHRydWUpOwogc2hvdWxkQmUobW9kdWxlLnRha2VB
bmRSZXR1cm5Eb3VibGUoWzIuNV0pLCAyLjUpOwogc2hvdWxkQmUobW9kdWxlLnRha2VBbmRSZXR1
cm5Eb3VibGUodHdvKSwgMik7CisKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5JbnQzMkZyb21JbnQz
MigpLCA0Mik7CitzaG91bGRCZShtb2R1bGUucmV0dXJuSW50MzJGcm9tRG91YmxlKCksIDQpOwor
c2hvdWxkQmUobW9kdWxlLnJldHVybkludDMyRnJvbVN0cmluZygpLCA0KTsKK3Nob3VsZEJlKG1v
ZHVsZS5yZXR1cm5JbnQzMkZyb21Cb29sZWFuKCksIDEpOworc2hvdWxkQmUobW9kdWxlLnJldHVy
bkRvdWJsZUZyb21JbnQzMigpLCA0Mik7CitzaG91bGRCZShtb2R1bGUucmV0dXJuRG91YmxlRnJv
bURvdWJsZSgpLCA0LjIpOworc2hvdWxkQmUobW9kdWxlLnJldHVybkRvdWJsZUZyb21TdHJpbmco
KSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5Eb3VibGVGcm9tQm9vbGVhbigpLCAxKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS90eXBl
LWNvbnZlcnNpb24ud2FzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2Fz
bS90eXBlLWNvbnZlcnNpb24ud2FzbQppbmRleCAwNjg2YjkxZWYzZTQ3NTQ1OTE2ZTg0ZjQ2ZmY3
NDg1NTE5NTBkZjQ4Li45ZDQzMTEyMDBhMmU4YTY0MGQwZTNkYTc1YzQ1MGQ3ZmRiZWU4ZjZkIDEw
MDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDE4CnpjbVo5SFE0V0dJNDJJalcwVjJqJSZZ
PnNKNyFxSWcxVCFxZTJ3UT85eklxZ247KkdxNXRCZXJWcTxgOGs/VnQ3fgp6cFkyeHdnI1pMWldY
SiMqQFUmTDt0bkdkV0VhSSp7bmZ9JSYtJn0yWCpSXmtzI3h6UTU+aSROczBjNFIyP3QoRlIKejxN
IWluQEwzUWo3enJuZG8jYVJva3FEQiszQyhCZzBkcCVLPlklSE92VkV0PWxWSEtoI3orZ2VWQUh3
WHlqNkNsCm45b002UGBlN2JtfERfMTxebHY9IWFkfGRSTGhSa3NrYkM9OCRTNDB5UnUkd3dHJSRB
fQoKZGVsdGEgNTUKd2NtWjMpb05Hez9TZSNxVSVtNHorNDIlcW5qRXFjLU9rZ2ZWZ28mWW5rXmNZ
P0Y5MmFpPTd+I2UwcEc5KXU+YiU3CgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKaW5kZXggZTYyYzc1ZjNlMGViMDgwNTM1ZWUyNWVmMTJl
NzUyMTI3ZmExY2ZjYi4uODAwYmEwODgwZGEwYmRiNjMwYzdjOTM5YTk1ZjBkOTI0NzZjNzQxMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGls
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxl
ci5oCkBAIC0xMDYsMjIgKzEwNiwyNSBAQCBwdWJsaWM6CiAKICAgICAgICAgdW5zaWduZWQgbG9j
YWxJbmRleCA9IDA7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNp
emUoKTsgKytpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogTm8gbmVlZCB0byBkbyB0eXBlIGNv
bnZlcnNpb24gaWYgdGhlIGNhbGxlciBpcyBhIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgogICAgICAg
ICAgICAgQWRkcmVzcyBhZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OmFyZ3VtZW50T2Zmc2V0KGkpICogc2l6ZW9mKFJlZ2lzdGVyKSk7Ci0gICAgICAgICAgICBz
d2l0Y2ggKGFyZ3VtZW50c1tpXSkgewotICAgICAgICAgICAgY2FzZSBXQVNNVHlwZTo6STMyOgog
I2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRv
SW50MzIoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mg
dmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKTsKICNlbHNlCi0gICAgICAgICAgICAgICAgbG9hZFZh
bHVlQW5kQ29udmVydFRvSW50MzIoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJl
Z1QxKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhHUFJJbmZvOjpyZWdUMSwg
R1BSSW5mbzo6cmVnVDApOwogI2VuZGlmCisgICAgICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywg
dmFsdWVSZWdzKTsKKyAgICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzW2ldKSB7CisgICAgICAg
ICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CisgICAgICAgICAgICAgICAgY29udmVydFZhbHVlVG9J
bnQzMih2YWx1ZVJlZ3MsIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgICAgICAgICBzdG9yZTMy
KEdQUkluZm86OnJlZ1QwLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCsrKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpGMzI6CiAgICAgICAgICAg
ICBjYXNlIFdBU01UeXBlOjpGNjQ6CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAg
ICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoYWRkcmVzcywgRlBSSW5mbzo6ZnBSZWdUMCwg
R1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgICAgICAgICBjb252ZXJ0
VmFsdWVUb0RvdWJsZSh2YWx1ZVJlZ3MsIEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJlZ1Qx
KTsKICNlbHNlCi0gICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKGFk
ZHJlc3MsIEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwg
R1BSSW5mbzo6cmVnVDIsIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICAgICAgICAgIGNvbnZl
cnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVn
VDIsIEZQUkluZm86OmZwUmVnVDEpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgaWYgKGFyZ3Vt
ZW50c1tpXSA9PSBXQVNNVHlwZTo6RjMyKQogICAgICAgICAgICAgICAgICAgICBjb252ZXJ0RG91
YmxlVG9GbG9hdChGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKQEAgLTEzNSw4
ICsxMzgsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoMCks
IGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKICAgICAgICAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8IG51bWJlck9mRjMyTG9jYWxWYXJpYWJsZXM7ICsraSkKICAgICAgICAgICAgIHN0b3Jl
MzIoVHJ1c3RlZEltbTMyKDApLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCsrKSk7Ci0gICAgICAg
IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1iZXJPZkY2NExvY2FsVmFyaWFibGVzOyArK2kp
CisgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1iZXJPZkY2NExvY2FsVmFyaWFi
bGVzOyArK2kpIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgc3RvcmU2NChUcnVz
dGVkSW1tNjQoMCksIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKKyNlbHNlCisgICAgICAg
ICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgpKTsK
KyAgICAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBsb2NhbEFkZHJlc3MobG9jYWxJ
bmRleCkud2l0aE9mZnNldCg0KSk7CisgICAgICAgICAgICBsb2NhbEluZGV4Kys7CisjZW5kaWYK
KyAgICAgICAgfQogCiAgICAgICAgIG1fY29kZUJsb2NrLT5zZXROdW1QYXJhbWV0ZXJzKDEgKyBh
cmd1bWVudHMuc2l6ZSgpKTsKICAgICB9CkBAIC0xNDYsNyArMTU2LDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgQVNTRVJUKCFtX3RlbXBTdGFja1RvcCk7CiAKICAgICAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGVzZSBpZiB0aGUgbGFzdCBzdGF0ZW1lbnQgaXMgYSByZXR1cm4gc3RhdGVtZW50LgotICAg
ICAgICBtb3ZlKFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpLCBH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgSlNW
YWx1ZVJlZ3MgcmV0dXJuVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbHNl
CisgICAgICAgIEpTVmFsdWVSZWdzIHJldHVyblZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUjIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbmRpZgorICAgICAgICBtb3ZlVHJ1
c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIHJldHVyblZhbHVlUmVncyk7CiAgICAgICAgIGVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgIHJldCgpOwogCkBAIC0yNDQsNiArMjU5LDExIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgYnVpbGRSZXR1cm4oaW50LCBXQVNNRXhwcmVzc2lvblR5cGUg
cmV0dXJuVHlwZSkKICAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgSlNWYWx1ZVJl
Z3MgcmV0dXJuVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbHNlCisgICAg
ICAgIEpTVmFsdWVSZWdzIHJldHVyblZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIs
IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbmRpZgogICAgICAgICBzd2l0Y2ggKHJldHVy
blR5cGUpIHsKICAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMjoKICAgICAgICAg
ICAgIGxvYWQzMih0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEdQUkluZm86
OnJldHVyblZhbHVlR1BSKTsKQEAgLTI1OSwxNSArMjc5LDExIEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJ
bmZvOjpmcFJlZ1QwKTsKICAgICAgICAgICAgIGlmIChyZXR1cm5UeXBlID09IFdBU01FeHByZXNz
aW9uVHlwZTo6RjMyKQogICAgICAgICAgICAgICAgIGNvbnZlcnRGbG9hdFRvRG91YmxlKEZQUklu
Zm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgICAgICBib3hEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOwotI2Vsc2UKLSAgICAgICAgICAgIGJveERvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLSNlbmRpZgor
ICAgICAgICAgICAgY29udmVydERvdWJsZVRvVmFsdWUoRlBSSW5mbzo6ZnBSZWdUMCwgcmV0dXJu
VmFsdWVSZWdzKTsKICAgICAgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OlZvaWQ6Ci0gICAgICAgICAg
ICBtb3ZlKFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBtb3ZlVHJ1c3RlZFZhbHVlKGpzVW5k
ZWZpbmVkKCksIHJldHVyblZhbHVlUmVncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODM5LDYgKzg1
NSwxNCBAQCBwcml2YXRlOgogICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwg
ZHN0KTsKICAgICB9CiAjZWxzZQorICAgIC8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82
NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBp
dCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0p
LgorICAgIC8vIFRvIGF2b2lkIGFzc2VtYmxpZXMgZnJvbSB1c2luZyB3cm9uZyByZWdpc3RlcnMs
IGxldCdzIG9jY3VweSByMSBvciByMyB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3Nh
cnkuCisjaWYgKENPTVBJTEVSX1NVUFBPUlRTKEVBQkkpICYmIENQVShBUk0pKSB8fCBDUFUoTUlQ
UykKKyNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCisj
ZWxzZQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRworI2VuZGlmCisKICAgICB2b2lkIGNh
bGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgc3JjVGFnLCBH
UFJSZWcgc3JjUGF5bG9hZCwgR1BSUmVnIGRzdCkKICAgICB7CiAgICAgICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBzcmNQYXlsb2FkLCBzcmNUYWcp
OwpAQCAtODc5LDYgKzkwMywxMSBAQCBwcml2YXRlOgogCiAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytpKSB7CiAgICAgICAgICAgICBBZGRyZXNzIGFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIChzdGFja09mZnNldCArIENhbGxGcmFtZTo6
YXJndW1lbnRPZmZzZXQoaSkpICogc2l6ZW9mKFJlZ2lzdGVyKSk7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhHUFJJbmZvOjpyZWdUMCk7Cisj
ZWxzZQorICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJlZ1QxLCBH
UFJJbmZvOjpyZWdUMCk7CisjZW5kaWYKICAgICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzW2ld
KSB7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CiAgICAgICAgICAgICAgICAgbG9h
ZDMyKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSBhcmd1bWVudENvdW50ICsgaSks
IEdQUkluZm86OnJlZ1QwKTsKQEAgLTg5MCw2ICs5MTksMTQgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIGFkZHJlc3Mu
d2l0aE9mZnNldChUYWdPZmZzZXQpKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBXQVNNVHlwZTo6RjMyOgorICAgICAgICAgICAgY2FzZSBXQVNNVHlw
ZTo6RjY0OgorICAgICAgICAgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3Rl
bXBTdGFja1RvcCAtIGFyZ3VtZW50Q291bnQgKyBpKSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAg
ICAgICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSA9PSBXQVNNVHlwZTo6RjMyKQorICAgICAgICAg
ICAgICAgICAgICBjb252ZXJ0RmxvYXRUb0RvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZv
OjpmcFJlZ1QwKTsKKyAgICAgICAgICAgICAgICBjb252ZXJ0RG91YmxlVG9WYWx1ZShGUFJJbmZv
OjpmcFJlZ1QwLCB2YWx1ZVJlZ3MpOworICAgICAgICAgICAgICAgIHN0b3JlVmFsdWUodmFsdWVS
ZWdzLCBhZGRyZXNzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9
CkBAIC05MDYsOCArOTQzLDggQEAgcHJpdmF0ZToKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICBzdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBK
U1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6
ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAjZWxzZQotICAgICAgICBzdG9yZTMyKHJlZ1QwLCBB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSkpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihDZWxsVGFnKSwgQWRk
cmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFu
ZFBDKSkpOworICAgICAgICBzdG9yZTMyKEdQUkluZm86OnJlZ1QwLCBBZGRyZXNzKHN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihS
ZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwor
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQWRkcmVzcyhz
dGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkp
OwogI2VuZGlmCiAKICAgICAgICAgRGF0YUxhYmVsUHRyIGFkZHJlc3NPZkxpbmtlZEZ1bmN0aW9u
Q2hlY2s7CkBAIC05MjksOSArOTY2LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGFkZFB0cihUcnVz
dGVkSW1tMzIoLVdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpLCBtX3N0YWNrSGVpZ2h0KSAqIHNpemVvZihTdGFja1Nsb3QpIC0gbWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCisgICAg
ICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIGRvIHR5cGUgY29udmVyc2lvbiBpZiB0aGUgY2FsbGVl
IGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAg
SlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbHNlCisg
ICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbmRpZgogICAgICAgICBzd2l0Y2ggKHJldHVyblR5
cGUpIHsKICAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMjoKLSAgICAgICAgICAg
IHN0b3JlMzIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1w
U3RhY2tUb3ArKykpOworICAgICAgICAgICAgY29udmVydFZhbHVlVG9JbnQzMih2YWx1ZVJlZ3Ms
IEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsIHRl
bXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3ArKykpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgV0FTTUV4cHJlc3Npb25UeXBlOjpGMzI6CisgICAgICAgIGNhc2UgV0FTTUV4
cHJlc3Npb25UeXBlOjpGNjQ6CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIGNvbnZl
cnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6bm9u
UHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKKyNlbHNlCisgICAgICAgICAgICBjb252ZXJ0VmFsdWVU
b0RvdWJsZSh2YWx1ZVJlZ3MsIEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86Om5vblByZXNlcnZl
ZE5vblJldHVybkdQUiwgRlBSSW5mbzo6ZnBSZWdUMSk7CisjZW5kaWYKKyAgICAgICAgICAgIGlm
IChyZXR1cm5UeXBlID09IFdBU01FeHByZXNzaW9uVHlwZTo6RjMyKQorICAgICAgICAgICAgICAg
IGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDAp
OworICAgICAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgdGVtcG9yYXJ5QWRk
cmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBXQVNNRXhwcmVzc2lvblR5cGU6OlZvaWQ6CiAgICAgICAgICAgICBicmVhazsKQEAgLTk0MSw2
OSArOTk2LDcyIEBAIHByaXZhdGU6CiAgICAgfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICB2
b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKEFkZHJlc3MgYWRkcmVzcywgR1BSUmVnIGRz
dCkKKyAgICB2b2lkIGNvbnZlcnRWYWx1ZVRvSW50MzIoSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBH
UFJSZWcgZHN0KQogICAgIHsKLSAgICAgICAgSlNWYWx1ZVJlZ3MgdGVtcFJlZ3MoZHN0KTsKLSAg
ICAgICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pT
SW50MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTSW50
MzIgPSBicmFuY2hJZkludDMyKHZhbHVlUmVncyk7CiAKLSAgICAgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvSW50MzIsIGRzdCwgZHN0KTsKKyAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvSW50MzIsIHZhbHVlUmVncy5ncHIoKSwg
dmFsdWVSZWdzLmdwcigpKTsKIAogICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKKyAg
ICAgICAgbW92ZSh2YWx1ZVJlZ3MuZ3ByKCksIGRzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2Fk
VmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJSZWcgZHN0LCBHUFJS
ZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMikKKyAgICB2b2lkIGNvbnZlcnRWYWx1ZVRvRG91
YmxlKEpTVmFsdWVSZWdzIHZhbHVlUmVncywgRlBSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gpCiAg
ICAgewotICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhzY3JhdGNoMSk7Ci0gICAgICAgIGxv
YWRWYWx1ZShhZGRyZXNzLCB0ZW1wUmVncyk7Ci0gICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0g
YnJhbmNoSWZJbnQzMih0ZW1wUmVncyk7Ci0gICAgICAgIEp1bXAgY2hlY2tKU051bWJlciA9IGJy
YW5jaElmTnVtYmVyKHRlbXBSZWdzLCBzY3JhdGNoMik7CisgICAgICAgIEp1bXAgY2hlY2tKU0lu
dDMyID0gYnJhbmNoSWZJbnQzMih2YWx1ZVJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNOdW1i
ZXIgPSBicmFuY2hJZk51bWJlcih2YWx1ZVJlZ3MsIHNjcmF0Y2gpOwogICAgICAgICBKdW1wTGlz
dCBlbmQ7CiAKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRv
RG91YmxlLCB0ZW1wUmVncy5ncHIoKSwgZHN0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlLCB2YWx1ZVJlZ3MuZ3ByKCksIGRzdCk7CiAgICAg
ICAgIGVuZC5hcHBlbmQoanVtcCgpKTsKIAogICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlz
KTsKLSAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUodGVtcFJlZ3MuZ3ByKCksIGRzdCk7Cisg
ICAgICAgIGNvbnZlcnRJbnQzMlRvRG91YmxlKHZhbHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICAg
ICAgZW5kLmFwcGVuZChqdW1wKCkpOwogCiAgICAgICAgIGNoZWNrSlNOdW1iZXIubGluayh0aGlz
KTsKLSAgICAgICAgdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyh0ZW1wUmVncy5ncHIoKSwg
ZHN0KTsKKyAgICAgICAgdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyh2YWx1ZVJlZ3MuZ3By
KCksIGRzdCk7CiAgICAgICAgIGVuZC5saW5rKHRoaXMpOwogICAgIH0KICNlbHNlCi0gICAgdm9p
ZCBsb2FkVmFsdWVBbmRDb252ZXJ0VG9JbnQzMihBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBkc3Qs
IEdQUlJlZyBzY3JhdGNoKQorICAgIHZvaWQgY29udmVydFZhbHVlVG9JbnQzMihKU1ZhbHVlUmVn
cyB2YWx1ZVJlZ3MsIEdQUlJlZyBkc3QpCiAgICAgewotICAgICAgICBKU1ZhbHVlUmVncyB0ZW1w
UmVncyhzY3JhdGNoLCBkc3QpOwotICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3Mp
OwotICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOwor
ICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodmFsdWVSZWdzKTsKIAot
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdGVt
cFJlZ3MudGFnR1BSKCksIHRlbXBSZWdzLnBheWxvYWRHUFIoKSwgZHN0KTsKKyAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvSW50MzIsIHZhbHVlUmVncy50YWdH
UFIoKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CiAK
ICAgICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhpcyk7CisgICAgICAgIG1vdmUodmFsdWVSZWdz
LnBheWxvYWRHUFIoKSwgZHN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZl
cnRUb0RvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUlJlZyBkc3QsIEdQUlJlZyBzY3JhdGNoMSwg
R1BSUmVnIHNjcmF0Y2gyLCBHUFJSZWcgc2NyYXRjaDMsIEZQUlJlZyBmcFNjcmF0Y2gpCisgICAg
dm9pZCBjb252ZXJ0VmFsdWVUb0RvdWJsZShKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MsIEZQUlJlZyBk
c3QsIEdQUlJlZyBzY3JhdGNoLCBGUFJSZWcgZnBTY3JhdGNoKQogICAgIHsKLSAgICAgICAgSlNW
YWx1ZVJlZ3MgdGVtcFJlZ3Moc2NyYXRjaDIsIHNjcmF0Y2gxKTsKLSAgICAgICAgbG9hZFZhbHVl
KGFkZHJlc3MsIHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBicmFuY2hJ
ZkludDMyKHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJhbmNoSWZO
dW1iZXIodGVtcFJlZ3MsIHNjcmF0Y2gzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBi
cmFuY2hJZkludDMyKHZhbHVlUmVncyk7CisgICAgICAgIEp1bXAgY2hlY2tKU051bWJlciA9IGJy
YW5jaElmTnVtYmVyKHZhbHVlUmVncywgc2NyYXRjaCk7CiAgICAgICAgIEp1bXBMaXN0IGVuZDsK
IAotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9Eb3VibGUs
IHRlbXBSZWdzLnRhZ0dQUigpLCB0ZW1wUmVncy5wYXlsb2FkR1BSKCksIGRzdCk7CisgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSwgdmFsdWVSZWdz
LnRhZ0dQUigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOwogICAgICAgICBlbmQuYXBw
ZW5kKGp1bXAoKSk7CiAKICAgICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhpcyk7Ci0gICAgICAg
IGNvbnZlcnRJbnQzMlRvRG91YmxlKHRlbXBSZWdzLnBheWxvYWRHUFIoKSwgZHN0KTsKKyAgICAg
ICAgY29udmVydEludDMyVG9Eb3VibGUodmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgZHN0KTsKICAg
ICAgICAgZW5kLmFwcGVuZChqdW1wKCkpOwogCiAgICAgICAgIGNoZWNrSlNOdW1iZXIubGluayh0
aGlzKTsKLSAgICAgICAgdW5ib3hEb3VibGUodGVtcFJlZ3MudGFnR1BSKCksIHRlbXBSZWdzLnBh
eWxvYWRHUFIoKSwgZHN0LCBmcFNjcmF0Y2gpCisgICAgICAgIHVuYm94RG91YmxlKHZhbHVlUmVn
cy50YWdHUFIoKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgZHN0LCBmcFNjcmF0Y2gpOwogICAg
ICAgICBlbmQubGluayh0aGlzKTsKICAgICB9CiAjZW5kaWYKIAorICAgIHZvaWQgY29udmVydERv
dWJsZVRvVmFsdWUoRlBSUmVnIGZwciwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKQorICAgIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBib3hEb3VibGUoZnByLCB2YWx1ZVJlZ3MuZ3ByKCkp
OworI2Vsc2UKKyAgICAgICAgYm94RG91YmxlKGZwciwgdmFsdWVSZWdzLnRhZ0dQUigpLCB2YWx1
ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIEpTV0FTTU1vZHVsZSog
bV9tb2R1bGU7CiAgICAgdW5zaWduZWQgbV9zdGFja0hlaWdodDsKICAgICB1bnNpZ25lZCBtX251
bWJlck9mTG9jYWxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvblBhcnNlci5jcHAKaW5kZXggZjhiYTlkZjBiNTYyMzU5ZTYxNTM3Y2U5M2UzNzA4YzYxYzQ2
NTIxNS4uY2MzYmQ3ZWRmZDhjMTlmODNkNDQ5YWQ3ZWI4NjdiMzk3OTA1ODZjZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCkBAIC01
MjksNyArNTI5LDcgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJz
ZUV4cHJlc3Npb25JMzIoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uSTMyOjpHZXRHbG9iYWw6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRHbG9iYWxF
eHByZXNzaW9uSTMyKGNvbnRleHQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6
OkNhbGxJbnRlcm5hbDoKLSAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbEV4cHJl
c3Npb25JMzIoY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gcGFyc2VDYWxsSW50ZXJuYWwo
Y29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzIpOwogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25JMzI6OkNhbGxJbXBvcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VDYWxsSW1w
b3J0KGNvbnRleHQsIFdBU01FeHByZXNzaW9uVHlwZTo6STMyKTsKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uSTMyOjpOZWdhdGU6CkBAIC02ODAsMTIgKzY4MCw2IEBAIENvbnRleHRFeHBy
ZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uSTMyKENv
bnRleHQmIGNvbnRlCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgotQ29udGV4dEV4cHJl
c3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUNhbGxJbnRlcm5hbEV4cHJlc3Npb25JMzIo
Q29udGV4dCYgY29udGV4dCkKLXsKLSAgICByZXR1cm4gcGFyc2VDYWxsSW50ZXJuYWwoY29udGV4
dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzIpOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4
dD4KIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VVbmFyeUV4cHJl
c3Npb25JMzIoQ29udGV4dCYgY29udGV4dCwgV0FTTU9wRXhwcmVzc2lvbkkzMiBvcCkKIHsKICAg
ICBDb250ZXh0RXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uSTMyKGNvbnRl
eHQpOwpAQCAtNzUxLDYgKzc0NSw4IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBh
cnNlcjo6cGFyc2VFeHByZXNzaW9uRjMyKENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GMzIoY29udGV4dCk7CiAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkYzMjo6R2V0R2xvYmFsOgogICAgICAgICAgICAgcmV0dXJuIHBhcnNl
R2V0R2xvYmFsRXhwcmVzc2lvbkYzMihjb250ZXh0KTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjMyOjpDYWxsSW50ZXJuYWw6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VDYWxsSW50
ZXJuYWwoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpGMzIpOwogICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GMzI6Ok5lZ2F0ZToKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjMyOjpBYnM6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q2VpbDoKQEAgLTc2
OCw3ICs3NjQsNiBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNl
RXhwcmVzc2lvbkYzMihDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GMzI6OkxvYWRXaXRoT2Zmc2V0OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
MzI6OlN0b3JlOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OlN0b3JlV2l0aE9m
ZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpDYWxsSW50ZXJuYWw6CiAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q2FsbEluZGlyZWN0OgogICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNvbmRpdGlvbmFsOgogICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GMzI6OkNvbW1hOgpAQCAtODc4LDYgKzg3Myw4IEBAIENvbnRleHRFeHByZXNz
aW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRl
eHQpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4
dCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0R2xvYmFsOgogICAgICAg
ICAgICAgcmV0dXJuIHBhcnNlR2V0R2xvYmFsRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW50ZXJuYWw6CisgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VDYWxsSW50ZXJuYWwoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpGNjQp
OwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbXBvcnQ6CiAgICAgICAg
ICAgICByZXR1cm4gcGFyc2VDYWxsSW1wb3J0KGNvbnRleHQsIFdBU01FeHByZXNzaW9uVHlwZTo6
RjY0KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTZXRMb2NhbDoKQEAgLTg4
Niw3ICs4ODMsNiBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNl
RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OkxvYWRXaXRoT2Zmc2V0OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OlN0b3JlOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlV2l0aE9m
ZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW50ZXJuYWw6CiAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2FsbEluZGlyZWN0OgogICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvbmRpdGlvbmFsOgogICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkNvbW1hOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNRnVuY3Rpb25QYXJzZXIuaAppbmRleCA5YjRjZjNjZDU4NzliMTczYTkyN2JjZWNhMjY2ZTMw
ZGZiMWE5NjcwLi5kOGY1NTU1YzBjMzk4NjMyZTRhZDM2MzkzNDE0ZTg4ZmZjOTZhZWIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaApAQCAt
ODksNyArODksNiBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250
ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkkzMihDb250ZXh0JiwgdWludDMy
X3QgbG9jYWxJbmRleCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHBy
ZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uSTMyKENvbnRleHQmKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRHbG9iYWxFeHByZXNz
aW9uSTMyKENvbnRleHQmKTsKLSAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4
cHJlc3Npb24gcGFyc2VDYWxsSW50ZXJuYWxFeHByZXNzaW9uSTMyKENvbnRleHQmKTsKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJl
c3Npb25JMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25JMzIpOwogICAgIHRlbXBsYXRlIDxj
bGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25JMzIo
Q29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25JMzIpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250
ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZVJlbGF0aW9uYWxJMzJFeHByZXNzaW9uSTMyKENv
bnRleHQmLCBXQVNNT3BFeHByZXNzaW9uSTMyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261277</attachid>
            <date>2015-09-15 18:08:28 -0700</date>
            <delta_ts>2015-09-17 02:56:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>23570</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDY1ZGM3ODFjMDNjYzZiNjc4Mzk4ZDVmMWI5Zjgx
ZDUxNDU3YzZkYzUuLjM3MWUyN2ViMTFmYjc4MjZiOTNhYWY0Yjc2ODQxZTg5M2Q3MzYwY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTA5LTE1ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIENvbnZlcnQg
cmV0dXJuIHZhbHVlcyBmcm9tIEphdmFTY3JpcHQgZnVuY3Rpb25zIHRvIHRoZSBleHBlY3RlZCB0
eXBlcyBpbiBXZWJBc3NlbWJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ5MjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiBhIFdlYkFzc2VtYmx5IGZ1bmN0aW9uIGNhbGxzIGEgSmF2YVNjcmlw
dCBmdW5jdGlvbiwgdGhlcmUgaXMgbm8KKyAgICAgICAgZ3VhcmFudGVlIHRoYXQgdGhlIEphdmFT
Y3JpcHQgZnVuY3Rpb24gd2lsbCBhbHdheXMgcmV0dXJuIHZhbHVlcyBvZiB0aGUKKyAgICAgICAg
dHlwZSB3ZSBleHBlY3QuIFRoaXMgcGF0Y2ggY29udmVydHMgdGhlIHJldHVybiB2YWx1ZXMgdG8g
dGhlIGV4cGVjdGVkCisgICAgICAgIHR5cGVzLgorCisgICAgICAgIChUaGUgcmV2ZXJzZSBpcyBh
bHNvIHRydWU6IFdoZW4gYSBXZWJBc3NlbWJseSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBhCisg
ICAgICAgIEphdmFTY3JpcHQgZnVuY3Rpb24sIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRo
ZSBhcmd1bWVudHMgdG8gdGhlCisgICAgICAgIFdlYkFzc2VtYmx5IGZ1bmN0aW9uIHdpbGwgYWx3
YXlzIGJlIG9mIHRoZSB0eXBlcyB3ZSBleHBlY3QuIFdlIGhhdmUKKyAgICAgICAgZml4ZWQgdGhp
cyBpbiBCdWcgMTQ5MDMzLikKKworICAgICAgICBXZSBkb24ndCBuZWVkIHRvIHR5cGUgY2hlY2sg
dGhlIHJldHVybiB2YWx1ZXMgaWYgdGhlIGNhbGxlZSBpcyBhCisgICAgICAgIFdlYkFzc2VtYmx5
IGZ1bmN0aW9uLiBXZSBkb24ndCBuZWVkIHRvIHR5cGUgY2hlY2sgdGhlIGFyZ3VtZW50cyBpZiB0
aGUKKyAgICAgICAgY2FsbGVyIGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rpb24uIFRoaXMgb3B0aW1p
emF0aW9uIHdpbGwgYmUKKyAgICAgICAgaW1wbGVtZW50ZWQgaW4gdGhlIGZ1dHVyZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgMzItYml0IGJ1aWxkIGlzc3VlcyBhbmQgbWFrZXMg
dGhlIGNvZGUgZWFzaWVyIHRvCisgICAgICAgIHJlYWQgYnkgYWJzdHJhY3RpbmcgYXdheSBzb21l
IGRpZmZlcmVuY2VzIGJldHdlZW4gMzItIGFuZCA2NC1iaXQKKyAgICAgICAgaW5zdHJ1Y3Rpb25z
LgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20tdHlwZS1jb252ZXJzaW9uLmpzOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy93YXNtL3R5cGUtY29udmVyc2lvbi53YXNtOgorICAgICAgICAq
IHdhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OnN0YXJ0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6ZW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6
YnVpbGRSZXR1cm4pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Ym94QXJn
dW1lbnRzQW5kQWRqdXN0U3RhY2tQb2ludGVyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OmNhbGxBbmRVbmJveFJlc3VsdCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlv
bkNvbXBpbGVyOjpjb252ZXJ0VmFsdWVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0
aW9uQ29tcGlsZXI6OmNvbnZlcnRWYWx1ZVRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1
bmN0aW9uQ29tcGlsZXI6OmNvbnZlcnREb3VibGVUb1ZhbHVlKToKKyAgICAgICAgKEpTQzo6V0FT
TUZ1bmN0aW9uQ29tcGlsZXI6OmxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmxvYWRWYWx1ZUFuZENvbnZlcnRU
b0RvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkkzMik6
CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjMyKToK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQpOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQ2FsbEludGVybmFsRXhwcmVz
c2lvbkkzMik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoK
KwogMjAxNS0wOS0xNSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgY2FsbHMgdG8gSmF2YVNjcmlwdCBmdW5jdGlvbnMgaW4gV2Vi
QXNzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
d2FzbS10eXBlLWNvbnZlcnNpb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3dhc20tdHlwZS1jb252ZXJzaW9uLmpzCmluZGV4IDg0YjNiODk3ZDVlMTRiYWViMGFjNWNk
NWViZDIzYTk3Y2Q3MGU4MzYuLjM1YmJmMWQyYzdkNDY5NGNiYWZkNjIwMTA0ZWI5MzhlZGM5Y2Y4
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS10
eXBlLWNvbnZlcnNpb24uanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy93YXNtLXR5cGUtY29udmVyc2lvbi5qcwpAQCAtOCwxNCArOCwxOCBAQCBmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAvKgogd2FzbS90eXBlLWNvbnZlcnNpb24ud2FzbSBp
cyBnZW5lcmF0ZWQgYnkgcGFjay1hc21qcyA8aHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5
L3BvbHlmaWxsLXByb3RvdHlwZS0xPiBmcm9tIHRoZSBmb2xsb3dpbmcgc2NyaXB0OgogCi1mdW5j
dGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgeworZnVuY3Rpb24gYXNtTW9kdWxl
KGdsb2JhbCwgaW1wb3J0cywgYnVmZmVyKSB7CiAgICAgInVzZSBhc20iOwogCiAgICAgdmFyIGZy
b3VuZCA9IGdsb2JhbC5NYXRoLmZyb3VuZDsKKyAgICB2YXIgZ2V0SW50MzIgPSBpbXBvcnRzLmdl
dEludDMyOworICAgIHZhciBnZXREb3VibGUgPSBpbXBvcnRzLmdldERvdWJsZTsKKyAgICB2YXIg
Z2V0U3RyaW5nID0gaW1wb3J0cy5nZXRTdHJpbmc7CisgICAgdmFyIGdldEJvb2xlYW4gPSBpbXBv
cnRzLmdldEJvb2xlYW47CiAKICAgICBmdW5jdGlvbiB0YWtlQW5kUmV0dXJuSW50MzIoeCkgewog
ICAgICAgICB4ID0geCB8IDA7Ci0gICAgICAgIHJldHVybiB4OworICAgICAgICByZXR1cm4geCB8
IDA7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGFrZUFuZFJldHVybkZsb2F0KHgpIHsKQEAgLTI4
LDE0ICszMiw2MiBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewog
ICAgICAgICByZXR1cm4geDsKICAgICB9CiAKKyAgICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21J
bnQzMigpIHsKKyAgICAgICAgcmV0dXJuIGdldEludDMyKCkgfCAwOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJldHVybkludDMyRnJvbURvdWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvdWJs
ZSgpIHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21TdHJpbmcoKSB7
CisgICAgICAgIHJldHVybiBnZXRTdHJpbmcoKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cmV0dXJuSW50MzJGcm9tQm9vbGVhbigpIHsKKyAgICAgICAgcmV0dXJuIGdldEJvb2xlYW4oKSB8
IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuRG91YmxlRnJvbUludDMyKCkgeworICAg
ICAgICByZXR1cm4gK2dldEludDMyKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuRG91
YmxlRnJvbURvdWJsZSgpIHsKKyAgICAgICAgcmV0dXJuICtnZXREb3VibGUoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiByZXR1cm5Eb3VibGVGcm9tU3RyaW5nKCkgeworICAgICAgICByZXR1cm4g
K2dldFN0cmluZygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkRvdWJsZUZyb21Cb29s
ZWFuKCkgeworICAgICAgICByZXR1cm4gK2dldEJvb2xlYW4oKTsKKyAgICB9CisKICAgICByZXR1
cm4gewogICAgICAgICB0YWtlQW5kUmV0dXJuSW50MzI6IHRha2VBbmRSZXR1cm5JbnQzMiwKKyAg
ICAgICAgdGFrZUFuZFJldHVybkZsb2F0OiB0YWtlQW5kUmV0dXJuRmxvYXQsCiAgICAgICAgIHRh
a2VBbmRSZXR1cm5Eb3VibGU6IHRha2VBbmRSZXR1cm5Eb3VibGUsCisKKyAgICAgICAgcmV0dXJu
SW50MzJGcm9tSW50MzI6IHJldHVybkludDMyRnJvbUludDMyLAorICAgICAgICByZXR1cm5JbnQz
MkZyb21Eb3VibGU6IHJldHVybkludDMyRnJvbURvdWJsZSwKKyAgICAgICAgcmV0dXJuSW50MzJG
cm9tU3RyaW5nOiByZXR1cm5JbnQzMkZyb21TdHJpbmcsCisgICAgICAgIHJldHVybkludDMyRnJv
bUJvb2xlYW46IHJldHVybkludDMyRnJvbUJvb2xlYW4sCisgICAgICAgIHJldHVybkRvdWJsZUZy
b21JbnQzMjogcmV0dXJuRG91YmxlRnJvbUludDMyLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9t
RG91YmxlOiByZXR1cm5Eb3VibGVGcm9tRG91YmxlLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9t
U3RyaW5nOiByZXR1cm5Eb3VibGVGcm9tU3RyaW5nLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9t
Qm9vbGVhbjogcmV0dXJuRG91YmxlRnJvbUJvb2xlYW4sCiAgICAgfTsKIH0KICovCiAKLXZhciBt
b2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndhc20vdHlwZS1jb252ZXJzaW9uLndhc20iKTsKK3Zh
ciBpbXBvcnRzID0geworICAgIGdldEludDMyOiAoKSA9PiA0MiwKKyAgICBnZXREb3VibGU6ICgp
ID0+IDQuMiwKKyAgICBnZXRTdHJpbmc6ICgpID0+ICI0LjIiLAorICAgIGdldEJvb2xlYW46ICgp
ID0+IHRydWUsCit9OwordmFyIG1vZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS90eXBlLWNv
bnZlcnNpb24ud2FzbSIsIGltcG9ydHMpOwogCiB2YXIgdHdvID0gewogICAgIHZhbHVlT2YoKSB7
IHJldHVybiAyOyB9CkBAIC03MCwzICsxMjIsMTIgQEAgc2hvdWxkQmUoaXNOYU4obW9kdWxlLnRh
a2VBbmRSZXR1cm5Eb3VibGUoIm9uZSIpKSwgdHJ1ZSk7CiBzaG91bGRCZShpc05hTihtb2R1bGUu
dGFrZUFuZFJldHVybkRvdWJsZSh7IH0pKSwgdHJ1ZSk7CiBzaG91bGRCZShtb2R1bGUudGFrZUFu
ZFJldHVybkRvdWJsZShbMi41XSksIDIuNSk7CiBzaG91bGRCZShtb2R1bGUudGFrZUFuZFJldHVy
bkRvdWJsZSh0d28pLCAyKTsKKworc2hvdWxkQmUobW9kdWxlLnJldHVybkludDMyRnJvbUludDMy
KCksIDQyKTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5JbnQzMkZyb21Eb3VibGUoKSwgNCk7Citz
aG91bGRCZShtb2R1bGUucmV0dXJuSW50MzJGcm9tU3RyaW5nKCksIDQpOworc2hvdWxkQmUobW9k
dWxlLnJldHVybkludDMyRnJvbUJvb2xlYW4oKSwgMSk7CitzaG91bGRCZShtb2R1bGUucmV0dXJu
RG91YmxlRnJvbUludDMyKCksIDQyKTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5Eb3VibGVGcm9t
RG91YmxlKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUucmV0dXJuRG91YmxlRnJvbVN0cmluZygp
LCA0LjIpOworc2hvdWxkQmUobW9kdWxlLnJldHVybkRvdWJsZUZyb21Cb29sZWFuKCksIDEpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL3R5cGUt
Y29udmVyc2lvbi53YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNt
L3R5cGUtY29udmVyc2lvbi53YXNtCmluZGV4IDA2ODZiOTFlZjNlNDc1NDU5MTZlODRmNDZmZjc0
ODU1MTk1MGRmNDguLjlkNDMxMTIwMGEyZThhNjQwZDBlM2RhNzVjNDUwZDdmZGJlZThmNmQgMTAw
NjQ0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MTgKemNtWjlIUTRXR0k0MklqVzBWMmolJlk+
c0o3IXFJZzFUIXFlMndRPzl6SXFnbjsqR3E1dEJlclZxPGA4az9WdDd+CnpwWTJ4d2cjWkxaV1hK
IypAVSZMO3RuR2RXRWFJKntuZn0lJi0mfTJYKlJea3MjeHpRNT5pJE5zMGM0UjI/dChGUgp6PE0h
aW5ATDNRajd6cm5kbyNhUm9rcURCKzNDKEJnMGRwJUs+WSVIT3ZWRXQ9bFZIS2gjeitnZVZBSHdY
eWo2Q2wKbjlvTTZQYGU3Ym18RF8xPF5sdj0hYWR8ZFJMaFJrc2tiQz04JFM0MHlSdSR3d0clJEF9
CgpkZWx0YSA1NQp3Y21aMylvTkd7P1NlI3FVJW00eis0MiVxbmpFcWMtT2tnZlZnbyZZbmteY1k/
RjkyYWk9N34jZTBwRzkpdT5iJTcKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRleCBlNjJjNzVmM2UwZWIwODA1MzVlZTI1ZWYxMmU3
NTIxMjdmYTFjZmNiLi44MDBiYTA4ODBkYTBiZGI2MzBjN2M5MzlhOTVmMGQ5MjQ3NmM3NDExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVy
LmgKQEAgLTEwNiwyMiArMTA2LDI1IEBAIHB1YmxpYzoKIAogICAgICAgICB1bnNpZ25lZCBsb2Nh
bEluZGV4ID0gMDsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIGRvIHR5cGUgY29u
dmVyc2lvbiBpZiB0aGUgY2FsbGVyIGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCiAgICAgICAg
ICAgICBBZGRyZXNzIGFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFt
ZTo6YXJndW1lbnRPZmZzZXQoaSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKLSAgICAgICAgICAgIHN3
aXRjaCAoYXJndW1lbnRzW2ldKSB7Ci0gICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CiAj
aWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9J
bnQzMihhZGRyZXNzLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDApOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBsb2FkVmFs
dWVBbmRDb252ZXJ0VG9JbnQzMihhZGRyZXNzLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVn
VDEpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJlZ1QxLCBH
UFJJbmZvOjpyZWdUMCk7CiAjZW5kaWYKKyAgICAgICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB2
YWx1ZVJlZ3MpOworICAgICAgICAgICAgc3dpdGNoIChhcmd1bWVudHNbaV0pIHsKKyAgICAgICAg
ICAgIGNhc2UgV0FTTVR5cGU6OkkzMjoKKyAgICAgICAgICAgICAgICBjb252ZXJ0VmFsdWVUb0lu
dDMyKHZhbHVlUmVncywgR1BSSW5mbzo6cmVnVDApOwogICAgICAgICAgICAgICAgIHN0b3JlMzIo
R1BSSW5mbzo6cmVnVDAsIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkYzMjoKICAgICAgICAgICAg
IGNhc2UgV0FTTVR5cGU6OkY2NDoKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgICAg
IGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShhZGRyZXNzLCBGUFJJbmZvOjpmcFJlZ1QwLCBH
UFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICAgICAgICAgIGNvbnZlcnRW
YWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVnVDEp
OwogI2Vsc2UKLSAgICAgICAgICAgICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoYWRk
cmVzcywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBH
UFJJbmZvOjpyZWdUMiwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgICAgICAgICAgY29udmVy
dFZhbHVlVG9Eb3VibGUodmFsdWVSZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZWdU
MiwgRlBSSW5mbzo6ZnBSZWdUMSk7CiAjZW5kaWYKICAgICAgICAgICAgICAgICBpZiAoYXJndW1l
bnRzW2ldID09IFdBU01UeXBlOjpGMzIpCiAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnREb3Vi
bGVUb0Zsb2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwpAQCAtMTM1LDgg
KzEzOCwxNSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwg
bG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgrKykpOwogICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgbnVtYmVyT2ZGMzJMb2NhbFZhcmlhYmxlczsgKytpKQogICAgICAgICAgICAgc3RvcmUz
MihUcnVzdGVkSW1tMzIoMCksIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKLSAgICAgICAg
Zm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG51bWJlck9mRjY0TG9jYWxWYXJpYWJsZXM7ICsraSkK
KyAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG51bWJlck9mRjY0TG9jYWxWYXJpYWJs
ZXM7ICsraSkgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBzdG9yZTY0KFRydXN0
ZWRJbW02NCgwKSwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgrKykpOworI2Vsc2UKKyAgICAgICAg
ICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCkpOwor
ICAgICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIGxvY2FsQWRkcmVzcyhsb2NhbElu
ZGV4KS53aXRoT2Zmc2V0KDQpKTsKKyAgICAgICAgICAgIGxvY2FsSW5kZXgrKzsKKyNlbmRpZgor
ICAgICAgICB9CiAKICAgICAgICAgbV9jb2RlQmxvY2stPnNldE51bVBhcmFtZXRlcnMoMSArIGFy
Z3VtZW50cy5zaXplKCkpOwogICAgIH0KQEAgLTE0Niw3ICsxNTYsMTIgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlQoIW1fdGVtcFN0YWNrVG9wKTsKIAogICAgICAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoZXNlIGlmIHRoZSBsYXN0IHN0YXRlbWVudCBpcyBhIHJldHVybiBzdGF0ZW1lbnQuCi0gICAg
ICAgIG1vdmUoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSksIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU1Zh
bHVlUmVncyByZXR1cm5WYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UK
KyAgICAgICAgSlNWYWx1ZVJlZ3MgcmV0dXJuVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVl
R1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2VuZGlmCisgICAgICAgIG1vdmVUcnVz
dGVkVmFsdWUoanNVbmRlZmluZWQoKSwgcmV0dXJuVmFsdWVSZWdzKTsKICAgICAgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgcmV0KCk7CiAKQEAgLTI0NCw2ICsyNTksMTEgQEAg
cHVibGljOgogCiAgICAgdm9pZCBidWlsZFJldHVybihpbnQsIFdBU01FeHByZXNzaW9uVHlwZSBy
ZXR1cm5UeXBlKQogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU1ZhbHVlUmVn
cyByZXR1cm5WYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAgICAg
ICAgSlNWYWx1ZVJlZ3MgcmV0dXJuVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2VuZGlmCiAgICAgICAgIHN3aXRjaCAocmV0dXJu
VHlwZSkgewogICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6STMyOgogICAgICAgICAg
ICAgbG9hZDMyKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOwpAQCAtMjU5LDE1ICsyNzksMTEgQEAgcHVibGljOgogICAgICAgICAg
ICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUklu
Zm86OmZwUmVnVDApOwogICAgICAgICAgICAgaWYgKHJldHVyblR5cGUgPT0gV0FTTUV4cHJlc3Np
b25UeXBlOjpGMzIpCiAgICAgICAgICAgICAgICAgY29udmVydEZsb2F0VG9Eb3VibGUoRlBSSW5m
bzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAg
ICAgICAgIGJveERvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
Uik7Ci0jZWxzZQotICAgICAgICAgICAgYm94RG91YmxlKEZQUkluZm86OmZwUmVnVDAsIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotI2VuZGlmCisg
ICAgICAgICAgICBjb252ZXJ0RG91YmxlVG9WYWx1ZShGUFJJbmZvOjpmcFJlZ1QwLCByZXR1cm5W
YWx1ZVJlZ3MpOwogICAgICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6Vm9pZDoKLSAgICAgICAgICAg
IG1vdmUoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSksIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIG1vdmVUcnVzdGVkVmFsdWUoanNVbmRl
ZmluZWQoKSwgcmV0dXJuVmFsdWVSZWdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MzksNiArODU1
LDE0IEBAIHByaXZhdGU6CiAgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBk
c3QpOwogICAgIH0KICNlbHNlCisgICAgLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0
IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0
IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSku
CisgICAgLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5nIHdyb25nIHJlZ2lzdGVycywg
bGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2Fy
eS4KKyNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkpIHx8IENQVShNSVBT
KQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKKyNl
bHNlCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKwogICAgIHZvaWQgY2Fs
bE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBzcmNUYWcsIEdQ
UlJlZyBzcmNQYXlsb2FkLCBHUFJSZWcgZHN0KQogICAgIHsKICAgICAgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIHNyY1BheWxvYWQsIHNyY1RhZyk7
CkBAIC04NzksNiArOTAzLDExIEBAIHByaXZhdGU6CiAKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBhcmd1bWVudENvdW50OyArK2kpIHsKICAgICAgICAgICAgIEFkZHJlc3MgYWRkcmVz
cyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgKHN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lOjph
cmd1bWVudE9mZnNldChpKSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKTsKKyNl
bHNlCisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDEsIEdQ
UkluZm86OnJlZ1QwKTsKKyNlbmRpZgogICAgICAgICAgICAgc3dpdGNoIChhcmd1bWVudHNbaV0p
IHsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkkzMjoKICAgICAgICAgICAgICAgICBsb2Fk
MzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIGFyZ3VtZW50Q291bnQgKyBpKSwg
R1BSSW5mbzo6cmVnVDApOwpAQCAtODkwLDYgKzkxOSwxNCBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgYWRkcmVzcy53
aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpGMzI6CisgICAgICAgICAgICBjYXNlIFdBU01UeXBl
OjpGNjQ6CisgICAgICAgICAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVt
cFN0YWNrVG9wIC0gYXJndW1lbnRDb3VudCArIGkpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAg
ICAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09IFdBU01UeXBlOjpGMzIpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnZlcnRGbG9hdFRvRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgICAgIGNvbnZlcnREb3VibGVUb1ZhbHVlKEZQUkluZm86
OmZwUmVnVDAsIHZhbHVlUmVncyk7CisgICAgICAgICAgICAgICAgc3RvcmVWYWx1ZSh2YWx1ZVJl
Z3MsIGFkZHJlc3MpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0K
QEAgLTkwNiw4ICs5NDMsOCBAQCBwcml2YXRlOgogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAg
IHN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpT
U3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIocmVnVDAsIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKENlbGxUYWcpLCBBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CisgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsIEFkZHJlc3Moc3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJl
Z2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7Cisg
ICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBZGRyZXNzKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7
CiAjZW5kaWYKIAogICAgICAgICBEYXRhTGFiZWxQdHIgYWRkcmVzc09mTGlua2VkRnVuY3Rpb25D
aGVjazsKQEAgLTkyOSw5ICs5NjYsMjcgQEAgcHJpdmF0ZToKICAgICAgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMigtV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksIG1fc3RhY2tIZWlnaHQpICogc2l6ZW9mKFN0YWNrU2xvdCkgLSBtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKKyAgICAg
ICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gZG8gdHlwZSBjb252ZXJzaW9uIGlmIHRoZSBjYWxsZWUg
aXMgYSBXZWJBc3NlbWJseSBmdW5jdGlvbi4KKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBK
U1ZhbHVlUmVncyB2YWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAg
ICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2VuZGlmCiAgICAgICAgIHN3aXRjaCAocmV0dXJuVHlw
ZSkgewogICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6STMyOgotICAgICAgICAgICAg
c3RvcmUzMihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBT
dGFja1RvcCsrKSk7CisgICAgICAgICAgICBjb252ZXJ0VmFsdWVUb0ludDMyKHZhbHVlUmVncywg
R1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZWdUMCwgdGVt
cG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkYzMjoKKyAgICAgICAgY2FzZSBXQVNNRXhw
cmVzc2lvblR5cGU6OkY2NDoKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgY29udmVy
dFZhbHVlVG9Eb3VibGUodmFsdWVSZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpub25Q
cmVzZXJ2ZWROb25SZXR1cm5HUFIpOworI2Vsc2UKKyAgICAgICAgICAgIGNvbnZlcnRWYWx1ZVRv
RG91YmxlKHZhbHVlUmVncywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6bm9uUHJlc2VydmVk
Tm9uUmV0dXJuR1BSLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyNlbmRpZgorICAgICAgICAgICAgaWYg
KHJldHVyblR5cGUgPT0gV0FTTUV4cHJlc3Npb25UeXBlOjpGMzIpCisgICAgICAgICAgICAgICAg
Y29udmVydERvdWJsZVRvRmxvYXQoRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7
CisgICAgICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRy
ZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFdBU01FeHByZXNzaW9uVHlwZTo6Vm9pZDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTQxLDY5
ICs5OTYsNzIgQEAgcHJpdmF0ZToKICAgICB9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIHZv
aWQgbG9hZFZhbHVlQW5kQ29udmVydFRvSW50MzIoQWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgZHN0
KQorICAgIHZvaWQgY29udmVydFZhbHVlVG9JbnQzMihKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MsIEdQ
UlJlZyBkc3QpCiAgICAgewotICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhkc3QpOwotICAg
ICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNJ
bnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQz
MiA9IGJyYW5jaElmSW50MzIodmFsdWVSZWdzKTsKIAotICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgZHN0LCBkc3QpOworICAgICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdmFsdWVSZWdzLmdwcigpLCB2
YWx1ZVJlZ3MuZ3ByKCkpOwogCiAgICAgICAgIGNoZWNrSlNJbnQzMi5saW5rKHRoaXMpOworICAg
ICAgICBtb3ZlKHZhbHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRW
YWx1ZUFuZENvbnZlcnRUb0RvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUlJlZyBkc3QsIEdQUlJl
ZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyKQorICAgIHZvaWQgY29udmVydFZhbHVlVG9Eb3Vi
bGUoSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBGUFJSZWcgZHN0LCBHUFJSZWcgc2NyYXRjaCkKICAg
ICB7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKHNjcmF0Y2gxKTsKLSAgICAgICAgbG9h
ZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBi
cmFuY2hJZkludDMyKHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJh
bmNoSWZOdW1iZXIodGVtcFJlZ3MsIHNjcmF0Y2gyKTsKKyAgICAgICAgSnVtcCBjaGVja0pTSW50
MzIgPSBicmFuY2hJZkludDMyKHZhbHVlUmVncyk7CisgICAgICAgIEp1bXAgY2hlY2tKU051bWJl
ciA9IGJyYW5jaElmTnVtYmVyKHZhbHVlUmVncywgc2NyYXRjaCk7CiAgICAgICAgIEp1bXBMaXN0
IGVuZDsKIAotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9E
b3VibGUsIHRlbXBSZWdzLmdwcigpLCBkc3QpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkNvbnZlcnRKU1ZhbHVlVG9Eb3VibGUsIHZhbHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICAg
ICAgZW5kLmFwcGVuZChqdW1wKCkpOwogCiAgICAgICAgIGNoZWNrSlNJbnQzMi5saW5rKHRoaXMp
OwotICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJsZSh0ZW1wUmVncy5ncHIoKSwgZHN0KTsKKyAg
ICAgICAgY29udmVydEludDMyVG9Eb3VibGUodmFsdWVSZWdzLmdwcigpLCBkc3QpOwogICAgICAg
ICBlbmQuYXBwZW5kKGp1bXAoKSk7CiAKICAgICAgICAgY2hlY2tKU051bWJlci5saW5rKHRoaXMp
OwotICAgICAgICB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKHRlbXBSZWdzLmdwcigpLCBk
c3QpOworICAgICAgICB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKHZhbHVlUmVncy5ncHIo
KSwgZHN0KTsKICAgICAgICAgZW5kLmxpbmsodGhpcyk7CiAgICAgfQogI2Vsc2UKLSAgICB2b2lk
IGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKEFkZHJlc3MgYWRkcmVzcywgR1BSUmVnIGRzdCwg
R1BSUmVnIHNjcmF0Y2gpCisgICAgdm9pZCBjb252ZXJ0VmFsdWVUb0ludDMyKEpTVmFsdWVSZWdz
IHZhbHVlUmVncywgR1BSUmVnIGRzdCkKICAgICB7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHRlbXBS
ZWdzKHNjcmF0Y2gsIGRzdCk7Ci0gICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB0ZW1wUmVncyk7
Ci0gICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih0ZW1wUmVncyk7Cisg
ICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih2YWx1ZVJlZ3MpOwogCi0g
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0ludDMyLCB0ZW1w
UmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdmFsdWVSZWdzLnRhZ0dQ
UigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKIAog
ICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKKyAgICAgICAgbW92ZSh2YWx1ZVJlZ3Mu
cGF5bG9hZEdQUigpLCBkc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZFZhbHVlQW5kQ29udmVy
dFRvRG91YmxlKEFkZHJlc3MgYWRkcmVzcywgRlBSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gxLCBH
UFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBzY3JhdGNoMywgRlBSUmVnIGZwU2NyYXRjaCkKKyAgICB2
b2lkIGNvbnZlcnRWYWx1ZVRvRG91YmxlKEpTVmFsdWVSZWdzIHZhbHVlUmVncywgRlBSUmVnIGRz
dCwgR1BSUmVnIHNjcmF0Y2gsIEZQUlJlZyBmcFNjcmF0Y2gpCiAgICAgewotICAgICAgICBKU1Zh
bHVlUmVncyB0ZW1wUmVncyhzY3JhdGNoMiwgc2NyYXRjaDEpOwotICAgICAgICBsb2FkVmFsdWUo
YWRkcmVzcywgdGVtcFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElm
SW50MzIodGVtcFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIgPSBicmFuY2hJZk51
bWJlcih0ZW1wUmVncywgc2NyYXRjaDMpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJy
YW5jaElmSW50MzIodmFsdWVSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJh
bmNoSWZOdW1iZXIodmFsdWVSZWdzLCBzY3JhdGNoKTsKICAgICAgICAgSnVtcExpc3QgZW5kOwog
Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSwg
dGVtcFJlZ3MudGFnR1BSKCksIHRlbXBSZWdzLnBheWxvYWRHUFIoKSwgZHN0KTsKKyAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlLCB2YWx1ZVJlZ3Mu
dGFnR1BSKCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIGRzdCk7CiAgICAgICAgIGVuZC5hcHBl
bmQoanVtcCgpKTsKIAogICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKLSAgICAgICAg
Y29udmVydEludDMyVG9Eb3VibGUodGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAg
ICBjb252ZXJ0SW50MzJUb0RvdWJsZSh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOwogICAg
ICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7CiAKICAgICAgICAgY2hlY2tKU051bWJlci5saW5rKHRo
aXMpOwotICAgICAgICB1bmJveERvdWJsZSh0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5
bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCkKKyAgICAgICAgdW5ib3hEb3VibGUodmFsdWVSZWdz
LnRhZ0dQUigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCk7CiAgICAg
ICAgIGVuZC5saW5rKHRoaXMpOwogICAgIH0KICNlbmRpZgogCisgICAgdm9pZCBjb252ZXJ0RG91
YmxlVG9WYWx1ZShGUFJSZWcgZnByLCBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MpCisgICAgeworI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgICAgIGJveERvdWJsZShmcHIsIHZhbHVlUmVncy5ncHIoKSk7
CisjZWxzZQorICAgICAgICBib3hEb3VibGUoZnByLCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVl
UmVncy5wYXlsb2FkR1BSKCkpOworI2VuZGlmCisgICAgfQorCiAgICAgSlNXQVNNTW9kdWxlKiBt
X21vZHVsZTsKICAgICB1bnNpZ25lZCBtX3N0YWNrSGVpZ2h0OwogICAgIHVuc2lnbmVkIG1fbnVt
YmVyT2ZMb2NhbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0
aW9uUGFyc2VyLmNwcAppbmRleCBmOGJhOWRmMGI1NjIzNTllNjE1MzdjZTkzZTM3MDhjNjFjNDY1
MjE1Li5jYzNiZDdlZGZkOGMxOWY4M2Q0NDlhZDdlYjg2N2IzOTc5MDU4NmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTUy
OSw3ICs1MjksNyBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNl
RXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25JMzI6OkdldEdsb2JhbDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldEdsb2JhbEV4
cHJlc3Npb25JMzIoY29udGV4dCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6
Q2FsbEludGVybmFsOgotICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEludGVybmFsRXhwcmVz
c2lvbkkzMihjb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChj
b250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMik7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkkzMjo6Q2FsbEltcG9ydDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbXBv
cnQoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzIpOwogICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25JMzI6Ok5lZ2F0ZToKQEAgLTY4MCwxMiArNjgwLDYgQEAgQ29udGV4dEV4cHJl
c3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25JMzIoQ29u
dGV4dCYgY29udGUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+Ci1Db250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQ2FsbEludGVybmFsRXhwcmVzc2lvbkkzMihD
b250ZXh0JiBjb250ZXh0KQotewotICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0
LCBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMik7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBDb250ZXh0
PgogQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVz
c2lvbkkzMihDb250ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uSTMyIG9wKQogewogICAg
IENvbnRleHRFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb25JMzIoY29udGV4
dCk7CkBAIC03NTEsNiArNzQ1LDggQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFy
c2VyOjpwYXJzZUV4cHJlc3Npb25GMzIoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgICAgIHJl
dHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkYzMihjb250ZXh0KTsKICAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjMyOjpHZXRHbG9iYWw6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VH
ZXRHbG9iYWxFeHByZXNzaW9uRjMyKGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GMzI6OkNhbGxJbnRlcm5hbDoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRl
cm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkYzMik7CiAgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkYzMjo6TmVnYXRlOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
MzI6OkFiczoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpDZWlsOgpAQCAtNzY4
LDcgKzc2NCw2IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VF
eHByZXNzaW9uRjMyKENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkYzMjo6TG9hZFdpdGhPZmZzZXQ6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYz
Mjo6U3RvcmU6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6U3RvcmVXaXRoT2Zm
c2V0OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNhbGxJbnRlcm5hbDoKICAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpDYWxsSW5kaXJlY3Q6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q29uZGl0aW9uYWw6CiAgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkYzMjo6Q29tbWE6CkBAIC04NzgsNiArODczLDggQEAgQ29udGV4dEV4cHJlc3Np
b24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4
dCkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250ZXh0
KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpHZXRHbG9iYWw6CiAgICAgICAg
ICAgICByZXR1cm4gcGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbnRlcm5hbDoKKyAgICAgICAgICAgIHJl
dHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCk7
CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2FsbEltcG9ydDoKICAgICAgICAg
ICAgIHJldHVybiBwYXJzZUNhbGxJbXBvcnQoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpG
NjQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgpAQCAtODg2
LDcgKzg4Myw2IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VF
eHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6TG9hZFdpdGhPZmZzZXQ6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6U3RvcmU6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3RvcmVXaXRoT2Zm
c2V0OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbnRlcm5hbDoKICAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW5kaXJlY3Q6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29uZGl0aW9uYWw6CiAgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6Q29tbWE6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblBhcnNlci5oCmluZGV4IDliNGNmM2NkNTg3OWIxNzNhOTI3YmNlY2EyNjZlMzBk
ZmIxYTk2NzAuLmQ4ZjU1NTVjMGMzOTg2MzJlNGFkMzYzOTM0MTRlODhmZmM5NmFlYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCkBAIC04
OSw3ICs4OSw2IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRl
eHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uSTMyKENvbnRleHQmLCB1aW50MzJf
dCBsb2NhbEluZGV4KTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJl
c3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25JMzIoQ29udGV4dCYpOwogICAgIHRlbXBsYXRl
IDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldEdsb2JhbEV4cHJlc3Np
b25JMzIoQ29udGV4dCYpOwotICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhw
cmVzc2lvbiBwYXJzZUNhbGxJbnRlcm5hbEV4cHJlc3Npb25JMzIoQ29udGV4dCYpOwogICAgIHRl
bXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZVVuYXJ5RXhwcmVz
c2lvbkkzMihDb250ZXh0JiwgV0FTTU9wRXhwcmVzc2lvbkkzMik7CiAgICAgdGVtcGxhdGUgPGNs
YXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkkzMihD
b250ZXh0JiwgV0FTTU9wRXhwcmVzc2lvbkkzMik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRl
eHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlUmVsYXRpb25hbEkzMkV4cHJlc3Npb25JMzIoQ29u
dGV4dCYsIFdBU01PcEV4cHJlc3Npb25JMzIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261385</attachid>
            <date>2015-09-17 02:57:02 -0700</date>
            <delta_ts>2015-09-17 16:14:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149200-20150917025728.patch</filename>
            <type>text/plain</type>
            <size>19864</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZmZiNDljMTE3NGJkNTA1OWNlZDM2YmNjODExNmFiYWYyYjQ1MTkyLi5jMTk2YWQ4MjgzOTM0MmYw
Y2FmMThhYzkzOTgwMmRlNzQ2Y2RjMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNS0wOS0xNyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBDb252ZXJ0IHJldHVybiB2YWx1ZXMgZnJvbSBKYXZhU2NyaXB0
IGZ1bmN0aW9ucyB0byB0aGUgZXhwZWN0ZWQgdHlwZXMgaW4gV2ViQXNzZW1ibHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTIwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBXZWJBc3NlbWJs
eSBmdW5jdGlvbiBjYWxscyBhIEphdmFTY3JpcHQgZnVuY3Rpb24sIHRoZXJlIGlzIG5vCisgICAg
ICAgIGd1YXJhbnRlZSB0aGF0IHRoZSBKYXZhU2NyaXB0IGZ1bmN0aW9uIHdpbGwgYWx3YXlzIHJl
dHVybiB2YWx1ZXMgb2YgdGhlCisgICAgICAgIHR5cGUgd2UgZXhwZWN0LiBUaGlzIHBhdGNoIGNv
bnZlcnRzIHRoZSByZXR1cm4gdmFsdWVzIHRvIHRoZSBleHBlY3RlZAorICAgICAgICB0eXBlcy4K
KworICAgICAgICAoVGhlIHJldmVyc2UgaXMgYWxzbyB0cnVlOiBXaGVuIGEgV2ViQXNzZW1ibHkg
ZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gYQorICAgICAgICBKYXZhU2NyaXB0IGZ1bmN0aW9uLCB0
aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgYXJndW1lbnRzIHRvIHRoZQorICAgICAgICBX
ZWJBc3NlbWJseSBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSBvZiB0aGUgdHlwZXMgd2UgZXhwZWN0
LiBXZSBoYXZlCisgICAgICAgIGZpeGVkIHRoaXMgaW4gQnVnIDE0OTAzMy4pCisKKyAgICAgICAg
V2UgZG9uJ3QgbmVlZCB0byB0eXBlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWVzIGlmIHRoZSBjYWxs
ZWUgaXMgYQorICAgICAgICBXZWJBc3NlbWJseSBmdW5jdGlvbi4gV2UgZG9uJ3QgbmVlZCB0byB0
eXBlIGNoZWNrIHRoZSBhcmd1bWVudHMgaWYgdGhlCisgICAgICAgIGNhbGxlciBpcyBhIFdlYkFz
c2VtYmx5IGZ1bmN0aW9uLiBUaGlzIG9wdGltaXphdGlvbiB3aWxsIGJlCisgICAgICAgIGltcGxl
bWVudGVkIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS10eXBl
LWNvbnZlcnNpb24uanM6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20vdHlwZS1jb252ZXJz
aW9uLndhc206CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oOgorICAgICAg
ICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6c3RhcnRGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFJldHVybik6CisgICAgICAgIChKU0M6OldB
U01GdW5jdGlvbkNvbXBpbGVyOjpib3hBcmd1bWVudHNBbmRBZGp1c3RTdGFja1BvaW50ZXIpOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbEFuZFVuYm94UmVzdWx0KToK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmNvbnZlcnRWYWx1ZVRvSW50MzIp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y29udmVydFZhbHVlVG9Eb3Vi
bGUpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y29udmVydERvdWJsZVRv
VmFsdWUpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6bG9hZFZhbHVlQW5k
Q29udmVydFRvSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6bG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBh
cnNlcjo6cGFyc2VFeHByZXNzaW9uSTMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFy
c2VyOjpwYXJzZUV4cHJlc3Npb25GMzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJz
ZXI6OnBhcnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNl
cjo6cGFyc2VDYWxsSW50ZXJuYWxFeHByZXNzaW9uSTMyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
YXNtL1dBU01GdW5jdGlvblBhcnNlci5oOgorCiAyMDE1LTA5LTE2ICBTdWtvbHNhayBTYWtzaHV3
b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBpbmRpcmVjdCBj
YWxscyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy93YXNtLXR5cGUtY29udmVyc2lvbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3Mvd2FzbS10eXBlLWNvbnZlcnNpb24uanMKaW5kZXggODRiM2I4OTdkNWUx
NGJhZWIwYWM1Y2Q1ZWJkMjNhOTdjZDcwZTgzNi4uMzViYmYxZDJjN2Q0Njk0Y2JhZmQ2MjAxMDRl
YjkzOGVkYzljZjgyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy93YXNtLXR5cGUtY29udmVyc2lvbi5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3dhc20tdHlwZS1jb252ZXJzaW9uLmpzCkBAIC04LDE0ICs4LDE4IEBAIGZ1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKIC8qCiB3YXNtL3R5cGUtY29udmVy
c2lvbi53YXNtIGlzIGdlbmVyYXRlZCBieSBwYWNrLWFzbWpzIDxodHRwczovL2dpdGh1Yi5jb20v
V2ViQXNzZW1ibHkvcG9seWZpbGwtcHJvdG90eXBlLTE+IGZyb20gdGhlIGZvbGxvd2luZyBzY3Jp
cHQ6CiAKLWZ1bmN0aW9uIGFzbU1vZHVsZShnbG9iYWwsIGVudiwgYnVmZmVyKSB7CitmdW5jdGlv
biBhc21Nb2R1bGUoZ2xvYmFsLCBpbXBvcnRzLCBidWZmZXIpIHsKICAgICAidXNlIGFzbSI7CiAK
ICAgICB2YXIgZnJvdW5kID0gZ2xvYmFsLk1hdGguZnJvdW5kOworICAgIHZhciBnZXRJbnQzMiA9
IGltcG9ydHMuZ2V0SW50MzI7CisgICAgdmFyIGdldERvdWJsZSA9IGltcG9ydHMuZ2V0RG91Ymxl
OworICAgIHZhciBnZXRTdHJpbmcgPSBpbXBvcnRzLmdldFN0cmluZzsKKyAgICB2YXIgZ2V0Qm9v
bGVhbiA9IGltcG9ydHMuZ2V0Qm9vbGVhbjsKIAogICAgIGZ1bmN0aW9uIHRha2VBbmRSZXR1cm5J
bnQzMih4KSB7CiAgICAgICAgIHggPSB4IHwgMDsKLSAgICAgICAgcmV0dXJuIHg7CisgICAgICAg
IHJldHVybiB4IHwgMDsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0YWtlQW5kUmV0dXJuRmxvYXQo
eCkgewpAQCAtMjgsMTQgKzMyLDYyIEBAIGZ1bmN0aW9uIGFzbU1vZHVsZShnbG9iYWwsIGVudiwg
YnVmZmVyKSB7CiAgICAgICAgIHJldHVybiB4OwogICAgIH0KIAorICAgIGZ1bmN0aW9uIHJldHVy
bkludDMyRnJvbUludDMyKCkgeworICAgICAgICByZXR1cm4gZ2V0SW50MzIoKSB8IDA7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcmV0dXJuSW50MzJGcm9tRG91YmxlKCkgeworICAgICAgICByZXR1
cm4gZ2V0RG91YmxlKCkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkludDMyRnJv
bVN0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmluZygpIHwgMDsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21Cb29sZWFuKCkgeworICAgICAgICByZXR1cm4gZ2V0
Qm9vbGVhbigpIHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXR1cm5Eb3VibGVGcm9tSW50
MzIoKSB7CisgICAgICAgIHJldHVybiArZ2V0SW50MzIoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biByZXR1cm5Eb3VibGVGcm9tRG91YmxlKCkgeworICAgICAgICByZXR1cm4gK2dldERvdWJsZSgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkRvdWJsZUZyb21TdHJpbmcoKSB7CisgICAg
ICAgIHJldHVybiArZ2V0U3RyaW5nKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuRG91
YmxlRnJvbUJvb2xlYW4oKSB7CisgICAgICAgIHJldHVybiArZ2V0Qm9vbGVhbigpOworICAgIH0K
KwogICAgIHJldHVybiB7CiAgICAgICAgIHRha2VBbmRSZXR1cm5JbnQzMjogdGFrZUFuZFJldHVy
bkludDMyLAorICAgICAgICB0YWtlQW5kUmV0dXJuRmxvYXQ6IHRha2VBbmRSZXR1cm5GbG9hdCwK
ICAgICAgICAgdGFrZUFuZFJldHVybkRvdWJsZTogdGFrZUFuZFJldHVybkRvdWJsZSwKKworICAg
ICAgICByZXR1cm5JbnQzMkZyb21JbnQzMjogcmV0dXJuSW50MzJGcm9tSW50MzIsCisgICAgICAg
IHJldHVybkludDMyRnJvbURvdWJsZTogcmV0dXJuSW50MzJGcm9tRG91YmxlLAorICAgICAgICBy
ZXR1cm5JbnQzMkZyb21TdHJpbmc6IHJldHVybkludDMyRnJvbVN0cmluZywKKyAgICAgICAgcmV0
dXJuSW50MzJGcm9tQm9vbGVhbjogcmV0dXJuSW50MzJGcm9tQm9vbGVhbiwKKyAgICAgICAgcmV0
dXJuRG91YmxlRnJvbUludDMyOiByZXR1cm5Eb3VibGVGcm9tSW50MzIsCisgICAgICAgIHJldHVy
bkRvdWJsZUZyb21Eb3VibGU6IHJldHVybkRvdWJsZUZyb21Eb3VibGUsCisgICAgICAgIHJldHVy
bkRvdWJsZUZyb21TdHJpbmc6IHJldHVybkRvdWJsZUZyb21TdHJpbmcsCisgICAgICAgIHJldHVy
bkRvdWJsZUZyb21Cb29sZWFuOiByZXR1cm5Eb3VibGVGcm9tQm9vbGVhbiwKICAgICB9OwogfQog
Ki8KIAotdmFyIG1vZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS90eXBlLWNvbnZlcnNpb24u
d2FzbSIpOwordmFyIGltcG9ydHMgPSB7CisgICAgZ2V0SW50MzI6ICgpID0+IDQyLAorICAgIGdl
dERvdWJsZTogKCkgPT4gNC4yLAorICAgIGdldFN0cmluZzogKCkgPT4gIjQuMiIsCisgICAgZ2V0
Qm9vbGVhbjogKCkgPT4gdHJ1ZSwKK307Cit2YXIgbW9kdWxlID0gbG9hZFdlYkFzc2VtYmx5KCJ3
YXNtL3R5cGUtY29udmVyc2lvbi53YXNtIiwgaW1wb3J0cyk7CiAKIHZhciB0d28gPSB7CiAgICAg
dmFsdWVPZigpIHsgcmV0dXJuIDI7IH0KQEAgLTcwLDMgKzEyMiwxMiBAQCBzaG91bGRCZShpc05h
Tihtb2R1bGUudGFrZUFuZFJldHVybkRvdWJsZSgib25lIikpLCB0cnVlKTsKIHNob3VsZEJlKGlz
TmFOKG1vZHVsZS50YWtlQW5kUmV0dXJuRG91YmxlKHsgfSkpLCB0cnVlKTsKIHNob3VsZEJlKG1v
ZHVsZS50YWtlQW5kUmV0dXJuRG91YmxlKFsyLjVdKSwgMi41KTsKIHNob3VsZEJlKG1vZHVsZS50
YWtlQW5kUmV0dXJuRG91YmxlKHR3byksIDIpOworCitzaG91bGRCZShtb2R1bGUucmV0dXJuSW50
MzJGcm9tSW50MzIoKSwgNDIpOworc2hvdWxkQmUobW9kdWxlLnJldHVybkludDMyRnJvbURvdWJs
ZSgpLCA0KTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5JbnQzMkZyb21TdHJpbmcoKSwgNCk7Citz
aG91bGRCZShtb2R1bGUucmV0dXJuSW50MzJGcm9tQm9vbGVhbigpLCAxKTsKK3Nob3VsZEJlKG1v
ZHVsZS5yZXR1cm5Eb3VibGVGcm9tSW50MzIoKSwgNDIpOworc2hvdWxkQmUobW9kdWxlLnJldHVy
bkRvdWJsZUZyb21Eb3VibGUoKSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5Eb3VibGVG
cm9tU3RyaW5nKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUucmV0dXJuRG91YmxlRnJvbUJvb2xl
YW4oKSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3dhc20vdHlwZS1jb252ZXJzaW9uLndhc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3dhc20vdHlwZS1jb252ZXJzaW9uLndhc20KaW5kZXggMDY4NmI5MWVmM2U0NzU0NTkx
NmU4NGY0NmZmNzQ4NTUxOTUwZGY0OC4uZDQ2MzdjYmEwNmIxNjFlNzFiYTcwNzk0OWY3NzNiOThi
MDY5MWQ5NiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQwMQp6Y21aOUhPJHgjPTVR
UyYqKF5mMEU/SyQpV2lXSj1IMmBZdm53aDY9KHg4NmpMOz9jflFsK3B+JEJsRDU+bjBZcGoKent3
O3dAMHM8bTNXQj8zQShKRlY7Wm8yYC1nP31IK2FPcVNXJmQlTys4Ozg5eW9vWH5xe34jeTw4VFRj
OCEzKT00CnotPUVrT2ZyXm1gbEZaOHJOalFsbCQrMnxKVUc0UHNxfSpWMlNPYUZQP284dFZYS1k7
MlBPalJUS0c9Q2U8N2JpSgpjYyRyTV9jdy1pTEZpK3VtaWVxfF9AKSpCSmBJeGBfMGx4cnFBcGln
WAoKZGVsdGEgNTUKd2NtYlFwb05Hez9TZSNxVSVtNHorNDIlcW5qRXFjLU9rZ2ZWZ28mWW5rXmNZ
P0Y5MmFpPTd9P0cwbyhCaWxtR3cjCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKaW5kZXggMzVkZWU3NDJhMTZlODczYjUzMjE1NzY2Njk0
ZThlNWRhYmJkMjFiYi4uZDIzMjg0Y2Y2NjJhOTZjZTdmYzVhZTdhZjQ5NTYwNWM4MDUwZTNkMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGls
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxl
ci5oCkBAIC0xMDYsMjIgKzEwNiwyNSBAQCBwdWJsaWM6CiAKICAgICAgICAgdW5zaWduZWQgbG9j
YWxJbmRleCA9IDA7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNp
emUoKTsgKytpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogTm8gbmVlZCB0byBkbyB0eXBlIGNv
bnZlcnNpb24gaWYgdGhlIGNhbGxlciBpcyBhIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgogICAgICAg
ICAgICAgQWRkcmVzcyBhZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OmFyZ3VtZW50T2Zmc2V0KGkpICogc2l6ZW9mKFJlZ2lzdGVyKSk7Ci0gICAgICAgICAgICBz
d2l0Y2ggKGFyZ3VtZW50c1tpXSkgewotICAgICAgICAgICAgY2FzZSBXQVNNVHlwZTo6STMyOgog
I2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRv
SW50MzIoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mg
dmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKTsKICNlbHNlCi0gICAgICAgICAgICAgICAgbG9hZFZh
bHVlQW5kQ29udmVydFRvSW50MzIoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJl
Z1QxKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhHUFJJbmZvOjpyZWdUMSwg
R1BSSW5mbzo6cmVnVDApOwogI2VuZGlmCisgICAgICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywg
dmFsdWVSZWdzKTsKKyAgICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzW2ldKSB7CisgICAgICAg
ICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CisgICAgICAgICAgICAgICAgY29udmVydFZhbHVlVG9J
bnQzMih2YWx1ZVJlZ3MsIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgICAgICAgICBzdG9yZTMy
KEdQUkluZm86OnJlZ1QwLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCsrKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpGMzI6CiAgICAgICAgICAg
ICBjYXNlIFdBU01UeXBlOjpGNjQ6CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAg
ICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoYWRkcmVzcywgRlBSSW5mbzo6ZnBSZWdUMCwg
R1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgICAgICAgICBjb252ZXJ0
VmFsdWVUb0RvdWJsZSh2YWx1ZVJlZ3MsIEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJlZ1Qx
KTsKICNlbHNlCi0gICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKGFk
ZHJlc3MsIEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwg
R1BSSW5mbzo6cmVnVDIsIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICAgICAgICAgIGNvbnZl
cnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVn
VDIsIEZQUkluZm86OmZwUmVnVDEpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgaWYgKGFyZ3Vt
ZW50c1tpXSA9PSBXQVNNVHlwZTo6RjMyKQogICAgICAgICAgICAgICAgICAgICBjb252ZXJ0RG91
YmxlVG9GbG9hdChGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKQEAgLTI3Niwx
MSArMjc5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRy
ZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICAgICAg
aWYgKHJldHVyblR5cGUgPT0gV0FTTUV4cHJlc3Npb25UeXBlOjpGMzIpCiAgICAgICAgICAgICAg
ICAgY29udmVydEZsb2F0VG9Eb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdU
MCk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIGJveERvdWJsZShGUFJJbmZvOjpm
cFJlZ1QwLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0jZWxzZQotICAgICAgICAgICAgYm94
RG91YmxlKEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIpOwotI2VuZGlmCisgICAgICAgICAgICBjb252ZXJ0RG91YmxlVG9W
YWx1ZShGUFJJbmZvOjpmcFJlZ1QwLCByZXR1cm5WYWx1ZVJlZ3MpOwogICAgICAgICAgICAgbV90
ZW1wU3RhY2tUb3AtLTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdBU01FeHBy
ZXNzaW9uVHlwZTo6Vm9pZDoKQEAgLTkxOSw2ICs5MTgsMTEgQEAgcHJpdmF0ZToKIAogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnQ7ICsraSkgewogICAgICAgICAg
ICAgQWRkcmVzcyBhZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAoc3RhY2tPZmZz
ZXQgKyBDYWxsRnJhbWU6OmFyZ3VtZW50T2Zmc2V0KGkpKSAqIHNpemVvZihSZWdpc3RlcikpOwor
I2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MoR1BS
SW5mbzo6cmVnVDApOworI2Vsc2UKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhH
UFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworI2VuZGlmCiAgICAgICAgICAgICBzd2l0
Y2ggKGFyZ3VtZW50c1tpXSkgewogICAgICAgICAgICAgY2FzZSBXQVNNVHlwZTo6STMyOgogICAg
ICAgICAgICAgICAgIGxvYWQzMih0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gYXJn
dW1lbnRDb3VudCArIGkpLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC05MzAsNiArOTM0LDE0IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50
MzJUYWcpLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CiAjZW5kaWYKICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkYzMjoKKyAgICAgICAg
ICAgIGNhc2UgV0FTTVR5cGU6OkY2NDoKKyAgICAgICAgICAgICAgICBsb2FkRG91YmxlKHRlbXBv
cmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSBhcmd1bWVudENvdW50ICsgaSksIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHNbaV0gPT0gV0FTTVR5cGU6
OkYzMikKKyAgICAgICAgICAgICAgICAgICAgY29udmVydEZsb2F0VG9Eb3VibGUoRlBSSW5mbzo6
ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICAgICAgY29udmVydERvdWJs
ZVRvVmFsdWUoRlBSSW5mbzo6ZnBSZWdUMCwgdmFsdWVSZWdzKTsKKyAgICAgICAgICAgICAgICBz
dG9yZVZhbHVlKHZhbHVlUmVncywgYWRkcmVzcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICAgICAgfQpAQCAtOTY5LDkgKzk4MSwyNyBAQCBwcml2YXRlOgogICAgICAgICBh
ZGRQdHIoVHJ1c3RlZEltbTMyKC1XVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKSwgbV9zdGFja0hlaWdodCkgKiBzaXplb2YoU3RhY2tTbG90KSAtIG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
KTsKIAorICAgICAgICAvLyBGSVhNRTogTm8gbmVlZCB0byBkbyB0eXBlIGNvbnZlcnNpb24gaWYg
dGhlIGNhbGxlZSBpcyBhIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgorI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7
CisjZWxzZQorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIyLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisjZW5kaWYKICAgICAgICAgc3dpdGNo
IChyZXR1cm5UeXBlKSB7CiAgICAgICAgIGNhc2UgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzI6Ci0g
ICAgICAgICAgICBzdG9yZTMyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB0ZW1wb3JhcnlBZGRy
ZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKKyAgICAgICAgICAgIGNvbnZlcnRWYWx1ZVRvSW50MzIo
dmFsdWVSZWdzLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBzdG9yZTMyKEdQUkluZm86
OnJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjMyOgorICAgICAgICBj
YXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0OgorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAg
ICAgICBjb252ZXJ0VmFsdWVUb0RvdWJsZSh2YWx1ZVJlZ3MsIEZQUkluZm86OmZwUmVnVDAsIEdQ
UkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CisjZWxzZQorICAgICAgICAgICAgY29u
dmVydFZhbHVlVG9Eb3VibGUodmFsdWVSZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpu
b25QcmVzZXJ2ZWROb25SZXR1cm5HUFIsIEZQUkluZm86OmZwUmVnVDEpOworI2VuZGlmCisgICAg
ICAgICAgICBpZiAocmV0dXJuVHlwZSA9PSBXQVNNRXhwcmVzc2lvblR5cGU6OkYzMikKKyAgICAg
ICAgICAgICAgICBjb252ZXJ0RG91YmxlVG9GbG9hdChGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZv
OjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIHRl
bXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3ArKykpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgV0FTTUV4cHJlc3Npb25UeXBlOjpWb2lkOgogICAgICAgICAgICAgYnJlYWs7
CkBAIC05ODEsNjkgKzEwMTEsNzIgQEAgcHJpdmF0ZToKICAgICB9CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQotICAgIHZvaWQgbG9hZFZhbHVlQW5kQ29udmVydFRvSW50MzIoQWRkcmVzcyBhZGRyZXNz
LCBHUFJSZWcgZHN0KQorICAgIHZvaWQgY29udmVydFZhbHVlVG9JbnQzMihKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MsIEdQUlJlZyBkc3QpCiAgICAgewotICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVn
cyhkc3QpOwotICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3MpOwotICAgICAgICBK
dW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOworICAgICAgICBKdW1w
IGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodmFsdWVSZWdzKTsKIAotICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgZHN0LCBkc3QpOworICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdmFsdWVS
ZWdzLmdwcigpLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogCiAgICAgICAgIGNoZWNrSlNJbnQzMi5saW5r
KHRoaXMpOworICAgICAgICBtb3ZlKHZhbHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICB9CiAKLSAg
ICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUlJl
ZyBkc3QsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyKQorICAgIHZvaWQgY29udmVy
dFZhbHVlVG9Eb3VibGUoSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBGUFJSZWcgZHN0LCBHUFJSZWcg
c2NyYXRjaCkKICAgICB7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKHNjcmF0Y2gxKTsK
LSAgICAgICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVj
a0pTSW50MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVja0pT
TnVtYmVyID0gYnJhbmNoSWZOdW1iZXIodGVtcFJlZ3MsIHNjcmF0Y2gyKTsKKyAgICAgICAgSnVt
cCBjaGVja0pTSW50MzIgPSBicmFuY2hJZkludDMyKHZhbHVlUmVncyk7CisgICAgICAgIEp1bXAg
Y2hlY2tKU051bWJlciA9IGJyYW5jaElmTnVtYmVyKHZhbHVlUmVncywgc2NyYXRjaCk7CiAgICAg
ICAgIEp1bXBMaXN0IGVuZDsKIAotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZl
cnRKU1ZhbHVlVG9Eb3VibGUsIHRlbXBSZWdzLmdwcigpLCBkc3QpOworICAgICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9Eb3VibGUsIHZhbHVlUmVncy5ncHIoKSwg
ZHN0KTsKICAgICAgICAgZW5kLmFwcGVuZChqdW1wKCkpOwogCiAgICAgICAgIGNoZWNrSlNJbnQz
Mi5saW5rKHRoaXMpOwotICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJsZSh0ZW1wUmVncy5ncHIo
KSwgZHN0KTsKKyAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUodmFsdWVSZWdzLmdwcigpLCBk
c3QpOwogICAgICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7CiAKICAgICAgICAgY2hlY2tKU051bWJl
ci5saW5rKHRoaXMpOwotICAgICAgICB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKHRlbXBS
ZWdzLmdwcigpLCBkc3QpOworICAgICAgICB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKHZh
bHVlUmVncy5ncHIoKSwgZHN0KTsKICAgICAgICAgZW5kLmxpbmsodGhpcyk7CiAgICAgfQogI2Vs
c2UKLSAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKEFkZHJlc3MgYWRkcmVzcywg
R1BSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gpCisgICAgdm9pZCBjb252ZXJ0VmFsdWVUb0ludDMy
KEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVnIGRzdCkKICAgICB7Ci0gICAgICAgIEpTVmFs
dWVSZWdzIHRlbXBSZWdzKHNjcmF0Y2gsIGRzdCk7Ci0gICAgICAgIGxvYWRWYWx1ZShhZGRyZXNz
LCB0ZW1wUmVncyk7Ci0gICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih0
ZW1wUmVncyk7CisgICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih2YWx1
ZVJlZ3MpOwogCi0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVU
b0ludDMyLCB0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOwor
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdmFs
dWVSZWdzLnRhZ0dQUigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpKTsKIAogICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKKyAgICAgICAgbW92
ZSh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZFZh
bHVlQW5kQ29udmVydFRvRG91YmxlKEFkZHJlc3MgYWRkcmVzcywgRlBSUmVnIGRzdCwgR1BSUmVn
IHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBzY3JhdGNoMywgRlBSUmVnIGZwU2Ny
YXRjaCkKKyAgICB2b2lkIGNvbnZlcnRWYWx1ZVRvRG91YmxlKEpTVmFsdWVSZWdzIHZhbHVlUmVn
cywgRlBSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gsIEZQUlJlZyBmcFNjcmF0Y2gpCiAgICAgewot
ICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhzY3JhdGNoMiwgc2NyYXRjaDEpOwotICAgICAg
ICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNJbnQz
MiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIg
PSBicmFuY2hJZk51bWJlcih0ZW1wUmVncywgc2NyYXRjaDMpOworICAgICAgICBKdW1wIGNoZWNr
SlNJbnQzMiA9IGJyYW5jaElmSW50MzIodmFsdWVSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pT
TnVtYmVyID0gYnJhbmNoSWZOdW1iZXIodmFsdWVSZWdzLCBzY3JhdGNoKTsKICAgICAgICAgSnVt
cExpc3QgZW5kOwogCi0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFs
dWVUb0RvdWJsZSwgdGVtcFJlZ3MudGFnR1BSKCksIHRlbXBSZWdzLnBheWxvYWRHUFIoKSwgZHN0
KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91Ymxl
LCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIGRzdCk7CiAgICAg
ICAgIGVuZC5hcHBlbmQoanVtcCgpKTsKIAogICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlz
KTsKLSAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUodGVtcFJlZ3MucGF5bG9hZEdQUigpLCBk
c3QpOworICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJsZSh2YWx1ZVJlZ3MucGF5bG9hZEdQUigp
LCBkc3QpOwogICAgICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7CiAKICAgICAgICAgY2hlY2tKU051
bWJlci5saW5rKHRoaXMpOwotICAgICAgICB1bmJveERvdWJsZSh0ZW1wUmVncy50YWdHUFIoKSwg
dGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCk7CisgICAgICAgIHVuYm94RG91
YmxlKHZhbHVlUmVncy50YWdHUFIoKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgZHN0LCBmcFNj
cmF0Y2gpOwogICAgICAgICBlbmQubGluayh0aGlzKTsKICAgICB9CiAjZW5kaWYKIAorICAgIHZv
aWQgY29udmVydERvdWJsZVRvVmFsdWUoRlBSUmVnIGZwciwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
KQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBib3hEb3VibGUoZnByLCB2YWx1
ZVJlZ3MuZ3ByKCkpOworI2Vsc2UKKyAgICAgICAgYm94RG91YmxlKGZwciwgdmFsdWVSZWdzLnRh
Z0dQUigpLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIEpT
V0FTTU1vZHVsZSogbV9tb2R1bGU7CiAgICAgdW5zaWduZWQgbV9zdGFja0hlaWdodDsKICAgICB1
bnNpZ25lZCBtX251bWJlck9mTG9jYWxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKaW5kZXggMWNlMTc0NmQxYzJhYTliYmU5MDI5NDRl
NzUxNWM2MDFhYWI0ZjdiYy4uMDc5NTVlMTdjOGE1YzBhNjEzMDkwOWE5NzYzOWU3ZGVmMWYzN2Ri
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJz
ZXIuY3BwCkBAIC01MjksNyArNTI5LDcgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9u
UGFyc2VyOjpwYXJzZUV4cHJlc3Npb25JMzIoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpHZXRHbG9iYWw6CiAgICAgICAgICAgICByZXR1cm4gcGFy
c2VHZXRHbG9iYWxFeHByZXNzaW9uSTMyKGNvbnRleHQpOwogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25JMzI6OkNhbGxJbnRlcm5hbDoKLSAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJ
bnRlcm5hbEV4cHJlc3Npb25JMzIoY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gcGFyc2VD
YWxsSW50ZXJuYWwoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzIpOwogICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OkNhbGxJbmRpcmVjdDoKICAgICAgICAgICAgIHJldHVy
biBwYXJzZUNhbGxJbmRpcmVjdChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMik7CiAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6Q2FsbEltcG9ydDoKQEAgLTY4MSwxMiAr
NjgxLDYgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldEds
b2JhbEV4cHJlc3Npb25JMzIoQ29udGV4dCYgY29udGUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENv
bnRleHQ+Ci1Db250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQ2FsbElu
dGVybmFsRXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250ZXh0KQotewotICAgIHJldHVybiBwYXJz
ZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMik7Ci19Ci0KLXRl
bXBsYXRlIDxjbGFzcyBDb250ZXh0PgogQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFy
c2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHBy
ZXNzaW9uSTMyIG9wKQogewogICAgIENvbnRleHRFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJz
ZUV4cHJlc3Npb25JMzIoY29udGV4dCk7CkBAIC03NTIsNiArNzQ2LDggQEAgQ29udGV4dEV4cHJl
c3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GMzIoQ29udGV4dCYgY29u
dGV4dCkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkYzMihjb250
ZXh0KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpHZXRHbG9iYWw6CiAgICAg
ICAgICAgICByZXR1cm4gcGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjMyKGNvbnRleHQpOworICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNhbGxJbnRlcm5hbDoKKyAgICAgICAgICAg
IHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkYz
Mik7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q2FsbEluZGlyZWN0OgogICAg
ICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEluZGlyZWN0KGNvbnRleHQsIFdBU01FeHByZXNzaW9u
VHlwZTo6RjMyKTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpOZWdhdGU6CkBA
IC03NzEsNyArNzY3LDYgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpw
YXJzZUV4cHJlc3Npb25GMzIoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjMyOjpMb2FkV2l0aE9mZnNldDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjMyOjpTdG9yZToKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpTdG9yZVdp
dGhPZmZzZXQ6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q2FsbEludGVybmFs
OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNvbmRpdGlvbmFsOgogICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNvbW1hOgogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GMzI6OkZyb21TMzI6CkBAIC04ODAsNiArODc1LDggQEAgQ29udGV4dEV4cHJlc3Np
b24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4
dCkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250ZXh0
KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpHZXRHbG9iYWw6CiAgICAgICAg
ICAgICByZXR1cm4gcGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbnRlcm5hbDoKKyAgICAgICAgICAgIHJl
dHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCk7
CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2FsbEltcG9ydDoKICAgICAgICAg
ICAgIHJldHVybiBwYXJzZUNhbGxJbXBvcnQoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpG
NjQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbmRpcmVjdDoKQEAg
LTg5MCw3ICs4ODcsNiBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBh
cnNlRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkxvYWRXaXRoT2Zmc2V0OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OlN0b3JlOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlV2l0
aE9mZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW50ZXJuYWw6
CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29uZGl0aW9uYWw6CiAgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29tbWE6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6RnJvbVMzMjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggYjQ0MGI2NjFmODAyMDYwNjg3YzY4NjVjOTljODU5ZDEy
NWJhMTlmNy4uYmJiZDEzZGJkMThjZDBlNmQyNjhkMTk3MjgyZDBlMzViNWZlYTg1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTg5
LDcgKzg5LDYgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4
dEV4cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25JMzIoQ29udGV4dCYsIHVpbnQzMl90
IGxvY2FsSW5kZXgpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVz
c2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkkzMihDb250ZXh0Jik7CiAgICAgdGVtcGxhdGUg
PGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0R2xvYmFsRXhwcmVzc2lv
bkkzMihDb250ZXh0Jik7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHBy
ZXNzaW9uIHBhcnNlQ2FsbEludGVybmFsRXhwcmVzc2lvbkkzMihDb250ZXh0Jik7CiAgICAgdGVt
cGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlVW5hcnlFeHByZXNz
aW9uSTMyKENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9uSTMyKTsKICAgICB0ZW1wbGF0ZSA8Y2xh
c3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VCaW5hcnlFeHByZXNzaW9uSTMyKENv
bnRleHQmLCBXQVNNT3BFeHByZXNzaW9uSTMyKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4
dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VSZWxhdGlvbmFsSTMyRXhwcmVzc2lvbkkzMihDb250
ZXh0JiwgV0FTTU9wRXhwcmVzc2lvbkkzMik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261449</attachid>
            <date>2015-09-17 16:14:17 -0700</date>
            <delta_ts>2015-09-17 17:04:05 -0700</delta_ts>
            <desc>Update to ToT and add a link to https://bugs.webkit.org/show_bug.cgi?id=149310</desc>
            <filename>bug-149200-20150917161447.patch</filename>
            <type>text/plain</type>
            <size>20118</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDJhYWUyNTMzOTNlZTE0OTg5ZDg1NjkxN2IzNGRiNjBhNjQ2YWFhLi44OGE2ODA0M2RhNzYxNjVh
YmFjMjMyNDc4NGVkNTRlYTgxZmFmNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNS0wOS0xNyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBDb252ZXJ0IHJldHVybiB2YWx1ZXMgZnJvbSBKYXZhU2NyaXB0
IGZ1bmN0aW9ucyB0byB0aGUgZXhwZWN0ZWQgdHlwZXMgaW4gV2ViQXNzZW1ibHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTIwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBXZWJBc3NlbWJs
eSBmdW5jdGlvbiBjYWxscyBhIEphdmFTY3JpcHQgZnVuY3Rpb24sIHRoZXJlIGlzIG5vCisgICAg
ICAgIGd1YXJhbnRlZSB0aGF0IHRoZSBKYXZhU2NyaXB0IGZ1bmN0aW9uIHdpbGwgYWx3YXlzIHJl
dHVybiB2YWx1ZXMgb2YgdGhlCisgICAgICAgIHR5cGUgd2UgZXhwZWN0LiBUaGlzIHBhdGNoIGNv
bnZlcnRzIHRoZSByZXR1cm4gdmFsdWVzIHRvIHRoZSBleHBlY3RlZAorICAgICAgICB0eXBlcy4K
KworICAgICAgICAoVGhlIHJldmVyc2UgaXMgYWxzbyB0cnVlOiBXaGVuIGEgV2ViQXNzZW1ibHkg
ZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gYQorICAgICAgICBKYXZhU2NyaXB0IGZ1bmN0aW9uLCB0
aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgYXJndW1lbnRzIHRvIHRoZQorICAgICAgICBX
ZWJBc3NlbWJseSBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSBvZiB0aGUgdHlwZXMgd2UgZXhwZWN0
LiBXZSBoYXZlCisgICAgICAgIGZpeGVkIHRoaXMgaW4gQnVnIDE0OTAzMy4pCisKKyAgICAgICAg
V2UgZG9uJ3QgbmVlZCB0byB0eXBlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWVzIGlmIHRoZSBjYWxs
ZWUgaXMgYQorICAgICAgICBXZWJBc3NlbWJseSBmdW5jdGlvbi4gV2UgZG9uJ3QgbmVlZCB0byB0
eXBlIGNoZWNrIHRoZSBhcmd1bWVudHMgaWYgdGhlCisgICAgICAgIGNhbGxlciBpcyBhIFdlYkFz
c2VtYmx5IGZ1bmN0aW9uLiBUaGlzIG9wdGltaXphdGlvbiB3aWxsIGJlCisgICAgICAgIGltcGxl
bWVudGVkIGluIHRoZSBmdXR1cmUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ5MzEwCisKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS10eXBlLWNvbnZl
cnNpb24uanM6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20vdHlwZS1jb252ZXJzaW9uLndh
c206CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oOgorICAgICAgICAoSlND
OjpXQVNNRnVuY3Rpb25Db21waWxlcjo6c3RhcnRGdW5jdGlvbik6CisgICAgICAgIChKU0M6OldB
U01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFJldHVybik6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvbkNvbXBpbGVyOjpib3hBcmd1bWVudHNBbmRBZGp1c3RTdGFja1BvaW50ZXIpOgorICAgICAg
ICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbEFuZFVuYm94UmVzdWx0KToKKyAgICAg
ICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmNvbnZlcnRWYWx1ZVRvSW50MzIpOgorICAg
ICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y29udmVydFZhbHVlVG9Eb3VibGUpOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y29udmVydERvdWJsZVRvVmFsdWUp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6bG9hZFZhbHVlQW5kQ29udmVy
dFRvSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6
bG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL1dB
U01GdW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6
cGFyc2VFeHByZXNzaW9uSTMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpw
YXJzZUV4cHJlc3Npb25GMzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBh
cnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFy
c2VDYWxsSW50ZXJuYWxFeHByZXNzaW9uSTMyKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL1dB
U01GdW5jdGlvblBhcnNlci5oOgorCiAyMDE1LTA5LTE3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIEFkZCBtb3JlIGZpbmUtZ3JhaW5lZCBB
UElzIGFuZCBhZGRpdGlvbmFsIGhvb2tzIHRvIGNvbnRyb2wgbW9kdWxlIGxvYWRlciBmcm9tIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2Fz
bS10eXBlLWNvbnZlcnNpb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3dhc20tdHlwZS1jb252ZXJzaW9uLmpzCmluZGV4IDg0YjNiODk3ZDVlMTRiYWViMGFjNWNkNWVi
ZDIzYTk3Y2Q3MGU4MzYuLjM1YmJmMWQyYzdkNDY5NGNiYWZkNjIwMTA0ZWI5MzhlZGM5Y2Y4MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS10eXBl
LWNvbnZlcnNpb24uanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93
YXNtLXR5cGUtY29udmVyc2lvbi5qcwpAQCAtOCwxNCArOCwxOCBAQCBmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAvKgogd2FzbS90eXBlLWNvbnZlcnNpb24ud2FzbSBpcyBn
ZW5lcmF0ZWQgYnkgcGFjay1hc21qcyA8aHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5L3Bv
bHlmaWxsLXByb3RvdHlwZS0xPiBmcm9tIHRoZSBmb2xsb3dpbmcgc2NyaXB0OgogCi1mdW5jdGlv
biBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgeworZnVuY3Rpb24gYXNtTW9kdWxlKGds
b2JhbCwgaW1wb3J0cywgYnVmZmVyKSB7CiAgICAgInVzZSBhc20iOwogCiAgICAgdmFyIGZyb3Vu
ZCA9IGdsb2JhbC5NYXRoLmZyb3VuZDsKKyAgICB2YXIgZ2V0SW50MzIgPSBpbXBvcnRzLmdldElu
dDMyOworICAgIHZhciBnZXREb3VibGUgPSBpbXBvcnRzLmdldERvdWJsZTsKKyAgICB2YXIgZ2V0
U3RyaW5nID0gaW1wb3J0cy5nZXRTdHJpbmc7CisgICAgdmFyIGdldEJvb2xlYW4gPSBpbXBvcnRz
LmdldEJvb2xlYW47CiAKICAgICBmdW5jdGlvbiB0YWtlQW5kUmV0dXJuSW50MzIoeCkgewogICAg
ICAgICB4ID0geCB8IDA7Ci0gICAgICAgIHJldHVybiB4OworICAgICAgICByZXR1cm4geCB8IDA7
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGFrZUFuZFJldHVybkZsb2F0KHgpIHsKQEAgLTI4LDE0
ICszMiw2MiBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAg
ICAgICByZXR1cm4geDsKICAgICB9CiAKKyAgICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21JbnQz
MigpIHsKKyAgICAgICAgcmV0dXJuIGdldEludDMyKCkgfCAwOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJldHVybkludDMyRnJvbURvdWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvdWJsZSgp
IHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXR1cm5JbnQzMkZyb21TdHJpbmcoKSB7Cisg
ICAgICAgIHJldHVybiBnZXRTdHJpbmcoKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0
dXJuSW50MzJGcm9tQm9vbGVhbigpIHsKKyAgICAgICAgcmV0dXJuIGdldEJvb2xlYW4oKSB8IDA7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuRG91YmxlRnJvbUludDMyKCkgeworICAgICAg
ICByZXR1cm4gK2dldEludDMyKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmV0dXJuRG91Ymxl
RnJvbURvdWJsZSgpIHsKKyAgICAgICAgcmV0dXJuICtnZXREb3VibGUoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiByZXR1cm5Eb3VibGVGcm9tU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gK2dl
dFN0cmluZygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJldHVybkRvdWJsZUZyb21Cb29sZWFu
KCkgeworICAgICAgICByZXR1cm4gK2dldEJvb2xlYW4oKTsKKyAgICB9CisKICAgICByZXR1cm4g
ewogICAgICAgICB0YWtlQW5kUmV0dXJuSW50MzI6IHRha2VBbmRSZXR1cm5JbnQzMiwKKyAgICAg
ICAgdGFrZUFuZFJldHVybkZsb2F0OiB0YWtlQW5kUmV0dXJuRmxvYXQsCiAgICAgICAgIHRha2VB
bmRSZXR1cm5Eb3VibGU6IHRha2VBbmRSZXR1cm5Eb3VibGUsCisKKyAgICAgICAgcmV0dXJuSW50
MzJGcm9tSW50MzI6IHJldHVybkludDMyRnJvbUludDMyLAorICAgICAgICByZXR1cm5JbnQzMkZy
b21Eb3VibGU6IHJldHVybkludDMyRnJvbURvdWJsZSwKKyAgICAgICAgcmV0dXJuSW50MzJGcm9t
U3RyaW5nOiByZXR1cm5JbnQzMkZyb21TdHJpbmcsCisgICAgICAgIHJldHVybkludDMyRnJvbUJv
b2xlYW46IHJldHVybkludDMyRnJvbUJvb2xlYW4sCisgICAgICAgIHJldHVybkRvdWJsZUZyb21J
bnQzMjogcmV0dXJuRG91YmxlRnJvbUludDMyLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9tRG91
YmxlOiByZXR1cm5Eb3VibGVGcm9tRG91YmxlLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9tU3Ry
aW5nOiByZXR1cm5Eb3VibGVGcm9tU3RyaW5nLAorICAgICAgICByZXR1cm5Eb3VibGVGcm9tQm9v
bGVhbjogcmV0dXJuRG91YmxlRnJvbUJvb2xlYW4sCiAgICAgfTsKIH0KICovCiAKLXZhciBtb2R1
bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndhc20vdHlwZS1jb252ZXJzaW9uLndhc20iKTsKK3ZhciBp
bXBvcnRzID0geworICAgIGdldEludDMyOiAoKSA9PiA0MiwKKyAgICBnZXREb3VibGU6ICgpID0+
IDQuMiwKKyAgICBnZXRTdHJpbmc6ICgpID0+ICI0LjIiLAorICAgIGdldEJvb2xlYW46ICgpID0+
IHRydWUsCit9OwordmFyIG1vZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS90eXBlLWNvbnZl
cnNpb24ud2FzbSIsIGltcG9ydHMpOwogCiB2YXIgdHdvID0gewogICAgIHZhbHVlT2YoKSB7IHJl
dHVybiAyOyB9CkBAIC03MCwzICsxMjIsMTIgQEAgc2hvdWxkQmUoaXNOYU4obW9kdWxlLnRha2VB
bmRSZXR1cm5Eb3VibGUoIm9uZSIpKSwgdHJ1ZSk7CiBzaG91bGRCZShpc05hTihtb2R1bGUudGFr
ZUFuZFJldHVybkRvdWJsZSh7IH0pKSwgdHJ1ZSk7CiBzaG91bGRCZShtb2R1bGUudGFrZUFuZFJl
dHVybkRvdWJsZShbMi41XSksIDIuNSk7CiBzaG91bGRCZShtb2R1bGUudGFrZUFuZFJldHVybkRv
dWJsZSh0d28pLCAyKTsKKworc2hvdWxkQmUobW9kdWxlLnJldHVybkludDMyRnJvbUludDMyKCks
IDQyKTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5JbnQzMkZyb21Eb3VibGUoKSwgNCk7CitzaG91
bGRCZShtb2R1bGUucmV0dXJuSW50MzJGcm9tU3RyaW5nKCksIDQpOworc2hvdWxkQmUobW9kdWxl
LnJldHVybkludDMyRnJvbUJvb2xlYW4oKSwgMSk7CitzaG91bGRCZShtb2R1bGUucmV0dXJuRG91
YmxlRnJvbUludDMyKCksIDQyKTsKK3Nob3VsZEJlKG1vZHVsZS5yZXR1cm5Eb3VibGVGcm9tRG91
YmxlKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUucmV0dXJuRG91YmxlRnJvbVN0cmluZygpLCA0
LjIpOworc2hvdWxkQmUobW9kdWxlLnJldHVybkRvdWJsZUZyb21Cb29sZWFuKCksIDEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL3R5cGUtY29u
dmVyc2lvbi53YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL3R5
cGUtY29udmVyc2lvbi53YXNtCmluZGV4IDA2ODZiOTFlZjNlNDc1NDU5MTZlODRmNDZmZjc0ODU1
MTk1MGRmNDguLjlkNDMxMTIwMGEyZThhNjQwZDBlM2RhNzVjNDUwZDdmZGJlZThmNmQgMTAwNjQ0
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MTgKemNtWjlIUTRXR0k0MklqVzBWMmolJlk+c0o3
IXFJZzFUIXFlMndRPzl6SXFnbjsqR3E1dEJlclZxPGA4az9WdDd+CnpwWTJ4d2cjWkxaV1hKIypA
VSZMO3RuR2RXRWFJKntuZn0lJi0mfTJYKlJea3MjeHpRNT5pJE5zMGM0UjI/dChGUgp6PE0haW5A
TDNRajd6cm5kbyNhUm9rcURCKzNDKEJnMGRwJUs+WSVIT3ZWRXQ9bFZIS2gjeitnZVZBSHdYeWo2
Q2wKbjlvTTZQYGU3Ym18RF8xPF5sdj0hYWR8ZFJMaFJrc2tiQz04JFM0MHlSdSR3d0clJEF9Cgpk
ZWx0YSA1NQp3Y21aMylvTkd7P1NlI3FVJW00eis0MiVxbmpFcWMtT2tnZlZnbyZZbmteY1k/Rjky
YWk9N34jZTBwRzkpdT5iJTcKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNRnVuY3Rpb25Db21waWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRleCAzNzFjMWJlOWI4NWJjZThkZDU5OGU4YmVhOTM5YWY3
Zjg0ZDA1M2I0Li44YTJiMWRkYWU4MTIxMzI5MTk4ZTU2ZGZmNTg3MDA2MDVmNzI4ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgK
QEAgLTExMiwyMiArMTEyLDI2IEBAIHB1YmxpYzoKIAogICAgICAgICB1bnNpZ25lZCBsb2NhbElu
ZGV4ID0gMDsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIGRvIHR5cGUgY29udmVy
c2lvbiBpZiB0aGUgY2FsbGVyIGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCisgICAgICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzEwCiAgICAg
ICAgICAgICBBZGRyZXNzIGFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6YXJndW1lbnRPZmZzZXQoaSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKLSAgICAgICAgICAg
IHN3aXRjaCAoYXJndW1lbnRzW2ldKSB7Ci0gICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6
CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0
VG9JbnQzMihhZGRyZXNzLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVn
cyB2YWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDApOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBsb2Fk
VmFsdWVBbmRDb252ZXJ0VG9JbnQzMihhZGRyZXNzLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6
cmVnVDEpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzKEdQUkluZm86OnJlZ1Qx
LCBHUFJJbmZvOjpyZWdUMCk7CiAjZW5kaWYKKyAgICAgICAgICAgIGxvYWRWYWx1ZShhZGRyZXNz
LCB2YWx1ZVJlZ3MpOworICAgICAgICAgICAgc3dpdGNoIChhcmd1bWVudHNbaV0pIHsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTVR5cGU6OkkzMjoKKyAgICAgICAgICAgICAgICBjb252ZXJ0VmFsdWVU
b0ludDMyKHZhbHVlUmVncywgR1BSSW5mbzo6cmVnVDApOwogICAgICAgICAgICAgICAgIHN0b3Jl
MzIoR1BSSW5mbzo6cmVnVDAsIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkYzMjoKICAgICAgICAg
ICAgIGNhc2UgV0FTTVR5cGU6OkY2NDoKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAg
ICAgIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShhZGRyZXNzLCBGUFJJbmZvOjpmcFJlZ1Qw
LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICAgICAgICAgIGNvbnZl
cnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVn
VDEpOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUo
YWRkcmVzcywgRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1Qx
LCBHUFJJbmZvOjpyZWdUMiwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgICAgICAgICAgY29u
dmVydFZhbHVlVG9Eb3VibGUodmFsdWVSZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpy
ZWdUMiwgRlBSSW5mbzo6ZnBSZWdUMSk7CiAjZW5kaWYKICAgICAgICAgICAgICAgICBpZiAoYXJn
dW1lbnRzW2ldID09IFdBU01UeXBlOjpGMzIpCiAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRE
b3VibGVUb0Zsb2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwpAQCAtMjg1
LDExICsyODksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAg
ICBpZiAocmV0dXJuVHlwZSA9PSBXQVNNRXhwcmVzc2lvblR5cGU6OkYzMikKICAgICAgICAgICAg
ICAgICBjb252ZXJ0RmxvYXRUb0RvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJl
Z1QwKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgYm94RG91YmxlKEZQUkluZm86
OmZwUmVnVDAsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLSNlbHNlCi0gICAgICAgICAgICBi
b3hEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGNvbnZlcnREb3VibGVU
b1ZhbHVlKEZQUkluZm86OmZwUmVnVDAsIHJldHVyblZhbHVlUmVncyk7CiAgICAgICAgICAgICBt
X3RlbXBTdGFja1RvcC0tOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV0FTTUV4
cHJlc3Npb25UeXBlOjpWb2lkOgpAQCAtOTM4LDYgKzkzOCwxMSBAQCBwcml2YXRlOgogCiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytpKSB7CiAgICAgICAg
ICAgICBBZGRyZXNzIGFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIChzdGFja09m
ZnNldCArIENhbGxGcmFtZTo6YXJndW1lbnRPZmZzZXQoaSkpICogc2l6ZW9mKFJlZ2lzdGVyKSk7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyhH
UFJJbmZvOjpyZWdUMCk7CisjZWxzZQorICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisjZW5kaWYKICAgICAgICAgICAgIHN3
aXRjaCAoYXJndW1lbnRzW2ldKSB7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CiAg
ICAgICAgICAgICAgICAgbG9hZDMyKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSBh
cmd1bWVudENvdW50ICsgaSksIEdQUkluZm86OnJlZ1QwKTsKQEAgLTk0OSw2ICs5NTQsMTQgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJ
bnQzMlRhZyksIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKICNlbmRpZgogICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNVHlwZTo6RjMyOgorICAgICAg
ICAgICAgY2FzZSBXQVNNVHlwZTo6RjY0OgorICAgICAgICAgICAgICAgIGxvYWREb3VibGUodGVt
cG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIGFyZ3VtZW50Q291bnQgKyBpKSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSA9PSBXQVNNVHlw
ZTo6RjMyKQorICAgICAgICAgICAgICAgICAgICBjb252ZXJ0RmxvYXRUb0RvdWJsZShGUFJJbmZv
OjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgICAgICBjb252ZXJ0RG91
YmxlVG9WYWx1ZShGUFJJbmZvOjpmcFJlZ1QwLCB2YWx1ZVJlZ3MpOworICAgICAgICAgICAgICAg
IHN0b3JlVmFsdWUodmFsdWVSZWdzLCBhZGRyZXNzKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICB9CkBAIC05ODgsOSArMTAwMSwyOCBAQCBwcml2YXRlOgogICAgICAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tX2NhbGxlZVNhdmVTcGFjZSAtIFdURjo6cm91bmRVcFRv
TXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtX3N0YWNrSGVpZ2h0KSAqIHNp
emVvZihTdGFja1Nsb3QpIC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBjaGVj
a1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCisgICAgICAgIC8vIEZJWE1FOiBObyBuZWVkIHRv
IGRvIHR5cGUgY29udmVyc2lvbiBpZiB0aGUgY2FsbGVlIGlzIGEgV2ViQXNzZW1ibHkgZnVuY3Rp
b24uCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDkzMTAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3Mo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFs
dWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OworI2VuZGlmCiAgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZSkgewogICAgICAgICBjYXNlIFdB
U01FeHByZXNzaW9uVHlwZTo6STMyOgotICAgICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CisgICAgICAg
ICAgICBjb252ZXJ0VmFsdWVUb0ludDMyKHZhbHVlUmVncywgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZWdUMCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBT
dGFja1RvcCsrKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNRXhwcmVz
c2lvblR5cGU6OkYzMjoKKyAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NDoKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgY29udmVydFZhbHVlVG9Eb3VibGUodmFsdWVS
ZWdzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIp
OworI2Vsc2UKKyAgICAgICAgICAgIGNvbnZlcnRWYWx1ZVRvRG91YmxlKHZhbHVlUmVncywgRlBS
SW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBGUFJJbmZv
OjpmcFJlZ1QxKTsKKyNlbmRpZgorICAgICAgICAgICAgaWYgKHJldHVyblR5cGUgPT0gV0FTTUV4
cHJlc3Npb25UeXBlOjpGMzIpCisgICAgICAgICAgICAgICAgY29udmVydERvdWJsZVRvRmxvYXQo
RlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBzdG9yZURv
dWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wKysp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6
Vm9pZDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAwMCw2OSArMTAzMiw3MiBAQCBwcml2YXRl
OgogICAgIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgdm9pZCBsb2FkVmFsdWVBbmRDb252
ZXJ0VG9JbnQzMihBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBkc3QpCisgICAgdm9pZCBjb252ZXJ0
VmFsdWVUb0ludDMyKEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVnIGRzdCkKICAgICB7Ci0g
ICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKGRzdCk7Ci0gICAgICAgIGxvYWRWYWx1ZShhZGRy
ZXNzLCB0ZW1wUmVncyk7Ci0gICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQz
Mih0ZW1wUmVncyk7CisgICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih2
YWx1ZVJlZ3MpOwogCi0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFs
dWVUb0ludDMyLCBkc3QsIGRzdCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29u
dmVydEpTVmFsdWVUb0ludDMyLCB2YWx1ZVJlZ3MuZ3ByKCksIHZhbHVlUmVncy5ncHIoKSk7CiAK
ICAgICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhpcyk7CisgICAgICAgIG1vdmUodmFsdWVSZWdz
LmdwcigpLCBkc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZFZhbHVlQW5kQ29udmVydFRvRG91
YmxlKEFkZHJlc3MgYWRkcmVzcywgRlBSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcg
c2NyYXRjaDIpCisgICAgdm9pZCBjb252ZXJ0VmFsdWVUb0RvdWJsZShKU1ZhbHVlUmVncyB2YWx1
ZVJlZ3MsIEZQUlJlZyBkc3QsIEdQUlJlZyBzY3JhdGNoKQogICAgIHsKLSAgICAgICAgSlNWYWx1
ZVJlZ3MgdGVtcFJlZ3Moc2NyYXRjaDEpOwotICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVt
cFJlZ3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJl
Z3MpOwotICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIgPSBicmFuY2hJZk51bWJlcih0ZW1wUmVn
cywgc2NyYXRjaDIpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIo
dmFsdWVSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJhbmNoSWZOdW1iZXIo
dmFsdWVSZWdzLCBzY3JhdGNoKTsKICAgICAgICAgSnVtcExpc3QgZW5kOwogCi0gICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSwgdGVtcFJlZ3MuZ3By
KCksIGRzdCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVU
b0RvdWJsZSwgdmFsdWVSZWdzLmdwcigpLCBkc3QpOwogICAgICAgICBlbmQuYXBwZW5kKGp1bXAo
KSk7CiAKICAgICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhpcyk7Ci0gICAgICAgIGNvbnZlcnRJ
bnQzMlRvRG91YmxlKHRlbXBSZWdzLmdwcigpLCBkc3QpOworICAgICAgICBjb252ZXJ0SW50MzJU
b0RvdWJsZSh2YWx1ZVJlZ3MuZ3ByKCksIGRzdCk7CiAgICAgICAgIGVuZC5hcHBlbmQoanVtcCgp
KTsKIAogICAgICAgICBjaGVja0pTTnVtYmVyLmxpbmsodGhpcyk7Ci0gICAgICAgIHVuYm94RG91
YmxlV2l0aG91dEFzc2VydGlvbnModGVtcFJlZ3MuZ3ByKCksIGRzdCk7CisgICAgICAgIHVuYm94
RG91YmxlV2l0aG91dEFzc2VydGlvbnModmFsdWVSZWdzLmdwcigpLCBkc3QpOwogICAgICAgICBl
bmQubGluayh0aGlzKTsKICAgICB9CiAjZWxzZQotICAgIHZvaWQgbG9hZFZhbHVlQW5kQ29udmVy
dFRvSW50MzIoQWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgZHN0LCBHUFJSZWcgc2NyYXRjaCkKKyAg
ICB2b2lkIGNvbnZlcnRWYWx1ZVRvSW50MzIoSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBHUFJSZWcg
ZHN0KQogICAgIHsKLSAgICAgICAgSlNWYWx1ZVJlZ3MgdGVtcFJlZ3Moc2NyYXRjaCwgZHN0KTsK
LSAgICAgICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKLSAgICAgICAgSnVtcCBjaGVj
a0pTSW50MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pT
SW50MzIgPSBicmFuY2hJZkludDMyKHZhbHVlUmVncyk7CiAKLSAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvSW50MzIsIHRlbXBSZWdzLnRhZ0dQUigpLCB0ZW1w
UmVncy5wYXlsb2FkR1BSKCksIGRzdCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
Q29udmVydEpTVmFsdWVUb0ludDMyLCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVlUmVncy5wYXls
b2FkR1BSKCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogCiAgICAgICAgIGNoZWNrSlNJbnQz
Mi5saW5rKHRoaXMpOworICAgICAgICBtb3ZlKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIGRzdCk7
CiAgICAgfQogCi0gICAgdm9pZCBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoQWRkcmVzcyBh
ZGRyZXNzLCBGUFJSZWcgZHN0LCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BS
UmVnIHNjcmF0Y2gzLCBGUFJSZWcgZnBTY3JhdGNoKQorICAgIHZvaWQgY29udmVydFZhbHVlVG9E
b3VibGUoSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBGUFJSZWcgZHN0LCBHUFJSZWcgc2NyYXRjaCwg
RlBSUmVnIGZwU2NyYXRjaCkKICAgICB7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKHNj
cmF0Y2gyLCBzY3JhdGNoMSk7Ci0gICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB0ZW1wUmVncyk7
Ci0gICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih0ZW1wUmVncyk7Ci0g
ICAgICAgIEp1bXAgY2hlY2tKU051bWJlciA9IGJyYW5jaElmTnVtYmVyKHRlbXBSZWdzLCBzY3Jh
dGNoMyk7CisgICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih2YWx1ZVJl
Z3MpOworICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIgPSBicmFuY2hJZk51bWJlcih2YWx1ZVJl
Z3MsIHNjcmF0Y2gpOwogICAgICAgICBKdW1wTGlzdCBlbmQ7CiAKLSAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlLCB0ZW1wUmVncy50YWdHUFIoKSwg
dGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkNvbnZlcnRKU1ZhbHVlVG9Eb3VibGUsIHZhbHVlUmVncy50YWdHUFIoKSwgdmFsdWVSZWdz
LnBheWxvYWRHUFIoKSwgZHN0KTsKICAgICAgICAgZW5kLmFwcGVuZChqdW1wKCkpOwogCiAgICAg
ICAgIGNoZWNrSlNJbnQzMi5saW5rKHRoaXMpOwotICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJs
ZSh0ZW1wUmVncy5wYXlsb2FkR1BSKCksIGRzdCk7CisgICAgICAgIGNvbnZlcnRJbnQzMlRvRG91
YmxlKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIGRzdCk7CiAgICAgICAgIGVuZC5hcHBlbmQoanVt
cCgpKTsKIAogICAgICAgICBjaGVja0pTTnVtYmVyLmxpbmsodGhpcyk7Ci0gICAgICAgIHVuYm94
RG91YmxlKHRlbXBSZWdzLnRhZ0dQUigpLCB0ZW1wUmVncy5wYXlsb2FkR1BSKCksIGRzdCwgZnBT
Y3JhdGNoKTsKKyAgICAgICAgdW5ib3hEb3VibGUodmFsdWVSZWdzLnRhZ0dQUigpLCB2YWx1ZVJl
Z3MucGF5bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCk7CiAgICAgICAgIGVuZC5saW5rKHRoaXMp
OwogICAgIH0KICNlbmRpZgogCisgICAgdm9pZCBjb252ZXJ0RG91YmxlVG9WYWx1ZShGUFJSZWcg
ZnByLCBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgIGJveERvdWJsZShmcHIsIHZhbHVlUmVncy5ncHIoKSk7CisjZWxzZQorICAgICAgICBi
b3hEb3VibGUoZnByLCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkp
OworI2VuZGlmCisgICAgfQorCiAgICAgSlNXQVNNTW9kdWxlKiBtX21vZHVsZTsKICAgICB1bnNp
Z25lZCBtX3N0YWNrSGVpZ2h0OwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZMb2NhbHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRl
eCAxY2UxNzQ2ZDFjMmFhOWJiZTkwMjk0NGU3NTE1YzYwMWFhYjRmN2JjLi4wNzk1NWUxN2M4YTVj
MGE2MTMwOTA5YTk3NjM5ZTdkZWYxZjM3ZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTUyOSw3ICs1MjksNyBAQCBDb250
ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkkzMihDb250
ZXh0JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OkdldEdsb2Jh
bDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25JMzIoY29udGV4
dCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6Q2FsbEludGVybmFsOgotICAg
ICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEludGVybmFsRXhwcmVzc2lvbkkzMihjb250ZXh0KTsK
KyAgICAgICAgICAgIHJldHVybiBwYXJzZUNhbGxJbnRlcm5hbChjb250ZXh0LCBXQVNNRXhwcmVz
c2lvblR5cGU6OkkzMik7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6Q2FsbElu
ZGlyZWN0OgogICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEluZGlyZWN0KGNvbnRleHQsIFdB
U01FeHByZXNzaW9uVHlwZTo6STMyKTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMy
OjpDYWxsSW1wb3J0OgpAQCAtNjgxLDEyICs2ODEsNiBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNN
RnVuY3Rpb25QYXJzZXI6OnBhcnNlR2V0R2xvYmFsRXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250
ZQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KLUNvbnRleHRFeHByZXNzaW9uIFdBU01G
dW5jdGlvblBhcnNlcjo6cGFyc2VDYWxsSW50ZXJuYWxFeHByZXNzaW9uSTMyKENvbnRleHQmIGNv
bnRleHQpCi17Ci0gICAgcmV0dXJuIHBhcnNlQ2FsbEludGVybmFsKGNvbnRleHQsIFdBU01FeHBy
ZXNzaW9uVHlwZTo6STMyKTsKLX0KLQotdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CiBDb250ZXh0
RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlVW5hcnlFeHByZXNzaW9uSTMyKENv
bnRleHQmIGNvbnRleHQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3ApCiB7CiAgICAgQ29udGV4dEV4
cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbkkzMihjb250ZXh0KTsKQEAgLTc1
Miw2ICs3NDYsOCBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNl
RXhwcmVzc2lvbkYzMihDb250ZXh0JiBjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIHBhcnNl
R2V0TG9jYWxFeHByZXNzaW9uRjMyKGNvbnRleHQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GMzI6OkdldEdsb2JhbDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldEdsb2JhbEV4
cHJlc3Npb25GMzIoY29udGV4dCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6
Q2FsbEludGVybmFsOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEludGVybmFsKGNvbnRl
eHQsIFdBU01FeHByZXNzaW9uVHlwZTo6RjMyKTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjMyOjpDYWxsSW5kaXJlY3Q6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VDYWxsSW5kaXJl
Y3QoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpGMzIpOwogICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GMzI6Ok5lZ2F0ZToKQEAgLTc3MSw3ICs3NjcsNiBAQCBDb250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkYzMihDb250ZXh0JiBjb250
ZXh0KQogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkxvYWRXaXRoT2Zmc2V0Ogog
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OlN0b3JlOgogICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GMzI6OlN0b3JlV2l0aE9mZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjMyOjpDYWxsSW50ZXJuYWw6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkYzMjo6Q29uZGl0aW9uYWw6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q29t
bWE6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6RnJvbVMzMjoKQEAgLTg4MCw2
ICs4NzUsOCBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhw
cmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlR2V0
TG9jYWxFeHByZXNzaW9uRjY0KGNvbnRleHQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OkdldEdsb2JhbDoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldEdsb2JhbEV4cHJl
c3Npb25GNjQoY29udGV4dCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2Fs
bEludGVybmFsOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEludGVybmFsKGNvbnRleHQs
IFdBU01FeHByZXNzaW9uVHlwZTo6RjY0KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpDYWxsSW1wb3J0OgogICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2FsbEltcG9ydChjb250
ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6Q2FsbEluZGlyZWN0OgpAQCAtODkwLDcgKzg4Nyw2IEBAIENvbnRleHRFeHByZXNz
aW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRl
eHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG9hZFdpdGhPZmZzZXQ6CiAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3RvcmU6CiAgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6U3RvcmVXaXRoT2Zmc2V0OgotICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkNhbGxJbnRlcm5hbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpDb25kaXRpb25hbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb21t
YToKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tUzMyOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAppbmRleCBiNDQwYjY2
MWY4MDIwNjA2ODdjNjg2NWM5OWM4NTlkMTI1YmExOWY3Li5iYmJkMTNkYmQxOGNkMGU2ZDI2OGQx
OTcyODJkMGUzNWI1ZmVhODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNRnVuY3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNRnVuY3Rpb25QYXJzZXIuaApAQCAtODksNyArODksNiBAQCBwcml2YXRlOgogICAgIHRlbXBs
YXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVz
c2lvbkkzMihDb250ZXh0JiwgdWludDMyX3QgbG9jYWxJbmRleCk7CiAgICAgdGVtcGxhdGUgPGNs
YXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uSTMy
KENvbnRleHQmKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Np
b24gcGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uSTMyKENvbnRleHQmKTsKLSAgICB0ZW1wbGF0ZSA8
Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VDYWxsSW50ZXJuYWxFeHByZXNz
aW9uSTMyKENvbnRleHQmKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4
cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJlc3Npb25JMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Np
b25JMzIpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBw
YXJzZUJpbmFyeUV4cHJlc3Npb25JMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25JMzIpOwog
ICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZVJlbGF0
aW9uYWxJMzJFeHByZXNzaW9uSTMyKENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9uSTMyKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>