<?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>80340</bug_id>
          
          <creation_ts>2012-03-05 15:49:39 -0800</creation_ts>
          <short_desc>The LLInt should work even when the JIT is disabled</short_desc>
          <delta_ts>2012-03-05 22:55:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571113</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-05 15:49:39 -0800</bug_when>
    <thetext>Patch forthcoming.

&lt;rdar://problem/10922235&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571142</commentid>
    <comment_count>1</comment_count>
      <attachid>130222</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-05 16:18:16 -0800</bug_when>
    <thetext>Created attachment 130222
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571148</commentid>
    <comment_count>2</comment_count>
      <attachid>130224</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-05 16:23:31 -0800</bug_when>
    <thetext>Created attachment 130224
the patch

Removed an unintentional config change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571160</commentid>
    <comment_count>3</comment_count>
      <attachid>130228</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-05 16:33:13 -0800</bug_when>
    <thetext>Created attachment 130228
the patch

Fixed ARM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571493</commentid>
    <comment_count>4</comment_count>
      <attachid>130295</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-05 22:30:51 -0800</bug_when>
    <thetext>Created attachment 130295
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571512</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-05 22:55:09 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/109863</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130222</attachid>
            <date>2012-03-05 16:18:16 -0800</date>
            <delta_ts>2012-03-05 16:23:31 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llintnojit_patch_1.diff</filename>
            <type>text/plain</type>
            <size>20418</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5ODEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDEyLTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIExMSW50IHNob3VsZCB3b3JrIGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM0MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTA5MjIyMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRy
KToKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyQ29kZVJlZik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjppbml0aWFs
aXplKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoKKyAg
ICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
VGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QpOgorICAgICAgICAqIGxsaW50L0xMSW50RW50cnlw
b2ludHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0RnVuY3Rpb25FbnRyeXBvaW50KToK
KyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEV2YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6
TExJbnQ6OmdldFByb2dyYW1FbnRyeXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQ
YXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6Cisg
ICAgICAgIChMTEludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAg
ICAgKExMSW50KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmg6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKE5hdGl2ZUV4ZWN1dGFibGUpOgorICAgICAgICAo
SlNDOjpOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVFeGVj
dXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTR2xvYmFsRGF0YSk6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKE9wdGlvbnMpOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZSk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemVP
cHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKE9wdGlvbnMp
OgorCiAyMDEyLTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGhvc3RpbmcgbGF5ZXJzIGluIHRoZSB3aW5kb3cgc2VydmVyIGluIFdl
YktpdDIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gMTA5ODAyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgwLDYgKzI4MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjcmVhdGVMTEludENv
ZGVQdHIodm9pZCAoKmZ1bmN0aW9uKSgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZy
b21FeGVjdXRhYmxlQWRkcmVzcyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSk7CisgICAg
fQogICAgIGV4cGxpY2l0IE1hY3JvQXNzZW1ibGVyQ29kZVB0cihSZXR1cm5BZGRyZXNzUHRyIHJh
KQogICAgICAgICA6IG1fdmFsdWUocmEudmFsdWUoKSkKICAgICB7CkBAIC0zNDAsNiArMzQ0LDEy
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVJlZihjb2RlUHRy
KTsKICAgICB9CiAgICAgCisgICAgLy8gSGVscGVyIGZvciBjcmVhdGluZyBzZWxmLW1hbmFnZWQg
Y29kZSByZWZzIGZyb20gTExJbnQuCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
cmVhdGVMTEludENvZGVSZWYodm9pZCAoKmZ1bmN0aW9uKSgpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0
ZUZyb21FeGVjdXRhYmxlQWRkcmVzcyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSkpOwor
ICAgIH0KKyAgICAKICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBleGVjdXRhYmxlTWVtb3J5
KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2V4ZWN1dGFibGVNZW1vcnkuZ2V0KCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MCwzMSArNTYwLDI3
IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmluaXRpYWxpemUoTExJbnQ6OkRhdGEKIHsKICAgICBVTlVT
RURfUEFSQU0obGxpbnREYXRhKTsKICAgICBVTlVTRURfUEFSQU0oY2FuVXNlSklUKTsKLSNpZiBF
TkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQp
Ci0jaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpCi0gICAgLy8g
SGF2aW5nIExMSW50IGVuYWJsZWQsIGJ1dCBub3QgYmVpbmcgYWJsZSB0byB1c2UgdGhlIEpJVCwg
YW5kIG5vdCBoYXZpbmcKLSAgICAvLyBhIGNvbXB1dGVkIGdvdG8gaW50ZXJwcmV0ZXIsIGlzIG5v
dCBzdXBwb3J0ZWQuIE5vdCBiZWNhdXNlIHdlIGNhbm5vdAotICAgIC8vIHN1cHBvcnQgaXQsIGJ1
dCBiZWNhdXNlIEkgZGVjaWRlZCB0byBkcmF3IHRoZSBsaW5lIGF0IHRoZSBudW1iZXIgb2YKLSAg
ICAvLyBwZXJtdXRhdGlvbnMgb2YgZXhlY3V0aW9uIGVuZ2luZXMgdGhhdCBJIHdhbnRlZCB0aGlz
IGNvZGUgdG8gZ3Jvay4KLSAgICBBU1NFUlQoY2FuVXNlSklUKTsKKworICAgIC8vIElmIHdlIGhh
dmUgTExJbnQsIHRoZW4gd2Ugc2hvdWxkbid0IGJlIGJ1aWxkaW5nIGFueSBraW5kIG9mIGNsYXNz
aWMgaW50ZXJwcmV0ZXIuCisjaWYgRU5BQkxFKExMSU5UKSAmJiBFTkFCTEUoQ0xBU1NJQ19JTlRF
UlBSRVRFUikKKyNlcnJvciAiQnVpbGRpbmcgYm90aCBMTEludCBhbmQgdGhlIENsYXNzaWMgSW50
ZXJwcmV0ZXIgaXMgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZS4i
CiAjZW5kaWYKLSAgICBpZiAoY2FuVXNlSklUKSB7CisKICNpZiBFTkFCTEUoTExJTlQpCi0gICAg
ICAgIG1fb3Bjb2RlVGFibGUgPSBsbGludERhdGEtPm9wY29kZU1hcCgpOwotICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQotICAgICAgICAgICAgbV9vcGNvZGVJ
RFRhYmxlLmFkZChtX29wY29kZVRhYmxlW2ldLCBzdGF0aWNfY2FzdDxPcGNvZGVJRD4oaSkpOwot
I2Vsc2UKKyAgICBtX29wY29kZVRhYmxlID0gbGxpbnREYXRhLT5vcGNvZGVNYXAoKTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQorICAgICAgICBtX29wY29kZUlE
VGFibGUuYWRkKG1fb3Bjb2RlVGFibGVbaV0sIHN0YXRpY19jYXN0PE9wY29kZUlEPihpKSk7Cisg
ICAgbV9jbGFzc2ljRW5hYmxlZCA9IGZhbHNlOworI2VsaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9f
Q0xBU1NJQ19JTlRFUlBSRVRFUikKKyAgICBpZiAoY2FuVXNlSklUKSB7CiAgICAgICAgIC8vIElm
IHRoZSBKSVQgaXMgcHJlc2VudCwgZG9uJ3QgdXNlIGp1bXAgZGVzdGluYXRpb25zIGZvciBvcGNv
ZGVzLgogICAgICAgICAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7
ICsraSkgewogICAgICAgICAgICAgT3Bjb2RlIG9wY29kZSA9IGJpdHdpc2VfY2FzdDx2b2lkKj4o
c3RhdGljX2Nhc3Q8dWludHB0cl90PihpKSk7CiAgICAgICAgICAgICBtX29wY29kZVRhYmxlW2ld
ID0gb3Bjb2RlOwogICAgICAgICB9Ci0jZW5kaWYKKyAgICAgICAgbV9jbGFzc2ljRW5hYmxlZCA9
IGZhbHNlOwogICAgIH0gZWxzZSB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICBtX29wY29k
ZVRhYmxlID0gbmV3IE9wY29kZVtudW1PcGNvZGVJRHNdOwotI2VuZGlmCiAgICAgICAgIHByaXZh
dGVFeGVjdXRlKEluaXRpYWxpemVBbmRSZXR1cm4sIDAsIDApOwogICAgICAgICAKICAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7ICsraSkKQEAgLTExOTgsNyArMTE5NCw3
IEBAIGZhaWxlZEpTT05QOgogCiAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFC
TEUoSklUKQotICAgICAgICBpZiAoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuY2FuVXNlSklUKCkp
CisgICAgICAgIGlmICghY2xhc3NpY0VuYWJsZWQoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IHBy
b2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2Fs
bEZyYW1lLCBzY29wZUNoYWluLT5nbG9iYWxEYXRhKTsKICAgICAgICAgZWxzZQogI2VuZGlmCkBA
IC0xMjcwLDcgKzEyNjYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxs
RnJhCiAKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFCTEUoSklUKQot
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKQorICAg
ICAgICAgICAgaWYgKCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9
IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwo
KS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lLCBjYWxsRGF0YVNjb3BlQ2hh
aW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQogI2VuZGlmCkBAIC0xMzY2LDcgKzEz
NjIsNyBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAKICAgICAg
ICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFCTEUoSklUKQotICAgICAgICAgICAg
aWYgKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKQorICAgICAgICAgICAgaWYg
KCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdERh
dGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCku
ZXhlY3V0ZSgmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSwgY29uc3RydWN0RGF0YVNjb3Bl
Q2hhaW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw4ICsyNTQsMTMgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIENvZGVSZWYgY29tcGlsZUNUSU5hdGl2ZUNhbGwo
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIWdsb2JhbERhdGEtPmNhblVzZUpJVCgpKQorICAgICAgICAgICAg
aWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkgeworI2lmIEVOQUJMRShMTElOVCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2
ZV9jYWxsX3RyYW1wb2xpbmUpOworI2Vsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZVJl
ZigpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBKSVQgaml0KGdsb2JhbERh
dGEsIDApOwogICAgICAgICAgICAgcmV0dXJuIGppdC5wcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNh
bGwoZ2xvYmFsRGF0YSwgZnVuYyk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5j
bHVkZSAiQ2FsbERhdGEuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKKyNpbmNsdWRlICJMb3dM
ZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAj
aW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKQEAgLTMw
Niw4ICszMDcsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0TGluazsgfQogICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3Rp
VmlydHVhbENhbGw7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxD
b25zdHJ1Y3QoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0
cnVjdDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbCgpIHsg
cmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOyB9Ci0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKSB7IHJldHVybiBtX3RyYW1w
b2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OyB9CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkKKyAgICAgICAgeworI2lmIEVOQUJMRShMTElOVCkK
KyAgICAgICAgICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQorICAgICAgICAgICAgICAgIHJl
dHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRp
dmVfY2FsbF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBv
bGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOworICAgICAgICB9CisgICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKQorICAgICAgICB7CisjaWYgRU5BQkxF
KExMSU5UKQorICAgICAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxs
aW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJl
dHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OworICAgICAgICB9
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTb2Z0TW9kdWxvKCkgeyByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVNvZnRNb2R1bG87IH0KIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRvcik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludHMu
Y3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRFbnRyeXBvaW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEzICszOSwxMyBAQCB2b2lk
IGdldEZ1bmN0aW9uRW50cnlwb2ludChKU0dsb2JhbERhdGEmCiB7CiAgICAgaWYgKCFnbG9iYWxE
YXRhLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlID0gSklUQ29kZTo6SG9zdEZ1bmN0aW9uKE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihi
aXR3aXNlX2Nhc3Q8dm9pZCo+KCZsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSkpKSk7
CisgICAgICAgICAgICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0
PHZvaWQqPigmbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpKSksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspOwogICAgICAgICAgICAgYXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVy
Q29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0
eV9jaGVjaykpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgQVNT
RVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2Rl
OjpIb3N0RnVuY3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENv
ZGVSZWYoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWUpKSkpOworICAgICAgICBqaXRDb2RlID0gSklU
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNy
b0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfZnVuY3Rpb25fZm9y
X2NvbnN0cnVjdF9wcm9sb2d1ZSkpKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAg
ICAgIGFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQq
PigmbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjaykpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIGdldEZ1bmN0aW9uRW50cnlwb2lu
dChKU0dsb2JhbERhdGEmCiB2b2lkIGdldEV2YWxFbnRyeXBvaW50KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSklUQ29kZSYgaml0Q29kZSkKIHsKICAgICBpZiAoIWdsb2JhbERhdGEuY2FuVXNl
SklUKCkpIHsKLSAgICAgICAgaml0Q29kZSA9IEpJVENvZGU6Okhvc3RGdW5jdGlvbihNYWNyb0Fz
c2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfZXZhbF9wcm9sb2d1ZSkpKSk7CisgICAg
ICAgIGppdENvZGUgPSBKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1h
bmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZs
bGludF9ldmFsX3Byb2xvZ3VlKSkpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBnZXRFdmFsRW50
cnlwb2ludChKU0dsb2JhbERhdGEmIGdsbwogdm9pZCBnZXRQcm9ncmFtRW50cnlwb2ludChKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUmIGppdENvZGUpCiB7CiAgICAgaWYgKCFnbG9i
YWxEYXRhLmNhblVzZUpJVCgpKSB7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X3Byb2dyYW1fcHJv
bG9ndWUpKSkpOworICAgICAgICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lz
ZV9jYXN0PHZvaWQqPigmbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSkpKSwgSklUQ29kZTo6SW50ZXJw
cmV0ZXJUaHVuayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDEw
OTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NzQsNiArMTU3NCwxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfcHJvZmlsZV9kCiAgICAgTExJTlRfRU5EKCk7CiB9CiAKK0xMSU5UX1NMT1df
UEFUSF9ERUNMKHRocm93X2Zyb21fbmF0aXZlX2NhbGwpCit7CisgICAgTExJTlRfQkVHSU4oKTsK
KyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5leGNlcHRpb24pOworICAgIExMSU5UX0VORCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShMTElOVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCShy
ZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF90aHJvd19yZWYKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9kZWJ1Zyk7CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmlsZV93aWxsX2Nh
bGwpOwogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpOwor
TExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJvbV9uYXRpdmVfY2FsbCk7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpMTEludAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTA5
ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIzMDIsNiArMjMwMiw0NCBAQCBfbGxpbnRfdGhy
b3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRN
YWNoaW5lUENGb3JUaHJvd1t0MV0KIAogCittYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKyAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KKyAg
ICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAorICAgIGxvYWRpIFNjb3BlQ2hhaW4gKyBQYXls
b2FkT2Zmc2V0W3QwXSwgdDEKKyAgICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09m
ZnNldFtjZnJdCisgICAgc3RvcmVpIHQxLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJd
CisgICAgaWYgWDg2CisgICAgICAgIHBlZWsgMCwgdDEKKyAgICAgICAgc3RvcmVwIHQxLCBSZXR1
cm5QQ1tjZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0MiA9IGVjeAorICAgICAgICBzdWJw
IDE2IC0gNCwgc3AKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAg
ICBtb3ZlIHQwLCBjZnIKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0
MV0KKyAgICAgICAgYWRkcCAxNiAtIDQsIHNwCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgZXJy
b3IgIyBIYXZlbid0IGZpZ3VyZWQgaXQgb3V0IHlldAorICAgIGVsc2UgIAorICAgICAgICBlcnJv
cgorICAgIGVuZAorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGEgKyA0W3NwXSwg
dDMKKyAgICBiaW5lcSBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIEVt
cHR5VmFsdWVUYWcsIC5leGNlcHRpb24KKyAgICByZXQKKy5leGNlcHRpb246CisgICAgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhy
b3dfZnJvbV9uYXRpdmVfY2FsbCkKKyAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRo
X3RyYW1wb2xpbmUKK2VuZAorCitfbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZToKKyAgICBu
YXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxlOjptX2Z1bmN0aW9uKQorCisKK19s
bGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmU6CisgICAgbmF0aXZlQ2FsbFRyYW1wb2xp
bmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1Y3RvcikKKworCiAjIExhc3RseSwgbWFrZSBz
dXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bj
b2Rlcy4KICMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTElu
dCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKICMgYXMgbXVjaC4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24g
MTA5ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsMTAgQEAgZXh0ZXJuICJDIiB2b2lkIGxs
aW50X2dlbmVyaWNfcmV0dXJuX3BvaQogZXh0ZXJuICJDIiB2b2lkIGxsaW50X3Rocm93X2Zyb21f
c2xvd19wYXRoX3RyYW1wb2xpbmUoKTsKIGV4dGVybiAiQyIgdm9pZCBsbGludF90aHJvd19kdXJp
bmdfY2FsbF90cmFtcG9saW5lKCk7CiAKKy8vIE5hdGl2ZSBjYWxsIHRyYW1wb2xpbmVzCitleHRl
cm4gIkMiIHZvaWQgbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSgpOworZXh0ZXJuICJDIiB2
b2lkIGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSgpOworCiAjZW5kaWYgLy8gRU5B
QkxFKExMSU5UKQogCiAjZW5kaWYgLy8gTG93TGV2ZWxJbnRlcnByZXRlcl9oCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAxMDk4MDIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MCwxMyArMTgwLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3Mg
TmF0aXZlRXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBKSVQ7CisgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJhc2U7CiAKICNp
ZiBFTkFCTEUoSklUKQogICAgICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNhbGxUaHVuaywg
TmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb25zdHJ1Y3RU
aHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChnbG9iYWxEYXRhLmNhblVzZUpJVCgpKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5pbnRlcnByZXRlci0+Y2xhc3NpY0VuYWJsZWQo
KSk7CiAgICAgICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlOwogICAgICAgICAg
ICAgaWYgKCFjYWxsVGh1bmspIHsKICAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
TmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwpAQCAt
MjI4LDcgKzIyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShKSVQpCiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKSVRDb2RlIGNh
bGxUaHVuaywgSklUQ29kZSBjb25zdHJ1Y3RUaHVuaywgSW50cmluc2ljIGludHJpbnNpYykKICAg
ICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEuY2FuVXNlSklUKCkpOworICAg
ICAgICAgICAgQVNTRVJUKCFnbG9iYWxEYXRhLmludGVycHJldGVyLT5jbGFzc2ljRW5hYmxlZCgp
KTsKICAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAg
ICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGNhbGxUaHVuazsKICAgICAgICAgICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTMsNyArMTkzLDcgQEAgSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFs
RGF0YVR5cAogCiAgICAgd3RmVGhyZWFkRGF0YSgpLnNldEN1cnJlbnRJZGVudGlmaWVyVGFibGUo
ZXhpc3RpbmdFbnRyeUlkZW50aWZpZXJUYWJsZSk7CiAKLSNpZiBFTkFCTEUoSklUKSAmJiBFTkFC
TEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikKKyNpZiBFTkFCTEUoSklUKSAmJiAoRU5BQkxFKENMQVNT
SUNfSU5URVJQUkVURVIpIHx8IEVOQUJMRShMTElOVCkpCiAjaWYgVVNFKENGKQogICAgIENGU3Ry
aW5nUmVmIGNhblVzZUpJVEtleSA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoMCAsICJKYXZh
U2NyaXB0Q29yZVVzZUpJVCIsIGtDRlN0cmluZ0VuY29kaW5nTWFjUm9tYW4pOwogICAgIENGQm9v
bGVhblJlZiBjYW5Vc2VKSVQgPSAoQ0ZCb29sZWFuUmVmKUNGUHJlZmVyZW5jZXNDb3B5QXBwVmFs
dWUoY2FuVXNlSklUS2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CkBAIC0y
MTMsMTMgKzIxMywxNiBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9iYWxEYXRhVHlw
CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShKSVQpCi0jaWYgRU5BQkxFKENMQVNTSUNfSU5U
RVJQUkVURVIpCisjaWYgRU5BQkxFKENMQVNTSUNfSU5URVJQUkVURVIpIHx8IEVOQUJMRShMTElO
VCkKICAgICBpZiAobV9jYW5Vc2VKSVQpCiAgICAgICAgIG1fY2FuVXNlSklUID0gZXhlY3V0YWJs
ZUFsbG9jYXRvci5pc1ZhbGlkKCk7CisgICAgCisgICAgaWYgKCFPcHRpb25zOjp1c2VKSVQpCisg
ICAgICAgIG1fY2FuVXNlSklUID0gZmFsc2U7CiAjZW5kaWYKICAgICBqaXRTdHVicyA9IGFkb3B0
UHRyKG5ldyBKSVRUaHVua3ModGhpcykpOwogI2VuZGlmCi0KKyAgICAKICAgICBpbnRlcnByZXRl
ci0+aW5pdGlhbGl6ZSgmbGxpbnREYXRhLCB0aGlzLT5jYW5Vc2VKSVQoKSk7CiAgICAgCiAgICAg
aW5pdGlhbGl6ZUhvc3RDYWxsUmV0dXJuVmFsdWUoKTsgLy8gVGhpcyBpcyBuZWVkZWQgdG8gY29u
dmluY2UgdGhlIGxpbmtlciBub3QgdG8gZHJvcCBob3N0IGNhbGwgcmV0dXJuIHN1cHBvcnQuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2
aXNpb24gMTA5ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxE
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw3ICsyMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogI2lmICFFTkFCTEUoSklUKQogICAgICAgICBib29sIGNhblVzZUpJVCgpIHsgcmV0dXJuIGZh
bHNlOyB9IC8vIGludGVycHJldGVyIG9ubHkKLSNlbGlmICFFTkFCTEUoQ0xBU1NJQ19JTlRFUlBS
RVRFUikKKyNlbGlmICFFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikgJiYgIUVOQUJMRShMTElO
VCkKICAgICAgICAgYm9vbCBjYW5Vc2VKSVQoKSB7IHJldHVybiB0cnVlOyB9IC8vIGppdCBvbmx5
CiAjZWxzZQogICAgICAgICBib29sIGNhblVzZUpJVCgpIHsgcmV0dXJuIG1fY2FuVXNlSklUOyB9
CkBAIC0zNjksNyArMzY5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTR2xvYmFsRGF0
YShHbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBlLCBIZWFwU2l6ZSk7CiAgICAgICAgIHN0
YXRpYyBKU0dsb2JhbERhdGEqJiBzaGFyZWRJbnN0YW5jZUludGVybmFsKCk7CiAgICAgICAgIHZv
aWQgY3JlYXRlTmF0aXZlVGh1bmsoKTsKLSNpZiBFTkFCTEUoSklUKSAmJiBFTkFCTEUoQ0xBU1NJ
Q19JTlRFUlBSRVRFUikKKyNpZiBFTkFCTEUoSklUKSAmJiAoRU5BQkxFKENMQVNTSUNfSU5URVJQ
UkVURVIpIHx8IEVOQUJMRShMTElOVCkpCiAgICAgICAgIGJvb2wgbV9jYW5Vc2VKSVQ7CiAjZW5k
aWYKICNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NyBAQAogI2VuZGlmCiAKIC8vIFNldCB0byAxIHRvIGNvbnRyb2wgdGhlIGhldXJpc3RpY3MgdXNp
bmcgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotI2RlZmluZSBFTkFCTEVfUlVOX1RJTUVfSEVVUklT
VElDUyAwCisjZGVmaW5lIEVOQUJMRV9SVU5fVElNRV9IRVVSSVNUSUNTIDEKIAogI2lmIEVOQUJM
RShSVU5fVElNRV9IRVVSSVNUSUNTKQogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC00NSw2ICs0NSw4
IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAKK2Jvb2wgdXNlSklU
OworCiB1bnNpZ25lZCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3Vu
dDsKIAogdW5zaWduZWQgbWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNhbmRpZGF0ZUluc3Ry
dWN0aW9uQ291bnQ7CkBAIC05Myw2ICs5NSwxOSBAQCB1bnNpZ25lZCBudW1iZXJPZkdDTWFya2Vy
czsKIHVuc2lnbmVkIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZDsKIAogI2lmIEVOQUJMRShSVU5f
VElNRV9IRVVSSVNUSUNTKQorc3RhdGljIGJvb2wgcGFyc2UoY29uc3QgY2hhciogc3RyaW5nLCBi
b29sJiB2YWx1ZSkKK3sKKyAgICBpZiAoIXN0cmNhc2VjbXAoc3RyaW5nLCAidHJ1ZSIpIHx8ICFz
dHJjYXNlY21wKHN0cmluZywgInllcyIpIHx8ICFzdHJjbXAoc3RyaW5nLCAiMSIpKSB7CisgICAg
ICAgIHZhbHVlID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmICgh
c3RyY2FzZWNtcChzdHJpbmcsICJmYWxzZSIpIHx8ICFzdHJjYXNlY21wKHN0cmluZywgIm5vIikg
fHwgIXN0cmNtcChzdHJpbmcsICIwIikpIHsKKyAgICAgICAgdmFsdWUgPSBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJv
b2wgcGFyc2UoY29uc3QgY2hhciogc3RyaW5nLCBpbnQzMl90JiB2YWx1ZSkKIHsKICAgICByZXR1
cm4gc3NjYW5mKHN0cmluZywgIiVkIiwgJnZhbHVlKSA9PSAxOwpAQCAtMTMxLDYgKzE0Niw4IEBA
IHZvaWQgc2V0SGV1cmlzdGljKFQmIHZhcmlhYmxlLCBjb25zdCBjaGEKIAogdm9pZCBpbml0aWFs
aXplT3B0aW9ucygpCiB7CisgICAgU0VUKHVzZUpJVCwgdHJ1ZSk7CisgICAgCiAgICAgU0VUKG1h
eGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxMTAwKTsKICAgICAK
ICAgICBTRVQobWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9u
Q291bnQsIDE4MCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBPcHRpb25zIHsKIAorZXh0ZXJuIGJvb2wgdXNlSklUOworCiBleHRlcm4gdW5z
aWduZWQgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQ7CiAKIGV4
dGVybiB1bnNpZ25lZCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1
Y3Rpb25Db3VudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130224</attachid>
            <date>2012-03-05 16:23:31 -0800</date>
            <delta_ts>2012-03-05 16:33:13 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llintnojit_patch_2.diff</filename>
            <type>text/plain</type>
            <size>20191</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5ODEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDEyLTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIExMSW50IHNob3VsZCB3b3JrIGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM0MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTA5MjIyMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRy
KToKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyQ29kZVJlZik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjppbml0aWFs
aXplKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoKKyAg
ICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
VGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QpOgorICAgICAgICAqIGxsaW50L0xMSW50RW50cnlw
b2ludHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0RnVuY3Rpb25FbnRyeXBvaW50KToK
KyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEV2YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6
TExJbnQ6OmdldFByb2dyYW1FbnRyeXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQ
YXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6Cisg
ICAgICAgIChMTEludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAg
ICAgKExMSW50KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmg6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKE5hdGl2ZUV4ZWN1dGFibGUpOgorICAgICAgICAo
SlNDOjpOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVFeGVj
dXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTR2xvYmFsRGF0YSk6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKE9wdGlvbnMpOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZSk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemVP
cHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKE9wdGlvbnMp
OgorCiAyMDEyLTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGhvc3RpbmcgbGF5ZXJzIGluIHRoZSB3aW5kb3cgc2VydmVyIGluIFdl
YktpdDIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gMTA5ODAyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgwLDYgKzI4MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjcmVhdGVMTEludENv
ZGVQdHIodm9pZCAoKmZ1bmN0aW9uKSgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZy
b21FeGVjdXRhYmxlQWRkcmVzcyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSk7CisgICAg
fQogICAgIGV4cGxpY2l0IE1hY3JvQXNzZW1ibGVyQ29kZVB0cihSZXR1cm5BZGRyZXNzUHRyIHJh
KQogICAgICAgICA6IG1fdmFsdWUocmEudmFsdWUoKSkKICAgICB7CkBAIC0zNDAsNiArMzQ0LDEy
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVJlZihjb2RlUHRy
KTsKICAgICB9CiAgICAgCisgICAgLy8gSGVscGVyIGZvciBjcmVhdGluZyBzZWxmLW1hbmFnZWQg
Y29kZSByZWZzIGZyb20gTExJbnQuCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
cmVhdGVMTEludENvZGVSZWYodm9pZCAoKmZ1bmN0aW9uKSgpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0
ZUZyb21FeGVjdXRhYmxlQWRkcmVzcyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSkpOwor
ICAgIH0KKyAgICAKICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBleGVjdXRhYmxlTWVtb3J5
KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2V4ZWN1dGFibGVNZW1vcnkuZ2V0KCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MCwzMSArNTYwLDI3
IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmluaXRpYWxpemUoTExJbnQ6OkRhdGEKIHsKICAgICBVTlVT
RURfUEFSQU0obGxpbnREYXRhKTsKICAgICBVTlVTRURfUEFSQU0oY2FuVXNlSklUKTsKLSNpZiBF
TkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQp
Ci0jaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpCi0gICAgLy8g
SGF2aW5nIExMSW50IGVuYWJsZWQsIGJ1dCBub3QgYmVpbmcgYWJsZSB0byB1c2UgdGhlIEpJVCwg
YW5kIG5vdCBoYXZpbmcKLSAgICAvLyBhIGNvbXB1dGVkIGdvdG8gaW50ZXJwcmV0ZXIsIGlzIG5v
dCBzdXBwb3J0ZWQuIE5vdCBiZWNhdXNlIHdlIGNhbm5vdAotICAgIC8vIHN1cHBvcnQgaXQsIGJ1
dCBiZWNhdXNlIEkgZGVjaWRlZCB0byBkcmF3IHRoZSBsaW5lIGF0IHRoZSBudW1iZXIgb2YKLSAg
ICAvLyBwZXJtdXRhdGlvbnMgb2YgZXhlY3V0aW9uIGVuZ2luZXMgdGhhdCBJIHdhbnRlZCB0aGlz
IGNvZGUgdG8gZ3Jvay4KLSAgICBBU1NFUlQoY2FuVXNlSklUKTsKKworICAgIC8vIElmIHdlIGhh
dmUgTExJbnQsIHRoZW4gd2Ugc2hvdWxkbid0IGJlIGJ1aWxkaW5nIGFueSBraW5kIG9mIGNsYXNz
aWMgaW50ZXJwcmV0ZXIuCisjaWYgRU5BQkxFKExMSU5UKSAmJiBFTkFCTEUoQ0xBU1NJQ19JTlRF
UlBSRVRFUikKKyNlcnJvciAiQnVpbGRpbmcgYm90aCBMTEludCBhbmQgdGhlIENsYXNzaWMgSW50
ZXJwcmV0ZXIgaXMgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZS4i
CiAjZW5kaWYKLSAgICBpZiAoY2FuVXNlSklUKSB7CisKICNpZiBFTkFCTEUoTExJTlQpCi0gICAg
ICAgIG1fb3Bjb2RlVGFibGUgPSBsbGludERhdGEtPm9wY29kZU1hcCgpOwotICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQotICAgICAgICAgICAgbV9vcGNvZGVJ
RFRhYmxlLmFkZChtX29wY29kZVRhYmxlW2ldLCBzdGF0aWNfY2FzdDxPcGNvZGVJRD4oaSkpOwot
I2Vsc2UKKyAgICBtX29wY29kZVRhYmxlID0gbGxpbnREYXRhLT5vcGNvZGVNYXAoKTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQorICAgICAgICBtX29wY29kZUlE
VGFibGUuYWRkKG1fb3Bjb2RlVGFibGVbaV0sIHN0YXRpY19jYXN0PE9wY29kZUlEPihpKSk7Cisg
ICAgbV9jbGFzc2ljRW5hYmxlZCA9IGZhbHNlOworI2VsaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9f
Q0xBU1NJQ19JTlRFUlBSRVRFUikKKyAgICBpZiAoY2FuVXNlSklUKSB7CiAgICAgICAgIC8vIElm
IHRoZSBKSVQgaXMgcHJlc2VudCwgZG9uJ3QgdXNlIGp1bXAgZGVzdGluYXRpb25zIGZvciBvcGNv
ZGVzLgogICAgICAgICAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7
ICsraSkgewogICAgICAgICAgICAgT3Bjb2RlIG9wY29kZSA9IGJpdHdpc2VfY2FzdDx2b2lkKj4o
c3RhdGljX2Nhc3Q8dWludHB0cl90PihpKSk7CiAgICAgICAgICAgICBtX29wY29kZVRhYmxlW2ld
ID0gb3Bjb2RlOwogICAgICAgICB9Ci0jZW5kaWYKKyAgICAgICAgbV9jbGFzc2ljRW5hYmxlZCA9
IGZhbHNlOwogICAgIH0gZWxzZSB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICBtX29wY29k
ZVRhYmxlID0gbmV3IE9wY29kZVtudW1PcGNvZGVJRHNdOwotI2VuZGlmCiAgICAgICAgIHByaXZh
dGVFeGVjdXRlKEluaXRpYWxpemVBbmRSZXR1cm4sIDAsIDApOwogICAgICAgICAKICAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7ICsraSkKQEAgLTExOTgsNyArMTE5NCw3
IEBAIGZhaWxlZEpTT05QOgogCiAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFC
TEUoSklUKQotICAgICAgICBpZiAoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuY2FuVXNlSklUKCkp
CisgICAgICAgIGlmICghY2xhc3NpY0VuYWJsZWQoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IHBy
b2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2Fs
bEZyYW1lLCBzY29wZUNoYWluLT5nbG9iYWxEYXRhKTsKICAgICAgICAgZWxzZQogI2VuZGlmCkBA
IC0xMjcwLDcgKzEyNjYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxs
RnJhCiAKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFCTEUoSklUKQot
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKQorICAg
ICAgICAgICAgaWYgKCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9
IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwo
KS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lLCBjYWxsRGF0YVNjb3BlQ2hh
aW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQogI2VuZGlmCkBAIC0xMzY2LDcgKzEz
NjIsNyBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAKICAgICAg
ICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFCTEUoSklUKQotICAgICAgICAgICAg
aWYgKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKQorICAgICAgICAgICAgaWYg
KCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdERh
dGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCku
ZXhlY3V0ZSgmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSwgY29uc3RydWN0RGF0YVNjb3Bl
Q2hhaW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw4ICsyNTQsMTMgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIENvZGVSZWYgY29tcGlsZUNUSU5hdGl2ZUNhbGwo
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIWdsb2JhbERhdGEtPmNhblVzZUpJVCgpKQorICAgICAgICAgICAg
aWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkgeworI2lmIEVOQUJMRShMTElOVCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2
ZV9jYWxsX3RyYW1wb2xpbmUpOworI2Vsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZVJl
ZigpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBKSVQgaml0KGdsb2JhbERh
dGEsIDApOwogICAgICAgICAgICAgcmV0dXJuIGppdC5wcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNh
bGwoZ2xvYmFsRGF0YSwgZnVuYyk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5j
bHVkZSAiQ2FsbERhdGEuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKKyNpbmNsdWRlICJMb3dM
ZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAj
aW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKQEAgLTMw
Niw4ICszMDcsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0TGluazsgfQogICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3Rp
VmlydHVhbENhbGw7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxD
b25zdHJ1Y3QoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0
cnVjdDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbCgpIHsg
cmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOyB9Ci0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKSB7IHJldHVybiBtX3RyYW1w
b2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OyB9CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkKKyAgICAgICAgeworI2lmIEVOQUJMRShMTElOVCkK
KyAgICAgICAgICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQorICAgICAgICAgICAgICAgIHJl
dHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRp
dmVfY2FsbF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBv
bGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOworICAgICAgICB9CisgICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKQorICAgICAgICB7CisjaWYgRU5BQkxF
KExMSU5UKQorICAgICAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxs
aW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJl
dHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OworICAgICAgICB9
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTb2Z0TW9kdWxvKCkgeyByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVNvZnRNb2R1bG87IH0KIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRvcik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludHMu
Y3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRFbnRyeXBvaW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEzICszOSwxMyBAQCB2b2lk
IGdldEZ1bmN0aW9uRW50cnlwb2ludChKU0dsb2JhbERhdGEmCiB7CiAgICAgaWYgKCFnbG9iYWxE
YXRhLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlID0gSklUQ29kZTo6SG9zdEZ1bmN0aW9uKE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihi
aXR3aXNlX2Nhc3Q8dm9pZCo+KCZsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSkpKSk7
CisgICAgICAgICAgICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0
PHZvaWQqPigmbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpKSksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspOwogICAgICAgICAgICAgYXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVy
Q29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0
eV9jaGVjaykpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgQVNT
RVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2Rl
OjpIb3N0RnVuY3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENv
ZGVSZWYoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWUpKSkpOworICAgICAgICBqaXRDb2RlID0gSklU
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNy
b0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfZnVuY3Rpb25fZm9y
X2NvbnN0cnVjdF9wcm9sb2d1ZSkpKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAg
ICAgIGFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQq
PigmbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjaykpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIGdldEZ1bmN0aW9uRW50cnlwb2lu
dChKU0dsb2JhbERhdGEmCiB2b2lkIGdldEV2YWxFbnRyeXBvaW50KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSklUQ29kZSYgaml0Q29kZSkKIHsKICAgICBpZiAoIWdsb2JhbERhdGEuY2FuVXNl
SklUKCkpIHsKLSAgICAgICAgaml0Q29kZSA9IEpJVENvZGU6Okhvc3RGdW5jdGlvbihNYWNyb0Fz
c2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfZXZhbF9wcm9sb2d1ZSkpKSk7CisgICAg
ICAgIGppdENvZGUgPSBKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1h
bmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZs
bGludF9ldmFsX3Byb2xvZ3VlKSkpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBnZXRFdmFsRW50
cnlwb2ludChKU0dsb2JhbERhdGEmIGdsbwogdm9pZCBnZXRQcm9ncmFtRW50cnlwb2ludChKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUmIGppdENvZGUpCiB7CiAgICAgaWYgKCFnbG9i
YWxEYXRhLmNhblVzZUpJVCgpKSB7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X3Byb2dyYW1fcHJv
bG9ndWUpKSkpOworICAgICAgICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lz
ZV9jYXN0PHZvaWQqPigmbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSkpKSwgSklUQ29kZTo6SW50ZXJw
cmV0ZXJUaHVuayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDEw
OTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NzQsNiArMTU3NCwxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfcHJvZmlsZV9kCiAgICAgTExJTlRfRU5EKCk7CiB9CiAKK0xMSU5UX1NMT1df
UEFUSF9ERUNMKHRocm93X2Zyb21fbmF0aXZlX2NhbGwpCit7CisgICAgTExJTlRfQkVHSU4oKTsK
KyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5leGNlcHRpb24pOworICAgIExMSU5UX0VORCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShMTElOVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCShy
ZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF90aHJvd19yZWYKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9kZWJ1Zyk7CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmlsZV93aWxsX2Nh
bGwpOwogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpOwor
TExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJvbV9uYXRpdmVfY2FsbCk7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpMTEludAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTA5
ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIzMDIsNiArMjMwMiw0NCBAQCBfbGxpbnRfdGhy
b3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRN
YWNoaW5lUENGb3JUaHJvd1t0MV0KIAogCittYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKyAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KKyAg
ICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAorICAgIGxvYWRpIFNjb3BlQ2hhaW4gKyBQYXls
b2FkT2Zmc2V0W3QwXSwgdDEKKyAgICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09m
ZnNldFtjZnJdCisgICAgc3RvcmVpIHQxLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJd
CisgICAgaWYgWDg2CisgICAgICAgIHBlZWsgMCwgdDEKKyAgICAgICAgc3RvcmVwIHQxLCBSZXR1
cm5QQ1tjZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0MiA9IGVjeAorICAgICAgICBzdWJw
IDE2IC0gNCwgc3AKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAg
ICBtb3ZlIHQwLCBjZnIKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0
MV0KKyAgICAgICAgYWRkcCAxNiAtIDQsIHNwCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgZXJy
b3IgIyBIYXZlbid0IGZpZ3VyZWQgaXQgb3V0IHlldAorICAgIGVsc2UgIAorICAgICAgICBlcnJv
cgorICAgIGVuZAorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGEgKyA0W3NwXSwg
dDMKKyAgICBiaW5lcSBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIEVt
cHR5VmFsdWVUYWcsIC5leGNlcHRpb24KKyAgICByZXQKKy5leGNlcHRpb246CisgICAgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhy
b3dfZnJvbV9uYXRpdmVfY2FsbCkKKyAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRo
X3RyYW1wb2xpbmUKK2VuZAorCitfbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZToKKyAgICBu
YXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxlOjptX2Z1bmN0aW9uKQorCisKK19s
bGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmU6CisgICAgbmF0aXZlQ2FsbFRyYW1wb2xp
bmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1Y3RvcikKKworCiAjIExhc3RseSwgbWFrZSBz
dXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bj
b2Rlcy4KICMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTElu
dCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKICMgYXMgbXVjaC4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24g
MTA5ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsMTAgQEAgZXh0ZXJuICJDIiB2b2lkIGxs
aW50X2dlbmVyaWNfcmV0dXJuX3BvaQogZXh0ZXJuICJDIiB2b2lkIGxsaW50X3Rocm93X2Zyb21f
c2xvd19wYXRoX3RyYW1wb2xpbmUoKTsKIGV4dGVybiAiQyIgdm9pZCBsbGludF90aHJvd19kdXJp
bmdfY2FsbF90cmFtcG9saW5lKCk7CiAKKy8vIE5hdGl2ZSBjYWxsIHRyYW1wb2xpbmVzCitleHRl
cm4gIkMiIHZvaWQgbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSgpOworZXh0ZXJuICJDIiB2
b2lkIGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSgpOworCiAjZW5kaWYgLy8gRU5B
QkxFKExMSU5UKQogCiAjZW5kaWYgLy8gTG93TGV2ZWxJbnRlcnByZXRlcl9oCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAxMDk4MDIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MCwxMyArMTgwLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3Mg
TmF0aXZlRXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBKSVQ7CisgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJhc2U7CiAKICNp
ZiBFTkFCTEUoSklUKQogICAgICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNhbGxUaHVuaywg
TmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb25zdHJ1Y3RU
aHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChnbG9iYWxEYXRhLmNhblVzZUpJVCgpKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5pbnRlcnByZXRlci0+Y2xhc3NpY0VuYWJsZWQo
KSk7CiAgICAgICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlOwogICAgICAgICAg
ICAgaWYgKCFjYWxsVGh1bmspIHsKICAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
TmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwpAQCAt
MjI4LDcgKzIyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShKSVQpCiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKSVRDb2RlIGNh
bGxUaHVuaywgSklUQ29kZSBjb25zdHJ1Y3RUaHVuaywgSW50cmluc2ljIGludHJpbnNpYykKICAg
ICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEuY2FuVXNlSklUKCkpOworICAg
ICAgICAgICAgQVNTRVJUKCFnbG9iYWxEYXRhLmludGVycHJldGVyLT5jbGFzc2ljRW5hYmxlZCgp
KTsKICAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAg
ICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGNhbGxUaHVuazsKICAgICAgICAgICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTMsNyArMTkzLDcgQEAgSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFs
RGF0YVR5cAogCiAgICAgd3RmVGhyZWFkRGF0YSgpLnNldEN1cnJlbnRJZGVudGlmaWVyVGFibGUo
ZXhpc3RpbmdFbnRyeUlkZW50aWZpZXJUYWJsZSk7CiAKLSNpZiBFTkFCTEUoSklUKSAmJiBFTkFC
TEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikKKyNpZiBFTkFCTEUoSklUKSAmJiAoRU5BQkxFKENMQVNT
SUNfSU5URVJQUkVURVIpIHx8IEVOQUJMRShMTElOVCkpCiAjaWYgVVNFKENGKQogICAgIENGU3Ry
aW5nUmVmIGNhblVzZUpJVEtleSA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoMCAsICJKYXZh
U2NyaXB0Q29yZVVzZUpJVCIsIGtDRlN0cmluZ0VuY29kaW5nTWFjUm9tYW4pOwogICAgIENGQm9v
bGVhblJlZiBjYW5Vc2VKSVQgPSAoQ0ZCb29sZWFuUmVmKUNGUHJlZmVyZW5jZXNDb3B5QXBwVmFs
dWUoY2FuVXNlSklUS2V5LCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CkBAIC0y
MTMsMTMgKzIxMywxNiBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9iYWxEYXRhVHlw
CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShKSVQpCi0jaWYgRU5BQkxFKENMQVNTSUNfSU5U
RVJQUkVURVIpCisjaWYgRU5BQkxFKENMQVNTSUNfSU5URVJQUkVURVIpIHx8IEVOQUJMRShMTElO
VCkKICAgICBpZiAobV9jYW5Vc2VKSVQpCiAgICAgICAgIG1fY2FuVXNlSklUID0gZXhlY3V0YWJs
ZUFsbG9jYXRvci5pc1ZhbGlkKCk7CisgICAgCisgICAgaWYgKCFPcHRpb25zOjp1c2VKSVQpCisg
ICAgICAgIG1fY2FuVXNlSklUID0gZmFsc2U7CiAjZW5kaWYKICAgICBqaXRTdHVicyA9IGFkb3B0
UHRyKG5ldyBKSVRUaHVua3ModGhpcykpOwogI2VuZGlmCi0KKyAgICAKICAgICBpbnRlcnByZXRl
ci0+aW5pdGlhbGl6ZSgmbGxpbnREYXRhLCB0aGlzLT5jYW5Vc2VKSVQoKSk7CiAgICAgCiAgICAg
aW5pdGlhbGl6ZUhvc3RDYWxsUmV0dXJuVmFsdWUoKTsgLy8gVGhpcyBpcyBuZWVkZWQgdG8gY29u
dmluY2UgdGhlIGxpbmtlciBub3QgdG8gZHJvcCBob3N0IGNhbGwgcmV0dXJuIHN1cHBvcnQuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2
aXNpb24gMTA5ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxE
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw3ICsyMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogI2lmICFFTkFCTEUoSklUKQogICAgICAgICBib29sIGNhblVzZUpJVCgpIHsgcmV0dXJuIGZh
bHNlOyB9IC8vIGludGVycHJldGVyIG9ubHkKLSNlbGlmICFFTkFCTEUoQ0xBU1NJQ19JTlRFUlBS
RVRFUikKKyNlbGlmICFFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikgJiYgIUVOQUJMRShMTElO
VCkKICAgICAgICAgYm9vbCBjYW5Vc2VKSVQoKSB7IHJldHVybiB0cnVlOyB9IC8vIGppdCBvbmx5
CiAjZWxzZQogICAgICAgICBib29sIGNhblVzZUpJVCgpIHsgcmV0dXJuIG1fY2FuVXNlSklUOyB9
CkBAIC0zNjksNyArMzY5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTR2xvYmFsRGF0
YShHbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBlLCBIZWFwU2l6ZSk7CiAgICAgICAgIHN0
YXRpYyBKU0dsb2JhbERhdGEqJiBzaGFyZWRJbnN0YW5jZUludGVybmFsKCk7CiAgICAgICAgIHZv
aWQgY3JlYXRlTmF0aXZlVGh1bmsoKTsKLSNpZiBFTkFCTEUoSklUKSAmJiBFTkFCTEUoQ0xBU1NJ
Q19JTlRFUlBSRVRFUikKKyNpZiBFTkFCTEUoSklUKSAmJiAoRU5BQkxFKENMQVNTSUNfSU5URVJQ
UkVURVIpIHx8IEVOQUJMRShMTElOVCkpCiAgICAgICAgIGJvb2wgbV9jYW5Vc2VKSVQ7CiAjZW5k
aWYKICNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUs
OCBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIE9wdGlvbnMgewogCitib29sIHVzZUpJ
VDsKKwogdW5zaWduZWQgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291
bnQ7CiAKIHVuc2lnbmVkIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0
cnVjdGlvbkNvdW50OwpAQCAtOTMsNiArOTUsMTkgQEAgdW5zaWduZWQgbnVtYmVyT2ZHQ01hcmtl
cnM7CiB1bnNpZ25lZCBvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQ7CiAKICNpZiBFTkFCTEUoUlVO
X1RJTUVfSEVVUklTVElDUykKK3N0YXRpYyBib29sIHBhcnNlKGNvbnN0IGNoYXIqIHN0cmluZywg
Ym9vbCYgdmFsdWUpCit7CisgICAgaWYgKCFzdHJjYXNlY21wKHN0cmluZywgInRydWUiKSB8fCAh
c3RyY2FzZWNtcChzdHJpbmcsICJ5ZXMiKSB8fCAhc3RyY21wKHN0cmluZywgIjEiKSkgeworICAg
ICAgICB2YWx1ZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAo
IXN0cmNhc2VjbXAoc3RyaW5nLCAiZmFsc2UiKSB8fCAhc3RyY2FzZWNtcChzdHJpbmcsICJubyIp
IHx8ICFzdHJjbXAoc3RyaW5nLCAiMCIpKSB7CisgICAgICAgIHZhbHVlID0gZmFsc2U7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBi
b29sIHBhcnNlKGNvbnN0IGNoYXIqIHN0cmluZywgaW50MzJfdCYgdmFsdWUpCiB7CiAgICAgcmV0
dXJuIHNzY2FuZihzdHJpbmcsICIlZCIsICZ2YWx1ZSkgPT0gMTsKQEAgLTEzMSw2ICsxNDYsOCBA
QCB2b2lkIHNldEhldXJpc3RpYyhUJiB2YXJpYWJsZSwgY29uc3QgY2hhCiAKIHZvaWQgaW5pdGlh
bGl6ZU9wdGlvbnMoKQogeworICAgIFNFVCh1c2VKSVQsIHRydWUpOworICAgIAogICAgIFNFVCht
YXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTEwMCk7CiAgICAg
CiAgICAgU0VUKG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlv
bkNvdW50LCAxODApOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aAkocmV2aXNpb24gMTA5ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAKK2V4dGVybiBib29sIHVzZUpJVDsKKwogZXh0ZXJuIHVu
c2lnbmVkIG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50OwogCiBl
eHRlcm4gdW5zaWduZWQgbWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNhbmRpZGF0ZUluc3Ry
dWN0aW9uQ291bnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130228</attachid>
            <date>2012-03-05 16:33:13 -0800</date>
            <delta_ts>2012-03-05 22:30:51 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llintnojit_patch_3.diff</filename>
            <type>text/plain</type>
            <size>20431</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5ODEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDEyLTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIExMSW50IHNob3VsZCB3b3JrIGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM0MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTA5MjIyMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRy
KToKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyQ29kZVJlZik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjppbml0aWFs
aXplKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoKKyAg
ICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
VGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QpOgorICAgICAgICAqIGxsaW50L0xMSW50RW50cnlw
b2ludHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0RnVuY3Rpb25FbnRyeXBvaW50KToK
KyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEV2YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6
TExJbnQ6OmdldFByb2dyYW1FbnRyeXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQ
YXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6Cisg
ICAgICAgIChMTEludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAg
ICAgKExMSW50KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmg6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKE5hdGl2ZUV4ZWN1dGFibGUpOgorICAgICAgICAo
SlNDOjpOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVFeGVj
dXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTR2xvYmFsRGF0YSk6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKE9wdGlvbnMpOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZSk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemVP
cHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKE9wdGlvbnMp
OgorCiAyMDEyLTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGhvc3RpbmcgbGF5ZXJzIGluIHRoZSB3aW5kb3cgc2VydmVyIGluIFdl
YktpdDIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gMTA5ODAyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgwLDYgKzI4MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjcmVhdGVMTEludENv
ZGVQdHIodm9pZCAoKmZ1bmN0aW9uKSgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZy
b21FeGVjdXRhYmxlQWRkcmVzcyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSk7CisgICAg
fQogICAgIGV4cGxpY2l0IE1hY3JvQXNzZW1ibGVyQ29kZVB0cihSZXR1cm5BZGRyZXNzUHRyIHJh
KQogICAgICAgICA6IG1fdmFsdWUocmEudmFsdWUoKSkKICAgICB7CkBAIC0zNDAsNiArMzQ0LDEy
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVJlZihjb2RlUHRy
KTsKICAgICB9CiAgICAgCisgICAgLy8gSGVscGVyIGZvciBjcmVhdGluZyBzZWxmLW1hbmFnZWQg
Y29kZSByZWZzIGZyb20gTExJbnQuCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
cmVhdGVMTEludENvZGVSZWYodm9pZCAoKmZ1bmN0aW9uKSgpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0
ZUZyb21FeGVjdXRhYmxlQWRkcmVzcyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSkpOwor
ICAgIH0KKyAgICAKICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBleGVjdXRhYmxlTWVtb3J5
KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2V4ZWN1dGFibGVNZW1vcnkuZ2V0KCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MCwzMSArNTYwLDI3
IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmluaXRpYWxpemUoTExJbnQ6OkRhdGEKIHsKICAgICBVTlVT
RURfUEFSQU0obGxpbnREYXRhKTsKICAgICBVTlVTRURfUEFSQU0oY2FuVXNlSklUKTsKLSNpZiBF
TkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQp
Ci0jaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpCi0gICAgLy8g
SGF2aW5nIExMSW50IGVuYWJsZWQsIGJ1dCBub3QgYmVpbmcgYWJsZSB0byB1c2UgdGhlIEpJVCwg
YW5kIG5vdCBoYXZpbmcKLSAgICAvLyBhIGNvbXB1dGVkIGdvdG8gaW50ZXJwcmV0ZXIsIGlzIG5v
dCBzdXBwb3J0ZWQuIE5vdCBiZWNhdXNlIHdlIGNhbm5vdAotICAgIC8vIHN1cHBvcnQgaXQsIGJ1
dCBiZWNhdXNlIEkgZGVjaWRlZCB0byBkcmF3IHRoZSBsaW5lIGF0IHRoZSBudW1iZXIgb2YKLSAg
ICAvLyBwZXJtdXRhdGlvbnMgb2YgZXhlY3V0aW9uIGVuZ2luZXMgdGhhdCBJIHdhbnRlZCB0aGlz
IGNvZGUgdG8gZ3Jvay4KLSAgICBBU1NFUlQoY2FuVXNlSklUKTsKKworICAgIC8vIElmIHdlIGhh
dmUgTExJbnQsIHRoZW4gd2Ugc2hvdWxkbid0IGJlIGJ1aWxkaW5nIGFueSBraW5kIG9mIGNsYXNz
aWMgaW50ZXJwcmV0ZXIuCisjaWYgRU5BQkxFKExMSU5UKSAmJiBFTkFCTEUoQ0xBU1NJQ19JTlRF
UlBSRVRFUikKKyNlcnJvciAiQnVpbGRpbmcgYm90aCBMTEludCBhbmQgdGhlIENsYXNzaWMgSW50
ZXJwcmV0ZXIgaXMgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZS4i
CiAjZW5kaWYKLSAgICBpZiAoY2FuVXNlSklUKSB7CisKICNpZiBFTkFCTEUoTExJTlQpCi0gICAg
ICAgIG1fb3Bjb2RlVGFibGUgPSBsbGludERhdGEtPm9wY29kZU1hcCgpOwotICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQotICAgICAgICAgICAgbV9vcGNvZGVJ
RFRhYmxlLmFkZChtX29wY29kZVRhYmxlW2ldLCBzdGF0aWNfY2FzdDxPcGNvZGVJRD4oaSkpOwot
I2Vsc2UKKyAgICBtX29wY29kZVRhYmxlID0gbGxpbnREYXRhLT5vcGNvZGVNYXAoKTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQorICAgICAgICBtX29wY29kZUlE
VGFibGUuYWRkKG1fb3Bjb2RlVGFibGVbaV0sIHN0YXRpY19jYXN0PE9wY29kZUlEPihpKSk7Cisg
ICAgbV9jbGFzc2ljRW5hYmxlZCA9IGZhbHNlOworI2VsaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9f
Q0xBU1NJQ19JTlRFUlBSRVRFUikKKyAgICBpZiAoY2FuVXNlSklUKSB7CiAgICAgICAgIC8vIElm
IHRoZSBKSVQgaXMgcHJlc2VudCwgZG9uJ3QgdXNlIGp1bXAgZGVzdGluYXRpb25zIGZvciBvcGNv
ZGVzLgogICAgICAgICAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7
ICsraSkgewogICAgICAgICAgICAgT3Bjb2RlIG9wY29kZSA9IGJpdHdpc2VfY2FzdDx2b2lkKj4o
c3RhdGljX2Nhc3Q8dWludHB0cl90PihpKSk7CiAgICAgICAgICAgICBtX29wY29kZVRhYmxlW2ld
ID0gb3Bjb2RlOwogICAgICAgICB9Ci0jZW5kaWYKKyAgICAgICAgbV9jbGFzc2ljRW5hYmxlZCA9
IGZhbHNlOwogICAgIH0gZWxzZSB7Ci0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICBtX29wY29k
ZVRhYmxlID0gbmV3IE9wY29kZVtudW1PcGNvZGVJRHNdOwotI2VuZGlmCiAgICAgICAgIHByaXZh
dGVFeGVjdXRlKEluaXRpYWxpemVBbmRSZXR1cm4sIDAsIDApOwogICAgICAgICAKICAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7ICsraSkKQEAgLTExOTgsNyArMTE5NCw3
IEBAIGZhaWxlZEpTT05QOgogCiAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFC
TEUoSklUKQotICAgICAgICBpZiAoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuY2FuVXNlSklUKCkp
CisgICAgICAgIGlmICghY2xhc3NpY0VuYWJsZWQoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IHBy
b2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2Fs
bEZyYW1lLCBzY29wZUNoYWluLT5nbG9iYWxEYXRhKTsKICAgICAgICAgZWxzZQogI2VuZGlmCkBA
IC0xMjcwLDcgKzEyNjYsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxs
RnJhCiAKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFCTEUoSklUKQot
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKQorICAg
ICAgICAgICAgaWYgKCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9
IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwo
KS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lLCBjYWxsRGF0YVNjb3BlQ2hh
aW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQogI2VuZGlmCkBAIC0xMzY2LDcgKzEz
NjIsNyBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAKICAgICAg
ICAgICAgIG1fcmVlbnRyeURlcHRoKys7ICAKICNpZiBFTkFCTEUoSklUKQotICAgICAgICAgICAg
aWYgKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmNhblVzZUpJVCgpKQorICAgICAgICAgICAgaWYg
KCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdERh
dGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCku
ZXhlY3V0ZSgmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSwgY29uc3RydWN0RGF0YVNjb3Bl
Q2hhaW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw4ICsyNTQsMTMgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIENvZGVSZWYgY29tcGlsZUNUSU5hdGl2ZUNhbGwo
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIWdsb2JhbERhdGEtPmNhblVzZUpJVCgpKQorICAgICAgICAgICAg
aWYgKCFnbG9iYWxEYXRhLT5jYW5Vc2VKSVQoKSkgeworI2lmIEVOQUJMRShMTElOVCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2
ZV9jYWxsX3RyYW1wb2xpbmUpOworI2Vsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gQ29kZVJl
ZigpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBKSVQgaml0KGdsb2JhbERh
dGEsIDApOwogICAgICAgICAgICAgcmV0dXJuIGppdC5wcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNh
bGwoZ2xvYmFsRGF0YSwgZnVuYyk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5j
bHVkZSAiQ2FsbERhdGEuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKKyNpbmNsdWRlICJMb3dM
ZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAj
aW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKQEAgLTMw
Niw4ICszMDcsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjdGlWaXJ0dWFsQ29uc3RydWN0TGluaygpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVj
dHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0TGluazsgfQogICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpVmlydHVhbENhbGwoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3Rp
VmlydHVhbENhbGw7IH0KICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxD
b25zdHJ1Y3QoKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpVmlydHVhbENvbnN0
cnVjdDsgfQotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbCgpIHsg
cmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOyB9Ci0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKSB7IHJldHVybiBtX3RyYW1w
b2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OyB9CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkKKyAgICAgICAgeworI2lmIEVOQUJMRShMTElOVCkK
KyAgICAgICAgICAgIGlmICghbV9leGVjdXRhYmxlTWVtb3J5KQorICAgICAgICAgICAgICAgIHJl
dHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9uYXRp
dmVfY2FsbF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBv
bGluZVN0cnVjdHVyZS5jdGlOYXRpdmVDYWxsOworICAgICAgICB9CisgICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoKQorICAgICAgICB7CisjaWYgRU5BQkxF
KExMSU5UKQorICAgICAgICAgICAgaWYgKCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxs
aW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJl
dHVybiBtX3RyYW1wb2xpbmVTdHJ1Y3R1cmUuY3RpTmF0aXZlQ29uc3RydWN0OworICAgICAgICB9
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlTb2Z0TW9kdWxvKCkgeyByZXR1cm4g
bV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVNvZnRNb2R1bG87IH0KIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY3RpU3R1YihKU0dsb2JhbERhdGEqLCBUaHVua0dlbmVyYXRvcik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludHMu
Y3BwCShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRFbnRyeXBvaW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEzICszOSwxMyBAQCB2b2lk
IGdldEZ1bmN0aW9uRW50cnlwb2ludChKU0dsb2JhbERhdGEmCiB7CiAgICAgaWYgKCFnbG9iYWxE
YXRhLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlID0gSklUQ29kZTo6SG9zdEZ1bmN0aW9uKE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihi
aXR3aXNlX2Nhc3Q8dm9pZCo+KCZsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSkpKSk7
CisgICAgICAgICAgICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0
PHZvaWQqPigmbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpKSksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspOwogICAgICAgICAgICAgYXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVy
Q29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0
eV9jaGVjaykpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgQVNT
RVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2Rl
OjpIb3N0RnVuY3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENv
ZGVSZWYoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWUpKSkpOworICAgICAgICBqaXRDb2RlID0gSklU
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNy
b0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfZnVuY3Rpb25fZm9y
X2NvbnN0cnVjdF9wcm9sb2d1ZSkpKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAg
ICAgIGFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQq
PigmbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjaykpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIGdldEZ1bmN0aW9uRW50cnlwb2lu
dChKU0dsb2JhbERhdGEmCiB2b2lkIGdldEV2YWxFbnRyeXBvaW50KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSklUQ29kZSYgaml0Q29kZSkKIHsKICAgICBpZiAoIWdsb2JhbERhdGEuY2FuVXNl
SklUKCkpIHsKLSAgICAgICAgaml0Q29kZSA9IEpJVENvZGU6Okhvc3RGdW5jdGlvbihNYWNyb0Fz
c2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfZXZhbF9wcm9sb2d1ZSkpKSk7CisgICAg
ICAgIGppdENvZGUgPSBKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1h
bmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KCZs
bGludF9ldmFsX3Byb2xvZ3VlKSkpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBnZXRFdmFsRW50
cnlwb2ludChKU0dsb2JhbERhdGEmIGdsbwogdm9pZCBnZXRQcm9ncmFtRW50cnlwb2ludChKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUmIGppdENvZGUpCiB7CiAgICAgaWYgKCFnbG9i
YWxEYXRhLmNhblVzZUpJVCgpKSB7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X3Byb2dyYW1fcHJv
bG9ndWUpKSkpOworICAgICAgICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lz
ZV9jYXN0PHZvaWQqPigmbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSkpKSwgSklUQ29kZTo6SW50ZXJw
cmV0ZXJUaHVuayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDEw
OTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NzQsNiArMTU3NCwxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfcHJvZmlsZV9kCiAgICAgTExJTlRfRU5EKCk7CiB9CiAKK0xMSU5UX1NMT1df
UEFUSF9ERUNMKHRocm93X2Zyb21fbmF0aXZlX2NhbGwpCit7CisgICAgTExJTlRfQkVHSU4oKTsK
KyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5leGNlcHRpb24pOworICAgIExMSU5UX0VORCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShMTElOVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCShy
ZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF90aHJvd19yZWYKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9kZWJ1Zyk7CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmlsZV93aWxsX2Nh
bGwpOwogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpOwor
TExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJvbV9uYXRpdmVfY2FsbCk7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpMTEludAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTA5
ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIzMDIsNiArMjMwMiw1MSBAQCBfbGxpbnRfdGhy
b3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRN
YWNoaW5lUENGb3JUaHJvd1t0MV0KIAogCittYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKyAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KKyAg
ICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAorICAgIGxvYWRpIFNjb3BlQ2hhaW4gKyBQYXls
b2FkT2Zmc2V0W3QwXSwgdDEKKyAgICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09m
ZnNldFtjZnJdCisgICAgc3RvcmVpIHQxLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJd
CisgICAgaWYgWDg2CisgICAgICAgIHBlZWsgMCwgdDEKKyAgICAgICAgc3RvcmVwIHQxLCBSZXR1
cm5QQ1tjZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0MiA9IGVjeAorICAgICAgICBzdWJw
IDE2IC0gNCwgc3AKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAg
ICBtb3ZlIHQwLCBjZnIKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0
MV0KKyAgICAgICAgYWRkcCAxNiAtIDQsIHNwCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgbW92
ZSB0MCwgdDIKKyAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAg
ICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KKyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAg
ICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAg
SlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisg
ICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgZWxzZSAgCisg
ICAgICAgIGVycm9yCisgICAgZW5kCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0
YSArIDRbc3BdLCB0MworICAgIGJpbmVxIEpTR2xvYmFsRGF0YTo6ZXhjZXB0aW9uICsgVGFnT2Zm
c2V0W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmV4Y2VwdGlvbgorICAgIHJldAorLmV4Y2VwdGlvbjoK
KyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF90aHJvd19mcm9tX25hdGl2ZV9jYWxsKQorICAgIGptcCBfbGxpbnRfdGhyb3dfZnJv
bV9zbG93X3BhdGhfdHJhbXBvbGluZQorZW5kCisKK19sbGludF9uYXRpdmVfY2FsbF90cmFtcG9s
aW5lOgorICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fZnVuY3Rp
b24pCisKKworX2xsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZToKKyAgICBuYXRpdmVD
YWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxlOjptX2NvbnN0cnVjdG9yKQorCisKICMgTGFz
dGx5LCBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gbGluayBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBw
b3J0IGFsbCBvcGNvZGVzLgogIyBUaGVzZSBvcGNvZGVzIHNob3VsZCBuZXZlciBhcmlzZSB3aGVu
IHVzaW5nIExMSW50IG9yIGVpdGhlciBKSVQuIFdlIGFzc2VydAogIyBhcyBtdWNoLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5o
CShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMCBAQCBleHRlcm4g
IkMiIHZvaWQgbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pCiBleHRlcm4gIkMiIHZvaWQgbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSgpOwogZXh0ZXJuICJDIiB2b2lkIGxsaW50
X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmUoKTsKIAorLy8gTmF0aXZlIGNhbGwgdHJhbXBv
bGluZXMKK2V4dGVybiAiQyIgdm9pZCBsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKCk7Citl
eHRlcm4gIkMiIHZvaWQgbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKCk7CisKICNl
bmRpZiAvLyBFTkFCTEUoTExJTlQpCiAKICNlbmRpZiAvLyBMb3dMZXZlbEludGVycHJldGVyX2gK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHJldmlz
aW9uIDEwOTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDEzICsxODAsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlIDogcHVibGljIEV4ZWN1dGFibGVCYXNlIHsKICAg
ICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKKyAgICAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0
c0V4dHJhY3RvcjsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgRXhlY3V0YWJsZUJhc2Ug
QmFzZTsKIAogI2lmIEVOQUJMRShKSVQpCiAgICAgICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxl
KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
Y2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgSW50cmluc2ljIGlu
dHJpbnNpYykKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEuY2FuVXNl
SklUKCkpOworICAgICAgICAgICAgQVNTRVJUKCFnbG9iYWxEYXRhLmludGVycHJldGVyLT5jbGFz
c2ljRW5hYmxlZCgpKTsKICAgICAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7
CiAgICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykgewogICAgICAgICAgICAgICAgIGV4ZWN1dGFi
bGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxE
YXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1
Y3Rvcik7CkBAIC0yMjgsNyArMjI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEpJ
VCkKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpJVENvZGUgY2FsbFRodW5rLCBKSVRDb2RlIGNvbnN0cnVjdFRodW5rLCBJbnRyaW5zaWMgaW50
cmluc2ljKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5jYW5Vc2VK
SVQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWdsb2JhbERhdGEuaW50ZXJwcmV0ZXItPmNsYXNz
aWNFbmFibGVkKCkpOwogICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7CiAgICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gY2FsbFRodW5rOwogICAgICAgICAg
ICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gY29uc3RydWN0VGh1bms7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDEw
OTgwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5Myw3ICsxOTMsNyBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFs
RGF0YShHbG9iYWxEYXRhVHlwCiAKICAgICB3dGZUaHJlYWREYXRhKCkuc2V0Q3VycmVudElkZW50
aWZpZXJUYWJsZShleGlzdGluZ0VudHJ5SWRlbnRpZmllclRhYmxlKTsKIAotI2lmIEVOQUJMRShK
SVQpICYmIEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQorI2lmIEVOQUJMRShKSVQpICYmIChF
TkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikgfHwgRU5BQkxFKExMSU5UKSkKICNpZiBVU0UoQ0Yp
CiAgICAgQ0ZTdHJpbmdSZWYgY2FuVXNlSklUS2V5ID0gQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmlu
ZygwICwgIkphdmFTY3JpcHRDb3JlVXNlSklUIiwga0NGU3RyaW5nRW5jb2RpbmdNYWNSb21hbik7
CiAgICAgQ0ZCb29sZWFuUmVmIGNhblVzZUpJVCA9IChDRkJvb2xlYW5SZWYpQ0ZQcmVmZXJlbmNl
c0NvcHlBcHBWYWx1ZShjYW5Vc2VKSVRLZXksIGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0
aW9uKTsKQEAgLTIxMywxMyArMjEzLDE2IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKEds
b2JhbERhdGFUeXAKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKEpJVCkKLSNpZiBFTkFCTEUo
Q0xBU1NJQ19JTlRFUlBSRVRFUikKKyNpZiBFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikgfHwg
RU5BQkxFKExMSU5UKQogICAgIGlmIChtX2NhblVzZUpJVCkKICAgICAgICAgbV9jYW5Vc2VKSVQg
PSBleGVjdXRhYmxlQWxsb2NhdG9yLmlzVmFsaWQoKTsKKyAgICAKKyAgICBpZiAoIU9wdGlvbnM6
OnVzZUpJVCkKKyAgICAgICAgbV9jYW5Vc2VKSVQgPSBmYWxzZTsKICNlbmRpZgogICAgIGppdFN0
dWJzID0gYWRvcHRQdHIobmV3IEpJVFRodW5rcyh0aGlzKSk7CiAjZW5kaWYKLQorICAgIAogICAg
IGludGVycHJldGVyLT5pbml0aWFsaXplKCZsbGludERhdGEsIHRoaXMtPmNhblVzZUpJVCgpKTsK
ICAgICAKICAgICBpbml0aWFsaXplSG9zdENhbGxSZXR1cm5WYWx1ZSgpOyAvLyBUaGlzIGlzIG5l
ZWRlZCB0byBjb252aW5jZSB0aGUgbGlua2VyIG5vdCB0byBkcm9wIGhvc3QgY2FsbCByZXR1cm4g
c3VwcG9ydC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
RGF0YS5oCShyZXZpc2lvbiAxMDk4MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDcgKzIzMSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAjaWYgIUVOQUJMRShKSVQpCiAgICAgICAgIGJvb2wgY2FuVXNlSklUKCkg
eyByZXR1cm4gZmFsc2U7IH0gLy8gaW50ZXJwcmV0ZXIgb25seQotI2VsaWYgIUVOQUJMRShDTEFT
U0lDX0lOVEVSUFJFVEVSKQorI2VsaWYgIUVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKSAmJiAh
RU5BQkxFKExMSU5UKQogICAgICAgICBib29sIGNhblVzZUpJVCgpIHsgcmV0dXJuIHRydWU7IH0g
Ly8gaml0IG9ubHkKICNlbHNlCiAgICAgICAgIGJvb2wgY2FuVXNlSklUKCkgeyByZXR1cm4gbV9j
YW5Vc2VKSVQ7IH0KQEAgLTM2OSw3ICszNjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXBlLCBUaHJlYWRTdGFja1R5cGUsIEhlYXBTaXplKTsK
ICAgICAgICAgc3RhdGljIEpTR2xvYmFsRGF0YSomIHNoYXJlZEluc3RhbmNlSW50ZXJuYWwoKTsK
ICAgICAgICAgdm9pZCBjcmVhdGVOYXRpdmVUaHVuaygpOwotI2lmIEVOQUJMRShKSVQpICYmIEVO
QUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQorI2lmIEVOQUJMRShKSVQpICYmIChFTkFCTEUoQ0xB
U1NJQ19JTlRFUlBSRVRFUikgfHwgRU5BQkxFKExMSU5UKSkKICAgICAgICAgYm9vbCBtX2NhblVz
ZUpJVDsKICNlbmRpZgogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlzaW9uIDEwOTgwMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw2ICs0NSw4IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAK
K2Jvb2wgdXNlSklUOworCiB1bnNpZ25lZCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5z
dHJ1Y3Rpb25Db3VudDsKIAogdW5zaWduZWQgbWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNh
bmRpZGF0ZUluc3RydWN0aW9uQ291bnQ7CkBAIC05Myw2ICs5NSwxOSBAQCB1bnNpZ25lZCBudW1i
ZXJPZkdDTWFya2VyczsKIHVuc2lnbmVkIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZDsKIAogI2lm
IEVOQUJMRShSVU5fVElNRV9IRVVSSVNUSUNTKQorc3RhdGljIGJvb2wgcGFyc2UoY29uc3QgY2hh
ciogc3RyaW5nLCBib29sJiB2YWx1ZSkKK3sKKyAgICBpZiAoIXN0cmNhc2VjbXAoc3RyaW5nLCAi
dHJ1ZSIpIHx8ICFzdHJjYXNlY21wKHN0cmluZywgInllcyIpIHx8ICFzdHJjbXAoc3RyaW5nLCAi
MSIpKSB7CisgICAgICAgIHZhbHVlID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIGlmICghc3RyY2FzZWNtcChzdHJpbmcsICJmYWxzZSIpIHx8ICFzdHJjYXNlY21wKHN0
cmluZywgIm5vIikgfHwgIXN0cmNtcChzdHJpbmcsICIwIikpIHsKKyAgICAgICAgdmFsdWUgPSBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
Kwogc3RhdGljIGJvb2wgcGFyc2UoY29uc3QgY2hhciogc3RyaW5nLCBpbnQzMl90JiB2YWx1ZSkK
IHsKICAgICByZXR1cm4gc3NjYW5mKHN0cmluZywgIiVkIiwgJnZhbHVlKSA9PSAxOwpAQCAtMTMx
LDYgKzE0Niw4IEBAIHZvaWQgc2V0SGV1cmlzdGljKFQmIHZhcmlhYmxlLCBjb25zdCBjaGEKIAog
dm9pZCBpbml0aWFsaXplT3B0aW9ucygpCiB7CisgICAgU0VUKHVzZUpJVCwgZmFsc2UpOworICAg
IAogICAgIFNFVChtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwg
MTEwMCk7CiAgICAgCiAgICAgU0VUKG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRh
dGVJbnN0cnVjdGlvbkNvdW50LCAxODApOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTA5ODAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4IEBACiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAKK2V4dGVybiBib29sIHVzZUpJVDsK
KwogZXh0ZXJuIHVuc2lnbmVkIG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlv
bkNvdW50OwogCiBleHRlcm4gdW5zaWduZWQgbWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNh
bmRpZGF0ZUluc3RydWN0aW9uQ291bnQ7Cg==
</data>
<flag name="review"
          id="133171"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130295</attachid>
            <date>2012-03-05 22:30:51 -0800</date>
            <delta_ts>2012-03-05 22:30:51 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llintnojit_patch_10.diff</filename>
            <type>text/plain</type>
            <size>21055</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5ODU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDEyLTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIExMSW50IHNob3VsZCB3b3JrIGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM0MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTA5MjIyMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4g
