<?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>83554</bug_id>
          
          <creation_ts>2012-04-10 01:18:53 -0700</creation_ts>
          <short_desc>DFG should flush SetLocals to arguments</short_desc>
          <delta_ts>2012-04-10 17:37:43 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>599088</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-10 01:18:53 -0700</bug_when>
    <thetext>This is necessary to match baseline JIT argument capture behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599090</commentid>
    <comment_count>1</comment_count>
      <attachid>136412</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-10 01:23:51 -0700</bug_when>
    <thetext>Created attachment 136412
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599291</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-10 08:30:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/11215848&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599719</commentid>
    <comment_count>3</comment_count>
      <attachid>136557</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-10 15:27:28 -0700</bug_when>
    <thetext>Created attachment 136557
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599729</commentid>
    <comment_count>4</comment_count>
      <attachid>136557</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-10 15:36:19 -0700</bug_when>
    <thetext>Comment on attachment 136557
the patch

Attachment 136557 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12380546</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599741</commentid>
    <comment_count>5</comment_count>
      <attachid>136559</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-10 15:46:38 -0700</bug_when>
    <thetext>Created attachment 136559
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599768</commentid>
    <comment_count>6</comment_count>
      <attachid>136559</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-04-10 16:15:35 -0700</bug_when>
    <thetext>Comment on attachment 136559
the patch

ArgumentPosition isn&apos;t a position, so I&apos;d suggest a different name, but since I don&apos;t have a better one, R+ either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599841</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-10 17:37:43 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/113796</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136412</attachid>
            <date>2012-04-10 01:23:51 -0700</date>
            <delta_ts>2012-04-10 15:27:28 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>flushargs_patch_1.diff</filename>
            <type>text/plain</type>
            <size>7502</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzNjk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDEyLTA0LTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBmbHVzaCBTZXRMb2NhbHMgdG8gYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzU1NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBuZWNlc3Nhcnkg
dG8gbWF0Y2ggYmFzZWxpbmUgSklUIGFyZ3VtZW50IGNhcHR1cmUgYmVoYXZpb3IuCisgICAgICAg
IAorICAgICAgICBBbHNvIGZpeGVkIGFuIGFtdXNpbmcgYnVnIGluIHRoZSBoYW5kbGluZyBvZiBP
U1Igb24gU2V0TG9jYWxzIGlmIHRoZXJlCisgICAgICAgIHdhcyBhbnkgaW5zZXJ0aW9uL2RlbGV0
aW9uIG9mIG5vZGVzIGluIHRoZSBiYXNpYyBibG9jay4gVGhpcyBpcyBiZW5pZ24KKyAgICAgICAg
Zm9yIG5vdyBidXQgd29uJ3QgYmUgZXZlbnR1YWxseSBzaW5jZSB0aGUgREZHIGlzIGdldHRpbmcg
c21hcnRlci4gU28KKyAgICAgICAgYmV0dGVyIGZpeCBpdCBub3cuCisgICAgICAgIAorICAgICAg
ICBBbHNvIGZpeGVkIGFuIGFtdXNpbmcgYnVnIGluIHRoZSBoYW5kbGluZyBvZiBTUiBvbiBTZXRM
b2NhbHMgaWYgdGhleQorICAgICAgICBhcmUgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBGbHVz
aC4gSSB0aGluayB0aGlzIGJ1ZyBtaWdodCBoYXZlIGFsd2F5cworICAgICAgICBiZWVuIHRoZXJl
IGJ1dCBub3cgaXQnbGwgaGFwcGVuIG1vcmUgY29tbW9ubHksIGFuZCBpdCdzIGNvdmVyZWQgYnkg
dGhlCisgICAgICAgIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cy4KKworICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OnNldExvY2FsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6c2V0QXJndW1l
bnQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKwogMjAxMi0wNC0wOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBh
cHBsZS5jb20+CiAKICAgICAgICAgSWYgYSBjYWxsYmFjayBjb25zdHJ1Y3RvciByZXR1cm5zIGEg
QysrIG51bGwsIHRocm93IGEgdHlwZSBlcnJvci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMTM2MzIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjM4LDcgKzIzOCwyNiBAQCBwcml2YXRlOgogICAgICAgICBWYXJpYWJsZUFjY2Vz
c0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9IG5ld1ZhcmlhYmxlQWNjZXNzRGF0YShvcGVyYW5k
KTsKICAgICAgICAgTm9kZUluZGV4IG5vZGVJbmRleCA9IGFkZFRvR3JhcGgoU2V0TG9jYWwsIE9w
SW5mbyh2YXJpYWJsZUFjY2Vzc0RhdGEpLCB2YWx1ZSk7CiAgICAgICAgIG1fY3VycmVudEJsb2Nr
LT52YXJpYWJsZXNBdFRhaWwubG9jYWwob3BlcmFuZCkgPSBub2RlSW5kZXg7Ci0gICAgICAgIGlm
IChtX2dyYXBoLmxvY2FsSXNDYXB0dXJlZChvcGVyYW5kKSkKKyAgICAgICAgCisgICAgICAgIGJv
b2wgc2hvdWxkRmx1c2ggPSBtX2dyYXBoLmxvY2FsSXNDYXB0dXJlZChvcGVyYW5kKTsKKyAgICAg
ICAgCisgICAgICAgIGlmICghc2hvdWxkRmx1c2gpIHsKKyAgICAgICAgICAgIC8vIElmIHRoaXMg
aXMgaW4gYXJndW1lbnQgcG9zaXRpb24sIHRoZW4gaXQgc2hvdWxkIGJlIGZsdXNoZWQuCisgICAg
ICAgICAgICBmb3IgKElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gbV9pbmxpbmVT
dGFja1RvcC0+bV9pbmxpbmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgIGlubGluZUNhbGxG
cmFtZTsKKyAgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lID0gaW5saW5lQ2FsbEZyYW1l
LT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1lKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRpY19j
YXN0PGludD4ob3BlcmFuZCkgPj0gaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAtIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4ob3BlcmFuZCkgPT0gaW5s
aW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0
KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChv
cGVyYW5kIDwgaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAtIFJlZ2lzdGVyRmlsZTo6Q2Fs
bEZyYW1lSGVhZGVyU2l6ZSAtIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgc2hvdWxkRmx1c2gg
PSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBpZiAoc2hvdWxkRmx1c2gpCiAgICAgICAgICAgICBhZGRUb0dy
YXBoKEZsdXNoLCBPcEluZm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgbm9kZUluZGV4KTsKICAgICB9
CiAKQEAgLTMxMSw4ICszMzAsOCBAQCBwcml2YXRlOgogICAgICAgICBWYXJpYWJsZUFjY2Vzc0Rh
dGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9IG5ld1ZhcmlhYmxlQWNjZXNzRGF0YShvcGVyYW5kKTsK
ICAgICAgICAgTm9kZUluZGV4IG5vZGVJbmRleCA9IGFkZFRvR3JhcGgoU2V0TG9jYWwsIE9wSW5m
byh2YXJpYWJsZUFjY2Vzc0RhdGEpLCB2YWx1ZSk7CiAgICAgICAgIG1fY3VycmVudEJsb2NrLT52
YXJpYWJsZXNBdFRhaWwuYXJndW1lbnQoYXJndW1lbnQpID0gbm9kZUluZGV4OwotICAgICAgICBp
ZiAobV9ncmFwaC5hcmd1bWVudElzQ2FwdHVyZWQoYXJndW1lbnQpKQotICAgICAgICAgICAgYWRk
VG9HcmFwaChGbHVzaCwgT3BJbmZvKHZhcmlhYmxlQWNjZXNzRGF0YSksIG5vZGVJbmRleCk7Cisg
ICAgICAgIC8vIEFsd2F5cyBmbHVzaCBhcmd1bWVudHMuCisgICAgICAgIGFkZFRvR3JhcGgoRmx1
c2gsIE9wSW5mbyh2YXJpYWJsZUFjY2Vzc0RhdGEpLCBub2RlSW5kZXgpOwogICAgIH0KICAgICAK
ICAgICB2b2lkIGZsdXNoQXJndW1lbnQoaW50IG9wZXJhbmQpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlz
aW9uIDExMzYzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4ODYsOSArMTg4NiwzMCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIC8vIFNldExvY2FsIGFu
ZCB3aGF0ZXZlciBvdGhlciBERkcgTm9kZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZQog
ICAgICAgICAvLyBieXRlY29kZSBpbmRleCBhcyB0aGUgU2V0TG9jYWwuCiAgICAgICAgIEFTU0VS
VChtX2NvZGVPcmlnaW5Gb3JPU1IgPT0gbm9kZS5jb2RlT3JpZ2luKTsKLSAgICAgICAgTm9kZSYg
bmV4dE5vZGUgPSBhdChtX2NvbXBpbGVJbmRleCArIDEpOwotICAgICAgICAKLSAgICAgICAgbV9j
b2RlT3JpZ2luRm9yT1NSID0gbmV4dE5vZGUuY29kZU9yaWdpbjsKKyAgICAgICAgTm9kZSogbmV4
dE5vZGUgPSAmYXQoYmxvY2soKS0+YXQobV9pbmRleEluQmxvY2sgKyAxKSk7CisKKyAgICAgICAg
Ly8gQnV0IGV2ZW4gbW9yZSBvZGRseSwgd2UgbmVlZCB0byBiZSBzdXBlciBjYXJlZnVsIGFib3V0
IHRoZSBmb2xsb3dpbmcKKyAgICAgICAgLy8gc2VxdWVuY2U6CisgICAgICAgIC8vCisgICAgICAg
IC8vIGE6IEZvbygpCisgICAgICAgIC8vIGI6IFNldExvY2FsKEBhKQorICAgICAgICAvLyBjOiBG
bHVzaChAYikKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGhpcyBuZXh0IHBpZWNlIG9mIGNyYXp5
IHRha2VzIGNhcmUgb2YgdGhpcy4KKyAgICAgICAgaWYgKG5leHROb2RlLT5vcCgpID09IEZsdXNo
ICYmIG5leHROb2RlLT5jaGlsZDEoKSA9PSBtX2NvbXBpbGVJbmRleCkKKyAgICAgICAgICAgIG5l
eHROb2RlID0gJmF0KGJsb2NrKCktPmF0KG1faW5kZXhJbkJsb2NrICsgMikpOworICAgICAgICAK
KyAgICAgICAgLy8gT2RkbHksIGl0J3MgcG9zc2libGUgZm9yIHRoZSBieXRlY29kZSBpbmRleCBm
b3IgdGhlIG5leHQgbm9kZSB0byBiZQorICAgICAgICAvLyBlcXVhbCB0byBvdXJzLiBUaGlzIHdp
bGwgaGFwcGVuIGZvciBvcF9wb3N0X2luYy4gQW5kLCBldmVuIG1vcmUgb2RkbHksCisgICAgICAg
IC8vIHRoaXMgaXMganVzdCBmaW5lLiBPcmRpbmFyaWx5LCB0aGlzIHdvdWxkbid0IGJlIGZpbmUs
IHNpbmNlIGlmIHRoZQorICAgICAgICAvLyBuZXh0IG5vZGUgZmFpbGVkIE9TUiB0aGVuIHdlJ2Qg
YmUgT1NSLWluZyB3aXRoIHRoaXMgU2V0TG9jYWwncyBsb2NhbAorICAgICAgICAvLyB2YXJpYWJs
ZSBhbHJlYWR5IHNldCBldmVuIHRob3VnaCBmcm9tIHRoZSBzdGFuZHBvaW50IG9mIHRoZSBvbGQg
SklULAorICAgICAgICAvLyB0aGlzIFNldExvY2FsIHNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4g
QnV0IGZvciBvcF9wb3N0X2luYywgaXQncyBqdXN0CisgICAgICAgIC8vIGZpbmUsIGJlY2F1c2Ug
dGhpcyBTZXRMb2NhbCdzIGxvY2FsIChpLmUuIHRoZSBMSFMgaW4gYSB4ID0geSsrCisgICAgICAg
IC8vIHN0YXRlbWVudCkgd291bGQgYmUgZGVhZCBhbnl3YXkgLSBzbyB0aGUgZmFjdCB0aGF0IERG
RyB3b3VsZCBoYXZlCisgICAgICAgIC8vIGFscmVhZHkgbWFkZSB0aGUgYXNzaWdubWVudCwgYW5k
IGJha2VkIGl0IGludG8gdGhlIHJlZ2lzdGVyIGZpbGUgZHVyaW5nCisgICAgICAgIC8vIE9TUiBl
eGl0LCB3b3VsZCBub3QgYmUgdmlzaWJsZSB0byB0aGUgb2xkIEpJVCBpbiBhbnkgd2F5LgorICAg
ICAgICBtX2NvZGVPcmlnaW5Gb3JPU1IgPSBuZXh0Tm9kZS0+Y29kZU9yaWdpbjsKICAgICAgICAg
CiAgICAgICAgIGlmICghbV9qaXQuZ3JhcGgoKS5pc0NhcHR1cmVkKG5vZGUubG9jYWwoKSkpIHsK
ICAgICAgICAgICAgIGlmIChub2RlLnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5zaG91bGRVc2VEb3Vi
bGVGb3JtYXQoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxMTM2MzIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTY2LDcgKzE5NjYsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2Rl
KQogICAgICAgICAvLyBTZXRMb2NhbCBhbmQgd2hhdGV2ZXIgb3RoZXIgREZHIE5vZGVzIGFyZSBh
c3NvY2lhdGVkIHdpdGggdGhlIHNhbWUKICAgICAgICAgLy8gYnl0ZWNvZGUgaW5kZXggYXMgdGhl
IFNldExvY2FsLgogICAgICAgICBBU1NFUlQobV9jb2RlT3JpZ2luRm9yT1NSID09IG5vZGUuY29k
ZU9yaWdpbik7Ci0gICAgICAgIE5vZGUmIG5leHROb2RlID0gYXQobV9jb21waWxlSW5kZXggKyAx
KTsKKyAgICAgICAgTm9kZSogbmV4dE5vZGUgPSAmYXQoYmxvY2soKS0+YXQobV9pbmRleEluQmxv
Y2sgKyAxKSk7CisKKyAgICAgICAgLy8gQnV0IGV2ZW4gbW9yZSBvZGRseSwgd2UgbmVlZCB0byBi
ZSBzdXBlciBjYXJlZnVsIGFib3V0IHRoZSBmb2xsb3dpbmcKKyAgICAgICAgLy8gc2VxdWVuY2U6
CisgICAgICAgIC8vCisgICAgICAgIC8vIGE6IEZvbygpCisgICAgICAgIC8vIGI6IFNldExvY2Fs
KEBhKQorICAgICAgICAvLyBjOiBGbHVzaChAYikKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGhp
cyBuZXh0IHBpZWNlIG9mIGNyYXp5IHRha2VzIGNhcmUgb2YgdGhpcy4KKyAgICAgICAgaWYgKG5l
eHROb2RlLT5vcCgpID09IEZsdXNoICYmIG5leHROb2RlLT5jaGlsZDEoKSA9PSBtX2NvbXBpbGVJ
bmRleCkKKyAgICAgICAgICAgIG5leHROb2RlID0gJmF0KGJsb2NrKCktPmF0KG1faW5kZXhJbkJs
b2NrICsgMikpOwogICAgICAgICAKICAgICAgICAgLy8gT2RkbHksIGl0J3MgcG9zc2libGUgZm9y
IHRoZSBieXRlY29kZSBpbmRleCBmb3IgdGhlIG5leHQgbm9kZSB0byBiZQogICAgICAgICAvLyBl
cXVhbCB0byBvdXJzLiBUaGlzIHdpbGwgaGFwcGVuIGZvciBvcF9wb3N0X2luYy4gQW5kLCBldmVu
IG1vcmUgb2RkbHksCkBAIC0xOTc4LDcgKzE5ODksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIC8vIHN0YXRlbWVudCkgd291bGQgYmUgZGVhZCBh
bnl3YXkgLSBzbyB0aGUgZmFjdCB0aGF0IERGRyB3b3VsZCBoYXZlCiAgICAgICAgIC8vIGFscmVh
ZHkgbWFkZSB0aGUgYXNzaWdubWVudCwgYW5kIGJha2VkIGl0IGludG8gdGhlIHJlZ2lzdGVyIGZp
bGUgZHVyaW5nCiAgICAgICAgIC8vIE9TUiBleGl0LCB3b3VsZCBub3QgYmUgdmlzaWJsZSB0byB0
aGUgb2xkIEpJVCBpbiBhbnkgd2F5LgotICAgICAgICBtX2NvZGVPcmlnaW5Gb3JPU1IgPSBuZXh0
Tm9kZS5jb2RlT3JpZ2luOworICAgICAgICBtX2NvZGVPcmlnaW5Gb3JPU1IgPSBuZXh0Tm9kZS0+
Y29kZU9yaWdpbjsKICAgICAgICAgCiAgICAgICAgIGlmICghbV9qaXQuZ3JhcGgoKS5pc0NhcHR1
cmVkKG5vZGUubG9jYWwoKSkpIHsKICAgICAgICAgICAgIGlmIChub2RlLnZhcmlhYmxlQWNjZXNz
RGF0YSgpLT5zaG91bGRVc2VEb3VibGVGb3JtYXQoKSkgewo=
</data>
<flag name="review"
          id="141201"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136557</attachid>
            <date>2012-04-10 15:27:28 -0700</date>
            <delta_ts>2012-04-10 15:46:38 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>flushargs_patch_2.diff</filename>
            <type>text/plain</type>
            <size>32028</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzNzc0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBA
CisyMDEyLTA0LTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBmbHVzaCBTZXRMb2NhbHMgdG8gYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzU1NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBuZWNlc3Nhcnkg
dG8gbWF0Y2ggYmFzZWxpbmUgSklUIGFyZ3VtZW50IGNhcHR1cmUgYmVoYXZpb3IuCisgICAgICAg
IAorICAgICAgICBCdXQgdG8gbWFrZSB0aGlzIHdvcmsgcmlnaHQgd2UgbmVlZCB0byBoYXZlIGEg
c3RvcnkgZm9yIGFyZ3VtZW50cyBpbnRvCisgICAgICAgIHdoaWNoIHdlIHN0b3JlIHZhbHVlcyBv
ZiBkaWZmZXJlbnQgZm9ybWF0cy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZQorICAgICAgICBu
b3Rpb24gb2YgYW4gQXJndW1lbnRQb3NpdGlvbiAtIGkuZS4gYW4gYXJndW1lbnQgaW4gYSBwYXJ0
aWN1bGFyIGlubGluZQorICAgICAgICBjYWxsIGZyYW1lIC0gYW5kIGZvcmNlcyB1bmlmaWNhdGlv
biBvZiBhbGwgZGF0YSBwZXJ0aW5lbnQgdG8gc2VsZWN0aW5nCisgICAgICAgIHRoZSBhcmd1bWVu
dCdzIGRhdGEgZm9ybWF0LgorICAgICAgICAKKyAgICAgICAgQWxzbyBmaXhlZCBhbiBhbXVzaW5n
IGJ1ZyBpbiB0aGUgaGFuZGxpbmcgb2YgT1NSIG9uIFNldExvY2FscyBpZiB0aGVyZQorICAgICAg
ICB3YXMgYW55IGluc2VydGlvbi9kZWxldGlvbiBvZiBub2RlcyBpbiB0aGUgYmFzaWMgYmxvY2su
IFRoaXMgaXMgYmVuaWduCisgICAgICAgIGZvciBub3cgYnV0IHdvbid0IGJlIGV2ZW50dWFsbHkg
c2luY2UgdGhlIERGRyBpcyBnZXR0aW5nIHNtYXJ0ZXIuIFNvCisgICAgICAgIGJldHRlciBmaXgg
aXQgbm93LgorICAgICAgICAKKyAgICAgICAgQWxzbyBmaXhlZCBhbiBhbXVzaW5nIGJ1ZyBpbiB0
aGUgaGFuZGxpbmcgb2YgT1NSIG9uIFNldExvY2FscyBpZiB0aGV5CisgICAgICAgIGFyZSBpbW1l
ZGlhdGVseSBmb2xsb3dlZCBieSBhIEZsdXNoLiBJIHRoaW5rIHRoaXMgYnVnIG1pZ2h0IGhhdmUg
YWx3YXlzCisgICAgICAgIGJlZW4gdGhlcmUgYnV0IG5vdyBpdCdsbCBoYXBwZW4gbW9yZSBjb21t
b25seSwgYW5kIGl0J3MgY292ZXJlZCBieSB0aGUKKyAgICAgICAgcnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR0FyZ3VtZW50
UG9zaXRpb24uaDogQWRkZWQuCisgICAgICAgIChERkcpOgorICAgICAgICAoQXJndW1lbnRQb3Np
dGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6QXJndW1lbnRQb3NpdGlvbjo6QXJndW1lbnRQb3Np
dGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6QXJndW1lbnRQb3NpdGlvbjo6YWRkVmFyaWFibGUp
OgorICAgICAgICAoSlNDOjpERkc6OkFyZ3VtZW50UG9zaXRpb246Om1lcmdlQXJndW1lbnRBd2Fy
ZW5lc3MpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnNldExvY2FsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6c2V0QXJndW1lbnQpOgorICAgICAgICAoSW5saW5lU3RhY2tFbnRyeSk6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6Oklu
bGluZVN0YWNrRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oOiBB
ZGRlZC4KKyAgICAgICAgKERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6bWVyZ2VEb3VibGVGb3Jt
YXRTdGF0ZXMpOgorICAgICAgICAoSlNDOjpERkc6Om1lcmdlRG91YmxlRm9ybWF0U3RhdGUpOgor
ICAgICAgICAoSlNDOjpERkc6OmRvdWJsZUZvcm1hdFN0YXRlVG9TdHJpbmcpOgorICAgICAgICAq
IGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAoR3JhcGgpOgorICAgICAgICAqIGRmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2U6OmRvUm91bmRPZkRvdWJsZVZvdGluZyk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJs
ZUFjY2Vzc0RhdGE6OlZhcmlhYmxlQWNjZXNzRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6VmFy
aWFibGVBY2Nlc3NEYXRhOjpwcmVkaWN0KToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFj
Y2Vzc0RhdGE6OmFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKToKKyAgICAgICAgKFZhcmlhYmxlQWNj
ZXNzRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVBY2Nlc3NEYXRhOjptZXJnZUFy
Z3VtZW50QXdhcmVQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFjY2Vz
c0RhdGE6OmRvdWJsZUZvcm1hdFN0YXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFj
Y2Vzc0RhdGE6OnNob3VsZFVzZURvdWJsZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFy
aWFibGVBY2Nlc3NEYXRhOjp0YWxseVZvdGVzRm9yU2hvdWxkVXNlRG91YmxlRm9ybWF0KToKKyAg
ICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFjY2Vzc0RhdGE6Om1lcmdlRG91YmxlRm9ybWF0U3Rh
dGUpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlQWNjZXNzRGF0YTo6bWFrZVByZWRpY3Rp
b25Gb3JEb3VibGVGb3JtYXQpOgorCiAyMDEyLTA0LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIGRhdGEgbWVtYmVyIGZyb20gTGV4ZXIg
Y2xhc3MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMTM2MzIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOCBAQAogCQkwRjBCODNCOTE0
QkNGOTVGMDA4ODVCNEYgLyogQ2FsbFJldHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMEI4M0I4MTRCQ0Y5
NUIwMDg4NUI0RiAvKiBDYWxsUmV0dXJuT2Zmc2V0VG9CeXRlY29kZU9mZnNldC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMEZDNDVBMTRCRDE1
RjUwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0IC8qIExMSW50
Q2FsbExpbmtJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEYxNUYxNUYxNEI3QTczRTAwNURFMzdEIC8qIENvbW1vblNsb3dQYXRocy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNUYxNUQxNEI3
QTczQTAwNURFMzdEIC8qIENvbW1vblNsb3dQYXRocy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMUUzQTQ2MTUzNENCQUYwMDBGOTQ1NiAvKiBE
RkdBcmd1bWVudFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjFFM0E0MzE1MzRDQkFEMDAwRjk0NTYgLyogREZHQXJndW1lbnRQb3NpdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
MUUzQTQ3MTUzNENCQjkwMDBGOTQ1NiAvKiBERkdEb3VibGVGb3JtYXRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxRTNBNDQxNTM0Q0JBRDAw
MEY5NDU2IC8qIERGR0RvdWJsZUZvcm1hdFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyMUMyNjgxNEJFNUY2ODAwQURDNjRCIC8qIEpJ
VERyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyMUMyNjYxNEJFNUY1RTAwQURDNjRCIC8qIEpJVERyaXZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMjFDMjdDMTRCRTcyNzYwMEFEQzY0
QiAvKiBFeGVjdXRpb25IYXJuZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjIxQzI3QTE0QkU3MjczMDBBREM2NEIgLyogRXhlY3V0aW9uSGFybmVz
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
MjFDMjdEMTRCRTcyN0EwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIxQzI3OTE0QkU3Mjcz
MDBBREM2NEIgLyogQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03NDcsNiArNzQ5LDggQEAKIAkJMEYwQjgz
QjgxNEJDRjk1QjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxSZXR1cm5PZmZzZXRUb0J5dGVj
b2RlT2Zmc2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMEZDNDU4MTRCRDE1
RjEwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMTEludENhbGxMaW5rSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjE1RjE1RDE0QjdBNzNBMDA1REUzN0QgLyogQ29tbW9uU2xvd1BhdGhzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1vblNsb3dQYXRocy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjFFM0E0MzE1MzRDQkFEMDAwRjk0NTYgLyogREZHQXJndW1l
bnRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcmd1bWVu
dFBvc2l0aW9uLmg7IHBhdGggPSBkZmcvREZHQXJndW1lbnRQb3NpdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjFFM0E0NDE1MzRDQkFEMDAwRjk0NTYgLyogREZHRG91Ymxl
Rm9ybWF0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRG91Ymxl
Rm9ybWF0U3RhdGUuaDsgcGF0aCA9IGRmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIxQzI2NjE0QkU1RjVFMDBBREM2NEIgLyogSklURHJp
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVERyaXZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIxQzI3OTE0QkU3MjczMDBBREM2NEIgLyogQ29k
ZVNwZWNpYWxpemF0aW9uS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MjFDMjdBMTRCRTcyNzMwMEFEQzY0QiAvKiBFeGVjdXRpb25IYXJuZXNzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkhhcm5lc3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwMjMsNiArMjAyNyw3IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJC
MkFENyAvKiBkZmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTBGMUUzQTQzMTUzNENCQUQwMDBGOTQ1NiAvKiBERkdBcmd1bWVudFBvc2l0aW9uLmggKi8s
CiAJCQkJMEY2MjAxNkQxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICov
LAogCQkJCTBGNjIwMTZFMTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFN0YXRlLmggKi8s
CiAJCQkJMEY2MjAxNkYxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCAqLywK
QEAgLTIwNDIsNiArMjA0Nyw3IEBACiAJCQkJMEZDMDk3N0UxNDY5RUJDNDAwQ0YyNDQyIC8qIERG
R0NvbW1vbi5oICovLAogCQkJCTBGQzA5NzlEMTQ2QjI3MUUwMENGMjQ0MiAvKiBERkdDb3JyZWN0
YWJsZUp1bXBQb2ludC5jcHAgKi8sCiAJCQkJMEZDMDk3OUExNDZBNzcyMDAwQ0YyNDQyIC8qIERG
R0NvcnJlY3RhYmxlSnVtcFBvaW50LmggKi8sCisJCQkJMEYxRTNBNDQxNTM0Q0JBRDAwMEY5NDU2
IC8qIERGR0RvdWJsZUZvcm1hdFN0YXRlLmggKi8sCiAJCQkJMEZEM0M4MjAxNDExNUNGODAwRkQ4
MUNCIC8qIERGR0RyaXZlci5jcHAgKi8sCiAJCQkJMEZEM0M4MjIxNDExNUQwRTAwRkQ4MUNCIC8q
IERGR0RyaXZlci5oICovLAogCQkJCTg2QUU2QzRCMTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJ
bmZvLmggKi8sCkBAIC0yNTY2LDYgKzI1NzIsOCBAQAogCQkJCTBGMkJEQzIxMTUxRTgwM0IwMENE
ODkxMCAvKiBERkdJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzJDMTUx
RkRFOTEwMENEODkxMCAvKiBPcGVyYW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYxMkU0Q0Qx
NTIzODlFQzAwQzgzNkJFIC8qIE1hdGNoUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjFF
M0E0NjE1MzRDQkFGMDAwRjk0NTYgLyogREZHQXJndW1lbnRQb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEYxRTNBNDcxNTM0Q0JCOTAwMEY5NDU2IC8qIERGR0RvdWJsZUZvcm1hdFN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcg
KzI1Myw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBQcmVkaWN0ZWRUeXBl
IHByZWRpY3RlZFR5cGUgPSBub2RlLnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5wcmVkaWN0aW9uKCk7
CisgICAgICAgIFByZWRpY3RlZFR5cGUgcHJlZGljdGVkVHlwZSA9IG5vZGUudmFyaWFibGVBY2Nl
c3NEYXRhKCktPmFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCk7CiAgICAgICAgIGlmIChpc0ludDMy
UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkKICAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGls
ZDEoKSkuZmlsdGVyKFByZWRpY3RJbnQzMik7CiAgICAgICAgIGVsc2UgaWYgKGlzQXJyYXlQcmVk
aWN0aW9uKHByZWRpY3RlZFR5cGUpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcmd1bWVudFBvc2l0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcmd1bWVudFBvc2l0aW9uLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50UG9zaXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIERGR0FyZ3VtZW50UG9zaXRpb25faAorI2RlZmluZSBERkdBcmd1bWVudFBvc2l0aW9u
X2gKKworI2luY2x1ZGUgIkRGR0RvdWJsZUZvcm1hdFN0YXRlLmgiCisjaW5jbHVkZSAiREZHVmFy
aWFibGVBY2Nlc3NEYXRhLmgiCisjaW5jbHVkZSAiUHJlZGljdGVkVHlwZS5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEFyZ3VtZW50UG9zaXRpb24geworcHVi
bGljOgorICAgIEFyZ3VtZW50UG9zaXRpb24oKQorICAgICAgICA6IG1fcHJlZGljdGlvbihQcmVk
aWN0Tm9uZSkKKyAgICAgICAgLCBtX2RvdWJsZUZvcm1hdFN0YXRlKEVtcHR5RG91YmxlRm9ybWF0
U3RhdGUpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZFZhcmlhYmxlKFZhcmlhYmxl
QWNjZXNzRGF0YSogdmFyaWFibGUpCisgICAgeworICAgICAgICBtX3ZhcmlhYmxlcy5hcHBlbmQo
dmFyaWFibGUpOworICAgIH0KKyAgICAKKyAgICBib29sIG1lcmdlQXJndW1lbnRBd2FyZW5lc3Mo
KQorICAgIHsKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX3ZhcmlhYmxlcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24obV9wcmVkaWN0aW9uLCBtX3ZhcmlhYmxlc1tpXS0+
YXJndW1lbnRBd2FyZVByZWRpY3Rpb24oKSk7CisgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
RG91YmxlRm9ybWF0U3RhdGUobV9kb3VibGVGb3JtYXRTdGF0ZSwgbV92YXJpYWJsZXNbaV0tPmRv
dWJsZUZvcm1hdFN0YXRlKCkpOworICAgICAgICB9CisgICAgICAgIGlmICghY2hhbmdlZCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2hhbmdlZCA9IGZhbHNlOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV92YXJpYWJsZXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbV92YXJpYWJsZXNbaV0tPm1lcmdlQXJndW1lbnRBd2FyZVBy
ZWRpY3Rpb24obV9wcmVkaWN0aW9uKTsKKyAgICAgICAgICAgIGNoYW5nZWQgfD0gbV92YXJpYWJs
ZXNbaV0tPm1lcmdlRG91YmxlRm9ybWF0U3RhdGUobV9kb3VibGVGb3JtYXRTdGF0ZSk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGNoYW5nZWQ7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAg
ICBQcmVkaWN0ZWRUeXBlIG1fcHJlZGljdGlvbjsKKyAgICBEb3VibGVGb3JtYXRTdGF0ZSBtX2Rv
dWJsZUZvcm1hdFN0YXRlOworICAgIAorICAgIFZlY3RvcjxWYXJpYWJsZUFjY2Vzc0RhdGEqLCAy
PiBtX3ZhcmlhYmxlczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlm
IC8vIERGR0FyZ3VtZW50UG9zaXRpb25faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTEzNjMyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzOCw3ICsyMzgsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgVmFyaWFibGVBY2Nlc3NE
YXRhKiB2YXJpYWJsZUFjY2Vzc0RhdGEgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEob3BlcmFuZCk7
CiAgICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRUb0dyYXBoKFNldExvY2FsLCBPcElu
Zm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgdmFsdWUpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+
dmFyaWFibGVzQXRUYWlsLmxvY2FsKG9wZXJhbmQpID0gbm9kZUluZGV4OwotICAgICAgICBpZiAo
bV9ncmFwaC5sb2NhbElzQ2FwdHVyZWQob3BlcmFuZCkpCisgICAgICAgIAorICAgICAgICBib29s
IHNob3VsZEZsdXNoID0gbV9ncmFwaC5sb2NhbElzQ2FwdHVyZWQob3BlcmFuZCk7CisgICAgICAg
IAorICAgICAgICBpZiAoIXNob3VsZEZsdXNoKSB7CisgICAgICAgICAgICAvLyBJZiB0aGlzIGlz
IGluIGFyZ3VtZW50IHBvc2l0aW9uLCB0aGVuIGl0IHNob3VsZCBiZSBmbHVzaGVkLgorICAgICAg
ICAgICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBzdGFjayA9IG1faW5saW5lU3RhY2tUb3A7IDsg
c3RhY2sgPSBzdGFjay0+bV9jYWxsZXIpIHsKKyAgICAgICAgICAgICAgICBJbmxpbmVDYWxsRnJh
bWUqIGlubGluZUNhbGxGcmFtZSA9IHN0YWNrLT5tX2lubGluZUNhbGxGcmFtZTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4ob3BlcmFuZCkgPj0gaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKHN0
YXRpY19jYXN0PGludD4ob3BlcmFuZCkgPT0gaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChvcGVyYW5kIDwgaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGlubGluZUNh
bGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gb3BlcmFuZFRvQXJndW1lbnQob3BlcmFu
ZCAtIGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQpOworICAgICAgICAgICAgICAgIHN0YWNr
LT5tX2FyZ3VtZW50UG9zaXRpb25zW2FyZ3VtZW50XS0+YWRkVmFyaWFibGUodmFyaWFibGVBY2Nl
c3NEYXRhKTsKKyAgICAgICAgICAgICAgICBzaG91bGRGbHVzaCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGlmIChzaG91bGRGbHVzaCkKICAgICAgICAgICAgIGFkZFRvR3JhcGgoRmx1c2gsIE9wSW5mbyh2
YXJpYWJsZUFjY2Vzc0RhdGEpLCBub2RlSW5kZXgpOwogICAgIH0KIApAQCAtMzA5LDEwICszMzEs
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUKGFyZ3VtZW50IDwgbV9udW1Bcmd1bWVudHMp
OwogICAgICAgICAKICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZUFjY2Vzc0Rh
dGEgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEob3BlcmFuZCk7CisgICAgICAgIElubGluZVN0YWNr
RW50cnkqIHN0YWNrID0gbV9pbmxpbmVTdGFja1RvcDsKKyAgICAgICAgd2hpbGUgKHN0YWNrLT5t
X2lubGluZUNhbGxGcmFtZSkgLy8gZmluZCB0aGUgbWFjaGluZSBzdGFjayBlbnRyeS4KKyAgICAg
ICAgICAgIHN0YWNrID0gc3RhY2stPm1fY2FsbGVyOworICAgICAgICBzdGFjay0+bV9hcmd1bWVu
dFBvc2l0aW9uc1thcmd1bWVudF0tPmFkZFZhcmlhYmxlKHZhcmlhYmxlQWNjZXNzRGF0YSk7CiAg
ICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRUb0dyYXBoKFNldExvY2FsLCBPcEluZm8o
dmFyaWFibGVBY2Nlc3NEYXRhKSwgdmFsdWUpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+dmFy
aWFibGVzQXRUYWlsLmFyZ3VtZW50KGFyZ3VtZW50KSA9IG5vZGVJbmRleDsKLSAgICAgICAgaWYg
KG1fZ3JhcGguYXJndW1lbnRJc0NhcHR1cmVkKGFyZ3VtZW50KSkKLSAgICAgICAgICAgIGFkZFRv
R3JhcGgoRmx1c2gsIE9wSW5mbyh2YXJpYWJsZUFjY2Vzc0RhdGEpLCBub2RlSW5kZXgpOworICAg
ICAgICAvLyBBbHdheXMgZmx1c2ggYXJndW1lbnRzLgorICAgICAgICBhZGRUb0dyYXBoKEZsdXNo
LCBPcEluZm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgbm9kZUluZGV4KTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBmbHVzaEFyZ3VtZW50KGludCBvcGVyYW5kKQpAQCAtOTMyLDYgKzk1OCw5IEBAIHBy
aXZhdGU6CiAgICAgICAgIC8vIERpZCB3ZSBoYXZlIGFueSBlYXJseSByZXR1cm5zPwogICAgICAg
ICBib29sIG1fZGlkRWFybHlSZXR1cm47CiAgICAgICAgIAorICAgICAgICAvLyBQb2ludGVycyB0
byB0aGUgYXJndW1lbnQgcG9zaXRpb24gdHJhY2tlcnMgZm9yIHRoaXMgc2xpY2Ugb2YgY29kZS4K
KyAgICAgICAgVmVjdG9yPEFyZ3VtZW50UG9zaXRpb24qPiBtX2FyZ3VtZW50UG9zaXRpb25zOwor
ICAgICAgICAKICAgICAgICAgSW5saW5lU3RhY2tFbnRyeSogbV9jYWxsZXI7CiAgICAgICAgIAog
ICAgICAgICBJbmxpbmVTdGFja0VudHJ5KEJ5dGVDb2RlUGFyc2VyKiwgQ29kZUJsb2NrKiwgQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBCbG9ja0luZGV4IGNhbGxzaXRlQmxvY2tIZWFkLCBWaXJ0
dWFsUmVnaXN0ZXIgY2FsbGVlVlIsIEpTRnVuY3Rpb24qIGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVy
IHJldHVyblZhbHVlVlIsIFZpcnR1YWxSZWdpc3RlciBpbmxpbmVDYWxsRnJhbWVTdGFydCwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCk7CkBAIC0yNTgwLDYgKzI2MDksMTMgQEAgQnl0ZUNvZGVQYXJz
ZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZQogICAgICwgbV9kaWRFYXJseVJldHVybihmYWxz
ZSkKICAgICAsIG1fY2FsbGVyKGJ5dGVDb2RlUGFyc2VyLT5tX2lubGluZVN0YWNrVG9wKQogewor
ICAgIG1fYXJndW1lbnRQb3NpdGlvbnMucmVzaXplKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsgaS0t
OykgeworICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9ncmFwaC5tX2FyZ3VtZW50UG9zaXRpb25z
LmFwcGVuZChBcmd1bWVudFBvc2l0aW9uKCkpOworICAgICAgICBBcmd1bWVudFBvc2l0aW9uKiBh
cmd1bWVudFBvc2l0aW9uID0gJmJ5dGVDb2RlUGFyc2VyLT5tX2dyYXBoLm1fYXJndW1lbnRQb3Np
dGlvbnMubGFzdCgpOworICAgICAgICBtX2FyZ3VtZW50UG9zaXRpb25zW2ldID0gYXJndW1lbnRQ
b3NpdGlvbjsKKyAgICB9CisgICAgICAgIAogICAgIGlmIChtX2NhbGxlcikgewogICAgICAgICAv
LyBJbmxpbmUgY2FzZS4KICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayAhPSBieXRlQ29kZVBhcnNl
ci0+bV9jb2RlQmxvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb3Vi
bGVGb3JtYXRTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG91YmxlRm9ybWF0U3RhdGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG91YmxlRm9ybWF0U3RhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIERGR0RvdWJsZUZvcm1hdFN0YXRlX2gKKyNkZWZpbmUgREZHRG91YmxlRm9ybWF0U3RhdGVf
aAorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2VudW0gRG91YmxlRm9ybWF0
U3RhdGUgeworICAgIEVtcHR5RG91YmxlRm9ybWF0U3RhdGUsIC8vIGJvdHRvbQorICAgIFVzaW5n
RG91YmxlRm9ybWF0LAorICAgIE5vdFVzaW5nRG91YmxlRm9ybWF0LAorICAgIENhbnRVc2VEb3Vi
bGVGb3JtYXQgLy8gdG9wCit9OworCitpbmxpbmUgRG91YmxlRm9ybWF0U3RhdGUgbWVyZ2VEb3Vi
bGVGb3JtYXRTdGF0ZXMoRG91YmxlRm9ybWF0U3RhdGUgYSwgRG91YmxlRm9ybWF0U3RhdGUgYikK
K3sKKyAgICBzd2l0Y2ggKGEpIHsKKyAgICBjYXNlIEVtcHR5RG91YmxlRm9ybWF0U3RhdGU6Cisg
ICAgICAgIHJldHVybiBiOworICAgIGNhc2UgVXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgIHN3
aXRjaCAoYikgeworICAgICAgICBjYXNlIEVtcHR5RG91YmxlRm9ybWF0U3RhdGU6CisgICAgICAg
IGNhc2UgVXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgICAgICByZXR1cm4gVXNpbmdEb3VibGVG
b3JtYXQ7CisgICAgICAgIGNhc2UgTm90VXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgIGNhc2Ug
Q2FudFVzZURvdWJsZUZvcm1hdDoKKyAgICAgICAgICAgIHJldHVybiBDYW50VXNlRG91YmxlRm9y
bWF0OworICAgICAgICB9CisgICAgY2FzZSBOb3RVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAg
c3dpdGNoIChiKSB7CisgICAgICAgIGNhc2UgRW1wdHlEb3VibGVGb3JtYXRTdGF0ZToKKyAgICAg
ICAgY2FzZSBOb3RVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAgICAgIHJldHVybiBOb3RVc2lu
Z0RvdWJsZUZvcm1hdDsKKyAgICAgICAgY2FzZSBVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAg
Y2FzZSBDYW50VXNlRG91YmxlRm9ybWF0OgorICAgICAgICAgICAgcmV0dXJuIENhbnRVc2VEb3Vi
bGVGb3JtYXQ7CisgICAgICAgIH0KKyAgICBjYXNlIENhbnRVc2VEb3VibGVGb3JtYXQ6CisgICAg
ICAgIHJldHVybiBDYW50VXNlRG91YmxlRm9ybWF0OworICAgIH0KK30KKworaW5saW5lIGJvb2wg
bWVyZ2VEb3VibGVGb3JtYXRTdGF0ZShEb3VibGVGb3JtYXRTdGF0ZSYgZGVzdCwgRG91YmxlRm9y
bWF0U3RhdGUgc3JjKQoreworICAgIERvdWJsZUZvcm1hdFN0YXRlIG5ld1N0YXRlID0gbWVyZ2VE
b3VibGVGb3JtYXRTdGF0ZXMoZGVzdCwgc3JjKTsKKyAgICBpZiAobmV3U3RhdGUgPT0gZGVzdCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGRlc3QgPSBuZXdTdGF0ZTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIGRvdWJsZUZvcm1hdFN0YXRlVG9TdHJpbmco
RG91YmxlRm9ybWF0U3RhdGUgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNh
c2UgRW1wdHlEb3VibGVGb3JtYXRTdGF0ZToKKyAgICAgICAgcmV0dXJuICJFbXB0eSI7CisgICAg
Y2FzZSBVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAgcmV0dXJuICJEb3VibGVGb3JtYXQiOwor
ICAgIGNhc2UgTm90VXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgIHJldHVybiAiVmFsdWVGb3Jt
YXQiOworICAgIGNhc2UgQ2FudFVzZURvdWJsZUZvcm1hdDoKKyAgICAgICAgcmV0dXJuICJGb3Jj
ZVZhbHVlIjsKKyAgICB9Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlm
IC8vIERGR0RvdWJsZUZvcm1hdFN0YXRlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaAkocmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxF
KERGR19KSVQpCiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJERkdBcmd1bWVu
dFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiREZHQXNzZW1ibHlIZWxwZXJzLmgiCiAjaW5jbHVkZSAi
REZHQmFzaWNCbG9jay5oIgogI2luY2x1ZGUgIkRGR05vZGUuaCIKQEAgLTM1Niw2ICszNTcsNyBA
QCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlc29sdmVHbG9iYWxEYXRhPiBtX3Jlc29sdmVHbG9iYWxE
YXRhOwogICAgIFZlY3RvcjxOb2RlSW5kZXgsIDg+IG1fYXJndW1lbnRzOwogICAgIFNlZ21lbnRl
ZFZlY3RvcjxWYXJpYWJsZUFjY2Vzc0RhdGEsIDE2PiBtX3ZhcmlhYmxlQWNjZXNzRGF0YTsKKyAg
ICBTZWdtZW50ZWRWZWN0b3I8QXJndW1lbnRQb3NpdGlvbiwgOD4gbV9hcmd1bWVudFBvc2l0aW9u
czsKICAgICBTZWdtZW50ZWRWZWN0b3I8U3RydWN0dXJlU2V0LCAxNj4gbV9zdHJ1Y3R1cmVTZXQ7
CiAgICAgU2VnbWVudGVkVmVjdG9yPFN0cnVjdHVyZVRyYW5zaXRpb25EYXRhLCA4PiBtX3N0cnVj
dHVyZVRyYW5zaXRpb25EYXRhOwogICAgIEJpdFZlY3RvciBtX3ByZXNlcnZlZFZhcnM7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc5OSwxMiArNzk5LDI1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ3JhcGgubV92YXJpYWJs
ZUFjY2Vzc0RhdGEuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0
YSogdmFyaWFibGVBY2Nlc3NEYXRhID0gbV9ncmFwaC5tX3ZhcmlhYmxlQWNjZXNzRGF0YVtpXS5m
aW5kKCk7CisgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0
YSA9ICZtX2dyYXBoLm1fdmFyaWFibGVBY2Nlc3NEYXRhW2ldOworICAgICAgICAgICAgaWYgKCF2
YXJpYWJsZUFjY2Vzc0RhdGEtPmlzUm9vdCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KHZhcmlhYmxlQWNjZXNzRGF0YS0+bG9j
YWwoKSkKICAgICAgICAgICAgICAgICB8fCBtX2dyYXBoLmlzQ2FwdHVyZWQodmFyaWFibGVBY2Nl
c3NEYXRhLT5sb2NhbCgpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IG1fY2hhbmdlZCB8PSB2YXJpYWJsZUFjY2Vzc0RhdGEtPnRhbGx5Vm90ZXNGb3JTaG91bGRVc2VE
b3VibGVGb3JtYXQoKTsKICAgICAgICAgfQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9ncmFwaC5tX2FyZ3VtZW50UG9zaXRpb25zLnNpemUoKTsgKytpKQorICAgICAgICAgICAg
bV9jaGFuZ2VkIHw9IG1fZ3JhcGgubV9hcmd1bWVudFBvc2l0aW9uc1tpXS5tZXJnZUFyZ3VtZW50
QXdhcmVuZXNzKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2dyYXBoLm1f
dmFyaWFibGVBY2Nlc3NEYXRhLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBWYXJpYWJsZUFj
Y2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9ICZtX2dyYXBoLm1fdmFyaWFibGVBY2Nlc3NE
YXRhW2ldOworICAgICAgICAgICAgaWYgKCF2YXJpYWJsZUFjY2Vzc0RhdGEtPmlzUm9vdCgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3Vt
ZW50KHZhcmlhYmxlQWNjZXNzRGF0YS0+bG9jYWwoKSkKKyAgICAgICAgICAgICAgICB8fCBtX2dy
YXBoLmlzQ2FwdHVyZWQodmFyaWFibGVBY2Nlc3NEYXRhLT5sb2NhbCgpKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIG1fY2hhbmdlZCB8PSB2YXJpYWJsZUFjY2Vzc0Rh
dGEtPm1ha2VQcmVkaWN0aW9uRm9yRG91YmxlRm9ybWF0KCk7CisgICAgICAgIH0KICAgICB9CiAg
ICAgCiAgICAgTm9kZUluZGV4IG1fY29tcGlsZUluZGV4OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lv
biAxMTM2MzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODg2LDkgKzE4ODYsMzAgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAvLyBTZXRMb2NhbCBhbmQg
d2hhdGV2ZXIgb3RoZXIgREZHIE5vZGVzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUKICAg
ICAgICAgLy8gYnl0ZWNvZGUgaW5kZXggYXMgdGhlIFNldExvY2FsLgogICAgICAgICBBU1NFUlQo
bV9jb2RlT3JpZ2luRm9yT1NSID09IG5vZGUuY29kZU9yaWdpbik7Ci0gICAgICAgIE5vZGUmIG5l
eHROb2RlID0gYXQobV9jb21waWxlSW5kZXggKyAxKTsKLSAgICAgICAgCi0gICAgICAgIG1fY29k
ZU9yaWdpbkZvck9TUiA9IG5leHROb2RlLmNvZGVPcmlnaW47CisgICAgICAgIE5vZGUqIG5leHRO
b2RlID0gJmF0KGJsb2NrKCktPmF0KG1faW5kZXhJbkJsb2NrICsgMSkpOworCisgICAgICAgIC8v
IEJ1dCBldmVuIG1vcmUgb2RkbHksIHdlIG5lZWQgdG8gYmUgc3VwZXIgY2FyZWZ1bCBhYm91dCB0
aGUgZm9sbG93aW5nCisgICAgICAgIC8vIHNlcXVlbmNlOgorICAgICAgICAvLworICAgICAgICAv
LyBhOiBGb28oKQorICAgICAgICAvLyBiOiBTZXRMb2NhbChAYSkKKyAgICAgICAgLy8gYzogRmx1
c2goQGIpCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoaXMgbmV4dCBwaWVjZSBvZiBjcmF6eSB0
YWtlcyBjYXJlIG9mIHRoaXMuCisgICAgICAgIGlmIChuZXh0Tm9kZS0+b3AoKSA9PSBGbHVzaCAm
JiBuZXh0Tm9kZS0+Y2hpbGQxKCkgPT0gbV9jb21waWxlSW5kZXgpCisgICAgICAgICAgICBuZXh0
Tm9kZSA9ICZhdChibG9jaygpLT5hdChtX2luZGV4SW5CbG9jayArIDIpKTsKKyAgICAgICAgCisg
ICAgICAgIC8vIE9kZGx5LCBpdCdzIHBvc3NpYmxlIGZvciB0aGUgYnl0ZWNvZGUgaW5kZXggZm9y
IHRoZSBuZXh0IG5vZGUgdG8gYmUKKyAgICAgICAgLy8gZXF1YWwgdG8gb3Vycy4gVGhpcyB3aWxs
IGhhcHBlbiBmb3Igb3BfcG9zdF9pbmMuIEFuZCwgZXZlbiBtb3JlIG9kZGx5LAorICAgICAgICAv
LyB0aGlzIGlzIGp1c3QgZmluZS4gT3JkaW5hcmlseSwgdGhpcyB3b3VsZG4ndCBiZSBmaW5lLCBz
aW5jZSBpZiB0aGUKKyAgICAgICAgLy8gbmV4dCBub2RlIGZhaWxlZCBPU1IgdGhlbiB3ZSdkIGJl
IE9TUi1pbmcgd2l0aCB0aGlzIFNldExvY2FsJ3MgbG9jYWwKKyAgICAgICAgLy8gdmFyaWFibGUg
YWxyZWFkeSBzZXQgZXZlbiB0aG91Z2ggZnJvbSB0aGUgc3RhbmRwb2ludCBvZiB0aGUgb2xkIEpJ
VCwKKyAgICAgICAgLy8gdGhpcyBTZXRMb2NhbCBzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIEJ1
dCBmb3Igb3BfcG9zdF9pbmMsIGl0J3MganVzdAorICAgICAgICAvLyBmaW5lLCBiZWNhdXNlIHRo
aXMgU2V0TG9jYWwncyBsb2NhbCAoaS5lLiB0aGUgTEhTIGluIGEgeCA9IHkrKworICAgICAgICAv
LyBzdGF0ZW1lbnQpIHdvdWxkIGJlIGRlYWQgYW55d2F5IC0gc28gdGhlIGZhY3QgdGhhdCBERkcg
d291bGQgaGF2ZQorICAgICAgICAvLyBhbHJlYWR5IG1hZGUgdGhlIGFzc2lnbm1lbnQsIGFuZCBi
YWtlZCBpdCBpbnRvIHRoZSByZWdpc3RlciBmaWxlIGR1cmluZworICAgICAgICAvLyBPU1IgZXhp
dCwgd291bGQgbm90IGJlIHZpc2libGUgdG8gdGhlIG9sZCBKSVQgaW4gYW55IHdheS4KKyAgICAg
ICAgbV9jb2RlT3JpZ2luRm9yT1NSID0gbmV4dE5vZGUtPmNvZGVPcmlnaW47CiAgICAgICAgIAog
ICAgICAgICBpZiAoIW1faml0LmdyYXBoKCkuaXNDYXB0dXJlZChub2RlLmxvY2FsKCkpKSB7CiAg
ICAgICAgICAgICBpZiAobm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+c2hvdWxkVXNlRG91Ymxl
Rm9ybWF0KCkpIHsKQEAgLTE5MDEsNyArMTkyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgICAgICB2YWx1ZVNvdXJjZVJlZmVyZW5jZUZv
ck9wZXJhbmQobm9kZS5sb2NhbCgpKSA9IFZhbHVlU291cmNlKERvdWJsZUluUmVnaXN0ZXJGaWxl
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFBy
ZWRpY3RlZFR5cGUgcHJlZGljdGVkVHlwZSA9IG5vZGUudmFyaWFibGVBY2Nlc3NEYXRhKCktPnBy
ZWRpY3Rpb24oKTsKKyAgICAgICAgICAgIFByZWRpY3RlZFR5cGUgcHJlZGljdGVkVHlwZSA9IG5v
ZGUudmFyaWFibGVBY2Nlc3NEYXRhKCktPmFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCk7CiAgICAg
ICAgICAgICBpZiAobV9nZW5lcmF0aW9uSW5mb1thdChub2RlLmNoaWxkMSgpKS52aXJ0dWFsUmVn
aXN0ZXIoKV0ucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlKSB7CiAgICAgICAg
ICAgICAgICAgRG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAg
ICAgICAgICAgICBtX2ppdC5zdG9yZURvdWJsZSh2YWx1ZS5mcHIoKSwgSklUQ29tcGlsZXI6OmFk
ZHJlc3NGb3Iobm9kZS5sb2NhbCgpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDExMzYzMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE5NjYsNyArMTk2NiwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUmIG5vZGUpCiAgICAgICAgIC8vIFNldExvY2FsIGFuZCB3aGF0ZXZlciBvdGhlciBERkcg
Tm9kZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZQogICAgICAgICAvLyBieXRlY29kZSBp
bmRleCBhcyB0aGUgU2V0TG9jYWwuCiAgICAgICAgIEFTU0VSVChtX2NvZGVPcmlnaW5Gb3JPU1Ig
PT0gbm9kZS5jb2RlT3JpZ2luKTsKLSAgICAgICAgTm9kZSYgbmV4dE5vZGUgPSBhdChtX2NvbXBp
bGVJbmRleCArIDEpOworICAgICAgICBOb2RlKiBuZXh0Tm9kZSA9ICZhdChibG9jaygpLT5hdCht
X2luZGV4SW5CbG9jayArIDEpKTsKKworICAgICAgICAvLyBCdXQgZXZlbiBtb3JlIG9kZGx5LCB3
ZSBuZWVkIHRvIGJlIHN1cGVyIGNhcmVmdWwgYWJvdXQgdGhlIGZvbGxvd2luZworICAgICAgICAv
LyBzZXF1ZW5jZToKKyAgICAgICAgLy8KKyAgICAgICAgLy8gYTogRm9vKCkKKyAgICAgICAgLy8g
YjogU2V0TG9jYWwoQGEpCisgICAgICAgIC8vIGM6IEZsdXNoKEBiKQorICAgICAgICAvLworICAg
ICAgICAvLyBUaGlzIG5leHQgcGllY2Ugb2YgY3JhenkgdGFrZXMgY2FyZSBvZiB0aGlzLgorICAg
ICAgICBpZiAobmV4dE5vZGUtPm9wKCkgPT0gRmx1c2ggJiYgbmV4dE5vZGUtPmNoaWxkMSgpID09
IG1fY29tcGlsZUluZGV4KQorICAgICAgICAgICAgbmV4dE5vZGUgPSAmYXQoYmxvY2soKS0+YXQo
bV9pbmRleEluQmxvY2sgKyAyKSk7CiAgICAgICAgIAogICAgICAgICAvLyBPZGRseSwgaXQncyBw
b3NzaWJsZSBmb3IgdGhlIGJ5dGVjb2RlIGluZGV4IGZvciB0aGUgbmV4dCBub2RlIHRvIGJlCiAg
ICAgICAgIC8vIGVxdWFsIHRvIG91cnMuIFRoaXMgd2lsbCBoYXBwZW4gZm9yIG9wX3Bvc3RfaW5j
LiBBbmQsIGV2ZW4gbW9yZSBvZGRseSwKQEAgLTE5NzgsNyArMTk4OSw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgLy8gc3RhdGVtZW50KSB3b3Vs
ZCBiZSBkZWFkIGFueXdheSAtIHNvIHRoZSBmYWN0IHRoYXQgREZHIHdvdWxkIGhhdmUKICAgICAg
ICAgLy8gYWxyZWFkeSBtYWRlIHRoZSBhc3NpZ25tZW50LCBhbmQgYmFrZWQgaXQgaW50byB0aGUg
cmVnaXN0ZXIgZmlsZSBkdXJpbmcKICAgICAgICAgLy8gT1NSIGV4aXQsIHdvdWxkIG5vdCBiZSB2
aXNpYmxlIHRvIHRoZSBvbGQgSklUIGluIGFueSB3YXkuCi0gICAgICAgIG1fY29kZU9yaWdpbkZv
ck9TUiA9IG5leHROb2RlLmNvZGVPcmlnaW47CisgICAgICAgIG1fY29kZU9yaWdpbkZvck9TUiA9
IG5leHROb2RlLT5jb2RlT3JpZ2luOwogICAgICAgICAKICAgICAgICAgaWYgKCFtX2ppdC5ncmFw
aCgpLmlzQ2FwdHVyZWQobm9kZS5sb2NhbCgpKSkgewogICAgICAgICAgICAgaWYgKG5vZGUudmFy
aWFibGVBY2Nlc3NEYXRhKCktPnNob3VsZFVzZURvdWJsZUZvcm1hdCgpKSB7CkBAIC0xOTkyLDcg
KzIwMDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIAotICAgICAgICAgICAg
UHJlZGljdGVkVHlwZSBwcmVkaWN0ZWRUeXBlID0gbm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+
cHJlZGljdGlvbigpOworICAgICAgICAgICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0ZWRUeXBlID0g
bm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+YXJndW1lbnRBd2FyZVByZWRpY3Rpb24oKTsKICAg
ICAgICAgICAgIGlmIChpc0ludDMyUHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkgewogICAgICAg
ICAgICAgICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQx
KCkpOwogICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUuZ3ByKCksIEpJVENvbXBp
bGVyOjpwYXlsb2FkRm9yKG5vZGUubG9jYWwoKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCShyZXZpc2lvbiAxMTM2MzIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiwxMiArMjYsMTQgQEAKICNpZm5kZWYgREZHVmFyaWFibGVBY2Nlc3NE
YXRhX2gKICNkZWZpbmUgREZHVmFyaWFibGVBY2Nlc3NEYXRhX2gKIAorI2luY2x1ZGUgIkRGR0Rv
dWJsZUZvcm1hdFN0YXRlLmgiCiAjaW5jbHVkZSAiREZHTm9kZUZsYWdzLmgiCiAjaW5jbHVkZSAi
T3BlcmFuZHMuaCIKICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgiCiAjaW5jbHVkZSAiVmlydHVh
bFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aW9uRmluZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewogCkBAIC00Miw4ICs0NCw5IEBAIHB1YmxpYzoKICAgICBWYXJpYWJsZUFj
Y2Vzc0RhdGEoKQogICAgICAgICA6IG1fbG9jYWwoc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVy
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpKSkKICAgICAgICAgLCBtX3ByZWRpY3Rp
b24oUHJlZGljdE5vbmUpCisgICAgICAgICwgbV9hcmd1bWVudEF3YXJlUHJlZGljdGlvbihQcmVk
aWN0Tm9uZSkKICAgICAgICAgLCBtX2ZsYWdzKDApCi0gICAgICAgICwgbV9zaG91bGRVc2VEb3Vi
bGVGb3JtYXQoZmFsc2UpCisgICAgICAgICwgbV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0eURvdWJs
ZUZvcm1hdFN0YXRlKQogICAgIHsKICAgICAgICAgY2xlYXJWb3RlcygpOwogICAgIH0KQEAgLTUx
LDggKzU0LDkgQEAgcHVibGljOgogICAgIFZhcmlhYmxlQWNjZXNzRGF0YShWaXJ0dWFsUmVnaXN0
ZXIgbG9jYWwpCiAgICAgICAgIDogbV9sb2NhbChsb2NhbCkKICAgICAgICAgLCBtX3ByZWRpY3Rp
b24oUHJlZGljdE5vbmUpCisgICAgICAgICwgbV9hcmd1bWVudEF3YXJlUHJlZGljdGlvbihQcmVk
aWN0Tm9uZSkKICAgICAgICAgLCBtX2ZsYWdzKDApCi0gICAgICAgICwgbV9zaG91bGRVc2VEb3Vi
bGVGb3JtYXQoZmFsc2UpCisgICAgICAgICwgbV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0eURvdWJs
ZUZvcm1hdFN0YXRlKQogICAgIHsKICAgICAgICAgY2xlYXJWb3RlcygpOwogICAgIH0KQEAgLTcw
LDcgKzc0LDExIEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIHByZWRpY3QoUHJlZGljdGVkVHlw
ZSBwcmVkaWN0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1lcmdlUHJlZGljdGlvbihmaW5k
KCktPm1fcHJlZGljdGlvbiwgcHJlZGljdGlvbik7CisgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0
YSogc2VsZiA9IGZpbmQoKTsKKyAgICAgICAgYm9vbCByZXN1bHQgPSBtZXJnZVByZWRpY3Rpb24o
c2VsZi0+bV9wcmVkaWN0aW9uLCBwcmVkaWN0aW9uKTsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAg
ICAgICAgICAgIG1lcmdlUHJlZGljdGlvbihtX2FyZ3VtZW50QXdhcmVQcmVkaWN0aW9uLCBtX3By
ZWRpY3Rpb24pOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKICAgICBQcmVk
aWN0ZWRUeXBlIG5vblVuaWZpZWRQcmVkaWN0aW9uKCkKQEAgLTgzLDYgKzkxLDE2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGZpbmQoKS0+bV9wcmVkaWN0aW9uOwogICAgIH0KICAgICAKKyAg
ICBQcmVkaWN0ZWRUeXBlIGFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBmaW5kKCktPm1fYXJndW1lbnRBd2FyZVByZWRpY3Rpb247CisgICAgfQorICAgIAor
ICAgIGJvb2wgbWVyZ2VBcmd1bWVudEF3YXJlUHJlZGljdGlvbihQcmVkaWN0ZWRUeXBlIHByZWRp
Y3Rpb24pCisgICAgeworICAgICAgICByZXR1cm4gbWVyZ2VQcmVkaWN0aW9uKGZpbmQoKS0+bV9h
cmd1bWVudEF3YXJlUHJlZGljdGlvbiwgcHJlZGljdGlvbik7CisgICAgfQorICAgIAogICAgIHZv
aWQgY2xlYXJWb3RlcygpCiAgICAgewogICAgICAgICBBU1NFUlQoZmluZCgpID09IHRoaXMpOwpA
QCAtMTMyLDE1ICsxNTAsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogICAgIAorICAgIERvdWJsZUZvcm1hdFN0YXRlIGRvdWJsZUZvcm1hdFN0YXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBmaW5kKCktPm1fZG91YmxlRm9ybWF0U3RhdGU7CisgICAgfQorICAg
IAogICAgIGJvb2wgc2hvdWxkVXNlRG91YmxlRm9ybWF0KCkKICAgICB7Ci0gICAgICAgIEFTU0VS
VChmaW5kKCkgPT0gdGhpcyk7Ci0gICAgICAgIHJldHVybiBtX3Nob3VsZFVzZURvdWJsZUZvcm1h
dDsKKyAgICAgICAgQVNTRVJUKGlzUm9vdCgpKTsKKyAgICAgICAgcmV0dXJuIG1fZG91YmxlRm9y
bWF0U3RhdGUgPT0gVXNpbmdEb3VibGVGb3JtYXQ7CiAgICAgfQogICAgIAogICAgIGJvb2wgdGFs
bHlWb3Rlc0ZvclNob3VsZFVzZURvdWJsZUZvcm1hdCgpCiAgICAgewotICAgICAgICBBU1NFUlQo
ZmluZCgpID09IHRoaXMpOworICAgICAgICBBU1NFUlQoaXNSb290KCkpOworICAgICAgICAKKyAg
ICAgICAgaWYgKG1fZG91YmxlRm9ybWF0U3RhdGUgPT0gQ2FudFVzZURvdWJsZUZvcm1hdCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgbmV3VmFsdWVP
ZlNob3VsZFVzZURvdWJsZUZvcm1hdCA9IHNob3VsZFVzZURvdWJsZUZvcm1hdEFjY29yZGluZ1Rv
Vm90ZSgpOwogICAgICAgICBpZiAoIW5ld1ZhbHVlT2ZTaG91bGRVc2VEb3VibGVGb3JtYXQpIHsK
QEAgLTE0OSwxMiArMTc1LDI1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKG1fc2hvdWxkVXNlRG91YmxlRm9ybWF0
KQorICAgICAgICBpZiAobV9kb3VibGVGb3JtYXRTdGF0ZSA9PSBVc2luZ0RvdWJsZUZvcm1hdCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIG1fc2hvdWxkVXNl
RG91YmxlRm9ybWF0ID0gdHJ1ZTsKLSAgICAgICAgbWVyZ2VQcmVkaWN0aW9uKG1fcHJlZGljdGlv
biwgUHJlZGljdERvdWJsZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4g
REZHOjptZXJnZURvdWJsZUZvcm1hdFN0YXRlKG1fZG91YmxlRm9ybWF0U3RhdGUsIFVzaW5nRG91
YmxlRm9ybWF0KTsKKyAgICB9CisgICAgCisgICAgYm9vbCBtZXJnZURvdWJsZUZvcm1hdFN0YXRl
KERvdWJsZUZvcm1hdFN0YXRlIGRvdWJsZUZvcm1hdFN0YXRlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIERGRzo6bWVyZ2VEb3VibGVGb3JtYXRTdGF0ZShmaW5kKCktPm1fZG91YmxlRm9ybWF0U3Rh
dGUsIGRvdWJsZUZvcm1hdFN0YXRlKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYWtlUHJlZGlj
dGlvbkZvckRvdWJsZUZvcm1hdCgpCisgICAgeworICAgICAgICBBU1NFUlQoaXNSb290KCkpOwor
ICAgICAgICAKKyAgICAgICAgaWYgKG1fZG91YmxlRm9ybWF0U3RhdGUgIT0gVXNpbmdEb3VibGVG
b3JtYXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICByZXR1
cm4gbWVyZ2VQcmVkaWN0aW9uKG1fcHJlZGljdGlvbiwgUHJlZGljdERvdWJsZSk7CiAgICAgfQog
ICAgIAogICAgIE5vZGVGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KQEAg
LTE3NiwxMCArMjE1LDExIEBAIHByaXZhdGU6CiAKICAgICBWaXJ0dWFsUmVnaXN0ZXIgbV9sb2Nh
bDsKICAgICBQcmVkaWN0ZWRUeXBlIG1fcHJlZGljdGlvbjsKKyAgICBQcmVkaWN0ZWRUeXBlIG1f
YXJndW1lbnRBd2FyZVByZWRpY3Rpb247CiAgICAgTm9kZUZsYWdzIG1fZmxhZ3M7CiAgICAgCiAg
ICAgZmxvYXQgbV92b3Rlc1syXTsKLSAgICBib29sIG1fc2hvdWxkVXNlRG91YmxlRm9ybWF0Owor
ICAgIERvdWJsZUZvcm1hdFN0YXRlIG1fZG91YmxlRm9ybWF0U3RhdGU7CiB9OwogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzNzc3KQorKysgU291cmNlL1dU
Ri9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNC0xMCAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIERGRyBzaG91bGQgZmx1
c2ggU2V0TG9jYWxzIHRvIGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIGFuIGlzUm9vdCgpIG1ldGhvZCB0aGF0IGlz
IGEgZmFzdGVyIHNob3J0aGFuZCBmb3Igc2F5aW5nCisgICAgICAgIGZpbmQoKSA9PSB0aGlzLgor
CisgICAgICAgICogd3RmL1VuaW9uRmluZC5oOgorICAgICAgICAoV1RGOjpVbmlvbkZpbmQ6Omlz
Um9vdCk6CisgICAgICAgIChVbmlvbkZpbmQpOgorCiAyMDEyLTA0LTEwICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDTWFrZV0gRW5hYmxlIFVTRV9G
T0xERVJTIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9VbmlvbkZpbmQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9VbmlvbkZpbmQuaAkocmV2aXNpb24gMTEzNjMyKQorKysg
U291cmNlL1dURi93dGYvVW5pb25GaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDEz
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAorICAgIGJvb2wgaXNSb290KCkgY29uc3QK
KyAgICB7CisgICAgICAgIGJvb2wgcmVzdWx0ID0gIW1fcGFyZW50OworICAgICAgICBBU1NFUlQo
cmVzdWx0ID09IChjb25zdF9jYXN0PFVuaW9uRmluZDxUPio+KHRoaXMpLT5maW5kKCkgPT0gdGhp
cykpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKICAgICBUKiBmaW5kKCkK
ICAgICB7CiAgICAgICAgIFQqIHJlc3VsdCA9IHN0YXRpY19jYXN0PFQqPih0aGlzKTsK
</data>
<flag name="commit-queue"
          id="141388"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136559</attachid>
            <date>2012-04-10 15:46:38 -0700</date>
            <delta_ts>2012-04-10 16:15:34 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>flushargs_patch_3.diff</filename>
            <type>text/plain</type>
            <size>32130</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzNzc0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBA
CisyMDEyLTA0LTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBmbHVzaCBTZXRMb2NhbHMgdG8gYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzU1NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBuZWNlc3Nhcnkg
dG8gbWF0Y2ggYmFzZWxpbmUgSklUIGFyZ3VtZW50IGNhcHR1cmUgYmVoYXZpb3IuCisgICAgICAg
IAorICAgICAgICBCdXQgdG8gbWFrZSB0aGlzIHdvcmsgcmlnaHQgd2UgbmVlZCB0byBoYXZlIGEg
c3RvcnkgZm9yIGFyZ3VtZW50cyBpbnRvCisgICAgICAgIHdoaWNoIHdlIHN0b3JlIHZhbHVlcyBv
ZiBkaWZmZXJlbnQgZm9ybWF0cy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZQorICAgICAgICBu
b3Rpb24gb2YgYW4gQXJndW1lbnRQb3NpdGlvbiAtIGkuZS4gYW4gYXJndW1lbnQgaW4gYSBwYXJ0
aWN1bGFyIGlubGluZQorICAgICAgICBjYWxsIGZyYW1lIC0gYW5kIGZvcmNlcyB1bmlmaWNhdGlv
biBvZiBhbGwgZGF0YSBwZXJ0aW5lbnQgdG8gc2VsZWN0aW5nCisgICAgICAgIHRoZSBhcmd1bWVu
dCdzIGRhdGEgZm9ybWF0LgorICAgICAgICAKKyAgICAgICAgQWxzbyBmaXhlZCBhbiBhbXVzaW5n
IGJ1ZyBpbiB0aGUgaGFuZGxpbmcgb2YgT1NSIG9uIFNldExvY2FscyBpZiB0aGVyZQorICAgICAg
ICB3YXMgYW55IGluc2VydGlvbi9kZWxldGlvbiBvZiBub2RlcyBpbiB0aGUgYmFzaWMgYmxvY2su
IFRoaXMgaXMgYmVuaWduCisgICAgICAgIGZvciBub3cgYnV0IHdvbid0IGJlIGV2ZW50dWFsbHkg
c2luY2UgdGhlIERGRyBpcyBnZXR0aW5nIHNtYXJ0ZXIuIFNvCisgICAgICAgIGJldHRlciBmaXgg
aXQgbm93LgorICAgICAgICAKKyAgICAgICAgQWxzbyBmaXhlZCBhbiBhbXVzaW5nIGJ1ZyBpbiB0
aGUgaGFuZGxpbmcgb2YgT1NSIG9uIFNldExvY2FscyBpZiB0aGV5CisgICAgICAgIGFyZSBpbW1l
ZGlhdGVseSBmb2xsb3dlZCBieSBhIEZsdXNoLiBJIHRoaW5rIHRoaXMgYnVnIG1pZ2h0IGhhdmUg
YWx3YXlzCisgICAgICAgIGJlZW4gdGhlcmUgYnV0IG5vdyBpdCdsbCBoYXBwZW4gbW9yZSBjb21t
b25seSwgYW5kIGl0J3MgY292ZXJlZCBieSB0aGUKKyAgICAgICAgcnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR0FyZ3VtZW50
UG9zaXRpb24uaDogQWRkZWQuCisgICAgICAgIChERkcpOgorICAgICAgICAoQXJndW1lbnRQb3Np
dGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6QXJndW1lbnRQb3NpdGlvbjo6QXJndW1lbnRQb3Np
dGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6QXJndW1lbnRQb3NpdGlvbjo6YWRkVmFyaWFibGUp
OgorICAgICAgICAoSlNDOjpERkc6OkFyZ3VtZW50UG9zaXRpb246Om1lcmdlQXJndW1lbnRBd2Fy
ZW5lc3MpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnNldExvY2FsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6c2V0QXJndW1lbnQpOgorICAgICAgICAoSW5saW5lU3RhY2tFbnRyeSk6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6Oklu
bGluZVN0YWNrRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oOiBB
ZGRlZC4KKyAgICAgICAgKERGRyk6CisgICAgICAgIChKU0M6OkRGRzo6bWVyZ2VEb3VibGVGb3Jt
YXRTdGF0ZXMpOgorICAgICAgICAoSlNDOjpERkc6Om1lcmdlRG91YmxlRm9ybWF0U3RhdGUpOgor
ICAgICAgICAoSlNDOjpERkc6OmRvdWJsZUZvcm1hdFN0YXRlVG9TdHJpbmcpOgorICAgICAgICAq
IGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAoR3JhcGgpOgorICAgICAgICAqIGRmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2U6OmRvUm91bmRPZkRvdWJsZVZvdGluZyk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJs
ZUFjY2Vzc0RhdGE6OlZhcmlhYmxlQWNjZXNzRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6VmFy
aWFibGVBY2Nlc3NEYXRhOjpwcmVkaWN0KToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFj
Y2Vzc0RhdGE6OmFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKToKKyAgICAgICAgKFZhcmlhYmxlQWNj
ZXNzRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVBY2Nlc3NEYXRhOjptZXJnZUFy
Z3VtZW50QXdhcmVQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFjY2Vz
c0RhdGE6OmRvdWJsZUZvcm1hdFN0YXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFj
Y2Vzc0RhdGE6OnNob3VsZFVzZURvdWJsZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFy
aWFibGVBY2Nlc3NEYXRhOjp0YWxseVZvdGVzRm9yU2hvdWxkVXNlRG91YmxlRm9ybWF0KToKKyAg
ICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFjY2Vzc0RhdGE6Om1lcmdlRG91YmxlRm9ybWF0U3Rh
dGUpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlQWNjZXNzRGF0YTo6bWFrZVByZWRpY3Rp
b25Gb3JEb3VibGVGb3JtYXQpOgorCiAyMDEyLTA0LTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIGRhdGEgbWVtYmVyIGZyb20gTGV4ZXIg
Y2xhc3MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMTM2MzIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOCBAQAogCQkwRjBCODNCOTE0
QkNGOTVGMDA4ODVCNEYgLyogQ2FsbFJldHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMEI4M0I4MTRCQ0Y5
NUIwMDg4NUI0RiAvKiBDYWxsUmV0dXJuT2Zmc2V0VG9CeXRlY29kZU9mZnNldC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMEZDNDVBMTRCRDE1
RjUwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0IC8qIExMSW50
Q2FsbExpbmtJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEYxNUYxNUYxNEI3QTczRTAwNURFMzdEIC8qIENvbW1vblNsb3dQYXRocy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNUYxNUQxNEI3
QTczQTAwNURFMzdEIC8qIENvbW1vblNsb3dQYXRocy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMUUzQTQ2MTUzNENCQUYwMDBGOTQ1NiAvKiBE
RkdBcmd1bWVudFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjFFM0E0MzE1MzRDQkFEMDAwRjk0NTYgLyogREZHQXJndW1lbnRQb3NpdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
MUUzQTQ3MTUzNENCQjkwMDBGOTQ1NiAvKiBERkdEb3VibGVGb3JtYXRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxRTNBNDQxNTM0Q0JBRDAw
MEY5NDU2IC8qIERGR0RvdWJsZUZvcm1hdFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyMUMyNjgxNEJFNUY2ODAwQURDNjRCIC8qIEpJ
VERyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyMUMyNjYxNEJFNUY1RTAwQURDNjRCIC8qIEpJVERyaXZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMjFDMjdDMTRCRTcyNzYwMEFEQzY0
QiAvKiBFeGVjdXRpb25IYXJuZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjIxQzI3QTE0QkU3MjczMDBBREM2NEIgLyogRXhlY3V0aW9uSGFybmVz
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
MjFDMjdEMTRCRTcyN0EwMEFEQzY0QiAvKiBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIxQzI3OTE0QkU3Mjcz
MDBBREM2NEIgLyogQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03NDcsNiArNzQ5LDggQEAKIAkJMEYwQjgz
QjgxNEJDRjk1QjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxSZXR1cm5PZmZzZXRUb0J5dGVj
b2RlT2Zmc2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMEZDNDU4MTRCRDE1
RjEwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMTEludENhbGxMaW5rSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjE1RjE1RDE0QjdBNzNBMDA1REUzN0QgLyogQ29tbW9uU2xvd1BhdGhzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1vblNsb3dQYXRocy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjFFM0E0MzE1MzRDQkFEMDAwRjk0NTYgLyogREZHQXJndW1l
bnRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcmd1bWVu
dFBvc2l0aW9uLmg7IHBhdGggPSBkZmcvREZHQXJndW1lbnRQb3NpdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjFFM0E0NDE1MzRDQkFEMDAwRjk0NTYgLyogREZHRG91Ymxl
Rm9ybWF0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRG91Ymxl
Rm9ybWF0U3RhdGUuaDsgcGF0aCA9IGRmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIxQzI2NjE0QkU1RjVFMDBBREM2NEIgLyogSklURHJp
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVERyaXZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIxQzI3OTE0QkU3MjczMDBBREM2NEIgLyogQ29k
ZVNwZWNpYWxpemF0aW9uS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MjFDMjdBMTRCRTcyNzMwMEFEQzY0QiAvKiBFeGVjdXRpb25IYXJuZXNzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4ZWN1dGlvbkhhcm5lc3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwMjMsNiArMjAyNyw3IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJC
MkFENyAvKiBkZmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTBGMUUzQTQzMTUzNENCQUQwMDBGOTQ1NiAvKiBERkdBcmd1bWVudFBvc2l0aW9uLmggKi8s
CiAJCQkJMEY2MjAxNkQxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwICov
LAogCQkJCTBGNjIwMTZFMTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFN0YXRlLmggKi8s
CiAJCQkJMEY2MjAxNkYxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCAqLywK
QEAgLTIwNDIsNiArMjA0Nyw3IEBACiAJCQkJMEZDMDk3N0UxNDY5RUJDNDAwQ0YyNDQyIC8qIERG
R0NvbW1vbi5oICovLAogCQkJCTBGQzA5NzlEMTQ2QjI3MUUwMENGMjQ0MiAvKiBERkdDb3JyZWN0
YWJsZUp1bXBQb2ludC5jcHAgKi8sCiAJCQkJMEZDMDk3OUExNDZBNzcyMDAwQ0YyNDQyIC8qIERG
R0NvcnJlY3RhYmxlSnVtcFBvaW50LmggKi8sCisJCQkJMEYxRTNBNDQxNTM0Q0JBRDAwMEY5NDU2
IC8qIERGR0RvdWJsZUZvcm1hdFN0YXRlLmggKi8sCiAJCQkJMEZEM0M4MjAxNDExNUNGODAwRkQ4
MUNCIC8qIERGR0RyaXZlci5jcHAgKi8sCiAJCQkJMEZEM0M4MjIxNDExNUQwRTAwRkQ4MUNCIC8q
IERGR0RyaXZlci5oICovLAogCQkJCTg2QUU2QzRCMTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJ
bmZvLmggKi8sCkBAIC0yNTY2LDYgKzI1NzIsOCBAQAogCQkJCTBGMkJEQzIxMTUxRTgwM0IwMENE
ODkxMCAvKiBERkdJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzJDMTUx
RkRFOTEwMENEODkxMCAvKiBPcGVyYW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYxMkU0Q0Qx
NTIzODlFQzAwQzgzNkJFIC8qIE1hdGNoUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjFF
M0E0NjE1MzRDQkFGMDAwRjk0NTYgLyogREZHQXJndW1lbnRQb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEYxRTNBNDcxNTM0Q0JCOTAwMEY5NDU2IC8qIERGR0RvdWJsZUZvcm1hdFN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcg
KzI1Myw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBQcmVkaWN0ZWRUeXBl
IHByZWRpY3RlZFR5cGUgPSBub2RlLnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5wcmVkaWN0aW9uKCk7
CisgICAgICAgIFByZWRpY3RlZFR5cGUgcHJlZGljdGVkVHlwZSA9IG5vZGUudmFyaWFibGVBY2Nl
c3NEYXRhKCktPmFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCk7CiAgICAgICAgIGlmIChpc0ludDMy
UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkKICAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGls
ZDEoKSkuZmlsdGVyKFByZWRpY3RJbnQzMik7CiAgICAgICAgIGVsc2UgaWYgKGlzQXJyYXlQcmVk
aWN0aW9uKHByZWRpY3RlZFR5cGUpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcmd1bWVudFBvc2l0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcmd1bWVudFBvc2l0aW9uLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50UG9zaXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIERGR0FyZ3VtZW50UG9zaXRpb25faAorI2RlZmluZSBERkdBcmd1bWVudFBvc2l0aW9u
X2gKKworI2luY2x1ZGUgIkRGR0RvdWJsZUZvcm1hdFN0YXRlLmgiCisjaW5jbHVkZSAiREZHVmFy
aWFibGVBY2Nlc3NEYXRhLmgiCisjaW5jbHVkZSAiUHJlZGljdGVkVHlwZS5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEFyZ3VtZW50UG9zaXRpb24geworcHVi
bGljOgorICAgIEFyZ3VtZW50UG9zaXRpb24oKQorICAgICAgICA6IG1fcHJlZGljdGlvbihQcmVk
aWN0Tm9uZSkKKyAgICAgICAgLCBtX2RvdWJsZUZvcm1hdFN0YXRlKEVtcHR5RG91YmxlRm9ybWF0
U3RhdGUpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZFZhcmlhYmxlKFZhcmlhYmxl
QWNjZXNzRGF0YSogdmFyaWFibGUpCisgICAgeworICAgICAgICBtX3ZhcmlhYmxlcy5hcHBlbmQo
dmFyaWFibGUpOworICAgIH0KKyAgICAKKyAgICBib29sIG1lcmdlQXJndW1lbnRBd2FyZW5lc3Mo
KQorICAgIHsKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX3ZhcmlhYmxlcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24obV9wcmVkaWN0aW9uLCBtX3ZhcmlhYmxlc1tpXS0+
YXJndW1lbnRBd2FyZVByZWRpY3Rpb24oKSk7CisgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdl
RG91YmxlRm9ybWF0U3RhdGUobV9kb3VibGVGb3JtYXRTdGF0ZSwgbV92YXJpYWJsZXNbaV0tPmRv
dWJsZUZvcm1hdFN0YXRlKCkpOworICAgICAgICB9CisgICAgICAgIGlmICghY2hhbmdlZCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2hhbmdlZCA9IGZhbHNlOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV92YXJpYWJsZXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbV92YXJpYWJsZXNbaV0tPm1lcmdlQXJndW1lbnRBd2FyZVBy
ZWRpY3Rpb24obV9wcmVkaWN0aW9uKTsKKyAgICAgICAgICAgIGNoYW5nZWQgfD0gbV92YXJpYWJs
ZXNbaV0tPm1lcmdlRG91YmxlRm9ybWF0U3RhdGUobV9kb3VibGVGb3JtYXRTdGF0ZSk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGNoYW5nZWQ7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAg
ICBQcmVkaWN0ZWRUeXBlIG1fcHJlZGljdGlvbjsKKyAgICBEb3VibGVGb3JtYXRTdGF0ZSBtX2Rv
dWJsZUZvcm1hdFN0YXRlOworICAgIAorICAgIFZlY3RvcjxWYXJpYWJsZUFjY2Vzc0RhdGEqLCAy
PiBtX3ZhcmlhYmxlczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlm
IC8vIERGR0FyZ3VtZW50UG9zaXRpb25faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTEzNjMyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzOCw3ICsyMzgsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgVmFyaWFibGVBY2Nlc3NE
YXRhKiB2YXJpYWJsZUFjY2Vzc0RhdGEgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEob3BlcmFuZCk7
CiAgICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRUb0dyYXBoKFNldExvY2FsLCBPcElu
Zm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgdmFsdWUpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+
dmFyaWFibGVzQXRUYWlsLmxvY2FsKG9wZXJhbmQpID0gbm9kZUluZGV4OwotICAgICAgICBpZiAo
bV9ncmFwaC5sb2NhbElzQ2FwdHVyZWQob3BlcmFuZCkpCisgICAgICAgIAorICAgICAgICBib29s
IHNob3VsZEZsdXNoID0gbV9ncmFwaC5sb2NhbElzQ2FwdHVyZWQob3BlcmFuZCk7CisgICAgICAg
IAorICAgICAgICBpZiAoIXNob3VsZEZsdXNoKSB7CisgICAgICAgICAgICAvLyBJZiB0aGlzIGlz
IGluIGFyZ3VtZW50IHBvc2l0aW9uLCB0aGVuIGl0IHNob3VsZCBiZSBmbHVzaGVkLgorICAgICAg
ICAgICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBzdGFjayA9IG1faW5saW5lU3RhY2tUb3A7IDsg
c3RhY2sgPSBzdGFjay0+bV9jYWxsZXIpIHsKKyAgICAgICAgICAgICAgICBJbmxpbmVDYWxsRnJh
bWUqIGlubGluZUNhbGxGcmFtZSA9IHN0YWNrLT5tX2lubGluZUNhbGxGcmFtZTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4ob3BlcmFuZCkgPj0gaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKHN0
YXRpY19jYXN0PGludD4ob3BlcmFuZCkgPT0gaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChvcGVyYW5kIDwgaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGlubGluZUNh
bGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gb3BlcmFuZFRvQXJndW1lbnQob3BlcmFu
ZCAtIGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQpOworICAgICAgICAgICAgICAgIHN0YWNr
LT5tX2FyZ3VtZW50UG9zaXRpb25zW2FyZ3VtZW50XS0+YWRkVmFyaWFibGUodmFyaWFibGVBY2Nl
c3NEYXRhKTsKKyAgICAgICAgICAgICAgICBzaG91bGRGbHVzaCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGlmIChzaG91bGRGbHVzaCkKICAgICAgICAgICAgIGFkZFRvR3JhcGgoRmx1c2gsIE9wSW5mbyh2
YXJpYWJsZUFjY2Vzc0RhdGEpLCBub2RlSW5kZXgpOwogICAgIH0KIApAQCAtMzA5LDEwICszMzEs
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUKGFyZ3VtZW50IDwgbV9udW1Bcmd1bWVudHMp
OwogICAgICAgICAKICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZUFjY2Vzc0Rh
dGEgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEob3BlcmFuZCk7CisgICAgICAgIElubGluZVN0YWNr
RW50cnkqIHN0YWNrID0gbV9pbmxpbmVTdGFja1RvcDsKKyAgICAgICAgd2hpbGUgKHN0YWNrLT5t
X2lubGluZUNhbGxGcmFtZSkgLy8gZmluZCB0aGUgbWFjaGluZSBzdGFjayBlbnRyeS4KKyAgICAg
ICAgICAgIHN0YWNrID0gc3RhY2stPm1fY2FsbGVyOworICAgICAgICBzdGFjay0+bV9hcmd1bWVu
dFBvc2l0aW9uc1thcmd1bWVudF0tPmFkZFZhcmlhYmxlKHZhcmlhYmxlQWNjZXNzRGF0YSk7CiAg
ICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRUb0dyYXBoKFNldExvY2FsLCBPcEluZm8o
dmFyaWFibGVBY2Nlc3NEYXRhKSwgdmFsdWUpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+dmFy
aWFibGVzQXRUYWlsLmFyZ3VtZW50KGFyZ3VtZW50KSA9IG5vZGVJbmRleDsKLSAgICAgICAgaWYg
KG1fZ3JhcGguYXJndW1lbnRJc0NhcHR1cmVkKGFyZ3VtZW50KSkKLSAgICAgICAgICAgIGFkZFRv
R3JhcGgoRmx1c2gsIE9wSW5mbyh2YXJpYWJsZUFjY2Vzc0RhdGEpLCBub2RlSW5kZXgpOworICAg
ICAgICAvLyBBbHdheXMgZmx1c2ggYXJndW1lbnRzLgorICAgICAgICBhZGRUb0dyYXBoKEZsdXNo
LCBPcEluZm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgbm9kZUluZGV4KTsKICAgICB9CiAgICAgCiAg
ICAgdm9pZCBmbHVzaEFyZ3VtZW50KGludCBvcGVyYW5kKQpAQCAtOTMyLDYgKzk1OCw5IEBAIHBy
aXZhdGU6CiAgICAgICAgIC8vIERpZCB3ZSBoYXZlIGFueSBlYXJseSByZXR1cm5zPwogICAgICAg
ICBib29sIG1fZGlkRWFybHlSZXR1cm47CiAgICAgICAgIAorICAgICAgICAvLyBQb2ludGVycyB0
byB0aGUgYXJndW1lbnQgcG9zaXRpb24gdHJhY2tlcnMgZm9yIHRoaXMgc2xpY2Ugb2YgY29kZS4K
KyAgICAgICAgVmVjdG9yPEFyZ3VtZW50UG9zaXRpb24qPiBtX2FyZ3VtZW50UG9zaXRpb25zOwor
ICAgICAgICAKICAgICAgICAgSW5saW5lU3RhY2tFbnRyeSogbV9jYWxsZXI7CiAgICAgICAgIAog
ICAgICAgICBJbmxpbmVTdGFja0VudHJ5KEJ5dGVDb2RlUGFyc2VyKiwgQ29kZUJsb2NrKiwgQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBCbG9ja0luZGV4IGNhbGxzaXRlQmxvY2tIZWFkLCBWaXJ0
dWFsUmVnaXN0ZXIgY2FsbGVlVlIsIEpTRnVuY3Rpb24qIGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVy
IHJldHVyblZhbHVlVlIsIFZpcnR1YWxSZWdpc3RlciBpbmxpbmVDYWxsRnJhbWVTdGFydCwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCk7CkBAIC0yNTgwLDYgKzI2MDksMTMgQEAgQnl0ZUNvZGVQYXJz
ZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZQogICAgICwgbV9kaWRFYXJseVJldHVybihmYWxz
ZSkKICAgICAsIG1fY2FsbGVyKGJ5dGVDb2RlUGFyc2VyLT5tX2lubGluZVN0YWNrVG9wKQogewor
ICAgIG1fYXJndW1lbnRQb3NpdGlvbnMucmVzaXplKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsgaS0t
OykgeworICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9ncmFwaC5tX2FyZ3VtZW50UG9zaXRpb25z
LmFwcGVuZChBcmd1bWVudFBvc2l0aW9uKCkpOworICAgICAgICBBcmd1bWVudFBvc2l0aW9uKiBh
cmd1bWVudFBvc2l0aW9uID0gJmJ5dGVDb2RlUGFyc2VyLT5tX2dyYXBoLm1fYXJndW1lbnRQb3Np
dGlvbnMubGFzdCgpOworICAgICAgICBtX2FyZ3VtZW50UG9zaXRpb25zW2ldID0gYXJndW1lbnRQ
b3NpdGlvbjsKKyAgICB9CisgICAgICAgIAogICAgIGlmIChtX2NhbGxlcikgewogICAgICAgICAv
LyBJbmxpbmUgY2FzZS4KICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayAhPSBieXRlQ29kZVBhcnNl
ci0+bV9jb2RlQmxvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb3Vi
bGVGb3JtYXRTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG91YmxlRm9ybWF0U3RhdGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG91YmxlRm9ybWF0U3RhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIERGR0RvdWJsZUZvcm1hdFN0YXRlX2gKKyNkZWZpbmUgREZHRG91YmxlRm9ybWF0U3RhdGVf
aAorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2VudW0gRG91YmxlRm9ybWF0
U3RhdGUgeworICAgIEVtcHR5RG91YmxlRm9ybWF0U3RhdGUsIC8vIGJvdHRvbQorICAgIFVzaW5n
RG91YmxlRm9ybWF0LAorICAgIE5vdFVzaW5nRG91YmxlRm9ybWF0LAorICAgIENhbnRVc2VEb3Vi
bGVGb3JtYXQgLy8gdG9wCit9OworCitpbmxpbmUgRG91YmxlRm9ybWF0U3RhdGUgbWVyZ2VEb3Vi
bGVGb3JtYXRTdGF0ZXMoRG91YmxlRm9ybWF0U3RhdGUgYSwgRG91YmxlRm9ybWF0U3RhdGUgYikK
K3sKKyAgICBzd2l0Y2ggKGEpIHsKKyAgICBjYXNlIEVtcHR5RG91YmxlRm9ybWF0U3RhdGU6Cisg
ICAgICAgIHJldHVybiBiOworICAgIGNhc2UgVXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgIHN3
aXRjaCAoYikgeworICAgICAgICBjYXNlIEVtcHR5RG91YmxlRm9ybWF0U3RhdGU6CisgICAgICAg
IGNhc2UgVXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgICAgICByZXR1cm4gVXNpbmdEb3VibGVG
b3JtYXQ7CisgICAgICAgIGNhc2UgTm90VXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgIGNhc2Ug
Q2FudFVzZURvdWJsZUZvcm1hdDoKKyAgICAgICAgICAgIHJldHVybiBDYW50VXNlRG91YmxlRm9y
bWF0OworICAgICAgICB9CisgICAgY2FzZSBOb3RVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAg
c3dpdGNoIChiKSB7CisgICAgICAgIGNhc2UgRW1wdHlEb3VibGVGb3JtYXRTdGF0ZToKKyAgICAg
ICAgY2FzZSBOb3RVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAgICAgIHJldHVybiBOb3RVc2lu
Z0RvdWJsZUZvcm1hdDsKKyAgICAgICAgY2FzZSBVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAg
Y2FzZSBDYW50VXNlRG91YmxlRm9ybWF0OgorICAgICAgICAgICAgcmV0dXJuIENhbnRVc2VEb3Vi
bGVGb3JtYXQ7CisgICAgICAgIH0KKyAgICBjYXNlIENhbnRVc2VEb3VibGVGb3JtYXQ6CisgICAg
ICAgIHJldHVybiBDYW50VXNlRG91YmxlRm9ybWF0OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gQ2FudFVzZURvdWJsZUZvcm1hdDsKK30KKworaW5saW5lIGJv
b2wgbWVyZ2VEb3VibGVGb3JtYXRTdGF0ZShEb3VibGVGb3JtYXRTdGF0ZSYgZGVzdCwgRG91Ymxl
Rm9ybWF0U3RhdGUgc3JjKQoreworICAgIERvdWJsZUZvcm1hdFN0YXRlIG5ld1N0YXRlID0gbWVy
Z2VEb3VibGVGb3JtYXRTdGF0ZXMoZGVzdCwgc3JjKTsKKyAgICBpZiAobmV3U3RhdGUgPT0gZGVz
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGRlc3QgPSBuZXdTdGF0ZTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIGRvdWJsZUZvcm1hdFN0YXRlVG9TdHJp
bmcoRG91YmxlRm9ybWF0U3RhdGUgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAg
IGNhc2UgRW1wdHlEb3VibGVGb3JtYXRTdGF0ZToKKyAgICAgICAgcmV0dXJuICJFbXB0eSI7Cisg
ICAgY2FzZSBVc2luZ0RvdWJsZUZvcm1hdDoKKyAgICAgICAgcmV0dXJuICJEb3VibGVGb3JtYXQi
OworICAgIGNhc2UgTm90VXNpbmdEb3VibGVGb3JtYXQ6CisgICAgICAgIHJldHVybiAiVmFsdWVG
b3JtYXQiOworICAgIGNhc2UgQ2FudFVzZURvdWJsZUZvcm1hdDoKKyAgICAgICAgcmV0dXJuICJG
b3JjZVZhbHVlIjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIERGR0RvdWJs
ZUZvcm1hdFN0YXRlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAko
cmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAK
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJERkdBcmd1bWVudFBvc2l0aW9uLmgi
CiAjaW5jbHVkZSAiREZHQXNzZW1ibHlIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQmFzaWNCbG9j
ay5oIgogI2luY2x1ZGUgIkRGR05vZGUuaCIKQEAgLTM1Niw2ICszNTcsNyBAQCBwdWJsaWM6CiAg
ICAgVmVjdG9yPFJlc29sdmVHbG9iYWxEYXRhPiBtX3Jlc29sdmVHbG9iYWxEYXRhOwogICAgIFZl
Y3RvcjxOb2RlSW5kZXgsIDg+IG1fYXJndW1lbnRzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxWYXJp
YWJsZUFjY2Vzc0RhdGEsIDE2PiBtX3ZhcmlhYmxlQWNjZXNzRGF0YTsKKyAgICBTZWdtZW50ZWRW
ZWN0b3I8QXJndW1lbnRQb3NpdGlvbiwgOD4gbV9hcmd1bWVudFBvc2l0aW9uczsKICAgICBTZWdt
ZW50ZWRWZWN0b3I8U3RydWN0dXJlU2V0LCAxNj4gbV9zdHJ1Y3R1cmVTZXQ7CiAgICAgU2VnbWVu
dGVkVmVjdG9yPFN0cnVjdHVyZVRyYW5zaXRpb25EYXRhLCA4PiBtX3N0cnVjdHVyZVRyYW5zaXRp
b25EYXRhOwogICAgIEJpdFZlY3RvciBtX3ByZXNlcnZlZFZhcnM7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcAkocmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5
OSwxMiArNzk5LDI1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ3JhcGgubV92YXJpYWJsZUFjY2Vzc0RhdGEu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGVB
Y2Nlc3NEYXRhID0gbV9ncmFwaC5tX3ZhcmlhYmxlQWNjZXNzRGF0YVtpXS5maW5kKCk7CisgICAg
ICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9ICZtX2dyYXBo
Lm1fdmFyaWFibGVBY2Nlc3NEYXRhW2ldOworICAgICAgICAgICAgaWYgKCF2YXJpYWJsZUFjY2Vz
c0RhdGEtPmlzUm9vdCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
aWYgKG9wZXJhbmRJc0FyZ3VtZW50KHZhcmlhYmxlQWNjZXNzRGF0YS0+bG9jYWwoKSkKICAgICAg
ICAgICAgICAgICB8fCBtX2dyYXBoLmlzQ2FwdHVyZWQodmFyaWFibGVBY2Nlc3NEYXRhLT5sb2Nh
bCgpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIG1fY2hhbmdlZCB8
PSB2YXJpYWJsZUFjY2Vzc0RhdGEtPnRhbGx5Vm90ZXNGb3JTaG91bGRVc2VEb3VibGVGb3JtYXQo
KTsKICAgICAgICAgfQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9ncmFwaC5t
X2FyZ3VtZW50UG9zaXRpb25zLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbV9jaGFuZ2VkIHw9
IG1fZ3JhcGgubV9hcmd1bWVudFBvc2l0aW9uc1tpXS5tZXJnZUFyZ3VtZW50QXdhcmVuZXNzKCk7
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2dyYXBoLm1fdmFyaWFibGVBY2Nl
c3NEYXRhLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZh
cmlhYmxlQWNjZXNzRGF0YSA9ICZtX2dyYXBoLm1fdmFyaWFibGVBY2Nlc3NEYXRhW2ldOworICAg
ICAgICAgICAgaWYgKCF2YXJpYWJsZUFjY2Vzc0RhdGEtPmlzUm9vdCgpKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KHZhcmlhYmxl
QWNjZXNzRGF0YS0+bG9jYWwoKSkKKyAgICAgICAgICAgICAgICB8fCBtX2dyYXBoLmlzQ2FwdHVy
ZWQodmFyaWFibGVBY2Nlc3NEYXRhLT5sb2NhbCgpKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIG1fY2hhbmdlZCB8PSB2YXJpYWJsZUFjY2Vzc0RhdGEtPm1ha2VQcmVk
aWN0aW9uRm9yRG91YmxlRm9ybWF0KCk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgTm9k
ZUluZGV4IG1fY29tcGlsZUluZGV4OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxMTM2MzIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODg2LDkgKzE4ODYsMzAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAvLyBTZXRMb2NhbCBhbmQgd2hhdGV2ZXIgb3Ro
ZXIgREZHIE5vZGVzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUKICAgICAgICAgLy8gYnl0
ZWNvZGUgaW5kZXggYXMgdGhlIFNldExvY2FsLgogICAgICAgICBBU1NFUlQobV9jb2RlT3JpZ2lu
Rm9yT1NSID09IG5vZGUuY29kZU9yaWdpbik7Ci0gICAgICAgIE5vZGUmIG5leHROb2RlID0gYXQo
bV9jb21waWxlSW5kZXggKyAxKTsKLSAgICAgICAgCi0gICAgICAgIG1fY29kZU9yaWdpbkZvck9T
UiA9IG5leHROb2RlLmNvZGVPcmlnaW47CisgICAgICAgIE5vZGUqIG5leHROb2RlID0gJmF0KGJs
b2NrKCktPmF0KG1faW5kZXhJbkJsb2NrICsgMSkpOworCisgICAgICAgIC8vIEJ1dCBldmVuIG1v
cmUgb2RkbHksIHdlIG5lZWQgdG8gYmUgc3VwZXIgY2FyZWZ1bCBhYm91dCB0aGUgZm9sbG93aW5n
CisgICAgICAgIC8vIHNlcXVlbmNlOgorICAgICAgICAvLworICAgICAgICAvLyBhOiBGb28oKQor
ICAgICAgICAvLyBiOiBTZXRMb2NhbChAYSkKKyAgICAgICAgLy8gYzogRmx1c2goQGIpCisgICAg
ICAgIC8vCisgICAgICAgIC8vIFRoaXMgbmV4dCBwaWVjZSBvZiBjcmF6eSB0YWtlcyBjYXJlIG9m
IHRoaXMuCisgICAgICAgIGlmIChuZXh0Tm9kZS0+b3AoKSA9PSBGbHVzaCAmJiBuZXh0Tm9kZS0+
Y2hpbGQxKCkgPT0gbV9jb21waWxlSW5kZXgpCisgICAgICAgICAgICBuZXh0Tm9kZSA9ICZhdChi
bG9jaygpLT5hdChtX2luZGV4SW5CbG9jayArIDIpKTsKKyAgICAgICAgCisgICAgICAgIC8vIE9k
ZGx5LCBpdCdzIHBvc3NpYmxlIGZvciB0aGUgYnl0ZWNvZGUgaW5kZXggZm9yIHRoZSBuZXh0IG5v
ZGUgdG8gYmUKKyAgICAgICAgLy8gZXF1YWwgdG8gb3Vycy4gVGhpcyB3aWxsIGhhcHBlbiBmb3Ig
b3BfcG9zdF9pbmMuIEFuZCwgZXZlbiBtb3JlIG9kZGx5LAorICAgICAgICAvLyB0aGlzIGlzIGp1
c3QgZmluZS4gT3JkaW5hcmlseSwgdGhpcyB3b3VsZG4ndCBiZSBmaW5lLCBzaW5jZSBpZiB0aGUK
KyAgICAgICAgLy8gbmV4dCBub2RlIGZhaWxlZCBPU1IgdGhlbiB3ZSdkIGJlIE9TUi1pbmcgd2l0
aCB0aGlzIFNldExvY2FsJ3MgbG9jYWwKKyAgICAgICAgLy8gdmFyaWFibGUgYWxyZWFkeSBzZXQg
ZXZlbiB0aG91Z2ggZnJvbSB0aGUgc3RhbmRwb2ludCBvZiB0aGUgb2xkIEpJVCwKKyAgICAgICAg
Ly8gdGhpcyBTZXRMb2NhbCBzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIEJ1dCBmb3Igb3BfcG9z
dF9pbmMsIGl0J3MganVzdAorICAgICAgICAvLyBmaW5lLCBiZWNhdXNlIHRoaXMgU2V0TG9jYWwn
cyBsb2NhbCAoaS5lLiB0aGUgTEhTIGluIGEgeCA9IHkrKworICAgICAgICAvLyBzdGF0ZW1lbnQp
IHdvdWxkIGJlIGRlYWQgYW55d2F5IC0gc28gdGhlIGZhY3QgdGhhdCBERkcgd291bGQgaGF2ZQor
ICAgICAgICAvLyBhbHJlYWR5IG1hZGUgdGhlIGFzc2lnbm1lbnQsIGFuZCBiYWtlZCBpdCBpbnRv
IHRoZSByZWdpc3RlciBmaWxlIGR1cmluZworICAgICAgICAvLyBPU1IgZXhpdCwgd291bGQgbm90
IGJlIHZpc2libGUgdG8gdGhlIG9sZCBKSVQgaW4gYW55IHdheS4KKyAgICAgICAgbV9jb2RlT3Jp
Z2luRm9yT1NSID0gbmV4dE5vZGUtPmNvZGVPcmlnaW47CiAgICAgICAgIAogICAgICAgICBpZiAo
IW1faml0LmdyYXBoKCkuaXNDYXB0dXJlZChub2RlLmxvY2FsKCkpKSB7CiAgICAgICAgICAgICBp
ZiAobm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+c2hvdWxkVXNlRG91YmxlRm9ybWF0KCkpIHsK
QEAgLTE5MDEsNyArMTkyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYg
bm9kZSkKICAgICAgICAgICAgICAgICB2YWx1ZVNvdXJjZVJlZmVyZW5jZUZvck9wZXJhbmQobm9k
ZS5sb2NhbCgpKSA9IFZhbHVlU291cmNlKERvdWJsZUluUmVnaXN0ZXJGaWxlKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFByZWRpY3RlZFR5cGUg
cHJlZGljdGVkVHlwZSA9IG5vZGUudmFyaWFibGVBY2Nlc3NEYXRhKCktPnByZWRpY3Rpb24oKTsK
KyAgICAgICAgICAgIFByZWRpY3RlZFR5cGUgcHJlZGljdGVkVHlwZSA9IG5vZGUudmFyaWFibGVB
Y2Nlc3NEYXRhKCktPmFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICBpZiAo
bV9nZW5lcmF0aW9uSW5mb1thdChub2RlLmNoaWxkMSgpKS52aXJ0dWFsUmVnaXN0ZXIoKV0ucmVn
aXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlKSB7CiAgICAgICAgICAgICAgICAgRG91
YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBt
X2ppdC5zdG9yZURvdWJsZSh2YWx1ZS5mcHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9k
ZS5sb2NhbCgpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDExMzYzMikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5
NjYsNyArMTk2NiwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUp
CiAgICAgICAgIC8vIFNldExvY2FsIGFuZCB3aGF0ZXZlciBvdGhlciBERkcgTm9kZXMgYXJlIGFz
c29jaWF0ZWQgd2l0aCB0aGUgc2FtZQogICAgICAgICAvLyBieXRlY29kZSBpbmRleCBhcyB0aGUg
U2V0TG9jYWwuCiAgICAgICAgIEFTU0VSVChtX2NvZGVPcmlnaW5Gb3JPU1IgPT0gbm9kZS5jb2Rl
T3JpZ2luKTsKLSAgICAgICAgTm9kZSYgbmV4dE5vZGUgPSBhdChtX2NvbXBpbGVJbmRleCArIDEp
OworICAgICAgICBOb2RlKiBuZXh0Tm9kZSA9ICZhdChibG9jaygpLT5hdChtX2luZGV4SW5CbG9j
ayArIDEpKTsKKworICAgICAgICAvLyBCdXQgZXZlbiBtb3JlIG9kZGx5LCB3ZSBuZWVkIHRvIGJl
IHN1cGVyIGNhcmVmdWwgYWJvdXQgdGhlIGZvbGxvd2luZworICAgICAgICAvLyBzZXF1ZW5jZToK
KyAgICAgICAgLy8KKyAgICAgICAgLy8gYTogRm9vKCkKKyAgICAgICAgLy8gYjogU2V0TG9jYWwo
QGEpCisgICAgICAgIC8vIGM6IEZsdXNoKEBiKQorICAgICAgICAvLworICAgICAgICAvLyBUaGlz
IG5leHQgcGllY2Ugb2YgY3JhenkgdGFrZXMgY2FyZSBvZiB0aGlzLgorICAgICAgICBpZiAobmV4
dE5vZGUtPm9wKCkgPT0gRmx1c2ggJiYgbmV4dE5vZGUtPmNoaWxkMSgpID09IG1fY29tcGlsZUlu
ZGV4KQorICAgICAgICAgICAgbmV4dE5vZGUgPSAmYXQoYmxvY2soKS0+YXQobV9pbmRleEluQmxv
Y2sgKyAyKSk7CiAgICAgICAgIAogICAgICAgICAvLyBPZGRseSwgaXQncyBwb3NzaWJsZSBmb3Ig
dGhlIGJ5dGVjb2RlIGluZGV4IGZvciB0aGUgbmV4dCBub2RlIHRvIGJlCiAgICAgICAgIC8vIGVx
dWFsIHRvIG91cnMuIFRoaXMgd2lsbCBoYXBwZW4gZm9yIG9wX3Bvc3RfaW5jLiBBbmQsIGV2ZW4g
bW9yZSBvZGRseSwKQEAgLTE5NzgsNyArMTk4OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgLy8gc3RhdGVtZW50KSB3b3VsZCBiZSBkZWFkIGFu
eXdheSAtIHNvIHRoZSBmYWN0IHRoYXQgREZHIHdvdWxkIGhhdmUKICAgICAgICAgLy8gYWxyZWFk
eSBtYWRlIHRoZSBhc3NpZ25tZW50LCBhbmQgYmFrZWQgaXQgaW50byB0aGUgcmVnaXN0ZXIgZmls
ZSBkdXJpbmcKICAgICAgICAgLy8gT1NSIGV4aXQsIHdvdWxkIG5vdCBiZSB2aXNpYmxlIHRvIHRo
ZSBvbGQgSklUIGluIGFueSB3YXkuCi0gICAgICAgIG1fY29kZU9yaWdpbkZvck9TUiA9IG5leHRO
b2RlLmNvZGVPcmlnaW47CisgICAgICAgIG1fY29kZU9yaWdpbkZvck9TUiA9IG5leHROb2RlLT5j
b2RlT3JpZ2luOwogICAgICAgICAKICAgICAgICAgaWYgKCFtX2ppdC5ncmFwaCgpLmlzQ2FwdHVy
ZWQobm9kZS5sb2NhbCgpKSkgewogICAgICAgICAgICAgaWYgKG5vZGUudmFyaWFibGVBY2Nlc3NE
YXRhKCktPnNob3VsZFVzZURvdWJsZUZvcm1hdCgpKSB7CkBAIC0xOTkyLDcgKzIwMDMsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIAotICAgICAgICAgICAgUHJlZGljdGVkVHlw
ZSBwcmVkaWN0ZWRUeXBlID0gbm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+cHJlZGljdGlvbigp
OworICAgICAgICAgICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0ZWRUeXBlID0gbm9kZS52YXJpYWJs
ZUFjY2Vzc0RhdGEoKS0+YXJndW1lbnRBd2FyZVByZWRpY3Rpb24oKTsKICAgICAgICAgICAgIGlm
IChpc0ludDMyUHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkgewogICAgICAgICAgICAgICAgIFNw
ZWN1bGF0ZUludGVnZXJPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwogICAgICAg
ICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUuZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2Fk
Rm9yKG5vZGUubG9jYWwoKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdW
YXJpYWJsZUFjY2Vzc0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCShyZXZpc2lvbiAxMTM2MzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNiwxMiArMjYsMTQgQEAKICNpZm5kZWYgREZHVmFyaWFibGVBY2Nlc3NEYXRhX2gKICNkZWZp
bmUgREZHVmFyaWFibGVBY2Nlc3NEYXRhX2gKIAorI2luY2x1ZGUgIkRGR0RvdWJsZUZvcm1hdFN0
YXRlLmgiCiAjaW5jbHVkZSAiREZHTm9kZUZsYWdzLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHMuaCIK
ICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgi
CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL1VuaW9uRmluZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogCkBAIC00Miw4ICs0NCw5IEBAIHB1YmxpYzoKICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEoKQog
ICAgICAgICA6IG1fbG9jYWwoc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihzdGQ6Om51bWVy
aWNfbGltaXRzPGludD46Om1pbigpKSkKICAgICAgICAgLCBtX3ByZWRpY3Rpb24oUHJlZGljdE5v
bmUpCisgICAgICAgICwgbV9hcmd1bWVudEF3YXJlUHJlZGljdGlvbihQcmVkaWN0Tm9uZSkKICAg
ICAgICAgLCBtX2ZsYWdzKDApCi0gICAgICAgICwgbV9zaG91bGRVc2VEb3VibGVGb3JtYXQoZmFs
c2UpCisgICAgICAgICwgbV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0eURvdWJsZUZvcm1hdFN0YXRl
KQogICAgIHsKICAgICAgICAgY2xlYXJWb3RlcygpOwogICAgIH0KQEAgLTUxLDggKzU0LDkgQEAg
cHVibGljOgogICAgIFZhcmlhYmxlQWNjZXNzRGF0YShWaXJ0dWFsUmVnaXN0ZXIgbG9jYWwpCiAg
ICAgICAgIDogbV9sb2NhbChsb2NhbCkKICAgICAgICAgLCBtX3ByZWRpY3Rpb24oUHJlZGljdE5v
bmUpCisgICAgICAgICwgbV9hcmd1bWVudEF3YXJlUHJlZGljdGlvbihQcmVkaWN0Tm9uZSkKICAg
ICAgICAgLCBtX2ZsYWdzKDApCi0gICAgICAgICwgbV9zaG91bGRVc2VEb3VibGVGb3JtYXQoZmFs
c2UpCisgICAgICAgICwgbV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0eURvdWJsZUZvcm1hdFN0YXRl
KQogICAgIHsKICAgICAgICAgY2xlYXJWb3RlcygpOwogICAgIH0KQEAgLTcwLDcgKzc0LDExIEBA
IHB1YmxpYzoKICAgICAKICAgICBib29sIHByZWRpY3QoUHJlZGljdGVkVHlwZSBwcmVkaWN0aW9u
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1lcmdlUHJlZGljdGlvbihmaW5kKCktPm1fcHJlZGlj
dGlvbiwgcHJlZGljdGlvbik7CisgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogc2VsZiA9IGZp
bmQoKTsKKyAgICAgICAgYm9vbCByZXN1bHQgPSBtZXJnZVByZWRpY3Rpb24oc2VsZi0+bV9wcmVk
aWN0aW9uLCBwcmVkaWN0aW9uKTsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIG1l
cmdlUHJlZGljdGlvbihtX2FyZ3VtZW50QXdhcmVQcmVkaWN0aW9uLCBtX3ByZWRpY3Rpb24pOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKICAgICBQcmVkaWN0ZWRUeXBlIG5v
blVuaWZpZWRQcmVkaWN0aW9uKCkKQEAgLTgzLDYgKzkxLDE2IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGZpbmQoKS0+bV9wcmVkaWN0aW9uOwogICAgIH0KICAgICAKKyAgICBQcmVkaWN0ZWRU
eXBlIGFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaW5k
KCktPm1fYXJndW1lbnRBd2FyZVByZWRpY3Rpb247CisgICAgfQorICAgIAorICAgIGJvb2wgbWVy
Z2VBcmd1bWVudEF3YXJlUHJlZGljdGlvbihQcmVkaWN0ZWRUeXBlIHByZWRpY3Rpb24pCisgICAg
eworICAgICAgICByZXR1cm4gbWVyZ2VQcmVkaWN0aW9uKGZpbmQoKS0+bV9hcmd1bWVudEF3YXJl
UHJlZGljdGlvbiwgcHJlZGljdGlvbik7CisgICAgfQorICAgIAogICAgIHZvaWQgY2xlYXJWb3Rl
cygpCiAgICAgewogICAgICAgICBBU1NFUlQoZmluZCgpID09IHRoaXMpOwpAQCAtMTMyLDE1ICsx
NTAsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAorICAg
IERvdWJsZUZvcm1hdFN0YXRlIGRvdWJsZUZvcm1hdFN0YXRlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBmaW5kKCktPm1fZG91YmxlRm9ybWF0U3RhdGU7CisgICAgfQorICAgIAogICAgIGJvb2wg
c2hvdWxkVXNlRG91YmxlRm9ybWF0KCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChmaW5kKCkgPT0g
dGhpcyk7Ci0gICAgICAgIHJldHVybiBtX3Nob3VsZFVzZURvdWJsZUZvcm1hdDsKKyAgICAgICAg
QVNTRVJUKGlzUm9vdCgpKTsKKyAgICAgICAgcmV0dXJuIG1fZG91YmxlRm9ybWF0U3RhdGUgPT0g
VXNpbmdEb3VibGVGb3JtYXQ7CiAgICAgfQogICAgIAogICAgIGJvb2wgdGFsbHlWb3Rlc0ZvclNo
b3VsZFVzZURvdWJsZUZvcm1hdCgpCiAgICAgewotICAgICAgICBBU1NFUlQoZmluZCgpID09IHRo
aXMpOworICAgICAgICBBU1NFUlQoaXNSb290KCkpOworICAgICAgICAKKyAgICAgICAgaWYgKG1f
ZG91YmxlRm9ybWF0U3RhdGUgPT0gQ2FudFVzZURvdWJsZUZvcm1hdCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgbmV3VmFsdWVPZlNob3VsZFVzZURv
dWJsZUZvcm1hdCA9IHNob3VsZFVzZURvdWJsZUZvcm1hdEFjY29yZGluZ1RvVm90ZSgpOwogICAg
ICAgICBpZiAoIW5ld1ZhbHVlT2ZTaG91bGRVc2VEb3VibGVGb3JtYXQpIHsKQEAgLTE0OSwxMiAr
MTc1LDI1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgaWYgKG1fc2hvdWxkVXNlRG91YmxlRm9ybWF0KQorICAgICAgICBp
ZiAobV9kb3VibGVGb3JtYXRTdGF0ZSA9PSBVc2luZ0RvdWJsZUZvcm1hdCkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIG1fc2hvdWxkVXNlRG91YmxlRm9ybWF0
ID0gdHJ1ZTsKLSAgICAgICAgbWVyZ2VQcmVkaWN0aW9uKG1fcHJlZGljdGlvbiwgUHJlZGljdERv
dWJsZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gREZHOjptZXJnZURv
dWJsZUZvcm1hdFN0YXRlKG1fZG91YmxlRm9ybWF0U3RhdGUsIFVzaW5nRG91YmxlRm9ybWF0KTsK
KyAgICB9CisgICAgCisgICAgYm9vbCBtZXJnZURvdWJsZUZvcm1hdFN0YXRlKERvdWJsZUZvcm1h
dFN0YXRlIGRvdWJsZUZvcm1hdFN0YXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIERGRzo6bWVy
Z2VEb3VibGVGb3JtYXRTdGF0ZShmaW5kKCktPm1fZG91YmxlRm9ybWF0U3RhdGUsIGRvdWJsZUZv
cm1hdFN0YXRlKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYWtlUHJlZGljdGlvbkZvckRvdWJs
ZUZvcm1hdCgpCisgICAgeworICAgICAgICBBU1NFUlQoaXNSb290KCkpOworICAgICAgICAKKyAg
ICAgICAgaWYgKG1fZG91YmxlRm9ybWF0U3RhdGUgIT0gVXNpbmdEb3VibGVGb3JtYXQpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbWVyZ2VQcmVk
aWN0aW9uKG1fcHJlZGljdGlvbiwgUHJlZGljdERvdWJsZSk7CiAgICAgfQogICAgIAogICAgIE5v
ZGVGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KQEAgLTE3NiwxMCArMjE1
LDExIEBAIHByaXZhdGU6CiAKICAgICBWaXJ0dWFsUmVnaXN0ZXIgbV9sb2NhbDsKICAgICBQcmVk
aWN0ZWRUeXBlIG1fcHJlZGljdGlvbjsKKyAgICBQcmVkaWN0ZWRUeXBlIG1fYXJndW1lbnRBd2Fy
ZVByZWRpY3Rpb247CiAgICAgTm9kZUZsYWdzIG1fZmxhZ3M7CiAgICAgCiAgICAgZmxvYXQgbV92
b3Rlc1syXTsKLSAgICBib29sIG1fc2hvdWxkVXNlRG91YmxlRm9ybWF0OworICAgIERvdWJsZUZv
cm1hdFN0YXRlIG1fZG91YmxlRm9ybWF0U3RhdGU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzNzc3KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNC0xMCAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIERGRyBzaG91bGQgZmx1c2ggU2V0TG9jYWxz
IHRvIGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODM1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIEFkZGVkIGFuIGlzUm9vdCgpIG1ldGhvZCB0aGF0IGlzIGEgZmFzdGVyIHNo
b3J0aGFuZCBmb3Igc2F5aW5nCisgICAgICAgIGZpbmQoKSA9PSB0aGlzLgorCisgICAgICAgICog
d3RmL1VuaW9uRmluZC5oOgorICAgICAgICAoV1RGOjpVbmlvbkZpbmQ6OmlzUm9vdCk6CisgICAg
ICAgIChVbmlvbkZpbmQpOgorCiAyMDEyLTA0LTEwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9n
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDTWFrZV0gRW5hYmxlIFVTRV9GT0xERVJTIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9VbmlvbkZpbmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9VbmlvbkZpbmQuaAkocmV2aXNpb24gMTEzNjMyKQorKysgU291cmNlL1dURi93
dGYvVW5pb25GaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDEzIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgfQogICAgIAorICAgIGJvb2wgaXNSb290KCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGJvb2wgcmVzdWx0ID0gIW1fcGFyZW50OworICAgICAgICBBU1NFUlQocmVzdWx0ID09IChj
b25zdF9jYXN0PFVuaW9uRmluZDxUPio+KHRoaXMpLT5maW5kKCkgPT0gdGhpcykpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKICAgICBUKiBmaW5kKCkKICAgICB7CiAgICAg
ICAgIFQqIHJlc3VsdCA9IHN0YXRpY19jYXN0PFQqPih0aGlzKTsK
</data>
<flag name="review"
          id="141389"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>