<?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>172225</bug_id>
          
          <creation_ts>2017-05-17 09:24:11 -0700</creation_ts>
          <short_desc>[JSC] Make get_by_val &amp; string &quot;499&quot; to number 499</short_desc>
          <delta_ts>2017-05-21 23:02:21 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1309629</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-17 09:24:11 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309631</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-17 09:26:12 -0700</bug_when>
    <thetext>And we should convert GetByVal(..., String:&quot;499&quot;) to GetByVal(..., Int32:499).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310583</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-19 06:27:08 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #1)
&gt; And we should convert GetByVal(..., String:&quot;499&quot;) to GetByVal(...,
&gt; Int32:499).

I would like to do it in a separate patch.
https://bugs.webkit.org/show_bug.cgi?id=172358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310955</commentid>
    <comment_count>3</comment_count>
      <attachid>310757</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-19 21:07:15 -0700</bug_when>
    <thetext>Created attachment 310757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311165</commentid>
    <comment_count>4</comment_count>
      <attachid>310757</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-05-21 14:37:52 -0700</bug_when>
    <thetext>Comment on attachment 310757
Patch

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

r=me

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:585
&gt; +            if (leftHandSideNeedsCopy(rightHasAssignments, rightIsPure)) {
&gt; +                RefPtr&lt;RegisterID&gt; dst = newTemporary();
&gt; +                emitNodeForProperty(dst.get(), n);
&gt; +                return dst;
&gt; +            }

Do you have a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311218</commentid>
    <comment_count>5</comment_count>
      <attachid>310757</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-21 22:32:47 -0700</bug_when>
    <thetext>Comment on attachment 310757
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:585
&gt;&gt; +            }
&gt; 
&gt; Do you have a test for this?

Nice, added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311219</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-21 22:33:56 -0700</bug_when>
    <thetext>Committed r217199: &lt;http://trac.webkit.org/changeset/217199&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311223</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-21 23:00:51 -0700</bug_when>
    <thetext>Committed r217201: &lt;http://trac.webkit.org/changeset/217201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311224</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-21 23:02:21 -0700</bug_when>
    <thetext>https://arewefastyet.com/#machine=29&amp;view=single&amp;suite=six-speed&amp;subtest=map-string-es5
Go!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310757</attachid>
            <date>2017-05-19 21:07:15 -0700</date>
            <delta_ts>2017-05-21 14:37:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172225-20170520130714.patch</filename>
            <type>text/plain</type>
            <size>15569</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YWNiODhlOWQxMTE3ZmU3NzlkN2NkYmI3MDlmZmZjOTY3Njc0Yjg1Li5hNGVkY2I4YTdmMzI1OGJm
