<?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>195221</bug_id>
          
          <creation_ts>2019-03-01 12:43:39 -0800</creation_ts>
          <short_desc>[JSC] Use runtime calls for DFG MakeRope if !CPU(ADDRESS64)</short_desc>
          <delta_ts>2019-03-01 13:47:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511541</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-01 12:43:39 -0800</bug_when>
    <thetext>[JSC] Use runtime calls for DFG MakeRope if !CPU(ADDRESS64)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511542</commentid>
    <comment_count>1</comment_count>
      <attachid>363358</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-01 12:45:30 -0800</bug_when>
    <thetext>Created attachment 363358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511552</commentid>
    <comment_count>2</comment_count>
      <attachid>363358</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-03-01 12:54:52 -0800</bug_when>
    <thetext>Comment on attachment 363358
Patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:13400
&gt; +    Edge edges[3] = {
&gt; +        node-&gt;child1(),
&gt; +        node-&gt;child2(),
&gt; +        node-&gt;child3()
&gt; +    };

This is only used by the CPU(ADDRESS64) case.  Can you move it in there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511577</commentid>
    <comment_count>3</comment_count>
      <attachid>363358</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-01 13:32:03 -0800</bug_when>
    <thetext>Comment on attachment 363358
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:13400
&gt;&gt; +    };
&gt; 
&gt; This is only used by the CPU(ADDRESS64) case.  Can you move it in there?

Oops, fixed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511589</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-01 13:46:13 -0800</bug_when>
    <thetext>Committed r242286: &lt;https://trac.webkit.org/changeset/242286&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511590</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-01 13:47:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/48521543&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363358</attachid>
            <date>2019-03-01 12:45:30 -0800</date>
            <delta_ts>2019-03-01 12:54:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195221-20190301124529.patch</filename>
            <type>text/plain</type>
            <size>18484</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGI1ZWIyZDYzM2UzZGFhNmIwZGNkOTk2YjhlNDU4OGIxOGU1ZDYxLi44Yzc2MTJlZGM3MGViZmU2
