<?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>134659</bug_id>
          
          <creation_ts>2014-07-05 18:49:54 -0700</creation_ts>
          <short_desc>Reduce the overhead of updating the AssemblerBuffer</short_desc>
          <delta_ts>2014-07-15 16:59:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1020634</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-05 18:49:54 -0700</bug_when>
    <thetext>Reduce the overhead of updating the AssemblerBuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020635</commentid>
    <comment_count>1</comment_count>
      <attachid>234451</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-05 19:06:53 -0700</bug_when>
    <thetext>Created attachment 234451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020639</commentid>
    <comment_count>2</comment_count>
      <attachid>234451</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-05 20:52:05 -0700</bug_when>
    <thetext>Comment on attachment 234451
Patch

Oops, I&apos;ll make a version that builds on x86</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022147</commentid>
    <comment_count>3</comment_count>
      <attachid>234837</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-13 19:11:47 -0700</bug_when>
    <thetext>Created attachment 234837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022412</commentid>
    <comment_count>4</comment_count>
      <attachid>234905</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-14 22:53:25 -0700</bug_when>
    <thetext>Created attachment 234905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022602</commentid>
    <comment_count>5</comment_count>
      <attachid>234905</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-15 16:59:38 -0700</bug_when>
    <thetext>Comment on attachment 234905
Patch

Clearing flags on attachment: 234905

Committed r171123: &lt;http://trac.webkit.org/changeset/171123&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022603</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-15 16:59:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234451</attachid>
            <date>2014-07-05 19:06:53 -0700</date>
            <delta_ts>2014-07-13 19:11:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134659-20140705190634.patch</filename>
            <type>text/plain</type>
            <size>8745</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NTU1ZjE1MGNhNjAxOTNiOWFkYmY5ZTVjNTNlOTQwZjZlOTlhNGY3Li4zMTE4ZTc4YTk1NjY0Y2Mx
ZTJmODgyZjE4NTE1ODVjYWYyYjZkNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1MyBAQAogMjAxNC0wNy0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CiAKKyAgICAgICAgUmVkdWNlIHRoZSBvdmVyaGVhZCBvZiB1cGRhdGluZyB0aGUgQXNz
ZW1ibGVyQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzQ2NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRpbmcgbmV3IGluc3RydWN0aW9ucyB0byB0aGUgYnVmZmVyIHdhcyBzdXJwcmlzaW5n
bHkgZXhwZW5zaXZlLCBlc3BlY2lhbGx5IG9uIEFSTXY3LgorICAgICAgICBUaGlzIHBhdGNoIGdy
ZWF0bHkgcmVkdWNlcyB0aGF0IG92ZXJoZWFkLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFu
dCBjaGFuZ2VzIHdlcmU6CisgICAgICAgIC0gIHB1dEludGVncmFsKCkgaXMgcmV3cml0dGVuIHNv
IHRoYXQgdGhlcmUgaXMgb25lIHZlcnkgc2hvcnQgcGF0aCB0byBhZGQgdGhlIEludGVncmFsVHlw
ZQorICAgICAgICAgICBpbiB0aGUgY29tbW9uIGNhc2UuCisgICAgICAgICAgIE9uIEFSTXY3LCB0
aGUgZ3JvdygpIHBhdGggb25seSBuZWVkcyB0byBiZSBjYWxsZWQgfjIlIG9mIHRoZSB0aW1lLiBX
aGVuIHRoYXQgaXMgbm90IHRoZSBjYXNlCisgICAgICAgICAgIHRoZSBjb2RlIGlzIHJlZHVjZSB0
byBhbmQgYWRkLCBjb21wYXJlLCBicmFuY2ggYW5kIDIgc3RvcmVzLgorICAgICAgICAtICBSZWR1
Y2UgYWxsIHRoZSBpbmRpcmVjdGlvbnMgdG8gYWNjZXNzIHRoZSBidWZmZXIuCisgICAgICAgICAg
IEFzc2VtYmxlckRhdGEgd2FzIGEgcmVmLWNvdW50ZWQsIGhlYXAgYWxsb2NhdGVkIHN0cnVjdC4g
SXQgaXRzZWxmIGp1c3QgY29udGFpbnMgYSB2ZWN0b3IKKyAgICAgICAgICAgdGhhdCB1c3VhbGx5
IGVuZHMgdXAgYmVpbmcgaGVhcCBhbGxvY2F0ZWQuCisKKyAgICAgICAgICAgTm9uZSBvZiB0aGUg
ZmVhdHVyZXMgb2YgdmVjdG9yIHdlcmUgdXNlZCwgYWxsIHdlIG5lZWQgaXMgYSBwbGFpbiBidWZm
ZXIuIEJ5IHJlbW92aW5nCisgICAgICAgICAgIEFzc2VtYmxlckRhdGEgYW5kIHRoZSBWZWN0b3Is
IGV2ZXJ5dGhpbmcgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gdGhlIEFzc2VtYmxlckJ1
ZmZlcidzIG1lbW9yeS4KKworICAgICAgICAgICBUaGUgcmVkdWNlZCBpbmRpcmVjdGlvbnMgYWxz
byBjYXVzZSBjbGFuZyB0byBpbmxpbmUgYSBsb3QgbW9yZSBvZiB0aGlzIGNvZGUuCisKKyAgICAg
ICAgKiBhc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmxl
ckJ1ZmZlcjo6QXNzZW1ibGVyQnVmZmVyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVy
Ojp+QXNzZW1ibGVyQnVmZmVyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVyOjpwdXRJ
bnRlZ3JhbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6cHV0SW50ZWdyYWxVbmNo
ZWNrZWQpOgorICAgICAgICBUaGlzIGlzIG9ubHkgbmVlZGVkIGJ5IHN1YmNsYXNzZXMsIHRob3Nl
IG1ldGhvZHMgYXJlIG1vdmVkIHRvICJwcm90ZWN0ZWQiIHZpc2liaWxpdHkuCisKKyAgICAgICAg
VGhlIG1ldGhvZCBwdXRJbnRlZ3JhbCgpIGlzIGFsc28gY2hhbmdlZCB0byBhdm9pZCByZXBlYXRp
bmcgdGhlIGFjY2VzcyB0byBtX2luZGV4IGFuZCB0aGUgYWRkLgorCisgICAgICAgIChKU0M6OkFz
c2VtYmxlckJ1ZmZlcjo6ZW5zdXJlU3BhY2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZm
ZXI6Omdyb3cpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OmlzQXZhaWxhYmxlKToK
KyAgICAgICAgKEpTQzo6QXNzZW1ibGVyRGF0YTo6QXNzZW1ibGVyRGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6c3RvcmFnZSk6IERlbGV0ZWQuCisKKyAgICAg
ICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5oOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpM
aW5rQnVmZmVyKToKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZXhlY3V0YWJsZU9mZnNldEZv
cik6CisgICAgICAgIFRoZSBsaW5rIGJ1ZmZlciB3YXMga2VlcGluZyBhIHJlZmVyZW5jZSB0byBB
c3NlbWJsZXJEYXRhLgorICAgICAgICBUaGUgZGF0YSBoYXMgdGhlIHNhbWUgbGlmZXNwYW4gYXMg
dGhlIE1hY3JvQXNzZW1ibGVyLgorCisgICAgICAgIEkgd291bGQgaGF2ZSBwcmVmZXJlZCBhY2Nl
c3NpbmcgdGhlIGRhdGEgZnJvbSB0aGUgYXNzZW1ibGVyIGRpcmVjdGx5IGluIGV4ZWN1dGFibGVP
ZmZzZXRGb3IoKQorICAgICAgICBidXQgdGhhdCBjb2RlIGlzIGZhaXJseSBob3Qgb24gYnJhbmNo
IGNvbXBhdGlvbiBzbyBJIGtlcHQgdGhlIGxvY2FsIGNvcHkuCisKKzIwMTQtMDctMDUgIEJlbmph
bWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCiAgICAgICAgIFtBUk12N10gVXNl
IDE2IGJpdHMgaW5zdHJ1Y3Rpb25zIGZvciBwdXNoL3BvcCB3aGVuIHBvc3NpYmxlCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2NTYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKaW5kZXgg
MTNkZTNkYWYyNTAxYWRhZWY5NjYzZWI1YTYyZTUwMTUwOGRjOWUyZC4uZjY5ZmJmZGE1NDE3Nzgx
OTc2MWIxZGM1NWEwODVhYTJjZWIyOGFhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCkBAIC01OSwzOCArNTksMTggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHVpbnQzMl90IG1fb2Zmc2V0OwogICAgIH07CiAKLSAgICBzdHJ1
Y3QgQXNzZW1ibGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEFzc2VtYmxlckRhdGE+IHsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBpbmxpbmVDYXBhY2l0eSA9IDEyODsKLQotICAgICAgICBB
c3NlbWJsZXJEYXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNpdHkpIHsgfQotICAgICAgICAKLSAg
ICAgICAgdHlwZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHksIFVuc2FmZVZlY3Rvck92
ZXJmbG93PiBEYXRhVmVjdG9yOwotICAgICAgICBEYXRhVmVjdG9yIG1fZGF0YTsKLSAgICB9Owot
CiAgICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2Vt
YmxlckJ1ZmZlcigpCi0gICAgICAgICAgICA6IG1fc3RvcmFnZShhZG9wdFJlZihuZXcgQXNzZW1i
bGVyRGF0YSgpKSkKLSAgICAgICAgICAgICwgbV9idWZmZXIobV9zdG9yYWdlLT5tX2RhdGEuYmVn
aW4oKSkKLSAgICAgICAgICAgICwgbV9jYXBhY2l0eShBc3NlbWJsZXJEYXRhOjppbmxpbmVDYXBh
Y2l0eSkKKyAgICAgICAgICAgIDogbV9idWZmZXIoc3RhdGljX2Nhc3Q8Y2hhcio+KGZhc3RNYWxs
b2MoaW5pdGlhbENhcGFjaXR5KSkpCisgICAgICAgICAgICAsIG1fY2FwYWNpdHkoaW5pdGlhbENh
cGFjaXR5KQogICAgICAgICAgICAgLCBtX2luZGV4KDApCiAgICAgICAgIHsKICAgICAgICAgfQog
CiAgICAgICAgIH5Bc3NlbWJsZXJCdWZmZXIoKQogICAgICAgICB7Ci0gICAgICAgIH0KLQotICAg
ICAgICBib29sIGlzQXZhaWxhYmxlKGludCBzcGFjZSkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIG1faW5kZXggKyBzcGFjZSA8PSBtX2NhcGFjaXR5OwotICAgICAgICB9Ci0KLSAgICAg
ICAgdm9pZCBlbnN1cmVTcGFjZShpbnQgc3BhY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlm
ICghaXNBdmFpbGFibGUoc3BhY2UpKQotICAgICAgICAgICAgICAgIGdyb3coKTsKKyAgICAgICAg
ICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaXNBbGln
bmVkKGludCBhbGlnbm1lbnQpIGNvbnN0CkBAIC05OCwyMSArNzgsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIHJldHVybiAhKG1faW5kZXggJiAoYWxpZ25tZW50IC0gMSkpOwogICAg
ICAgICB9CiAKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlPgotICAgICAg
ICB2b2lkIHB1dEludGVncmFsKEludGVncmFsVHlwZSB2YWx1ZSkKLSAgICAgICAgewotICAgICAg
ICAgICAgZW5zdXJlU3BhY2Uoc2l6ZW9mKEludGVncmFsVHlwZSkpOwotICAgICAgICAgICAgcHV0
SW50ZWdyYWxVbmNoZWNrZWQodmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgSW50ZWdyYWxUeXBlPgotICAgICAgICB2b2lkIHB1dEludGVncmFsVW5jaGVja2Vk
KEludGVncmFsVHlwZSB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGlzQXZh
aWxhYmxlKHNpemVvZihJbnRlZ3JhbFR5cGUpKSk7Ci0gICAgICAgICAgICAqcmVpbnRlcnByZXRf
Y2FzdF9wdHI8SW50ZWdyYWxUeXBlKj4obV9idWZmZXIgKyBtX2luZGV4KSA9IHZhbHVlOwotICAg
ICAgICAgICAgbV9pbmRleCArPSBzaXplb2YoSW50ZWdyYWxUeXBlKTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHZvaWQgcHV0Qnl0ZVVuY2hlY2tlZChpbnQ4X3QgdmFsdWUpIHsgcHV0SW50ZWdyYWxV
bmNoZWNrZWQodmFsdWUpOyB9CiAgICAgICAgIHZvaWQgcHV0Qnl0ZShpbnQ4X3QgdmFsdWUpIHsg
cHV0SW50ZWdyYWwodmFsdWUpOyB9CiAgICAgICAgIHZvaWQgcHV0U2hvcnRVbmNoZWNrZWQoaW50
MTZfdCB2YWx1ZSkgeyBwdXRJbnRlZ3JhbFVuY2hlY2tlZCh2YWx1ZSk7IH0KQEAgLTEzOCwxMCAr
MTAzLDI3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgdW5zaWduZWQg
ZGVidWdPZmZzZXQoKSB7IHJldHVybiBtX2luZGV4OyB9Ci0gICAgICAgIAotICAgICAgICBBc3Nl
bWJsZXJEYXRhKiBzdG9yYWdlKCkgeyByZXR1cm4gbV9zdG9yYWdlLmdldCgpOyB9CiAKICAgICBw
cm90ZWN0ZWQ6CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEludGVncmFsVHlwZT4KKyAgICAg
ICAgdm9pZCBwdXRJbnRlZ3JhbChJbnRlZ3JhbFR5cGUgdmFsdWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIG5leHRJbmRleCA9IG1faW5kZXggKyBzaXplb2YoSW50ZWdyYWxUeXBl
KTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShuZXh0SW5kZXggPiBtX2NhcGFjaXR5KSkKKyAg
ICAgICAgICAgICAgICBncm93KCk7CisgICAgICAgICAgICBBU1NFUlQoaXNBdmFpbGFibGUoc2l6
ZW9mKEludGVncmFsVHlwZSkpKTsKKyAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0X3B0cjxJ
bnRlZ3JhbFR5cGUqPihtX2J1ZmZlciArIG1faW5kZXgpID0gdmFsdWU7CisgICAgICAgICAgICBt
X2luZGV4ID0gbmV4dEluZGV4OworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgSW50ZWdyYWxUeXBlPgorICAgICAgICB2b2lkIHB1dEludGVncmFsVW5jaGVja2VkKEludGVn
cmFsVHlwZSB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGlzQXZhaWxhYmxl
KHNpemVvZihJbnRlZ3JhbFR5cGUpKSk7CisgICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdF9w
dHI8SW50ZWdyYWxUeXBlKj4obV9idWZmZXIgKyBtX2luZGV4KSA9IHZhbHVlOworICAgICAgICAg
ICAgbV9pbmRleCArPSBzaXplb2YoSW50ZWdyYWxUeXBlKTsKKyAgICAgICAgfQorCiAgICAgICAg
IHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoIWlzQXZhaWxhYmxlKHNpemUpKQpAQCAtMTUxLDE5ICsxMzMsMjkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBtX2luZGV4ICs9IHNpemU7CiAgICAgICAgIH0KIAot
ICAgICAgICB2b2lkIGdyb3coaW50IGV4dHJhQ2FwYWNpdHkgPSAwKQorICAgICAgICB2b2lkIGVu
c3VyZVNwYWNlKGludCBzcGFjZSkKICAgICAgICAgewotICAgICAgICAgICAgbV9jYXBhY2l0eSAr
PSBtX2NhcGFjaXR5IC8gMiArIGV4dHJhQ2FwYWNpdHk7CisgICAgICAgICAgICBpZiAoIWlzQXZh
aWxhYmxlKHNwYWNlKSkKKyAgICAgICAgICAgICAgICBncm93KCk7CisgICAgICAgIH0KIAotICAg
ICAgICAgICAgbV9zdG9yYWdlLT5tX2RhdGEuZ3JvdyhtX2NhcGFjaXR5KTsKLSAgICAgICAgICAg
IG1fYnVmZmVyID0gbV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKTsKKyAgICAgICAgdm9pZCBncm93
KGludCBleHRyYUNhcGFjaXR5ID0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jYXBhY2l0
eSA9IGZhc3RNYWxsb2NHb29kU2l6ZShtX2NhcGFjaXR5ICsgbV9jYXBhY2l0eSAvIDIgKyBleHRy
YUNhcGFjaXR5KTsKKyAgICAgICAgICAgIG1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGZh
c3RSZWFsbG9jKG1fYnVmZmVyLCBtX2NhcGFjaXR5KSk7CiAgICAgICAgIH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlZlB0cjxBc3NlbWJsZXJEYXRhPiBtX3N0b3JhZ2U7CisgICAgICAgIGJv
b2wgaXNBdmFpbGFibGUoaW50IHNwYWNlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
bV9pbmRleCArIHNwYWNlIDw9IG1fY2FwYWNpdHk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW5pdGlhbENhcGFjaXR5ID0gMTI4OworCiAgICAgICAgIGNoYXIq
IG1fYnVmZmVyOwotICAgICAgICBpbnQgbV9jYXBhY2l0eTsKLSAgICAgICAgaW50IG1faW5kZXg7
CisgICAgICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTGlua0J1ZmZlci5oCmluZGV4IDIwYmIzYWY3MmIzZTBmMTQzYmJlZTU3NGEyYTk5
ZDBjZWQ3NDljNzIuLjc0NjhkZmI1YzdmNjAzZjE2MzkzZmZmMzI3NzlkMWE2YjBmMzFkMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC04NCwx
MCArODQsMTAgQEAgcHVibGljOgogICAgICAgICA6IG1fc2l6ZSgwKQogI2lmIEVOQUJMRShCUkFO
Q0hfQ09NUEFDVElPTikKICAgICAgICAgLCBtX2luaXRpYWxTaXplKDApCisgICAgICAgICwgbV9z
dG9yYWdlKG1hc20tPm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmRhdGEoKSkKICNlbmRpZgogICAgICAg
ICAsIG1fZGlkQWxsb2NhdGUoZmFsc2UpCiAgICAgICAgICwgbV9jb2RlKDApCi0gICAgICAgICwg
bV9zdG9yYWdlKG1hc20tPm1fYXNzZW1ibGVyLmJ1ZmZlcigpLnN0b3JhZ2UoKSkKICAgICAgICAg
LCBtX2Fzc2VtYmxlcihtYXNtKQogICAgICAgICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcK
QEAgLTEwMSwxMCArMTAxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3NpemUoc2l6ZSkKICNp
ZiBFTkFCTEUoQlJBTkNIX0NPTVBBQ1RJT04pCiAgICAgICAgICwgbV9pbml0aWFsU2l6ZSgwKQor
ICAgICAgICAsIG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5idWZmZXIoKS5kYXRhKCkpCiAj
ZW5kaWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29kZShj
b2RlKQotICAgICAgICAsIG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5idWZmZXIoKS5zdG9y
YWdlKCkpCiAgICAgICAgICwgbV9hc3NlbWJsZXIobWFzbSkKICAgICAgICAgLCBtX3ZtKCZ2bSkK
ICNpZm5kZWYgTkRFQlVHCkBAIC0yNjQsNyArMjY0LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAg
ICAgIGlmICghbG9jYXRpb24pCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4obV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSlbbG9jYXRp
b24gLyBzaXplb2YoaW50MzJfdCkgLSAxXTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxp
bnQzMl90Kj4obV9zdG9yYWdlKVtsb2NhdGlvbiAvIHNpemVvZihpbnQzMl90KSAtIDFdOwogICAg
IH0KICNlbmRpZgogICAgIApAQCAtMzA1LDEwICszMDUsMTAgQEAgcHJpdmF0ZToKICAgICBzaXpl
X3QgbV9zaXplOwogI2lmIEVOQUJMRShCUkFOQ0hfQ09NUEFDVElPTikKICAgICBzaXplX3QgbV9p
bml0aWFsU2l6ZTsKKyAgICBjb25zdCB2b2lkKiBtX3N0b3JhZ2U7CiAjZW5kaWYKICAgICBib29s
IG1fZGlkQWxsb2NhdGU7CiAgICAgdm9pZCogbV9jb2RlOwotICAgIFJlZlB0cjxBc3NlbWJsZXJE
YXRhPiBtX3N0b3JhZ2U7CiAgICAgTWFjcm9Bc3NlbWJsZXIqIG1fYXNzZW1ibGVyOwogICAgIFZN
KiBtX3ZtOwogI2lmbmRlZiBOREVCVUcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234837</attachid>
            <date>2014-07-13 19:11:47 -0700</date>
            <delta_ts>2014-07-14 22:49:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134659-20140713191129.patch</filename>
            <type>text/plain</type>
            <size>9988</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjBiMjI5ZmU3YzNhODY2OTkxYmExYmE4M2NkMzRkNTJkNDkxZjJjLi41Njc1OTQ3MjhlYmRlNjgw
