<?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>88258</bug_id>
          
          <creation_ts>2012-06-04 14:50:57 -0700</creation_ts>
          <short_desc>Remove enabledProfilerReference</short_desc>
          <delta_ts>2012-06-07 16:26:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>paroga</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640858</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-06-04 14:50:57 -0700</bug_when>
    <thetext>Make the enabled profiler a member of JSGlobalData, and switch code that accesses it to do so directly via the JSGlobalData, rather than holding a Profiler** reference to it. Do not pass the Profiler** reference to JIT code. This patch does not change the stack layout on entry into JIT code (passing an unused void* instead), since this is an intrusive change better handled in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640877</commentid>
    <comment_count>1</comment_count>
      <attachid>145637</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-06-04 15:08:27 -0700</bug_when>
    <thetext>Created attachment 145637
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640883</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 15:11:52 -0700</bug_when>
    <thetext>Attachment 145637 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1549:  The parameter name &quot;profiler&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1557:  The parameter name &quot;profiler&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640927</commentid>
    <comment_count>3</comment_count>
      <attachid>145637</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-04 15:53:59 -0700</bug_when>
    <thetext>Comment on attachment 145637
Fix

Attachment 145637 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12896385</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640938</commentid>
    <comment_count>4</comment_count>
      <attachid>145645</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-06-04 16:05:00 -0700</bug_when>
    <thetext>Created attachment 145645
Windows build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640941</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 16:07:13 -0700</bug_when>
    <thetext>Attachment 145645 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1549:  The parameter name &quot;profiler&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1557:  The parameter name &quot;profiler&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641003</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-06-04 17:00:32 -0700</bug_when>
    <thetext>Fixed in r119441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644039</commentid>
    <comment_count>7</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-06-07 16:26:08 -0700</bug_when>
    <thetext>Build fix after r119441: http://trac.webkit.org/changeset/119768</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145637</attachid>
            <date>2012-06-04 15:08:27 -0700</date>
            <delta_ts>2012-06-04 16:05:00 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>88258.patch</filename>
            <type>text/plain</type>
            <size>31084</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5NDI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBA
CisyMDEyLTA2LTA0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIGVuYWJsZWQgcHJvZmls
ZXIgYSBtZW1iZXIgb2YgSlNHbG9iYWxEYXRhLCBhbmQgc3dpdGNoIGNvZGUgdGhhdCBhY2Nlc3Nl
cyBpdCB0byBkbyBzbyBkaXJlY3RseQorICAgICAgICB2aWEgdGhlIEpTR2xvYmFsRGF0YSwgcmF0
aGVyIHRoYW4gaG9sZGluZyBhIFByb2ZpbGVyKiogcmVmZXJlbmNlIHRvIGl0LiBEbyBub3QgcGFz
cyB0aGUgUHJvZmlsZXIqKgorICAgICAgICByZWZlcmVuY2UgdG8gSklUIGNvZGUuIFRoaXMgcGF0
Y2ggZG9lcyBub3QgY2hhbmdlIHRoZSBzdGFjayBsYXlvdXQgb24gZW50cnkgaW50byBKSVQgY29k
ZSAocGFzc2luZyBhbgorICAgICAgICB1bnVzZWQgdm9pZCogaW5zdGVhZCksIHNpbmNlIHRoaXMg
aXMgYW4gaW50cnVzaXZlIGNoYW5nZSBiZXR0ZXIgaGFuZGxlZCBpbiBhIHNlcGFyYXRlIHBhdGNo
LgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRl
cjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ2FsbCk6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KToKKyAgICAgICAgKEpT
Qzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5o
OgorICAgICAgICAoSlNDOjpKSVRDb2RlOjpleGVjdXRlKToKKyAgICAgICAgICAgIC0gRG9uJ3Qg
cGFzcyBQcm9maWxlcioqIHRvIEpJVCBjb2RlLgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwpOgorICAgICAgICAqIGppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV93
aWxsX2NhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbCk6
CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChK
U0M6OmN0aVRyYW1wb2xpbmUpOgorICAgICAgICAoSlNDOjpjdGlWTVRocm93VHJhbXBvbGluZSk6
CisgICAgICAgIChKU0M6OmN0aU9wVGhyb3dOb3RDYXVnaHQpOgorICAgICAgICAoSlNDOjpKSVRU
aHVua3M6OkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToK
KyAgICAgICAgICAgIC0gRm9yIEFSTV9USFVNQjIsIHJlbmFtZSBFTkFCTEVfUFJPRklMRVJfUkVG
RVJFTkNFX09GRlNFVCB0byBGSVJTVF9TVEFDS19BUkdVTUVOVCAod2hpY2ggaXMgaG93IGl0IGlz
IGJlaW5nIHVzZWQpLgorICAgICAgICAgICAgLSBGb3IgTUlQUywgcmVtb3ZlIEVOQUJMRV9QUk9G
SUxFUl9SRUZFUkVOQ0VfT0ZGU0VULgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0MpOgorICAgICAgICAgICAgLSBSZW5hbWVk
IGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSB0byB1bnVzZWRYLgorICAgICAgICAqIGxsaW50L0xM
SW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9E
RUNMKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBwcm9maWxlci9Qcm9maWxlci5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpQ
cm9maWxlcjo6c3RhcnRQcm9maWxpbmcpOgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6c3RvcFBy
b2ZpbGluZyk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXIuaDoKKyAgICAgICAgKFByb2Zp
bGVyKToKKyAgICAgICAgICAgIC0gUmVtb3ZlZCBzX3NoYXJlZEVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZSwgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkuCisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTQyk6CisgICAg
ICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6ZW5hYmxlZFByb2ZpbGVyKToKKyAgICAgICAgKEpTR2xv
YmFsRGF0YSk6CisgICAgICAgICAgICAtIEFkZGVkIG1fZW5hYmxlZFByb2ZpbGVyLCBlbmFibGVk
UHJvZmlsZXIoKS4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6On5KU0dsb2JhbE9iamVjdCk6CisKIDIwMTItMDYtMDQg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCVUlMRCBGSVg6
IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIHNob3VsZCBtYXRjaCBhY3Jvc3MgcHJvamVjdHMKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmNwcAkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0Myw3ICsxMDQzLDcgQEAg
TkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dAogICAgIEhhbmRsZXJJbmZv
KiBoYW5kbGVyID0gMDsKICAgICB3aGlsZSAoaXNJbnRlcnJ1cHQgfHwgIShoYW5kbGVyID0gY29k
ZUJsb2NrLT5oYW5kbGVyRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSkgewogICAg
ICAgICBpZiAoIXVud2luZENhbGxGcmFtZShjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCBieXRl
Y29kZU9mZnNldCwgY29kZUJsb2NrKSkgewotICAgICAgICAgICAgaWYgKFByb2ZpbGVyKiBwcm9m
aWxlciA9ICpQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkpCisgICAgICAgICAg
ICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxl
ZFByb2ZpbGVyKCkpCiAgICAgICAgICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChj
YWxsRnJhbWUpOwogICAgICAgICAgICAgY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZy
YW1lID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMDUxLDcgKzEwNTEs
NyBAQCBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp0CiAgICAgfQogICAg
IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKIAotICAg
IGlmIChQcm9maWxlciogcHJvZmlsZXIgPSAqUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZSgpKQorICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERh
dGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2lu
ZChjYWxsRnJhbWUpOwogCiAgICAgLy8gU2hyaW5rIHRoZSBKUyBzdGFjaywgaW4gY2FzZSBzdGFj
ayBvdmVyZmxvdyBtYWRlIGl0IGh1Z2UuCkBAIC0xMjE4LDkgKzEyMTgsOCBAQCBmYWlsZWRKU09O
UDoKICAgICBuZXdDYWxsRnJhbWUtPnNldFRoaXNWYWx1ZSh0aGlzT2JqKTsKICAgICBUb3BDYWxs
RnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxs
RnJhbWUpOwogCi0gICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJv
ZmlsZXJSZWZlcmVuY2UoKTsKLSAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAoKnByb2ZpbGVy
KS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBwcm9ncmFtLT5zb3VyY2VVUkwoKSwgcHJvZ3JhbS0+
bGluZU5vKCkpOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRl
KGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJMKCksIHByb2dyYW0tPmxpbmVObygpKTsKIAog
ICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKQEAgLTEyMzcsOCArMTIzNiw4IEBAIGZhaWxlZEpT
T05QOgogICAgICAgICBtX3JlZW50cnlEZXB0aC0tOwogICAgIH0KIAotICAgIGlmICgqcHJvZmls
ZXIpCi0gICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+
c291cmNlVVJMKCksIHByb2dyYW0tPmxpbmVObygpKTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2Zp
bGVyID0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAg
IHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJMKCksIHBy
b2dyYW0tPmxpbmVObygpKTsKIAogICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwog
CkBAIC0xMjkxLDkgKzEyOTAsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChD
YWxsRnJhCiAKICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAotICAgICAgICBQcm9maWxlcioqIHBy
b2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwotICAgICAgICBp
ZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNhbGxG
cmFtZSwgZnVuY3Rpb24pOworICAgICAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZy
YW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAgICBwcm9maWxl
ci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CiAKICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQ7CiAgICAgICAgIHsKQEAgLTEzMDksOCArMTMwNyw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRoLS07CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpwcm9maWxl
ciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CisgICAgICAgIGlmIChQcm9maWxl
ciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkK
KyAgICAgICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwog
CiAgICAgICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAgICAgICByZXR1cm4g
Y2hlY2tlZFJldHVybihyZXN1bHQpOwpAQCAtMTMyNCw5ICsxMzIyLDggQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogCiAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNj
b3BlIGdsb2JhbE9iamVjdFNjb3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29wZUNoYWlu
LT5nbG9iYWxPYmplY3QuZ2V0KCkpOwogCi0gICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2Zp
bGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKLSAgICBpZiAoKnByb2ZpbGVyKQotICAg
ICAgICAoKnByb2ZpbGVyKS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CisgICAg
aWYgKFByb2ZpbGVyKiBwcm9maWxlciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQ
cm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5j
dGlvbik7CiAKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CkBAIC0xMzM0LDggKzEzMzEsOCBA
QCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhCiAgICAgICAgIHJlc3Vs
dCA9IEpTVmFsdWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1l
KSk7CiAgICAgfQogCi0gICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPmRp
ZEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CisgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxl
ciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBw
cm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGZ1bmN0aW9uKTsKIAogICAgIG1fcmVnaXN0
ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7
CkBAIC0xMzg3LDkgKzEzODQsOCBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25z
dHJ1Y3QoCiAKICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAotICAgICAgICBQcm9maWxlcioqIHBy
b2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwotICAgICAgICBp
ZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNhbGxG
cmFtZSwgY29uc3RydWN0b3IpOworICAgICAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAgICBwcm9m
aWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7CiAKICAgICAgICAgSlNW
YWx1ZSByZXN1bHQ7CiAgICAgICAgIHsKQEAgLTE0MDUsOCArMTQwMSw4IEBAIEpTT2JqZWN0KiBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRo
LS07CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpw
cm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgIGlm
IChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJv
ZmlsZXIoKSkKKyAgICAgICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgY29u
c3RydWN0b3IpOwogCiAgICAgICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAg
ICAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKQEAgLTE0MjMsOSArMTQxOSw4IEBA
IEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIAogICAgIER5bmFtaWNH
bG9iYWxPYmplY3RTY29wZSBnbG9iYWxPYmplY3RTY29wZSgqc2NvcGVDaGFpbi0+Z2xvYmFsRGF0
YSwgc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0LmdldCgpKTsKIAotICAgIFByb2ZpbGVyKiogcHJv
ZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7Ci0gICAgaWYgKCpw
cm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgY29u
c3RydWN0b3IpOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRl
KGNhbGxGcmFtZSwgY29uc3RydWN0b3IpOwogCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewpA
QCAtMTQzMyw4ICsxNDI4LDggQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3Ry
dWN0KAogICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7CiAgICAgfQogCi0gICAgaWYgKCpwcm9maWxlcikK
LSAgICAgICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7
CisgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxlciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVu
YWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUs
IGNvbnN0cnVjdG9yKTsKIAogICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAg
IGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQpAQCAtMTQ5MCw5ICsxNDg1LDggQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbAogICAgIGlmIChjbG9zdXJlLm9s
ZENhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKQogICAgICAgICByZXR1
cm4ganNOdWxsKCk7CiAgICAgY2xvc3VyZS5yZXNldENhbGxGcmFtZSgpOwotICAgIFByb2ZpbGVy
KiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7Ci0gICAg
aWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNsb3N1cmUu
b2xkQ2FsbEZyYW1lLCBjbG9zdXJlLmZ1bmN0aW9uKTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2Zp
bGVyID0gY2xvc3VyZS5vbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIo
KSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNsb3N1cmUub2xkQ2FsbEZyYW1lLCBj
bG9zdXJlLmZ1bmN0aW9uKTsKIAogICAgIFRvcENhbGxGcmFtZVNldHRlciB0b3BDYWxsRnJhbWUo
KmNsb3N1cmUuZ2xvYmFsRGF0YSwgY2xvc3VyZS5uZXdDYWxsRnJhbWUpOwogCkBAIC0xNTE2LDgg
KzE1MTAsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFtZUNsCiAgICAg
ICAgIG1fcmVlbnRyeURlcHRoLS07CiAgICAgfQogCi0gICAgaWYgKCpwcm9maWxlcikKLSAgICAg
ICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2xvc3VyZS5vbGRDYWxsRnJhbWUsIGNsb3N1cmUu
ZnVuY3Rpb24pOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjbG9zdXJlLm9sZENhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+
ZGlkRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7CiAgICAg
cmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTU5Nyw5ICsxNTkxLDggQEAg
SlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogCiAgICAgVG9wQ2FsbEZy
YW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZy
YW1lKTsKIAotICAgIFByb2ZpbGVyKiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2Zp
bGVyUmVmZXJlbmNlKCk7Ci0gICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlcikt
PndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmxpbmVObygp
KTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCku
ZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJh
bWUsIGV2YWwtPnNvdXJjZVVSTCgpLCBldmFsLT5saW5lTm8oKSk7CiAKICAgICBKU1ZhbHVlIHJl
c3VsdDsKICAgICB7CkBAIC0xNjIyLDggKzE2MTUsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpl
eGVjdXRlKEV2YWxFeGVjdXRhCiAgICAgICAgIG1fcmVlbnRyeURlcHRoLS07CiAgICAgfQogCi0g
ICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZy
YW1lLCBldmFsLT5zb3VyY2VVUkwoKSwgZXZhbC0+bGluZU5vKCkpOworICAgIGlmIChQcm9maWxl
ciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkK
KyAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3VyY2VVUkwo
KSwgZXZhbC0+bGluZU5vKCkpOwogCiAgICAgbV9yZWdpc3RlckZpbGUuc2hyaW5rKG9sZEVuZCk7
CiAgICAgaWYgKHB1c2hlZFNjb3BlKQpAQCAtMTkzNSw3ICsxOTI4LDYgQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEluc3RydWN0aW9uKiB2UEMgPSBjb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Ci0gICAgUHJvZmlsZXIqKiBlbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAgICAg
dW5zaWduZWQgdGlja0NvdW50ID0gZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIudGlja3NVbnRp
bE5leHRDaGVjaygpOwogICAgIEpTVmFsdWUgZnVuY3Rpb25SZXR1cm5WYWx1ZTsKIApAQCAtNTIy
Niw4ICs1MjE4LDggQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgKi8KICAgICAgICAg
aW50IGZ1bmN0aW9uID0gdlBDWzFdLnUub3BlcmFuZDsKIAotICAgICAgICBpZiAoKmVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSkKLSAgICAgICAgICAgICgqZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNl
KS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnIoZnVuY3Rpb24pLmpzVmFsdWUo
KSk7CisgICAgICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBnbG9iYWxEYXRhLmVuYWJsZWRQ
cm9maWxlcigpKQorICAgICAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwg
Y2FsbEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1ZhbHVlKCkpOwogCiAgICAgICAgIHZQQyArPSBPUENP
REVfTEVOR1RIKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICAgICAgTkVYVF9JTlNUUlVDVElP
TigpOwpAQCAtNTI0MCw4ICs1MjMyLDggQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAg
Ki8KICAgICAgICAgaW50IGZ1bmN0aW9uID0gdlBDWzFdLnUub3BlcmFuZDsKIAotICAgICAgICBp
ZiAoKmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkKLSAgICAgICAgICAgICgqZW5hYmxlZFByb2Zp
bGVyUmVmZXJlbmNlKS0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGNhbGxGcmFtZS0+cihmdW5jdGlv
bikuanNWYWx1ZSgpKTsKKyAgICAgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxlciA9IGdsb2JhbERh
dGEuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShj
YWxsRnJhbWUsIGNhbGxGcmFtZS0+cihmdW5jdGlvbikuanNWYWx1ZSgpKTsKIAogICAgICAgICB2
UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICAgICAgTkVYVF9J
TlNUUlVDVElPTigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgJKHJldmlz
aW9uIDExOTQyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8v
IEV4ZWN1dGUgdGhlIGNvZGUhCiAgICAgICAgIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGUoUmVnaXN0
ZXJGaWxlKiByZWdpc3RlckZpbGUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGN0aVRyYW1wb2xpbmUobV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCksIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCAwLCBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVy
UmVmZXJlbmNlKCksIGdsb2JhbERhdGEpKTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGN0aVRyYW1wb2xpbmUobV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCksIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCAwLCAwLCBnbG9iYWxEYXRhKSk7CiAgICAg
ICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID8ganNOdWxsKCkgOiByZXN1bHQ7
CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcAkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTkwLDI0ICsxNTkw
LDE2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9jb252ZXJ0X3RoaXMoSW5zdHIKIAogdm9pZCBK
SVQ6OmVtaXRfb3BfcHJvZmlsZV93aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIHsKLSAgICBwZWVrKHJlZ1QyLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwg
ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKSAvIHNpemVvZih2b2lkKikpOwotICAgIEp1bXAgbm9Q
cm9maWxlciA9IGJyYW5jaFRlc3RQdHIoWmVybywgQWRkcmVzcyhyZWdUMikpOwotCiAgICAgSklU
U3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAg
ICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgbm9Qcm9maWxlci5saW5rKHRoaXMpOwogfQogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiB7Ci0gICAgcGVlayhyZWdUMiwgT0JKRUNUX09GRlNFVE9GKEpJVFN0YWNrRnJhbWUs
IGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkgLyBzaXplb2Yodm9pZCopKTsKLSAgICBKdW1wIG5v
UHJvZmlsZXIgPSBicmFuY2hUZXN0UHRyKFplcm8sIEFkZHJlc3MocmVnVDIpKTsKLQogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAg
ICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgbm9Qcm9maWxlci5saW5rKHRoaXMpOwogfQogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9nZXRfYXJndW1lbnRzX2xlbmd0aChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CShyZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjkwLDI1ICsxMjkwLDE2IEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9jcmVhdGVfdGhpcyhJbnN0cnUKIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmls
ZV93aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBwZWVr
KHJlZ1QxLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgZW5hYmxlZFByb2ZpbGVyUmVm
ZXJlbmNlKSAvIHNpemVvZih2b2lkKikpOwotICAgIEp1bXAgbm9Qcm9maWxlciA9IGJyYW5jaFRl
c3RQdHIoWmVybywgQWRkcmVzcyhyZWdUMSkpOwotCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwo
dGhpcywgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAgc3R1YkNhbGwu
Y2FsbCgpOwotICAgIG5vUHJvZmlsZXIubGluayh0aGlzKTsKLQogfQogCiB2b2lkIEpJVDo6ZW1p
dF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
Ci0gICAgcGVlayhyZWdUMSwgT0JKRUNUX09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSkgLyBzaXplb2Yodm9pZCopKTsKLSAgICBKdW1wIG5vUHJvZmlsZXIg
PSBicmFuY2hUZXN0UHRyKFplcm8sIEFkZHJlc3MocmVnVDEpKTsKLQogICAgIEpJVFN0dWJDYWxs
IHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAg
c3R1YkNhbGwuY2FsbCgpOwotICAgIG5vUHJvZmlsZXIubGluayh0aGlzKTsKIH0KIAogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTE5NDI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwNSw3ICsyMDUsNyBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6
IiAiCiAjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICAgICAgIDB4NjAKICNkZWZp
bmUgQ0FMTEZSQU1FX09GRlNFVCAgICAgICAgICAgICAgICAgMHg2NAogI2RlZmluZSBFWENFUFRJ
T05fT0ZGU0VUICAgICAgICAgICAgICAgICAweDY0Ci0jZGVmaW5lIEVOQUJMRV9QUk9GSUxFUl9S
RUZFUkVOQ0VfT0ZGU0VUIDB4NjgKKyNkZWZpbmUgRklSU1RfU1RBQ0tfQVJHVU1FTlQgICAgICAg
ICAgICAgMHg2OAogCiAjZWxpZiAoQ09NUElMRVIoR0NDKSB8fCBDT01QSUxFUihNU1ZDKSB8fCBD
T01QSUxFUihSVkNUKSkgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkKIApAQCAtMjg0LDcgKzI4NCw2
IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgODQK
ICNkZWZpbmUgQ0FMTEZSQU1FX09GRlNFVCAgICAgICAgICAgIDg4CiAjZGVmaW5lIEVYQ0VQVElP
Tl9PRkZTRVQgICAgICAgICAgICA5MgotI2RlZmluZSBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNF
X09GRlNFVCA5NgogI2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQgICAgICAgICAxMDAKICNkZWZp
bmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAgICAgMTA0CiAjZWxpZiBDUFUoU0g0KQpAQCAtNDY1
LDkgKzQ2NCw3IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAi
c3cgICAgJDUsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUkVHSVNURVJfRklMRV9PRkZTRVQpICIoJDI5
KSAjIHN0b3JlIHJlZ2lzdGVyRmlsZSB0byBjdXJyZW50IHN0YWNrIiAiXG4iCiAgICAgInN3ICAg
ICQ2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKENBTExGUkFNRV9PRkZTRVQpICIoJDI5KSAgICAgIyBz
dG9yZSBjYWxsRnJhbWUgdG8gY3VyZW50IHN0YWNrIiAiXG4iCiAgICAgInN3ICAgICQ3LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKEVYQ0VQVElPTl9PRkZTRVQpICIoJDI5KSAgICAgIyBzdG9yZSBleGNl
cHRpb24gdG8gY3VycmVudCBzdGFjayIgIlxuIgotICAgICJsdyAgICAkOCwiIFNUUklOR0laRV9W
QUxVRV9PRihTVEFDS19MRU5HVEggKyAxNikgIigkMjkpICAgICMgbG9hZCBlbmFibGVQcm9maWxl
clJlZmVyZW5jZSBmcm9tIHByZXZpb3VzIHN0YWNrIiAiXG4iCiAgICAgImx3ICAgICQ5LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCArIDIwKSAiKCQyOSkgICAgIyBsb2FkIGdsb2Jh
bERhdGEgZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgotICAgICJzdyAgICAkOCwiIFNUUklOR0la
RV9WQUxVRV9PRihFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVCkgIigkMjkpICAgIyBz
dG9yZSBlbmFibGVQcm9maWxlclJlZmVyZW5jZSB0byBjdXJyZW50IHN0YWNrIiAiXG4iCiAgICAg
ImphbHIgICQyNSIgIlxuIgogICAgICJzdyAgICAkOSwiIFNUUklOR0laRV9WQUxVRV9PRihHTE9C
QUxfREFUQV9PRkZTRVQpICIoJDI5KSAgICMgc3RvcmUgZ2xvYmFsRGF0YSB0byBjdXJyZW50IHN0
YWNrIiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKQEAgLTU0Myw3ICs1NDAsNyBAQCBISURFX1NZTUJPTChj
dGlUcmFtcG9saW5lKSAiXG4iCiAiLnRodW1iIiAiXG4iCiAiLnRodW1iX2Z1bmMgIiBUSFVNQl9G
VU5DX1BBUkFNKGN0aVRyYW1wb2xpbmUpICJcbiIKIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGlu
ZSkgIjoiICJcbiIKLSAgICAic3ViIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEVOQUJM
RV9QUk9GSUxFUl9SRUZFUkVOQ0VfT0ZGU0VUKSAiXG4iCisgICAgInN1YiBzcCwgc3AsICMiIFNU
UklOR0laRV9WQUxVRV9PRihGSVJTVF9TVEFDS19BUkdVTUVOVCkgIlxuIgogICAgICJzdHIgbHIs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZT
RVQpICJdIiAiXG4iCiAgICAgInN0ciByNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1I0X09GRlNFVCkgIl0iICJcbiIKICAgICAic3RyIHI1LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUjVfT0ZGU0VUKSAiXSIgIlxuIgpAQCAtNTY4LDcgKzU2NSw3
IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAibGRyIHI1LCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjVfT0ZGU0VUKSAiXSIgIlxuIgog
ICAgICJsZHIgcjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNF9PRkZT
RVQpICJdIiAiXG4iCiAgICAgImxkciBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIl0iICJcbiIKLSAgICAiYWRkIHNwLCBzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKEVOQUJMRV9QUk9GSUxFUl9SRUZFUkVOQ0VfT0ZGU0VUKSAi
XG4iCisgICAgImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihGSVJTVF9TVEFDS19B
UkdVTUVOVCkgIlxuIgogICAgICJieCBsciIgIlxuIgogIi5hbGlnbiAyIiAiXG4iCiAiLmdsb2Js
ICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCkBAIC01OTcsNyArNTk0LDcg
QEAgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiIAogICAgICJsZHIgcjUs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNV9PRkZTRVQpICJdIiAiXG4i
CiAgICAgImxkciByNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I0X09G
RlNFVCkgIl0iICJcbiIKICAgICAibGRyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJhZGQgc3AsIHNw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQp
ICJcbiIKKyAgICAiYWRkIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZJUlNUX1NUQUNL
X0FSR1VNRU5UKSAiXG4iCiAgICAgImJ4IGxyIiAiXG4iCiApOwogCkBAIC02MTgsNyArNjE1LDcg
QEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIgIgogICAgICJsZHIgcjUs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SNV9PRkZTRVQpICJdIiAiXG4i
CiAgICAgImxkciByNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I0X09G
RlNFVCkgIl0iICJcbiIKICAgICAibGRyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJhZGQgc3AsIHNw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQp
ICJcbiIKKyAgICAiYWRkIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZJUlNUX1NUQUNL
X0FSR1VNRU5UKSAiXG4iCiAgICAgImJ4IGxyIiAiXG4iCiApOwogCkBAIC02NjQsNyArNjYxLDcg
QEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIgIgogX19hc20gRW5jb2Rl
ZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lkKiwgUmVnaXN0ZXJGaWxlKiwgQ2FsbEZyYW1lKiwg
SlNWYWx1ZSosIFByb2ZpbGVyKiosIEpTR2xvYmFsRGF0YSopCiB7CiAgICAgUFJFU0VSVkU4Ci0g
ICAgc3ViIHNwLCBzcCwgIyBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVAorICAgIHN1
YiBzcCwgc3AsICMgRklSU1RfU1RBQ0tfQVJHVU1FTlQKICAgICBzdHIgbHIsIFtzcCwgIyBQUkVT
RVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIF0KICAgICBzdHIgcjQsIFtzcCwgIyBQUkVTRVJW
RURfUjRfT0ZGU0VUIF0KICAgICBzdHIgcjUsIFtzcCwgIyBQUkVTRVJWRURfUjVfT0ZGU0VUIF0K
QEAgLTY4OSw3ICs2ODYsNyBAQCBfX2FzbSBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9saW5lKHZv
aWQqCiAgICAgbGRyIHI1LCBbc3AsICMgUFJFU0VSVkVEX1I1X09GRlNFVCBdCiAgICAgbGRyIHI0
LCBbc3AsICMgUFJFU0VSVkVEX1I0X09GRlNFVCBdCiAgICAgbGRyIGxyLCBbc3AsICMgUFJFU0VS
VkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCBdCi0gICAgYWRkIHNwLCBzcCwgIyBFTkFCTEVfUFJP
RklMRVJfUkVGRVJFTkNFX09GRlNFVAorICAgIGFkZCBzcCwgc3AsICMgRklSU1RfU1RBQ0tfQVJH
VU1FTlQKICAgICBieCBscgogfQogCkBAIC03MDgsNyArNzA1LDcgQEAgX19hc20gdm9pZCBjdGlW
TVRocm93VHJhbXBvbGluZSgpCiAgICAgbGRyIHI1LCBbc3AsICMgUFJFU0VSVkVEX1I1X09GRlNF
VCBdCiAgICAgbGRyIHI0LCBbc3AsICMgUFJFU0VSVkVEX1I0X09GRlNFVCBdCiAgICAgbGRyIGxy
LCBbc3AsICMgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCBdCi0gICAgYWRkIHNwLCBz
cCwgIyBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVAorICAgIGFkZCBzcCwgc3AsICMg
RklSU1RfU1RBQ0tfQVJHVU1FTlQKICAgICBieCBscgogfQogCkBAIC03MjUsNyArNzIyLDcgQEAg
X19hc20gdm9pZCBjdGlPcFRocm93Tm90Q2F1Z2h0KCkKICAgICBsZHIgcjUsIFtzcCwgIyBQUkVT
RVJWRURfUjVfT0ZGU0VUIF0KICAgICBsZHIgcjQsIFtzcCwgIyBQUkVTRVJWRURfUjRfT0ZGU0VU
IF0KICAgICBsZHIgbHIsIFtzcCwgIyBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIF0K
LSAgICBhZGQgc3AsIHNwLCAjIEVOQUJMRV9QUk9GSUxFUl9SRUZFUkVOQ0VfT0ZGU0VUCisgICAg
YWRkIHNwLCBzcCwgIyBGSVJTVF9TVEFDS19BUkdVTUVOVAogICAgIGJ4IGxyCiB9CiAKQEAgLTgw
MCw3ICs3OTcsNyBAQCBKSVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEqIGdsb2JhCiAg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcmVnaXN0ZXJG
aWxlKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSA9PSBDQUxMRlJBTUVfT0ZGU0VUKTsK
ICAgICAvLyBUaGUgZmlmdGggYXJndW1lbnQgaXMgdGhlIGZpcnN0IGl0ZW0gYWxyZWFkeSBvbiB0
aGUgc3RhY2suCi0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKSA9PSBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNF
X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgdW51c2VkMikgPT0gRklSU1RfU1RBQ0tfQVJHVU1FTlQpOwogCiAgICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBU
SFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOwogCkBAIC04MjAsNyArODE3LDYgQEAgSklUVGh1
bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYQogICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHJlZ2lzdGVyRmlsZSkgPT0gUkVHSVNURVJfRklM
RV9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJh
bWUsIGNhbGxGcmFtZSkgPT0gQ0FMTEZSQU1FX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdW51c2VkMSkgPT0gRVhDRVBUSU9OX09GRlNF
VCk7Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZW5h
YmxlZFByb2ZpbGVyUmVmZXJlbmNlKSA9PSBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNF
VCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgZ2xv
YmFsRGF0YSkgPT0gR0xPQkFMX0RBVEFfT0ZGU0VUKTsKIAogI2VuZGlmCkBAIC0yMzU1LDE2ICsy
MzUxLDE2IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3Byb2ZpbGVfd2kKIHsKICAg
ICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CiAKLSAgICBBU1NFUlQoKnN0YWNr
RnJhbWUuZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKTsKLSAgICAoKnN0YWNrRnJhbWUuZW5hYmxl
ZFByb2ZpbGVyUmVmZXJlbmNlKS0+d2lsbEV4ZWN1dGUoc3RhY2tGcmFtZS5jYWxsRnJhbWUsIHN0
YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkpOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIg
PSBzdGFja0ZyYW1lLmdsb2JhbERhdGEtPmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9m
aWxlci0+d2lsbEV4ZWN1dGUoc3RhY2tGcmFtZS5jYWxsRnJhbWUsIHN0YWNrRnJhbWUuYXJnc1sw
XS5qc1ZhbHVlKCkpOwogfQogCiBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wcm9maWxl
X2RpZF9jYWxsKQogewogICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKIAot
ICAgIEFTU0VSVCgqc3RhY2tGcmFtZS5lbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UpOwotICAgICgq
c3RhY2tGcmFtZS5lbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UpLT5kaWRFeGVjdXRlKHN0YWNrRnJh
bWUuY2FsbEZyYW1lLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpKTsKKyAgICBpZiAoUHJv
ZmlsZXIqIHByb2ZpbGVyID0gc3RhY2tGcmFtZS5nbG9iYWxEYXRhLT5lbmFibGVkUHJvZmlsZXIo
KSkKKyAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoc3RhY2tGcmFtZS5jYWxsRnJhbWUsIHN0
YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkpOwogfQogCiBERUZJTkVfU1RVQl9GVU5DVElPTihK
U09iamVjdCosIG9wX25ld19hcnJheSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmgJKHJldmlzaW9uIDExOTQyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmlsZTsKICAgICAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWU7CiAgICAgICAgIHZvaWQqIHVudXNlZDE7Ci0gICAgICAgIFByb2ZpbGVyKiog
ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlOworICAgICAgICB2b2lkKiB1bnVzZWQyOwogICAgICAg
ICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAKICAgICAgICAgdm9pZCogc2F2ZWRSQlg7CkBA
IC0xNDAsNyArMTQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVyRmlsZSog
cmVnaXN0ZXJGaWxlOwogICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKICAgICAgICAgdm9p
ZCogdW51c2VkMTsKLSAgICAgICAgUHJvZmlsZXIqKiBlbmFibGVkUHJvZmlsZXJSZWZlcmVuY2U7
CisgICAgICAgIHZvaWQqIHVudXNlZDI7CiAgICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0
YTsKICAgICAgICAgCiAgICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxsLCBpdCBw
dXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhlIHN0YWNr
LgpAQCAtMTcxLDcgKzE3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZTsKIAogICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBz
dGFjay4KLSAgICAgICAgUHJvZmlsZXIqKiBlbmFibGVkUHJvZmlsZXJSZWZlcmVuY2U7CisgICAg
ICAgIHZvaWQqIHVudXNlZDE7CiAgICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKICAg
ICAgICAgCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyBy
ZXR1cm4gJnRodW5rUmV0dXJuQWRkcmVzczsgfQpAQCAtMTk5LDcgKzE5OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2b2lkKiB1bnVzZWQxOwogCiAgICAgICAgIC8vIFRoZXNlIGFyZ3Vt
ZW50cyBwYXNzZWQgb24gdGhlIHN0YWNrLgotICAgICAgICBQcm9maWxlcioqIGVuYWJsZWRQcm9m
aWxlclJlZmVyZW5jZTsKKyAgICAgICAgdm9pZCogdW51c2VkMjsKICAgICAgICAgSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhOwogCiAgICAgICAgIC8vIFdoZW4gSklUIGNvZGUgbWFrZXMgYSBjYWxs
LCBpdCBwdXNoZXMgaXRzIHJldHVybiBhZGRyZXNzIGp1c3QgYmVsb3cgdGhlIHJlc3Qgb2YgdGhl
IHN0YWNrLgpAQCAtMjMxLDcgKzIzMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
KiB1bnVzZWQxOwogCiAgICAgICAgIC8vIFRoZXNlIGFyZ3VtZW50cyBwYXNzZWQgb24gdGhlIHN0
YWNrLgotICAgICAgICBQcm9maWxlcioqIGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZTsKKyAgICAg
ICAgdm9pZCogdW51c2VkMjsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCiAg
ICAgICAgIFJldHVybkFkZHJlc3NQdHIqIHJldHVybkFkZHJlc3NTbG90KCkgeyByZXR1cm4gJnRo
dW5rUmV0dXJuQWRkcmVzczsgfQpAQCAtMjUyLDcgKzI1Miw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmlsZTsKICAgICAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWU7CiAgICAgICAgIEpTVmFsdWUqIGV4Y2VwdGlvbjsKLSAgICAgICAgUHJvZmlsZXIq
KiBlbmFibGVkUHJvZmlsZXJSZWZlcmVuY2U7CisgICAgICAgIHZvaWQqIHVudXNlZDE7CiAgICAg
ICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKIAogICAgICAgICBSZXR1cm5BZGRyZXNzUHRy
KiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KQEAg
LTI4Miw3ICsyODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGV4dGVybiAiQyIgdm9pZCBj
dGlWTVRocm93VHJhbXBvbGluZSgpOwogICAgIGV4dGVybiAiQyIgdm9pZCBjdGlPcFRocm93Tm90
Q2F1Z2h0KCk7Ci0gICAgZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9saW5lKHZv
aWQqIGNvZGUsIFJlZ2lzdGVyRmlsZSosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCBQ
cm9maWxlcioqLCBKU0dsb2JhbERhdGEqKTsKKyAgICBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVl
IGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgUmVnaXN0ZXJGaWxlKiwgQ2FsbEZyYW1lKiwgdm9p
ZCogLyp1bnVzZWQxKi8sIHZvaWQqIC8qdW51c2VkMiovLCBKU0dsb2JhbERhdGEqKTsKICNpZiBF
TkFCTEUoREZHX0pJVCkKICAgICBleHRlcm4gIkMiIHZvaWQgY3RpVHJhbXBvbGluZUVuZCgpOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHJldmlzaW9uIDExOTQyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NDYsMTQgKzE1NDYsMTYgQEAgTExJ
TlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2RlYnVnKQogTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQogewogICAgIExMSU5UX0JFR0lOKCk7Ci0gICAg
KCpQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkpLT53aWxsRXhlY3V0ZShleGVj
LCBMTElOVF9PUCgxKS5qc1ZhbHVlKCkpOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBn
bG9iYWxEYXRhLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1
dGUoZXhlYywgTExJTlRfT1AoMSkuanNWYWx1ZSgpKTsKICAgICBMTElOVF9FTkQoKTsKIH0KIAog
TExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCiB7CiAgICAg
TExJTlRfQkVHSU4oKTsKLSAgICAoKlByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2Uo
KSktPmRpZEV4ZWN1dGUoZXhlYywgTExJTlRfT1AoMSkuanNWYWx1ZSgpKTsKKyAgICBpZiAoUHJv
ZmlsZXIqIHByb2ZpbGVyID0gZ2xvYmFsRGF0YS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAg
cHJvZmlsZXItPmRpZEV4ZWN1dGUoZXhlYywgTExJTlRfT1AoMSkuanNWYWx1ZSgpKTsKICAgICBM
TElOVF9FTkQoKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNv
cHkpCkBAIC03MjcsMTkgKzcyNywxMyBAQCBfbGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9y
OgogCiBfbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6CiAgICAgdHJhY2VFeGVjdXRpb24oKQot
ICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQw
Ci0gICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCiAgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCi0ub3BQcm9maWxlV2lsbENhbGxE
b25lOgogICAgIGRpc3BhdGNoKDIpCiAKIAogX2xsaW50X29wX3Byb2ZpbGVfZGlkX2NhbGw6CiAg
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9m
aWxlclJlZmVyZW5jZVtzcF0sIHQwCi0gICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxE
b25lCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkK
LS5vcFByb2ZpbGVEaWRDYWxsRG9uZToKICAgICBkaXNwYXRjaCgyKQogCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyLmNwcAkocmV2aXNpb24gMTE5NDI1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNyArNTEsNiBAQCBzdGF0aWMgdW5zaWduZWQgUHJvZmlsZXNVSUQgPSAw
Owogc3RhdGljIENhbGxJZGVudGlmaWVyIGNyZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9u
SW1wKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgY29uc3QgVVN0cmluZyYgZGVmYXVsdFNvdXJjZVVS
TCwgaW50IGRlZmF1bHRMaW5lTnVtYmVyKTsKIAogUHJvZmlsZXIqIFByb2ZpbGVyOjpzX3NoYXJl
ZFByb2ZpbGVyID0gMDsKLVByb2ZpbGVyKiBQcm9maWxlcjo6c19zaGFyZWRFbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UgPSAwOwogCiBQcm9maWxlciogUHJvZmlsZXI6OnByb2ZpbGVyKCkKIHsKQEAg
LTc0LDcgKzczLDcgQEAgdm9pZCBQcm9maWxlcjo6c3RhcnRQcm9maWxpbmcoRXhlY1N0YXRlKgog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNfc2hhcmVkRW5hYmxlZFByb2ZpbGVy
UmVmZXJlbmNlID0gdGhpczsKKyAgICBleGVjLT5nbG9iYWxEYXRhKCkubV9lbmFibGVkUHJvZmls
ZXIgPSB0aGlzOwogICAgIFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPiBwcm9maWxlR2VuZXJhdG9y
ID0gUHJvZmlsZUdlbmVyYXRvcjo6Y3JlYXRlKGV4ZWMsIHRpdGxlLCArK1Byb2ZpbGVzVUlEKTsK
ICAgICBtX2N1cnJlbnRQcm9maWxlcy5hcHBlbmQocHJvZmlsZUdlbmVyYXRvcik7CiB9CkBAIC05
MCw3ICs4OSw3IEBAIFBhc3NSZWZQdHI8UHJvZmlsZT4gUHJvZmlsZXI6OnN0b3BQcm9maWwKIAog
ICAgICAgICAgICAgbV9jdXJyZW50UHJvZmlsZXMucmVtb3ZlKGkpOwogICAgICAgICAgICAgaWYg
KCFtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkpCi0gICAgICAgICAgICAgICAgc19zaGFyZWRFbmFi
bGVkUHJvZmlsZXJSZWZlcmVuY2UgPSAwOworICAgICAgICAgICAgICAgIGV4ZWMtPmdsb2JhbERh
dGEoKS5tX2VuYWJsZWRQcm9maWxlciA9IDA7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJl
dHVybiByZXR1cm5Qcm9maWxlOwogICAgICAgICB9CkBAIC0xMDcsNyArMTA2LDcgQEAgdm9pZCBQ
cm9maWxlcjo6c3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iagogICAgICAgICAgICAgcHJvZmlsZUdl
bmVyYXRvci0+c3RvcFByb2ZpbGluZygpOwogICAgICAgICAgICAgbV9jdXJyZW50UHJvZmlsZXMu
cmVtb3ZlKGkpOwogICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkpCi0g
ICAgICAgICAgICAgICAgc19zaGFyZWRFbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UgPSAwOworICAg
ICAgICAgICAgICAgIG9yaWdpbi0+Z2xvYmFsRGF0YSgpLm1fZW5hYmxlZFByb2ZpbGVyID0gMDsK
ICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlci5oCShyZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTEgKzQ4LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgUHJvZmlsZXIgewogICAgICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQcm9maWxlcioqIGVuYWJs
ZWRQcm9maWxlclJlZmVyZW5jZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAmc19z
aGFyZWRFbmFibGVkUHJvZmlsZXJSZWZlcmVuY2U7Ci0gICAgICAgIH0KLQogICAgICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgUHJvZmlsZXIqIHByb2ZpbGVyKCk7IAogICAgICAgICBzdGF0
aWMgQ2FsbElkZW50aWZpZXIgY3JlYXRlQ2FsbElkZW50aWZpZXIoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKTsKIApAQCAt
NzIsNyArNjcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBWZWN0
b3I8UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+ID4gbV9jdXJyZW50UHJvZmlsZXM7CiAgICAgICAg
IHN0YXRpYyBQcm9maWxlciogc19zaGFyZWRQcm9maWxlcjsKLSAgICAgICAgc3RhdGljIFByb2Zp
bGVyKiBzX3NoYXJlZEVuYWJsZWRQcm9maWxlclJlZmVyZW5jZTsKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxEYXRhLmNwcAkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw3
IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXAKICAgICAsIGR5bmFt
aWNHbG9iYWxPYmplY3QoMCkKICAgICAsIGNhY2hlZFVUQ09mZnNldChzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpKQogICAgICwgbWF4UmVlbnRyeURlcHRoKHRocmVhZFN0
YWNrVHlwZSA9PSBUaHJlYWRTdGFja1R5cGVTbWFsbCA/IE1heFNtYWxsVGhyZWFkUmVlbnRyeURl
cHRoIDogTWF4TGFyZ2VUaHJlYWRSZWVudHJ5RGVwdGgpCisgICAgLCBtX2VuYWJsZWRQcm9maWxl
cigwKQogICAgICwgbV9yZWdFeHBDYWNoZShuZXcgUmVnRXhwQ2FjaGUodGhpcykpCiAjaWYgRU5B
QkxFKFJFR0VYUF9UUkFDSU5HKQogICAgICwgbV9ydFRyYWNlTGlzdChuZXcgUlRUcmFjZUxpc3Qo
KSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5o
CShyZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAgICAgY2xhc3MgTmF0aXZlRXhl
Y3V0YWJsZTsKICAgICBjbGFzcyBQYXJzZXJBcmVuYTsKKyAgICBjbGFzcyBQcm9maWxlcjsKICAg
ICBjbGFzcyBSZWdFeHBDYWNoZTsKICAgICBjbGFzcyBTdHJpbmdpZmllcjsKICAgICBjbGFzcyBT
dHJ1Y3R1cmU7CkBAIC0yNTUsNiArMjU2LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcmV0dXJuIG1faW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAgICAgICAgfQogCisgICAgICAgIFBy
b2ZpbGVyKiBlbmFibGVkUHJvZmlsZXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
bV9lbmFibGVkUHJvZmlsZXI7CisgICAgICAgIH0KKwogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAg
ICAgICAgIEV4ZWN1dGFibGVBbGxvY2F0b3IgZXhlY3V0YWJsZUFsbG9jYXRvcjsKICNlbmRpZgpA
QCAtMzQ2LDYgKzM1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGludCBtYXhSZWVu
dHJ5RGVwdGg7CiAKKyAgICAgICAgUHJvZmlsZXIqIG1fZW5hYmxlZFByb2ZpbGVyOwogICAgICAg
ICBSZWdFeHBDYWNoZSogbV9yZWdFeHBDYWNoZTsKICAgICAgICAgQnVtcFBvaW50ZXJBbGxvY2F0
b3IgbV9yZWdFeHBBbGxvY2F0b3I7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDExOTQyNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE5LDEwICsxMTksOCBAQCBKU0dsb2JhbE9iamVjdDo6fkpTR2xvYmFsT2JqZWN0KCkK
ICAgICBpZiAobV9kZWJ1Z2dlcikKICAgICAgICAgbV9kZWJ1Z2dlci0+ZGV0YWNoKHRoaXMpOwog
Ci0gICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJvZmlsZXJSZWZl
cmVuY2UoKTsKLSAgICBpZiAoVU5MSUtFTFkoKnByb2ZpbGVyICE9IDApKSB7Ci0gICAgICAgICgq
cHJvZmlsZXIpLT5zdG9wUHJvZmlsaW5nKHRoaXMpOwotICAgIH0KKyAgICBpZiAoUHJvZmlsZXIq
IHByb2ZpbGVyID0gZ2xvYmFsRGF0YSgpLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9m
aWxlci0+c3RvcFByb2ZpbGluZyh0aGlzKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdDo6ZGVz
dHJveShKU0NlbGwqIGNlbGwpCg==
</data>
<flag name="review"
          id="152797"
          type_id="1"
          status="+"
          setter="msaboff"
    />
    <flag name="commit-queue"
          id="152809"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145645</attachid>
            <date>2012-06-04 16:05:00 -0700</date>
            <delta_ts>2012-06-04 16:05:00 -0700</delta_ts>
            <desc>Windows build fix</desc>
            <filename>88258.2.patch</filename>
            <type>text/plain</type>
            <size>32276</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5NDI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBA
CisyMDEyLTA2LTA0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE1pY2hhZWwgU2Fib2ZmLgorCisgICAgICAgIE1ha2UgdGhlIGVuYWJsZWQgcHJvZmls
ZXIgYSBtZW1iZXIgb2YgSlNHbG9iYWxEYXRhLCBhbmQgc3dpdGNoIGNvZGUgdGhhdCBhY2Nlc3Nl
cyBpdCB0byBkbyBzbyBkaXJlY3RseQorICAgICAgICB2aWEgdGhlIEpTR2xvYmFsRGF0YSwgcmF0
aGVyIHRoYW4gaG9sZGluZyBhIFByb2ZpbGVyKiogcmVmZXJlbmNlIHRvIGl0LiBEbyBub3QgcGFz
cyB0aGUgUHJvZmlsZXIqKgorICAgICAgICByZWZlcmVuY2UgdG8gSklUIGNvZGUuIFRoaXMgcGF0
Y2ggZG9lcyBub3QgY2hhbmdlIHRoZSBzdGFjayBsYXlvdXQgb24gZW50cnkgaW50byBKSVQgY29k
ZSAocGFzc2luZyBhbgorICAgICAgICB1bnVzZWQgdm9pZCogaW5zdGVhZCksIHNpbmNlIHRoaXMg
aXMgYW4gaW50cnVzaXZlIGNoYW5nZSBiZXR0ZXIgaGFuZGxlZCBpbiBhIHNlcGFyYXRlIHBhdGNo
LgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRl
cjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ2FsbCk6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KToKKyAgICAgICAgKEpT
Qzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5o
OgorICAgICAgICAoSlNDOjpKSVRDb2RlOjpleGVjdXRlKToKKyAgICAgICAgICAgIC0gRG9uJ3Qg
cGFzcyBQcm9maWxlcioqIHRvIEpJVCBjb2RlLgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwpOgorICAgICAgICAqIGppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV93
aWxsX2NhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbCk6
CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChK
U0M6OmN0aVRyYW1wb2xpbmUpOgorICAgICAgICAoSlNDOjpjdGlWTVRocm93VHJhbXBvbGluZSk6
CisgICAgICAgIChKU0M6OmN0aU9wVGhyb3dOb3RDYXVnaHQpOgorICAgICAgICAoSlNDOjpKSVRU
aHVua3M6OkpJVFRodW5rcyk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToK
KyAgICAgICAgICAgIC0gRm9yIEFSTV9USFVNQjIsIHJlbmFtZSBFTkFCTEVfUFJPRklMRVJfUkVG
RVJFTkNFX09GRlNFVCB0byBGSVJTVF9TVEFDS19BUkdVTUVOVCAod2hpY2ggaXMgaG93IGl0IGlz
IGJlaW5nIHVzZWQpLgorICAgICAgICAgICAgLSBGb3IgTUlQUywgcmVtb3ZlIEVOQUJMRV9QUk9G
SUxFUl9SRUZFUkVOQ0VfT0ZGU0VULgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0MpOgorICAgICAgICAgICAgLSBSZW5hbWVk
IGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSB0byB1bnVzZWRYLgorICAgICAgICAqIGxsaW50L0xM
SW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9E
RUNMKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBwcm9maWxlci9Qcm9maWxlci5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpQ
cm9maWxlcjo6c3RhcnRQcm9maWxpbmcpOgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6c3RvcFBy
b2ZpbGluZyk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXIuaDoKKyAgICAgICAgKFByb2Zp
bGVyKToKKyAgICAgICAgICAgIC0gUmVtb3ZlZCBzX3NoYXJlZEVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZSwgZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkuCisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbERhdGEuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTQyk6CisgICAg
ICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6ZW5hYmxlZFByb2ZpbGVyKToKKyAgICAgICAgKEpTR2xv
YmFsRGF0YSk6CisgICAgICAgICAgICAtIEFkZGVkIG1fZW5hYmxlZFByb2ZpbGVyLCBlbmFibGVk
UHJvZmlsZXIoKS4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6On5KU0dsb2JhbE9iamVjdCk6CisKIDIwMTItMDYtMDQg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCVUlMRCBGSVg6
IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIHNob3VsZCBtYXRjaCBhY3Jvc3MgcHJvamVjdHMKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmNwcAkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0Myw3ICsxMDQzLDcgQEAg
TkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dAogICAgIEhhbmRsZXJJbmZv
KiBoYW5kbGVyID0gMDsKICAgICB3aGlsZSAoaXNJbnRlcnJ1cHQgfHwgIShoYW5kbGVyID0gY29k
ZUJsb2NrLT5oYW5kbGVyRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSkgewogICAg
ICAgICBpZiAoIXVud2luZENhbGxGcmFtZShjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCBieXRl
Y29kZU9mZnNldCwgY29kZUJsb2NrKSkgewotICAgICAgICAgICAgaWYgKFByb2ZpbGVyKiBwcm9m
aWxlciA9ICpQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkpCisgICAgICAgICAg
ICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxl
ZFByb2ZpbGVyKCkpCiAgICAgICAgICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChj
YWxsRnJhbWUpOwogICAgICAgICAgICAgY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkudG9wQ2FsbEZy
YW1lID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMDUxLDcgKzEwNTEs
NyBAQCBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp0CiAgICAgfQogICAg
IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKIAotICAg
IGlmIChQcm9maWxlciogcHJvZmlsZXIgPSAqUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZSgpKQorICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERh
dGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2lu
ZChjYWxsRnJhbWUpOwogCiAgICAgLy8gU2hyaW5rIHRoZSBKUyBzdGFjaywgaW4gY2FzZSBzdGFj
ayBvdmVyZmxvdyBtYWRlIGl0IGh1Z2UuCkBAIC0xMjE4LDkgKzEyMTgsOCBAQCBmYWlsZWRKU09O
UDoKICAgICBuZXdDYWxsRnJhbWUtPnNldFRoaXNWYWx1ZSh0aGlzT2JqKTsKICAgICBUb3BDYWxs
RnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1lKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxs
RnJhbWUpOwogCi0gICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2ZpbGVyOjplbmFibGVkUHJv
ZmlsZXJSZWZlcmVuY2UoKTsKLSAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAoKnByb2ZpbGVy
KS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBwcm9ncmFtLT5zb3VyY2VVUkwoKSwgcHJvZ3JhbS0+
bGluZU5vKCkpOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRl
KGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJMKCksIHByb2dyYW0tPmxpbmVObygpKTsKIAog
ICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKQEAgLTEyMzcsOCArMTIzNiw4IEBAIGZhaWxlZEpT
T05QOgogICAgICAgICBtX3JlZW50cnlEZXB0aC0tOwogICAgIH0KIAotICAgIGlmICgqcHJvZmls
ZXIpCi0gICAgICAgICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+
c291cmNlVVJMKCksIHByb2dyYW0tPmxpbmVObygpKTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2Zp
bGVyID0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAg
IHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJMKCksIHBy
b2dyYW0tPmxpbmVObygpKTsKIAogICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwog
CkBAIC0xMjkxLDkgKzEyOTAsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChD
YWxsRnJhCiAKICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAotICAgICAgICBQcm9maWxlcioqIHBy
b2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwotICAgICAgICBp
ZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNhbGxG
cmFtZSwgZnVuY3Rpb24pOworICAgICAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZy
YW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAgICBwcm9maWxl
ci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CiAKICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQ7CiAgICAgICAgIHsKQEAgLTEzMDksOCArMTMwNyw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRoLS07CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpwcm9maWxl
ciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CisgICAgICAgIGlmIChQcm9maWxl
ciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkK
KyAgICAgICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwog
CiAgICAgICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAgICAgICByZXR1cm4g
Y2hlY2tlZFJldHVybihyZXN1bHQpOwpAQCAtMTMyNCw5ICsxMzIyLDggQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogCiAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNj
b3BlIGdsb2JhbE9iamVjdFNjb3BlKCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29wZUNoYWlu
LT5nbG9iYWxPYmplY3QuZ2V0KCkpOwogCi0gICAgUHJvZmlsZXIqKiBwcm9maWxlciA9IFByb2Zp
bGVyOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2UoKTsKLSAgICBpZiAoKnByb2ZpbGVyKQotICAg
ICAgICAoKnByb2ZpbGVyKS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CisgICAg
aWYgKFByb2ZpbGVyKiBwcm9maWxlciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQ
cm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5j
dGlvbik7CiAKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CkBAIC0xMzM0LDggKzEzMzEsOCBA
QCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhCiAgICAgICAgIHJlc3Vs
dCA9IEpTVmFsdWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1l
KSk7CiAgICAgfQogCi0gICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPmRp
ZEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7CisgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxl
ciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBw
cm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGZ1bmN0aW9uKTsKIAogICAgIG1fcmVnaXN0
ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7
CkBAIC0xMzg3LDkgKzEzODQsOCBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25z
dHJ1Y3QoCiAKICAgICAgICAgVG9wQ2FsbEZyYW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZyYW1lKTsKIAotICAgICAgICBQcm9maWxlcioqIHBy
b2ZpbGVyID0gUHJvZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwotICAgICAgICBp
ZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNhbGxG
cmFtZSwgY29uc3RydWN0b3IpOworICAgICAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAgICBwcm9m
aWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7CiAKICAgICAgICAgSlNW
YWx1ZSByZXN1bHQ7CiAgICAgICAgIHsKQEAgLTE0MDUsOCArMTQwMSw4IEBAIEpTT2JqZWN0KiBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRo
LS07CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoKnByb2ZpbGVyKQotICAgICAgICAgICAgKCpw
cm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgIGlm
IChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJv
ZmlsZXIoKSkKKyAgICAgICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgY29u
c3RydWN0b3IpOwogCiAgICAgICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAg
ICAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKQEAgLTE0MjMsOSArMTQxOSw4IEBA
IEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIAogICAgIER5bmFtaWNH
bG9iYWxPYmplY3RTY29wZSBnbG9iYWxPYmplY3RTY29wZSgqc2NvcGVDaGFpbi0+Z2xvYmFsRGF0
YSwgc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0LmdldCgpKTsKIAotICAgIFByb2ZpbGVyKiogcHJv
ZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7Ci0gICAgaWYgKCpw
cm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgY29u
c3RydWN0b3IpOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRl
KGNhbGxGcmFtZSwgY29uc3RydWN0b3IpOwogCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewpA
QCAtMTQzMyw4ICsxNDI4LDggQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3Ry
dWN0KAogICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7CiAgICAgfQogCi0gICAgaWYgKCpwcm9maWxlcikK
LSAgICAgICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7
CisgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxlciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVu
YWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUs
IGNvbnN0cnVjdG9yKTsKIAogICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAg
IGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQpAQCAtMTQ5MCw5ICsxNDg1LDggQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbAogICAgIGlmIChjbG9zdXJlLm9s
ZENhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmlzQ29sbGVjdG9yQnVzeSgpKQogICAgICAgICByZXR1
cm4ganNOdWxsKCk7CiAgICAgY2xvc3VyZS5yZXNldENhbGxGcmFtZSgpOwotICAgIFByb2ZpbGVy
KiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7Ci0gICAg
aWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPndpbGxFeGVjdXRlKGNsb3N1cmUu
b2xkQ2FsbEZyYW1lLCBjbG9zdXJlLmZ1bmN0aW9uKTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2Zp
bGVyID0gY2xvc3VyZS5vbGRDYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIo
KSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNsb3N1cmUub2xkQ2FsbEZyYW1lLCBj
bG9zdXJlLmZ1bmN0aW9uKTsKIAogICAgIFRvcENhbGxGcmFtZVNldHRlciB0b3BDYWxsRnJhbWUo
KmNsb3N1cmUuZ2xvYmFsRGF0YSwgY2xvc3VyZS5uZXdDYWxsRnJhbWUpOwogCkBAIC0xNTE2LDgg
KzE1MTAsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFtZUNsCiAgICAg
ICAgIG1fcmVlbnRyeURlcHRoLS07CiAgICAgfQogCi0gICAgaWYgKCpwcm9maWxlcikKLSAgICAg
ICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2xvc3VyZS5vbGRDYWxsRnJhbWUsIGNsb3N1cmUu
ZnVuY3Rpb24pOworICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBjbG9zdXJlLm9sZENhbGxG
cmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICBwcm9maWxlci0+
ZGlkRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7CiAgICAg
cmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTU5Nyw5ICsxNTkxLDggQEAg
SlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogCiAgICAgVG9wQ2FsbEZy
YW1lU2V0dGVyIHRvcENhbGxGcmFtZShjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgbmV3Q2FsbEZy
YW1lKTsKIAotICAgIFByb2ZpbGVyKiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2Zp
bGVyUmVmZXJlbmNlKCk7Ci0gICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlcikt
PndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmxpbmVObygp
KTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCku
ZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJh
bWUsIGV2YWwtPnNvdXJjZVVSTCgpLCBldmFsLT5saW5lTm8oKSk7CiAKICAgICBKU1ZhbHVlIHJl
c3VsdDsKICAgICB7CkBAIC0xNjIyLDggKzE2MTUsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpl
eGVjdXRlKEV2YWxFeGVjdXRhCiAgICAgICAgIG1fcmVlbnRyeURlcHRoLS07CiAgICAgfQogCi0g
ICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoY2FsbEZy
YW1lLCBldmFsLT5zb3VyY2VVUkwoKSwgZXZhbC0+bGluZU5vKCkpOworICAgIGlmIChQcm9maWxl
ciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkK
KyAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3VyY2VVUkwo
KSwgZXZhbC0+bGluZU5vKCkpOwogCiAgICAgbV9yZWdpc3RlckZpbGUuc2hyaW5rKG9sZEVuZCk7
CiAgICAgaWYgKHB1c2hlZFNjb3BlKQpAQCAtMTkzNSw3ICsxOTI4LDYgQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIEluc3RydWN0aW9uKiB2UEMgPSBjb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Ci0gICAgUHJvZmlsZXIqKiBlbmFibGVkUHJvZmls
ZXJSZWZlcmVuY2UgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAgICAg
dW5zaWduZWQgdGlja0NvdW50ID0gZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIudGlja3NVbnRp
bE5leHRDaGVjaygpOwogICAgIEpTVmFsdWUgZnVuY3Rpb25SZXR1cm5WYWx1ZTsKIApAQCAtNTIy
Niw4ICs1MjE4LDggQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgKi8KICAgICAgICAg
aW50IGZ1bmN0aW9uID0gdlBDWzFdLnUub3BlcmFuZDsKIAotICAgICAgICBpZiAoKmVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSkKLSAgICAgICAgICAgICgqZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNl
KS0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnIoZnVuY3Rpb24pLmpzVmFsdWUo
KSk7CisgICAgICAgIGlmIChQcm9maWxlciogcHJvZmlsZXIgPSBnbG9iYWxEYXRhLmVuYWJsZWRQ
cm9maWxlcigpKQorICAgICAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwg
Y2FsbEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1ZhbHVlKCkpOwogCiAgICAgICAgIHZQQyArPSBPUENP
REVfTEVOR1RIKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICAgICAgTkVYVF9JTlNUUlVDVElP
TigpOwpAQCAtNTI0MCw4ICs1MjMyLDggQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAg
Ki8KICAgICAgICAgaW50IGZ1bmN0aW9uID0gdlBDWzFdLnUub3BlcmFuZDsKIAotICAgICAgICBp
ZiAoKmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkKLSAgICAgICAgICAgICgqZW5hYmxlZFByb2Zp
bGVyUmVmZXJlbmNlKS0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGNhbGxGcmFtZS0+cihmdW5jdGlv
bikuanNWYWx1ZSgpKTsKKyAgICAgICAgaWYgKFByb2ZpbGVyKiBwcm9maWxlciA9IGdsb2JhbERh
dGEuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShj
YWxsRnJhbWUsIGNhbGxGcmFtZS0+cihmdW5jdGlvbikuanNWYWx1ZSgpKTsKIAogICAgICAgICB2
UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICAgICAgTkVYVF9J
TlNUUlVDVElPTigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgJKHJldmlz
aW9uIDExOTQyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8v
IEV4ZWN1dGUgdGhlIGNvZGUhCiAgICAgICAgIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGUoUmVnaXN0
ZXJGaWxlKiByZWdpc3RlckZpbGUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGN0aVRyYW1wb2xpbmUobV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCksIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCAwLCBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVy
UmVmZXJlbmNlKCksIGdsb2JhbERhdGEpKTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGN0aVRyYW1wb2xpbmUobV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCksIHJlZ2lzdGVyRmlsZSwgY2FsbEZyYW1lLCAwLCAwLCBnbG9iYWxEYXRhKSk7CiAgICAg
ICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID8ganNOdWxsKCkgOiByZXN1bHQ7
CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcAkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTkwLDI0ICsxNTkw
LDE2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9jb252ZXJ0X3RoaXMoSW5zdHIKIAogdm9pZCBK
SVQ6OmVtaXRfb3BfcHJvZmlsZV93aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIHsKLSAgICBwZWVrKHJlZ1QyLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwg
ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKSAvIHNpemVvZih2b2lkKikpOwotICAgIEp1bXAgbm9Q
cm9maWxlciA9IGJyYW5jaFRlc3RQdHIoWmVybywgQWRkcmVzcyhyZWdUMikpOwotCiAgICAgSklU
U3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAg
ICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgbm9Qcm9maWxlci5saW5rKHRoaXMpOwogfQogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiB7Ci0gICAgcGVlayhyZWdUMiwgT0JKRUNUX09GRlNFVE9GKEpJVFN0YWNrRnJhbWUs
IGVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSkgLyBzaXplb2Yodm9pZCopKTsKLSAgICBKdW1wIG5v
UHJvZmlsZXIgPSBicmFuY2hUZXN0UHRyKFplcm8sIEFkZHJlc3MocmVnVDIpKTsKLQogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAg
ICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgbm9Qcm9maWxlci5saW5rKHRoaXMpOwogfQogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9nZXRfYXJndW1lbnRzX2xlbmd0aChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CShyZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjkwLDI1ICsxMjkwLDE2IEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9jcmVhdGVfdGhpcyhJbnN0cnUKIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmls
ZV93aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBwZWVr
KHJlZ1QxLCBPQkpFQ1RfT0ZGU0VUT0YoSklUU3RhY2tGcmFtZSwgZW5hYmxlZFByb2ZpbGVyUmVm
ZXJlbmNlKSAvIHNpemVvZih2b2lkKikpOwotICAgIEp1bXAgbm9Qcm9maWxlciA9IGJyYW5jaFRl
c3RQdHIoWmVybywgQWRkcmVzcyhyZWdUMSkpOwotCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwo
dGhpcywgY3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAgc3R1YkNhbGwu
Y2FsbCgpOwotICAgIG5vUHJvZmlsZXIubGluayh0aGlzKTsKLQogfQogCiB2b2lkIEpJVDo6ZW1p
dF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
Ci0gICAgcGVlayhyZWdUMSwgT0JKRUNUX09GRlNFVE9GKEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSkgLyBzaXplb2Yodm9pZCopKTsKLSAgICBKdW1wIG5vUHJvZmlsZXIg
PSBicmFuY2hUZXN0UHRyKFplcm8sIEFkZHJlc3MocmVnVDEpKTsKLQogICAgIEpJVFN0dWJDYWxs
IHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAg
c3R1YkNhbGwuY2FsbCgpOwotICAgIG5vUHJvZmlsZXIubGluayh0aGlzKTsKIH0KIAogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTE5NDI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwNSw3ICsyMDUsNyBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6
IiAiCiAjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICAgICAgIDB4NjAKICNkZWZp
bmUgQ0FMTEZSQU1FX09GRlNFVCAgICAgICAgICAgICAgICAgMHg2NAogI2RlZmluZSBFWENFUFRJ
T05fT0ZGU0VUICAgICAgICAgICAgICAgICAweDY0Ci0jZGVmaW5lIEVOQUJMRV9QUk9GSUxFUl9S
RUZFUkVOQ0VfT0ZGU0VUIDB4NjgKKyNkZWZpbmUgRklSU1RfU1RBQ0tfQVJHVU1FTlQgICAgICAg
ICAgICAgMHg2OAogCiAjZWxpZiAoQ09NUElMRVIoR0NDKSB8fCBDT01QSUxFUihNU1ZDKSB8fCBD
T01QSUxFUihSVkNUKSkgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkKIApAQCAtMjI1LDcgKzIyNSw3
IEBAIENPTVBJTEVfQVNTRVJUKG9mZnNldG9mKHN0cnVjdCBKSVRTdGFja0YKIAogZXh0ZXJuICJD
IiB7CiAKLSAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9saW5l
KHZvaWQqIGNvZGUsIFJlZ2lzdGVyRmlsZSosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSov
LCBQcm9maWxlcioqLCBKU0dsb2JhbERhdGEqKQorICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29k
ZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCogY29kZSwgUmVnaXN0ZXJGaWxlKiwgQ2FsbEZy
YW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIHZvaWQqIC8qdW51c2VkMiovLCBKU0dsb2JhbERhdGEq
KQogICAgIHsKICAgICAgICAgX19hc20gewogICAgICAgICAgICAgcHVzaCBlYnA7CkBAIC0yODQs
MTIgKzI4NCwxMSBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQg
ICAgICAgIDg0CiAjZGVmaW5lIENBTExGUkFNRV9PRkZTRVQgICAgICAgICAgICA4OAogI2RlZmlu
ZSBFWENFUFRJT05fT0ZGU0VUICAgICAgICAgICAgOTIKLSNkZWZpbmUgRU5BQkxFX1BST0ZJTEVS
X1JFRkVSRU5DRV9PRkZTRVQgOTYKICNkZWZpbmUgR0xPQkFMX0RBVEFfT0ZGU0VUICAgICAgICAg
MTAwCiAjZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAgICAgIDEwNAogI2VsaWYgQ1BVKFNI
NCkKICNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAjbmFtZQotLyogY29kZSAocjQpLCBSZWdp
c3RlckZpbGUqIChyNSksIENhbGxGcmFtZSogKHI2KSwgSlNWYWx1ZSogZXhjZXB0aW9uIChyNyks
IFByb2ZpbGVyKiooc3ApLCBKU0dsb2JhbERhdGEgKHNwKSovCisvKiBjb2RlIChyNCksIFJlZ2lz
dGVyRmlsZSogKHI1KSwgQ2FsbEZyYW1lKiAocjYpLCB2b2lkKiB1bnVzZWQxIChyNyksIHZvaWQq
IHVudXNlZDIoc3ApLCBKU0dsb2JhbERhdGEgKHNwKSovCiAKIGFzbSB2b2xhdGlsZSAoCiAiLnRl
eHRcbiIKQEAgLTQ2NSw5ICs0NjQsNyBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6
IiAiXG4iCiAgICAgInN3ICAgICQ1LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFJFR0lTVEVSX0ZJTEVf
T0ZGU0VUKSAiKCQyOSkgIyBzdG9yZSByZWdpc3RlckZpbGUgdG8gY3VycmVudCBzdGFjayIgIlxu
IgogICAgICJzdyAgICAkNiwiIFNUUklOR0laRV9WQUxVRV9PRihDQUxMRlJBTUVfT0ZGU0VUKSAi
KCQyOSkgICAgICMgc3RvcmUgY2FsbEZyYW1lIHRvIGN1cmVudCBzdGFjayIgIlxuIgogICAgICJz
dyAgICAkNywiIFNUUklOR0laRV9WQUxVRV9PRihFWENFUFRJT05fT0ZGU0VUKSAiKCQyOSkgICAg
ICMgc3RvcmUgZXhjZXB0aW9uIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKLSAgICAibHcgICAgJDgs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIICsgMTYpICIoJDI5KSAgICAjIGxvYWQg
ZW5hYmxlUHJvZmlsZXJSZWZlcmVuY2UgZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgogICAgICJs
dyAgICAkOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEggKyAyMCkgIigkMjkpICAg
ICMgbG9hZCBnbG9iYWxEYXRhIGZyb20gcHJldmlvdXMgc3RhY2siICJcbiIKLSAgICAic3cgICAg
JDgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQp
ICIoJDI5KSAgICMgc3RvcmUgZW5hYmxlUHJvZmlsZXJSZWZlcmVuY2UgdG8gY3VycmVudCBzdGFj
ayIgIlxuIgogICAgICJqYWxyICAkMjUiICJcbiIKICAgICAic3cgICAgJDksIiBTVFJJTkdJWkVf
VkFMVUVfT0YoR0xPQkFMX0RBVEFfT0ZGU0VUKSAiKCQyOSkgICAjIHN0b3JlIGdsb2JhbERhdGEg
dG8gY3VycmVudCBzdGFjayIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCkBAIC01NDMsNyArNTQwLDcgQEAg
SElERV9TWU1CT0woY3RpVHJhbXBvbGluZSkgIlxuIgogIi50aHVtYiIgIlxuIgogIi50aHVtYl9m
dW5jICIgVEhVTUJfRlVOQ19QQVJBTShjdGlUcmFtcG9saW5lKSAiXG4iCiBTWU1CT0xfU1RSSU5H
KGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCi0gICAgInN1YiBzcCwgc3AsICMiIFNUUklOR0laRV9W
QUxVRV9PRihFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVCkgIlxuIgorICAgICJzdWIg
c3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRklSU1RfU1RBQ0tfQVJHVU1FTlQpICJcbiIK
ICAgICAic3RyIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJzdHIgcjQsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9SNF9PRkZTRVQpICJdIiAiXG4iCiAgICAgInN0ciByNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I1X09GRlNFVCkgIl0iICJcbiIKQEAg
LTU2OCw3ICs1NjUsNyBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAg
ICAgImxkciByNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I1X09GRlNF
VCkgIl0iICJcbiIKICAgICAibGRyIHI0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUjRfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJsZHIgbHIsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICJdIiAiXG4iCi0gICAg
ImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihFTkFCTEVfUFJPRklMRVJfUkVGRVJF
TkNFX09GRlNFVCkgIlxuIgorICAgICJhZGQgc3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
RklSU1RfU1RBQ0tfQVJHVU1FTlQpICJcbiIKICAgICAiYnggbHIiICJcbiIKICIuYWxpZ24gMiIg
IlxuIgogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgpAQCAt
NTk3LDcgKzU5NCw3IEBAIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAK
ICAgICAibGRyIHI1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjVfT0ZG
U0VUKSAiXSIgIlxuIgogICAgICJsZHIgcjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SNF9PRkZTRVQpICJdIiAiXG4iCiAgICAgImxkciBsciwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAiYWRkIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEVOQUJMRV9QUk9GSUxFUl9SRUZF
UkVOQ0VfT0ZGU0VUKSAiXG4iCisgICAgImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihGSVJTVF9TVEFDS19BUkdVTUVOVCkgIlxuIgogICAgICJieCBsciIgIlxuIgogKTsKIApAQCAt
NjE4LDcgKzYxNSw3IEBAIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICIK
ICAgICAibGRyIHI1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjVfT0ZG
U0VUKSAiXSIgIlxuIgogICAgICJsZHIgcjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SNF9PRkZTRVQpICJdIiAiXG4iCiAgICAgImxkciBsciwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAiYWRkIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEVOQUJMRV9QUk9GSUxFUl9SRUZF
UkVOQ0VfT0ZGU0VUKSAiXG4iCisgICAgImFkZCBzcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihGSVJTVF9TVEFDS19BUkdVTUVOVCkgIlxuIgogICAgICJieCBsciIgIlxuIgogKTsKIApAQCAt
NjYxLDEwICs2NTgsMTAgQEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIg
IgogCiAjZWxpZiBDT01QSUxFUihSVkNUKSAmJiBDUFUoQVJNX1RIVU1CMikKIAotX19hc20gRW5j
b2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lkKiwgUmVnaXN0ZXJGaWxlKiwgQ2FsbEZyYW1l
KiwgSlNWYWx1ZSosIFByb2ZpbGVyKiosIEpTR2xvYmFsRGF0YSopCitfX2FzbSBFbmNvZGVkSlNW
YWx1ZSBjdGlUcmFtcG9saW5lKHZvaWQqLCBSZWdpc3RlckZpbGUqLCBDYWxsRnJhbWUqLCB2b2lk
KiAvKnVudXNlZDEqLywgdm9pZCogLyp1bnVzZWQyKi8sIEpTR2xvYmFsRGF0YSopCiB7CiAgICAg
UFJFU0VSVkU4Ci0gICAgc3ViIHNwLCBzcCwgIyBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09G
RlNFVAorICAgIHN1YiBzcCwgc3AsICMgRklSU1RfU1RBQ0tfQVJHVU1FTlQKICAgICBzdHIgbHIs
IFtzcCwgIyBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIF0KICAgICBzdHIgcjQsIFtz
cCwgIyBQUkVTRVJWRURfUjRfT0ZGU0VUIF0KICAgICBzdHIgcjUsIFtzcCwgIyBQUkVTRVJWRURf
UjVfT0ZGU0VUIF0KQEAgLTY4OSw3ICs2ODYsNyBAQCBfX2FzbSBFbmNvZGVkSlNWYWx1ZSBjdGlU
cmFtcG9saW5lKHZvaWQqCiAgICAgbGRyIHI1LCBbc3AsICMgUFJFU0VSVkVEX1I1X09GRlNFVCBd
CiAgICAgbGRyIHI0LCBbc3AsICMgUFJFU0VSVkVEX1I0X09GRlNFVCBdCiAgICAgbGRyIGxyLCBb
c3AsICMgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCBdCi0gICAgYWRkIHNwLCBzcCwg
IyBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVAorICAgIGFkZCBzcCwgc3AsICMgRklS
U1RfU1RBQ0tfQVJHVU1FTlQKICAgICBieCBscgogfQogCkBAIC03MDgsNyArNzA1LDcgQEAgX19h
c20gdm9pZCBjdGlWTVRocm93VHJhbXBvbGluZSgpCiAgICAgbGRyIHI1LCBbc3AsICMgUFJFU0VS
VkVEX1I1X09GRlNFVCBdCiAgICAgbGRyIHI0LCBbc3AsICMgUFJFU0VSVkVEX1I0X09GRlNFVCBd
CiAgICAgbGRyIGxyLCBbc3AsICMgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCBdCi0g
ICAgYWRkIHNwLCBzcCwgIyBFTkFCTEVfUFJPRklMRVJfUkVGRVJFTkNFX09GRlNFVAorICAgIGFk
ZCBzcCwgc3AsICMgRklSU1RfU1RBQ0tfQVJHVU1FTlQKICAgICBieCBscgogfQogCkBAIC03MjUs
MTMgKzcyMiwxMyBAQCBfX2FzbSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQogICAgIGxkciBy
NSwgW3NwLCAjIFBSRVNFUlZFRF9SNV9PRkZTRVQgXQogICAgIGxkciByNCwgW3NwLCAjIFBSRVNF
UlZFRF9SNF9PRkZTRVQgXQogICAgIGxkciBsciwgW3NwLCAjIFBSRVNFUlZFRF9SRVRVUk5fQURE
UkVTU19PRkZTRVQgXQotICAgIGFkZCBzcCwgc3AsICMgRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5D
RV9PRkZTRVQKKyAgICBhZGQgc3AsIHNwLCAjIEZJUlNUX1NUQUNLX0FSR1VNRU5UCiAgICAgYngg
bHIKIH0KIAogI2VsaWYgQ09NUElMRVIoUlZDVCkgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkKIAot
X19hc20gRW5jb2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lkKiwgUmVnaXN0ZXJGaWxlKiwg
Q2FsbEZyYW1lKiwgdm9pZCogLyp1bnVzZWQxKi8sIFByb2ZpbGVyKiosIEpTR2xvYmFsRGF0YSop
CitfX2FzbSBFbmNvZGVkSlNWYWx1ZSBjdGlUcmFtcG9saW5lKHZvaWQqLCBSZWdpc3RlckZpbGUq
LCBDYWxsRnJhbWUqLCB2b2lkKiAvKnVudXNlZDEqLywgdm9pZCogLyp1bnVzZWQyKi8sIEpTR2xv
YmFsRGF0YSopCiB7CiAgICAgQVJNCiAgICAgc3RtZGIgc3AhLCB7cjEtcjN9CkBAIC04MDAsNyAr
Nzk3LDcgQEAgSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYQogICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHJlZ2lzdGVyRmlsZSkg
PT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIGNhbGxGcmFtZSkgPT0gQ0FMTEZSQU1FX09GRlNFVCk7CiAgICAg
Ly8gVGhlIGZpZnRoIGFyZ3VtZW50IGlzIHRoZSBmaXJzdCBpdGVtIGFscmVhZHkgb24gdGhlIHN0
YWNrLgotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGVu
YWJsZWRQcm9maWxlclJlZmVyZW5jZSkgPT0gRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZT
RVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVu
dXNlZDIpID09IEZJUlNUX1NUQUNLX0FSR1VNRU5UKTsKIAogICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktf
UkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKIApAQCAtODIwLDcgKzgxNyw2IEBAIEpJVFRodW5rczo6
SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmEKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCByZWdpc3RlckZpbGUpID09IFJFR0lTVEVSX0ZJTEVfT0ZG
U0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBj
YWxsRnJhbWUpID09IENBTExGUkFNRV9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHVudXNlZDEpID09IEVYQ0VQVElPTl9PRkZTRVQpOwot
ICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSkgPT0gRU5BQkxFX1BST0ZJTEVSX1JFRkVSRU5DRV9PRkZTRVQpOwog
ICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGdsb2JhbERh
dGEpID09IEdMT0JBTF9EQVRBX09GRlNFVCk7CiAKICNlbmRpZgpAQCAtMjM1NSwxNiArMjM1MSwx
NiBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wcm9maWxlX3dpCiB7CiAgICAgU1RV
Ql9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwogCi0gICAgQVNTRVJUKCpzdGFja0ZyYW1l
LmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSk7Ci0gICAgKCpzdGFja0ZyYW1lLmVuYWJsZWRQcm9m
aWxlclJlZmVyZW5jZSktPndpbGxFeGVjdXRlKHN0YWNrRnJhbWUuY2FsbEZyYW1lLCBzdGFja0Zy
YW1lLmFyZ3NbMF0uanNWYWx1ZSgpKTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gc3Rh
Y2tGcmFtZS5nbG9iYWxEYXRhLT5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXIt
PndpbGxFeGVjdXRlKHN0YWNrRnJhbWUuY2FsbEZyYW1lLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNW
YWx1ZSgpKTsKIH0KIAogREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHJvZmlsZV9kaWRf
Y2FsbCkKIHsKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CiAKLSAgICBB
U1NFUlQoKnN0YWNrRnJhbWUuZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKTsKLSAgICAoKnN0YWNr
RnJhbWUuZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKS0+ZGlkRXhlY3V0ZShzdGFja0ZyYW1lLmNh
bGxGcmFtZSwgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSk7CisgICAgaWYgKFByb2ZpbGVy
KiBwcm9maWxlciA9IHN0YWNrRnJhbWUuZ2xvYmFsRGF0YS0+ZW5hYmxlZFByb2ZpbGVyKCkpCisg
ICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKHN0YWNrRnJhbWUuY2FsbEZyYW1lLCBzdGFja0Zy
YW1lLmFyZ3NbMF0uanNWYWx1ZSgpKTsKIH0KIAogREVGSU5FX1NUVUJfRlVOQ1RJT04oSlNPYmpl
Y3QqLCBvcF9uZXdfYXJyYXkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
CShyZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpbGU7CiAgICAgICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lOwogICAgICAgICB2b2lkKiB1bnVzZWQxOwotICAgICAgICBQcm9maWxlcioqIGVuYWJs
ZWRQcm9maWxlclJlZmVyZW5jZTsKKyAgICAgICAgdm9pZCogdW51c2VkMjsKICAgICAgICAgSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhOwogCiAgICAgICAgIHZvaWQqIHNhdmVkUkJYOwpAQCAtMTQw
LDcgKzE0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlckZpbGUqIHJlZ2lz
dGVyRmlsZTsKICAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CiAgICAgICAgIHZvaWQqIHVu
dXNlZDE7Ci0gICAgICAgIFByb2ZpbGVyKiogZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlOworICAg
ICAgICB2b2lkKiB1bnVzZWQyOwogICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAg
ICAgICAgIAogICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVz
IGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KQEAg
LTE3MSw3ICsxNzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWU7CiAKICAgICAgICAgLy8gVGhlc2UgYXJndW1lbnRzIHBhc3NlZCBvbiB0aGUgc3RhY2su
Ci0gICAgICAgIFByb2ZpbGVyKiogZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlOworICAgICAgICB2
b2lkKiB1bnVzZWQxOwogICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAgICAgICAg
IAogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJu
ICZ0aHVua1JldHVybkFkZHJlc3M7IH0KQEAgLTE5OSw3ICsxOTksNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCogdW51c2VkMTsKIAogICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMg
cGFzc2VkIG9uIHRoZSBzdGFjay4KLSAgICAgICAgUHJvZmlsZXIqKiBlbmFibGVkUHJvZmlsZXJS
ZWZlcmVuY2U7CisgICAgICAgIHZvaWQqIHVudXNlZDI7CiAgICAgICAgIEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YTsKIAogICAgICAgICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQg
cHVzaGVzIGl0cyByZXR1cm4gYWRkcmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFj
ay4KQEAgLTIzMSw3ICsyMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCogdW51
c2VkMTsKIAogICAgICAgICAvLyBUaGVzZSBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBzdGFjay4K
LSAgICAgICAgUHJvZmlsZXIqKiBlbmFibGVkUHJvZmlsZXJSZWZlcmVuY2U7CisgICAgICAgIHZv
aWQqIHVudXNlZDI7CiAgICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKIAogICAgICAg
ICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5BZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1Jl
dHVybkFkZHJlc3M7IH0KQEAgLTI1Miw3ICsyNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpbGU7CiAgICAgICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lOwogICAgICAgICBKU1ZhbHVlKiBleGNlcHRpb247Ci0gICAgICAgIFByb2ZpbGVyKiogZW5h
YmxlZFByb2ZpbGVyUmVmZXJlbmNlOworICAgICAgICB2b2lkKiB1bnVzZWQxOwogICAgICAgICBK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGE7CiAKICAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciogcmV0
dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiAmdGh1bmtSZXR1cm5BZGRyZXNzOyB9CkBAIC0yODIs
NyArMjgyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBleHRlcm4gIkMiIHZvaWQgY3RpVk1U
aHJvd1RyYW1wb2xpbmUoKTsKICAgICBleHRlcm4gIkMiIHZvaWQgY3RpT3BUaHJvd05vdENhdWdo
dCgpOwotICAgIGV4dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgY3RpVHJhbXBvbGluZSh2b2lkKiBj
b2RlLCBSZWdpc3RlckZpbGUqLCBDYWxsRnJhbWUqLCB2b2lkKiAvKnVudXNlZDEqLywgUHJvZmls
ZXIqKiwgSlNHbG9iYWxEYXRhKik7CisgICAgZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBjdGlU
cmFtcG9saW5lKHZvaWQqIGNvZGUsIFJlZ2lzdGVyRmlsZSosIENhbGxGcmFtZSosIHZvaWQqIC8q
dW51c2VkMSovLCB2b2lkKiAvKnVudXNlZDIqLywgSlNHbG9iYWxEYXRhKik7CiAjaWYgRU5BQkxF
KERGR19KSVQpCiAgICAgZXh0ZXJuICJDIiB2b2lkIGN0aVRyYW1wb2xpbmVFbmQoKTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShy
ZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQ2LDE0ICsxNTQ2LDE2IEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWJ1ZykKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9wcm9maWxlX3dpbGxfY2FsbCkKIHsKICAgICBMTElOVF9CRUdJTigpOwotICAgICgqUHJv
ZmlsZXI6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZSgpKS0+d2lsbEV4ZWN1dGUoZXhlYywgTExJ
TlRfT1AoMSkuanNWYWx1ZSgpKTsKKyAgICBpZiAoUHJvZmlsZXIqIHByb2ZpbGVyID0gZ2xvYmFs
RGF0YS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGV4
ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7CiAgICAgTExJTlRfRU5EKCk7CiB9CiAKIExMSU5U
X1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKQogewogICAgIExMSU5U
X0JFR0lOKCk7Ci0gICAgKCpQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCkpLT5k
aWRFeGVjdXRlKGV4ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7CisgICAgaWYgKFByb2ZpbGVy
KiBwcm9maWxlciA9IGdsb2JhbERhdGEuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgIHByb2Zp
bGVyLT5kaWRFeGVjdXRlKGV4ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7CiAgICAgTExJTlRf
RU5EKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDExOTQyNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBjb3B5KQpA
QCAtNzI3LDE5ICs3MjcsMTMgQEAgX2xsaW50X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcjoKIAog
X2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBs
b2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3BdLCB0MAotICAg
IGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQogICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQotLm9wUHJvZmlsZVdpbGxDYWxsRG9uZToK
ICAgICBkaXNwYXRjaCgyKQogCiAKIF9sbGludF9vcF9wcm9maWxlX2RpZF9jYWxsOgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJS
ZWZlcmVuY2Vbc3BdLCB0MAotICAgIGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQog
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCi0ub3BQ
cm9maWxlRGlkQ2FsbERvbmU6CiAgICAgZGlzcGF0Y2goMikKIAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlci5jcHAJKHJldmlzaW9uIDExOTQyNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDYgQEAgc3RhdGljIHVuc2lnbmVkIFByb2ZpbGVzVUlEID0gMDsKIHN0
YXRpYyBDYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5jdGlvbkltcChF
eGVjU3RhdGUqLCBKU09iamVjdCosIGNvbnN0IFVTdHJpbmcmIGRlZmF1bHRTb3VyY2VVUkwsIGlu
dCBkZWZhdWx0TGluZU51bWJlcik7CiAKIFByb2ZpbGVyKiBQcm9maWxlcjo6c19zaGFyZWRQcm9m
aWxlciA9IDA7Ci1Qcm9maWxlciogUHJvZmlsZXI6OnNfc2hhcmVkRW5hYmxlZFByb2ZpbGVyUmVm
ZXJlbmNlID0gMDsKIAogUHJvZmlsZXIqIFByb2ZpbGVyOjpwcm9maWxlcigpCiB7CkBAIC03NCw3
ICs3Myw3IEBAIHZvaWQgUHJvZmlsZXI6OnN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0ZSoKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzX3NoYXJlZEVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZSA9IHRoaXM7CisgICAgZXhlYy0+Z2xvYmFsRGF0YSgpLm1fZW5hYmxlZFByb2ZpbGVyID0g
dGhpczsKICAgICBSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4gcHJvZmlsZUdlbmVyYXRvciA9IFBy
b2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShleGVjLCB0aXRsZSwgKytQcm9maWxlc1VJRCk7CiAgICAg
bV9jdXJyZW50UHJvZmlsZXMuYXBwZW5kKHByb2ZpbGVHZW5lcmF0b3IpOwogfQpAQCAtOTAsNyAr
ODksNyBAQCBQYXNzUmVmUHRyPFByb2ZpbGU+IFByb2ZpbGVyOjpzdG9wUHJvZmlsCiAKICAgICAg
ICAgICAgIG1fY3VycmVudFByb2ZpbGVzLnJlbW92ZShpKTsKICAgICAgICAgICAgIGlmICghbV9j
dXJyZW50UHJvZmlsZXMuc2l6ZSgpKQotICAgICAgICAgICAgICAgIHNfc2hhcmVkRW5hYmxlZFBy
b2ZpbGVyUmVmZXJlbmNlID0gMDsKKyAgICAgICAgICAgICAgICBleGVjLT5nbG9iYWxEYXRhKCku
bV9lbmFibGVkUHJvZmlsZXIgPSAwOwogICAgICAgICAgICAgCiAgICAgICAgICAgICByZXR1cm4g
cmV0dXJuUHJvZmlsZTsKICAgICAgICAgfQpAQCAtMTA3LDcgKzEwNiw3IEBAIHZvaWQgUHJvZmls
ZXI6OnN0b3BQcm9maWxpbmcoSlNHbG9iYWxPYmoKICAgICAgICAgICAgIHByb2ZpbGVHZW5lcmF0
b3ItPnN0b3BQcm9maWxpbmcoKTsKICAgICAgICAgICAgIG1fY3VycmVudFByb2ZpbGVzLnJlbW92
ZShpKTsKICAgICAgICAgICAgIGlmICghbV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgpKQotICAgICAg
ICAgICAgICAgIHNfc2hhcmVkRW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlID0gMDsKKyAgICAgICAg
ICAgICAgICBvcmlnaW4tPmdsb2JhbERhdGEoKS5tX2VuYWJsZWRQcm9maWxlciA9IDA7CiAgICAg
ICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXIuaAkocmV2aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDExICs0OCw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIGNsYXNzIFByb2ZpbGVyIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUHJvZmlsZXIqKiBlbmFibGVkUHJv
ZmlsZXJSZWZlcmVuY2UoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gJnNfc2hhcmVk
RW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlOwotICAgICAgICB9Ci0KICAgICAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIFByb2ZpbGVyKiBwcm9maWxlcigpOyAKICAgICAgICAgc3RhdGljIENh
bGxJZGVudGlmaWVyIGNyZWF0ZUNhbGxJZGVudGlmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcik7CiAKQEAgLTcyLDcg
KzY3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgVmVjdG9yPFJl
ZlB0cjxQcm9maWxlR2VuZXJhdG9yPiA+IG1fY3VycmVudFByb2ZpbGVzOwogICAgICAgICBzdGF0
aWMgUHJvZmlsZXIqIHNfc2hhcmVkUHJvZmlsZXI7Ci0gICAgICAgIHN0YXRpYyBQcm9maWxlciog
c19zaGFyZWRFbmFibGVkUHJvZmlsZXJSZWZlcmVuY2U7CiAgICAgfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
RGF0YS5jcHAJKHJldmlzaW9uIDExOTQyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCBK
U0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9iYWxEYXRhVHlwCiAgICAgLCBkeW5hbWljR2xv
YmFsT2JqZWN0KDApCiAgICAgLCBjYWNoZWRVVENPZmZzZXQoc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKSkKICAgICAsIG1heFJlZW50cnlEZXB0aCh0aHJlYWRTdGFja1R5
cGUgPT0gVGhyZWFkU3RhY2tUeXBlU21hbGwgPyBNYXhTbWFsbFRocmVhZFJlZW50cnlEZXB0aCA6
IE1heExhcmdlVGhyZWFkUmVlbnRyeURlcHRoKQorICAgICwgbV9lbmFibGVkUHJvZmlsZXIoMCkK
ICAgICAsIG1fcmVnRXhwQ2FjaGUobmV3IFJlZ0V4cENhY2hlKHRoaXMpKQogI2lmIEVOQUJMRShS
RUdFWFBfVFJBQ0lORykKICAgICAsIG1fcnRUcmFjZUxpc3QobmV3IFJUVHJhY2VMaXN0KCkpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2
aXNpb24gMTE5NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxE
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFi
bGU7CiAgICAgY2xhc3MgUGFyc2VyQXJlbmE7CisgICAgY2xhc3MgUHJvZmlsZXI7CiAgICAgY2xh
c3MgUmVnRXhwQ2FjaGU7CiAgICAgY2xhc3MgU3RyaW5naWZpZXI7CiAgICAgY2xhc3MgU3RydWN0
dXJlOwpAQCAtMjU1LDYgKzI1NiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJl
dHVybiBtX2luRGVmaW5lT3duUHJvcGVydHk7CiAgICAgICAgIH0KIAorICAgICAgICBQcm9maWxl
ciogZW5hYmxlZFByb2ZpbGVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fZW5h
YmxlZFByb2ZpbGVyOworICAgICAgICB9CisKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAgICAg
ICBFeGVjdXRhYmxlQWxsb2NhdG9yIGV4ZWN1dGFibGVBbGxvY2F0b3I7CiAjZW5kaWYKQEAgLTM0
Niw2ICszNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBpbnQgbWF4UmVlbnRyeURl
cHRoOwogCisgICAgICAgIFByb2ZpbGVyKiBtX2VuYWJsZWRQcm9maWxlcjsKICAgICAgICAgUmVn
RXhwQ2FjaGUqIG1fcmVnRXhwQ2FjaGU7CiAgICAgICAgIEJ1bXBQb2ludGVyQWxsb2NhdG9yIG1f
cmVnRXhwQWxsb2NhdG9yOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMTk0MjUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExOSwxMCArMTE5LDggQEAgSlNHbG9iYWxPYmplY3Q6On5KU0dsb2JhbE9iamVjdCgpCiAgICAg
aWYgKG1fZGVidWdnZXIpCiAgICAgICAgIG1fZGVidWdnZXItPmRldGFjaCh0aGlzKTsKIAotICAg
IFByb2ZpbGVyKiogcHJvZmlsZXIgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNl
KCk7Ci0gICAgaWYgKFVOTElLRUxZKCpwcm9maWxlciAhPSAwKSkgewotICAgICAgICAoKnByb2Zp
bGVyKS0+c3RvcFByb2ZpbGluZyh0aGlzKTsKLSAgICB9CisgICAgaWYgKFByb2ZpbGVyKiBwcm9m
aWxlciA9IGdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKKyAgICAgICAgcHJvZmlsZXIt
PnN0b3BQcm9maWxpbmcodGhpcyk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmRlc3Ryb3ko
SlNDZWxsKiBjZWxsKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>