<?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>164021</bug_id>
          
          <creation_ts>2016-10-26 10:30:02 -0700</creation_ts>
          <short_desc>[WebIDL] Move more string conversions over to JSDOMConvert</short_desc>
          <delta_ts>2016-10-26 14:08:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1244830</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-26 10:30:02 -0700</bug_when>
    <thetext>[WebIDL] Move more string conversions over to JSDOMConvert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244847</commentid>
    <comment_count>1</comment_count>
      <attachid>292947</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-26 11:17:10 -0700</bug_when>
    <thetext>Created attachment 292947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244893</commentid>
    <comment_count>2</comment_count>
      <attachid>292947</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-26 14:05:33 -0700</bug_when>
    <thetext>Comment on attachment 292947
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMConvert.h:179
&gt; +    static ReturnType convert(JSC::ExecState&amp; state, JSC::JSValue value, IntegerConversionConfiguration configuration)

Kinda weird that these are all smushed together with no newlines between them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244894</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-26 14:08:26 -0700</bug_when>
    <thetext>Committed r207912: &lt;http://trac.webkit.org/changeset/207912&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292947</attachid>
            <date>2016-10-26 11:17:10 -0700</date>
            <delta_ts>2016-10-26 14:05:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164021-20161026111323.patch</filename>
            <type>text/plain</type>
            <size>46922</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk5IEBACisyMDE2LTEwLTI2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBtb3JlIHN0cmlu