MzQyNjViN2QwOTc3OGRiODdjMjQ5M2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNiBAQAogMjAxNC0wNy0xMyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CiAKKyAgICAgICAgUmVkdWNlIHRoZSBvdmVyaGVhZCBvZiB1cGRhdGluZyB0aGUgQXNz
ZW1ibGVyQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzQ2NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgcmVncmVzc2lvbiB3YXMgaW50cm9kdWNlZCBpbiByMTY0NTQ4LgorCisgICAgICAg
ICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJE
YXRhOjpBc3NlbWJsZXJEYXRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyRGF0YTo6fkFzc2Vt
YmxlckRhdGEpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJEYXRhOjpidWZmZXIpOgorICAgICAg
ICAoSlNDOjpBc3NlbWJsZXJEYXRhOjpjYXBhY2l0eSk6CisgICAgICAgIChKU0M6OkFzc2VtYmxl
ckRhdGE6Omdyb3cpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OkFzc2VtYmxlckJ1
ZmZlcik6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6aXNBdmFpbGFibGUpOgorICAg
ICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OmRhdGEpOgorICAgICAgICAoSlNDOjpBc3NlbWJs
ZXJCdWZmZXI6OnJlbGVhc2VBc3NlbWJsZXJEYXRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVy
QnVmZmVyOjpwdXRJbnRlZ3JhbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6cHV0
SW50ZWdyYWxVbmNoZWNrZWQpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OmFwcGVu
ZCk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6Z3Jvdyk6CisgICAgICAgIChKU0M6
OkFzc2VtYmxlckJ1ZmZlcjo6fkFzc2VtYmxlckJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkFzc2VtYmxlckJ1ZmZlcjo6c3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuY3BwOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpjb3B5Q29tcGFj
dEFuZExpbmtDb2RlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5oOgorICAgICAg
ICAoSlNDOjpMaW5rQnVmZmVyOjpMaW5rQnVmZmVyKToKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZl
cjo6ZXhlY3V0YWJsZU9mZnNldEZvcik6CisKKzIwMTQtMDctMTMgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbW92ZSBzb21lIGRlYWQgY29kZSBm
cm9tIEZUTEpJVEZpbmFsaXplcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM0ODc0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fzc2VtYmxlckJ1ZmZlci5oCmluZGV4IDEzZGUzZGFmMjUwMWFkYWVmOTY2M2ViNWE2MmU1
MDE1MDhkYzllMmQuLjU1OGY1ODY1OWE4MmNhYThjMzhlZjE1OGEyM2RhNThlNWM1YjhmZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIu
aApAQCAtNTksMzIgKzU5LDYwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1aW50MzJfdCBt
X29mZnNldDsKICAgICB9OwogCi0gICAgc3RydWN0IEFzc2VtYmxlckRhdGEgOiBwdWJsaWMgUmVm
Q291bnRlZDxBc3NlbWJsZXJEYXRhPiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaW5saW5l
Q2FwYWNpdHkgPSAxMjg7CisgICAgY2xhc3MgQXNzZW1ibGVyRGF0YSB7CisgICAgcHVibGljOgor
ICAgICAgICBBc3NlbWJsZXJEYXRhKCkKKyAgICAgICAgICAgIDogbV9idWZmZXIobnVsbHB0cikK
KyAgICAgICAgICAgICwgbV9jYXBhY2l0eSgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAg
ICAgICBBc3NlbWJsZXJEYXRhKHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eSkKKyAgICAgICAgewor
ICAgICAgICAgICAgbV9jYXBhY2l0eSA9IGZhc3RNYWxsb2NHb29kU2l6ZShpbml0aWFsQ2FwYWNp
dHkpOworICAgICAgICAgICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZmFzdE1hbGxv
YyhtX2NhcGFjaXR5KSk7CisgICAgICAgIH0KKworICAgICAgICBBc3NlbWJsZXJEYXRhKEFzc2Vt
YmxlckRhdGEmJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgbV9idWZmZXIgPSBvdGhl
ci5tX2J1ZmZlcjsKKyAgICAgICAgICAgIG90aGVyLm1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgIG1fY2FwYWNpdHkgPSBvdGhlci5tX2NhcGFjaXR5OworICAgICAgICAgICAgb3RoZXIu
bV9jYXBhY2l0eSA9IDA7CisgICAgICAgIH0KKworICAgICAgICB+QXNzZW1ibGVyRGF0YSgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGNoYXIqIGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9CiAKLSAgICAg
ICAgQXNzZW1ibGVyRGF0YSgpIDogbV9kYXRhKGlubGluZUNhcGFjaXR5KSB7IH0KLSAgICAgICAg
Ci0gICAgICAgIHR5cGVkZWYgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5LCBVbnNhZmVWZWN0
b3JPdmVyZmxvdz4gRGF0YVZlY3RvcjsKLSAgICAgICAgRGF0YVZlY3RvciBtX2RhdGE7CisgICAg
ICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9jYXBhY2l0eTsgfQorCisg
ICAgICAgIHZvaWQgZ3Jvdyh1bnNpZ25lZCBleHRyYUNhcGFjaXR5ID0gMCkKKyAgICAgICAgewor
ICAgICAgICAgICAgbV9jYXBhY2l0eSA9IGZhc3RNYWxsb2NHb29kU2l6ZShtX2NhcGFjaXR5ICsg
bV9jYXBhY2l0eSAvIDIgKyBleHRyYUNhcGFjaXR5KTsKKyAgICAgICAgICAgIG1fYnVmZmVyID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KGZhc3RSZWFsbG9jKG1fYnVmZmVyLCBtX2NhcGFjaXR5KSk7Cisg
ICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIGNoYXIqIG1fYnVmZmVyOworICAgICAg
ICB1bnNpZ25lZCBtX2NhcGFjaXR5OwogICAgIH07CiAKICAgICBjbGFzcyBBc3NlbWJsZXJCdWZm
ZXIgeworICAgICAgICBzdGF0aWMgY29uc3QgaW50IGluaXRpYWxDYXBhY2l0eSA9IDEyODsKICAg
ICBwdWJsaWM6CiAgICAgICAgIEFzc2VtYmxlckJ1ZmZlcigpCi0gICAgICAgICAgICA6IG1fc3Rv
cmFnZShhZG9wdFJlZihuZXcgQXNzZW1ibGVyRGF0YSgpKSkKLSAgICAgICAgICAgICwgbV9idWZm
ZXIobV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSkKLSAgICAgICAgICAgICwgbV9jYXBhY2l0eShB
c3NlbWJsZXJEYXRhOjppbmxpbmVDYXBhY2l0eSkKKyAgICAgICAgICAgIDogbV9zdG9yYWdlKGlu
aXRpYWxDYXBhY2l0eSkKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAgICAgICB7CiAgICAg
ICAgIH0KIAotICAgICAgICB+QXNzZW1ibGVyQnVmZmVyKCkKLSAgICAgICAgewotICAgICAgICB9
Ci0KICAgICAgICAgYm9vbCBpc0F2YWlsYWJsZShpbnQgc3BhY2UpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBtX2luZGV4ICsgc3BhY2UgPD0gbV9jYXBhY2l0eTsKKyAgICAgICAgICAg
IHJldHVybiBtX2luZGV4ICsgc3BhY2UgPD0gbV9zdG9yYWdlLmNhcGFjaXR5KCk7CiAgICAgICAg
IH0KIAogICAgICAgICB2b2lkIGVuc3VyZVNwYWNlKGludCBzcGFjZSkKQEAgLTk4LDIxICsxMjYs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiAhKG1faW5kZXggJiAoYWxp
Z25tZW50IC0gMSkpOwogICAgICAgICB9CiAKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50
ZWdyYWxUeXBlPgotICAgICAgICB2b2lkIHB1dEludGVncmFsKEludGVncmFsVHlwZSB2YWx1ZSkK
LSAgICAgICAgewotICAgICAgICAgICAgZW5zdXJlU3BhY2Uoc2l6ZW9mKEludGVncmFsVHlwZSkp
OwotICAgICAgICAgICAgcHV0SW50ZWdyYWxVbmNoZWNrZWQodmFsdWUpOwotICAgICAgICB9Ci0K
LSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlPgotICAgICAgICB2b2lkIHB1
dEludGVncmFsVW5jaGVja2VkKEludGVncmFsVHlwZSB2YWx1ZSkKLSAgICAgICAgewotICAgICAg
ICAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKHNpemVvZihJbnRlZ3JhbFR5cGUpKSk7Ci0gICAgICAg
ICAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8SW50ZWdyYWxUeXBlKj4obV9idWZmZXIgKyBtX2lu
ZGV4KSA9IHZhbHVlOwotICAgICAgICAgICAgbV9pbmRleCArPSBzaXplb2YoSW50ZWdyYWxUeXBl
KTsKLSAgICAgICAgfQotCiAgICAgICAgIHZvaWQgcHV0Qnl0ZVVuY2hlY2tlZChpbnQ4X3QgdmFs
dWUpIHsgcHV0SW50ZWdyYWxVbmNoZWNrZWQodmFsdWUpOyB9CiAgICAgICAgIHZvaWQgcHV0Qnl0
ZShpbnQ4X3QgdmFsdWUpIHsgcHV0SW50ZWdyYWwodmFsdWUpOyB9CiAgICAgICAgIHZvaWQgcHV0
U2hvcnRVbmNoZWNrZWQoaW50MTZfdCB2YWx1ZSkgeyBwdXRJbnRlZ3JhbFVuY2hlY2tlZCh2YWx1
ZSk7IH0KQEAgLTEyNCw3ICsxMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lk
KiBkYXRhKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fYnVmZmVyOwor
ICAgICAgICAgICAgcmV0dXJuIG1fc3RvcmFnZS5idWZmZXIoKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHNpemVfdCBjb2RlU2l6ZSgpIGNvbnN0CkBAIC0xMzgsMzIgKzE1MSw0NiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyBy
ZXR1cm4gbV9pbmRleDsgfQotICAgICAgICAKLSAgICAgICAgQXNzZW1ibGVyRGF0YSogc3RvcmFn
ZSgpIHsgcmV0dXJuIG1fc3RvcmFnZS5nZXQoKTsgfQorCisgICAgICAgIEFzc2VtYmxlckRhdGEg
cmVsZWFzZUFzc2VtYmxlckRhdGEoKSB7IHJldHVybiBzdGQ6Om1vdmUobV9zdG9yYWdlKTsgfQog
CiAgICAgcHJvdGVjdGVkOgorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGU+
CisgICAgICAgIHZvaWQgcHV0SW50ZWdyYWwoSW50ZWdyYWxUeXBlIHZhbHVlKQorICAgICAgICB7
CisgICAgICAgICAgICB1bnNpZ25lZCBuZXh0SW5kZXggPSBtX2luZGV4ICsgc2l6ZW9mKEludGVn
cmFsVHlwZSk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkobmV4dEluZGV4ID4gbV9zdG9yYWdl
LmNhcGFjaXR5KCkpKQorICAgICAgICAgICAgICAgIGdyb3coKTsKKyAgICAgICAgICAgIEFTU0VS
VChpc0F2YWlsYWJsZShzaXplb2YoSW50ZWdyYWxUeXBlKSkpOworICAgICAgICAgICAgKnJlaW50
ZXJwcmV0X2Nhc3RfcHRyPEludGVncmFsVHlwZSo+KG1fc3RvcmFnZS5idWZmZXIoKSArIG1faW5k
ZXgpID0gdmFsdWU7CisgICAgICAgICAgICBtX2luZGV4ID0gbmV4dEluZGV4OworICAgICAgICB9
CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlPgorICAgICAgICB2b2lk
IHB1dEludGVncmFsVW5jaGVja2VkKEludGVncmFsVHlwZSB2YWx1ZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKHNpemVvZihJbnRlZ3JhbFR5cGUpKSk7CisgICAg
ICAgICAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8SW50ZWdyYWxUeXBlKj4obV9zdG9yYWdlLmJ1
ZmZlcigpICsgbV9pbmRleCkgPSB2YWx1ZTsKKyAgICAgICAgICAgIG1faW5kZXggKz0gc2l6ZW9m
KEludGVncmFsVHlwZSk7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIGFwcGVuZChjb25zdCBj
aGFyKiBkYXRhLCBpbnQgc2l6ZSkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFpc0F2YWls
YWJsZShzaXplKSkKICAgICAgICAgICAgICAgICBncm93KHNpemUpOwogCi0gICAgICAgICAgICBt
ZW1jcHkobV9idWZmZXIgKyBtX2luZGV4LCBkYXRhLCBzaXplKTsKKyAgICAgICAgICAgIG1lbWNw
eShtX3N0b3JhZ2UuYnVmZmVyKCkgKyBtX2luZGV4LCBkYXRhLCBzaXplKTsKICAgICAgICAgICAg
IG1faW5kZXggKz0gc2l6ZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZ3JvdyhpbnQgZXh0
cmFDYXBhY2l0eSA9IDApCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fY2FwYWNpdHkgKz0gbV9j
YXBhY2l0eSAvIDIgKyBleHRyYUNhcGFjaXR5OwotCi0gICAgICAgICAgICBtX3N0b3JhZ2UtPm1f
ZGF0YS5ncm93KG1fY2FwYWNpdHkpOwotICAgICAgICAgICAgbV9idWZmZXIgPSBtX3N0b3JhZ2Ut
Pm1fZGF0YS5iZWdpbigpOworICAgICAgICAgICAgbV9zdG9yYWdlLmdyb3coZXh0cmFDYXBhY2l0
eSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZlB0cjxBc3NlbWJsZXJE
YXRhPiBtX3N0b3JhZ2U7Ci0gICAgICAgIGNoYXIqIG1fYnVmZmVyOwotICAgICAgICBpbnQgbV9j
YXBhY2l0eTsKLSAgICAgICAgaW50IG1faW5kZXg7CisgICAgICAgIEFzc2VtYmxlckRhdGEgbV9z
dG9yYWdlOworICAgICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5r
QnVmZmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5j
cHAKaW5kZXggY2ViNDAxOTU4YzIyOWU4NGI4NmYzZjFmZjJiY2Q2MmMyMmE3MTZmOS4uYzkyY2Yw
NWNmM2Y2YjIzMWUyNDMxZWM4MjdlYzlmMTU5YjljYzQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCkBAIC04NCw2ICs4NCw3IEBAIHZvaWQg
TGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZShNYWNyb0Fzc2VtYmxlciYgbWFjcm9B
c3NlbWJsZXIsIHZvaWQqIG93CiAgICAgYWxsb2NhdGUobV9pbml0aWFsU2l6ZSwgb3duZXJVSUQs
IGVmZm9ydCk7CiAgICAgaWYgKGRpZEZhaWxUb0FsbG9jYXRlKCkpCiAgICAgICAgIHJldHVybjsK
KyAgICBtX2Fzc2VtYmxlclN0b3JhZ2UgPSBtYWNyb0Fzc2VtYmxlci5tX2Fzc2VtYmxlci5idWZm
ZXIoKS5yZWxlYXNlQXNzZW1ibGVyRGF0YSgpOwogICAgIHVpbnQ4X3QqIGluRGF0YSA9ICh1aW50
OF90KiltYWNyb0Fzc2VtYmxlci51bmxpbmtlZENvZGUoKTsKICAgICB1aW50OF90KiBvdXREYXRh
ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9jb2RlKTsKICAgICBpbnQgcmVhZFB0ciA9
IDA7CkBAIC0xMDQsNiArMTA1LDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFuZExp
bmtDb2RlKE1hY3JvQXNzZW1ibGVyJiBtYWNyb0Fzc2VtYmxlciwgdm9pZCogb3cKICAgICAgICAg
QVNTRVJUKCEod3JpdGVQdHIgJSAyKSk7CiAgICAgICAgIHdoaWxlIChjb3B5U291cmNlICE9IGNv
cHlFbmQpCiAgICAgICAgICAgICAqY29weURzdCsrID0gKmNvcHlTb3VyY2UrKzsKKyAgICAgICAg
Ly8gRklYTUUhISEKICAgICAgICAgbWFjcm9Bc3NlbWJsZXIucmVjb3JkTGlua09mZnNldHMocmVh
ZFB0ciwganVtcHNUb0xpbmtbaV0uZnJvbSgpLCBvZmZzZXQpOwogICAgICAgICByZWFkUHRyICs9
IHJlZ2lvblNpemU7CiAgICAgICAgIHdyaXRlUHRyICs9IHJlZ2lvblNpemU7CkBAIC0xMjMsNiAr
MTI1LDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFuZExpbmtDb2RlKE1hY3JvQXNz
ZW1ibGVyJiBtYWNyb0Fzc2VtYmxlciwgdm9pZCogb3cKICAgICAgICAgICAgIGludDMyX3QgZGVs
dGEgPSBtYWNyb0Fzc2VtYmxlci5qdW1wU2l6ZURlbHRhKGp1bXBzVG9MaW5rW2ldLnR5cGUoKSwg
anVtcExpbmtUeXBlKTsKICAgICAgICAgICAgIGlmIChkZWx0YSkgewogICAgICAgICAgICAgICAg
IHdyaXRlUHRyIC09IGRlbHRhOworICAgICAgICAgICAgICAgIC8vIEZJWE1FISEhCiAgICAgICAg
ICAgICAgICAgbWFjcm9Bc3NlbWJsZXIucmVjb3JkTGlua09mZnNldHMoanVtcHNUb0xpbmtbaV0u
ZnJvbSgpIC0gZGVsdGEsIHJlYWRQdHIsIHJlYWRQdHIgLSB3cml0ZVB0cik7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVm
ZmVyLmgKaW5kZXggZTViZjVkN2E2MjczN2MyMDg0MzA4OTRiNTcyNjIxYmNiN2JkY2RmNC4uNTE2
ZTQ1NjhjODA3NGQ1NTdkOWIyZTAwMTg4Y2UwOWQ2N2Q4NzAzYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKQEAgLTg3LDcgKzg3LDYgQEAgcHVibGlj
OgogI2VuZGlmCiAgICAgICAgICwgbV9kaWRBbGxvY2F0ZShmYWxzZSkKICAgICAgICAgLCBtX2Nv
ZGUoMCkKLSAgICAgICAgLCBtX3N0b3JhZ2UobWFjcm9Bc3NlbWJsZXIubV9hc3NlbWJsZXIuYnVm
ZmVyKCkuc3RvcmFnZSgpKQogICAgICAgICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcKICAg
ICAgICAgLCBtX2NvbXBsZXRlZChmYWxzZSkKQEAgLTEwMyw3ICsxMDIsNiBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29kZShj
b2RlKQotICAgICAgICAsIG1fc3RvcmFnZShtYWNyb0Fzc2VtYmxlci5tX2Fzc2VtYmxlci5idWZm
ZXIoKS5zdG9yYWdlKCkpCiAgICAgICAgICwgbV92bSgmdm0pCiAjaWZuZGVmIE5ERUJVRwogICAg
ICAgICAsIG1fY29tcGxldGVkKGZhbHNlKQpAQCAtMjUwLDcgKzI0OCw4IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX2NvZGU7CiAgICAgfQotICAgIAorCisgICAgLy8gRklYTUU6
IHRoaXMgZG9lcyBub3QgYWNjb3VudCBmb3IgdGhlIEFzc2VtYmxlckRhdGEgc2l6ZSEKICAgICBz
aXplX3Qgc2l6ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gbV9zaXplOwpAQCAtMjYyLDcgKzI2
MSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAoIWxvY2F0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KG1fc3Rv
cmFnZS0+bV9kYXRhLmJlZ2luKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0gMV07Cisg
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KG1fYXNzZW1ibGVyU3RvcmFnZS5i
dWZmZXIoKSlbbG9jYXRpb24gLyBzaXplb2YoaW50MzJfdCkgLSAxXTsKICAgICB9CiAjZW5kaWYK
ICAgICAKQEAgLTMwMywxMCArMzAyLDEwIEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fc2l6ZTsK
ICNpZiBFTkFCTEUoQlJBTkNIX0NPTVBBQ1RJT04pCiAgICAgc2l6ZV90IG1faW5pdGlhbFNpemU7
CisgICAgQXNzZW1ibGVyRGF0YSBtX2Fzc2VtYmxlclN0b3JhZ2U7CiAjZW5kaWYKICAgICBib29s
IG1fZGlkQWxsb2NhdGU7CiAgICAgdm9pZCogbV9jb2RlOwotICAgIFJlZlB0cjxBc3NlbWJsZXJE
YXRhPiBtX3N0b3JhZ2U7CiAgICAgVk0qIG1fdm07CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wg
bV9jb21wbGV0ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234905</attachid>
            <date>2014-07-14 22:53:25 -0700</date>
            <delta_ts>2014-07-15 16:59:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134659-20140714225247.patch</filename>
            <type>text/plain</type>
            <size>30185</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NjRmNTU2MGRkOGFiMjQwZWZlODI2NzZhOWI3MTBlMTdlNDdmNzBkLi5mZDY5MDVlZjk1MTVkNjU1