QmFycmFjbG91Z2guCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2Rl
UHRyKToKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyQ29kZVJlZik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKToKKyAgICAgICAgKiBpbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjppbml0
aWFsaXplKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAo
SlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRl
cjo6ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoK
KyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVDYWxsKToKKyAgICAgICAgKEpTQzo6
SklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QpOgorICAgICAgICAqIGxsaW50L0xMSW50RW50
cnlwb2ludHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0RnVuY3Rpb25FbnRyeXBvaW50
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEV2YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OmdldFByb2dyYW1FbnRyeXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludFNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6
CisgICAgICAgIChMTEludCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAg
ICAgICAgKExMSW50KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmg6Cisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBy
dW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKE5hdGl2ZUV4ZWN1dGFibGUpOgorICAgICAg
ICAoSlNDOjpOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVF
eGVjdXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTR2xvYmFsRGF0YSk6Cisg
ICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKE9wdGlvbnMpOgorICAgICAg
ICAoSlNDOjpPcHRpb25zOjpwYXJzZSk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxp
emVPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKE9wdGlv
bnMpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEyLTAzLTA1ICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFF0IGJ1aWxkLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
Q29kZVJlZi5oCShyZXZpc2lvbiAxMDk4NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNiAr
MjgwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBz
dGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNyZWF0ZUxMSW50Q29kZVB0cih2b2lkICgqZnVu
Y3Rpb24pKCkpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlRnJvbUV4ZWN1dGFibGVBZGRy
ZXNzKGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb24pKTsKKyAgICB9CiAgICAgZXhwbGljaXQg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKFJldHVybkFkZHJlc3NQdHIgcmEpCiAgICAgICAgIDogbV92
YWx1ZShyYS52YWx1ZSgpKQogICAgIHsKQEAgLTM0MCw2ICszNDQsMTIgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKGNvZGVQdHIpOwogICAgIH0KICAgICAK
KyAgICAvLyBIZWxwZXIgZm9yIGNyZWF0aW5nIHNlbGYtbWFuYWdlZCBjb2RlIHJlZnMgZnJvbSBM
TEludC4KKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNyZWF0ZUxMSW50Q29kZVJl
Zih2b2lkICgqZnVuY3Rpb24pKCkpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlU2VsZk1h
bmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFibGVB
ZGRyZXNzKGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb24pKSk7CisgICAgfQorICAgIAogICAg
IEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGV4ZWN1dGFibGVNZW1vcnkoKSBjb25zdAogICAgIHsK
ICAgICAgICAgcmV0dXJuIG1fZXhlY3V0YWJsZU1lbW9yeS5nZXQoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNp
b24gMTA5ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYwLDMxICs1NjAsMjcgQEAgdm9pZCBJbnRlcnBy
ZXRlcjo6aW5pdGlhbGl6ZShMTEludDo6RGF0YQogewogICAgIFVOVVNFRF9QQVJBTShsbGludERh
dGEpOwogICAgIFVOVVNFRF9QQVJBTShjYW5Vc2VKSVQpOwotI2lmIEVOQUJMRShDT01QVVRFRF9H
T1RPX0NMQVNTSUNfSU5URVJQUkVURVIpIHx8IEVOQUJMRShMTElOVCkKLSNpZiAhRU5BQkxFKENP
TVBVVEVEX0dPVE9fQ0xBU1NJQ19JTlRFUlBSRVRFUikKLSAgICAvLyBIYXZpbmcgTExJbnQgZW5h
YmxlZCwgYnV0IG5vdCBiZWluZyBhYmxlIHRvIHVzZSB0aGUgSklULCBhbmQgbm90IGhhdmluZwot
ICAgIC8vIGEgY29tcHV0ZWQgZ290byBpbnRlcnByZXRlciwgaXMgbm90IHN1cHBvcnRlZC4gTm90
IGJlY2F1c2Ugd2UgY2Fubm90Ci0gICAgLy8gc3VwcG9ydCBpdCwgYnV0IGJlY2F1c2UgSSBkZWNp
ZGVkIHRvIGRyYXcgdGhlIGxpbmUgYXQgdGhlIG51bWJlciBvZgotICAgIC8vIHBlcm11dGF0aW9u
cyBvZiBleGVjdXRpb24gZW5naW5lcyB0aGF0IEkgd2FudGVkIHRoaXMgY29kZSB0byBncm9rLgot
ICAgIEFTU0VSVChjYW5Vc2VKSVQpOworCisgICAgLy8gSWYgd2UgaGF2ZSBMTEludCwgdGhlbiB3
ZSBzaG91bGRuJ3QgYmUgYnVpbGRpbmcgYW55IGtpbmQgb2YgY2xhc3NpYyBpbnRlcnByZXRlci4K
KyNpZiBFTkFCTEUoTExJTlQpICYmIEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQorI2Vycm9y
ICJCdWlsZGluZyBib3RoIExMSW50IGFuZCB0aGUgQ2xhc3NpYyBJbnRlcnByZXRlciBpcyBub3Qg
c3VwcG9ydGVkIGJlY2F1c2UgaXQgZG9lc24ndCBtYWtlIHNlbnNlLiIKICNlbmRpZgotICAgIGlm
IChjYW5Vc2VKSVQpIHsKKwogI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgbV9vcGNvZGVUYWJs
ZSA9IGxsaW50RGF0YS0+b3Bjb2RlTWFwKCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bnVtT3Bjb2RlSURzOyArK2kpCi0gICAgICAgICAgICBtX29wY29kZUlEVGFibGUuYWRkKG1fb3Bj
b2RlVGFibGVbaV0sIHN0YXRpY19jYXN0PE9wY29kZUlEPihpKSk7Ci0jZWxzZQorICAgIG1fb3Bj
b2RlVGFibGUgPSBsbGludERhdGEtPm9wY29kZU1hcCgpOworICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtT3Bjb2RlSURzOyArK2kpCisgICAgICAgIG1fb3Bjb2RlSURUYWJsZS5hZGQobV9vcGNv
ZGVUYWJsZVtpXSwgc3RhdGljX2Nhc3Q8T3Bjb2RlSUQ+KGkpKTsKKyAgICBtX2NsYXNzaWNFbmFi
bGVkID0gZmFsc2U7CisjZWxpZiBFTkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJF
VEVSKQorICAgIGlmIChjYW5Vc2VKSVQpIHsKICAgICAgICAgLy8gSWYgdGhlIEpJVCBpcyBwcmVz
ZW50LCBkb24ndCB1c2UganVtcCBkZXN0aW5hdGlvbnMgZm9yIG9wY29kZXMuCiAgICAgICAgIAog
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKSB7CiAgICAgICAg
ICAgICBPcGNvZGUgb3Bjb2RlID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50
cHRyX3Q+KGkpKTsKICAgICAgICAgICAgIG1fb3Bjb2RlVGFibGVbaV0gPSBvcGNvZGU7CiAgICAg
ICAgIH0KLSNlbmRpZgorICAgICAgICBtX2NsYXNzaWNFbmFibGVkID0gZmFsc2U7CiAgICAgfSBl
bHNlIHsKLSNpZiBFTkFCTEUoTExJTlQpCi0gICAgICAgIG1fb3Bjb2RlVGFibGUgPSBuZXcgT3Bj
b2RlW251bU9wY29kZUlEc107Ci0jZW5kaWYKICAgICAgICAgcHJpdmF0ZUV4ZWN1dGUoSW5pdGlh
bGl6ZUFuZFJldHVybiwgMCwgMCk7CiAgICAgICAgIAogICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IG51bU9wY29kZUlEczsgKytpKQpAQCAtMTE5OCw3ICsxMTk0LDcgQEAgZmFpbGVkSlNPTlA6
CiAKICAgICAgICAgbV9yZWVudHJ5RGVwdGgrKzsgIAogI2lmIEVOQUJMRShKSVQpCi0gICAgICAg
IGlmIChjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5jYW5Vc2VKSVQoKSkKKyAgICAgICAgaWYgKCFj
bGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVk
SklUQ29kZSgpLmV4ZWN1dGUoJm1fcmVnaXN0ZXJGaWxlLCBuZXdDYWxsRnJhbWUsIHNjb3BlQ2hh
aW4tPmdsb2JhbERhdGEpOwogICAgICAgICBlbHNlCiAjZW5kaWYKQEAgLTEyNzAsNyArMTI2Niw3
IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKIAogICAgICAgICAg
ICAgbV9yZWVudHJ5RGVwdGgrKzsgIAogI2lmIEVOQUJMRShKSVQpCi0gICAgICAgICAgICBpZiAo
Y2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuY2FuVXNlSklUKCkpCisgICAgICAgICAgICBpZiAoIWNs
YXNzaWNFbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVu
Y3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLmV4ZWN1dGUoJm1fcmVn
aXN0ZXJGaWxlLCBuZXdDYWxsRnJhbWUsIGNhbGxEYXRhU2NvcGVDaGFpbi0+Z2xvYmFsRGF0YSk7
CiAgICAgICAgICAgICBlbHNlCiAjZW5kaWYKQEAgLTEzNjYsNyArMTM2Miw3IEBAIEpTT2JqZWN0
KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIAogICAgICAgICAgICAgbV9yZWVudHJ5
RGVwdGgrKzsgIAogI2lmIEVOQUJMRShKSVQpCi0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lLT5n
bG9iYWxEYXRhKCkuY2FuVXNlSklUKCkpCisgICAgICAgICAgICBpZiAoIWNsYXNzaWNFbmFibGVk
KCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4
ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS5leGVjdXRlKCZtX3JlZ2lz
dGVyRmlsZSwgbmV3Q2FsbEZyYW1lLCBjb25zdHJ1Y3REYXRhU2NvcGVDaGFpbi0+Z2xvYmFsRGF0
YSk7CiAgICAgICAgICAgICBlbHNlCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aAkocmV2aXNpb24gMTA5ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjU0LDggKzI1NCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgQ29kZVJlZiBjb21waWxlQ1RJTmF0aXZlQ2FsbChKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
ICghZ2xvYmFsRGF0YS0+Y2FuVXNlSklUKCkpCisgICAgICAgICAgICBpZiAoIWdsb2JhbERhdGEt
PmNhblVzZUpJVCgpKSB7CisjaWYgRU5BQkxFKExMSU5UKQorICAgICAgICAgICAgICAgIHJldHVy
biBDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGlu
ZSk7CisjZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiBDb2RlUmVmKCk7CisjZW5kaWYKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEpJVCBqaXQoZ2xvYmFsRGF0YSwgMCk7CiAgICAgICAg
ICAgICByZXR1cm4gaml0LnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbChnbG9iYWxEYXRhLCBm
dW5jKTsKICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAko
cmV2aXNpb24gMTA5ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJDYWxsRGF0YS5o
IgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgorI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIu
aCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNpbmNsdWRlICJSZWdpc3Rl
ci5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgpAQCAtMzA2LDggKzMwNywyMiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aVZpcnR1YWxD
b25zdHJ1Y3RMaW5rKCkgeyByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0aVZpcnR1YWxD
b25zdHJ1Y3RMaW5rOyB9CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlWaXJ0dWFs
Q2FsbCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ2FsbDsgfQog
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpVmlydHVhbENvbnN0cnVjdCgpIHsgcmV0
dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5jdGlWaXJ0dWFsQ29uc3RydWN0OyB9Ci0gICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKCkgeyByZXR1cm4gbV90cmFtcG9s
aW5lU3RydWN0dXJlLmN0aU5hdGl2ZUNhbGw7IH0KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aU5hdGl2ZUNvbnN0cnVjdCgpIHsgcmV0dXJuIG1fdHJhbXBvbGluZVN0cnVjdHVyZS5j
dGlOYXRpdmVDb25zdHJ1Y3Q7IH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5h
dGl2ZUNhbGwoKQorICAgICAgICB7CisjaWYgRU5BQkxFKExMSU5UKQorICAgICAgICAgICAgaWYg
KCFtX2V4ZWN1dGFibGVNZW1vcnkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xp
bmUpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gbV90cmFtcG9saW5lU3RydWN0dXJlLmN0
aU5hdGl2ZUNhbGw7CisgICAgICAgIH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aU5hdGl2ZUNvbnN0cnVjdCgpCisgICAgICAgIHsKKyNpZiBFTkFCTEUoTExJTlQpCisgICAgICAg
ICAgICBpZiAoIW1fZXhlY3V0YWJsZU1lbW9yeSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfbmF0aXZlX2NvbnN0
cnVjdF90cmFtcG9saW5lKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIG1fdHJhbXBvbGlu
ZVN0cnVjdHVyZS5jdGlOYXRpdmVDb25zdHJ1Y3Q7CisgICAgICAgIH0KICAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGN0aVNvZnRNb2R1bG8oKSB7IHJldHVybiBtX3RyYW1wb2xpbmVTdHJ1
Y3R1cmUuY3RpU29mdE1vZHVsbzsgfQogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
dGlTdHViKEpTR2xvYmFsRGF0YSosIFRodW5rR2VuZXJhdG9yKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50cy5jcHAJKHJldmlzaW9uIDEw
OTg1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnRzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzksMTQgKzM5LDE0IEBAIHZvaWQgZ2V0RnVuY3Rpb25FbnRy
eXBvaW50KEpTR2xvYmFsRGF0YSYKIHsKICAgICBpZiAoIWdsb2JhbERhdGEuY2FuVXNlSklUKCkp
IHsKICAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKLSAgICAgICAgICAgIGppdENv
ZGUgPSBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVT
ZWxmTWFuYWdlZENvZGVSZWYoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lk
Kj4oJmxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSkpKTsKLSAgICAgICAgICAgIGFy
aXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxp
bnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2spKTsKKyAgICAgICAgICAgIGppdENvZGUg
PSBKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50
X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7
CisgICAgICAgICAgICBhcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVM
TEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2spOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZv
ckNvbnN0cnVjdCk7Ci0gICAgICAgIGppdENvZGUgPSBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1
Y3RfcHJvbG9ndWUpKSkpOwotICAgICAgICBhcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oJmxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJp
dHlfY2hlY2spKTsKKyAgICAgICAgaml0Q29kZSA9IEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9s
b2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspOworICAgICAgICBhcml0eUNoZWNrID0g
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25f
Zm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
CkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgZ2V0RnVuY3Rpb25FbnRyeXBvaW50KEpTR2xvYmFsRGF0
YSYKIHZvaWQgZ2V0RXZhbEVudHJ5cG9pbnQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKSVRD
b2RlJiBqaXRDb2RlKQogewogICAgIGlmICghZ2xvYmFsRGF0YS5jYW5Vc2VKSVQoKSkgewotICAg
ICAgICBqaXRDb2RlID0gSklUQ29kZTo6SG9zdEZ1bmN0aW9uKE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNl
X2Nhc3Q8dm9pZCo+KCZsbGludF9ldmFsX3Byb2xvZ3VlKSkpKTsKKyAgICAgICAgaml0Q29kZSA9
IEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRf
ZXZhbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIGdldEV2YWxFbnRyeXBvaW50
KEpTR2xvYmFsRGF0YSYgZ2xvCiB2b2lkIGdldFByb2dyYW1FbnRyeXBvaW50KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSYgaml0Q29kZSkKIHsKICAgICBpZiAoIWdsb2JhbERhdGEu
Y2FuVXNlSklUKCkpIHsKLSAgICAgICAgaml0Q29kZSA9IEpJVENvZGU6Okhvc3RGdW5jdGlvbihN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQqPigmbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSkp
KSk7CisgICAgICAgIGppdENvZGUgPSBKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3Jl
YXRlTExJbnRDb2RlUmVmKGxsaW50X3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnBy
ZXRlclRodW5rKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTA5
ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTU3Niw2ICsxNTc2LDEzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9wcm9maWxlX2QKICAgICBMTElOVF9FTkQoKTsKIH0KIAorTExJTlRfU0xPV19Q
QVRIX0RFQ0wodGhyb3dfZnJvbV9uYXRpdmVfY2FsbCkKK3sKKyAgICBMTElOVF9CRUdJTigpOwor
ICAgIEFTU0VSVChnbG9iYWxEYXRhLmV4Y2VwdGlvbik7CisgICAgTExJTlRfRU5EKCk7Cit9CisK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKExMSU5UKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHJl
dmlzaW9uIDEwOTg1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsNiArMTYxLDcgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3Rocm93X3JlZgogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2RlYnVnKTsKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX3dpbGxfY2Fs
bCk7CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCk7CitM
TElOVF9TTE9XX1BBVEhfREVDTCh0aHJvd19mcm9tX25hdGl2ZV9jYWxsKTsKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkxMSW50CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxMDk4
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjMwMiw2ICsyMzAyLDUzIEBAIF9sbGludF90aHJv
d19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgogICAgIGptcCBKU0dsb2JhbERhdGE6OnRhcmdldE1h
Y2hpbmVQQ0ZvclRocm93W3QxXQogCiAKK21hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1
dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQorICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQorICAg
IGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIHQwCisgICAgbG9hZGkgU2NvcGVDaGFpbiArIFBheWxv
YWRPZmZzZXRbdDBdLCB0MQorICAgIHN0b3JlaSBDZWxsVGFnLCBTY29wZUNoYWluICsgVGFnT2Zm
c2V0W2Nmcl0KKyAgICBzdG9yZWkgdDEsIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0K
KyAgICBpZiBYODYKKyAgICAgICAgcGVlayAwLCB0MQorICAgICAgICBzdG9yZXAgdDEsIFJldHVy
blBDW2Nmcl0KKyAgICAgICAgbW92ZSBjZnIsIHQyICAjIHQyID0gZWN4CisgICAgICAgIHN1YnAg
MTYgLSA0LCBzcAorICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQx
CisgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCisgICAgICAg
IG1vdmUgdDAsIGNmcgorICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3Qx
XQorICAgICAgICBhZGRwIDE2IC0gNCwgc3AKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6
Z2xvYmFsRGF0YSArIDRbc3BdLCB0MworICAgIGVsc2lmIEFSTXY3CisgICAgICAgIG1vdmUgdDAs
IHQyCisgICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKKyAgICAgICAg
c3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MAorICAgICAgICBs
b2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAgICAgIGxvYWRwIEpTRnVu
Y3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCisgICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAg
ICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgICAgICByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6
Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgZWxzZSAgCisgICAgICAgIGVycm9yCisgICAgZW5kCisg
ICAgYmluZXEgSlNHbG9iYWxEYXRhOjpleGNlcHRpb24gKyBUYWdPZmZzZXRbdDNdLCBFbXB0eVZh
bHVlVGFnLCAuZXhjZXB0aW9uCisgICAgcmV0CisuZXhjZXB0aW9uOgorICAgIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlzIGlzIHJlYWxseSBvbmx5IG5lZWRlZCBvbiBY
ODYKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwpCisgICAg
am1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCitlbmQKKworX2xsaW50
X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmU6CisgICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZl
RXhlY3V0YWJsZTo6bV9mdW5jdGlvbikKKworCitfbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFt
cG9saW5lOgorICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29u
c3RydWN0b3IpCisKKwogIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4g
dGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCiAjIFRoZXNlIG9wY29kZXMgc2hv
dWxkIG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0
CiAjIGFzIG11Y2guCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmgJKHJldmlzaW9uIDEwOTg1OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDYgKzQ4LDEwIEBAIGV4dGVybiAiQyIgdm9pZCBsbGludF9nZW5lcmljX3JldHVybl9wb2kKIGV4
dGVybiAiQyIgdm9pZCBsbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lKCk7CiBl
eHRlcm4gIkMiIHZvaWQgbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZSgpOwogCisv
LyBOYXRpdmUgY2FsbCB0cmFtcG9saW5lcworZXh0ZXJuICJDIiB2b2lkIGxsaW50X25hdGl2ZV9j
YWxsX3RyYW1wb2xpbmUoKTsKK2V4dGVybiAiQyIgdm9pZCBsbGludF9uYXRpdmVfY29uc3RydWN0
X3RyYW1wb2xpbmUoKTsKKwogI2VuZGlmIC8vIEVOQUJMRShMTElOVCkKIAogI2VuZGlmIC8vIExv
d0xldmVsSW50ZXJwcmV0ZXJfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuaAkocmV2aXNpb24gMTA5ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMTMgKzE4MCwxNCBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBwdWJsaWMg
RXhlY3V0YWJsZUJhc2UgewogICAgICAgICBmcmllbmQgY2xhc3MgSklUOworICAgICAgICBmcmll
bmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIHB1YmxpYzoKICAgICAgICAgdHlw
ZWRlZiBFeGVjdXRhYmxlQmFzZSBCYXNlOwogCiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgc3Rh
dGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0
cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NF
UlQoZ2xvYmFsRGF0YS5jYW5Vc2VKSVQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWdsb2JhbERh
dGEuaW50ZXJwcmV0ZXItPmNsYXNzaWNFbmFibGVkKCkpOwogICAgICAgICAgICAgTmF0aXZlRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZTsKICAgICAgICAgICAgIGlmICghY2FsbFRodW5rKSB7CiAgICAg
ICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPE5hdGl2
ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0
YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKQEAgLTIyOCw3ICsyMjksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNpZiBFTkFCTEUoSklUKQogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIEpJVENvZGUgY29uc3RydWN0
VGh1bmssIEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VS
VChnbG9iYWxEYXRhLmNhblVzZUpJVCgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0
YS5pbnRlcnByZXRlci0+Y2xhc3NpY0VuYWJsZWQoKSk7CiAgICAgICAgICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBj
YWxsVGh1bms7CiAgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RU
aHVuazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxE
YXRhLmNwcAkocmV2aXNpb24gMTA5ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw3IEBAIEpT
R2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXAKIAogICAgIHd0ZlRocmVhZERh
dGEoKS5zZXRDdXJyZW50SWRlbnRpZmllclRhYmxlKGV4aXN0aW5nRW50cnlJZGVudGlmaWVyVGFi
bGUpOwogCi0jaWYgRU5BQkxFKEpJVCkgJiYgRU5BQkxFKENMQVNTSUNfSU5URVJQUkVURVIpCisj
aWYgRU5BQkxFKEpJVCkgJiYgKEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUo
TExJTlQpKQogI2lmIFVTRShDRikKICAgICBDRlN0cmluZ1JlZiBjYW5Vc2VKSVRLZXkgPSBDRlN0
cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKDAgLCAiSmF2YVNjcmlwdENvcmVVc2VKSVQiLCBrQ0ZTdHJp
bmdFbmNvZGluZ01hY1JvbWFuKTsKICAgICBDRkJvb2xlYW5SZWYgY2FuVXNlSklUID0gKENGQm9v
bGVhblJlZilDRlByZWZlcmVuY2VzQ29weUFwcFZhbHVlKGNhblVzZUpJVEtleSwga0NGUHJlZmVy
ZW5jZXNDdXJyZW50QXBwbGljYXRpb24pOwpAQCAtMjEzLDEzICsyMTMsMTYgQEAgSlNHbG9iYWxE
YXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cAogI2VuZGlmCiAjZW5kaWYKICNpZiBFTkFC
TEUoSklUKQotI2lmIEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQorI2lmIEVOQUJMRShDTEFT
U0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQpCiAgICAgaWYgKG1fY2FuVXNlSklUKQog
ICAgICAgICBtX2NhblVzZUpJVCA9IGV4ZWN1dGFibGVBbGxvY2F0b3IuaXNWYWxpZCgpOworICAg
IAorICAgIGlmICghT3B0aW9uczo6dXNlSklUKQorICAgICAgICBtX2NhblVzZUpJVCA9IGZhbHNl
OwogI2VuZGlmCiAgICAgaml0U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1bmtzKHRoaXMpKTsK
ICNlbmRpZgotCisgICAgCiAgICAgaW50ZXJwcmV0ZXItPmluaXRpYWxpemUoJmxsaW50RGF0YSwg
dGhpcy0+Y2FuVXNlSklUKCkpOwogICAgIAogICAgIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZh
bHVlKCk7IC8vIFRoaXMgaXMgbmVlZGVkIHRvIGNvbnZpbmNlIHRoZSBsaW5rZXIgbm90IHRvIGRy
b3AgaG9zdCBjYWxsIHJldHVybiBzdXBwb3J0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDEwOTg1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzEsNyArMjMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICNpZiAhRU5BQkxFKEpJVCkKICAgICAg
ICAgYm9vbCBjYW5Vc2VKSVQoKSB7IHJldHVybiBmYWxzZTsgfSAvLyBpbnRlcnByZXRlciBvbmx5
Ci0jZWxpZiAhRU5BQkxFKENMQVNTSUNfSU5URVJQUkVURVIpCisjZWxpZiAhRU5BQkxFKENMQVNT
SUNfSU5URVJQUkVURVIpICYmICFFTkFCTEUoTExJTlQpCiAgICAgICAgIGJvb2wgY2FuVXNlSklU
KCkgeyByZXR1cm4gdHJ1ZTsgfSAvLyBqaXQgb25seQogI2Vsc2UKICAgICAgICAgYm9vbCBjYW5V
c2VKSVQoKSB7IHJldHVybiBtX2NhblVzZUpJVDsgfQpAQCAtMzY5LDcgKzM2OSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUsIFRocmVhZFN0
YWNrVHlwZSwgSGVhcFNpemUpOwogICAgICAgICBzdGF0aWMgSlNHbG9iYWxEYXRhKiYgc2hhcmVk
SW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAgICB2b2lkIGNyZWF0ZU5hdGl2ZVRodW5rKCk7Ci0j
aWYgRU5BQkxFKEpJVCkgJiYgRU5BQkxFKENMQVNTSUNfSU5URVJQUkVURVIpCisjaWYgRU5BQkxF
KEpJVCkgJiYgKEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQpKQog
ICAgICAgICBib29sIG1fY2FuVXNlSklUOwogI2VuZGlmCiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJ
T04pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkocmV2
aXNpb24gMTA5ODU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBPcHRpb25zIHsKIAorYm9vbCB1c2VKSVQ7CisKIHVuc2lnbmVkIG1heGltdW1PcHRp
bWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50OwogCiB1bnNpZ25lZCBtYXhpbXVtRnVu
Y3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudDsKQEAgLTkzLDYgKzk1
LDE5IEBAIHVuc2lnbmVkIG51bWJlck9mR0NNYXJrZXJzOwogdW5zaWduZWQgb3BhcXVlUm9vdE1l
cmdlVGhyZXNob2xkOwogCiAjaWYgRU5BQkxFKFJVTl9USU1FX0hFVVJJU1RJQ1MpCitzdGF0aWMg
Ym9vbCBwYXJzZShjb25zdCBjaGFyKiBzdHJpbmcsIGJvb2wmIHZhbHVlKQoreworICAgIGlmICgh
c3RyY2FzZWNtcChzdHJpbmcsICJ0cnVlIikgfHwgIXN0cmNhc2VjbXAoc3RyaW5nLCAieWVzIikg
fHwgIXN0cmNtcChzdHJpbmcsICIxIikpIHsKKyAgICAgICAgdmFsdWUgPSB0cnVlOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKCFzdHJjYXNlY21wKHN0cmluZywgImZhbHNl
IikgfHwgIXN0cmNhc2VjbXAoc3RyaW5nLCAibm8iKSB8fCAhc3RyY21wKHN0cmluZywgIjAiKSkg
eworICAgICAgICB2YWx1ZSA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBzdHJp
bmcsIGludDMyX3QmIHZhbHVlKQogewogICAgIHJldHVybiBzc2NhbmYoc3RyaW5nLCAiJWQiLCAm
dmFsdWUpID09IDE7CkBAIC0xMzEsNiArMTQ2LDggQEAgdm9pZCBzZXRIZXVyaXN0aWMoVCYgdmFy
aWFibGUsIGNvbnN0IGNoYQogCiB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKIHsKKyAgICBTRVQo
dXNlSklULCBmYWxzZSk7CisgICAgCiAgICAgU0VUKG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRh
dGVJbnN0cnVjdGlvbkNvdW50LCAxMTAwKTsKICAgICAKICAgICBTRVQobWF4aW11bUZ1bmN0aW9u
Rm9yQ2FsbElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDE4MCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAxMDk4NTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBPcHRpb25zIHsKIAor
ZXh0ZXJuIGJvb2wgdXNlSklUOworCiBleHRlcm4gdW5zaWduZWQgbWF4aW11bU9wdGltaXphdGlv
bkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQ7CiAKIGV4dGVybiB1bnNpZ25lZCBtYXhpbXVtRnVu
Y3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDEwOTg1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNjEwLDggKzYx
MCw5IEBACiAgICAgI2RlZmluZSBFTkFCTEVfSklUIDAKICAgICAjZGVmaW5lIEVOQUJMRV9ZQVJS
X0pJVCAwCiAjZWxzZQotICAgICNkZWZpbmUgRU5BQkxFX0NMQVNTSUNfSU5URVJQUkVURVIgMQor
ICAgICNkZWZpbmUgRU5BQkxFX0NMQVNTSUNfSU5URVJQUkVURVIgMAogICAgICNkZWZpbmUgRU5B
QkxFX0pJVCAxCisgICAgI2RlZmluZSBFTkFCTEVfTExJTlQgMQogICAgICNkZWZpbmUgRU5BQkxF
X1lBUlJfSklUIDEKICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>