ZyBjb252ZXJzaW9ucyBvdmVyIHRvIEpTRE9NQ29udmVydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFy
YXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9u
OjpwdXREZWxlZ2F0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6Om9wZW4pOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OnNob3dNb2RhbERpYWxvZyk6CisgICAgICAgIChXZWJDb3JlOjpo
YW5kbGVQb3N0TWVzc2FnZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxl
bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxDYW52YXNFbGVtZW50Ojp0
b0RhdGFVUkwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0hpc3Rvcnk6OnB1c2hTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0hpc3Rvcnk6OnJlcGxhY2VTdGF0ZSk6CisgICAgICAgIFN3aXRjaCB0byBjb252ZXJ0IGZ1
bmN0aW9ucy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXBwbGVQYXlTZXNzaW9uQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBw
aW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQXBwbGVQYXlTZXNzaW9u
Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUFlc0tleUdlblBhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSc2FLZXlHZW5Q
YXJhbXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Z2V0Q1NTQ2FudmFzQ29udGV4dCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6c2V0RGVjaXNpb25Q
b2ludCk6CisgICAgICAgIChXZWJDb3JlOjp0b0RlY2lzaW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlRmls
dGVyOjphY2NlcHROb2RlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dG9TbWFsbGVySW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRv
U21hbGxlclVJbnQpOgorICAgICAgICAoV2ViQ29yZTo6dG9JbnQ4RW5mb3JjZVJhbmdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVUludDhFbmZvcmNlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
dG9JbnQ4Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6dG9VSW50OENsYW1wKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvSW50OCk6CisgICAgICAgIChXZWJDb3JlOjp0b1VJbnQ4KToKKyAgICAgICAg
KFdlYkNvcmU6OnRvSW50MTZFbmZvcmNlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6dG9VSW50
MTZFbmZvcmNlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6dG9JbnQxNkNsYW1wKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvVUludDE2Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6dG9JbnQxNik6
CisgICAgICAgIChXZWJDb3JlOjp0b1VJbnQxNik6CisgICAgICAgIFVzZSB1cGRhdGVkIEludGVn
ZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBuYW1pbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OnZh
bHVlVG9TdHJpbmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb1VTVlN0cmluZ1RyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb1VTVlN0cmluZ1dpdGhV
bmRlZmluZWRPck51bGxDaGVjayk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmg6CisgICAgICAgIFJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0Lmg6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
KToKKyAgICAgICAgQWRkIFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uLCB0byBtYXRjaCBJ
bnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24gd2hpY2ggbW92ZWQgaGVyZSwKKyAgICAgICAg
YW5kIG1ha2UgdGhlbSBib3RoIGVudW0gY2xhc3Nlcy4gUmVtb3ZlIFNGSU5BRSBiYXNlZCBvdmVy
bG9hZGluZyBvZiBjb252ZXJ0PD4sIHdoaWNoIGlzIG5vdAorICAgICAgICBuZWVkZWQgaWYgd2Ug
Z2V0IHJpZCBvZiB0aGUgZGVmYXVsdCBwYXJhbWV0ZXIsIHdoaWNoIHdlIGNhbiwgc2luY2UgdGhl
IHR3byBwYXJhbWV0ZXIgY29udmVydAorICAgICAgICByb3V0ZXMgdG8gdGhlIHJpZ2h0IHBsYWNl
LgorCisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMTnVsbGFibGU8VD4+Ojpjb252ZXJ0
KToKKyAgICAgICAgQWRkIG92ZXJsb2FkcyBjb252ZXJ0cyB0aGF0IHRha2UgYSBJbnRlZ2VyL1N0
cmluZyBjb25maWd1cmF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMQnl0
ZT46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETE9jdGV0Pjo6Y29u
dmVydCk6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMU2hvcnQ+Ojpjb252ZXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJRExVbnNpZ25lZFNob3J0Pjo6Y29udmVydCk6
CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMTG9uZz46OmNvbnZlcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udmVydGVyPElETFVuc2lnbmVkTG9uZz46OmNvbnZlcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udmVydGVyPElETExvbmdMb25nPjo6Y29udmVydCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb252ZXJ0ZXI8SURMVW5zaWduZWRMb25nTG9uZz46OmNvbnZlcnQpOgorICAgICAg
ICBVc2UgdXBkYXRlZCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24gbmFtaW5nLgorCisg
ICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMRE9NU3RyaW5nPjo6Y29udmVydCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMVVNWU3RyaW5nPjo6Y29udmVydCk6CisgICAgICAg
IEFkZCBhIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLCBzaW1pbGFyIHRvIHRoZSBvbmUgdXNlZCBm
b3IgaW50ZWdlcnMKKyAgICAgICAgdGhhdCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBzdHJpbmcg
Y29udmVyc2lvbnMgdG8gcmV0dXJuIGFuIGVtcHR5CisgICAgICAgIHN0cmluZyBmb3IgbnVsbC4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6Oml0ZXJhdG9yQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okl0ZXJhdG9yVHJhaXRzPjo6
YXNKUyk6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRGb3JFYWNoQXJndW1lbnRzKToKKyAgICAg
ICAgU2ltcGxpZnkgYSBiaXQgYnkgZXh0cmFjdGluZyB0aGUgU0ZJTkFFIGhlbHBlcnMgaW50byBh
IEVuYWJsZUlmTWFwIGFuZCBFbmFibGVJZlNldC4KKworICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0SW50ZWdlckNvbnZlcnNpb25Db25m
aWd1cmF0aW9uKToKKyAgICAgICAgKEdldFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uKToK
KyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZUlzSGFuZGxlZEJ5RE9NQ29udmVydCk6CisgICAgICAg
IChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY29udmVydGluZyBt
b3JlIHN0cmluZyB0eXBlcyBhbmQgcGFzc2luZyB0aGUgU3RyaW5nQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb24uCisKIDIwMTYtMTAtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIEVuYWJsZSBTRFBQcm9jZXNzb3IgZm9yIE1hYyBib3RzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FwcGxlUGF5U2Vzc2lvbkN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcHBsZVBheVNlc3Npb25DdXN0b20u
Y3BwCShyZXZpc2lvbiAyMDc5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fw
cGxlUGF5U2Vzc2lvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAg
SlNWYWx1ZSBKU0FwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcAogICAgIGlmIChVTkxJS0VM
WShzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAzKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRl
Y29kZSh0aHJvd1ZNRXJyb3IoJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoJnN0YXRlKSkpOwogCi0gICAgdWludDE2X3Qgc3RhdHVzID0gY29udmVydDxJRExVbnNp
Z25lZFNob3J0PihzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwor
ICAgIHVpbnQxNl90IHN0YXR1cyA9IGNvbnZlcnQ8SURMVW5zaWduZWRTaG9ydD4oc3RhdGUsIHN0
YXRlLmFyZ3VtZW50KDApLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAogICAgIERpY3Rp
b25hcnkgbmV3VG90YWwgPSB7ICZzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMSkgfTsKQEAgLTgxLDcg
KzgxLDcgQEAgSlNWYWx1ZSBKU0FwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcAogICAgIGlm
IChVTkxJS0VMWShzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZSh0aHJvd1ZNRXJyb3IoJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoJnN0YXRlKSkpOwogCi0gICAgdWludDE2X3Qgc3RhdHVzID0gY29udmVy
dDxJRExVbnNpZ25lZFNob3J0PihzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIE5vcm1hbENvbnZl
cnNpb24pOworICAgIHVpbnQxNl90IHN0YXR1cyA9IGNvbnZlcnQ8SURMVW5zaWduZWRTaG9ydD4o
c3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246
Ok5vcm1hbCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAog
ICAgIEFycmF5VmFsdWUgbmV3U2hpcHBpbmdNZXRob2RzIHsgJnN0YXRlLCBzdGF0ZS5hcmd1bWVu
dCgxKSB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xh
cmF0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCShyZXZpc2lvbiAyMDc5MDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMjYsNyArMzI2LDcgQEAgYm9vbCBKU0NTU1N0eWxlRGVjbGFy
YXRpb246OnB1dERlbGVnYXRlKAogICAgIGlmICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IHZhbHVlVG9T
dHJpbmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKHN0YXRlLCB2YWx1ZSk7CisgICAgYXV0byBw
cm9wZXJ0eVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpzdGF0ZSwgdmFsdWUsIFN0cmlu
Z0NvbnZlcnNpb25Db25maWd1cmF0aW9uOjpUcmVhdE51bGxBc0VtcHR5U3RyaW5nKTsKICAgICBp
ZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXgpCiAgICAgICAgIHByb3BlcnR5VmFs
dWUuYXBwZW5kKCJweCIpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAJKHJldmlzaW9uIDIw
NzkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBzdGF0aWMgUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNECiAgICAgSlNWYWx1ZSBsZW5ndGhWYWx1ZSA9
IGdldFByb3BlcnR5KCZzdGF0ZSwgdmFsdWUuZ2V0T2JqZWN0KCksICJsZW5ndGgiKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIHJlc3VsdC0+bGVuZ3Ro
ID0gY29udmVydDxJRExVbnNpZ25lZFNob3J0PihzdGF0ZSwgbGVuZ3RoVmFsdWUsIEVuZm9yY2VS
YW5nZSk7CisgICAgcmVzdWx0LT5sZW5ndGggPSBjb252ZXJ0PElETFVuc2lnbmVkU2hvcnQ+KHN0
YXRlLCBsZW5ndGhWYWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNl
UmFuZ2UpOwogCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KQEAgLTIzNiw3ICsyMzYs
NyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNECiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICAvLyBGSVhNRTogV2h5IG5vIEVu
Zm9yY2VSYW5nZT8gRmlsZWQgYXMgPGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93
X2J1Zy5jZ2k/aWQ9MjM3Nzk+LgotICAgIHJlc3VsdC0+bW9kdWx1c0xlbmd0aCA9IGNvbnZlcnQ8
SURMVW5zaWduZWRMb25nPihzdGF0ZSwgbW9kdWx1c0xlbmd0aFZhbHVlLCBOb3JtYWxDb252ZXJz
aW9uKTsKKyAgICByZXN1bHQtPm1vZHVsdXNMZW5ndGggPSBjb252ZXJ0PElETFVuc2lnbmVkTG9u
Zz4oc3RhdGUsIG1vZHVsdXNMZW5ndGhWYWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0
aW9uOjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwog
CiAgICAgSlNWYWx1ZSBwdWJsaWNFeHBvbmVudFZhbHVlID0gZ2V0UHJvcGVydHkoJnN0YXRlLCB2
YWx1ZS5nZXRPYmplY3QoKSwgInB1YmxpY0V4cG9uZW50Iik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDIwNzkwMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkwLDIwICs5MCw2IEBAIEpTVmFsdWUganNTdHJpbmdPclVuZGVmaW5lZChFeGVjU3RhdGUq
IGUKICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgdXJsLnN0cmluZygpKTsKIH0K
IAotU3RyaW5nIHZhbHVlVG9TdHJpbmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAgIHJldHVybiB2YWx1ZS50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYyk7Ci19Ci0KLVN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9y
TnVsbENoZWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFs
dWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJl
dHVybiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci19Ci0KIHN0YXRpYyBpbmxp
bmUgYm9vbCBoYXNVbnBhaXJlZFN1cnJvZ2F0ZShTdHJpbmdWaWV3IHN0cmluZykKIHsKICAgICAv
LyBGYXN0IHBhdGggZm9yIDgtYml0IHN0cmluZ3M7IHRoZXkgY2FuJ3QgaGF2ZSBhbnkgc3Vycm9n
YXRlcy4KQEAgLTE0MiwxNiArMTI4LDYgQEAgU3RyaW5nIHZhbHVlVG9VU1ZTdHJpbmcoRXhlY1N0
YXRlKiBleGVjLAogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZh
bHVlVG9VU1ZTdHJpbmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICByZXR1cm4gdmFsdWUuaXNOdWxsKCkgPyBlbXB0eVN0cmlu
ZygpIDogdmFsdWVUb1VTVlN0cmluZyhleGVjLCB2YWx1ZSk7Ci19Ci0KLVN0cmluZyB2YWx1ZVRv
VVNWU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSkKLXsKLSAgICByZXR1cm4gdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSA/IFN0cmlu
ZygpIDogdmFsdWVUb1VTVlN0cmluZyhleGVjLCB2YWx1ZSk7Ci19Ci0KIEpTVmFsdWUganNEYXRl
KEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlIHZhbHVlKQogewogICAgIHJldHVybiBEYXRlSW5zdGFu
Y2U6OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVT
dHJ1Y3R1cmUoKSwgdmFsdWUpOwpAQCAtNDkwLDEyICs0NjYsMTIgQEAgc3RhdGljIGlubGluZSBU
IHRvU21hbGxlckludChFeGVjU3RhdGUmIAogICAgICAgICBpZiAoZCA+PSBMaW1pdHNUcmFpdDo6
bWluVmFsdWUgJiYgZCA8PSBMaW1pdHNUcmFpdDo6bWF4VmFsdWUpCiAgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8VD4oZCk7CiAgICAgICAgIHN3aXRjaCAoY29uZmlndXJhdGlvbikgewot
ICAgICAgICBjYXNlIE5vcm1hbENvbnZlcnNpb246CisgICAgICAgIGNhc2UgSW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWw6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBFbmZvcmNlUmFuZ2U6CisgICAgICAgIGNhc2UgSW50ZWdlckNvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpFbmZvcmNlUmFuZ2U6CiAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlKTsKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBjYXNlIENsYW1wOgorICAg
ICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xhbXA6CiAgICAgICAg
ICAgICByZXR1cm4gZCA8IExpbWl0c1RyYWl0OjptaW5WYWx1ZSA/IExpbWl0c1RyYWl0OjptaW5W
YWx1ZSA6IExpbWl0c1RyYWl0OjptYXhWYWx1ZTsKICAgICAgICAgfQogICAgICAgICBkICU9IExp
bWl0c1RyYWl0OjpudW1iZXJPZlZhbHVlczsKQEAgLTUwNiwxMSArNDgyLDExIEBAIHN0YXRpYyBp
bmxpbmUgVCB0b1NtYWxsZXJJbnQoRXhlY1N0YXRlJiAKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCAwKTsKIAogICAgIHN3aXRjaCAoY29uZmlndXJhdGlvbikgewotICAgIGNhc2UgTm9y
bWFsQ29udmVyc2lvbjoKKyAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6
Tm9ybWFsOgogICAgICAgICBicmVhazsKLSAgICBjYXNlIEVuZm9yY2VSYW5nZToKKyAgICBjYXNl
IEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6RW5mb3JjZVJhbmdlOgogICAgICAgICBy
ZXR1cm4gZW5mb3JjZVJhbmdlKHN0YXRlLCB4LCBMaW1pdHNUcmFpdDo6bWluVmFsdWUsIExpbWl0
c1RyYWl0OjptYXhWYWx1ZSk7Ci0gICAgY2FzZSBDbGFtcDoKKyAgICBjYXNlIEludGVnZXJDb252
ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xhbXA6CiAgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKHgp
ID8gMCA6IGNsYW1wVG88VD4oeCk7CiAgICAgfQogCkBAIC01MzgsMTIgKzUxNCwxMiBAQCBzdGF0
aWMgaW5saW5lIFQgdG9TbWFsbGVyVUludChFeGVjU3RhdGUmCiAgICAgICAgIGlmIChkIDw9IExp
bWl0c1RyYWl0OjptYXhWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUPihk
KTsKICAgICAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uKSB7Ci0gICAgICAgIGNhc2UgTm9ybWFs
Q29udmVyc2lvbjoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246
Ok5vcm1hbDoKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUPihkKTsKLSAgICAgICAg
Y2FzZSBFbmZvcmNlUmFuZ2U6CisgICAgICAgIGNhc2UgSW50ZWdlckNvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpFbmZvcmNlUmFuZ2U6CiAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlKTsKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBjYXNlIENsYW1wOgorICAg
ICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xhbXA6CiAgICAgICAg
ICAgICByZXR1cm4gTGltaXRzVHJhaXQ6Om1heFZhbHVlOwogICAgICAgICB9CiAgICAgfQpAQCAt
NTUyLDExICs1MjgsMTEgQEAgc3RhdGljIGlubGluZSBUIHRvU21hbGxlclVJbnQoRXhlY1N0YXRl
JgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOwogCiAgICAgc3dpdGNoIChjb25m
aWd1cmF0aW9uKSB7Ci0gICAgY2FzZSBOb3JtYWxDb252ZXJzaW9uOgorICAgIGNhc2UgSW50ZWdl
ckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWw6CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgRW5mb3JjZVJhbmdlOgorICAgIGNhc2UgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
OjpFbmZvcmNlUmFuZ2U6CiAgICAgICAgIHJldHVybiBlbmZvcmNlUmFuZ2Uoc3RhdGUsIHgsIDAs
IExpbWl0c1RyYWl0OjptYXhWYWx1ZSk7Ci0gICAgY2FzZSBDbGFtcDoKKyAgICBjYXNlIEludGVn
ZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xhbXA6CiAgICAgICAgIHJldHVybiBzdGQ6Omlz
bmFuKHgpID8gMCA6IGNsYW1wVG88VD4oeCk7CiAgICAgfQogCkBAIC01NjksNjYgKzU0NSw2NiBA
QCBzdGF0aWMgaW5saW5lIFQgdG9TbWFsbGVyVUludChFeGVjU3RhdGUmCiAKIGludDhfdCB0b0lu
dDhFbmZvcmNlUmFuZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewot
ICAgIHJldHVybiB0b1NtYWxsZXJJbnQ8aW50OF90PihzdGF0ZSwgdmFsdWUsIEVuZm9yY2VSYW5n
ZSk7CisgICAgcmV0dXJuIHRvU21hbGxlckludDxpbnQ4X3Q+KHN0YXRlLCB2YWx1ZSwgSW50ZWdl
ckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFuZ2UpOwogfQogCiB1aW50OF90IHRv
VUludDhFbmZvcmNlUmFuZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQog
ewotICAgIHJldHVybiB0b1NtYWxsZXJVSW50PHVpbnQ4X3Q+KHN0YXRlLCB2YWx1ZSwgRW5mb3Jj
ZVJhbmdlKTsKKyAgICByZXR1cm4gdG9TbWFsbGVyVUludDx1aW50OF90PihzdGF0ZSwgdmFsdWUs
IEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6RW5mb3JjZVJhbmdlKTsKIH0KIAogaW50
OF90IHRvSW50OENsYW1wKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsK
LSAgICByZXR1cm4gdG9TbWFsbGVySW50PGludDhfdD4oc3RhdGUsIHZhbHVlLCBDbGFtcCk7Cisg
ICAgcmV0dXJuIHRvU21hbGxlckludDxpbnQ4X3Q+KHN0YXRlLCB2YWx1ZSwgSW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7CiB9CiAKIHVpbnQ4X3QgdG9VSW50OENsYW1wKEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdG9TbWFs
bGVyVUludDx1aW50OF90PihzdGF0ZSwgdmFsdWUsIENsYW1wKTsKKyAgICByZXR1cm4gdG9TbWFs
bGVyVUludDx1aW50OF90PihzdGF0ZSwgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJh
dGlvbjo6Q2xhbXApOwogfQogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9XZWJJREwvI2VzLWJ5
dGUKIGludDhfdCB0b0ludDgoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICByZXR1cm4gdG9TbWFsbGVySW50PGludDhfdD4oc3RhdGUsIHZhbHVlLCBOb3JtYWxDb252ZXJz
aW9uKTsKKyAgICByZXR1cm4gdG9TbWFsbGVySW50PGludDhfdD4oc3RhdGUsIHZhbHVlLCBJbnRl
Z2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCk7CiB9CiAKIC8vIGh0dHA6Ly93d3cu
dzMub3JnL1RSL1dlYklETC8jZXMtb2N0ZXQKIHVpbnQ4X3QgdG9VSW50OChFeGVjU3RhdGUmIHN0
YXRlLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiB0b1NtYWxsZXJVSW50PHVpbnQ4X3Q+
KHN0YXRlLCB2YWx1ZSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgcmV0dXJuIHRvU21hbGxlclVJ
bnQ8dWludDhfdD4oc3RhdGUsIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246
Ok5vcm1hbCk7CiB9CiAKIGludDE2X3QgdG9JbnQxNkVuZm9yY2VSYW5nZShFeGVjU3RhdGUmIHN0
YXRlLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiB0b1NtYWxsZXJJbnQ8aW50MTZfdD4o
c3RhdGUsIHZhbHVlLCBFbmZvcmNlUmFuZ2UpOworICAgIHJldHVybiB0b1NtYWxsZXJJbnQ8aW50
MTZfdD4oc3RhdGUsIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkVuZm9y
Y2VSYW5nZSk7CiB9CiAKIHVpbnQxNl90IHRvVUludDE2RW5mb3JjZVJhbmdlKEV4ZWNTdGF0ZSYg
c3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHRvU21hbGxlclVJbnQ8dWludDE2
X3Q+KHN0YXRlLCB2YWx1ZSwgRW5mb3JjZVJhbmdlKTsKKyAgICByZXR1cm4gdG9TbWFsbGVyVUlu
dDx1aW50MTZfdD4oc3RhdGUsIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246
OkVuZm9yY2VSYW5nZSk7CiB9CiAKIGludDE2X3QgdG9JbnQxNkNsYW1wKEV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHRvU21hbGxlckludDxpbnQxNl90Pihz
dGF0ZSwgdmFsdWUsIENsYW1wKTsKKyAgICByZXR1cm4gdG9TbWFsbGVySW50PGludDE2X3Q+KHN0
YXRlLCB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7CiB9CiAK
IHVpbnQxNl90IHRvVUludDE2Q2xhbXAoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKLSAgICByZXR1cm4gdG9TbWFsbGVyVUludDx1aW50MTZfdD4oc3RhdGUsIHZhbHVlLCBDbGFt
cCk7CisgICAgcmV0dXJuIHRvU21hbGxlclVJbnQ8dWludDE2X3Q+KHN0YXRlLCB2YWx1ZSwgSW50
ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcCk7CiB9CiAKIC8vIGh0dHA6Ly93d3cu
dzMub3JnL1RSL1dlYklETC8jZXMtc2hvcnQKIGludDE2X3QgdG9JbnQxNihFeGVjU3RhdGUmIHN0
YXRlLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiB0b1NtYWxsZXJJbnQ8aW50MTZfdD4o
c3RhdGUsIHZhbHVlLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICByZXR1cm4gdG9TbWFsbGVySW50
PGludDE2X3Q+KHN0YXRlLCB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpO
b3JtYWwpOwogfQogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9XZWJJREwvI2VzLXVuc2lnbmVk
LXNob3J0CiB1aW50MTZfdCB0b1VJbnQxNihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVl
KQogewotICAgIHJldHVybiB0b1NtYWxsZXJVSW50PHVpbnQxNl90PihzdGF0ZSwgdmFsdWUsIE5v
cm1hbENvbnZlcnNpb24pOworICAgIHJldHVybiB0b1NtYWxsZXJVSW50PHVpbnQxNl90PihzdGF0
ZSwgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Tm9ybWFsKTsKIH0KIAog
Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNlcy1sb25nCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMjA3OTAxKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIxMywxMiArMjEzLDcgQEAgU3RyaW5nIHByb3BlcnR5TmFtZVRvU3RyaW5nKEpTQzo6UHJvcGVy
dAogCiBBdG9taWNTdHJpbmcgcHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcoSlNDOjpQcm9wZXJ0
eU5hbWUpOwogCi1TdHJpbmcgdmFsdWVUb1N0cmluZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmco
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwotU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRo
VW5kZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBu
dWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZAotCiBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgdmFsdWVUb1VTVlN0cmluZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7Ci1T
dHJpbmcgdmFsdWVUb1VTVlN0cmluZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUpOwotU3RyaW5nIHZhbHVlVG9VU1ZTdHJpbmdXaXRoVW5kZWZp
bmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwogCiBpbnQzMl90
IGZpbml0ZUludDMyVmFsdWUoSlNDOjpKU1ZhbHVlLCBKU0M6OkV4ZWNTdGF0ZSosIGJvb2wmIG9r
YXkpOwogCkBAIC0yMjYsOCArMjIxLDYgQEAgaW50MzJfdCBmaW5pdGVJbnQzMlZhbHVlKEpTQzo6
SlNWYWx1ZSwgSgogLy8gVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlIHZhbHVlIGNhbm5vdCBi
ZSBjb252ZXJ0ZWQgdG8gYSBudW1iZXIgb3IsIGlmIEVuZm9yY2VSYW5nZSBpcyBzcGVjaWZpZWQs
CiAvLyB0aGUgdmFsdWUgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIGRlc3RpbmF0aW9uIGlu
dGVnZXIgdHlwZS4KIAotZW51bSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24geyBOb3Jt
YWxDb252ZXJzaW9uLCBFbmZvcmNlUmFuZ2UsIENsYW1wIH07Ci0KIFdFQkNPUkVfRVhQT1JUIGlu
dDhfdCB0b0ludDhFbmZvcmNlUmFuZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUpOwog
V0VCQ09SRV9FWFBPUlQgdWludDhfdCB0b1VJbnQ4RW5mb3JjZVJhbmdlKEpTQzo6RXhlY1N0YXRl
JiwgSlNDOjpKU1ZhbHVlKTsKIFdFQkNPUkVfRVhQT1JUIGludDE2X3QgdG9JbnQxNkVuZm9yY2VS
YW5nZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnQuaAkocmV2aXNpb24gMjA3OTAxKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDEwICszNCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBDb252ZXJzaW9uIGZyb20gSlNW
YWx1ZSAtPiBJbXBsZW1lbnRhdGlvbgogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZl
cnRlcjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSA9IFQ+IHVzaW5nIEVuYWJs
ZUlmSW50ZWdyYWxUeXBlID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8SXNJRExJbnRlZ2VyPFQ+
Ojp2YWx1ZSwgdHlwZW5hbWUgQ29udmVydGVyPFU+OjpSZXR1cm5UeXBlPjo6dHlwZTsKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUgPSBUPiB1c2luZyBFbmFibGVJZk5vdEludGVncmFs
VHlwZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFJc0lETEludGVnZXI8VD46OnZhbHVlLCB0
eXBlbmFtZSBDb252ZXJ0ZXI8VT46OlJldHVyblR5cGU+Ojp0eXBlOwotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gRW5hYmxlSWZOb3RJbnRlZ3JhbFR5cGU8VD4gY29udmVydChKU0M6OkV4ZWNTdGF0ZSYs
IEpTQzo6SlNWYWx1ZSk7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBFbmFibGVJZkludGVncmFsVHlw
ZTxUPiBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBJbnRlZ2VyQ29udmVy
c2lvbkNvbmZpZ3VyYXRpb24gPSBOb3JtYWxDb252ZXJzaW9uKTsKK2VudW0gY2xhc3MgSW50ZWdl
ckNvbnZlcnNpb25Db25maWd1cmF0aW9uIHsgTm9ybWFsLCBFbmZvcmNlUmFuZ2UsIENsYW1wIH07
CitlbnVtIGNsYXNzIFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uIHsgTm9ybWFsLCBUcmVh
dE51bGxBc0VtcHR5U3RyaW5nIH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHR5cGVuYW1lIENv
bnZlcnRlcjxUPjo6UmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1Zh
bHVlKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHR5cGVuYW1lIENvbnZlcnRlcjxUPjo6UmV0dXJu
VHlwZSBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBJbnRlZ2VyQ29udmVy
c2lvbkNvbmZpZ3VyYXRpb24pOwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdHlwZW5hbWUgQ29udmVy
dGVyPFQ+OjpSZXR1cm5UeXBlIGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUs
IFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uKTsKIAogLy8gU3BlY2lhbGl6ZWQgYnkgZ2Vu
ZXJhdGVkIGNvZGUgZm9yIElETCBkaWN0aW9uYXJ5IGNvbnZlcnNpb24uCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBUIGNvbnZlcnREaWN0aW9uYXJ5KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVl
KTsKQEAgLTQ3LDE2ICs0OSwyMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBPcHRpb25hbDxUPiBw
YXJzZUVuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIGNvbnZlcnRFbnVtZXJhdGlvbihKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSk7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdCBjaGFy
KiBleHBlY3RlZEVudW1lcmF0aW9uVmFsdWVzKCk7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBFbmFibGVJZk5vdEludGVncmFsVHlwZTxUPiBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHR5
cGVuYW1lIENvbnZlcnRlcjxUPjo6UmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIHJldHVybiBDb252ZXJ0ZXI8VD46OmNv
bnZlcnQoc3RhdGUsIHZhbHVlKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIEVu
YWJsZUlmSW50ZWdyYWxUeXBlPFQ+IGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6
OkpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHR5cGVuYW1lIENvbnZlcnRlcjxUPjo6
UmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZh
bHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKIHsKICAg
ICByZXR1cm4gQ29udmVydGVyPFQ+Ojpjb252ZXJ0KHN0YXRlLCB2YWx1ZSwgY29uZmlndXJhdGlv
bik7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB0eXBlbmFtZSBDb252ZXJ0ZXI8
VD46OlJldHVyblR5cGUgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgU3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKK3sK
KyAgICByZXR1cm4gQ29udmVydGVyPFQ+Ojpjb252ZXJ0KHN0YXRlLCB2YWx1ZSwgY29uZmlndXJh
dGlvbik7Cit9CiAKIC8vIENvbnZlcnNpb24gZnJvbSBJbXBsZW1lbnRhdGlvbiAtPiBKU1ZhbHVl
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSlNDb252ZXJ0ZXI7CkBAIC0xNTQsMjIgKzE2
MCwzNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdENvbnZlCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ29udmVydGVyPElETE51bGxhYmxlPFQ+PiA6IERlZmF1bHRD
b252ZXJ0ZXI8SURMTnVsbGFibGU8VD4+IHsKICAgICB1c2luZyBSZXR1cm5UeXBlID0gdHlwZW5h
bWUgSURMTnVsbGFibGU8VD46OkltcGxlbWVudGF0aW9uVHlwZTsKICAgICAKKyAgICAvLyAxLiBJ
ZiBUeXBlKFYpIGlzIG5vdCBPYmplY3QsIGFuZCB0aGUgY29udmVyc2lvbiB0byBhbiBJREwgdmFs
dWUgaXMgYmVpbmcgcGVyZm9ybWVkCisgICAgLy8gZHVlIHRvIFYgYmVpbmcgYXNzaWduZWQgdG8g
YW4gYXR0cmlidXRlIHdob3NlIHR5cGUgaXMgYSBudWxsYWJsZSBjYWxsYmFjayBmdW5jdGlvbgor
ICAgIC8vIHRoYXQgaXMgYW5ub3RhdGVkIHdpdGggW1RyZWF0Tm9uT2JqZWN0QXNOdWxsXSwgdGhl
biByZXR1cm4gdGhlIElETCBudWxsYWJsZSB0eXBlIFQ/CisgICAgLy8gdmFsdWUgbnVsbC4KKyAg
ICAvLworICAgIC8vIE5PVEU6IEhhbmRsZWQgZWxzZXdoZXJlLgorICAgIC8vCisgICAgLy8gMi4g
T3RoZXJ3aXNlLCBpZiBWIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGVuIHJldHVybiB0aGUgSURM
IG51bGxhYmxlIHR5cGUgVD8gdmFsdWUgbnVsbC4KKyAgICAvLyAzLiBPdGhlcndpc2UsIHJldHVy
biB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgViB1c2luZyB0aGUgcnVsZXMgZm9yIHRoZSBpbm5l
ciBJREwgdHlwZSBULgorCiAgICAgc3RhdGljIFJldHVyblR5cGUgY29udmVydChKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKICAgICB7Ci0gICAgICAgIC8vIDEuIElm
IFR5cGUoVikgaXMgbm90IE9iamVjdCwgYW5kIHRoZSBjb252ZXJzaW9uIHRvIGFuIElETCB2YWx1
ZSBpcyBiZWluZyBwZXJmb3JtZWQKLSAgICAgICAgLy8gZHVlIHRvIFYgYmVpbmcgYXNzaWduZWQg
dG8gYW4gYXR0cmlidXRlIHdob3NlIHR5cGUgaXMgYSBudWxsYWJsZSBjYWxsYmFjayBmdW5jdGlv
bgotICAgICAgICAvLyB0aGF0IGlzIGFubm90YXRlZCB3aXRoIFtUcmVhdE5vbk9iamVjdEFzTnVs
bF0sIHRoZW4gcmV0dXJuIHRoZSBJREwgbnVsbGFibGUgdHlwZSBUPwotICAgICAgICAvLyB2YWx1
ZSBudWxsLgotICAgICAgICAvLwotICAgICAgICAvLyBOT1RFOiBIYW5kbGVkIGVsc2V3aGVyZS4K
LQotICAgICAgICAvLyAyLiBPdGhlcndpc2UsIGlmIFYgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRo
ZW4gcmV0dXJuIHRoZSBJREwgbnVsbGFibGUgdHlwZSBUPyB2YWx1ZSBudWxsLgogICAgICAgICBp
ZiAodmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiBUOjpudWxs
VmFsdWUoKTsKLQotICAgICAgICAvLyAzLiBPdGhlcndpc2UsIHJldHVybiB0aGUgcmVzdWx0IG9m
IGNvbnZlcnRpbmcgViB1c2luZyB0aGUgcnVsZXMgZm9yIHRoZSBpbm5lciBJREwgdHlwZSBULgog
ICAgICAgICByZXR1cm4gQ29udmVydGVyPFQ+Ojpjb252ZXJ0KHN0YXRlLCB2YWx1ZSk7CiAgICAg
fQorICAgIHN0YXRpYyBSZXR1cm5UeXBlIGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisg
ICAgICAgICAgICByZXR1cm4gVDo6bnVsbFZhbHVlKCk7CisgICAgICAgIHJldHVybiBDb252ZXJ0
ZXI8VD46OmNvbnZlcnQoc3RhdGUsIHZhbHVlLCBjb25maWd1cmF0aW9uKTsKKyAgICB9CisgICAg
c3RhdGljIFJldHVyblR5cGUgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgU3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
KyAgICB7CisgICAgICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICAg
ICAgcmV0dXJuIFQ6Om51bGxWYWx1ZSgpOworICAgICAgICByZXR1cm4gQ29udmVydGVyPFQ+Ojpj
b252ZXJ0KHN0YXRlLCB2YWx1ZSwgY29uZmlndXJhdGlvbik7CisgICAgfQogfTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEpTQ29udmVydGVyPElETE51bGxhYmxlPFQ+PiB7CkBAIC0y
ODksMTQgKzMwNywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKU0NvbnZlcnRlcjxJRExBbnk+IHsK
IC8vIE1BUks6IEludGVnZXIgdHlwZXMKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVyPElE
TEJ5dGU+IDogRGVmYXVsdENvbnZlcnRlcjxJRExCeXRlPiB7Ci0gICAgc3RhdGljIGludDhfdCBj
b252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBJbnRlZ2Vy
Q29udmVyc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiA9IE5vcm1hbENvbnZlcnNpb24p
CisgICAgc3RhdGljIGludDhfdCBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
biA9IEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Tm9ybWFsKQogICAgIHsKICAgICAg
ICAgc3dpdGNoIChjb25maWd1cmF0aW9uKSB7Ci0gICAgICAgIGNhc2UgTm9ybWFsQ29udmVyc2lv
bjoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbDoK
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVuZm9yY2VSYW5nZToKKyAgICAgICAg
Y2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246OkVuZm9yY2VSYW5nZToKICAgICAg
ICAgICAgIHJldHVybiB0b0ludDhFbmZvcmNlUmFuZ2Uoc3RhdGUsIHZhbHVlKTsKLSAgICAgICAg
Y2FzZSBDbGFtcDoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246
OkNsYW1wOgogICAgICAgICAgICAgcmV0dXJuIHRvSW50OENsYW1wKHN0YXRlLCB2YWx1ZSk7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRvSW50OChzdGF0ZSwgdmFsdWUpOwpAQCAtMzE2LDE0
ICszMzQsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSlNDb252ZXJ0ZXI8SURMQnl0ZT4gewogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVyPElETE9jdGV0PiA6IERlZmF1bHRDb252ZXJ0
ZXI8SURMT2N0ZXQ+IHsKLSAgICBzdGF0aWMgdWludDhfdCBjb252ZXJ0KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbiA9IE5vcm1hbENvbnZlcnNpb24pCisgICAgc3RhdGljIHVpbnQ4X3Qg
Y29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgSW50ZWdl
ckNvbnZlcnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBJbnRlZ2VyQ29udmVyc2lv
bkNvbmZpZ3VyYXRpb246Ok5vcm1hbCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoY29uZmlndXJh
dGlvbikgewotICAgICAgICBjYXNlIE5vcm1hbENvbnZlcnNpb246CisgICAgICAgIGNhc2UgSW50
ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWw6CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBFbmZvcmNlUmFuZ2U6CisgICAgICAgIGNhc2UgSW50ZWdlckNvbnZlcnNp
b25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFuZ2U6CiAgICAgICAgICAgICByZXR1cm4gdG9VSW50
OEVuZm9yY2VSYW5nZShzdGF0ZSwgdmFsdWUpOwotICAgICAgICBjYXNlIENsYW1wOgorICAgICAg
ICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xhbXA6CiAgICAgICAgICAg
ICByZXR1cm4gdG9VSW50OENsYW1wKHN0YXRlLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIHRvVUludDgoc3RhdGUsIHZhbHVlKTsKQEAgLTM0MywxNCArMzYxLDE0IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEpTQ29udmVydGVyPElETE9jdGV0PiAKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IENvbnZlcnRlcjxJRExTaG9ydD4gOiBEZWZhdWx0Q29udmVydGVyPElETFNob3J0PiB7Ci0g
ICAgc3RhdGljIGludDE2X3QgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24g
PSBOb3JtYWxDb252ZXJzaW9uKQorICAgIHN0YXRpYyBpbnQxNl90IGNvbnZlcnQoSlNDOjpFeGVj
U3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uID0gSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpO
b3JtYWwpCiAgICAgewogICAgICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24pIHsKLSAgICAgICAg
Y2FzZSBOb3JtYWxDb252ZXJzaW9uOgorICAgICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29u
ZmlndXJhdGlvbjo6Tm9ybWFsOgogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRW5m
b3JjZVJhbmdlOgorICAgICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6
RW5mb3JjZVJhbmdlOgogICAgICAgICAgICAgcmV0dXJuIHRvSW50MTZFbmZvcmNlUmFuZ2Uoc3Rh
dGUsIHZhbHVlKTsKLSAgICAgICAgY2FzZSBDbGFtcDoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29u
dmVyc2lvbkNvbmZpZ3VyYXRpb246OkNsYW1wOgogICAgICAgICAgICAgcmV0dXJuIHRvSW50MTZD
bGFtcChzdGF0ZSwgdmFsdWUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0b0ludDE2KHN0
YXRlLCB2YWx1ZSk7CkBAIC0zNzAsMTQgKzM4OCwxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKU0Nv
bnZlcnRlcjxJRExTaG9ydD4gCiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURM
VW5zaWduZWRTaG9ydD4gOiBEZWZhdWx0Q29udmVydGVyPElETFVuc2lnbmVkU2hvcnQ+IHsKLSAg
ICBzdGF0aWMgdWludDE2X3QgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24g
PSBOb3JtYWxDb252ZXJzaW9uKQorICAgIHN0YXRpYyB1aW50MTZfdCBjb252ZXJ0KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZp
Z3VyYXRpb24gY29uZmlndXJhdGlvbiA9IEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6
Tm9ybWFsKQogICAgIHsKICAgICAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uKSB7Ci0gICAgICAg
IGNhc2UgTm9ybWFsQ29udmVyc2lvbjoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb246Ok5vcm1hbDoKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVu
Zm9yY2VSYW5nZToKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246
OkVuZm9yY2VSYW5nZToKICAgICAgICAgICAgIHJldHVybiB0b1VJbnQxNkVuZm9yY2VSYW5nZShz
dGF0ZSwgdmFsdWUpOwotICAgICAgICBjYXNlIENsYW1wOgorICAgICAgICBjYXNlIEludGVnZXJD
b252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Q2xhbXA6CiAgICAgICAgICAgICByZXR1cm4gdG9VSW50
MTZDbGFtcChzdGF0ZSwgdmFsdWUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0b1VJbnQx
NihzdGF0ZSwgdmFsdWUpOwpAQCAtMzk3LDE0ICs0MTUsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
SlNDb252ZXJ0ZXI8SURMVW5zaWduZQogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVy
PElETExvbmc+IDogRGVmYXVsdENvbnZlcnRlcjxJRExMb25nPiB7Ci0gICAgc3RhdGljIGludDMy
X3QgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgSW50
ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBOb3JtYWxDb252ZXJz
aW9uKQorICAgIHN0YXRpYyBpbnQzMl90IGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uID0gSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwpCiAgICAgewog
ICAgICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24pIHsKLSAgICAgICAgY2FzZSBOb3JtYWxDb252
ZXJzaW9uOgorICAgICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Tm9y
bWFsOgogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRW5mb3JjZVJhbmdlOgorICAg
ICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6RW5mb3JjZVJhbmdlOgog
ICAgICAgICAgICAgcmV0dXJuIHRvSW50MzJFbmZvcmNlUmFuZ2Uoc3RhdGUsIHZhbHVlKTsKLSAg
ICAgICAgY2FzZSBDbGFtcDoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb246OkNsYW1wOgogICAgICAgICAgICAgcmV0dXJuIHRvSW50MzJDbGFtcChzdGF0ZSwgdmFs
dWUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB2YWx1ZS50b0ludDMyKCZzdGF0ZSk7CkBA
IC00MjQsMTQgKzQ0MiwxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKU0NvbnZlcnRlcjxJRExMb25n
PiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMVW5zaWduZWRMb25nPiA6
IERlZmF1bHRDb252ZXJ0ZXI8SURMVW5zaWduZWRMb25nPiB7Ci0gICAgc3RhdGljIHVpbnQzMl90
IGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIEludGVn
ZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uID0gTm9ybWFsQ29udmVyc2lv
bikKKyAgICBzdGF0aWMgdWludDMyX3QgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpT
Qzo6SlNWYWx1ZSB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24gPSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCkKICAgICB7CiAg
ICAgICAgIHN3aXRjaCAoY29uZmlndXJhdGlvbikgewotICAgICAgICBjYXNlIE5vcm1hbENvbnZl
cnNpb246CisgICAgICAgIGNhc2UgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3Jt
YWw6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBFbmZvcmNlUmFuZ2U6CisgICAg
ICAgIGNhc2UgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFuZ2U6CiAg
ICAgICAgICAgICByZXR1cm4gdG9VSW50MzJFbmZvcmNlUmFuZ2Uoc3RhdGUsIHZhbHVlKTsKLSAg
ICAgICAgY2FzZSBDbGFtcDoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb246OkNsYW1wOgogICAgICAgICAgICAgcmV0dXJuIHRvVUludDMyQ2xhbXAoc3RhdGUsIHZh
bHVlKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdmFsdWUudG9VSW50MzIoJnN0YXRlKTsK
QEAgLTQ1MSwxNyArNDY5LDE3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEpTQ29udmVydGVyPElETFVu
c2lnbmUKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExMb25nTG9uZz4gOiBE
ZWZhdWx0Q29udmVydGVyPElETExvbmdMb25nPiB7Ci0gICAgc3RhdGljIGludDY0X3QgY29udmVy
dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgSW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBOb3JtYWxDb252ZXJzaW9uKQorICAg
IHN0YXRpYyBpbnQ2NF90IGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFs
dWUgdmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uID0g
SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwpCiAgICAgewogICAgICAgICBp
ZiAodmFsdWUuaXNJbnQzMigpKQogICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmFzSW50MzIoKTsK
IAogICAgICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24pIHsKLSAgICAgICAgY2FzZSBOb3JtYWxD
b252ZXJzaW9uOgorICAgICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6
Tm9ybWFsOgogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRW5mb3JjZVJhbmdlOgor
ICAgICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6RW5mb3JjZVJhbmdl
OgogICAgICAgICAgICAgcmV0dXJuIHRvSW50NjRFbmZvcmNlUmFuZ2Uoc3RhdGUsIHZhbHVlKTsK
LSAgICAgICAgY2FzZSBDbGFtcDoKKyAgICAgICAgY2FzZSBJbnRlZ2VyQ29udmVyc2lvbkNvbmZp
Z3VyYXRpb246OkNsYW1wOgogICAgICAgICAgICAgcmV0dXJuIHRvSW50NjRDbGFtcChzdGF0ZSwg
dmFsdWUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0b0ludDY0KHN0YXRlLCB2YWx1ZSk7
CkBAIC00ODEsMTcgKzQ5OSwxNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKU0NvbnZlcnRlcjxJRExM
b25nTG9uCiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMVW5zaWduZWRMb25n
TG9uZz4gOiBEZWZhdWx0Q29udmVydGVyPElETFVuc2lnbmVkTG9uZ0xvbmc+IHsKLSAgICBzdGF0
aWMgdWludDY0X3QgY29udmVydChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2
YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gPSBOb3Jt
YWxDb252ZXJzaW9uKQorICAgIHN0YXRpYyB1aW50NjRfdCBjb252ZXJ0KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbiA9IEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6Tm9ybWFs
KQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLmlzVUludDMyKCkpCiAgICAgICAgICAgICByZXR1
cm4gdmFsdWUuYXNVSW50MzIoKTsKIAogICAgICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24pIHsK
LSAgICAgICAgY2FzZSBOb3JtYWxDb252ZXJzaW9uOgorICAgICAgICBjYXNlIEludGVnZXJDb252
ZXJzaW9uQ29uZmlndXJhdGlvbjo6Tm9ybWFsOgogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgRW5mb3JjZVJhbmdlOgorICAgICAgICBjYXNlIEludGVnZXJDb252ZXJzaW9uQ29uZmln
dXJhdGlvbjo6RW5mb3JjZVJhbmdlOgogICAgICAgICAgICAgcmV0dXJuIHRvVUludDY0RW5mb3Jj
ZVJhbmdlKHN0YXRlLCB2YWx1ZSk7Ci0gICAgICAgIGNhc2UgQ2xhbXA6CisgICAgICAgIGNhc2Ug
SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpDbGFtcDoKICAgICAgICAgICAgIHJldHVy
biB0b1VJbnQ2NENsYW1wKHN0YXRlLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IHRvVUludDY0KHN0YXRlLCB2YWx1ZSk7CkBAIC02MDksOCArNjI3LDEyIEBAIHRlbXBsYXRlPD4g
c3RydWN0IEpTQ29udmVydGVyPElETFVucmVzdHIKIC8vIE1BUks6IFN0cmluZyB0eXBlcwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMRE9NU3RyaW5nPiA6IERlZmF1bHRDb252ZXJ0
ZXI8SURMRE9NU3RyaW5nPiB7Ci0gICAgc3RhdGljIFN0cmluZyBjb252ZXJ0KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorICAgIHN0YXRpYyBTdHJpbmcgY29udmVy
dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgU3RyaW5nQ29udmVy
c2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiA9IFN0cmluZ0NvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpOb3JtYWwpCiAgICAgeworICAgICAgICBpZiAoY29uZmlndXJhdGlvbiA9PSBTdHJp
bmdDb252ZXJzaW9uQ29uZmlndXJhdGlvbjo6VHJlYXROdWxsQXNFbXB0eVN0cmluZykgeworICAg
ICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiB2YWx1ZS50b1dURlN0cmluZygm
c3RhdGUpOwogICAgIH0KIH07CkBAIC02MjYsOCArNjQ4LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0
IEpTQ29udmVydGVyPElETERPTVN0cmkKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRl
cjxJRExVU1ZTdHJpbmc+IDogRGVmYXVsdENvbnZlcnRlcjxJRExVU1ZTdHJpbmc+IHsKLSAgICBz
dGF0aWMgU3RyaW5nIGNvbnZlcnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUg
dmFsdWUpCisgICAgc3RhdGljIFN0cmluZyBjb252ZXJ0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBTdHJpbmdDb252ZXJzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uID0gU3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCkKICAgICB7Cisg
ICAgICAgIGlmIChjb25maWd1cmF0aW9uID09IFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9u
OjpUcmVhdE51bGxBc0VtcHR5U3RyaW5nKSB7CisgICAgICAgICAgICBpZiAodmFsdWUuaXNOdWxs
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIHZhbHVlVG9VU1ZTdHJpbmcoJnN0YXRlLCB2YWx1ZSk7CiAgICAgfQogfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmgJKHJldmlz
aW9uIDIwNzkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOSBAQCBlbnVtIGNsYXNzIEpTRE9NSXRlcmF0
b3JUeXBlIHsgU2V0LCBNYXAgCiAvLyAgICAgdXNpbmcgVmFsdWVUeXBlID0gW0lETFR5cGVdOwog
Ly8gfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSA9IHZvaWQ+IHVzaW5nIEVu
YWJsZUlmTWFwID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8VDo6dHlwZSA9PSBKU0RPTUl0ZXJh
dG9yVHlwZTo6TWFwLCBVPjo6dHlwZTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUg
PSB2b2lkPiB1c2luZyBFbmFibGVJZlNldCA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPFQ6OnR5
cGUgPT0gSlNET01JdGVyYXRvclR5cGU6OlNldCwgVT46OnR5cGU7CisKIHRlbXBsYXRlPHR5cGVu
YW1lIEpTV3JhcHBlciwgdHlwZW5hbWUgSXRlcmF0b3JUcmFpdHM+IGNsYXNzIEpTRE9NSXRlcmF0
b3JQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICB1c2luZyBCYXNlID0gSlNDOjpKU05vbkZpbmFsT2JqZWN0OwpAQCAtMTExLDggKzExNCw4IEBA
IHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9y
VmFsdWUsIHR5cGVuYW1lIFQgPSBUcmFpdHM+IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPFQ6OnR5
cGUgPT0gSlNET01JdGVyYXRvclR5cGU6Ok1hcCwgSlNDOjpKU1ZhbHVlPjo6dHlwZSBhc0pTKEpT
Qzo6RXhlY1N0YXRlJiwgSXRlcmF0b3JWYWx1ZSYpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0
ZXJhdG9yVmFsdWUsIHR5cGVuYW1lIFQgPSBUcmFpdHM+IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PFQ6OnR5cGUgPT0gSlNET01JdGVyYXRvclR5cGU6OlNldCwgSlNDOjpKU1ZhbHVlPjo6dHlwZSBh
c0pTKEpTQzo6RXhlY1N0YXRlJiwgSXRlcmF0b3JWYWx1ZSYpOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEl0ZXJhdG9yVmFsdWUsIHR5cGVuYW1lIFQgPSBUcmFpdHM+IEVuYWJsZUlmTWFwPFQsIEpT
Qzo6SlNWYWx1ZT4gYXNKUyhKU0M6OkV4ZWNTdGF0ZSYsIEl0ZXJhdG9yVmFsdWUmKTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvclZhbHVlLCB0eXBlbmFtZSBUID0gVHJhaXRzPiBFbmFi
bGVJZlNldDxULCBKU0M6OkpTVmFsdWU+IGFzSlMoSlNDOjpFeGVjU3RhdGUmLCBJdGVyYXRvclZh
bHVlJik7CiAKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAKQEAgLTEz
NCwxMyArMTM3LDEwIEBAIGlubGluZSBKU0M6OkpTVmFsdWUganNQYWlyKEpTQzo6RXhlY1N0YXQK
ICAgICByZXR1cm4ganNQYWlyKHN0YXRlLCBnbG9iYWxPYmplY3QsIHRvSlM8Rmlyc3RUeXBlPihz
dGF0ZSwgZ2xvYmFsT2JqZWN0LCB2YWx1ZTEpLCB0b0pTPFNlY29uZFR5cGU+KHN0YXRlLCBnbG9i
YWxPYmplY3QsIHZhbHVlMikpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBKU0l0ZXJhdG9yPgot
SlNDOjpKU1ZhbHVlIGl0ZXJhdG9yQ3JlYXRlKHR5cGVuYW1lIEpTSXRlcmF0b3I6OldyYXBwZXIm
LCBJdGVyYXRpb25LaW5kKTsKLXRlbXBsYXRlPHR5cGVuYW1lIEpTSXRlcmF0b3I+Ci1KU0M6OkpT
VmFsdWUgaXRlcmF0b3JGb3JFYWNoKEpTQzo6RXhlY1N0YXRlJiwgdHlwZW5hbWUgSlNJdGVyYXRv
cjo6V3JhcHBlciYsIEpTQzo6VGhyb3dTY29wZSYpOwordGVtcGxhdGU8dHlwZW5hbWUgSlNJdGVy
YXRvcj4gSlNDOjpKU1ZhbHVlIGl0ZXJhdG9yQ3JlYXRlKHR5cGVuYW1lIEpTSXRlcmF0b3I6Oldy
YXBwZXImLCBJdGVyYXRpb25LaW5kKTsKK3RlbXBsYXRlPHR5cGVuYW1lIEpTSXRlcmF0b3I+IEpT
Qzo6SlNWYWx1ZSBpdGVyYXRvckZvckVhY2goSlNDOjpFeGVjU3RhdGUmLCB0eXBlbmFtZSBKU0l0
ZXJhdG9yOjpXcmFwcGVyJiwgSlNDOjpUaHJvd1Njb3BlJik7CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IEpTSXRlcmF0b3I+Ci1KU0M6OkpTVmFsdWUgaXRlcmF0b3JDcmVhdGUodHlwZW5hbWUgSlNJdGVy
YXRvcjo6V3JhcHBlciYgdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZCBraW5kKQordGVtcGxhdGU8
dHlwZW5hbWUgSlNJdGVyYXRvcj4gSlNDOjpKU1ZhbHVlIGl0ZXJhdG9yQ3JlYXRlKHR5cGVuYW1l
IEpTSXRlcmF0b3I6OldyYXBwZXImIHRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQga2luZCkKIHsK
ICAgICBBU1NFUlQodGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiAgICAgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCA9ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpOwpAQCAtMTQ4
LDggKzE0OCw3IEBAIEpTQzo6SlNWYWx1ZSBpdGVyYXRvckNyZWF0ZSh0eXBlbmFtZSBKU0kKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyLCB0eXBlbmFtZSBJdGVyYXRvclRyYWl0cz4K
LXRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yVmFsdWUsIHR5cGVuYW1lIFQ+IAotaW5saW5lIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPFQ6OnR5cGUgPT0gSlNET01JdGVyYXRvclR5cGU6Ok1hcCwg
SlNDOjpKU1ZhbHVlPjo6dHlwZSBKU0RPTUl0ZXJhdG9yPEpTV3JhcHBlciwgSXRlcmF0b3JUcmFp
dHM+Ojphc0pTKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSXRlcmF0b3JWYWx1ZSYgdmFsdWUpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvclZhbHVlLCB0eXBlbmFtZSBUPiBpbmxpbmUgRW5hYmxl
SWZNYXA8VCwgSlNDOjpKU1ZhbHVlPiBKU0RPTUl0ZXJhdG9yPEpTV3JhcHBlciwgSXRlcmF0b3JU
cmFpdHM+Ojphc0pTKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSXRlcmF0b3JWYWx1ZSYgdmFsdWUp
CiB7CiAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAKQEAgLTE2Nyw4ICsxNjYsNyBAQCBpbmxpbmUg
dHlwZW5hbWUgc3RkOjplbmFibGVfaWY8VDo6dHlwZSA9CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEpTV3JhcHBlciwgdHlwZW5hbWUgSXRlcmF0b3JUcmFpdHM+Ci10ZW1wbGF0ZTx0eXBlbmFtZSBJ
dGVyYXRvclZhbHVlLCB0eXBlbmFtZSBUPgotaW5saW5lIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PFQ6OnR5cGUgPT0gSlNET01JdGVyYXRvclR5cGU6OlNldCwgSlNDOjpKU1ZhbHVlPjo6dHlwZSBK
U0RPTUl0ZXJhdG9yPEpTV3JhcHBlciwgSXRlcmF0b3JUcmFpdHM+Ojphc0pTKEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgSXRlcmF0b3JWYWx1ZSYgdmFsdWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVy
YXRvclZhbHVlLCB0eXBlbmFtZSBUPiBpbmxpbmUgRW5hYmxlSWZTZXQ8VCwgSlNDOjpKU1ZhbHVl
PiBKU0RPTUl0ZXJhdG9yPEpTV3JhcHBlciwgSXRlcmF0b3JUcmFpdHM+Ojphc0pTKEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgSXRlcmF0b3JWYWx1ZSYgdmFsdWUpCiB7CiAgICAgQVNTRVJUKHZhbHVl
KTsKIApAQCAtMTg3LDE2ICsxODUsMTQgQEAgaW5saW5lIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PFQ6OnR5cGUgPQogICAgIHJldHVybiB7IH07CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEpTSXRl
cmF0b3IsIHR5cGVuYW1lIEl0ZXJhdG9yVmFsdWU+Ci10eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxK
U0l0ZXJhdG9yOjpUcmFpdHM6OnR5cGUgPT0gSlNET01JdGVyYXRvclR5cGU6Ok1hcCwgdm9pZD46
OnR5cGUgYXBwZW5kRm9yRWFjaEFyZ3VtZW50cyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImIGFy
Z3VtZW50cywgSXRlcmF0b3JWYWx1ZSYgdmFsdWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBKU0l0ZXJh
dG9yLCB0eXBlbmFtZSBJdGVyYXRvclZhbHVlPiBFbmFibGVJZk1hcDx0eXBlbmFtZSBKU0l0ZXJh
dG9yOjpUcmFpdHM+IGFwcGVuZEZvckVhY2hBcmd1bWVudHMoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVm
ZmVyJiBhcmd1bWVudHMsIEl0ZXJhdG9yVmFsdWUmIHZhbHVlKQogewogICAgIEFTU0VSVCh2YWx1
ZSk7CiAgICAgYXJndW1lbnRzLmFwcGVuZCh0b0pTPHR5cGVuYW1lIEpTSXRlcmF0b3I6OlRyYWl0
czo6VmFsdWVUeXBlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCB2YWx1ZS0+dmFsdWUpKTsKICAgICBh
cmd1bWVudHMuYXBwZW5kKHRvSlM8dHlwZW5hbWUgSlNJdGVyYXRvcjo6VHJhaXRzOjpLZXlUeXBl
PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCB2YWx1ZS0+a2V5KSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIEpTSXRlcmF0b3IsIHR5cGVuYW1lIEl0ZXJhdG9yVmFsdWU+IAotdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8SlNJdGVyYXRvcjo6VHJhaXRzOjp0eXBlID09IEpTRE9NSXRlcmF0b3JUeXBlOjpT
ZXQsIHZvaWQ+Ojp0eXBlIGFwcGVuZEZvckVhY2hBcmd1bWVudHMoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyJiBhcmd1bWVudHMsIEl0ZXJhdG9yVmFsdWUmIHZhbHVlKQordGVtcGxhdGU8dHlwZW5h
bWUgSlNJdGVyYXRvciwgdHlwZW5hbWUgSXRlcmF0b3JWYWx1ZT4gRW5hYmxlSWZTZXQ8dHlwZW5h
bWUgSlNJdGVyYXRvcjo6VHJhaXRzPiBhcHBlbmRGb3JFYWNoQXJndW1lbnRzKEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNDOjpNYXJrZWRB
cmd1bWVudEJ1ZmZlciYgYXJndW1lbnRzLCBJdGVyYXRvclZhbHVlJiB2YWx1ZSkKIHsKICAgICBB
U1NFUlQodmFsdWUpOwogICAgIGF1dG8gYXJndW1lbnQgPSB0b0pTPHR5cGVuYW1lIEpTSXRlcmF0
b3I6OlRyYWl0czo6VmFsdWVUeXBlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CShyZXZpc2lvbiAyMDc5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMywxMiArNDIzLDEyIEBAIEpTVmFs
dWUgSlNET01XaW5kb3c6Om9wZW4oRXhlY1N0YXRlJiBzdGEKICAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIFN0
cmluZyB1cmxTdHJpbmcgPSB2YWx1ZVRvVVNWU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
KCZzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCkpOworICAgIFN0cmluZyB1cmxTdHJpbmcgPSBjb252
ZXJ0PElETE51bGxhYmxlPElETFVTVlN0cmluZz4+KHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICBKU1ZhbHVl
IHRhcmdldFZhbHVlID0gc3RhdGUuYXJndW1lbnQoMSk7CiAgICAgQXRvbWljU3RyaW5nIHRhcmdl
dCA9IHRhcmdldFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgPyBBdG9taWNTdHJpbmcoIl9ibGFu
ayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpIDogdGFyZ2V0VmFsdWUudG9T
dHJpbmcoJnN0YXRlKS0+dG9BdG9taWNTdHJpbmcoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIFN0cmluZyB3aW5kb3dGZWF0dXJlc1N0cmlu
ZyA9IHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soJnN0YXRlLCBzdGF0ZS5h
cmd1bWVudCgyKSk7CisgICAgU3RyaW5nIHdpbmRvd0ZlYXR1cmVzU3RyaW5nID0gY29udmVydDxJ
RExOdWxsYWJsZTxJRExET01TdHJpbmc+PihzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMikpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKICAgICBSZWZQdHI8RE9N
V2luZG93PiBvcGVuZWRXaW5kb3cgPSB3cmFwcGVkKCkub3Blbih1cmxTdHJpbmcsIHRhcmdldCwg
d2luZG93RmVhdHVyZXNTdHJpbmcsIGFjdGl2ZURPTVdpbmRvdygmc3RhdGUpLCBmaXJzdERPTVdp
bmRvdygmc3RhdGUpKTsKQEAgLTQ4Myw5ICs0ODMsOSBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpz
aG93TW9kYWxEaWFsb2coRXhlCiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLmFyZ3VtZW50Q291bnQo
KSA8IDEpKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAKLSAgICBTdHJpbmcgdXJsU3Ry
aW5nID0gdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjaygmc3RhdGUsIHN0YXRl
LmFyZ3VtZW50KDApKTsKKyAgICBTdHJpbmcgdXJsU3RyaW5nID0gY29udmVydDxJRExOdWxsYWJs
ZTxJRExET01TdHJpbmc+PihzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgU3RyaW5nIGRpYWxvZ0ZlYXR1cmVz
U3RyaW5nID0gdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjaygmc3RhdGUsIHN0
YXRlLmFyZ3VtZW50KDIpKTsKKyAgICBTdHJpbmcgZGlhbG9nRmVhdHVyZXNTdHJpbmcgPSBjb252
ZXJ0PElETE51bGxhYmxlPElETERPTVN0cmluZz4+KHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgyKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAogICAgIERpYWxv
Z0hhbmRsZXIgaGFuZGxlcihzdGF0ZSk7CkBAIC01MjgsNyArNTI4LDcgQEAgc3RhdGljIEpTVmFs
dWUgaGFuZGxlUG9zdE1lc3NhZ2UoRE9NV2luZAogICAgIGF1dG8gbWVzc2FnZSA9IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSwg
bWVzc2FnZVBvcnRzLCBXVEZNb3ZlKGFycmF5QnVmZmVycykpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKLSAgICBTdHJpbmcgdGFyZ2V0T3JpZ2luID0gdmFs
dWVUb1VTVlN0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjaygmc3RhdGUsIHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KHRhcmdldE9yaWdpbkFyZ0luZGV4KSk7CisgICAgU3RyaW5nIHRhcmdldE9y
aWdpbiA9IGNvbnZlcnQ8SURMTnVsbGFibGU8SURMVVNWU3RyaW5nPj4oc3RhdGUsIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KHRhcmdldE9yaWdpbkFyZ0luZGV4KSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAogICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbihzdGF0
ZSwgc2NvcGUsIGltcGwucG9zdE1lc3NhZ2UobWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpLCBXVEZN
b3ZlKG1lc3NhZ2VQb3J0cyksIHRhcmdldE9yaWdpbiwgY2FsbGVyRE9NV2luZG93KCZzdGF0ZSkp
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0
b20uY3BwCShyZXZpc2lvbiAyMDc5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDkgKzEzNyw5IEBAIEpT
VmFsdWUgSlNEb2N1bWVudDo6Z2V0Q1NTQ2FudmFzQ29udGV4dCgKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgIGF1dG8gbmFtZSA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICBhdXRvIHdpZHRoID0gY29udmVydDxJRExMb25nPihz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiksIE5vcm1hbENvbnZlcnNpb24pOworICAg
IGF1dG8gd2lkdGggPSBjb252ZXJ0PElETExvbmc+KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgyKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgYXV0byBoZWlnaHQgPSBj
b252ZXJ0PElETExvbmc+KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSwgTm9ybWFs
Q29udmVyc2lvbik7CisgICAgYXV0byBoZWlnaHQgPSBjb252ZXJ0PElETExvbmc+KHN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
OjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAK
ICAgICBhdXRvKiBjb250ZXh0ID0gd3JhcHBlZCgpLmdldENTU0NhbnZhc0NvbnRleHQoV1RGTW92
ZShjb250ZXh0SWQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKHdpZHRoKSwgV1RGTW92ZShoZWln
aHQpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMDc5MDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIEpTVmFsdWUgSlNIVE1MQ2FudmFzRWxlbWVudDo6
dG9EYXRhVVJMKEUKICAgICBIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzID0gd3JhcHBlZCgpOwog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCi0gICAgY29uc3QgU3RyaW5nJiB0eXBlID0gdmFs
dWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjaygmc3RhdGUsIHN0YXRlLmFyZ3VtZW50
KDApKTsKKyAgICBhdXRvIHR5cGUgPSBjb252ZXJ0PElETE51bGxhYmxlPElETERPTVN0cmluZz4+
KHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSk7CiAgICAgZG91YmxlIHF1YWxpdHk7CiAgICAgZG91
YmxlKiBxdWFsaXR5UHRyID0gMDsKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID4gMSkg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20u
Y3BwCShyZXZpc2lvbiAyMDc5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hp
c3RvcnlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KIApAQCAt
NjYsMTIgKzY2LDEyIEBAIEpTVmFsdWUgSlNIaXN0b3J5OjpwdXNoU3RhdGUoRXhlY1N0YXRlJiAK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogCiAgICAgLy8gRklY
TUU6IHRpdGxlIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCi0gICAgU3RyaW5nIHRpdGxlID0gdmFs
dWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjaygmc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpKTsKKyAgICBTdHJpbmcgdGl0bGUgPSBjb252ZXJ0PElETE51bGxhYmxlPElE
TERPTVN0cmluZz4+KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAogICAgIFN0cmluZyB1cmw7CiAg
ICAgaWYgKGFyZ0NvdW50ID4gMikgewotICAgICAgICB1cmwgPSB2YWx1ZVRvVVNWU3RyaW5nV2l0
aFVuZGVmaW5lZE9yTnVsbENoZWNrKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikp
OworICAgICAgICB1cmwgPSBjb252ZXJ0PElETE51bGxhYmxlPElETFVTVlN0cmluZz4+KHN0YXRl
LCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWUoKSk7CiAgICAgfQogCkBAIC05NSwxMiArOTUsMTIgQEAgSlNWYWx1
ZSBKU0hpc3Rvcnk6OnJlcGxhY2VTdGF0ZShFeGVjU3RhdAogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKICAgICAvLyBGSVhNRTogdGl0bGUgc2hvdWxkIG5vdCBi
ZSBudWxsYWJsZS4KLSAgICBTdHJpbmcgdGl0bGUgPSB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5l
ZE9yTnVsbENoZWNrKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFN0
cmluZyB0aXRsZSA9IGNvbnZlcnQ8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oc3RhdGUsIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlKCkpOwogCiAgICAgU3RyaW5nIHVybDsKICAgICBpZiAoYXJnQ291bnQgPiAyKSB7
Ci0gICAgICAgIHVybCA9IHZhbHVlVG9VU1ZTdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2so
JnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgICAgIHVybCA9IGNvbnZl
cnQ8SURMTnVsbGFibGU8SURMVVNWU3RyaW5nPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDIpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsK
ICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9ja0NvbnRlbnRG
aWx0ZXJTZXR0aW5nc0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcAkocmV2aXNpb24g
MjA3OTAxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCB2b2lk
IEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6c2V0RGVjCiAgICAgVk0mIHZtID0gc3RhdGUu
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICB1
aW50OF90IG5hdGl2ZVZhbHVlIHsgY29udmVydDxJRExPY3RldD4oc3RhdGUsIHZhbHVlLCBFbmZv
cmNlUmFuZ2UpIH07CisgICAgdWludDhfdCBuYXRpdmVWYWx1ZSB7IGNvbnZlcnQ8SURMT2N0ZXQ+
KHN0YXRlLCB2YWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFu
Z2UpIH07CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgIERl
Y2lzaW9uUG9pbnQgZGVjaXNpb25Qb2ludCB7IHN0YXRpY19jYXN0PERlY2lzaW9uUG9pbnQ+KG5h
dGl2ZVZhbHVlKSB9OwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgaW5saW5lIERlY2lzaW9uIHRv
RGVjaXNpb24oRXhlY1N0CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICB1aW50OF90IG5hdGl2ZVZhbHVlIHsg
Y29udmVydDxJRExPY3RldD4oc3RhdGUsIHZhbHVlLCBFbmZvcmNlUmFuZ2UpIH07CisgICAgdWlu
dDhfdCBuYXRpdmVWYWx1ZSB7IGNvbnZlcnQ8SURMT2N0ZXQ+KHN0YXRlLCB2YWx1ZSwgSW50ZWdl
ckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpFbmZvcmNlUmFuZ2UpIH07CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgRGVjaXNpb246OkFsbG93KTsKIAogICAgIERlY2lzaW9uIGRlY2lz
aW9uIHsgc3RhdGljX2Nhc3Q8RGVjaXNpb24+KG5hdGl2ZVZhbHVlKSB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCShyZXZp
c2lvbiAyMDc5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHVpbnQxNl90IEpTTm9k
ZUZpbHRlcjo6YWNjZXB0Tm9kZShOb2RlKiAKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9SRUpFQ1Q7CiAgICAgfQogCi0gICAgYXV0byByZXN1bHQgPSBjb252ZXJ0PElETFVuc2ln
bmVkU2hvcnQ+KCpzdGF0ZSwgdmFsdWUsIE5vcm1hbENvbnZlcnNpb24pOworICAgIGF1dG8gcmVz
dWx0ID0gY29udmVydDxJRExVbnNpZ25lZFNob3J0Pigqc3RhdGUsIHZhbHVlLCBJbnRlZ2VyQ29u
dmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCk7CiAKICAgICByZXR1cm4gcmVzdWx0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0JKHJldmlzaW9uIDIwNzkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC01MjIxLDE0ICs1MjIx
LDI0IEBAIHN1YiBHZXRJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24KIHsKICAgICBteSAk
c2lnbmF0dXJlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gIkVuZm9yY2VSYW5nZSIgaWYgJHNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5mb3JjZVJhbmdlfTsKLSAgICByZXR1cm4gIkNs
YW1wIiBpZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDbGFtcH07Ci0gICAgcmV0
dXJuICJOb3JtYWxDb252ZXJzaW9uIjsKKyAgICByZXR1cm4gIkludGVnZXJDb252ZXJzaW9uQ29u
ZmlndXJhdGlvbjo6RW5mb3JjZVJhbmdlIiBpZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntFbmZvcmNlUmFuZ2V9OworICAgIHJldHVybiAiSW50ZWdlckNvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpDbGFtcCIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2xhbXB9
OworICAgIHJldHVybiAiSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwiOwor
fQorCitzdWIgR2V0U3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24KK3sKKyAgICBteSAkc2ln
bmF0dXJlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gIlN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0
aW9uOjpUcmVhdE51bGxBc0VtcHR5U3RyaW5nIiBpZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntUcmVhdE51bGxBc30gJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
VHJlYXROdWxsQXN9IGVxICJFbXB0eVN0cmluZyI7CisgICAgcmV0dXJuICJTdHJpbmdDb252ZXJz
aW9uQ29uZmlndXJhdGlvbjo6Tm9ybWFsIjsKIH0KIAogc3ViIEpTVmFsdWVUb05hdGl2ZUlzSGFu
ZGxlZEJ5RE9NQ29udmVydAogewotICAgIG15ICRpZGxUeXBlID0gc2hpZnQ7CisgICAgbXkgKCRp
ZGxUeXBlLCAkc2lnbmF0dXJlKSA9IEBfOworCisgICAgcmV0dXJuIDAgaWYgJGlkbFR5cGUtPm5h
bWUgZXEgIkRPTVN0cmluZyIgJiYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1Jl
cXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9IHx8ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0F0b21pY1N0cmluZ30pOwogCiAgICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPmlzVW5p
b247CiAgICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPm5hbWUgZXEgImFueSI7CkBAIC01MjM5LDYg
KzUyNDksNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlSXNIYW5kbGVkQnlET01Db252ZXJ0CiAgICAg
cmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzRmxvYXRpbmdQb2ludFR5cGUoJGlkbFR5cGUt
Pm5hbWUpOwogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96
ZW5BcnJheVR5cGUoJGlkbFR5cGUtPm5hbWUpOwogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJh
dG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRpZGxUeXBlLT5uYW1lKTsKKyAgICByZXR1cm4gMSBpZiAk
Y29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlLT5uYW1lKTsKICAgICByZXR1cm4g
MDsKIH0KIApAQCAtNTI1NiwzNCArNTI2NywyNSBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAg
JHN0YXRlUmVmZXJlbmNlID0gIipzdGF0ZSIgdW5sZXNzICRzdGF0ZVJlZmVyZW5jZTsKICAgICAk
dGhpc09iamVjdFJlZmVyZW5jZSA9ICIqY2FzdGVkVGhpcyIgdW5sZXNzICR0aGlzT2JqZWN0UmVm
ZXJlbmNlOwogCi0gICAgaWYgKEpTVmFsdWVUb05hdGl2ZUlzSGFuZGxlZEJ5RE9NQ29udmVydCgk
aWRsVHlwZSkpIHsKKyAgICBpZiAoSlNWYWx1ZVRvTmF0aXZlSXNIYW5kbGVkQnlET01Db252ZXJ0
KCRpZGxUeXBlLCAkc2lnbmF0dXJlKSkgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNE
T01Db252ZXJ0LmgiKTsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCRpZGxU
eXBlLCAkY29uZGl0aW9uYWwpOwogCiAgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgk
aW50ZXJmYWNlLCAkaWRsVHlwZSk7CiAKLSAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0lu
dGVnZXJUeXBlKCR0eXBlKSkgewotICAgICAgICAgICAgbXkgJGNvbnZlcnNpb25UeXBlID0gR2V0
SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uKCRzaWduYXR1cmUpOwotICAgICAgICAgICAg
cmV0dXJuICgiY29udmVydDwkSURMVHlwZT4oJHN0YXRlUmVmZXJlbmNlLCAkdmFsdWUsICRjb252
ZXJzaW9uVHlwZSkiLCAxKTsKLSAgICAgICAgfQorICAgICAgICBteSBAY29udmVyc2lvbkFyZ3Vt
ZW50cyA9ICgpOworICAgICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAiJHN0YXRlUmVm
ZXJlbmNlIik7CisgICAgICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICIkdmFsdWUiKTsK
KyAgICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25D
b25maWd1cmF0aW9uKCRzaWduYXR1cmUpKSBpZiAkY29kZUdlbmVyYXRvci0+SXNJbnRlZ2VyVHlw
ZSgkdHlwZSk7CisgICAgICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsIEdldFN0cmluZ0Nv
bnZlcnNpb25Db25maWd1cmF0aW9uKCRzaWduYXR1cmUpKSBpZiAkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCR0eXBlKTsKIAotICAgICAgICByZXR1cm4gKCJjb252ZXJ0PCRJRExUeXBlPigk
c3RhdGVSZWZlcmVuY2UsICR2YWx1ZSkiLCAxKTsKKyAgICAgICAgcmV0dXJuICgiY29udmVydDwk
SURMVHlwZT4oIiAuIGpvaW4oIiwgIiwgQGNvbnZlcnNpb25Bcmd1bWVudHMpIC4gIikiLCAxKTsK
ICAgICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgcmV0dXJu
ICgiQXRvbWljU3RyaW5nKCR2YWx1ZS50b1N0cmluZygkc3RhdGVQb2ludGVyKS0+dG9FeGlzdGlu
Z0F0b21pY1N0cmluZygkc3RhdGVQb2ludGVyKSkiLCAxKSBpZiAkc2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nfTsKLQotICAgICAgICBt
eSAkdHJlYXROdWxsQXMgPSAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntUcmVhdE51
bGxBc307Ci0gICAgICAgIHJldHVybiAoInZhbHVlVG9TdHJpbmdUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nKCRzdGF0ZVBvaW50ZXIsICR2YWx1ZSkiLCAxKSBpZiAkdHJlYXROdWxsQXMgJiYgJHRy
ZWF0TnVsbEFzIGVxICJFbXB0eVN0cmluZyI7Ci0gICAgICAgIHJldHVybiAoInZhbHVlVG9TdHJp
bmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soJHN0YXRlUG9pbnRlciwgJHZhbHVlKSIsIDEpIGlm
ICRzaWduYXR1cmUtPmlzTnVsbGFibGU7CiAgICAgICAgIHJldHVybiAoIiR2YWx1ZS50b1N0cmlu
Zygkc3RhdGVQb2ludGVyKS0+dG9BdG9taWNTdHJpbmcoJHN0YXRlUG9pbnRlcikiLCAxKSBpZiAk
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9OwotICAgICAgICBy
ZXR1cm4gKCIkdmFsdWUudG9XVEZTdHJpbmcoJHN0YXRlUG9pbnRlcikiLCAxKTsKLSAgICB9Ci0g
ICAgaWYgKCR0eXBlIGVxICJVU1ZTdHJpbmciKSB7Ci0gICAgICAgIG15ICR0cmVhdE51bGxBcyA9
ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1RyZWF0TnVsbEFzfTsKLSAgICAgICAg
cmV0dXJuICgidmFsdWVUb1VTVlN0cmluZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoJHN0YXRl
UG9pbnRlciwgJHZhbHVlKSIsIDEpIGlmICR0cmVhdE51bGxBcyAmJiAkdHJlYXROdWxsQXMgZXEg
IkVtcHR5U3RyaW5nIjsKLSAgICAgICAgcmV0dXJuICgidmFsdWVUb1VTVlN0cmluZ1dpdGhVbmRl
ZmluZWRPck51bGxDaGVjaygkc3RhdGVQb2ludGVyLCAkdmFsdWUpIiwgMSkgaWYgJHNpZ25hdHVy
ZS0+aXNOdWxsYWJsZTsKLSAgICAgICAgcmV0dXJuICgidmFsdWVUb1VTVlN0cmluZygkc3RhdGVQ
b2ludGVyLCAkdmFsdWUpIiwgMSk7CisgICAgICAgIGFzc2VydCgiVW5oYW5kbGVkIHN0cmluZyBj
b252ZXJzaW9uLiIpOwogICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlw
dFZhbHVlIikgewo=
</data>
<flag name="review"
          id="315921"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>