NzZhYTk0NzE5NDI4ZDRhY2M0OTBjMTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxMDQgQEAKIDIwMTQtMDctMTQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJr
aXQub3JnPgogCisgICAgICAgIFJlZHVjZSB0aGUgb3ZlcmhlYWQgb2YgdXBkYXRpbmcgdGhlIEFz
c2VtYmxlckJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM0NjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW4gcjE2NDU0OCwgdGhlIGxpbmtlciB3YXMgY2hhbmdlZCB0byBhbGxvdyB0aGUgTGlu
a0J1ZmZlciB0byBzdXJ2aXZlIGl0cyBNYWNyb0Fzc2VtYmxlci4KKyAgICAgICAgVGhhdCBmZWF0
dXJlIGlzIHVzZWZ1bCBmb3IgSlNDIHRvIGdldCBvZmZzZXRzIGluc2lkZSBhIGxpbmtlZCBidWZm
ZXIgaW4gb3JkZXIgdG8ganVtcCBkaXJlY3RseQorICAgICAgICB0aGVyZS4KKworICAgICAgICBP
biBBUk0sIHdlIHVzZSBicmFuY2ggY29tcGFjdGlvbiBhbmQgd2UgbmVlZCB0byBrZWVwIHRoZSAi
Y29tcGFjdGlvbiBvZmZzZXQiIHNvbWV3aGVyIHRvIGJlIGFibGUKKyAgICAgICAgdG8gZ2V0IHRo
ZSByZWFsIGFkZHJlc3Mgb2YgYSBsYWJsZS4gVGhhdCBpcyBkb25lIGJ5IHJldXNpbmcgdGhlIG1l
bW9yeSBvZiBBc3NlbWJsZXJEYXRhLgorCisgICAgICAgIFRvIHNoYXJlIHRoZSBtZW1vcnkgYmV0
d2VlbiBMaW5rQnVmZmVyIGFuZCB0aGUgQXNzZW1ibGVyLCByMTY0NTQ4IG1vdmVkIHRoZSBBc3Nl
bWJsZXJEYXRhIGludG8KKyAgICAgICAgYSByZWYtY291bnRlZCBvYmplY3QuIFVuZm9ydHVuYXRl
bHksIHRoZSBleHRyYSBjb21wbGV4aXR5IHJlbGF0ZWQgdG8gdGhlIG5ldyBBc3NlbWJsZXJEYXRh
IHdhcyBlbm91Z2gKKyAgICAgICAgdG8gbWFrZSBjbGFuZyBnaXZlIHVwIGEgYnVuY2ggb2Ygb3B0
aW1pemF0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNoIHNvbHZlIChzb21lIG9mKSB0aGUgcHJv
YmxlbXMgYnkgbWFraW5nIEFzc2VtYmxlckJ1ZmZlciBhbmQgQXNzZW1ibGVyRGF0YSBzdXBlciBs
b3cgb3ZlcmhlYWQgc3RydWN0dXJlcy4KKyAgICAgICAgSW4gcGFydGljdWxhciwgdGhlIGdyb3co
KSBmdW5jdGlvbiBiZWNvbWVzIDggVGh1bWIgaW5zdHJ1Y3Rpb25zLCB3aGljaCBpcyBlYXNpbHkg
aW5saW5lZCBldmVyeXdoZXJlIGl0IGlzIHVzZWQuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzaGFy
aW5nIG93bmVyc2hpcCBiZXR3ZWVuIHRoZSBBc3NlbWJsZXIgYW5kIExpbmtCdWZmZXIsIExpbmtC
dWZmZXIgbm93IHRha2VzIGZ1bGwgb3duZXJzaGlwIG9mCisgICAgICAgIHRoZSBBc3NlbWJsZXJE
YXRhLiBJIGZlZWwgdGhpcyBpcyBhbHNvIHNhZmVyIHNpbmNlIExpbmtCdWZmZXIgaXMgcmV1c2lu
ZyB0aGUgQXNzZW1ibGVyRGF0YSBpcyBhIHZlcnkKKyAgICAgICAgc3BlY2lmaWMgd2F5IHRoYXQg
d291bGQgbWFrZSBpdCB1bnVzYWJsZSBmb3IgdGhlIEFzc2VtYmxlci4KKworICAgICAgICAtLSBU
ZWNobmljYWwgZGV0YWlscyAtLQorCisgICAgICAgIEZyb20gTGlua0J1ZmZlciwgd2UgZG9uJ3Qg
d2FudCB0byBldmVyIGFjY2VzcyB0aGUgQXNzZW1ibGVyIGFmdGVyIHJlbGVhc2luZyBpdHMgYnVm
ZmVyIChvciB3cml0dGluZyBhbnl0aGluZworICAgICAgICBpbnRvIGl0IHJlYWxseSkuIFRoaXMg
d2FzIG9idmlvdXNseSBhbHJlYWR5IHRoZSBjYXNlLCBidXQgdGhhdCB3YXMgaGFyZCB0byBwcm92
ZSBmcm9tIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoKS4KKyAgICAgICAgVG8g
bWFrZSB0aGlzIGVhc2llciB0byB3b3JrIHdpdGgsIEkgY2hhbmdlZCBhbGwgdGhlIGFzc2VtYmxl
ciBzcGVjaWZpYyBmdW5jdGlvbiB0byBiZSBzdGF0aWMuIFRoaXMgd2F5IHdlIGtub3cKKyAgICAg
ICAgZXhhY3RseSB3aGF0IGNvZGUgYWNjZXNzIHRoZSBBc3NlbWJsZXIgaW5zdGFuY2UuIFRoZSBj
b2RlIHRoYXQgZG9lcyBhY2Nlc3MgdGhlIGluc3RhbmNlIGlzIHRoZW4gbW92ZWQKKyAgICAgICAg
YXQgdGhlIGJlZ2lubmluZywgYmVmb3JlIHdlIG1vZGlmeSBhbnl0aGluZy4KKworICAgICAgICBU
aGUgZnVuY3Rpb24gcmVjb3JkTGlua09mZnNldHMoKSB0aGF0IHdhcyBvbiB0aGUgTWFjcm9Bc3Nl
bWJsZXIgYW5kIGNvcGllZCBpbiBBc3NlbWJsZXIgd2FzIG1vdmVkIGRpcmVjdGx5CisgICAgICAg
IHRvIExpbmtCdWZmZXIuIFRoaXMgbWFrZSB0aGUgbW9kaWZpY2F0aW9uIG9mIEFzc2VtYmxlckRh
dGEgY29tcGxldGVseSBleHBsaWNpdCwgYW5kIHRoYXQgY29kZSBpcyBzcGVjaWZpYworICAgICAg
ICB0byBMaW5rQnVmZmVyIGFueXdheSAoc2VlIExpbmtCdWZmZXI6OmV4ZWN1dGFibGVPZmZzZXRG
b3IoKSkuCisKKyAgICAgICAgLS0gUGVyZiBpbXBhY3QgLS0KKworICAgICAgICBUaGlzIGRvZXMg
bm90IHB1dCB1cyBleGFjdGx5IGF0IGJlZm9yZSByMTY0NTQ4IGR1ZSB0byB0aGUgbWlzc2luZyBp
bmxpbmUgYnVmZmVyLiBTdGlsbCwgaXQgaXMgdmVyeSBjbG9zZS4KKyAgICAgICAgT24gQVJNdjcs
IHRoaXMgcmVkdWNlcyB0aGUgdGltZSBzcGVudCBpbiBBc3NlbWJsZXIgYnkgaGFsZi4gT24gdGhl
IENTUyBKSVQsIHRoaXMgcmVkdWNlcyB0aGUgY29tcGlsYXRpb24KKyAgICAgICAgdGltZSBieSB+
MjAlLgorCisgICAgICAgIEkgY291bGQgbm90IG1lYXN1cmUgYW55IGRpZmZlcmVuY2Ugb24geDg2
XzY0LgorCisgICAgICAgICogYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmg6CisgICAgICAgIChK
U0M6OkFSTTY0QXNzZW1ibGVyOjpqdW1wU2l6ZURlbHRhKToKKyAgICAgICAgKEpTQzo6QVJNNjRB
c3NlbWJsZXI6OmNhbkNvbXBhY3QpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6Y29t
cHV0ZUp1bXBUeXBlKToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxpbmspOgorICAg
ICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6cmVjb3JkTGlua09mZnNldHMpOiBEZWxldGVkLgor
ICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12
N0Fzc2VtYmxlcjo6aWZUaGVuRWxzZUNvbmRpdGlvbkJpdCk6CisgICAgICAgIChKU0M6OkFSTXY3
QXNzZW1ibGVyOjppZlRoZW5FbHNlKToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6Omp1
bXBTaXplRGVsdGEpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6Y2FuQ29tcGFjdCk6
CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpjb21wdXRlSnVtcFR5cGUpOgorICAgICAg
ICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6bGluayk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1i
bGVyOjpsaW5rSnVtcFQxKToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmxpbmtKdW1w
VDMpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6bGlua0NvbmRpdGlvbmFsSnVtcFQ0
KToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmxpbmtDb25kaXRpb25hbEJYKToKKyAg
ICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnJlY29yZExpbmtPZmZzZXRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBhc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkFz
c2VtYmxlckRhdGE6OkFzc2VtYmxlckRhdGEpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJEYXRh
OjpvcGVyYXRvcj0pOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJEYXRhOjp+QXNzZW1ibGVyRGF0
YSk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckRhdGE6OmJ1ZmZlcik6CisgICAgICAgIChKU0M6
OkFzc2VtYmxlckRhdGE6OmNhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyRGF0YTo6
Z3Jvdyk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6QXNzZW1ibGVyQnVmZmVyKToK
KyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVyOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChK
U0M6OkFzc2VtYmxlckJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZl
cjo6cmVsZWFzZUFzc2VtYmxlckRhdGEpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6
OnB1dEludGVncmFsKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVyOjpwdXRJbnRlZ3Jh
bFVuY2hlY2tlZCk6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6YXBwZW5kKToKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVyOjpncm93KToKKyAgICAgICAgKEpTQzo6QXNzZW1i
bGVyQnVmZmVyOjp+QXNzZW1ibGVyQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QXNz
ZW1ibGVyQnVmZmVyOjpzdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTGlu
a0J1ZmZlci5jcHA6CisgICAgICAgIChKU0M6OnJlY29yZExpbmtPZmZzZXRzKToKKyAgICAgICAg
KEpTQzo6TGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZSk6CisgICAgICAgICogYXNz
ZW1ibGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6TGlua0J1ZmZl
cik6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OmV4ZWN1dGFibGVPZmZzZXRGb3IpOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OmNhbkNvbXBhY3QpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpjb21wdXRlSnVtcFR5cGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0OjpqdW1wU2l6ZURlbHRhKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NDo6bGluayk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnJlY29yZExpbmtP
ZmZzZXRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpjYW5Db21wYWN0KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29tcHV0ZUp1bXBUeXBlKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6anVtcFNpemVEZWx0YSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmxpbmspOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTXY3OjpyZWNvcmRMaW5rT2Zmc2V0cyk6IERlbGV0ZWQuCisKKzIwMTQtMDctMTQgIEJl
bmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbW92ZSBz
b21lIGRlYWQgY29kZSBmcm9tIEZUTEpJVEZpbmFsaXplcgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0ODc0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAppbmRleCA2YThhZjgzMzA1ZTg3MjEx
MDNlZjEwZjFjYzdiZTJjNGIyZjdiNmRhLi5kNTExODE0MDljODhhZDRkYjBlNWJhNDg5NTc2ZTM3
YzQ0MjZhNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FS
TTY0QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02
NEFzc2VtYmxlci5oCkBAIC0yODc3LDIwICsyODc3LDIwIEBAIHB1YmxpYzoKIAogICAgIC8vIEFz
c2VtYmxlciBhZG1pbiBtZXRob2RzOgogCi0gICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUg
anVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9T
SVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7IH0KKyAgICBzdGF0
aWMgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1w
TGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9TSVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9T
SVpFKGp1bXBMaW5rVHlwZSk7IH0KIAogICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgbGlu
a1JlY29yZFNvdXJjZUNvbXBhcmF0b3IoY29uc3QgTGlua1JlY29yZCYgYSwgY29uc3QgTGlua1Jl
Y29yZCYgYikKICAgICB7CiAgICAgICAgIHJldHVybiBhLmZyb20oKSA8IGIuZnJvbSgpOwogICAg
IH0KIAotICAgIGJvb2wgY2FuQ29tcGFjdChKdW1wVHlwZSBqdW1wVHlwZSkKKyAgICBzdGF0aWMg
Ym9vbCBjYW5Db21wYWN0KEp1bXBUeXBlIGp1bXBUeXBlKQogICAgIHsKICAgICAgICAgLy8gRml4
ZWQganVtcHMgY2Fubm90IGJlIGNvbXBhY3RlZAogICAgICAgICByZXR1cm4gKGp1bXBUeXBlID09
IEp1bXBOb0NvbmRpdGlvbikgfHwgKGp1bXBUeXBlID09IEp1bXBDb25kaXRpb24pIHx8IChqdW1w
VHlwZSA9PSBKdW1wQ29tcGFyZUFuZEJyYW5jaCkgfHwgKGp1bXBUeXBlID09IEp1bXBUZXN0Qml0
KTsKICAgICB9CiAKLSAgICBKdW1wTGlua1R5cGUgY29tcHV0ZUp1bXBUeXBlKEp1bXBUeXBlIGp1
bXBUeXBlLCBjb25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykKKyAgICBzdGF0
aWMgSnVtcExpbmtUeXBlIGNvbXB1dGVKdW1wVHlwZShKdW1wVHlwZSBqdW1wVHlwZSwgY29uc3Qg
dWludDhfdCogZnJvbSwgY29uc3QgdWludDhfdCogdG8pCiAgICAgewogICAgICAgICBzd2l0Y2gg
KGp1bXBUeXBlKSB7CiAgICAgICAgIGNhc2UgSnVtcEZpeGVkOgpAQCAtMjk0MiwyOSArMjk0Miwy
MCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBMaW5rSnVtcE5vQ29uZGl0aW9uOwogICAgIH0K
IAotICAgIEp1bXBMaW5rVHlwZSBjb21wdXRlSnVtcFR5cGUoTGlua1JlY29yZCYgcmVjb3JkLCBj
b25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykKKyAgICBzdGF0aWMgSnVtcExp
bmtUeXBlIGNvbXB1dGVKdW1wVHlwZShMaW5rUmVjb3JkJiByZWNvcmQsIGNvbnN0IHVpbnQ4X3Qq
IGZyb20sIGNvbnN0IHVpbnQ4X3QqIHRvKQogICAgIHsKICAgICAgICAgSnVtcExpbmtUeXBlIGxp
bmtUeXBlID0gY29tcHV0ZUp1bXBUeXBlKHJlY29yZC50eXBlKCksIGZyb20sIHRvKTsKICAgICAg
ICAgcmVjb3JkLnNldExpbmtUeXBlKGxpbmtUeXBlKTsKICAgICAgICAgcmV0dXJuIGxpbmtUeXBl
OwogICAgIH0KIAotICAgIHZvaWQgcmVjb3JkTGlua09mZnNldHMoaW50MzJfdCByZWdpb25TdGFy
dCwgaW50MzJfdCByZWdpb25FbmQsIGludDMyX3Qgb2Zmc2V0KQotICAgIHsKLSAgICAgICAgaW50
MzJfdCBwdHIgPSByZWdpb25TdGFydCAvIHNpemVvZihpbnQzMl90KTsKLSAgICAgICAgY29uc3Qg
aW50MzJfdCBlbmQgPSByZWdpb25FbmQgLyBzaXplb2YoaW50MzJfdCk7Ci0gICAgICAgIGludDMy
X3QqIG9mZnNldHMgPSBzdGF0aWNfY2FzdDxpbnQzMl90Kj4obV9idWZmZXIuZGF0YSgpKTsKLSAg
ICAgICAgd2hpbGUgKHB0ciA8IGVuZCkKLSAgICAgICAgICAgIG9mZnNldHNbcHRyKytdID0gb2Zm
c2V0OwotICAgIH0KLQogICAgIFZlY3RvcjxMaW5rUmVjb3JkLCAwLCBVbnNhZmVWZWN0b3JPdmVy
Zmxvdz4mIGp1bXBzVG9MaW5rKCkKICAgICB7CiAgICAgICAgIHN0ZDo6c29ydChtX2p1bXBzVG9M
aW5rLmJlZ2luKCksIG1fanVtcHNUb0xpbmsuZW5kKCksIGxpbmtSZWNvcmRTb3VyY2VDb21wYXJh
dG9yKTsKICAgICAgICAgcmV0dXJuIG1fanVtcHNUb0xpbms7CiAgICAgfQogCi0gICAgdm9pZCBB
TFdBWVNfSU5MSU5FIGxpbmsoTGlua1JlY29yZCYgcmVjb3JkLCB1aW50OF90KiBmcm9tLCB1aW50
OF90KiB0bykKKyAgICBzdGF0aWMgdm9pZCBBTFdBWVNfSU5MSU5FIGxpbmsoTGlua1JlY29yZCYg
cmVjb3JkLCB1aW50OF90KiBmcm9tLCB1aW50OF90KiB0bykKICAgICB7CiAgICAgICAgIHN3aXRj
aCAocmVjb3JkLmxpbmtUeXBlKCkpIHsKICAgICAgICAgY2FzZSBMaW5rSnVtcE5vQ29uZGl0aW9u
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
CmluZGV4IDAxOTI3NzM3MmNlNzhlZjMyODY2OTVkMGUwMjMzMGIyOGZiYmE2NzAuLmZmYzMwOTAw
Y2UzNzA0ZjVhZTFlMzFiYzIwYTdlNzgzYTVkZDhiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTgwNSwxMSArODA1
LDExIEBAIHByaXZhdGU6CiAgICAgY2xhc3MgQVJNSW5zdHJ1Y3Rpb25Gb3JtYXR0ZXI7CiAKICAg
ICAvLyBmYWxzZSBtZWFucyBlbHNlIQotICAgIGJvb2wgaWZUaGVuRWxzZUNvbmRpdGlvbkJpdChD
b25kaXRpb24gY29uZGl0aW9uLCBib29sIGlzSWYpCisgICAgc3RhdGljIGJvb2wgaWZUaGVuRWxz
ZUNvbmRpdGlvbkJpdChDb25kaXRpb24gY29uZGl0aW9uLCBib29sIGlzSWYpCiAgICAgewogICAg
ICAgICByZXR1cm4gaXNJZiA/IChjb25kaXRpb24gJiAxKSA6ICEoY29uZGl0aW9uICYgMSk7CiAg
ICAgfQotICAgIHVpbnQ4X3QgaWZUaGVuRWxzZShDb25kaXRpb24gY29uZGl0aW9uLCBib29sIGlu
c3QyaWYsIGJvb2wgaW5zdDNpZiwgYm9vbCBpbnN0NGlmKQorICAgIHN0YXRpYyB1aW50OF90IGlm
VGhlbkVsc2UoQ29uZGl0aW9uIGNvbmRpdGlvbiwgYm9vbCBpbnN0MmlmLCBib29sIGluc3QzaWYs
IGJvb2wgaW5zdDRpZikKICAgICB7CiAgICAgICAgIGludCBtYXNrID0gKGlmVGhlbkVsc2VDb25k
aXRpb25CaXQoY29uZGl0aW9uLCBpbnN0MmlmKSA8PCAzKQogICAgICAgICAgICAgfCAoaWZUaGVu
RWxzZUNvbmRpdGlvbkJpdChjb25kaXRpb24sIGluc3QzaWYpIDw8IDIpCkBAIC04MTgsNyArODE4
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUKChjb25kaXRpb24gIT0gQ29uZGl0aW9uQUwp
IHx8ICEobWFzayAmIChtYXNrIC0gMSkpKTsKICAgICAgICAgcmV0dXJuIChjb25kaXRpb24gPDwg
NCkgfCBtYXNrOwogICAgIH0KLSAgICB1aW50OF90IGlmVGhlbkVsc2UoQ29uZGl0aW9uIGNvbmRp
dGlvbiwgYm9vbCBpbnN0MmlmLCBib29sIGluc3QzaWYpCisgICAgc3RhdGljIHVpbnQ4X3QgaWZU
aGVuRWxzZShDb25kaXRpb24gY29uZGl0aW9uLCBib29sIGluc3QyaWYsIGJvb2wgaW5zdDNpZikK
ICAgICB7CiAgICAgICAgIGludCBtYXNrID0gKGlmVGhlbkVsc2VDb25kaXRpb25CaXQoY29uZGl0
aW9uLCBpbnN0MmlmKSA8PCAzKQogICAgICAgICAgICAgfCAoaWZUaGVuRWxzZUNvbmRpdGlvbkJp
dChjb25kaXRpb24sIGluc3QzaWYpIDw8IDIpCkBAIC04MjYsNyArODI2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgQVNTRVJUKChjb25kaXRpb24gIT0gQ29uZGl0aW9uQUwpIHx8ICEobWFzayAmICht
YXNrIC0gMSkpKTsKICAgICAgICAgcmV0dXJuIChjb25kaXRpb24gPDwgNCkgfCBtYXNrOwogICAg
IH0KLSAgICB1aW50OF90IGlmVGhlbkVsc2UoQ29uZGl0aW9uIGNvbmRpdGlvbiwgYm9vbCBpbnN0
MmlmKQorICAgIHN0YXRpYyB1aW50OF90IGlmVGhlbkVsc2UoQ29uZGl0aW9uIGNvbmRpdGlvbiwg
Ym9vbCBpbnN0MmlmKQogICAgIHsKICAgICAgICAgaW50IG1hc2sgPSAoaWZUaGVuRWxzZUNvbmRp
dGlvbkJpdChjb25kaXRpb24sIGluc3QyaWYpIDw8IDMpCiAgICAgICAgICAgICB8IDQ7CkBAIC04
MzQsNyArODM0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIChjb25kaXRpb24gPDwgNCkg
fCBtYXNrOwogICAgIH0KIAotICAgIHVpbnQ4X3QgaWZUaGVuRWxzZShDb25kaXRpb24gY29uZGl0
aW9uKQorICAgIHN0YXRpYyB1aW50OF90IGlmVGhlbkVsc2UoQ29uZGl0aW9uIGNvbmRpdGlvbikK
ICAgICB7CiAgICAgICAgIGludCBtYXNrID0gODsKICAgICAgICAgcmV0dXJuIChjb25kaXRpb24g
PDwgNCkgfCBtYXNrOwpAQCAtMjA4Nyw3ICsyMDg3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYi5tX29mZnNldCAtIGEubV9vZmZzZXQ7CiAgICAgfQogCi0gICAgaW50IGp1bXBTaXplRGVs
dGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJu
IEpVTVBfRU5VTV9TSVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7
IH0KKyAgICBzdGF0aWMgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBM
aW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9TSVpFKGp1bXBUeXBlKSAt
IEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7IH0KICAgICAKICAgICAvLyBBc3NlbWJsZXIg
YWRtaW4gbWV0aG9kczoKIApAQCAtMjA5Niw3ICsyMDk2LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYS5mcm9tKCkgPCBiLmZyb20oKTsKICAgICB9CiAKLSAgICBib29sIGNhbkNvbXBhY3Qo
SnVtcFR5cGUganVtcFR5cGUpCisgICAgc3RhdGljIGJvb2wgY2FuQ29tcGFjdChKdW1wVHlwZSBq
dW1wVHlwZSkKICAgICB7CiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2Fubm90IGJlIGNvbXBh
Y3RlZDoKICAgICAgICAgLy8gICBKdW1wRml4ZWQ6IHJlcHJlc2VudHMgY3VzdG9tIGp1bXAgc2Vx
dWVuY2UKQEAgLTIxMDUsNyArMjEwNSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIChqdW1w
VHlwZSA9PSBKdW1wTm9Db25kaXRpb24pIHx8IChqdW1wVHlwZSA9PSBKdW1wQ29uZGl0aW9uKTsK
ICAgICB9CiAgICAgCi0gICAgSnVtcExpbmtUeXBlIGNvbXB1dGVKdW1wVHlwZShKdW1wVHlwZSBq
dW1wVHlwZSwgY29uc3QgdWludDhfdCogZnJvbSwgY29uc3QgdWludDhfdCogdG8pCisgICAgc3Rh
dGljIEp1bXBMaW5rVHlwZSBjb21wdXRlSnVtcFR5cGUoSnVtcFR5cGUganVtcFR5cGUsIGNvbnN0
IHVpbnQ4X3QqIGZyb20sIGNvbnN0IHVpbnQ4X3QqIHRvKQogICAgIHsKICAgICAgICAgaWYgKGp1
bXBUeXBlID09IEp1bXBGaXhlZCkKICAgICAgICAgICAgIHJldHVybiBMaW5rSW52YWxpZDsKQEAg
LTIxNDksMjkgKzIxNDksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTGlua0NvbmRpdGlv
bmFsQlg7CiAgICAgfQogICAgIAotICAgIEp1bXBMaW5rVHlwZSBjb21wdXRlSnVtcFR5cGUoTGlu
a1JlY29yZCYgcmVjb3JkLCBjb25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykK
KyAgICBzdGF0aWMgSnVtcExpbmtUeXBlIGNvbXB1dGVKdW1wVHlwZShMaW5rUmVjb3JkJiByZWNv
cmQsIGNvbnN0IHVpbnQ4X3QqIGZyb20sIGNvbnN0IHVpbnQ4X3QqIHRvKQogICAgIHsKICAgICAg
ICAgSnVtcExpbmtUeXBlIGxpbmtUeXBlID0gY29tcHV0ZUp1bXBUeXBlKHJlY29yZC50eXBlKCks
IGZyb20sIHRvKTsKICAgICAgICAgcmVjb3JkLnNldExpbmtUeXBlKGxpbmtUeXBlKTsKICAgICAg
ICAgcmV0dXJuIGxpbmtUeXBlOwogICAgIH0KICAgICAKLSAgICB2b2lkIHJlY29yZExpbmtPZmZz
ZXRzKGludDMyX3QgcmVnaW9uU3RhcnQsIGludDMyX3QgcmVnaW9uRW5kLCBpbnQzMl90IG9mZnNl
dCkKLSAgICB7Ci0gICAgICAgIGludDMyX3QgcHRyID0gcmVnaW9uU3RhcnQgLyBzaXplb2YoaW50
MzJfdCk7Ci0gICAgICAgIGNvbnN0IGludDMyX3QgZW5kID0gcmVnaW9uRW5kIC8gc2l6ZW9mKGlu
dDMyX3QpOwotICAgICAgICBpbnQzMl90KiBvZmZzZXRzID0gc3RhdGljX2Nhc3Q8aW50MzJfdCo+
KG1fZm9ybWF0dGVyLmRhdGEoKSk7Ci0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQpCi0gICAgICAg
ICAgICBvZmZzZXRzW3B0cisrXSA9IG9mZnNldDsKLSAgICB9Ci0gICAgCiAgICAgVmVjdG9yPExp
bmtSZWNvcmQsIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiYganVtcHNUb0xpbmsoKQogICAgIHsK
ICAgICAgICAgc3RkOjpzb3J0KG1fanVtcHNUb0xpbmsuYmVnaW4oKSwgbV9qdW1wc1RvTGluay5l
bmQoKSwgbGlua1JlY29yZFNvdXJjZUNvbXBhcmF0b3IpOwogICAgICAgICByZXR1cm4gbV9qdW1w
c1RvTGluazsKICAgICB9CiAKLSAgICB2b2lkIEFMV0FZU19JTkxJTkUgbGluayhMaW5rUmVjb3Jk
JiByZWNvcmQsIHVpbnQ4X3QqIGZyb20sIHVpbnQ4X3QqIHRvKQorICAgIHN0YXRpYyB2b2lkIEFM
V0FZU19JTkxJTkUgbGluayhMaW5rUmVjb3JkJiByZWNvcmQsIHVpbnQ4X3QqIGZyb20sIHVpbnQ4
X3QqIHRvKQogICAgIHsKICAgICAgICAgc3dpdGNoIChyZWNvcmQubGlua1R5cGUoKSkgewogICAg
ICAgICBjYXNlIExpbmtKdW1wVDE6CkBAIC0yNjIyLDcgKzI2MTMsNyBAQCBwcml2YXRlOgogICAg
ICAgICByZXR1cm4gKChyZWxhdGl2ZSA8PCA3KSA+PiA3KSA9PSByZWxhdGl2ZTsKICAgICB9CiAg
ICAgCi0gICAgdm9pZCBsaW5rSnVtcFQxKENvbmRpdGlvbiBjb25kLCB1aW50MTZfdCogaW5zdHJ1
Y3Rpb24sIHZvaWQqIHRhcmdldCkKKyAgICBzdGF0aWMgdm9pZCBsaW5rSnVtcFQxKENvbmRpdGlv
biBjb25kLCB1aW50MTZfdCogaW5zdHJ1Y3Rpb24sIHZvaWQqIHRhcmdldCkKICAgICB7CiAgICAg
ICAgIC8vIEZJTVhFOiB0aGlzIHNob3VsZCBiZSB1cCBpbiB0aGUgTWFjcm9Bc3NlbWJsZXIgbGF5
ZXIuIDotKCAgICAgICAgCiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRy
X3Q+KGluc3RydWN0aW9uKSAmIDEpKTsKQEAgLTI2NTgsNyArMjY0OSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIGluc3RydWN0aW9uWy0xXSA9IE9QX0JfVDIgfCAoKHJlbGF0aXZlICYgMHhmZmUpID4+
IDEpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxpbmtKdW1wVDMoQ29uZGl0aW9uIGNvbmQsIHVp
bnQxNl90KiBpbnN0cnVjdGlvbiwgdm9pZCogdGFyZ2V0KQorICAgIHN0YXRpYyB2b2lkIGxpbmtK
dW1wVDMoQ29uZGl0aW9uIGNvbmQsIHVpbnQxNl90KiBpbnN0cnVjdGlvbiwgdm9pZCogdGFyZ2V0
KQogICAgIHsKICAgICAgICAgLy8gRklNWEU6IHRoaXMgc2hvdWxkIGJlIHVwIGluIHRoZSBNYWNy
b0Fzc2VtYmxlciBsYXllci4gOi0oCiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8
aW50cHRyX3Q+KGluc3RydWN0aW9uKSAmIDEpKTsKQEAgLTI2OTEsNyArMjY4Miw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGluc3RydWN0aW9uWy0xXSA9IE9QX0JfVDRiIHwgKChyZWxhdGl2ZSAmIDB4
ODAwMDAwKSA+PiAxMCkgfCAoKHJlbGF0aXZlICYgMHg0MDAwMDApID4+IDExKSB8ICgocmVsYXRp
dmUgJiAweGZmZSkgPj4gMSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbGlua0NvbmRpdGlvbmFs
SnVtcFQ0KENvbmRpdGlvbiBjb25kLCB1aW50MTZfdCogaW5zdHJ1Y3Rpb24sIHZvaWQqIHRhcmdl
dCkKKyAgICBzdGF0aWMgdm9pZCBsaW5rQ29uZGl0aW9uYWxKdW1wVDQoQ29uZGl0aW9uIGNvbmQs
IHVpbnQxNl90KiBpbnN0cnVjdGlvbiwgdm9pZCogdGFyZ2V0KQogICAgIHsKICAgICAgICAgLy8g
RklNWEU6IHRoaXMgc2hvdWxkIGJlIHVwIGluIHRoZSBNYWNyb0Fzc2VtYmxlciBsYXllci4gOi0o
ICAgICAgICAKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaW5z
dHJ1Y3Rpb24pICYgMSkpOwpAQCAtMjcxNyw3ICsyNzA4LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
aW5zdHJ1Y3Rpb25bLTFdID0gT1BfQlggfCAoSlVNUF9URU1QT1JBUllfUkVHSVNURVIgPDwgMyk7
CiAgICAgfQogICAgIAotICAgIHZvaWQgbGlua0NvbmRpdGlvbmFsQlgoQ29uZGl0aW9uIGNvbmQs
IHVpbnQxNl90KiBpbnN0cnVjdGlvbiwgdm9pZCogdGFyZ2V0KQorICAgIHN0YXRpYyB2b2lkIGxp
bmtDb25kaXRpb25hbEJYKENvbmRpdGlvbiBjb25kLCB1aW50MTZfdCogaW5zdHJ1Y3Rpb24sIHZv
aWQqIHRhcmdldCkKICAgICB7CiAgICAgICAgIC8vIEZJTVhFOiB0aGlzIHNob3VsZCBiZSB1cCBp
biB0aGUgTWFjcm9Bc3NlbWJsZXIgbGF5ZXIuIDotKCAgICAgICAgCiAgICAgICAgIEFTU0VSVCgh
KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc3RydWN0aW9uKSAmIDEpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCmluZGV4IDEz
ZGUzZGFmMjUwMWFkYWVmOTY2M2ViNWE2MmU1MDE1MDhkYzllMmQuLjFjMzNmZTFhYzI2ZmEwMTdl
YjczZTlkYTkyM2QwOTU2N2E2ZTRkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksMzIgKzU5LDY5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1aW50MzJfdCBtX29mZnNldDsKICAgICB9OwogCi0g
ICAgc3RydWN0IEFzc2VtYmxlckRhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxBc3NlbWJsZXJEYXRh
PiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaW5saW5lQ2FwYWNpdHkgPSAxMjg7CisgICAg
Y2xhc3MgQXNzZW1ibGVyRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBBc3NlbWJsZXJEYXRh
KCkKKyAgICAgICAgICAgIDogbV9idWZmZXIobnVsbHB0cikKKyAgICAgICAgICAgICwgbV9jYXBh
Y2l0eSgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBBc3NlbWJsZXJEYXRhKHVu
c2lnbmVkIGluaXRpYWxDYXBhY2l0eSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jYXBhY2l0
eSA9IGZhc3RNYWxsb2NHb29kU2l6ZShpbml0aWFsQ2FwYWNpdHkpOworICAgICAgICAgICAgbV9i
dWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZmFzdE1hbGxvYyhtX2NhcGFjaXR5KSk7CisgICAg
ICAgIH0KKworICAgICAgICBBc3NlbWJsZXJEYXRhKEFzc2VtYmxlckRhdGEmJiBvdGhlcikKKyAg
ICAgICAgeworICAgICAgICAgICAgbV9idWZmZXIgPSBvdGhlci5tX2J1ZmZlcjsKKyAgICAgICAg
ICAgIG90aGVyLm1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1fY2FwYWNpdHkgPSBv
dGhlci5tX2NhcGFjaXR5OworICAgICAgICAgICAgb3RoZXIubV9jYXBhY2l0eSA9IDA7CisgICAg
ICAgIH0KIAotICAgICAgICBBc3NlbWJsZXJEYXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNpdHkp
IHsgfQotICAgICAgICAKLSAgICAgICAgdHlwZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNp
dHksIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBEYXRhVmVjdG9yOwotICAgICAgICBEYXRhVmVjdG9y
IG1fZGF0YTsKKyAgICAgICAgQXNzZW1ibGVyRGF0YSYgb3BlcmF0b3I9KEFzc2VtYmxlckRhdGEm
JiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgbV9idWZmZXIgPSBvdGhlci5tX2J1ZmZl
cjsKKyAgICAgICAgICAgIG90aGVyLm1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1f
Y2FwYWNpdHkgPSBvdGhlci5tX2NhcGFjaXR5OworICAgICAgICAgICAgb3RoZXIubV9jYXBhY2l0
eSA9IDA7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICB+
QXNzZW1ibGVyRGF0YSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZhc3RGcmVlKG1fYnVmZmVy
KTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIqIGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1f
YnVmZmVyOyB9CisKKyAgICAgICAgdW5zaWduZWQgY2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBt
X2NhcGFjaXR5OyB9CisKKyAgICAgICAgdm9pZCBncm93KHVuc2lnbmVkIGV4dHJhQ2FwYWNpdHkg
PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBtX2NhcGFjaXR5ID0gZmFzdE1hbGxvY0dvb2RT
aXplKG1fY2FwYWNpdHkgKyBtX2NhcGFjaXR5IC8gMiArIGV4dHJhQ2FwYWNpdHkpOworICAgICAg
ICAgICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZmFzdFJlYWxsb2MobV9idWZmZXIs
IG1fY2FwYWNpdHkpKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY2hhciog
bV9idWZmZXI7CisgICAgICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CiAgICAgfTsKIAogICAgIGNs
YXNzIEFzc2VtYmxlckJ1ZmZlciB7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaW5pdGlhbENh
cGFjaXR5ID0gMTI4OwogICAgIHB1YmxpYzoKICAgICAgICAgQXNzZW1ibGVyQnVmZmVyKCkKLSAg
ICAgICAgICAgIDogbV9zdG9yYWdlKGFkb3B0UmVmKG5ldyBBc3NlbWJsZXJEYXRhKCkpKQotICAg
ICAgICAgICAgLCBtX2J1ZmZlcihtX3N0b3JhZ2UtPm1fZGF0YS5iZWdpbigpKQotICAgICAgICAg
ICAgLCBtX2NhcGFjaXR5KEFzc2VtYmxlckRhdGE6OmlubGluZUNhcGFjaXR5KQorICAgICAgICAg
ICAgOiBtX3N0b3JhZ2UoaW5pdGlhbENhcGFjaXR5KQogICAgICAgICAgICAgLCBtX2luZGV4KDAp
CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIH5Bc3NlbWJsZXJCdWZmZXIoKQotICAg
ICAgICB7Ci0gICAgICAgIH0KLQogICAgICAgICBib29sIGlzQXZhaWxhYmxlKGludCBzcGFjZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggKyBzcGFjZSA8PSBtX2NhcGFj
aXR5OworICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggKyBzcGFjZSA8PSBtX3N0b3JhZ2UuY2Fw
YWNpdHkoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZW5zdXJlU3BhY2UoaW50IHNwYWNl
KQpAQCAtOTgsMjEgKzEzNSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
ICEobV9pbmRleCAmIChhbGlnbm1lbnQgLSAxKSk7CiAgICAgICAgIH0KIAotICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGU+Ci0gICAgICAgIHZvaWQgcHV0SW50ZWdyYWwoSW50
ZWdyYWxUeXBlIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBlbnN1cmVTcGFjZShzaXpl
b2YoSW50ZWdyYWxUeXBlKSk7Ci0gICAgICAgICAgICBwdXRJbnRlZ3JhbFVuY2hlY2tlZCh2YWx1
ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGU+
Ci0gICAgICAgIHZvaWQgcHV0SW50ZWdyYWxVbmNoZWNrZWQoSW50ZWdyYWxUeXBlIHZhbHVlKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNBdmFpbGFibGUoc2l6ZW9mKEludGVncmFs
VHlwZSkpKTsKLSAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0X3B0cjxJbnRlZ3JhbFR5cGUq
PihtX2J1ZmZlciArIG1faW5kZXgpID0gdmFsdWU7Ci0gICAgICAgICAgICBtX2luZGV4ICs9IHNp
emVvZihJbnRlZ3JhbFR5cGUpOwotICAgICAgICB9Ci0KICAgICAgICAgdm9pZCBwdXRCeXRlVW5j
aGVja2VkKGludDhfdCB2YWx1ZSkgeyBwdXRJbnRlZ3JhbFVuY2hlY2tlZCh2YWx1ZSk7IH0KICAg
ICAgICAgdm9pZCBwdXRCeXRlKGludDhfdCB2YWx1ZSkgeyBwdXRJbnRlZ3JhbCh2YWx1ZSk7IH0K
ICAgICAgICAgdm9pZCBwdXRTaG9ydFVuY2hlY2tlZChpbnQxNl90IHZhbHVlKSB7IHB1dEludGVn
cmFsVW5jaGVja2VkKHZhbHVlKTsgfQpAQCAtMTI0LDcgKzE0Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHZvaWQqIGRhdGEoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9idWZmZXI7CisgICAgICAgICAgICByZXR1cm4gbV9zdG9yYWdlLmJ1ZmZlcigpOwog
ICAgICAgICB9CiAKICAgICAgICAgc2l6ZV90IGNvZGVTaXplKCkgY29uc3QKQEAgLTEzOCwzMiAr
MTYwLDQ2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgdW5zaWduZWQg
ZGVidWdPZmZzZXQoKSB7IHJldHVybiBtX2luZGV4OyB9Ci0gICAgICAgIAotICAgICAgICBBc3Nl
bWJsZXJEYXRhKiBzdG9yYWdlKCkgeyByZXR1cm4gbV9zdG9yYWdlLmdldCgpOyB9CisKKyAgICAg
ICAgQXNzZW1ibGVyRGF0YSByZWxlYXNlQXNzZW1ibGVyRGF0YSgpIHsgcmV0dXJuIFdURjo6bW92
ZShtX3N0b3JhZ2UpOyB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEludGVncmFsVHlwZT4KKyAgICAgICAgdm9pZCBwdXRJbnRlZ3JhbChJbnRlZ3JhbFR5cGUg
dmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIG5leHRJbmRleCA9IG1faW5k
ZXggKyBzaXplb2YoSW50ZWdyYWxUeXBlKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShuZXh0
SW5kZXggPiBtX3N0b3JhZ2UuY2FwYWNpdHkoKSkpCisgICAgICAgICAgICAgICAgZ3JvdygpOwor
ICAgICAgICAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKHNpemVvZihJbnRlZ3JhbFR5cGUpKSk7Cisg
ICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8SW50ZWdyYWxUeXBlKj4obV9zdG9yYWdl
LmJ1ZmZlcigpICsgbV9pbmRleCkgPSB2YWx1ZTsKKyAgICAgICAgICAgIG1faW5kZXggPSBuZXh0
SW5kZXg7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5
cGU+CisgICAgICAgIHZvaWQgcHV0SW50ZWdyYWxVbmNoZWNrZWQoSW50ZWdyYWxUeXBlIHZhbHVl
KQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoaXNBdmFpbGFibGUoc2l6ZW9mKEludGVn
cmFsVHlwZSkpKTsKKyAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0X3B0cjxJbnRlZ3JhbFR5
cGUqPihtX3N0b3JhZ2UuYnVmZmVyKCkgKyBtX2luZGV4KSA9IHZhbHVlOworICAgICAgICAgICAg
bV9pbmRleCArPSBzaXplb2YoSW50ZWdyYWxUeXBlKTsKKyAgICAgICAgfQorCiAgICAgICAgIHZv
aWQgYXBwZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAoIWlzQXZhaWxhYmxlKHNpemUpKQogICAgICAgICAgICAgICAgIGdyb3coc2l6ZSk7
CiAKLSAgICAgICAgICAgIG1lbWNweShtX2J1ZmZlciArIG1faW5kZXgsIGRhdGEsIHNpemUpOwor
ICAgICAgICAgICAgbWVtY3B5KG1fc3RvcmFnZS5idWZmZXIoKSArIG1faW5kZXgsIGRhdGEsIHNp
emUpOwogICAgICAgICAgICAgbV9pbmRleCArPSBzaXplOwogICAgICAgICB9CiAKICAgICAgICAg
dm9pZCBncm93KGludCBleHRyYUNhcGFjaXR5ID0gMCkKICAgICAgICAgewotICAgICAgICAgICAg
bV9jYXBhY2l0eSArPSBtX2NhcGFjaXR5IC8gMiArIGV4dHJhQ2FwYWNpdHk7Ci0KLSAgICAgICAg
ICAgIG1fc3RvcmFnZS0+bV9kYXRhLmdyb3cobV9jYXBhY2l0eSk7Ci0gICAgICAgICAgICBtX2J1
ZmZlciA9IG1fc3RvcmFnZS0+bV9kYXRhLmJlZ2luKCk7CisgICAgICAgICAgICBtX3N0b3JhZ2Uu
Z3JvdyhleHRyYUNhcGFjaXR5KTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
UmVmUHRyPEFzc2VtYmxlckRhdGE+IG1fc3RvcmFnZTsKLSAgICAgICAgY2hhciogbV9idWZmZXI7
Ci0gICAgICAgIGludCBtX2NhcGFjaXR5OwotICAgICAgICBpbnQgbV9pbmRleDsKKyAgICAgICAg
QXNzZW1ibGVyRGF0YSBtX3N0b3JhZ2U7CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9MaW5rQnVmZmVyLmNwcAppbmRleCBjZWI0MDE5NThjMjI5ZTg0Yjg2ZjNmMWZmMmJjZDYy
YzIyYTcxNmY5Li5hNjY1NDFkNjA1YjAwMmJhMjlhMWUxYjQwZTBiZmRlZWRjYzIwZmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKQEAgLTc3
LDYgKzc3LDE1IEBAIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwKIH0KIAogI2lmIEVOQUJMRShCUkFO
Q0hfQ09NUEFDVElPTikKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcmVjb3JkTGlua09mZnNl
dHMoQXNzZW1ibGVyRGF0YSYgYXNzZW1ibGVyRGF0YSwgaW50MzJfdCByZWdpb25TdGFydCwgaW50
MzJfdCByZWdpb25FbmQsIGludDMyX3Qgb2Zmc2V0KQoreworICAgIGludDMyX3QgcHRyID0gcmVn
aW9uU3RhcnQgLyBzaXplb2YoaW50MzJfdCk7CisgICAgY29uc3QgaW50MzJfdCBlbmQgPSByZWdp
b25FbmQgLyBzaXplb2YoaW50MzJfdCk7CisgICAgaW50MzJfdCogb2Zmc2V0cyA9IHJlaW50ZXJw
cmV0X2Nhc3Q8aW50MzJfdCo+KGFzc2VtYmxlckRhdGEuYnVmZmVyKCkpOworICAgIHdoaWxlIChw
dHIgPCBlbmQpCisgICAgICAgIG9mZnNldHNbcHRyKytdID0gb2Zmc2V0OworfQorCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgSW5zdHJ1Y3Rpb25UeXBlPgogdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFj
dEFuZExpbmtDb2RlKE1hY3JvQXNzZW1ibGVyJiBtYWNyb0Fzc2VtYmxlciwgdm9pZCogb3duZXJV
SUQsIEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKIHsKQEAgLTg0LDExICs5MywxMiBAQCB2
b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoTWFjcm9Bc3NlbWJsZXImIG1h
Y3JvQXNzZW1ibGVyLCB2b2lkKiBvdwogICAgIGFsbG9jYXRlKG1faW5pdGlhbFNpemUsIG93bmVy
VUlELCBlZmZvcnQpOwogICAgIGlmIChkaWRGYWlsVG9BbGxvY2F0ZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgdWludDhfdCogaW5EYXRhID0gKHVpbnQ4X3QqKW1hY3JvQXNzZW1ibGVyLnVubGlu
a2VkQ29kZSgpOworICAgIFZlY3RvcjxMaW5rUmVjb3JkLCAwLCBVbnNhZmVWZWN0b3JPdmVyZmxv
dz4mIGp1bXBzVG9MaW5rID0gbWFjcm9Bc3NlbWJsZXIuanVtcHNUb0xpbmsoKTsKKyAgICBtX2Fz
c2VtYmxlclN0b3JhZ2UgPSBtYWNyb0Fzc2VtYmxlci5tX2Fzc2VtYmxlci5idWZmZXIoKS5yZWxl
YXNlQXNzZW1ibGVyRGF0YSgpOworICAgIHVpbnQ4X3QqIGluRGF0YSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KG1fYXNzZW1ibGVyU3RvcmFnZS5idWZmZXIoKSk7CiAgICAgdWludDhfdCog
b3V0RGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1fY29kZSk7CiAgICAgaW50IHJl
YWRQdHIgPSAwOwogICAgIGludCB3cml0ZVB0ciA9IDA7Ci0gICAgVmVjdG9yPExpbmtSZWNvcmQs
IDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiYganVtcHNUb0xpbmsgPSBtYWNyb0Fzc2VtYmxlci5q
dW1wc1RvTGluaygpOwogICAgIHVuc2lnbmVkIGp1bXBDb3VudCA9IGp1bXBzVG9MaW5rLnNpemUo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwganVtcENvdW50OyArK2kpIHsKICAgICAg
ICAgaW50IG9mZnNldCA9IHJlYWRQdHIgLSB3cml0ZVB0cjsKQEAgLTEwNCw3ICsxMTQsNyBAQCB2
b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoTWFjcm9Bc3NlbWJsZXImIG1h
Y3JvQXNzZW1ibGVyLCB2b2lkKiBvdwogICAgICAgICBBU1NFUlQoISh3cml0ZVB0ciAlIDIpKTsK
ICAgICAgICAgd2hpbGUgKGNvcHlTb3VyY2UgIT0gY29weUVuZCkKICAgICAgICAgICAgICpjb3B5
RHN0KysgPSAqY29weVNvdXJjZSsrOwotICAgICAgICBtYWNyb0Fzc2VtYmxlci5yZWNvcmRMaW5r
T2Zmc2V0cyhyZWFkUHRyLCBqdW1wc1RvTGlua1tpXS5mcm9tKCksIG9mZnNldCk7CisgICAgICAg
IHJlY29yZExpbmtPZmZzZXRzKG1fYXNzZW1ibGVyU3RvcmFnZSwgcmVhZFB0ciwganVtcHNUb0xp
bmtbaV0uZnJvbSgpLCBvZmZzZXQpOwogICAgICAgICByZWFkUHRyICs9IHJlZ2lvblNpemU7CiAg
ICAgICAgIHdyaXRlUHRyICs9IHJlZ2lvblNpemU7CiAgICAgICAgICAgICAKQEAgLTExNiwyNiAr
MTI2LDI2IEBAIHZvaWQgTGlua0J1ZmZlcjo6Y29weUNvbXBhY3RBbmRMaW5rQ29kZShNYWNyb0Fz
c2VtYmxlciYgbWFjcm9Bc3NlbWJsZXIsIHZvaWQqIG93CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHRhcmdldCA9IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS50bygpIC0gZXhlY3V0YWJsZU9m
ZnNldEZvcihqdW1wc1RvTGlua1tpXS50bygpKTsKICAgICAgICAgICAgIAotICAgICAgICBKdW1w
TGlua1R5cGUganVtcExpbmtUeXBlID0gbWFjcm9Bc3NlbWJsZXIuY29tcHV0ZUp1bXBUeXBlKGp1
bXBzVG9MaW5rW2ldLCBvdXREYXRhICsgd3JpdGVQdHIsIHRhcmdldCk7CisgICAgICAgIEp1bXBM
aW5rVHlwZSBqdW1wTGlua1R5cGUgPSBNYWNyb0Fzc2VtYmxlcjo6Y29tcHV0ZUp1bXBUeXBlKGp1
bXBzVG9MaW5rW2ldLCBvdXREYXRhICsgd3JpdGVQdHIsIHRhcmdldCk7CiAgICAgICAgIC8vIENv
bXBhY3QgYnJhbmNoIGlmIHdlIGNhbi4uLgotICAgICAgICBpZiAobWFjcm9Bc3NlbWJsZXIuY2Fu
Q29tcGFjdChqdW1wc1RvTGlua1tpXS50eXBlKCkpKSB7CisgICAgICAgIGlmIChNYWNyb0Fzc2Vt
Ymxlcjo6Y2FuQ29tcGFjdChqdW1wc1RvTGlua1tpXS50eXBlKCkpKSB7CiAgICAgICAgICAgICAv
LyBTdGVwIGJhY2sgaW4gdGhlIHdyaXRlIHN0cmVhbQotICAgICAgICAgICAgaW50MzJfdCBkZWx0
YSA9IG1hY3JvQXNzZW1ibGVyLmp1bXBTaXplRGVsdGEoanVtcHNUb0xpbmtbaV0udHlwZSgpLCBq
dW1wTGlua1R5cGUpOworICAgICAgICAgICAgaW50MzJfdCBkZWx0YSA9IE1hY3JvQXNzZW1ibGVy
OjpqdW1wU2l6ZURlbHRhKGp1bXBzVG9MaW5rW2ldLnR5cGUoKSwganVtcExpbmtUeXBlKTsKICAg
ICAgICAgICAgIGlmIChkZWx0YSkgewogICAgICAgICAgICAgICAgIHdyaXRlUHRyIC09IGRlbHRh
OwotICAgICAgICAgICAgICAgIG1hY3JvQXNzZW1ibGVyLnJlY29yZExpbmtPZmZzZXRzKGp1bXBz
VG9MaW5rW2ldLmZyb20oKSAtIGRlbHRhLCByZWFkUHRyLCByZWFkUHRyIC0gd3JpdGVQdHIpOwor
ICAgICAgICAgICAgICAgIHJlY29yZExpbmtPZmZzZXRzKG1fYXNzZW1ibGVyU3RvcmFnZSwganVt
cHNUb0xpbmtbaV0uZnJvbSgpIC0gZGVsdGEsIHJlYWRQdHIsIHJlYWRQdHIgLSB3cml0ZVB0cik7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAganVtcHNUb0xpbmtbaV0uc2V0RnJv
bSh3cml0ZVB0cik7CiAgICAgfQogICAgIC8vIENvcHkgZXZlcnl0aGluZyBhZnRlciB0aGUgbGFz
dCBqdW1wCiAgICAgbWVtY3B5KG91dERhdGEgKyB3cml0ZVB0ciwgaW5EYXRhICsgcmVhZFB0ciwg
bV9pbml0aWFsU2l6ZSAtIHJlYWRQdHIpOwotICAgIG1hY3JvQXNzZW1ibGVyLnJlY29yZExpbmtP
ZmZzZXRzKHJlYWRQdHIsIG1faW5pdGlhbFNpemUsIHJlYWRQdHIgLSB3cml0ZVB0cik7CisgICAg
cmVjb3JkTGlua09mZnNldHMobV9hc3NlbWJsZXJTdG9yYWdlLCByZWFkUHRyLCBtX2luaXRpYWxT
aXplLCByZWFkUHRyIC0gd3JpdGVQdHIpOwogICAgICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwganVtcENvdW50OyArK2kpIHsKICAgICAgICAgdWludDhfdCogbG9jYXRpb24gPSBv
dXREYXRhICsganVtcHNUb0xpbmtbaV0uZnJvbSgpOwogICAgICAgICB1aW50OF90KiB0YXJnZXQg
PSBvdXREYXRhICsganVtcHNUb0xpbmtbaV0udG8oKSAtIGV4ZWN1dGFibGVPZmZzZXRGb3IoanVt
cHNUb0xpbmtbaV0udG8oKSk7Ci0gICAgICAgIG1hY3JvQXNzZW1ibGVyLmxpbmsoanVtcHNUb0xp
bmtbaV0sIGxvY2F0aW9uLCB0YXJnZXQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6bGluayhq
dW1wc1RvTGlua1tpXSwgbG9jYXRpb24sIHRhcmdldCk7CiAgICAgfQogCiAgICAganVtcHNUb0xp
bmsuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TGlua0J1ZmZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVy
LmgKaW5kZXggZTViZjVkN2E2MjczN2MyMDg0MzA4OTRiNTcyNjIxYmNiN2JkY2RmNC4uNTE2ZTQ1
NjhjODA3NGQ1NTdkOWIyZTAwMTg4Y2UwOWQ2N2Q4NzAzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKQEAgLTg3LDcgKzg3LDYgQEAgcHVibGljOgog
I2VuZGlmCiAgICAgICAgICwgbV9kaWRBbGxvY2F0ZShmYWxzZSkKICAgICAgICAgLCBtX2NvZGUo
MCkKLSAgICAgICAgLCBtX3N0b3JhZ2UobWFjcm9Bc3NlbWJsZXIubV9hc3NlbWJsZXIuYnVmZmVy
KCkuc3RvcmFnZSgpKQogICAgICAgICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcKICAgICAg
ICAgLCBtX2NvbXBsZXRlZChmYWxzZSkKQEAgLTEwMyw3ICsxMDIsNiBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29kZShjb2Rl
KQotICAgICAgICAsIG1fc3RvcmFnZShtYWNyb0Fzc2VtYmxlci5tX2Fzc2VtYmxlci5idWZmZXIo
KS5zdG9yYWdlKCkpCiAgICAgICAgICwgbV92bSgmdm0pCiAjaWZuZGVmIE5ERUJVRwogICAgICAg
ICAsIG1fY29tcGxldGVkKGZhbHNlKQpAQCAtMjUwLDcgKzI0OCw4IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIHJldHVybiBtX2NvZGU7CiAgICAgfQotICAgIAorCisgICAgLy8gRklYTUU6IHRo
aXMgZG9lcyBub3QgYWNjb3VudCBmb3IgdGhlIEFzc2VtYmxlckRhdGEgc2l6ZSEKICAgICBzaXpl
X3Qgc2l6ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gbV9zaXplOwpAQCAtMjYyLDcgKzI2MSw3
IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAoIWxvY2F0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KG1fc3RvcmFn
ZS0+bV9kYXRhLmJlZ2luKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0gMV07CisgICAg
ICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KG1fYXNzZW1ibGVyU3RvcmFnZS5idWZm
ZXIoKSlbbG9jYXRpb24gLyBzaXplb2YoaW50MzJfdCkgLSAxXTsKICAgICB9CiAjZW5kaWYKICAg
ICAKQEAgLTMwMywxMCArMzAyLDEwIEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fc2l6ZTsKICNp
ZiBFTkFCTEUoQlJBTkNIX0NPTVBBQ1RJT04pCiAgICAgc2l6ZV90IG1faW5pdGlhbFNpemU7Cisg
ICAgQXNzZW1ibGVyRGF0YSBtX2Fzc2VtYmxlclN0b3JhZ2U7CiAjZW5kaWYKICAgICBib29sIG1f
ZGlkQWxsb2NhdGU7CiAgICAgdm9pZCogbV9jb2RlOwotICAgIFJlZlB0cjxBc3NlbWJsZXJEYXRh
PiBtX3N0b3JhZ2U7CiAgICAgVk0qIG1fdm07CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9j
b21wbGV0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IDI3MTNhMTFkMTc3OTQ3M2QxZWE5YWJlZmZiYWEwMGYx
YTkyMjMwMGMuLjgzMGI1OGVlY2E5OTMxZGU4ZmRlM2MxNmQyY2JjOGE3YzNlZWM4N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk02NC5oCkBAIC02NCwxMiArNjQsMTEgQEAgcHVibGljOgogCiAgICAgVmVjdG9yPExpbmtSZWNv
cmQsIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiYganVtcHNUb0xpbmsoKSB7IHJldHVybiBtX2Fz
c2VtYmxlci5qdW1wc1RvTGluaygpOyB9CiAgICAgdm9pZCogdW5saW5rZWRDb2RlKCkgeyByZXR1
cm4gbV9hc3NlbWJsZXIudW5saW5rZWRDb2RlKCk7IH0KLSAgICBib29sIGNhbkNvbXBhY3QoSnVt
cFR5cGUganVtcFR5cGUpIHsgcmV0dXJuIG1fYXNzZW1ibGVyLmNhbkNvbXBhY3QoanVtcFR5cGUp
OyB9Ci0gICAgSnVtcExpbmtUeXBlIGNvbXB1dGVKdW1wVHlwZShKdW1wVHlwZSBqdW1wVHlwZSwg
Y29uc3QgdWludDhfdCogZnJvbSwgY29uc3QgdWludDhfdCogdG8pIHsgcmV0dXJuIG1fYXNzZW1i
bGVyLmNvbXB1dGVKdW1wVHlwZShqdW1wVHlwZSwgZnJvbSwgdG8pOyB9Ci0gICAgSnVtcExpbmtU
eXBlIGNvbXB1dGVKdW1wVHlwZShMaW5rUmVjb3JkJiByZWNvcmQsIGNvbnN0IHVpbnQ4X3QqIGZy
b20sIGNvbnN0IHVpbnQ4X3QqIHRvKSB7IHJldHVybiBtX2Fzc2VtYmxlci5jb21wdXRlSnVtcFR5
cGUocmVjb3JkLCBmcm9tLCB0byk7IH0KLSAgICB2b2lkIHJlY29yZExpbmtPZmZzZXRzKGludDMy
X3QgcmVnaW9uU3RhcnQsIGludDMyX3QgcmVnaW9uRW5kLCBpbnQzMl90IG9mZnNldCkge3JldHVy
biBtX2Fzc2VtYmxlci5yZWNvcmRMaW5rT2Zmc2V0cyhyZWdpb25TdGFydCwgcmVnaW9uRW5kLCBv
ZmZzZXQpOyB9Ci0gICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBM
aW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIG1fYXNzZW1ibGVyLmp1bXBTaXplRGVsdGEo
anVtcFR5cGUsIGp1bXBMaW5rVHlwZSk7IH0KLSAgICB2b2lkIGxpbmsoTGlua1JlY29yZCYgcmVj
b3JkLCB1aW50OF90KiBmcm9tLCB1aW50OF90KiB0bykgeyByZXR1cm4gbV9hc3NlbWJsZXIubGlu
ayhyZWNvcmQsIGZyb20sIHRvKTsgfQorICAgIHN0YXRpYyBib29sIGNhbkNvbXBhY3QoSnVtcFR5
cGUganVtcFR5cGUpIHsgcmV0dXJuIEFSTTY0QXNzZW1ibGVyOjpjYW5Db21wYWN0KGp1bXBUeXBl
KTsgfQorICAgIHN0YXRpYyBKdW1wTGlua1R5cGUgY29tcHV0ZUp1bXBUeXBlKEp1bXBUeXBlIGp1
bXBUeXBlLCBjb25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykgeyByZXR1cm4g
QVJNNjRBc3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZShqdW1wVHlwZSwgZnJvbSwgdG8pOyB9Cisg
ICAgc3RhdGljIEp1bXBMaW5rVHlwZSBjb21wdXRlSnVtcFR5cGUoTGlua1JlY29yZCYgcmVjb3Jk
LCBjb25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykgeyByZXR1cm4gQVJNNjRB
c3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZShyZWNvcmQsIGZyb20sIHRvKTsgfQorICAgIHN0YXRp
YyBpbnQganVtcFNpemVEZWx0YShKdW1wVHlwZSBqdW1wVHlwZSwgSnVtcExpbmtUeXBlIGp1bXBM
aW5rVHlwZSkgeyByZXR1cm4gQVJNNjRBc3NlbWJsZXI6Omp1bXBTaXplRGVsdGEoanVtcFR5cGUs
IGp1bXBMaW5rVHlwZSk7IH0KKyAgICBzdGF0aWMgdm9pZCBsaW5rKExpbmtSZWNvcmQmIHJlY29y
ZCwgdWludDhfdCogZnJvbSwgdWludDhfdCogdG8pIHsgcmV0dXJuIEFSTTY0QXNzZW1ibGVyOjps
aW5rKHJlY29yZCwgZnJvbSwgdG8pOyB9CiAKICAgICBzdGF0aWMgY29uc3QgU2NhbGUgU2NhbGVQ
dHIgPSBUaW1lc0VpZ2h0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDllNDc0ODA2ZGNiYjAyYTRmYzgyMTBm
NjhmYjFjZTQwYWZiMWVhMTcuLjgwZDE3ZWIxNTc1Yzg5NmQ5YjcyN2Q5ZmY0Njk5M2YwNWY4ZDM0
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCkBAIC02MiwxMiArNjIsMTEgQEAgcHVibGljOgogCiAgICAgVmVjdG9y
PExpbmtSZWNvcmQsIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiYganVtcHNUb0xpbmsoKSB7IHJl
dHVybiBtX2Fzc2VtYmxlci5qdW1wc1RvTGluaygpOyB9CiAgICAgdm9pZCogdW5saW5rZWRDb2Rl
KCkgeyByZXR1cm4gbV9hc3NlbWJsZXIudW5saW5rZWRDb2RlKCk7IH0KLSAgICBib29sIGNhbkNv
bXBhY3QoSnVtcFR5cGUganVtcFR5cGUpIHsgcmV0dXJuIG1fYXNzZW1ibGVyLmNhbkNvbXBhY3Qo
anVtcFR5cGUpOyB9Ci0gICAgSnVtcExpbmtUeXBlIGNvbXB1dGVKdW1wVHlwZShKdW1wVHlwZSBq
dW1wVHlwZSwgY29uc3QgdWludDhfdCogZnJvbSwgY29uc3QgdWludDhfdCogdG8pIHsgcmV0dXJu
IG1fYXNzZW1ibGVyLmNvbXB1dGVKdW1wVHlwZShqdW1wVHlwZSwgZnJvbSwgdG8pOyB9Ci0gICAg
SnVtcExpbmtUeXBlIGNvbXB1dGVKdW1wVHlwZShMaW5rUmVjb3JkJiByZWNvcmQsIGNvbnN0IHVp
bnQ4X3QqIGZyb20sIGNvbnN0IHVpbnQ4X3QqIHRvKSB7IHJldHVybiBtX2Fzc2VtYmxlci5jb21w
dXRlSnVtcFR5cGUocmVjb3JkLCBmcm9tLCB0byk7IH0KLSAgICB2b2lkIHJlY29yZExpbmtPZmZz
ZXRzKGludDMyX3QgcmVnaW9uU3RhcnQsIGludDMyX3QgcmVnaW9uRW5kLCBpbnQzMl90IG9mZnNl
dCkge3JldHVybiBtX2Fzc2VtYmxlci5yZWNvcmRMaW5rT2Zmc2V0cyhyZWdpb25TdGFydCwgcmVn
aW9uRW5kLCBvZmZzZXQpOyB9Ci0gICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUganVtcFR5
cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIG1fYXNzZW1ibGVyLmp1bXBT
aXplRGVsdGEoanVtcFR5cGUsIGp1bXBMaW5rVHlwZSk7IH0KLSAgICB2b2lkIGxpbmsoTGlua1Jl
Y29yZCYgcmVjb3JkLCB1aW50OF90KiBmcm9tLCB1aW50OF90KiB0bykgeyByZXR1cm4gbV9hc3Nl
bWJsZXIubGluayhyZWNvcmQsIGZyb20sIHRvKTsgfQorICAgIHN0YXRpYyBib29sIGNhbkNvbXBh
Y3QoSnVtcFR5cGUganVtcFR5cGUpIHsgcmV0dXJuIEFSTXY3QXNzZW1ibGVyOjpjYW5Db21wYWN0
KGp1bXBUeXBlKTsgfQorICAgIHN0YXRpYyBKdW1wTGlua1R5cGUgY29tcHV0ZUp1bXBUeXBlKEp1
bXBUeXBlIGp1bXBUeXBlLCBjb25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykg
eyByZXR1cm4gQVJNdjdBc3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZShqdW1wVHlwZSwgZnJvbSwg
dG8pOyB9CisgICAgc3RhdGljIEp1bXBMaW5rVHlwZSBjb21wdXRlSnVtcFR5cGUoTGlua1JlY29y
ZCYgcmVjb3JkLCBjb25zdCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiB0bykgeyByZXR1
cm4gQVJNdjdBc3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZShyZWNvcmQsIGZyb20sIHRvKTsgfQor
ICAgIHN0YXRpYyBpbnQganVtcFNpemVEZWx0YShKdW1wVHlwZSBqdW1wVHlwZSwgSnVtcExpbmtU
eXBlIGp1bXBMaW5rVHlwZSkgeyByZXR1cm4gQVJNdjdBc3NlbWJsZXI6Omp1bXBTaXplRGVsdGEo
anVtcFR5cGUsIGp1bXBMaW5rVHlwZSk7IH0KKyAgICBzdGF0aWMgdm9pZCBsaW5rKExpbmtSZWNv
cmQmIHJlY29yZCwgdWludDhfdCogZnJvbSwgdWludDhfdCogdG8pIHsgcmV0dXJuIEFSTXY3QXNz
ZW1ibGVyOjpsaW5rKHJlY29yZCwgZnJvbSwgdG8pOyB9CiAKICAgICBzdHJ1Y3QgQXJtQWRkcmVz
cyB7CiAgICAgICAgIGVudW0gQWRkcmVzc1R5cGUgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>