YTAxMDY0MDE0NjBjOWYxYTY1NmYxMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxOS0wMy0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBydW50aW1lIGNhbGxzIGZvciBERkcgTWFrZVJvcGUgaWYg
IUNQVShBRERSRVNTNjQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUyMjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBUk0zMl82NCBidWlsZHMgREZHIDY0Yml0LCBidXQgdGhlIHNpemUgb2YgYWRkcmVz
cyBpcyAzMmJpdC4gTWFrZSBERkcgTWFrZVJvcGUgYSBydW50aW1lIGNhbGwgbm90IG9ubHkgZm9y
IERGRyAzMl82NCwKKyAgICAgICAgYnV0IGFsc28gREZHIDY0IHdpdGggIUNQVShBRERSRVNTNjQp
LiBUaGlzIHBhdGNoIHVuaWZpZXMgY29tcGlsZU1ha2VSb3BlIGFnYWluLCBhbmQgdXNlIGEgcnVu
dGltZSBjYWxsIGZvciAhQ1BVKEFERFJFU1M2NCkuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
TWFrZVJvcGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1ha2VSb3BlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZSk6IERlbGV0ZWQuCisKIDIwMTkt
MDMtMDEgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
IEdQVV0gMzItYml0IGJ1aWxkcyBicm9rZW4gYnkgYXR0ZW1wdCB0byBkaXNhYmxlIFdlYkdQVSBv
biAzMi1iaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKaW5kZXggMjQ5NDgzZGZlNjdhYWRhZTA3OWJjM2NlYzQyYTMyZWU2ZTU1MDdiMy4uNmFh
NzdlZjg0N2RlODNiNDcwMWRiNTdkNTI0YTkzZWZhNmE5ODAyZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTEzMzg0LDYgKzEzMzg0
LDE4MyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQmlnSW50RXF1YWxpdHkoTm9kZSog
bm9kZSkKICAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSwgVXNlQ2hp
bGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU1ha2VSb3BlKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBLbm93blN0cmluZ1VzZSk7CisgICAgQVNTRVJUKG5vZGUtPmNoaWxkMigpLnVzZUtp
bmQoKSA9PSBLbm93blN0cmluZ1VzZSk7CisgICAgQVNTRVJUKCFub2RlLT5jaGlsZDMoKSB8fCBu
b2RlLT5jaGlsZDMoKS51c2VLaW5kKCkgPT0gS25vd25TdHJpbmdVc2UpOworCisgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUNlbGxP
cGVyYW5kIG9wMyh0aGlzLCBub2RlLT5jaGlsZDMoKSk7CisgICAgRWRnZSBlZGdlc1szXSA9IHsK
KyAgICAgICAgbm9kZS0+Y2hpbGQxKCksCisgICAgICAgIG5vZGUtPmNoaWxkMigpLAorICAgICAg
ICBub2RlLT5jaGlsZDMoKQorICAgIH07CisgICAgR1BSUmVnIG9wR1BSc1szXTsKKyAgICB1bnNp
Z25lZCBudW1PcEdQUnM7CisgICAgb3BHUFJzWzBdID0gb3AxLmdwcigpOworICAgIG9wR1BSc1sx
XSA9IG9wMi5ncHIoKTsKKyAgICBpZiAobm9kZS0+Y2hpbGQzKCkpIHsKKyAgICAgICAgb3BHUFJz
WzJdID0gb3AzLmdwcigpOworICAgICAgICBudW1PcEdQUnMgPSAzOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIG9wR1BSc1syXSA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIG51bU9wR1BScyA9IDI7
CisgICAgfQorCisjaWYgQ1BVKEFERFJFU1M2NCkKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRo
aXMpOworICAgIEdQUlRlbXBvcmFyeSBhbGxvY2F0b3IodGhpcyk7CisgICAgR1BSVGVtcG9yYXJ5
IHNjcmF0Y2godGhpcyk7CisgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2gyKHRoaXMpOworICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisgICAgR1BSUmVnIGFsbG9jYXRvckdQUiA9
IGFsbG9jYXRvci5ncHIoKTsKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7
CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDIuZ3ByKCk7CisKKyAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOworICAgIEFsbG9jYXRvciBhbGxvY2F0b3JWYWx1ZSA9
IGFsbG9jYXRvckZvck5vblZpcnR1YWxDb25jdXJyZW50bHk8SlNSb3BlU3RyaW5nPigqbV9qaXQu
dm0oKSwgc2l6ZW9mKEpTUm9wZVN0cmluZyksIEFsbG9jYXRvckZvck1vZGU6OkFsbG9jYXRvcklm
RXhpc3RzKTsKKyAgICBlbWl0QWxsb2NhdGVKU0NlbGwocmVzdWx0R1BSLCBKSVRBbGxvY2F0b3I6
OmNvbnN0YW50KGFsbG9jYXRvclZhbHVlKSwgYWxsb2NhdG9yR1BSLCBUcnVzdGVkSW1tUHRyKG1f
aml0LmdyYXBoKCkucmVnaXN0ZXJTdHJ1Y3R1cmUobV9qaXQudm0oKS0+c3RyaW5nU3RydWN0dXJl
LmdldCgpKSksIHNjcmF0Y2hHUFIsIHNsb3dQYXRoKTsKKworICAgIG1faml0Lm9yUHRyKFRydXN0
ZWRJbW0zMihKU1N0cmluZzo6aXNSb3BlSW5Qb2ludGVyKSwgb3BHUFJzWzBdLCBhbGxvY2F0b3JH
UFIpOworICAgIG1faml0LnN0b3JlUHRyKGFsbG9jYXRvckdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHJlc3VsdEdQUiwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVyMCgpKSk7CisKKyAgICBt
X2ppdC5tb3ZlKG9wR1BSc1sxXSwgc2NyYXRjaEdQUik7CisgICAgbV9qaXQuc3RvcmUzMihzY3Jh
dGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1JvcGVTdHJpbmc6Om9m
ZnNldE9mRmliZXIxTG93ZXIoKSkpOworICAgIG1faml0LnJzaGlmdFB0cihUcnVzdGVkSW1tMzIo
MzIpLCBzY3JhdGNoR1BSKTsKKyAgICBtX2ppdC5zdG9yZTE2KHNjcmF0Y2hHUFIsIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZGaWJlcjFVcHBl
cigpKSk7CisKKyAgICBpZiAobnVtT3BHUFJzID09IDMpIHsKKyAgICAgICAgbV9qaXQubW92ZShv
cEdQUnNbMl0sIHNjcmF0Y2hHUFIpOworICAgICAgICBtX2ppdC5zdG9yZTMyKHNjcmF0Y2hHUFIs
IENDYWxsSGVscGVyczo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZG
aWJlcjJMb3dlcigpKSk7CisgICAgICAgIG1faml0LnJzaGlmdFB0cihUcnVzdGVkSW1tMzIoMzIp
LCBzY3JhdGNoR1BSKTsKKyAgICAgICAgbV9qaXQuc3RvcmUxNihzY3JhdGNoR1BSLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmliZXIyVXBw
ZXIoKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1faml0LnN0b3JlWmVybzMyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZGaWJlcjJMb3dl
cigpKSk7CisgICAgICAgIG1faml0LnN0b3JlWmVybzE2KENDYWxsSGVscGVyczo6QWRkcmVzcyhy
ZXN1bHRHUFIsIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZGaWJlcjJVcHBlcigpKSk7CisgICAgfQor
CisgICAgeworICAgICAgICBpZiAoSlNTdHJpbmcqIHN0cmluZyA9IGVkZ2VzWzBdLT5keW5hbWlj
Q2FzdENvbnN0YW50PEpTU3RyaW5nKj4oKm1faml0LnZtKCkpKSB7CisgICAgICAgICAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW0zMihzdHJpbmctPmlzOEJpdCgpID8gU3RyaW5nSW1wbDo6ZmxhZ0lz
OEJpdCgpIDogMCksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVk
SW1tMzIoc3RyaW5nLT5sZW5ndGgoKSksIGFsbG9jYXRvckdQUik7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBib29sIGNhbkJlUm9wZSA9ICFtX3N0YXRlLmZvck5vZGUoZWRnZXNbMF0p
LmlzVHlwZShTcGVjU3RyaW5nSWRlbnQpOworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Mob3BHUFJzWzBdLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwg
c2NyYXRjaDJHUFIpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzUm9wZTsKKyAg
ICAgICAgICAgIGlmIChjYW5CZVJvcGUpCisgICAgICAgICAgICAgICAgaXNSb3BlID0gbV9qaXQu
YnJhbmNoSWZSb3BlU3RyaW5nSW1wbChzY3JhdGNoMkdQUik7CisKKyAgICAgICAgICAgIG1faml0
LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDJHUFIsIFN0cmluZ0ltcGw6OmZs
YWdzT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgIG1faml0LmxvYWQzMihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaDJHUFIsIFN0cmluZ0ltcGw6Omxlbmd0aE1lbW9yeU9m
ZnNldCgpKSwgYWxsb2NhdG9yR1BSKTsKKworICAgICAgICAgICAgaWYgKGNhbkJlUm9wZSkgewor
ICAgICAgICAgICAgICAgIGF1dG8gZG9uZSA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICAgICAg
ICAgIGlzUm9wZS5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICAgICAgbV9qaXQubG9hZDE2KEND
YWxsSGVscGVyczo6QWRkcmVzcyhvcEdQUnNbMF0sIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZGbGFn
cygpKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhvcEdQUnNbMF0sIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSks
IGFsbG9jYXRvckdQUik7CisgICAgICAgICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgewor
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG9rID0gbV9qaXQuYnJhbmNoMzIoCisgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGFsbG9jYXRvckdQ
UiwgVHJ1c3RlZEltbTMyKDApKTsKKyAgICAgICAgICAgIG1faml0LmFib3J0V2l0aFJlYXNvbihE
RkdOZWdhdGl2ZVN0cmluZ0xlbmd0aCk7CisgICAgICAgICAgICBvay5saW5rKCZtX2ppdCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgbnVtT3BHUFJz
OyArK2kpIHsKKyAgICAgICAgaWYgKEpTU3RyaW5nKiBzdHJpbmcgPSBlZGdlc1tpXS0+ZHluYW1p
Y0Nhc3RDb25zdGFudDxKU1N0cmluZyo+KCptX2ppdC52bSgpKSkgeworICAgICAgICAgICAgbV9q
aXQuYW5kMzIoVHJ1c3RlZEltbTMyKHN0cmluZy0+aXM4Qml0KCkgPyBTdHJpbmdJbXBsOjpmbGFn
SXM4Qml0KCkgOiAwKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KAorICAgICAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1ZhbHVlU291cmNlKCksIG51bGxwdHIs
CisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoQWRkMzIoCisgICAgICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6T3ZlcmZsb3csCisgICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJbW0z
MihzdHJpbmctPmxlbmd0aCgpKSwgYWxsb2NhdG9yR1BSKSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBib29sIGNhbkJlUm9wZSA9ICFtX3N0YXRlLmZvck5vZGUoZWRnZXNbaV0pLmlz
VHlwZShTcGVjU3RyaW5nSWRlbnQpOworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Mob3BHUFJzW2ldLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgc2Ny
YXRjaDJHUFIpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzUm9wZTsKKyAgICAg
ICAgICAgIGlmIChjYW5CZVJvcGUpCisgICAgICAgICAgICAgICAgaXNSb3BlID0gbV9qaXQuYnJh
bmNoSWZSb3BlU3RyaW5nSW1wbChzY3JhdGNoMkdQUik7CisKKyAgICAgICAgICAgIG1faml0LmFu
ZDE2KENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMkdQUiwgU3RyaW5nSW1wbDo6ZmxhZ3NP
ZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAg
ICAgICAgICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAorICAg
ICAgICAgICAgICAgIG1faml0LmJyYW5jaEFkZDMyKAorICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Ok92ZXJmbG93LAorICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3Moc2NyYXRjaDJHUFIsIFN0cmluZ0ltcGw6Omxlbmd0aE1lbW9yeU9mZnNldCgpKSwgYWxs
b2NhdG9yR1BSKSk7CisgICAgICAgICAgICBpZiAoY2FuQmVSb3BlKSB7CisgICAgICAgICAgICAg
ICAgYXV0byBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAgICAgICAgICAgICAgaXNSb3BlLmxp
bmsoJm1faml0KTsKKyAgICAgICAgICAgICAgICBtX2ppdC5hbmQxNihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3Mob3BHUFJzW2ldLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmxhZ3MoKSksIHNjcmF0Y2hH
UFIpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
b3BHUFJzW2ldLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpLCBzY3JhdGNoMkdQUik7
CisgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICAgICAg
VW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAg
ICAgbV9qaXQuYnJhbmNoQWRkMzIoCisgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6Ok92ZXJmbG93LCBzY3JhdGNoMkdQUiwgYWxsb2NhdG9yR1BSKSk7CisgICAgICAgICAgICAg
ICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgbV9qaXQuc3RvcmUxNihzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocmVzdWx0
R1BSLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmxhZ3MoKSkpOworICAgIGlmICghQVNTRVJUX0RJ
U0FCTEVEKSB7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBvayA9IG1faml0LmJyYW5jaDMy
KAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpHcmVhdGVyVGhhbk9yRXF1YWwsIGFsbG9jYXRv
ckdQUiwgVHJ1c3RlZEltbTMyKDApKTsKKyAgICAgICAgbV9qaXQuYWJvcnRXaXRoUmVhc29uKERG
R05lZ2F0aXZlU3RyaW5nTGVuZ3RoKTsKKyAgICAgICAgb2subGluaygmbV9qaXQpOworICAgIH0K
KyAgICBtX2ppdC5zdG9yZTMyKGFsbG9jYXRvckdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHJl
c3VsdEdQUiwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSk7CisgICAgYXV0byBpc05v
bkVtcHR5U3RyaW5nID0gbV9qaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6Tm9uWmVybywg
YWxsb2NhdG9yR1BSKTsKKworICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9qaXQuZ3JhcGgoKSwganNFbXB0eVN0cmluZygmbV9qaXQuZ3JhcGgoKS5tX3ZtKSksIHJl
c3VsdEdQUik7CisKKyAgICBpc05vbkVtcHR5U3RyaW5nLmxpbmsoJm1faml0KTsKKyAgICBtX2pp
dC5tdXRhdG9yRmVuY2UoKm1faml0LnZtKCkpOworCisgICAgc3dpdGNoIChudW1PcEdQUnMpIHsK
KyAgICBjYXNlIDI6CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgK
KyAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25NYWtlUm9wZTIsIHJlc3VsdEdQ
Uiwgb3BHUFJzWzBdLCBvcEdQUnNbMV0pKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAzOgor
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICBz
bG93UGF0aCwgdGhpcywgb3BlcmF0aW9uTWFrZVJvcGUzLCByZXN1bHRHUFIsIG9wR1BSc1swXSwg
b3BHUFJzWzFdLCBvcEdQUnNbMl0pKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworI2Vsc2UKKyAgICBmbHVzaFJl
Z2lzdGVycygpOworICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgIHN3aXRjaCAobnVtT3BHUFJzKSB7
CisgICAgY2FzZSAyOgorICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk1ha2VSb3BlMiwg
cmVzdWx0R1BSLCBvcEdQUnNbMF0sIG9wR1BSc1sxXSk7CisgICAgICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMzoKKyAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25NYWtlUm9wZTMsIHJlc3VsdEdQUiwgb3BHUFJzWzBdLCBvcEdQUnNbMV0s
IG9wR1BSc1syXSk7CisgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2Rl
KTsKKyNlbmRpZgorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKaW5kZXggOThjZjJjN2U0YTNiYzgwODg1NGNjMTI1YTdlMTQ0MzIwY2VlYWMyYy4uY2QzZDM1
MTVlZDdhMmNkZTYzMmQxNzJlYTFiZDY2Yzc0NjE3N2RmZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00MTk1LDQ4
ICs0MTk1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUmFuZG9tKE5vZGUq
IG5vZGUpCiAgICAgZG91YmxlUmVzdWx0KHJlc3VsdC5mcHIoKSwgbm9kZSk7CiB9CiAKLXZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZShOb2RlKiBub2RlKQotewotICAgIEFTU0VS
VChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gS25vd25TdHJpbmdVc2UpOwotICAgIEFTU0VS
VChub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gS25vd25TdHJpbmdVc2UpOwotICAgIEFTU0VS
VCghbm9kZS0+Y2hpbGQzKCkgfHwgbm9kZS0+Y2hpbGQzKCkudXNlS2luZCgpID09IEtub3duU3Ry
aW5nVXNlKTsKLSAgICAKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGls
ZDIoKSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3AzKHRoaXMsIG5vZGUtPmNoaWxkMygp
KTsKLSAgICAKLSAgICBHUFJSZWcgb3BHUFJzWzNdOwotICAgIHVuc2lnbmVkIG51bU9wR1BSczsK
LSAgICBvcEdQUnNbMF0gPSBvcDEuZ3ByKCk7Ci0gICAgb3BHUFJzWzFdID0gb3AyLmdwcigpOwot
ICAgIGlmIChub2RlLT5jaGlsZDMoKSkgewotICAgICAgICBvcEdQUnNbMl0gPSBvcDMuZ3ByKCk7
Ci0gICAgICAgIG51bU9wR1BScyA9IDM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgb3BHUFJzWzJd
ID0gSW52YWxpZEdQUlJlZzsKLSAgICAgICAgbnVtT3BHUFJzID0gMjsKLSAgICB9Ci0KLSAgICBm
bHVzaFJlZ2lzdGVycygpOwotICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsK
LSAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgIHN3aXRjaCAobnVtT3BH
UFJzKSB7Ci0gICAgY2FzZSAyOgotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk1ha2VS
b3BlMiwgcmVzdWx0R1BSLCBvcEdQUnNbMF0sIG9wR1BSc1sxXSk7Ci0gICAgICAgIG1faml0LmV4
Y2VwdGlvbkNoZWNrKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMzoKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25NYWtlUm9wZTMsIHJlc3VsdEdQUiwgb3BHUFJzWzBdLCBvcEdQ
UnNbMV0sIG9wR1BSc1syXSk7Ci0gICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBjZWxsUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7Ci19Ci0KICNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApp
bmRleCA3OTI1Y2ViN2NhMzQyMDVhZGE4M2UzZWE3ZjY0M2UwNmFkYjU0ZTQ3Li44OGNmNDFiODc4
Zjc2MTA2YzRlNWVjZjMyODFhNmEyOTZkYjllZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTUyMzAsMTYyICs1MjMwLDYg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUmFuZG9tKE5vZGUqIG5vZGUpCiAg
ICAgZG91YmxlUmVzdWx0KHJlc3VsdC5mcHIoKSwgbm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVNYWtlUm9wZShOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkgPT0gS25vd25TdHJpbmdVc2UpOwotICAgIEFTU0VSVChub2RlLT5j
aGlsZDIoKS51c2VLaW5kKCkgPT0gS25vd25TdHJpbmdVc2UpOwotICAgIEFTU0VSVCghbm9kZS0+
Y2hpbGQzKCkgfHwgbm9kZS0+Y2hpbGQzKCkudXNlS2luZCgpID09IEtub3duU3RyaW5nVXNlKTsK
LQotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBvcDModGhpcywgbm9kZS0+Y2hpbGQzKCkpOwotICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgR1BSVGVtcG9yYXJ5IGFsbG9jYXRvcih0aGlzKTsK
LSAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICBHUFJUZW1wb3Jhcnkgc2NyYXRj
aDIodGhpcyk7Ci0KLSAgICBFZGdlIGVkZ2VzWzNdID0gewotICAgICAgICBub2RlLT5jaGlsZDEo
KSwKLSAgICAgICAgbm9kZS0+Y2hpbGQyKCksCi0gICAgICAgIG5vZGUtPmNoaWxkMygpCi0gICAg
fTsKLSAgICBHUFJSZWcgb3BHUFJzWzNdOwotICAgIHVuc2lnbmVkIG51bU9wR1BSczsKLSAgICBv
cEdQUnNbMF0gPSBvcDEuZ3ByKCk7Ci0gICAgb3BHUFJzWzFdID0gb3AyLmdwcigpOwotICAgIGlm
IChub2RlLT5jaGlsZDMoKSkgewotICAgICAgICBvcEdQUnNbMl0gPSBvcDMuZ3ByKCk7Ci0gICAg
ICAgIG51bU9wR1BScyA9IDM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgb3BHUFJzWzJdID0gSW52
YWxpZEdQUlJlZzsKLSAgICAgICAgbnVtT3BHUFJzID0gMjsKLSAgICB9Ci0gICAgR1BSUmVnIHJl
c3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLSAgICBHUFJSZWcgYWxsb2NhdG9yR1BSID0gYWxsb2Nh
dG9yLmdwcigpOwotICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5ncHIoKTsKLSAgICBH
UFJSZWcgc2NyYXRjaDJHUFIgPSBzY3JhdGNoMi5ncHIoKTsKLQotICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3Qgc2xvd1BhdGg7Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvclZhbHVlID0gYWxsb2Nh
dG9yRm9yTm9uVmlydHVhbENvbmN1cnJlbnRseTxKU1JvcGVTdHJpbmc+KCptX2ppdC52bSgpLCBz
aXplb2YoSlNSb3BlU3RyaW5nKSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlzdHMp
OwotICAgIGVtaXRBbGxvY2F0ZUpTQ2VsbChyZXN1bHRHUFIsIEpJVEFsbG9jYXRvcjo6Y29uc3Rh
bnQoYWxsb2NhdG9yVmFsdWUpLCBhbGxvY2F0b3JHUFIsIFRydXN0ZWRJbW1QdHIobV9qaXQuZ3Jh
cGgoKS5yZWdpc3RlclN0cnVjdHVyZShtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkp
KSwgc2NyYXRjaEdQUiwgc2xvd1BhdGgpOwotCi0gICAgbV9qaXQub3JQdHIoVHJ1c3RlZEltbTMy
KEpTU3RyaW5nOjppc1JvcGVJblBvaW50ZXIpLCBvcEdQUnNbMF0sIGFsbG9jYXRvckdQUik7Ci0g
ICAgbV9qaXQuc3RvcmVQdHIoYWxsb2NhdG9yR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocmVz
dWx0R1BSLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmliZXIwKCkpKTsKLQotICAgIG1faml0Lm1v
dmUob3BHUFJzWzFdLCBzY3JhdGNoR1BSKTsKLSAgICBtX2ppdC5zdG9yZTMyKHNjcmF0Y2hHUFIs
IENDYWxsSGVscGVyczo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZG
aWJlcjFMb3dlcigpKSk7Ci0gICAgbV9qaXQucnNoaWZ0UHRyKFRydXN0ZWRJbW0zMigzMiksIHNj
cmF0Y2hHUFIpOwotICAgIG1faml0LnN0b3JlMTYoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHJlc3VsdEdQUiwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVyMVVwcGVyKCkpKTsK
LQotICAgIGlmIChudW1PcEdQUnMgPT0gMykgewotICAgICAgICBtX2ppdC5tb3ZlKG9wR1BSc1sy
XSwgc2NyYXRjaEdQUik7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoc2NyYXRjaEdQUiwgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVyMkxv
d2VyKCkpKTsKLSAgICAgICAgbV9qaXQucnNoaWZ0UHRyKFRydXN0ZWRJbW0zMigzMiksIHNjcmF0
Y2hHUFIpOwotICAgICAgICBtX2ppdC5zdG9yZTE2KHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6
QWRkcmVzcyhyZXN1bHRHUFIsIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZGaWJlcjJVcHBlcigpKSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV9qaXQuc3RvcmVaZXJvMzIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHJlc3VsdEdQUiwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVyMkxvd2VyKCkpKTsK
LSAgICAgICAgbV9qaXQuc3RvcmVaZXJvMTYoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdEdQ
UiwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVyMlVwcGVyKCkpKTsKLSAgICB9Ci0KLSAgICB7
Ci0gICAgICAgIGlmIChKU1N0cmluZyogc3RyaW5nID0gZWRnZXNbMF0tPmR5bmFtaWNDYXN0Q29u
c3RhbnQ8SlNTdHJpbmcqPigqbV9qaXQudm0oKSkpIHsKLSAgICAgICAgICAgIG1faml0Lm1vdmUo
VHJ1c3RlZEltbTMyKHN0cmluZy0+aXM4Qml0KCkgPyBTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkg
OiAwKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihz
dHJpbmctPmxlbmd0aCgpKSwgYWxsb2NhdG9yR1BSKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGJvb2wgY2FuQmVSb3BlID0gIW1fc3RhdGUuZm9yTm9kZShlZGdlc1swXSkuaXNUeXBl
KFNwZWNTdHJpbmdJZGVudCk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhvcEdQUnNbMF0sIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBzY3JhdGNo
MkdQUik7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNSb3BlOwotICAgICAgICAg
ICAgaWYgKGNhbkJlUm9wZSkKLSAgICAgICAgICAgICAgICBpc1JvcGUgPSBtX2ppdC5icmFuY2hJ
ZlJvcGVTdHJpbmdJbXBsKHNjcmF0Y2gyR1BSKTsKLQotICAgICAgICAgICAgbV9qaXQubG9hZDMy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoMkdQUiwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoMkdQUiwgU3RyaW5nSW1wbDo6bGVuZ3RoTWVtb3J5T2Zmc2V0KCkp
LCBhbGxvY2F0b3JHUFIpOwotCi0gICAgICAgICAgICBpZiAoY2FuQmVSb3BlKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byBkb25lID0gbV9qaXQuanVtcCgpOwotCi0gICAgICAgICAgICAgICAgaXNS
b3BlLmxpbmsoJm1faml0KTsKLSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMTYoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKG9wR1BSc1swXSwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZsYWdzKCkpLCBz
Y3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKG9wR1BSc1swXSwgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSwgYWxsb2Nh
dG9yR1BSKTsKLSAgICAgICAgICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7Ci0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgb2sgPSBtX2ppdC5icmFuY2gzMigKLSAgICAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkdyZWF0ZXJUaGFuT3JFcXVhbCwgYWxsb2NhdG9yR1BSLCBUcnVz
dGVkSW1tMzIoMCkpOwotICAgICAgICAgICAgbV9qaXQuYWJvcnRXaXRoUmVhc29uKERGR05lZ2F0
aXZlU3RyaW5nTGVuZ3RoKTsKLSAgICAgICAgICAgIG9rLmxpbmsoJm1faml0KTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBudW1PcEdQUnM7ICsraSkg
ewotICAgICAgICBpZiAoSlNTdHJpbmcqIHN0cmluZyA9IGVkZ2VzW2ldLT5keW5hbWljQ2FzdENv
bnN0YW50PEpTU3RyaW5nKj4oKm1faml0LnZtKCkpKSB7Ci0gICAgICAgICAgICBtX2ppdC5hbmQz
MihUcnVzdGVkSW1tMzIoc3RyaW5nLT5pczhCaXQoKSA/IFN0cmluZ0ltcGw6OmZsYWdJczhCaXQo
KSA6IDApLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAg
ICAgICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKLSAgICAg
ICAgICAgICAgICBtX2ppdC5icmFuY2hBZGQzMigKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpPdmVyZmxvdywKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKHN0cmlu
Zy0+bGVuZ3RoKCkpLCBhbGxvY2F0b3JHUFIpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGJvb2wgY2FuQmVSb3BlID0gIW1fc3RhdGUuZm9yTm9kZShlZGdlc1tpXSkuaXNUeXBlKFNw
ZWNTdHJpbmdJZGVudCk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhvcEdQUnNbaV0sIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBzY3JhdGNoMkdQ
Uik7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNSb3BlOwotICAgICAgICAgICAg
aWYgKGNhbkJlUm9wZSkKLSAgICAgICAgICAgICAgICBpc1JvcGUgPSBtX2ppdC5icmFuY2hJZlJv
cGVTdHJpbmdJbXBsKHNjcmF0Y2gyR1BSKTsKLQotICAgICAgICAgICAgbV9qaXQuYW5kMTYoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2gyR1BSLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgp
KSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAg
ICAgICAgIFVuY291bnRhYmxlLCBKU1ZhbHVlU291cmNlKCksIG51bGxwdHIsCi0gICAgICAgICAg
ICAgICAgbV9qaXQuYnJhbmNoQWRkMzIoCi0gICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6T3ZlcmZsb3csCi0gICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoMkdQUiwgU3RyaW5nSW1wbDo6bGVuZ3RoTWVtb3J5T2Zmc2V0KCkpLCBhbGxvY2F0b3JH
UFIpKTsKLSAgICAgICAgICAgIGlmIChjYW5CZVJvcGUpIHsKLSAgICAgICAgICAgICAgICBhdXRv
IGRvbmUgPSBtX2ppdC5qdW1wKCk7Ci0KLSAgICAgICAgICAgICAgICBpc1JvcGUubGluaygmbV9q
aXQpOwotICAgICAgICAgICAgICAgIG1faml0LmFuZDE2KENDYWxsSGVscGVyczo6QWRkcmVzcyhv
cEdQUnNbaV0sIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZGbGFncygpKSwgc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhvcEdQUnNb
aV0sIEpTUm9wZVN0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSksIHNjcmF0Y2gyR1BSKTsKLSAgICAg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgICAgICBVbmNvdW50
YWJsZSwgSlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICBtX2pp
dC5icmFuY2hBZGQzMigKLSAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6T3Zl
cmZsb3csIHNjcmF0Y2gyR1BSLCBhbGxvY2F0b3JHUFIpKTsKLSAgICAgICAgICAgICAgICBkb25l
LmxpbmsoJm1faml0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICBtX2pp
dC5zdG9yZTE2KHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhyZXN1bHRHUFIsIEpT
Um9wZVN0cmluZzo6b2Zmc2V0T2ZGbGFncygpKSk7Ci0gICAgaWYgKCFBU1NFUlRfRElTQUJMRUQp
IHsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG9rID0gbV9qaXQuYnJhbmNoMzIoCi0gICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OkdyZWF0ZXJUaGFuT3JFcXVhbCwgYWxsb2NhdG9yR1BSLCBU
cnVzdGVkSW1tMzIoMCkpOwotICAgICAgICBtX2ppdC5hYm9ydFdpdGhSZWFzb24oREZHTmVnYXRp
dmVTdHJpbmdMZW5ndGgpOwotICAgICAgICBvay5saW5rKCZtX2ppdCk7Ci0gICAgfQotICAgIG1f
aml0LnN0b3JlMzIoYWxsb2NhdG9yR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocmVzdWx0R1BS
LCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpKTsKLSAgICBhdXRvIGlzTm9uRW1wdHlT
dHJpbmcgPSBtX2ppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBhbGxvY2F0
b3JHUFIpOwotCi0gICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2pp
dC5ncmFwaCgpLCBqc0VtcHR5U3RyaW5nKCZtX2ppdC5ncmFwaCgpLm1fdm0pKSwgcmVzdWx0R1BS
KTsKLQotICAgIGlzTm9uRW1wdHlTdHJpbmcubGluaygmbV9qaXQpOwotICAgIG1faml0Lm11dGF0
b3JGZW5jZSgqbV9qaXQudm0oKSk7Ci0KLSAgICBzd2l0Y2ggKG51bU9wR1BScykgewotICAgIGNh
c2UgMjoKLSAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAg
ICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbk1ha2VSb3BlMiwgcmVzdWx0R1BSLCBvcEdQ
UnNbMF0sIG9wR1BSc1sxXSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDM6Ci0gICAgICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgIHNsb3dQYXRo
LCB0aGlzLCBvcGVyYXRpb25NYWtlUm9wZTMsIHJlc3VsdEdQUiwgb3BHUFJzWzBdLCBvcEdQUnNb
MV0sIG9wR1BSc1syXSkpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAg
ICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Ci19Ci0KICNlbmRpZgogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6REZHCg==
</data>
<flag name="review"
          id="379961"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>