MDZiZjMzNThhYmM5MDdmYmU3OWZjYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0MyBAQAogMjAxNy0wNS0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXSBNYWtlIGdldF9ieV92YWwgJiBzdHJpbmcgIjQ5OSIgdG8g
bnVtYmVyIDQ5OQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUHJvcGVydHkgc3Vic2NyaXB0IHdpbGwgYmUgY29udmVydGVkIGJ5IFRvU3RyaW5nLiBTbyBK
UyBjb2RlIGlzIG5vdCBhd2FyZSBvZgorICAgICAgICB0aGUgb3JpZ2luYWwgdHlwZSBvZiB0aGUg
c3Vic2NyaXB0IHZhbHVlLiBCdXQgb3VyIGdldF9ieV92YWwgY2FuIGxldmVyYWdlCisgICAgICAg
IGluZm9ybWF0aW9uIGlmIHRoZSBnaXZlbiBzdWJzY3JpcHQgaXMgbnVtYmVyLiBUaHVzLCBwYXNz
aW5nIG51bWJlciBpbnN0ZWFkIG9mCisgICAgICAgIHN0cmluZyBjYW4gaW1wcm92ZSB0aGUgcGVy
Zm9ybWFuY2Ugb2YgZ2V0X2J5X3ZhbCBpbiBhbGwgdGhlIHRpZXJzLgorCisgICAgICAgIEluIHRo
aXMgcGF0Y2gsIHdlIGFkZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5vZGVGb3JQcm9wZXJ0eS4g
SXQgYXR0ZW1wdHMgdG8KKyAgICAgICAgY29udmVydCB0aGUgZ2l2ZW4gdmFsdWUgdG8gSW50MzIg
aW5kZXggY29uc3RhbnQgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgc3RyaW5nCisgICAgICAgIHRo
YXQgY2FuIGJlIGNvbnZlcnRlZCB0byBJbnQzMi4KKworICAgICAgICBUaGlzIHBhdGNoIGltcHJv
dmVzIFNpeFNwZWVkIG1hcC1zdHJpbmcuZXM1IGJ5IDkuOHguIFRoaXMgYWNjZXNzaW5nIGZvcm0g
Y2FuCisgICAgICAgIGFwcGVhciBpbiBzb21lIGNvZGUgbGlrZSBhY2Nlc3NpbmcgdGhlIHJlc3Vs
dCBvZiBKU09OLgorCisgICAgICAgICAgICBtYXAtc3RyaW5nLmVzNSAgICAgMTY0MC42NzM4Ky0x
MTAuOTE4MiAgIF4gICAgMTY3LjQxMjErLTIzLjgzMjggICAgICAgXiBkZWZpbml0ZWx5IDkuODAw
MnggZmFzdGVyCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROb2RlRm9yUHJvcGVydHkpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGVG
b3JQcm9wZXJ0eSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6Cisg
ICAgICAgIChKU0M6OlRhZ2dlZFRlbXBsYXRlTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAg
KEpTQzo6QnJhY2tldEFjY2Vzc29yTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19wdXRCeVZhbERpcmVjdCk6Cisg
ICAgICAgIChKU0M6OkZ1bmN0aW9uQ2FsbEJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAg
ICAgICAoSlNDOjpQb3N0Zml4Tm9kZTo6ZW1pdEJyYWNrZXQpOgorICAgICAgICAoSlNDOjpQcmVm
aXhOb2RlOjplbWl0QnJhY2tldCk6CisgICAgICAgIChKU0M6OkFzc2lnbkJyYWNrZXROb2RlOjpl
bWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgIChKU0M6OkZvckluTm9kZTo6ZW1pdExvb3BIZWFkZXIpOgorICAg
ICAgICAoSlNDOjpGb3JPZk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6Ok9iamVj
dFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NpZ25tZW50RWxlbWVu
dE5vZGU6OmJpbmRWYWx1ZSk6CisKKzIwMTctMDUtMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gRW5hYmxlIHRlc3RhcGkgb24gTWFjIENN
YWtlIGJ1aWxkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzIzNTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDkwMjM2YjkyYjA3YmJmMTliNzRkMDMxM2RiZWJh
NjQ4ZmU4NjBlYzguLmM3ZjQ3ZjAyNzQ1YzBmMTBmYzNkMzVhZTFkM2Q4NTEwNzc3MDkxNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmgKQEAgLTUwNCw2ICs1MDQsMjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICByZXR1cm4gZW1pdE5vZGVJblRhaWxQb3NpdGlvbihudWxscHRyLCBuKTsKICAgICAgICAg
fQogCisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROb2RlRm9yUHJvcGVydHkoUmVnaXN0ZXJJRCog
ZHN0LCBFeHByZXNzaW9uTm9kZSogbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5v
ZGUtPmlzU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RkOjpvcHRpb25hbDx1aW50
MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHN0YXRpY19jYXN0PFN0cmluZ05vZGUqPihub2RlKS0+
dmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbWl0TG9hZChkc3QsIGpzTnVt
YmVyKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBl
bWl0Tm9kZShkc3QsIG5vZGUpOworICAgICAgICB9CisKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dE5vZGVGb3JQcm9wZXJ0eShFeHByZXNzaW9uTm9kZSogbikKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGVtaXROb2RlRm9yUHJvcGVydHkobnVsbHB0ciwgbik7CisgICAgICAgIH0KKwog
ICAgICAgICB2b2lkIGVtaXROb2RlSW5Db25kaXRpb25Db250ZXh0KEV4cHJlc3Npb25Ob2RlKiBu
LCBMYWJlbCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUg
ZmFsbFRocm91Z2hNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIW1f
dm0tPmlzU2FmZVRvUmVjdXJzZSgpKSkgewpAQCAtNTYyLDYgKzU3NiwxNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgICAgIHJldHVybiBlbWl0Tm9kZShuKTsKICAgICAgICAgfQogCisgICAg
ICAgIEFMV0FZU19JTkxJTkUgUmVmUHRyPFJlZ2lzdGVySUQ+IGVtaXROb2RlRm9yTGVmdEhhbmRT
aWRlRm9yUHJvcGVydHkoRXhwcmVzc2lvbk5vZGUqIG4sIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cywgYm9vbCByaWdodElzUHVyZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGxlZnRIYW5k
U2lkZU5lZWRzQ29weShyaWdodEhhc0Fzc2lnbm1lbnRzLCByaWdodElzUHVyZSkpIHsKKyAgICAg
ICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZHN0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAg
ICAgICAgICAgICAgZW1pdE5vZGVGb3JQcm9wZXJ0eShkc3QuZ2V0KCksIG4pOworICAgICAgICAg
ICAgICAgIHJldHVybiBkc3Q7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBl
bWl0Tm9kZUZvclByb3BlcnR5KG4pOworICAgICAgICB9CisKICAgICAgICAgdm9pZCBob2lzdFNs
b3BweU1vZGVGdW5jdGlvbklmTmVjZXNzYXJ5KGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFt
ZSk7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGM1ZDFhMDA4NTA2NjBlY2Y5NDdiZjkwYTQ5
ZjFkMzUwZWEyMzVkODguLmRmMDg5NjYxZTUzNzc5Nzk1M2Q3MjI0NjEwYjcxYmYzZjY2YjAzN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKQEAgLTMyNCw3ICszMjQsNyBAQCBSZWdpc3RlcklEKiBUYWdnZWRUZW1wbGF0ZU5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpcwogICAg
ICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBicmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFj
Y2Vzc29yTm9kZSo+KG1fdGFnKTsKICAgICAgICAgYmFzZSA9IGdlbmVyYXRvci5uZXdUZW1wb3Jh
cnkoKTsKICAgICAgICAgYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShiYXNlLmdldCgpLCBicmFj
a2V0LT5iYXNlKCkpOwotICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5l
cmF0b3IuZW1pdE5vZGUoYnJhY2tldC0+c3Vic2NyaXB0KCkpOworICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JQcm9wZXJ0eShicmFja2V0
LT5zdWJzY3JpcHQoKSk7CiAgICAgICAgIGlmIChicmFja2V0LT5iYXNlKCktPmlzU3VwZXJOb2Rl
KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWUgPSBnZW5lcmF0
b3IuZW5zdXJlVGhpcygpOwogICAgICAgICAgICAgdGFnID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZh
bChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwg
cHJvcGVydHkuZ2V0KCkpOwpAQCAtNjY4LDcgKzY2OCw3IEBAIFJlZ2lzdGVySUQqIEJyYWNrZXRB
Y2Nlc3Nvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpCiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEdldEJ5
SWQoZmluYWxEZXN0LmdldCgpLCBzdXBlckJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgaWQp
OwogICAgICAgICB9IGVsc2UgIHsKLSAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzdWJz
Y3JpcHQgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9zdWJzY3JpcHQpOworICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHN1YnNjcmlwdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvclByb3BlcnR5
KG1fc3Vic2NyaXB0KTsKICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8o
ZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKICAgICAgICAgICAgIGdlbmVyYXRv
ci5lbWl0R2V0QnlWYWwoZmluYWxEZXN0LmdldCgpLCBzdXBlckJhc2UuZ2V0KCksIHRoaXNWYWx1
ZS5nZXQoKSwgc3Vic2NyaXB0LmdldCgpKTsKICAgICAgICAgfQpAQCAtNjg2LDcgKzY4Niw3IEBA
IFJlZ2lzdGVySUQqIEJyYWNrZXRBY2Nlc3Nvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpCiAgICAgICAgIHJldCA9IGdlbmVyYXRvci5lbWl0R2V0
QnlJZChmaW5hbERlc3QuZ2V0KCksIGJhc2UuZ2V0KCksIHN0YXRpY19jYXN0PFN0cmluZ05vZGUq
PihtX3N1YnNjcmlwdCktPnZhbHVlKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFz
ZSwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgbV9zdWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0
b3IpKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGUo
bV9zdWJzY3JpcHQpOworICAgICAgICBSZWdpc3RlcklEKiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5l
bWl0Tm9kZUZvclByb3BlcnR5KG1fc3Vic2NyaXB0KTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRF
eHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgICAg
ICByZXQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGZpbmFsRGVzdC5nZXQoKSwgYmFzZS5nZXQo
KSwgcHJvcGVydHkpOwogICAgIH0KQEAgLTkyOSw3ICs5MjksNyBAQCBSZWdpc3RlcklEKiBCeXRl
Y29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3B1dEJ5VmFsRGlyZWN0KEJ5dGVjb2Rl
R2VuZXJhdAogICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7
CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7
CiAgICAgbm9kZSA9IG5vZGUtPm1fbmV4dDsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXgg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGluZGV4
ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yUHJvcGVydHkobm9kZSk7CiAgICAgbm9kZSA9IG5vZGUt
Pm1fbmV4dDsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5v
ZGUobm9kZSk7CiAKQEAgLTExMzcsNyArMTEzNyw3IEBAIFJlZ2lzdGVySUQqIEZ1bmN0aW9uQ2Fs
bEJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgZnVuY3Rpb24gPSBnZW5lcmF0b3IuZW1pdEdldEJ5
SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBzdGF0aWNfY2Fz
dDxTdHJpbmdOb2RlKj4obV9zdWJzY3JpcHQpLT52YWx1ZSgpKTsKICAgICB9IGVsc2UgewotICAg
ICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9z
dWJzY3JpcHQpOworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0
b3IuZW1pdE5vZGVGb3JQcm9wZXJ0eShtX3N1YnNjcmlwdCk7CiAgICAgICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCksIHN1YmV4cHJlc3Npb25TdGFy
dCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOwogICAgICAgICBpZiAoYmFzZUlzU3VwZXIpCiAgICAg
ICAgICAgICBmdW5jdGlvbiA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBE
ZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCksIHByb3BlcnR5
LmdldCgpKTsKQEAgLTE0NDAsNyArMTQ0MCw3IEBAIFJlZ2lzdGVySUQqIFBvc3RmaXhOb2RlOjpl
bWl0QnJhY2tldChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkCiAg
ICAgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCA9IGJyYWNrZXRBY2Nlc3Nvci0+c3Vic2NyaXB0
KCk7CiAKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZv
ckxlZnRIYW5kU2lkZShiYXNlTm9kZSwgYnJhY2tldEFjY2Vzc29yLT5zdWJzY3JpcHRIYXNBc3Np
Z25tZW50cygpLCBzdWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKLSAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGUoc3Vic2NyaXB0KTsKKyAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JQcm9wZXJ0
eShzdWJzY3JpcHQpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhicmFja2V0
QWNjZXNzb3ItPmRpdm90KCksIGJyYWNrZXRBY2Nlc3Nvci0+ZGl2b3RTdGFydCgpLCBicmFja2V0
QWNjZXNzb3ItPmRpdm90RW5kKCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZTsKQEAg
LTE2NTcsNyArMTY1Nyw3IEBAIFJlZ2lzdGVySUQqIFByZWZpeE5vZGU6OmVtaXRCcmFja2V0KEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzCiAgICAgRXhwcmVzc2lv
bk5vZGUqIHN1YnNjcmlwdCA9IGJyYWNrZXRBY2Nlc3Nvci0+c3Vic2NyaXB0KCk7CiAKICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lk
ZShiYXNlTm9kZSwgYnJhY2tldEFjY2Vzc29yLT5zdWJzY3JpcHRIYXNBc3NpZ25tZW50cygpLCBz
dWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJv
cGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGUoc3Vic2NyaXB0KTsKKyAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JQcm9wZXJ0eShzdWJzY3JpcHQp
OwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wRHN0ID0gZ2VuZXJhdG9yLnRlbXBEZXN0aW5h
dGlvbihkc3QpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhicmFja2V0QWNj
ZXNzb3ItPmRpdm90KCksIGJyYWNrZXRBY2Nlc3Nvci0+ZGl2b3RTdGFydCgpLCBicmFja2V0QWNj
ZXNzb3ItPmRpdm90RW5kKCkpOwpAQCAtMjM4NCw3ICsyMzg0LDcgQEAgUmVnaXN0ZXJJRCogQXNz
aWduRXJyb3JOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXIKIFJlZ2lzdGVySUQqIEFzc2lnbkJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1f
YmFzZSwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyB8fCBtX3JpZ2h0SGFzQXNzaWdubWVudHMs
IG1fc3Vic2NyaXB0LT5pc1B1cmUoZ2VuZXJhdG9yKSAmJiBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJh
dG9yKSk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5ID0gZ2VuZXJhdG9yLmVtaXRO
b2RlRm9yTGVmdEhhbmRTaWRlKG1fc3Vic2NyaXB0LCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1f
cmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVy
dHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGVGb3JQcm9wZXJ0eShtX3N1YnNj
cmlwdCwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7
CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVlID0gZ2VuZXJhdG9yLmRlc3RpbmF0aW9uRm9y
QXNzaWduUmVzdWx0KGRzdCk7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVy
YXRvci5lbWl0Tm9kZSh2YWx1ZS5nZXQoKSwgbV9yaWdodCk7CiAKQEAgLTI0MTQsNyArMjQxNCw3
IEBAIFJlZ2lzdGVySUQqIEFzc2lnbkJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tl
dE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKiBkc3QpCiB7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1p
dE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIHx8
IG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9zdWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpICYm
IG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJv
cGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9zdWJzY3JpcHQsIG1f
cmlnaHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5k
U2lkZUZvclByb3BlcnR5KG1fc3Vic2NyaXB0LCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fcmln
aHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKIAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbklu
Zm8oc3ViZXhwcmVzc2lvbkRpdm90KCksIHN1YmV4cHJlc3Npb25TdGFydCgpLCBzdWJleHByZXNz
aW9uRW5kKCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZTsKQEAgLTI3ODAsNyArMjc4
MCw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TG9vcEhlYWRlcihCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBwcm9wZXJ0CiAgICAgaWYgKG1fbGV4cHItPmlzQnJhY2tl
dEFjY2Vzc29yTm9kZSgpKSB7CiAgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGFzc2lnbk5v
ZGUgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obV9sZXhwcik7CiAgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGFzc2lnbk5vZGUt
PmJhc2UoKSk7Ci0gICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzdWJzY3JpcHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGUoYXNzaWduTm9kZS0+c3Vic2NyaXB0KCkpOworICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gc3Vic2NyaXB0ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yUHJvcGVydHkoYXNzaWdu
Tm9kZS0+c3Vic2NyaXB0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGFzc2lnbk5vZGUtPmRpdm90KCksIGFzc2lnbk5vZGUtPmRpdm90U3RhcnQoKSwgYXNzaWduTm9k
ZS0+ZGl2b3RFbmQoKSk7CiAgICAgICAgIGlmIChhc3NpZ25Ob2RlLT5iYXNlKCktPmlzU3VwZXJO
b2RlKCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWUgPSBnZW5l
cmF0b3IuZW5zdXJlVGhpcygpOwpAQCAtMzAxMSw3ICszMDExLDcgQEAgdm9pZCBGb3JPZk5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCiAgICAgICAgIH0gZWxzZSBpZiAobV9sZXhwci0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkp
IHsKICAgICAgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGFzc2lnbk5vZGUgPSBzdGF0aWNf
Y2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obV9sZXhwcik7CiAgICAgICAgICAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShhc3NpZ25Ob2RlLT5iYXNlKCkp
OwotICAgICAgICAgICAgUmVnaXN0ZXJJRCogc3Vic2NyaXB0ID0gZ2VuZXJhdG9yLmVtaXROb2Rl
KGFzc2lnbk5vZGUtPnN1YnNjcmlwdCgpKTsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQqIHN1YnNj
cmlwdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvclByb3BlcnR5KGFzc2lnbk5vZGUtPnN1YnNjcmlw
dCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9u
SW5mbyhhc3NpZ25Ob2RlLT5kaXZvdCgpLCBhc3NpZ25Ob2RlLT5kaXZvdFN0YXJ0KCksIGFzc2ln
bk5vZGUtPmRpdm90RW5kKCkpOwogICAgICAgICAgICAgaWYgKGFzc2lnbk5vZGUtPmJhc2UoKS0+
aXNTdXBlck5vZGUoKSkgewpAQCAtNDA3MSw3ICs0MDcxLDcgQEAgdm9pZCBPYmplY3RQYXR0ZXJu
Tm9kZTo6YmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IHJocykKICAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKHRlbXAuZ2V0KCks
IHJocywgaW5kZXguZ2V0KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZSA9IGdlbmVyYXRvci5lbWl0
Tm9kZSh0YXJnZXQucHJvcGVydHlFeHByZXNzaW9uKTsKKyAgICAgICAgICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBwcm9wZXJ0eU5hbWUgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JQcm9wZXJ0eSh0YXJn
ZXQucHJvcGVydHlFeHByZXNzaW9uKTsKICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0R2V0QnlW
YWwodGVtcC5nZXQoKSwgcmhzLCBwcm9wZXJ0eU5hbWUuZ2V0KCkpOwogICAgICAgICB9CiAKQEAg
LTQxODAsNyArNDE4MCw3IEBAIHZvaWQgQXNzaWdubWVudEVsZW1lbnROb2RlOjpiaW5kVmFsdWUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCoKICAgICB9IGVsc2UgaWYg
KG1fYXNzaWdubWVudFRhcmdldC0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkpIHsKICAgICAgICAg
QnJhY2tldEFjY2Vzc29yTm9kZSogbGhzID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9k
ZSo+KG1fYXNzaWdubWVudFRhcmdldCk7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNl
ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKGxocy0+YmFzZSgpLCB0cnVlLCBm
YWxzZSk7Ci0gICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5l
bWl0Tm9kZUZvckxlZnRIYW5kU2lkZShsaHMtPnN1YnNjcmlwdCgpLCB0cnVlLCBmYWxzZSk7Cisg
ICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZv
ckxlZnRIYW5kU2lkZUZvclByb3BlcnR5KGxocy0+c3Vic2NyaXB0KCksIHRydWUsIGZhbHNlKTsK
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdEVuZCgpLCBkaXZvdFN0
YXJ0KCksIGRpdm90RW5kKCkpOwogICAgICAgICBpZiAobGhzLT5iYXNlKCktPmlzU3VwZXJOb2Rl
KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWUgPSBnZW5lcmF0
b3IuZW5zdXJlVGhpcygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAyY2I1ODVkM2I2MjA5Yzk5YjFhNzkwYTg0ZGY3NzJhM2U3OGRmYTk4
Li5lYjI2MjAzODc5NTlmMGU5NDY0YTliZGFhMGFiZjRkODU3NzU1NGYyIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDE3LTA1LTE5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtKU0NdIE1ha2UgZ2V0X2J5X3ZhbCAmIHN0cmluZyAiNDk5IiB0byBudW1iZXIgNDk5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyMjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9nZXQtYnktdmFsLXN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChvYmplY3QuNDMpOgorICAgICAgICAoSGVsbG8p
OgorICAgICAgICAoSGVsbG8ucHJvdG90eXBlLmdldCA0Mik6CisgICAgICAgIChIZWxsby5wcm90
b3R5cGUuNDMpOgorICAgICAgICAoRGVyaXZlZCk6CisKIDIwMTctMDUtMTkgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtSZS1sYW5kaW5nXSBERkc6OlNwZWN1bGF0
aXZlSklUOjpwaWNrQ2FuVHJhbXBsZSgpIGlzIHdyb25nbHkgaWdub3JpbmcgcmVzdWx0IHJlZ2lz
dGVycy4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dldC1ieS12YWwtc3RyaW5nLmpzIGIv
SlNUZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC1zdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZjMDg4MWU2
Yzg0OTVhZDEzMzlmODcxY2I4OGNkYzczMjJmMDNkNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2dldC1ieS12YWwtc3RyaW5nLmpzCkBAIC0wLDAgKzEsNzQgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJy
b3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAg
ICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1
ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9y
KSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjog
JHtTdHJpbmcoZXJyb3IpfWApOworfQorCit2YXIgb2JqZWN0ID0ge307CitvYmplY3RbNDJdID0g
NDI7CitvYmplY3RbNDNdID0gZnVuY3Rpb24gdGFnKCkgeyByZXR1cm4gNDI7IH07CisKK3Nob3Vs
ZEJlKG9iamVjdFsnNDMnXWBIZWxsb2AsIDQyKTsKKworCitjbGFzcyBIZWxsbyB7CisgICAgY29u
c3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpc1snNDQnXSA9IDQyOworICAgICAgICBzaG91
bGRCZSh0aGlzWyc0MiddLCA0Mik7CisgICAgICAgIHNob3VsZEJlKHRoaXNbJzQzJ10oKSwgNDIp
OworICAgICAgICBzaG91bGRCZSh0aGlzWyc0NCddLCA0Mik7CisgICAgfQorCisgICAgZ2V0IDQy
KCkKKyAgICB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9CisKKyAgICA0MygpCisgICAgewor
ICAgICAgICByZXR1cm4gNDI7CisgICAgfQorfQorCitjbGFzcyBEZXJpdmVkIGV4dGVuZHMgSGVs
bG8geworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAg
IHNob3VsZEJlKHN1cGVyWyc0MiddLCA0Mik7CisgICAgICAgIHNob3VsZEJlKHN1cGVyWyc0Mydd
KCksIDQyKTsKKyAgICAgICAgc2hvdWxkQmUodGhpc1snNDQnXSsrLCA0Mik7CisgICAgICAgIHNo
b3VsZEJlKCsrdGhpc1snNDQnXSwgNDQpOworICAgIH0KK30KKwordmFyIGRlcml2ZWQgPSBuZXcg
RGVyaXZlZCgpOworCit2YXIgdGVzdCA9IHsgNDI6ICcnIH07CisKK2ZvciAodGVzdFsnNDInXSBp
biB7IGE6ICdhJyB9KQorICAgIHNob3VsZEJlKHRlc3RbJzQyJ10sICdhJyk7CitzaG91bGRCZSh0
ZXN0Wyc0MiddLCAnYScpOworCitmb3IgKHRlc3RbJzQyJ10gb2YgWyAnYicgXSkKKyAgICBzaG91
bGRCZSh0ZXN0Wyc0MiddLCAnYicpOworc2hvdWxkQmUodGVzdFsnNDInXSwgJ2InKTsKKworewor
ICAgIGxldCB7ICc0Mic6IGEgfSA9IHsgJzQyJzogJzQyJyB9OworICAgIHNob3VsZEJlKGEsICc0
MicpOworfQo=
</data>
<flag name="review"
          id="331826"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>