<?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>131851</bug_id>
          
          <creation_ts>2014-04-18 12:35:46 -0700</creation_ts>
          <short_desc>bmalloc: Added an XSmall line size</short_desc>
          <delta_ts>2014-05-10 12:47:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1001980</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-18 12:35:46 -0700</bug_when>
    <thetext>bmalloc: Added an XSmall line size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001983</commentid>
    <comment_count>1</comment_count>
      <attachid>229665</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-18 12:44:07 -0700</bug_when>
    <thetext>Created attachment 229665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001984</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-18 12:45:22 -0700</bug_when>
    <thetext>Attachment 229665 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/Heap.cpp:141:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 26 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>1002000</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-18 13:18:22 -0700</bug_when>
    <thetext>Committed r167502: &lt;http://trac.webkit.org/changeset/167502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002254</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-19 13:41:14 -0700</bug_when>
    <thetext>This caused a large object validation ASSERT on the Facebook benchmark in debug builds. Most likely, it just exposed a pre-existing large object bug by moving more objects into the large object space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002255</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-19 13:42:03 -0700</bug_when>
    <thetext>Rolled out in &lt;http://trac.webkit.org/changeset/167546&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008281</commentid>
    <comment_count>6</comment_count>
      <attachid>229665</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-10 12:47:48 -0700</bug_when>
    <thetext>Comment on attachment 229665
Patch

Clearing review flag to remove this from the landing queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229665</attachid>
            <date>2014-04-18 12:44:07 -0700</date>
            <delta_ts>2014-05-10 12:47:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131851-20140418124346.patch</filename>
            <type>text/plain</type>
            <size>61831</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzQ5OCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwNSBAQAorMjAxNC0wNC0xOCAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2M6IEFkZGVkIGFu
IFhTbWFsbCBsaW5lIHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMTg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZHVjZXMgbWFsbG9jIGZvb3RwcmludCBvbiBNZW1idXN0ZXIgcmVjb3JkaW5n
cyBieSAxMCUuCisKKyAgICAgICAgVGhpcyBpcyBhIHRocm91Z2hwdXQgcmVncmVzc2lvbiwgYnV0
IHdlJ3JlIHN0aWxsIHdheSBhaGVhZCBvZiBUQ01hbGxvYy4KKyAgICAgICAgSSBoYXZlIHNvbWUg
aWRlYXMgZm9yIGhvdyB0byByZWNvdmVyIHRoZSByZWdyZXNzaW9uIC0tIGJ1dCBJIHdhbnRlZCB0
bworICAgICAgICBnZXQgdGhpcyB3aW4gaW4gZmlyc3QuCisKKyAgICAgICAgRnVsbCBzZXQgb2Yg
YmVuY2htYXJrIHJlc3VsdHM6CisKKyAgICAgICAgICAgICAgICBibWFsbG9jPiB+L3dlYmtpdC9Q
ZXJmb3JtYW5jZVRlc3RzL01hbGxvY0JlbmNoL3J1bi1tYWxsb2MtYmVuY2htYXJrcyAtLW1lYXN1
cmUtaGVhcCBub3BhdGNoOn4vc2NyYXRjaC9CdWlsZC1ub3BhdGNoL1JlbGVhc2UvIHBhdGNoOn4v
d2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vcGF0Y2ggICAgICAgICAgICAgICAgICAgICAgcGF0Y2ggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIM6UCisgICAgICAgICAgICAgICAgUGVhayBNZW1v
cnk6CisgICAgICAgICAgICAgICAgICAgIHJlZGRpdF9tZW1vcnlfd2FybmluZyAgICAgICAgICAg
ICAgICAgICAgICA3LDg5NmtCICAgICAgICAgICAgICAgICAgICA3LDUzMmtCICAgICAgICAgICAg
ICAgICAgXiAxLjA1eCBzbWFsbGVyCisgICAgICAgICAgICAgICAgICAgIGZsaWNrcl9tZW1vcnlf
d2FybmluZyAgICAgICAgICAgICAgICAgICAgIDEyLDk2OGtCICAgICAgICAgICAgICAgICAgIDEy
LDMyNGtCICAgICAgICAgICAgICAgICAgXiAxLjA1eCBzbWFsbGVyCisgICAgICAgICAgICAgICAg
ICAgIHRoZXZlcmdlX21lbW9yeV93YXJuaW5nICAgICAgICAgICAgICAgICAgIDE2LDY3MmtCICAg
ICAgICAgICAgICAgICAgIDE1LDIwMGtCICAgICAgICAgICAgICAgICAgIF4gMS4xeCBzbWFsbGVy
CisKKyAgICAgICAgICAgICAgICAgICAgPGdlb21ldHJpYyBtZWFuPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTEsOTUya0IgICAgICAgICAgICAgICAgICAgMTEsMjE2a0IgICAgICAgICAgICAg
ICAgICBeIDEuMDd4IHNtYWxsZXIKKyAgICAgICAgICAgICAgICAgICAgPGFyaXRobWV0aWMgbWVh
bj4gICAgICAgICAgICAgICAgICAgICAgICAgMTIsNTEya0IgICAgICAgICAgICAgICAgICAgMTEs
Njg1a0IgICAgICAgICAgICAgICAgICBeIDEuMDd4IHNtYWxsZXIKKyAgICAgICAgICAgICAgICAg
ICAgPGhhcm1vbmljIG1lYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEsMzc1a0IgICAg
ICAgICAgICAgICAgICAgMTAsNzI2a0IgICAgICAgICAgICAgICAgICBeIDEuMDZ4IHNtYWxsZXIK
KworICAgICAgICAgICAgICAgIE1lbW9yeSBhdCBFbmQ6CisgICAgICAgICAgICAgICAgICAgIHJl
ZGRpdF9tZW1vcnlfd2FybmluZyAgICAgICAgICAgICAgICAgICAgICA3LDMyMGtCICAgICAgICAg
ICAgICAgICAgICA2LDg1NmtCICAgICAgICAgICAgICAgICAgXiAxLjA3eCBzbWFsbGVyCisgICAg
ICAgICAgICAgICAgICAgIGZsaWNrcl9tZW1vcnlfd2FybmluZyAgICAgICAgICAgICAgICAgICAg
IDEwLDg0OGtCICAgICAgICAgICAgICAgICAgICA5LDY5MmtCICAgICAgICAgICAgICAgICAgXiAx
LjEyeCBzbWFsbGVyCisgICAgICAgICAgICAgICAgICAgIHRoZXZlcmdlX21lbW9yeV93YXJuaW5n
ICAgICAgICAgICAgICAgICAgIDE2LDM4MGtCICAgICAgICAgICAgICAgICAgIDE0LDg3MmtCICAg
ICAgICAgICAgICAgICAgIF4gMS4xeCBzbWFsbGVyCisKKyAgICAgICAgICAgICAgICAgICAgPGdl
b21ldHJpYyBtZWFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsOTE2a0IgICAgICAgICAg
ICAgICAgICAgIDksOTYxa0IgICAgICAgICAgICAgICAgICAgXiAxLjF4IHNtYWxsZXIKKyAgICAg
ICAgICAgICAgICAgICAgPGFyaXRobWV0aWMgbWVhbj4gICAgICAgICAgICAgICAgICAgICAgICAg
MTEsNTE2a0IgICAgICAgICAgICAgICAgICAgMTAsNDcza0IgICAgICAgICAgICAgICAgICAgXiAx
LjF4IHNtYWxsZXIKKyAgICAgICAgICAgICAgICAgICAgPGhhcm1vbmljIG1lYW4+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAsMzUwa0IgICAgICAgICAgICAgICAgICAgIDksNDg1a0IgICAg
ICAgICAgICAgICAgICBeIDEuMDl4IHNtYWxsZXIKKworICAgICAgICAgICAgICAgIE1hbGxvY0Jl
bmNoPiB+L3dlYmtpdC9QZXJmb3JtYW5jZVRlc3RzL01hbGxvY0JlbmNoL3J1bi1tYWxsb2MtYmVu
Y2htYXJrcyBub3BhdGNoOn4vc2NyYXRjaC9CdWlsZC1ub3BhdGNoL1JlbGVhc2UvIHBhdGNoOn4v
d2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vcGF0Y2ggICAgICAgICAgICAgICAgcGF0Y2ggICAgICAgICAgICAgICAgICAgICAg
ICAgzpQKKyAgICAgICAgICAgICAgICBFeGVjdXRpb24gVGltZToKKyAgICAgICAgICAgICAgICAg
ICAgY2h1cm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI3bXMgICAgICAgICAgICAgICAg
MTUxbXMgICAgICAgICAgICAhIDEuMTl4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICBsaXN0
X2FsbG9jYXRlICAgICAgICAgICAgICAgICAgICAxMzBtcyAgICAgICAgICAgICAgICAxNjRtcyAg
ICAgICAgICAgICEgMS4yNnggc2xvd2VyCisgICAgICAgICAgICAgICAgICAgIHRyZWVfYWxsb2Nh
dGUgICAgICAgICAgICAgICAgICAgIDEwOW1zICAgICAgICAgICAgICAgIDEyN21zICAgICAgICAg
ICAgISAxLjE3eCBzbG93ZXIKKyAgICAgICAgICAgICAgICAgICAgdHJlZV9jaHVybiAgICAgICAg
ICAgICAgICAgICAgICAgMTE1bXMgICAgICAgICAgICAgICAgMTIwbXMgICAgICAgICAgICAhIDEu
MDR4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICBmYWNlYm9vayAgICAgICAgICAgICAgICAg
ICAgICAgICAyNDBtcyAgICAgICAgICAgICAgICAyNTltcyAgICAgICAgICAgICEgMS4wOHggc2xv
d2VyCisgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50ICAgICAgICAgICAgICAgICAgICAgICAg
ICA5MW1zICAgICAgICAgICAgICAgIDEzMW1zICAgICAgICAgICAgISAxLjQ0eCBzbG93ZXIKKyAg
ICAgICAgICAgICAgICAgICAgZnJhZ21lbnRfaXRlcmF0ZSAgICAgICAgICAgICAgICAgMTA1bXMg
ICAgICAgICAgICAgICAgMTA2bXMgICAgICAgICAgICAhIDEuMDF4IHNsb3dlcgorICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlX29uZSAgICAgICAgICAgICAgICAgICAgICAyNjBtcyAgICAgICAg
ICAgICAgICAyNTltcyAgICAgICAgICAgICBeIDEuMHggZmFzdGVyCisgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2VfbWFueSAgICAgICAgICAgICAgICAgICAgIDE0OW1zICAgICAgICAgICAgICAg
IDE1NG1zICAgICAgICAgICAgISAxLjAzeCBzbG93ZXIKKyAgICAgICAgICAgICAgICAgICAgbWVk
aXVtICAgICAgICAgICAgICAgICAgICAgICAgICAgMTk0bXMgICAgICAgICAgICAgICAgMjQ4bXMg
ICAgICAgICAgICAhIDEuMjh4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICBiaWcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNTdtcyAgICAgICAgICAgICAgICAxNjBtcyAgICAgICAg
ICAgICEgMS4wMnggc2xvd2VyCisKKyAgICAgICAgICAgICAgICAgICAgPGdlb21ldHJpYyBtZWFu
PiAgICAgICAgICAgICAgICAgMTQ0bXMgICAgICAgICAgICAgICAgMTYzbXMgICAgICAgICAgICAh
IDEuMTN4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICA8YXJpdGhtZXRpYyBtZWFuPiAgICAg
ICAgICAgICAgICAxNTJtcyAgICAgICAgICAgICAgICAxNzFtcyAgICAgICAgICAgICEgMS4xMngg
c2xvd2VyCisgICAgICAgICAgICAgICAgICAgIDxoYXJtb25pYyBtZWFuPiAgICAgICAgICAgICAg
ICAgIDEzN21zICAgICAgICAgICAgICAgIDE1Nm1zICAgICAgICAgICAgISAxLjE0eCBzbG93ZXIK
KworICAgICAgICAgICAgICAgIE1hbGxvY0JlbmNoPiB+L3dlYmtpdC9QZXJmb3JtYW5jZVRlc3Rz
L01hbGxvY0JlbmNoL3J1bi1tYWxsb2MtYmVuY2htYXJrcyBub3BhdGNoOn4vc2NyYXRjaC9CdWls
ZC1ub3BhdGNoL1JlbGVhc2UvIHBhdGNoOn4vd2Via2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9w
YXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgzpQKKyAgICAgICAgICAgICAgICBFeGVjdXRpb24gVGltZToKKyAgICAg
ICAgICAgICAgICAgICAgY2h1cm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMjZtcyAgICAgICAgICAgICAgICAgICAgICAgICAgMTQ4bXMgICAgICAgICAg
ICAgICAgICAgICAgICAhIDEuMTd4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICBjaHVybiAt
LXBhcmFsbGVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Mm1zICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNzZtcyAgICAgICAgICAgICAgICAgICAgICAgICEgMS4yM3gg
c2xvd2VyCisgICAgICAgICAgICAgICAgICAgIGxpc3RfYWxsb2NhdGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMwbXMgICAgICAgICAgICAgICAgICAgICAgICAgIDE2
NG1zICAgICAgICAgICAgICAgICAgICAgICAgISAxLjI2eCBzbG93ZXIKKyAgICAgICAgICAgICAg
ICAgICAgbGlzdF9hbGxvY2F0ZSAtLXBhcmFsbGVsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMjBtcyAgICAgICAgICAgICAgICAgICAgICAgICAgMTc1bXMgICAgICAgICAgICAgICAgICAg
ICAgICAhIDEuNDZ4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICB0cmVlX2FsbG9jYXRlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMW1zICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMjdtcyAgICAgICAgICAgICAgICAgICAgICAgICEgMS4xNHggc2xvd2VyCisg
ICAgICAgICAgICAgICAgICAgIHRyZWVfYWxsb2NhdGUgLS1wYXJhbGxlbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDk1bXMgICAgICAgICAgICAgICAgICAgICAgICAgIDEzNW1zICAgICAg
ICAgICAgICAgICAgICAgICAgISAxLjQyeCBzbG93ZXIKKyAgICAgICAgICAgICAgICAgICAgdHJl
ZV9jaHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTVtcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTI0bXMgICAgICAgICAgICAgICAgICAgICAgICAhIDEu
MDh4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICB0cmVlX2NodXJuIC0tcGFyYWxsZWwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwN21zICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMjZtcyAgICAgICAgICAgICAgICAgICAgICAgICEgMS4xOHggc2xvd2VyCisgICAgICAgICAg
ICAgICAgICAgIGZhY2Vib29rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjQwbXMgICAgICAgICAgICAgICAgICAgICAgICAgIDI3Nm1zICAgICAgICAgICAgICAg
ICAgICAgICAgISAxLjE1eCBzbG93ZXIKKyAgICAgICAgICAgICAgICAgICAgZmFjZWJvb2sgLS1w
YXJhbGxlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MDJtcyAgICAgICAgICAg
ICAgICAgICAgICAgIDEsMDg4bXMgICAgICAgICAgICAgICAgICAgICAgICAhIDEuMzZ4IHNsb3dl
cgorICAgICAgICAgICAgICAgICAgICBmcmFnbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5Mm1zICAgICAgICAgICAgICAgICAgICAgICAgICAxMzBtcyAg
ICAgICAgICAgICAgICAgICAgICAgICEgMS40MXggc2xvd2VyCisgICAgICAgICAgICAgICAgICAg
IGZyYWdtZW50IC0tcGFyYWxsZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY2
bXMgICAgICAgICAgICAgICAgICAgICAgICAgIDEyNG1zICAgICAgICAgICAgICAgICAgICAgICAg
ISAxLjg4eCBzbG93ZXIKKyAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRfaXRlcmF0ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDltcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTI3bXMgICAgICAgICAgICAgICAgICAgICAgICAhIDEuMTd4IHNsb3dlcgorICAgICAg
ICAgICAgICAgICAgICBmcmFnbWVudF9pdGVyYXRlIC0tcGFyYWxsZWwgICAgICAgICAgICAgICAg
ICAgICAgICAgICA1NW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgNjRtcyAgICAgICAgICAg
ICAgICAgICAgICAgICEgMS4xNnggc2xvd2VyCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Vf
b25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYwbXMgICAgICAg
ICAgICAgICAgICAgICAgICAgIDI2MG1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZV9tYW55ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNzBtcyAgICAgICAgICAgICAgICAgICAgICAgICAgMjM4
bXMgICAgICAgICAgICAgICAgICAgICAgICAgISAxLjR4IHNsb3dlcgorICAgICAgICAgICAgICAg
ICAgICBtZWRpdW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE4NW1zICAgICAgICAgICAgICAgICAgICAgICAgICAyNTBtcyAgICAgICAgICAgICAgICAgICAg
ICAgICEgMS4zNXggc2xvd2VyCisgICAgICAgICAgICAgICAgICAgIG1lZGl1bSAtLXBhcmFsbGVs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEwbXMgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMzNG1zICAgICAgICAgICAgICAgICAgICAgICAgISAxLjU5eCBzbG93ZXIKKyAg
ICAgICAgICAgICAgICAgICAgYmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNTBtcyAgICAgICAgICAgICAgICAgICAgICAgICAgMTY5bXMgICAgICAg
ICAgICAgICAgICAgICAgICAhIDEuMTN4IHNsb3dlcgorICAgICAgICAgICAgICAgICAgICBiaWcg
LS1wYXJhbGxlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzOG1zICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNDRtcyAgICAgICAgICAgICAgICAgICAgICAgICEgMS4w
NHggc2xvd2VyCisKKyAgICAgICAgICAgICAgICAgICAgPGdlb21ldHJpYyBtZWFuPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMzVtcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTcwbXMgICAgICAgICAgICAgICAgICAgICAgICAhIDEuMjZ4IHNsb3dlcgorICAgICAgICAg
ICAgICAgICAgICA8YXJpdGhtZXRpYyBtZWFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE2N21zICAgICAgICAgICAgICAgICAgICAgICAgICAyMTRtcyAgICAgICAgICAgICAg
ICAgICAgICAgICEgMS4yOHggc2xvd2VyCisgICAgICAgICAgICAgICAgICAgIDxoYXJtb25pYyBt
ZWFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTE3bXMgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE0OG1zICAgICAgICAgICAgICAgICAgICAgICAgISAxLjI2eCBzbG93
ZXIKKworICAgICAgICAgICAgICAgIE1hbGxvY0JlbmNoPiB+L3dlYmtpdC9QZXJmb3JtYW5jZVRl
c3RzL01hbGxvY0JlbmNoL3J1bi1tYWxsb2MtYmVuY2htYXJrcyBUQzp+L3NjcmF0Y2gvQnVpbGQt
VENNYWxsb2MvUmVsZWFzZS8gcGF0Y2g6fi93ZWJraXQvV2ViS2l0QnVpbGQvUmVsZWFzZS8KKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUQyAgICAgICAgICAgICAgICAgICAgICBwYXRjaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgzpQKKyAgICAgICAgICAgICAgICBQZWFrIE1lbW9yeToKKyAgICAgICAg
ICAgICAgICAgICAgcmVkZGl0X21lbW9yeV93YXJuaW5nICAgICAgICAgICAgICAgICAgICAgMTMs
ODM2a0IgICAgICAgICAgICAgICAgICAgMTMsNDM2a0IgICAgICAgICAgICAgICAgICBeIDEuMDN4
IHNtYWxsZXIKKyAgICAgICAgICAgICAgICAgICAgZmxpY2tyX21lbW9yeV93YXJuaW5nICAgICAg
ICAgICAgICAgICAgICAgMjQsODY4a0IgICAgICAgICAgICAgICAgICAgMjUsMTg4a0IgICAgICAg
ICAgICAgICAgICAgISAxLjAxeCBiaWdnZXIKKyAgICAgICAgICAgICAgICAgICAgdGhldmVyZ2Vf
bWVtb3J5X3dhcm5pbmcgICAgICAgICAgICAgICAgICAgMjQsNTA0a0IgICAgICAgICAgICAgICAg
ICAgMjYsNjM2a0IgICAgICAgICAgICAgICAgICAgISAxLjA5eCBiaWdnZXIKKworICAgICAgICAg
ICAgICAgICAgICA8Z2VvbWV0cmljIG1lYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwz
NTNrQiAgICAgICAgICAgICAgICAgICAyMCw4MTJrQiAgICAgICAgICAgICAgICAgICAhIDEuMDJ4
IGJpZ2dlcgorICAgICAgICAgICAgICAgICAgICA8YXJpdGhtZXRpYyBtZWFuPiAgICAgICAgICAg
ICAgICAgICAgICAgICAyMSwwNjlrQiAgICAgICAgICAgICAgICAgICAyMSw3NTNrQiAgICAgICAg
ICAgICAgICAgICAhIDEuMDN4IGJpZ2dlcgorICAgICAgICAgICAgICAgICAgICA8aGFybW9uaWMg
bWVhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAxOSw1NzBrQiAgICAgICAgICAgICAgICAg
ICAxOSw3ODBrQiAgICAgICAgICAgICAgICAgICAhIDEuMDF4IGJpZ2dlcgorCisgICAgICAgICAg
ICAgICAgTWVtb3J5IGF0IEVuZDoKKyAgICAgICAgICAgICAgICAgICAgcmVkZGl0X21lbW9yeV93
YXJuaW5nICAgICAgICAgICAgICAgICAgICAgIDgsNjU2a0IgICAgICAgICAgICAgICAgICAgMTAs
MDE2a0IgICAgICAgICAgICAgICAgICAgISAxLjE2eCBiaWdnZXIKKyAgICAgICAgICAgICAgICAg
ICAgZmxpY2tyX21lbW9yeV93YXJuaW5nICAgICAgICAgICAgICAgICAgICAgMTEsODQ0a0IgICAg
ICAgICAgICAgICAgICAgMTMsNzg0a0IgICAgICAgICAgICAgICAgICAgISAxLjE2eCBiaWdnZXIK
KyAgICAgICAgICAgICAgICAgICAgdGhldmVyZ2VfbWVtb3J5X3dhcm5pbmcgICAgICAgICAgICAg
ICAgICAgMTgsNTE2a0IgICAgICAgICAgICAgICAgICAgMjIsNzQ4a0IgICAgICAgICAgICAgICAg
ICAgISAxLjIzeCBiaWdnZXIKKworICAgICAgICAgICAgICAgICAgICA8Z2VvbWV0cmljIG1lYW4+
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMiwzODJrQiAgICAgICAgICAgICAgICAgICAxNCw2
NDRrQiAgICAgICAgICAgICAgICAgICAhIDEuMTh4IGJpZ2dlcgorICAgICAgICAgICAgICAgICAg
ICA8YXJpdGhtZXRpYyBtZWFuPiAgICAgICAgICAgICAgICAgICAgICAgICAxMywwMDVrQiAgICAg
ICAgICAgICAgICAgICAxNSw1MTZrQiAgICAgICAgICAgICAgICAgICAhIDEuMTl4IGJpZ2dlcgor
ICAgICAgICAgICAgICAgICAgICA8aGFybW9uaWMgbWVhbj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMSw4MTNrQiAgICAgICAgICAgICAgICAgICAxMyw4NjdrQiAgICAgICAgICAgICAgICAg
ICAhIDEuMTd4IGJpZ2dlcgorCisgICAgICAgICAgICAgICAgTWFsbG9jQmVuY2g+IH4vd2Via2l0
L1BlcmZvcm1hbmNlVGVzdHMvTWFsbG9jQmVuY2gvcnVuLW1hbGxvYy1iZW5jaG1hcmtzIFRDOn4v
c2NyYXRjaC9CdWlsZC1UQ01hbGxvYy9SZWxlYXNlLyBwYXRjaDp+L3dlYmtpdC9XZWJLaXRCdWls
ZC9SZWxlYXNlLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDICAg
ICAgICAgICAgICAgIHBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgIM6UCisgICAgICAgICAg
ICAgICAgRXhlY3V0aW9uIFRpbWU6CisgICAgICAgICAgICAgICAgICAgIGNodXJuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQxNm1zICAgICAgICAgICAgICAgIDE0OG1zICAgICAgICAgICAg
XiAyLjgxeCBmYXN0ZXIKKyAgICAgICAgICAgICAgICAgICAgbGlzdF9hbGxvY2F0ZSAgICAgICAg
ICAgICAgICAgICAgNDYzbXMgICAgICAgICAgICAgICAgMTY0bXMgICAgICAgICAgICBeIDIuODJ4
IGZhc3RlcgorICAgICAgICAgICAgICAgICAgICB0cmVlX2FsbG9jYXRlICAgICAgICAgICAgICAg
ICAgICAyOTJtcyAgICAgICAgICAgICAgICAxMjdtcyAgICAgICAgICAgICBeIDIuM3ggZmFzdGVy
CisgICAgICAgICAgICAgICAgICAgIHRyZWVfY2h1cm4gICAgICAgICAgICAgICAgICAgICAgIDE1
N21zICAgICAgICAgICAgICAgIDEyMG1zICAgICAgICAgICAgXiAxLjMxeCBmYXN0ZXIKKyAgICAg
ICAgICAgICAgICAgICAgZmFjZWJvb2sgICAgICAgICAgICAgICAgICAgICAgICAgMzI3bXMgICAg
ICAgICAgICAgICAgMjc2bXMgICAgICAgICAgICBeIDEuMTh4IGZhc3RlcgorICAgICAgICAgICAg
ICAgICAgICBmcmFnbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAzMzVtcyAgICAgICAgICAg
ICAgICAxMjltcyAgICAgICAgICAgICBeIDIuNnggZmFzdGVyCisgICAgICAgICAgICAgICAgICAg
IGZyYWdtZW50X2l0ZXJhdGUgICAgICAgICAgICAgICAgIDM0NG1zICAgICAgICAgICAgICAgIDEw
OG1zICAgICAgICAgICAgXiAzLjE5eCBmYXN0ZXIKKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZV9vbmUgICAgICAgICAgICAgICAgICAgICAgMzg2bXMgICAgICAgICAgICAgICAgMjU4bXMgICAg
ICAgICAgICAgXiAxLjV4IGZhc3RlcgorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlX21hbnkg
ICAgICAgICAgICAgICAgICAgICA0MTBtcyAgICAgICAgICAgICAgICAxNTRtcyAgICAgICAgICAg
IF4gMi42NnggZmFzdGVyCisgICAgICAgICAgICAgICAgICAgIG1lZGl1bSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM5MW1zICAgICAgICAgICAgICAgIDI0NW1zICAgICAgICAgICAgIF4gMS42
eCBmYXN0ZXIKKyAgICAgICAgICAgICAgICAgICAgYmlnICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjYxbXMgICAgICAgICAgICAgICAgMTY3bXMgICAgICAgICAgICBeIDEuNTZ4IGZhc3Rl
cgorCisgICAgICAgICAgICAgICAgICAgIDxnZW9tZXRyaWMgbWVhbj4gICAgICAgICAgICAgICAg
IDMzMm1zICAgICAgICAgICAgICAgIDE2NG1zICAgICAgICAgICAgXiAyLjAyeCBmYXN0ZXIKKyAg
ICAgICAgICAgICAgICAgICAgPGFyaXRobWV0aWMgbWVhbj4gICAgICAgICAgICAgICAgMzQ0bXMg
ICAgICAgICAgICAgICAgMTcybXMgICAgICAgICAgICBeIDEuOTl4IGZhc3RlcgorICAgICAgICAg
ICAgICAgICAgICA8aGFybW9uaWMgbWVhbj4gICAgICAgICAgICAgICAgICAzMTdtcyAgICAgICAg
ICAgICAgICAxNTdtcyAgICAgICAgICAgIF4gMi4wMnggZmFzdGVyCisKKyAgICAgICAgKiBibWFs
bG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYm1hbGxvYy9BbGxvY2F0
b3IuY3BwOgorICAgICAgICAoYm1hbGxvYzo6QWxsb2NhdG9yOjpBbGxvY2F0b3IpOiBEb24ndCBh
c3N1bWUgdGhhdCBlYWNoIGFsbG9jYXRvcidzCisgICAgICAgIGluZGV4IGNvcnJlc3BvbmRzIHdp
dGggaXRzIHNpemUuIEluc3RlYWQsIHVzZSB0aGUgc2l6ZSBzZWxlY3Rpb24gZnVuY3Rpb24KKyAg
ICAgICAgZXhwbGljaXRseS4gTm93IHRoYXQgd2UgaGF2ZSBYU21hbGwsIHNvbWUgc21hbGwgYWxs
b2NhdG9yIGVudHJpZXMgYXJlCisgICAgICAgIHVudXNlZC4KKworICAgICAgICAoYm1hbGxvYzo6
QWxsb2NhdG9yOjpzY2F2ZW5nZSk6CisgICAgICAgIChibWFsbG9jOjpBbGxvY2F0b3I6OmxvZyk6
CisgICAgICAgIChibWFsbG9jOjpBbGxvY2F0b3I6OnByb2Nlc3NYU21hbGxBbGxvY2F0b3JMb2cp
OgorICAgICAgICAoYm1hbGxvYzo6QWxsb2NhdG9yOjphbGxvY2F0ZVNsb3dDYXNlKToKKyAgICAg
ICAgKiBibWFsbG9jL0FsbG9jYXRvci5oOgorICAgICAgICAoYm1hbGxvYzo6QWxsb2NhdG9yOjp4
U21hbGxBbGxvY2F0b3JGb3IpOgorICAgICAgICAoYm1hbGxvYzo6QWxsb2NhdG9yOjphbGxvY2F0
ZUZhc3RDYXNlKToKKyAgICAgICAgKiBibWFsbG9jL0NodW5rLmg6CisgICAgICAgICogYm1hbGxv
Yy9EZWFsbG9jYXRvci5jcHA6CisgICAgICAgIChibWFsbG9jOjpEZWFsbG9jYXRvcjo6c2NhdmVu
Z2UpOgorICAgICAgICAoYm1hbGxvYzo6RGVhbGxvY2F0b3I6OnByb2Nlc3NPYmplY3RMb2cpOgor
ICAgICAgICAoYm1hbGxvYzo6RGVhbGxvY2F0b3I6OmRlYWxsb2NhdGVTbG93Q2FzZSk6CisgICAg
ICAgIChibWFsbG9jOjpEZWFsbG9jYXRvcjo6ZGVhbGxvY2F0ZVhTbWFsbExpbmUpOgorICAgICAg
ICAoYm1hbGxvYzo6RGVhbGxvY2F0b3I6OmFsbG9jYXRlWFNtYWxsTGluZSk6CisgICAgICAgICog
Ym1hbGxvYy9EZWFsbG9jYXRvci5oOgorICAgICAgICAoYm1hbGxvYzo6RGVhbGxvY2F0b3I6OmRl
YWxsb2NhdGVGYXN0Q2FzZSk6CisgICAgICAgICogYm1hbGxvYy9IZWFwLmNwcDoKKyAgICAgICAg
KGJtYWxsb2M6OkhlYXA6OnNjYXZlbmdlKToKKyAgICAgICAgKGJtYWxsb2M6OkhlYXA6OnNjYXZl
bmdlWFNtYWxsUGFnZXMpOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6YWxsb2NhdGVYU21hbGxM
aW5lU2xvd0Nhc2UpOgorICAgICAgICAqIGJtYWxsb2MvSGVhcC5oOgorICAgICAgICAoYm1hbGxv
Yzo6SGVhcDo6ZGVhbGxvY2F0ZVhTbWFsbExpbmUpOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6
YWxsb2NhdGVYU21hbGxMaW5lKToKKyAgICAgICAgKiBibWFsbG9jL0xhcmdlQ2h1bmsuaDoKKyAg
ICAgICAgKGJtYWxsb2M6OkxhcmdlQ2h1bms6OmdldCk6CisgICAgICAgIChibWFsbG9jOjpMYXJn
ZUNodW5rOjplbmRUYWcpOgorICAgICAgICAqIGJtYWxsb2MvTGluZS5oOgorICAgICAgICAqIGJt
YWxsb2MvTWVkaXVtQWxsb2NhdG9yLmg6CisgICAgICAgIChibWFsbG9jOjpNZWRpdW1BbGxvY2F0
b3I6OmFsbG9jYXRlKToKKyAgICAgICAgKGJtYWxsb2M6Ok1lZGl1bUFsbG9jYXRvcjo6cmVmaWxs
KToKKyAgICAgICAgKiBibWFsbG9jL09iamVjdFR5cGUuY3BwOgorICAgICAgICAoYm1hbGxvYzo6
b2JqZWN0VHlwZSk6CisgICAgICAgICogYm1hbGxvYy9PYmplY3RUeXBlLmg6CisgICAgICAgIChi
bWFsbG9jOjppc1hTbWFsbCk6CisgICAgICAgIChibWFsbG9jOjppc1NtYWxsKToKKyAgICAgICAg
KGJtYWxsb2M6OmlzTWVkaXVtKToKKyAgICAgICAgKGJtYWxsb2M6OmlzTGFyZ2UpOgorICAgICAg
ICAoYm1hbGxvYzo6aXNTbWFsbE9yTWVkaXVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBibWFsbG9j
L1NlZ3JlZ2F0ZWRGcmVlTGlzdC5oOiBJIGJvaWxlci1wbGF0ZSBjb3BpZWQgZXhpc3RpbmcgY29k
ZSBmb3IKKyAgICAgICAgaGFuZGxpbmcgc21hbGwgb2JqZWN0cy4gVGhlcmUncyBwcm9iYWJseSBh
IHJlYXNvbmFibGUgd2F5IHRvIHNoYXJlIHRoaXMKKyAgICAgICAgY29kZSBpbiB0aGUgZnV0dXJl
IC0tIEknbGwgbG9vayBpbnRvIHRoYXQgb25jZSBpdCdzIHN0b3BwZWQgY2hhbmdpbmcuCisKKyAg
ICAgICAgKiBibWFsbG9jL1NpemVzLmg6IFR3ZWFrZWQgc2l6ZSBjbGFzc2VzIHRvIG1ha2UgTWVt
YnVzdGVyIGhhcHB5LiBUaGlzCisgICAgICAgIGlzIHRoZSBtYWluIHJlYXNvbiB0aGluZ3MgZ290
IHNsb3dlci4KKworICAgICAgICAqIGJtYWxsb2MvU21hbGxBbGxvY2F0b3IuaDoKKyAgICAgICAg
KGJtYWxsb2M6OlNtYWxsQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisgICAgICAgICogYm1hbGxvYy9T
bWFsbFRyYWl0cy5oOgorICAgICAgICAqIGJtYWxsb2MvVk1IZWFwLmNwcDoKKyAgICAgICAgKGJt
YWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVYU21hbGxDaHVuayk6CisgICAgICAgICogYm1hbGxvYy9W
TUhlYXAuaDoKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVYU21hbGxQYWdlKToK
KyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6ZGVhbGxvY2F0ZVhTbWFsbFBhZ2UpOgorICAgICAg
ICAqIGJtYWxsb2MvWFNtYWxsQWxsb2NhdG9yLmg6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6
WFNtYWxsQWxsb2NhdG9yOjppc051bGwpOgorICAgICAgICAoYm1hbGxvYzo6WFNtYWxsQWxsb2Nh
dG9yOjpjYW5BbGxvY2F0ZSk6CisgICAgICAgIChibWFsbG9jOjpYU21hbGxBbGxvY2F0b3I6OlhT
bWFsbEFsbG9jYXRvcik6CisgICAgICAgIChibWFsbG9jOjpYU21hbGxBbGxvY2F0b3I6OmxpbmUp
OgorICAgICAgICAoYm1hbGxvYzo6WFNtYWxsQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisgICAgICAg
IChibWFsbG9jOjpYU21hbGxBbGxvY2F0b3I6Om9iamVjdENvdW50KToKKyAgICAgICAgKGJtYWxs
b2M6OlhTbWFsbEFsbG9jYXRvcjo6ZGVyZWZDb3VudCk6CisgICAgICAgIChibWFsbG9jOjpYU21h
bGxBbGxvY2F0b3I6OnJlZmlsbCk6CisgICAgICAgICogYm1hbGxvYy9YU21hbGxDaHVuay5oOiBB
ZGRlZC4KKyAgICAgICAgKiBibWFsbG9jL1hTbWFsbExpbmUuaDogQWRkZWQuCisgICAgICAgICog
Ym1hbGxvYy9YU21hbGxQYWdlLmg6IEFkZGVkLgorICAgICAgICAqIGJtYWxsb2MvWFNtYWxsVHJh
aXRzLmg6IEFkZGVkLgorICAgICAgICAqIGJtYWxsb2MvYm1hbGxvYy5oOgorICAgICAgICAoYm1h
bGxvYzo6YXBpOjpyZWFsbG9jKTogQm9pbGVyLXBsYXRlIGNvcHksIGFzIGFib3ZlLgorCiAyMDE0
LTA0LTE0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFs
bG9jQmVuY2ggc2hvdWxkIHNjYXZlbmdlIGV4cGxpY2l0bHkgaW5zdGVhZCBvZiB3YWl0aW5nCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxNjczNTMpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDExIEBACiAJCTE0
MDAyNzRBMThGODlDMjMwMDExNUM5NyAvKiBWTUhlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEY3QkZDMThCRkM1MTcwMDM1MzdGMyAvKiBWTUhl
YXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
NDAwMjc0QjE4Rjg5QzNEMDAxMTVDOTcgLyogQm91bmRhcnlUYWdJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDEwNUU3QjE4REJEN0FGMDAz
QTEwNkUgLyogQm91bmRhcnlUYWdJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQwMDI3NEMxOEY4OUMzRDAwMTE1Qzk3IC8qIFNlZ3Jl
Z2F0ZWRGcmVlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ2QkVFMUUxOEM4NDFDNTAwMDJENUEyIC8qIFNlZ3JlZ2F0ZWRGcmVlTGlzdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE0MkZDQzc4
MTkwMDgwQjgwMDkwMzJENCAvKiBYU21hbGxDaHVuay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQyRkNDNzQxOTAwODBCODAwOTAzMkQ0IC8qIFhTbWFs
bENodW5rLmggKi87IH07CisJCTE0MkZDQzc5MTkwMDgwQjgwMDkwMzJENCAvKiBYU21hbGxMaW5l
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDJGQ0M3
NTE5MDA4MEI4MDA5MDMyRDQgLyogWFNtYWxsTGluZS5oICovOyB9OworCQkxNDJGQ0M3QTE5MDA4
MEI4MDA5MDMyRDQgLyogWFNtYWxsUGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQyRkNDNzYxOTAwODBCODAwOTAzMkQ0IC8qIFhTbWFsbFBhZ2Uu
aCAqLzsgfTsKKwkJMTQyRkNDN0IxOTAwODBCODAwOTAzMkQ0IC8qIFhTbWFsbFRyYWl0cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQyRkNDNzcxOTAw
ODBCODAwOTAzMkQ0IC8qIFhTbWFsbFRyYWl0cy5oICovOyB9OworCQkxNDJGQ0M3RDE5MDA4MTVF
MDA5MDMyRDQgLyogWFNtYWxsQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDJGQ0M3QzE5MDA4MTVFMDA5MDMyRDQgLyogWFNtYWxsQWxs
b2NhdG9yLmggKi87IH07CiAJCTE0NDhDMzAwMThGMzc1NDYwMDUwMjgzOSAvKiBtYm1hbGxvYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ4QzJG
RjE4RjM3NTQzMDA1MDI4MzkgLyogbWJtYWxsb2MuY3BwICovOyB9OwogCQkxNDQ4QzMwMTE4RjM3
NTRDMDA1MDI4MzkgLyogYm1hbGxvYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTQ0OEMyRkUxOEYzNzU0MzAwNTAyODM5IC8qIGJtYWxsb2MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEM5MTlDOTE4
RkNDNTlGMDAyOERCNDMgLyogQlBsYXRmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNEM5MTlDODE4RkNDNTlGMDAyOERCNDMgLyogQlBsYXRmb3Jt
LmggKi87IH07CkBAIC04Miw2ICs4NywxMSBAQAogCQkxNDE3RjY0RjE4QjcyODBDMDA3NkZBM0Yg
LyogU3lzY2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTeXNjYWxsLmg7
IHBhdGggPSBibWFsbG9jL1N5c2NhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTQxN0Y2NTIxOEJBODhBMDAwNzZGQTNGIC8qIEFzeW5jVGFzay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBBc3luY1Rhc2suaDsgcGF0aCA9IGJtYWxsb2MvQXN5bmNUYXNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MjFBODc3MThFRTQ2MkEwMEI0REQ2OCAv
KiBBbGdvcml0aG0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWxnb3JpdGhtLmg7IHBhdGggPSBibWFsbG9j
L0FsZ29yaXRobS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDJGQ0M3NDE5MDA4
MEI4MDA5MDMyRDQgLyogWFNtYWxsQ2h1bmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gWFNtYWxsQ2h1bmsuaDsgcGF0aCA9IGJtYWxsb2MvWFNtYWxsQ2h1bmsuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQyRkNDNzUxOTAwODBCODAwOTAzMkQ0IC8qIFhTbWFs
bExpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWFNtYWxsTGluZS5oOyBw
YXRoID0gYm1hbGxvYy9YU21hbGxMaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTE0MkZDQzc2MTkwMDgwQjgwMDkwMzJENCAvKiBYU21hbGxQYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFhTbWFsbFBhZ2UuaDsgcGF0aCA9IGJtYWxsb2MvWFNtYWxsUGFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDJGQ0M3NzE5MDA4MEI4MDA5MDMy
RDQgLyogWFNtYWxsVHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFhT
bWFsbFRyYWl0cy5oOyBwYXRoID0gYm1hbGxvYy9YU21hbGxUcmFpdHMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMTQyRkNDN0MxOTAwODE1RTAwOTAzMkQ0IC8qIFhTbWFsbEFsbG9j
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBYU21hbGxBbGxvY2F0b3Iu
aDsgcGF0aCA9IGJtYWxsb2MvWFNtYWxsQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0M0UyOUU5MThDQUU4QkUwMEZFOEEwRiAvKiBNZWRpdW1QYWdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGl1bVBhZ2UuaDsgcGF0aCA9IGJtYWxsb2Mv
TWVkaXVtUGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDNFMjlFRDE4Q0FF
OTA1MDBGRThBMEYgLyogU21hbGxQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFNtYWxsUGFnZS5oOyBwYXRoID0gYm1hbGxvYy9TbWFsbFBhZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0NDY5RTQxN0E0NkJGRTAwRjlFQTFEIC8qIENhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IG5hbWUgPSBDYWNo
ZS5jcHA7IHBhdGggPSBibWFsbG9jL0NhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
eGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CkBA
IC0xOTUsNiArMjA1LDEwIEBACiAJCQkJMTQ1MjQ3ODYxOEJDNzU3QzAwRjgwMDk4IC8qIFNtYWxs
TGluZS5oICovLAogCQkJCTE0M0UyOUVEMThDQUU5MDUwMEZFOEEwRiAvKiBTbWFsbFBhZ2UuaCAq
LywKIAkJCQkxNDdBQUE5NzE4Q0U1RkI2MDAyMjAxRTQgLyogU21hbGxUcmFpdHMuaCAqLywKKwkJ
CQkxNDJGQ0M3NDE5MDA4MEI4MDA5MDMyRDQgLyogWFNtYWxsQ2h1bmsuaCAqLywKKwkJCQkxNDJG
Q0M3NTE5MDA4MEI4MDA5MDMyRDQgLyogWFNtYWxsTGluZS5oICovLAorCQkJCTE0MkZDQzc2MTkw
MDgwQjgwMDkwMzJENCAvKiBYU21hbGxQYWdlLmggKi8sCisJCQkJMTQyRkNDNzcxOTAwODBCODAw
OTAzMkQ0IC8qIFhTbWFsbFRyYWl0cy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiaGVhcDogc21h
bGwgfCBtZWRpdW0iOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzNyw2ICsyNTEs
NyBAQAogCQkJCTE0NUY2ODVBMTc5REM5MDIwMEQ2NTU5OCAvKiBEZWFsbG9jYXRvci5oICovLAog
CQkJCTE0MTNFNDcwMThBMDY2MTcwMDU0NkQ2OCAvKiBNZWRpdW1BbGxvY2F0b3IuaCAqLywKIAkJ
CQkxNDEzRTQ2MjE4OURFMUNEMDA1NDZENjggLyogU21hbGxBbGxvY2F0b3IuaCAqLywKKwkJCQkx
NDJGQ0M3QzE5MDA4MTVFMDA5MDMyRDQgLyogWFNtYWxsQWxsb2NhdG9yLmggKi8sCiAJCQkpOwog
CQkJbmFtZSA9IGNhY2hlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI5MCw2ICsz
MDUsNyBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMTQyRkNDN0IxOTAwODBCODAwOTAz
MkQ0IC8qIFhTbWFsbFRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QjUxOEY0OEQ2
QjAwOTUwNzAyIC8qIExpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3OENGMThGNDhENzUw
MDk1MDcwMiAvKiBWZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QzkxOUM5MThGQ0M1OUYw
MDI4REI0MyAvKiBCUGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLApAQCAtMjk4LDYgKzMxNCw3IEBA
CiAJCQkJMTRERDc4Q0MxOEY0OEQ3NTAwOTUwNzAyIC8qIFBlclRocmVhZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTRERDc4QjQxOEY0OEQ2QjAwOTUwNzAyIC8qIENodW5rLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNERENzhDQTE4RjQ4RDc1MDA5NTA3MDIgLyogTXV0ZXguaCBpbiBIZWFkZXJzICov
LAorCQkJCTE0MkZDQzdEMTkwMDgxNUUwMDkwMzJENCAvKiBYU21hbGxBbGxvY2F0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0REQ3OEQxMThGNDhFQzYwMDk1MDcwMiAvKiBYTGFyZ2VDaHVuay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QjkxOEY0OEQ2QjAwOTUwNzAyIC8qIE1lZGl1bVRy
YWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0OEMzMDExOEYzNzU0QzAwNTAyODM5IC8qIGJt
YWxsb2MuaCBpbiBIZWFkZXJzICovLApAQCAtMzE4LDExICszMzUsMTQgQEAKIAkJCQkxNERENzhC
QjE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxDaHVuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRE
RDc4QzkxOEY0OEQ3NTAwOTUwNzAyIC8qIElubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQw
MDI3NEExOEY4OUMyMzAwMTE1Qzk3IC8qIFZNSGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQy
RkNDN0ExOTAwODBCODAwOTAzMkQ0IC8qIFhTbWFsbFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0MDAyNzQ5MThGODlDMTMwMDExNUM5NyAvKiBIZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NERENzhCODE4RjQ4RDZCMDA5NTA3MDIgLyogTWVkaXVtUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTRERDc4QzUxOEY0OEQ3NTAwOTUwNzAyIC8qIEFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTRERDc4QkQxOEY0OEQ2QjAwOTUwNzAyIC8qIFNtYWxsUGFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQwMDI3NEIxOEY4OUMzRDAwMTE1Qzk3IC8qIEJvdW5kYXJ5VGFnSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMTQyRkNDNzkxOTAwODBCODAwOTAzMkQ0IC8qIFhTbWFsbExp
bmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0MkZDQzc4MTkwMDgwQjgwMDkwMzJENCAvKiBYU21h
bGxDaHVuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OEUxOEY0OENDRDAwOTUwNzAyIC8q
IEJvdW5kYXJ5VGFnLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhDODE4RjQ4RDc1MDA5NTA3
MDIgLyogRml4ZWRWZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3OEI3MThGNDhENkIw
MDk1MDcwMiAvKiBNZWRpdW1MaW5lLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvQWxsb2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0FsbG9jYXRvci5jcHAJKHJldmlzaW9uIDE2NzM1MykKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvQWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQzLDExIEBA
IEFsbG9jYXRvcjo6QWxsb2NhdG9yKERlYWxsb2NhdG9yJiBkZWFsbG8KICAgICAsIG1fbWVkaXVt
QWxsb2NhdG9yTG9nKCkKIHsKICAgICB1bnNpZ25lZCBzaG9ydCBzaXplID0gYWxpZ25tZW50Owot
ICAgIGZvciAoYXV0byYgYWxsb2NhdG9yIDogbV9zbWFsbEFsbG9jYXRvcnMpIHsKLSAgICAgICAg
YWxsb2NhdG9yID0gU21hbGxBbGxvY2F0b3Ioc2l6ZSk7Ci0gICAgICAgIHNpemUgKz0gYWxpZ25t
ZW50OwotICAgIH0KKyAgICBmb3IgKCA7IHNpemUgPD0geFNtYWxsTWF4OyBzaXplICs9IGFsaWdu
bWVudCkKKyAgICAgICAgeFNtYWxsQWxsb2NhdG9yRm9yKHNpemUpID0gWFNtYWxsQWxsb2NhdG9y
KHNpemUpOworCisgICAgZm9yICggOyBzaXplIDw9IHNtYWxsTWF4OyBzaXplICs9IGFsaWdubWVu
dCkKKyAgICAgICAgc21hbGxBbGxvY2F0b3JGb3Ioc2l6ZSkgPSBTbWFsbEFsbG9jYXRvcihzaXpl
KTsKIH0KIAogQWxsb2NhdG9yOjp+QWxsb2NhdG9yKCkKQEAgLTU2LDYgKzU3LDEwIEBAIEFsbG9j
YXRvcjo6fkFsbG9jYXRvcigpCiAgICAgCiB2b2lkIEFsbG9jYXRvcjo6c2NhdmVuZ2UoKQogewor
ICAgIGZvciAoYXV0byYgYWxsb2NhdG9yIDogbV94U21hbGxBbGxvY2F0b3JzKQorICAgICAgICBs
b2coYWxsb2NhdG9yKTsKKyAgICBwcm9jZXNzWFNtYWxsQWxsb2NhdG9yTG9nKCk7CisKICAgICBm
b3IgKGF1dG8mIGFsbG9jYXRvciA6IG1fc21hbGxBbGxvY2F0b3JzKQogICAgICAgICBsb2coYWxs
b2NhdG9yKTsKICAgICBwcm9jZXNzU21hbGxBbGxvY2F0b3JMb2coKTsKQEAgLTY0LDE0ICs2OSwz
NyBAQCB2b2lkIEFsbG9jYXRvcjo6c2NhdmVuZ2UoKQogICAgIHByb2Nlc3NNZWRpdW1BbGxvY2F0
b3JMb2coKTsKIH0KIAotdm9pZCBBbGxvY2F0b3I6OmxvZyhTbWFsbEFsbG9jYXRvciYgYWxsb2Nh
dG9yKQordm9pZCBBbGxvY2F0b3I6OmxvZyhYU21hbGxBbGxvY2F0b3ImIGFsbG9jYXRvcikKIHsK
LSAgICBpZiAobV9zbWFsbEFsbG9jYXRvckxvZy5zaXplKCkgPT0gbV9zbWFsbEFsbG9jYXRvckxv
Zy5jYXBhY2l0eSgpKQotICAgICAgICBwcm9jZXNzU21hbGxBbGxvY2F0b3JMb2coKTsKKyAgICBp
ZiAoYWxsb2NhdG9yLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV94U21h
bGxBbGxvY2F0b3JMb2cuc2l6ZSgpID09IG1feFNtYWxsQWxsb2NhdG9yTG9nLmNhcGFjaXR5KCkp
CisgICAgICAgIHByb2Nlc3NYU21hbGxBbGxvY2F0b3JMb2coKTsKICAgICAKKyAgICBtX3hTbWFs
bEFsbG9jYXRvckxvZy5wdXNoKHN0ZDo6bWFrZV9wYWlyKGFsbG9jYXRvci5saW5lKCksIGFsbG9j
YXRvci5kZXJlZkNvdW50KCkpKTsKK30KKwordm9pZCBBbGxvY2F0b3I6OnByb2Nlc3NYU21hbGxB
bGxvY2F0b3JMb2coKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxNdXRleD4gbG9jayhQZXJQcm9j
ZXNzPEhlYXA+OjptdXRleCgpKTsKKworICAgIGZvciAoYXV0byYgbG9nRW50cnkgOiBtX3hTbWFs
bEFsbG9jYXRvckxvZykgeworICAgICAgICBpZiAoIWxvZ0VudHJ5LmZpcnN0LT5kZXJlZihsb2Nr
LCBsb2dFbnRyeS5zZWNvbmQpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIG1fZGVh
bGxvY2F0b3IuZGVhbGxvY2F0ZVhTbWFsbExpbmUobG9jaywgbG9nRW50cnkuZmlyc3QpOworICAg
IH0KKyAgICBtX3hTbWFsbEFsbG9jYXRvckxvZy5jbGVhcigpOworfQorCit2b2lkIEFsbG9jYXRv
cjo6bG9nKFNtYWxsQWxsb2NhdG9yJiBhbGxvY2F0b3IpCit7CiAgICAgaWYgKGFsbG9jYXRvci5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fc21hbGxBbGxvY2F0b3JMb2cu
c2l6ZSgpID09IG1fc21hbGxBbGxvY2F0b3JMb2cuY2FwYWNpdHkoKSkKKyAgICAgICAgcHJvY2Vz
c1NtYWxsQWxsb2NhdG9yTG9nKCk7CisgICAgCiAgICAgbV9zbWFsbEFsbG9jYXRvckxvZy5wdXNo
KHN0ZDo6bWFrZV9wYWlyKGFsbG9jYXRvci5saW5lKCksIGFsbG9jYXRvci5kZXJlZkNvdW50KCkp
KTsKIH0KIApAQCAtODksMTIgKzExNywxMiBAQCB2b2lkIEFsbG9jYXRvcjo6cHJvY2Vzc1NtYWxs
QWxsb2NhdG9yTG9nCiAKIHZvaWQgQWxsb2NhdG9yOjpsb2coTWVkaXVtQWxsb2NhdG9yJiBhbGxv
Y2F0b3IpCiB7Ci0gICAgaWYgKG1fbWVkaXVtQWxsb2NhdG9yTG9nLnNpemUoKSA9PSBtX21lZGl1
bUFsbG9jYXRvckxvZy5jYXBhY2l0eSgpKQotICAgICAgICBwcm9jZXNzTWVkaXVtQWxsb2NhdG9y
TG9nKCk7Ci0KICAgICBpZiAoYWxsb2NhdG9yLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAK
KyAgICBpZiAobV9tZWRpdW1BbGxvY2F0b3JMb2cuc2l6ZSgpID09IG1fbWVkaXVtQWxsb2NhdG9y
TG9nLmNhcGFjaXR5KCkpCisgICAgICAgIHByb2Nlc3NNZWRpdW1BbGxvY2F0b3JMb2coKTsKKwog
ICAgIG1fbWVkaXVtQWxsb2NhdG9yTG9nLnB1c2goc3RkOjptYWtlX3BhaXIoYWxsb2NhdG9yLmxp
bmUoKSwgYWxsb2NhdG9yLmRlcmVmQ291bnQoKSkpOwogfQogCkBAIC0xNDQsNiArMTcyLDEzIEBA
IElGX0RFQlVHKAogICAgIHZvaWQqIGR1bW15OwogICAgIEJBU1NFUlQoIWFsbG9jYXRlRmFzdENh
c2Uoc2l6ZSwgZHVtbXkpKTsKICkKKyAgICBpZiAoc2l6ZSA8PSB4U21hbGxNYXgpIHsKKyAgICAg
ICAgWFNtYWxsQWxsb2NhdG9yJiBhbGxvY2F0b3IgPSB4U21hbGxBbGxvY2F0b3JGb3Ioc2l6ZSk7
CisgICAgICAgIGxvZyhhbGxvY2F0b3IpOworICAgICAgICBhbGxvY2F0b3IucmVmaWxsKG1fZGVh
bGxvY2F0b3IuYWxsb2NhdGVYU21hbGxMaW5lKCkpOworICAgICAgICByZXR1cm4gYWxsb2NhdG9y
LmFsbG9jYXRlKCk7CisgICAgfQorCiAgICAgaWYgKHNpemUgPD0gc21hbGxNYXgpIHsKICAgICAg
ICAgU21hbGxBbGxvY2F0b3ImIGFsbG9jYXRvciA9IHNtYWxsQWxsb2NhdG9yRm9yKHNpemUpOwog
ICAgICAgICBsb2coYWxsb2NhdG9yKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxs
b2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9BbGxvY2F0b3Iu
aAkocmV2aXNpb24gMTY3MzUzKQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9BbGxvY2F0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1lZGl1bUFsbG9j
YXRvci5oIgogI2luY2x1ZGUgIlNpemVzLmgiCiAjaW5jbHVkZSAiU21hbGxBbGxvY2F0b3IuaCIK
KyNpbmNsdWRlICJYU21hbGxBbGxvY2F0b3IuaCIKICNpbmNsdWRlIDxhcnJheT4KIAogbmFtZXNw
YWNlIGJtYWxsb2MgewpAQCAtNTAsMjggKzUxLDQwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjYXZl
bmdlKCk7CiAKIHByaXZhdGU6CisgICAgWFNtYWxsQWxsb2NhdG9yJiB4U21hbGxBbGxvY2F0b3JG
b3Ioc2l6ZV90KTsKICAgICBTbWFsbEFsbG9jYXRvciYgc21hbGxBbGxvY2F0b3JGb3Ioc2l6ZV90
KTsKKyAgICAKICAgICB2b2lkKiBhbGxvY2F0ZUZhc3RDYXNlKFNtYWxsQWxsb2NhdG9yJik7CiAK
ICAgICB2b2lkKiBhbGxvY2F0ZU1lZGl1bShzaXplX3QpOwogICAgIHZvaWQqIGFsbG9jYXRlTGFy
Z2Uoc2l6ZV90KTsKICAgICB2b2lkKiBhbGxvY2F0ZVhMYXJnZShzaXplX3QpOwogICAgIAorICAg
IHZvaWQgbG9nKFhTbWFsbEFsbG9jYXRvciYpOwogICAgIHZvaWQgbG9nKFNtYWxsQWxsb2NhdG9y
Jik7CiAgICAgdm9pZCBsb2coTWVkaXVtQWxsb2NhdG9yJik7CiAKKyAgICB2b2lkIHByb2Nlc3NY
U21hbGxBbGxvY2F0b3JMb2coKTsKICAgICB2b2lkIHByb2Nlc3NTbWFsbEFsbG9jYXRvckxvZygp
OwogICAgIHZvaWQgcHJvY2Vzc01lZGl1bUFsbG9jYXRvckxvZygpOwogCiAgICAgRGVhbGxvY2F0
b3ImIG1fZGVhbGxvY2F0b3I7CiAKKyAgICBzdGQ6OmFycmF5PFhTbWFsbEFsbG9jYXRvciwgeFNt
YWxsTWF4IC8gYWxpZ25tZW50PiBtX3hTbWFsbEFsbG9jYXRvcnM7CiAgICAgc3RkOjphcnJheTxT
bWFsbEFsbG9jYXRvciwgc21hbGxNYXggLyBhbGlnbm1lbnQ+IG1fc21hbGxBbGxvY2F0b3JzOwog
ICAgIE1lZGl1bUFsbG9jYXRvciBtX21lZGl1bUFsbG9jYXRvcjsKIAorICAgIEZpeGVkVmVjdG9y
PHN0ZDo6cGFpcjxYU21hbGxMaW5lKiwgdW5zaWduZWQgY2hhcj4sIHhTbWFsbEFsbG9jYXRvckxv
Z0NhcGFjaXR5PiBtX3hTbWFsbEFsbG9jYXRvckxvZzsKICAgICBGaXhlZFZlY3RvcjxzdGQ6OnBh
aXI8U21hbGxMaW5lKiwgdW5zaWduZWQgY2hhcj4sIHNtYWxsQWxsb2NhdG9yTG9nQ2FwYWNpdHk+
IG1fc21hbGxBbGxvY2F0b3JMb2c7CiAgICAgRml4ZWRWZWN0b3I8c3RkOjpwYWlyPE1lZGl1bUxp
bmUqLCB1bnNpZ25lZCBjaGFyPiwgbWVkaXVtQWxsb2NhdG9yTG9nQ2FwYWNpdHk+IG1fbWVkaXVt
QWxsb2NhdG9yTG9nOwogfTsKIAoraW5saW5lIFhTbWFsbEFsbG9jYXRvciYgQWxsb2NhdG9yOjp4
U21hbGxBbGxvY2F0b3JGb3Ioc2l6ZV90IHNpemUpCit7CisgICAgc2l6ZV90IGluZGV4ID0gbWFz
aygoc2l6ZSAtIDF1bCkgLyBhbGlnbm1lbnQsIG1feFNtYWxsQWxsb2NhdG9ycy5zaXplKCkgLSAx
KTsKKyAgICByZXR1cm4gbV94U21hbGxBbGxvY2F0b3JzW2luZGV4XTsKK30KKwogaW5saW5lIFNt
YWxsQWxsb2NhdG9yJiBBbGxvY2F0b3I6OnNtYWxsQWxsb2NhdG9yRm9yKHNpemVfdCBzaXplKQog
ewogICAgIHNpemVfdCBpbmRleCA9IG1hc2soKHNpemUgLSAxdWwpIC8gYWxpZ25tZW50LCBtX3Nt
YWxsQWxsb2NhdG9ycy5zaXplKCkgLSAxKTsKQEAgLTgwLDE1ICs5MywyNSBAQCBpbmxpbmUgU21h
bGxBbGxvY2F0b3ImIEFsbG9jYXRvcjo6c21hbGxBCiAKIGlubGluZSBib29sIEFsbG9jYXRvcjo6
YWxsb2NhdGVGYXN0Q2FzZShzaXplX3Qgc2l6ZSwgdm9pZComIG9iamVjdCkKIHsKLSAgICBpZiAo
c2l6ZSA+IHNtYWxsTWF4KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTbWFsbEFsbG9j
YXRvciYgYWxsb2NhdG9yID0gc21hbGxBbGxvY2F0b3JGb3Ioc2l6ZSk7Ci0gICAgaWYgKCFhbGxv
Y2F0b3IuY2FuQWxsb2NhdGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgb2JqZWN0
ID0gYWxsb2NhdG9yLmFsbG9jYXRlKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHNpemUg
PD0geFNtYWxsTWF4KSB7CisgICAgICAgIFhTbWFsbEFsbG9jYXRvciYgYWxsb2NhdG9yID0geFNt
YWxsQWxsb2NhdG9yRm9yKHNpemUpOworICAgICAgICBpZiAoIWFsbG9jYXRvci5jYW5BbGxvY2F0
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgb2JqZWN0
ID0gYWxsb2NhdG9yLmFsbG9jYXRlKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICAKKyAgICBpZiAoc2l6ZSA8PSBzbWFsbE1heCkgeworICAgICAgICBTbWFsbEFsbG9jYXRvciYg
YWxsb2NhdG9yID0gc21hbGxBbGxvY2F0b3JGb3Ioc2l6ZSk7CisgICAgICAgIGlmICghYWxsb2Nh
dG9yLmNhbkFsbG9jYXRlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
b2JqZWN0ID0gYWxsb2NhdG9yLmFsbG9jYXRlKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICAKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGlubGluZSB2b2lkKiBBbGxvY2F0b3I6
OmFsbG9jYXRlKHNpemVfdCBzaXplKQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9DaHVu
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQ2h1bmsuaAkocmV2aXNp
b24gMTY3MzUzKQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9DaHVuay5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Nyw3ICs3Nyw3IEBAIGlubGluZSBhdXRvIENodW5rPFRyYWl0cz46OmNyZWF0ZSgp
IC0+IEMKIHRlbXBsYXRlPGNsYXNzIFRyYWl0cz4KIGlubGluZSBhdXRvIENodW5rPFRyYWl0cz46
OmdldCh2b2lkKiBvYmplY3QpIC0+IENodW5rKgogewotICAgIEJBU1NFUlQoaXNTbWFsbE9yTWVk
aXVtKG9iamVjdCkpOworICAgIEJBU1NFUlQoIWlzTGFyZ2Uob2JqZWN0KSk7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENodW5rKj4obWFzayhvYmplY3QsIGNodW5rTWFzaykpOwogfQogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0RlYWxsb2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0RlYWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTY3MzUzKQor
KysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9EZWFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJbmxpbmUuaCIKICNpbmNsdWRlICJQZXJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiU21hbGxDaHVuay5oIgorI2luY2x1ZGUgIlhTbWFsbENodW5rLmgi
CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiAKQEAgLTU3LDYg
KzU4LDggQEAgdm9pZCBEZWFsbG9jYXRvcjo6c2NhdmVuZ2UoKQogICAgIHN0ZDo6bG9ja19ndWFy
ZDxNdXRleD4gbG9jayhQZXJQcm9jZXNzPEhlYXA+OjptdXRleCgpKTsKICAgICBIZWFwKiBoZWFw
ID0gUGVyUHJvY2VzczxIZWFwPjo6Z2V0RmFzdENhc2UoKTsKICAgICAKKyAgICB3aGlsZSAobV94
U21hbGxMaW5lQ2FjaGUuc2l6ZSgpKQorICAgICAgICBoZWFwLT5kZWFsbG9jYXRlWFNtYWxsTGlu
ZShsb2NrLCBtX3hTbWFsbExpbmVDYWNoZS5wb3AoKSk7CiAgICAgd2hpbGUgKG1fc21hbGxMaW5l
Q2FjaGUuc2l6ZSgpKQogICAgICAgICBoZWFwLT5kZWFsbG9jYXRlU21hbGxMaW5lKGxvY2ssIG1f
c21hbGxMaW5lQ2FjaGUucG9wKCkpOwogICAgIHdoaWxlIChtX21lZGl1bUxpbmVDYWNoZS5zaXpl
KCkpCkBAIC04MCwxMyArODMsMTggQEAgdm9pZCBEZWFsbG9jYXRvcjo6cHJvY2Vzc09iamVjdExv
ZygpCiAgICAgc3RkOjpsb2NrX2d1YXJkPE11dGV4PiBsb2NrKFBlclByb2Nlc3M8SGVhcD46Om11
dGV4KCkpOwogICAgIAogICAgIGZvciAoYXV0byBvYmplY3QgOiBtX29iamVjdExvZykgewotICAg
ICAgICBpZiAoaXNTbWFsbChvYmplY3QpKSB7CisgICAgICAgIGlmIChpc1hTbWFsbChvYmplY3Qp
KSB7CisgICAgICAgICAgICBYU21hbGxMaW5lKiBsaW5lID0gWFNtYWxsTGluZTo6Z2V0KG9iamVj
dCk7CisgICAgICAgICAgICBpZiAoIWxpbmUtPmRlcmVmKGxvY2spKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgZGVhbGxvY2F0ZVhTbWFsbExpbmUobG9jaywgbGluZSk7
CisgICAgICAgIH0gZWxzZSBpZiAoaXNTbWFsbChvYmplY3QpKSB7CiAgICAgICAgICAgICBTbWFs
bExpbmUqIGxpbmUgPSBTbWFsbExpbmU6OmdldChvYmplY3QpOwogICAgICAgICAgICAgaWYgKCFs
aW5lLT5kZXJlZihsb2NrKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IGRlYWxsb2NhdGVTbWFsbExpbmUobG9jaywgbGluZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBCQVNTRVJUKGlzU21hbGxPck1lZGl1bShvYmplY3QpKTsKKyAgICAgICAgICAgIEJB
U1NFUlQoaXNNZWRpdW0ob2JqZWN0KSk7CiAgICAgICAgICAgICBNZWRpdW1MaW5lKiBsaW5lID0g
TWVkaXVtTGluZTo6Z2V0KG9iamVjdCk7CiAgICAgICAgICAgICBpZiAoIWxpbmUtPmRlcmVmKGxv
Y2spKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTA0LDcgKzExMiw3IEBAIHZvaWQg
RGVhbGxvY2F0b3I6OmRlYWxsb2NhdGVTbG93Q2FzZSh2b2kKICAgICBpZiAoIW9iamVjdCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzU21hbGxPck1lZGl1bShvYmplY3QpKSB7CisgICAg
aWYgKCFpc0xhcmdlKG9iamVjdCkpIHsKICAgICAgICAgcHJvY2Vzc09iamVjdExvZygpOwogICAg
ICAgICBtX29iamVjdExvZy5wdXNoKG9iamVjdCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEyNSw2
ICsxMzMsMTQgQEAgdm9pZCBEZWFsbG9jYXRvcjo6ZGVhbGxvY2F0ZVNtYWxsTGluZShzdAogICAg
IG1fc21hbGxMaW5lQ2FjaGUucHVzaChsaW5lKTsKIH0KIAordm9pZCBEZWFsbG9jYXRvcjo6ZGVh
bGxvY2F0ZVhTbWFsbExpbmUoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYgbG9jaywgWFNtYWxsTGlu
ZSogbGluZSkKK3sKKyAgICBpZiAobV94U21hbGxMaW5lQ2FjaGUuc2l6ZSgpID09IG1feFNtYWxs
TGluZUNhY2hlLmNhcGFjaXR5KCkpCisgICAgICAgIHJldHVybiBQZXJQcm9jZXNzPEhlYXA+Ojpn
ZXRGYXN0Q2FzZSgpLT5kZWFsbG9jYXRlWFNtYWxsTGluZShsb2NrLCBsaW5lKTsKKworICAgIG1f
eFNtYWxsTGluZUNhY2hlLnB1c2gobGluZSk7Cit9CisKIFNtYWxsTGluZSogRGVhbGxvY2F0b3I6
OmFsbG9jYXRlU21hbGxMaW5lKCkKIHsKICAgICBpZiAoIW1fc21hbGxMaW5lQ2FjaGUuc2l6ZSgp
KSB7CkBAIC0xMzgsNiArMTU0LDE5IEBAIFNtYWxsTGluZSogRGVhbGxvY2F0b3I6OmFsbG9jYXRl
U21hbGxMaW4KICAgICByZXR1cm4gbV9zbWFsbExpbmVDYWNoZS5wb3AoKTsKIH0KIAorWFNtYWxs
TGluZSogRGVhbGxvY2F0b3I6OmFsbG9jYXRlWFNtYWxsTGluZSgpCit7CisgICAgaWYgKCFtX3hT
bWFsbExpbmVDYWNoZS5zaXplKCkpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPE11dGV4PiBs
b2NrKFBlclByb2Nlc3M8SGVhcD46Om11dGV4KCkpOworICAgICAgICBIZWFwKiBoZWFwID0gUGVy
UHJvY2VzczxIZWFwPjo6Z2V0RmFzdENhc2UoKTsKKworICAgICAgICB3aGlsZSAobV94U21hbGxM
aW5lQ2FjaGUuc2l6ZSgpICE9IG1feFNtYWxsTGluZUNhY2hlLmNhcGFjaXR5KCkpCisgICAgICAg
ICAgICBtX3hTbWFsbExpbmVDYWNoZS5wdXNoKGhlYXAtPmFsbG9jYXRlWFNtYWxsTGluZShsb2Nr
KSk7CisgICAgfQorCisgICAgcmV0dXJuIG1feFNtYWxsTGluZUNhY2hlLnBvcCgpOworfQorCiB2
b2lkIERlYWxsb2NhdG9yOjpkZWFsbG9jYXRlTWVkaXVtTGluZShzdGQ6OmxvY2tfZ3VhcmQ8TXV0
ZXg+JiBsb2NrLCBNZWRpdW1MaW5lKiBsaW5lKQogewogICAgIGlmIChtX21lZGl1bUxpbmVDYWNo
ZS5zaXplKCkgPT0gbV9tZWRpdW1MaW5lQ2FjaGUuY2FwYWNpdHkoKSkKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvRGVhbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0RlYWxsb2NhdG9yLmgJKHJldmlzaW9uIDE2NzM1MykKKysrIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvRGVhbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIk1lZGl1bUxpbmUuaCIKICNpbmNsdWRlICJTaXplcy5oIgogI2luY2x1ZGUg
IlNtYWxsTGluZS5oIgorI2luY2x1ZGUgIlhTbWFsbExpbmUuaCIKIAogbmFtZXNwYWNlIGJtYWxs
b2MgewogCkBAIC00NCw2ICs0NSw5IEBAIHB1YmxpYzoKICAgICBib29sIGRlYWxsb2NhdGVGYXN0
Q2FzZSh2b2lkKik7CiAgICAgdm9pZCBkZWFsbG9jYXRlU2xvd0Nhc2Uodm9pZCopOwogCisgICAg
dm9pZCBkZWFsbG9jYXRlWFNtYWxsTGluZShzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+JiwgWFNtYWxs
TGluZSopOworICAgIFhTbWFsbExpbmUqIGFsbG9jYXRlWFNtYWxsTGluZSgpOworCiAgICAgdm9p
ZCBkZWFsbG9jYXRlU21hbGxMaW5lKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mLCBTbWFsbExpbmUq
KTsKICAgICBTbWFsbExpbmUqIGFsbG9jYXRlU21hbGxMaW5lKCk7CiAKQEAgLTU4LDEzICs2Miwx
NCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc09iamVjdExvZygpOwogCiAgICAgRml4ZWRW
ZWN0b3I8dm9pZCosIGRlYWxsb2NhdG9yTG9nQ2FwYWNpdHk+IG1fb2JqZWN0TG9nOworICAgIEZp
eGVkVmVjdG9yPFhTbWFsbExpbmUqLCB4U21hbGxMaW5lQ2FjaGVDYXBhY2l0eT4gbV94U21hbGxM
aW5lQ2FjaGU7CiAgICAgRml4ZWRWZWN0b3I8U21hbGxMaW5lKiwgc21hbGxMaW5lQ2FjaGVDYXBh
Y2l0eT4gbV9zbWFsbExpbmVDYWNoZTsKICAgICBGaXhlZFZlY3RvcjxNZWRpdW1MaW5lKiwgbWVk
aXVtTGluZUNhY2hlQ2FwYWNpdHk+IG1fbWVkaXVtTGluZUNhY2hlOwogfTsKIAogaW5saW5lIGJv
b2wgRGVhbGxvY2F0b3I6OmRlYWxsb2NhdGVGYXN0Q2FzZSh2b2lkKiBvYmplY3QpCiB7Ci0gICAg
aWYgKCFpc1NtYWxsT3JNZWRpdW0ob2JqZWN0KSkKKyAgICBpZiAoaXNMYXJnZShvYmplY3QpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCQVNTRVJUKG9iamVjdCk7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDE2NzM1MykKKysrIFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJQZXJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU21hbGxDaHVuay5oIgogI2luY2x1ZGUgIlhMYXJn
ZUNodW5rLmgiCisjaW5jbHVkZSAiWFNtYWxsQ2h1bmsuaCIKICNpbmNsdWRlIDx0aHJlYWQ+CiAK
IG5hbWVzcGFjZSBibWFsbG9jIHsKQEAgLTYwLDYgKzYxLDcgQEAgdm9pZCBIZWFwOjpjb25jdXJy
ZW50U2NhdmVuZ2UoKQogICAgIAogdm9pZCBIZWFwOjpzY2F2ZW5nZShzdGQ6OnVuaXF1ZV9sb2Nr
PE11dGV4PiYgbG9jaywgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBzbGVlcER1cmF0aW9uKQog
eworICAgIHNjYXZlbmdlWFNtYWxsUGFnZXMobG9jaywgc2xlZXBEdXJhdGlvbik7CiAgICAgc2Nh
dmVuZ2VTbWFsbFBhZ2VzKGxvY2ssIHNsZWVwRHVyYXRpb24pOwogICAgIHNjYXZlbmdlTWVkaXVt
UGFnZXMobG9jaywgc2xlZXBEdXJhdGlvbik7CiAgICAgc2NhdmVuZ2VMYXJnZVJhbmdlcyhsb2Nr
LCBzbGVlcER1cmF0aW9uKTsKQEAgLTgzLDYgKzg1LDIyIEBAIHZvaWQgSGVhcDo6c2NhdmVuZ2VT
bWFsbFBhZ2VzKHN0ZDo6dW5pcXUKICAgICB9CiB9CiAKK3ZvaWQgSGVhcDo6c2NhdmVuZ2VYU21h
bGxQYWdlcyhzdGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYgbG9jaywgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyBzbGVlcER1cmF0aW9uKQoreworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICht
X2lzQWxsb2NhdGluZ1BhZ2VzKSB7CisgICAgICAgICAgICBtX2lzQWxsb2NhdGluZ1BhZ2VzID0g
ZmFsc2U7CisKKyAgICAgICAgICAgIHNsZWVwKGxvY2ssIHNsZWVwRHVyYXRpb24pOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW1feFNtYWxsUGFnZXMu
c2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3ZtSGVhcC5kZWFsbG9jYXRl
WFNtYWxsUGFnZShsb2NrLCBtX3hTbWFsbFBhZ2VzLnBvcCgpKTsKKyAgICB9Cit9CisKIHZvaWQg
SGVhcDo6c2NhdmVuZ2VNZWRpdW1QYWdlcyhzdGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYgbG9jaywg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBzbGVlcER1cmF0aW9uKQogewogICAgIHdoaWxlICgx
KSB7CkBAIC0xMTYsNiArMTM0LDI3IEBAIHZvaWQgSGVhcDo6c2NhdmVuZ2VMYXJnZVJhbmdlcyhz
dGQ6OnVuaXEKICAgICB9CiB9CiAKK1hTbWFsbExpbmUqIEhlYXA6OmFsbG9jYXRlWFNtYWxsTGlu
ZVNsb3dDYXNlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mIGxvY2spCit7CisgICAgbV9pc0FsbG9j
YXRpbmdQYWdlcyA9IHRydWU7CisKKyAgICBYU21hbGxQYWdlKiBwYWdlID0gW3RoaXNdKCkgewor
ICAgICAgICBpZiAobV94U21hbGxQYWdlcy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gbV94
U21hbGxQYWdlcy5wb3AoKTsKKyAgICAgICAgCisgICAgICAgIFhTbWFsbFBhZ2UqIHBhZ2UgPSBt
X3ZtSGVhcC5hbGxvY2F0ZVhTbWFsbFBhZ2UoKTsKKyAgICAgICAgdm1BbGxvY2F0ZVBoeXNpY2Fs
UGFnZXMocGFnZS0+YmVnaW4oKS0+YmVnaW4oKSwgdm1QYWdlU2l6ZSk7CisgICAgICAgIHJldHVy
biBwYWdlOworICAgIH0oKTsKKworICAgIFhTbWFsbExpbmUqIGxpbmUgPSBwYWdlLT5iZWdpbigp
OworICAgIGZvciAoYXV0byBpdCA9IGxpbmUgKyAxOyBpdCAhPSBwYWdlLT5lbmQoKTsgKytpdCkK
KyAgICAgICAgbV94U21hbGxMaW5lcy5wdXNoKGl0KTsKKworICAgIHBhZ2UtPnJlZihsb2NrKTsK
KyAgICByZXR1cm4gbGluZTsKK30KKwogU21hbGxMaW5lKiBIZWFwOjphbGxvY2F0ZVNtYWxsTGlu
ZVNsb3dDYXNlKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mIGxvY2spCiB7CiAgICAgbV9pc0FsbG9j
YXRpbmdQYWdlcyA9IHRydWU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuaAkocmV2aXNpb24gMTY3
MzUzKQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDE1ICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiRml4ZWRWZWN0b3IuaCIKICNpbmNsdWRlICJW
TUhlYXAuaCIKLSNpbmNsdWRlICJNZWRpdW1MaW5lLmgiCiAjaW5jbHVkZSAiTXV0ZXguaCIKLSNp
bmNsdWRlICJTbWFsbFBhZ2UuaCIKICNpbmNsdWRlICJNZWRpdW1DaHVuay5oIgotI2luY2x1ZGUg
Ik1lZGl1bVBhZ2UuaCIKICNpbmNsdWRlICJTZWdyZWdhdGVkRnJlZUxpc3QuaCIKICNpbmNsdWRl
ICJTbWFsbENodW5rLmgiCi0jaW5jbHVkZSAiU21hbGxMaW5lLmgiCiAjaW5jbHVkZSAiVmVjdG9y
LmgiCisjaW5jbHVkZSAiWFNtYWxsQ2h1bmsuaCIKICNpbmNsdWRlIDxhcnJheT4KICNpbmNsdWRl
IDxtdXRleD4KIApAQCAtNDksNiArNDYsOSBAQCBjbGFzcyBIZWFwIHsKIHB1YmxpYzoKICAgICBI
ZWFwKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mKTsKICAgICAKKyAgICBYU21hbGxMaW5lKiBhbGxv
Y2F0ZVhTbWFsbExpbmUoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYpOworICAgIHZvaWQgZGVhbGxv
Y2F0ZVhTbWFsbExpbmUoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYsIFhTbWFsbExpbmUqKTsKKwog
ICAgIFNtYWxsTGluZSogYWxsb2NhdGVTbWFsbExpbmUoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYp
OwogICAgIHZvaWQgZGVhbGxvY2F0ZVNtYWxsTGluZShzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+Jiwg
U21hbGxMaW5lKik7CiAKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB+
SGVhcCgpID0gZGVsZXRlOwogCisgICAgWFNtYWxsTGluZSogYWxsb2NhdGVYU21hbGxMaW5lU2xv
d0Nhc2Uoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYpOwogICAgIFNtYWxsTGluZSogYWxsb2NhdGVT
bWFsbExpbmVTbG93Q2FzZShzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+Jik7CiAgICAgTWVkaXVtTGlu
ZSogYWxsb2NhdGVNZWRpdW1MaW5lU2xvd0Nhc2Uoc3RkOjpsb2NrX2d1YXJkPE11dGV4PiYpOwog
CkBAIC03OCwxMyArNzksMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1lcmdlTGFyZ2VSaWdodChF
bmRUYWcqJiwgQmVnaW5UYWcqJiwgUmFuZ2UmLCBib29sJiBoYXNQaHlzaWNhbFBhZ2VzKTsKICAg
ICAKICAgICB2b2lkIGNvbmN1cnJlbnRTY2F2ZW5nZSgpOworICAgIHZvaWQgc2NhdmVuZ2VYU21h
bGxQYWdlcyhzdGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMpOwogICAgIHZvaWQgc2NhdmVuZ2VTbWFsbFBhZ2VzKHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+
Jiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7CiAgICAgdm9pZCBzY2F2ZW5nZU1lZGl1bVBh
Z2VzKHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+Jiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7
CiAgICAgdm9pZCBzY2F2ZW5nZUxhcmdlUmFuZ2VzKHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+Jiwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7CiAKKyAgICBWZWN0b3I8WFNtYWxsTGluZSo+IG1f
eFNtYWxsTGluZXM7CiAgICAgVmVjdG9yPFNtYWxsTGluZSo+IG1fc21hbGxMaW5lczsKICAgICBW
ZWN0b3I8TWVkaXVtTGluZSo+IG1fbWVkaXVtTGluZXM7CiAKKyAgICBWZWN0b3I8WFNtYWxsUGFn
ZSo+IG1feFNtYWxsUGFnZXM7CiAgICAgVmVjdG9yPFNtYWxsUGFnZSo+IG1fc21hbGxQYWdlczsK
ICAgICBWZWN0b3I8TWVkaXVtUGFnZSo+IG1fbWVkaXVtUGFnZXM7CiAKQEAgLTk2LDYgKzEwMCwz
MSBAQCBwcml2YXRlOgogICAgIEFzeW5jVGFzazxIZWFwLCBkZWNsdHlwZSgmSGVhcDo6Y29uY3Vy
cmVudFNjYXZlbmdlKT4gbV9zY2F2ZW5nZXI7CiB9OwogCitpbmxpbmUgdm9pZCBIZWFwOjpkZWFs
bG9jYXRlWFNtYWxsTGluZShzdGQ6OmxvY2tfZ3VhcmQ8TXV0ZXg+JiBsb2NrLCBYU21hbGxMaW5l
KiBsaW5lKQoreworICAgIFhTbWFsbFBhZ2UqIHBhZ2UgPSBYU21hbGxQYWdlOjpnZXQobGluZSk7
CisgICAgaWYgKHBhZ2UtPmRlcmVmKGxvY2spKSB7CisgICAgICAgIG1feFNtYWxsUGFnZXMucHVz
aChwYWdlKTsKKyAgICAgICAgbV9zY2F2ZW5nZXIucnVuKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV94U21hbGxMaW5lcy5wdXNoKGxpbmUpOworfQorCitpbmxpbmUgWFNtYWxsTGlu
ZSogSGVhcDo6YWxsb2NhdGVYU21hbGxMaW5lKHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mIGxvY2sp
Cit7CisgICAgd2hpbGUgKG1feFNtYWxsTGluZXMuc2l6ZSgpKSB7CisgICAgICAgIFhTbWFsbExp
bmUqIGxpbmUgPSBtX3hTbWFsbExpbmVzLnBvcCgpOworICAgICAgICBYU21hbGxQYWdlKiBwYWdl
ID0gWFNtYWxsUGFnZTo6Z2V0KGxpbmUpOworICAgICAgICBpZiAoIXBhZ2UtPnJlZkNvdW50KGxv
Y2spKSAvLyBUaGUgbGluZSB3YXMgcHJvbW90ZWQgdG8gdGhlIHNtYWxsIHBhZ2VzIGxpc3QuCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcGFnZS0+cmVmKGxvY2spOworICAgICAgICBy
ZXR1cm4gbGluZTsKKyAgICB9CisKKyAgICByZXR1cm4gYWxsb2NhdGVYU21hbGxMaW5lU2xvd0Nh
c2UobG9jayk7Cit9CisKIGlubGluZSB2b2lkIEhlYXA6OmRlYWxsb2NhdGVTbWFsbExpbmUoc3Rk
Ojpsb2NrX2d1YXJkPE11dGV4PiYgbG9jaywgU21hbGxMaW5lKiBsaW5lKQogewogICAgIFNtYWxs
UGFnZSogcGFnZSA9IFNtYWxsUGFnZTo6Z2V0KGxpbmUpOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9MYXJnZUNodW5rLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9MYXJnZUNodW5rLmgJKHJldmlzaW9uIDE2NzM1MykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvTGFyZ2VDaHVuay5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIGlubGluZSBM
YXJnZUNodW5rKiBMYXJnZUNodW5rOjpjcmVhdGUoKQogCiBpbmxpbmUgTGFyZ2VDaHVuayogTGFy
Z2VDaHVuazo6Z2V0KHZvaWQqIG9iamVjdCkKIHsKLSAgICBCQVNTRVJUKCFpc1NtYWxsT3JNZWRp
dW0ob2JqZWN0KSk7CisgICAgQkFTU0VSVChpc0xhcmdlKG9iamVjdCkpOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxMYXJnZUNodW5rKj4obWFzayhvYmplY3QsIGxhcmdlQ2h1bmtNYXNrKSk7CiB9
CiAKQEAgLTg5LDcgKzg5LDcgQEAgaW5saW5lIEJlZ2luVGFnKiBMYXJnZUNodW5rOjpiZWdpblRh
Zyh2bwogCiBpbmxpbmUgRW5kVGFnKiBMYXJnZUNodW5rOjplbmRUYWcodm9pZCogb2JqZWN0LCBz
aXplX3Qgc2l6ZSkKIHsKLSAgICBCQVNTRVJUKCFpc1NtYWxsT3JNZWRpdW0ob2JqZWN0KSk7Cisg
ICAgQkFTU0VSVChpc0xhcmdlKG9iamVjdCkpOwogCiAgICAgTGFyZ2VDaHVuayogY2h1bmsgPSBn
ZXQob2JqZWN0KTsKICAgICBjaGFyKiBlbmQgPSBzdGF0aWNfY2FzdDxjaGFyKj4ob2JqZWN0KSAr
IHNpemU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xpbmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xpbmUuaAkocmV2aXNpb24gMTY3MzUzKQorKysgU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9MaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcg
QEAgcHJpdmF0ZToKIHRlbXBsYXRlPGNsYXNzIFRyYWl0cz4KIGlubGluZSBhdXRvIExpbmU8VHJh
aXRzPjo6Z2V0KHZvaWQqIG9iamVjdCkgLT4gTGluZSoKIHsKLSAgICBCQVNTRVJUKGlzU21hbGxP
ck1lZGl1bShvYmplY3QpKTsKKyAgICBCQVNTRVJUKCFpc0xhcmdlKG9iamVjdCkpOwogICAgIENo
dW5rKiBjaHVuayA9IENodW5rOjpnZXQob2JqZWN0KTsKICAgICBzaXplX3QgbGluZU51bWJlciA9
IChyZWludGVycHJldF9jYXN0PGNoYXIqPihvYmplY3QpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oY2h1bmspKSAvIGxpbmVTaXplOwogICAgIHJldHVybiAmY2h1bmstPmxpbmVzKClbbGluZU51
bWJlcl07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL01lZGl1bUFsbG9jYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTWVkaXVtQWxsb2NhdG9yLmgJKHJl
dmlzaW9uIDE2NzM1MykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTWVkaXVtQWxsb2NhdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgaW5saW5lIHZvaWQqIE1lZGl1bUFs
bG9jYXRvcjo6YWxsb2NhdGUocwogCiAgICAgbV9yZW1haW5pbmcgLT0gc2l6ZTsKICAgICB2b2lk
KiBvYmplY3QgPSBtX2VuZCAtIG1fcmVtYWluaW5nIC0gc2l6ZTsKLSAgICBCQVNTRVJUKGlzU21h
bGxPck1lZGl1bShvYmplY3QpICYmICFpc1NtYWxsKG9iamVjdCkpOworICAgIEJBU1NFUlQob2Jq
ZWN0VHlwZShvYmplY3QpID09IE1lZGl1bSk7CiAKICAgICArK21fb2JqZWN0Q291bnQ7CiAgICAg
cmV0dXJuIG9iamVjdDsKQEAgLTk5LDYgKzk5LDcgQEAgaW5saW5lIHZvaWQgTWVkaXVtQWxsb2Nh
dG9yOjpyZWZpbGwoTWVkaQogICAgIG1fZW5kID0gbGluZS0+ZW5kKCk7CiAgICAgbV9yZW1haW5p
bmcgPSBtZWRpdW1MaW5lU2l6ZTsKICAgICBtX29iamVjdENvdW50ID0gMDsKKyAgICBCQVNTRVJU
KG9iamVjdFR5cGUobV9lbmQgLSAxKSA9PSBNZWRpdW0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBi
bWFsbG9jCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL09iamVjdFR5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0VHlwZS5jcHAJKHJldmlzaW9u
IDE2NzM1MykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0VHlwZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDE2ICszMCwyNyBAQCBuYW1lc3BhY2UgYm1hbGxvYyB7CiAKIE9iamVj
dFR5cGUgb2JqZWN0VHlwZSh2b2lkKiBvYmplY3QpCiB7Ci0gICAgaWYgKGlzU21hbGxPck1lZGl1
bShvYmplY3QpKSB7Ci0gICAgICAgIGlmIChpc1NtYWxsKG9iamVjdCkpCi0gICAgICAgICAgICBy
ZXR1cm4gU21hbGw7CisgICAgc3dpdGNoIChtYXNrKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihvYmplY3QpLCB0eXBlTWFzaykpIHsKKyAgICBjYXNlIHhTbWFsbFR5cGU6IHsKKyAgICAgICAg
cmV0dXJuIFhTbWFsbDsKKyAgICB9CisgICAgY2FzZSBzbWFsbFR5cGU6IHsKKyAgICAgICAgcmV0
dXJuIFNtYWxsOworICAgIH0KKyAgICBjYXNlIG1lZGl1bVR5cGU6IHsKICAgICAgICAgcmV0dXJu
IE1lZGl1bTsKICAgICB9Ci0gICAgCi0gICAgQmVnaW5UYWcqIGJlZ2luVGFnID0gTGFyZ2VDaHVu
azo6YmVnaW5UYWcob2JqZWN0KTsKLSAgICBpZiAoIWJlZ2luVGFnLT5pc1hMYXJnZSgpKQotICAg
ICAgICByZXR1cm4gTGFyZ2U7Ci0gICAgcmV0dXJuIFhMYXJnZTsKKyAgICBjYXNlIGxhcmdlVHlw
ZTogeworICAgICAgICBCZWdpblRhZyogYmVnaW5UYWcgPSBMYXJnZUNodW5rOjpiZWdpblRhZyhv
YmplY3QpOworICAgICAgICBpZiAoIWJlZ2luVGFnLT5pc1hMYXJnZSgpKQorICAgICAgICAgICAg
cmV0dXJuIExhcmdlOworICAgICAgICByZXR1cm4gWExhcmdlOworICAgIH0KKyAgICBkZWZhdWx0
OiB7CisgICAgICAgIFJFTEVBU0VfQkFTU0VSVChmYWxzZSk7CisgICAgICAgIHJldHVybiBYTGFy
Z2U7CisgICAgfQorICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgYm1hbGxvYwpJbmRleDogU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9PYmplY3RUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9PYmplY3RUeXBlLmgJKHJldmlzaW9uIDE2NzM1MykKKysrIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvT2JqZWN0VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxOSArMzEs
MjggQEAKIAogbmFtZXNwYWNlIGJtYWxsb2MgewogCi1lbnVtIE9iamVjdFR5cGUgeyBTbWFsbCwg
TWVkaXVtLCBMYXJnZSwgWExhcmdlIH07CitlbnVtIE9iamVjdFR5cGUgeyBYU21hbGwsIFNtYWxs
LCBNZWRpdW0sIExhcmdlLCBYTGFyZ2UgfTsKIAogT2JqZWN0VHlwZSBvYmplY3RUeXBlKHZvaWQq
KTsKIAotaW5saW5lIGJvb2wgaXNTbWFsbE9yTWVkaXVtKHZvaWQqIG9iamVjdCkKK2lubGluZSBi
b29sIGlzWFNtYWxsKHZvaWQqIG9iamVjdCkKIHsKLSAgICByZXR1cm4gdGVzdChvYmplY3QsIHNt
YWxsT3JNZWRpdW1UeXBlTWFzayk7CisgICAgcmV0dXJuIG1hc2socmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KG9iamVjdCksIHR5cGVNYXNrKSA9PSB4U21hbGxUeXBlOwogfQogCi1pbmxpbmUg
Ym9vbCBpc1NtYWxsKHZvaWQqIHNtYWxsT3JNZWRpdW0pCitpbmxpbmUgYm9vbCBpc1NtYWxsKHZv
aWQqIG9iamVjdCkKIHsKLSAgICBCQVNTRVJUKGlzU21hbGxPck1lZGl1bShzbWFsbE9yTWVkaXVt
KSk7Ci0gICAgcmV0dXJuIHRlc3Qoc21hbGxPck1lZGl1bSwgc21hbGxPck1lZGl1bVNtYWxsVHlw
ZU1hc2spOworICAgIHJldHVybiBtYXNrKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmpl
Y3QpLCB0eXBlTWFzaykgPT0gc21hbGxUeXBlOworfQorCitpbmxpbmUgYm9vbCBpc01lZGl1bSh2
b2lkKiBvYmplY3QpCit7CisgICAgcmV0dXJuIG1hc2socmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KG9iamVjdCksIHR5cGVNYXNrKSA9PSBtZWRpdW1UeXBlOworfQorCitpbmxpbmUgYm9vbCBp
c0xhcmdlKHZvaWQqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gbWFzayhyZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4ob2JqZWN0KSwgdHlwZU1hc2spID09IGxhcmdlVHlwZTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgYm1hbGxvYwpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TZWdyZWdhdGVk
RnJlZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NlZ3JlZ2F0
ZWRGcmVlTGlzdC5oCShyZXZpc2lvbiAxNjczNTMpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L1NlZ3JlZ2F0ZWRGcmVlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIHBy
aXZhdGU6CiAgICAgUmFuZ2UgdGFrZShMaXN0Jiwgc2l6ZV90KTsKICAgICBSYW5nZSB0YWtlR3Jl
ZWR5KExpc3QmLCBzaXplX3QpOwogCi0gICAgc3RkOjphcnJheTxMaXN0LCAxOT4gbV9saXN0czsK
KyAgICBzdGQ6OmFycmF5PExpc3QsIDE4PiBtX2xpc3RzOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
Ym1hbGxvYwpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TaXplcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2l6ZXMuaAkocmV2aXNpb24gMTY3MzUzKQorKysg
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9TaXplcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw0NCAr
NDcsNTMgQEAgbmFtZXNwYWNlIFNpemVzIHsKIAogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc3Vw
ZXJDaHVua1NpemUgPSAzMiAqIE1COwogCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBzbWFsbE1h
eCA9IDI1NjsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNtYWxsTGluZVNpemUgPSA1MTI7Cisg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCB4U21hbGxNYXggPSA2NDsKKyAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IHhTbWFsbExpbmVTaXplID0gMjU2OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgeFNt
YWxsTGluZU1hc2sgPSB+KHhTbWFsbExpbmVTaXplIC0gMXVsKTsKKworICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgeFNtYWxsQ2h1bmtTaXplID0gc3VwZXJDaHVua1NpemUgLyA0OworICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgeFNtYWxsQ2h1bmtPZmZzZXQgPSBzdXBlckNodW5rU2l6ZSAqIDEgLyA0
OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgeFNtYWxsQ2h1bmtNYXNrID0gfih4U21hbGxDaHVu
a1NpemUgLSAxdWwpOworCisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzbWFsbE1heCA9IDEyODsK
KyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNtYWxsTGluZVNpemUgPSAyNTY7CiAgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBzbWFsbExpbmVNYXNrID0gfihzbWFsbExpbmVTaXplIC0gMXVsKTsKIAog
ICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc21hbGxDaHVua1NpemUgPSBzdXBlckNodW5rU2l6ZSAv
IDQ7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBzbWFsbENodW5rT2Zmc2V0ID0gc3VwZXJDaHVu
a1NpemUgKiAzIC8gNDsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNtYWxsQ2h1bmtPZmZzZXQg
PSBzdXBlckNodW5rU2l6ZSAqIDIgLyA0OwogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc21hbGxD
aHVua01hc2sgPSB+KHNtYWxsQ2h1bmtTaXplIC0gMXVsKTsKIAotICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbWVkaXVtTWF4ID0gMTAyNDsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1lZGl1bUxp
bmVTaXplID0gMjA0ODsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1lZGl1bU1heCA9IDI1NjsK
KyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1lZGl1bUxpbmVTaXplID0gNTEyOwogICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgbWVkaXVtTGluZU1hc2sgPSB+KG1lZGl1bUxpbmVTaXplIC0gMXVsKTsK
IAogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWVkaXVtQ2h1bmtTaXplID0gc3VwZXJDaHVua1Np
emUgLyA0OwotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWVkaXVtQ2h1bmtPZmZzZXQgPSBzdXBl
ckNodW5rU2l6ZSAqIDIgLyA0OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWVkaXVtQ2h1bmtP
ZmZzZXQgPSBzdXBlckNodW5rU2l6ZSAqIDMgLyA0OwogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
bWVkaXVtQ2h1bmtNYXNrID0gfihtZWRpdW1DaHVua1NpemUgLSAxdWwpOwogCi0gICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBsYXJnZUNodW5rU2l6ZSA9IHN1cGVyQ2h1bmtTaXplIC8gMjsKLSAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IGxhcmdlQ2h1bmtPZmZzZXQgPSAwOworICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgbGFyZ2VDaHVua1NpemUgPSBzdXBlckNodW5rU2l6ZSAvIDQ7CisgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBsYXJnZUNodW5rT2Zmc2V0ID0gc3VwZXJDaHVua1NpemUgKiAwIC8gNDsK
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGxhcmdlQ2h1bmtNYXNrID0gfihsYXJnZUNodW5rU2l6
ZSAtIDF1bCk7CiAKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGxhcmdlQWxpZ25tZW50ID0gNjQ7
CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBsYXJnZU1heCA9IGxhcmdlQ2h1bmtTaXplICogOTkg
LyAxMDA7IC8vIFBsZW50eSBvZiByb29tIGZvciBtZXRhZGF0YS4KLSAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IGxhcmdlTWluID0gMTAyNDsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGxhcmdlTWlu
ID0gbWVkaXVtTWF4OwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzZWdyZWdhdGVkRnJlZUxp
c3RTZWFyY2hEZXB0aCA9IDE2OwogCiAgICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCB0eXBlTWFz
ayA9IChzdXBlckNodW5rU2l6ZSAtIDEpICYgfigoc3VwZXJDaHVua1NpemUgLyA0KSAtIDEpOyAv
LyA0IHRhZ2dhYmxlIGNodW5rcworICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgeFNtYWxsVHlw
ZSA9IChzdXBlckNodW5rU2l6ZSArIHhTbWFsbENodW5rT2Zmc2V0KSAmIHR5cGVNYXNrOwogICAg
IHN0YXRpYyBjb25zdCB1aW50cHRyX3Qgc21hbGxUeXBlID0gKHN1cGVyQ2h1bmtTaXplICsgc21h
bGxDaHVua09mZnNldCkgJiB0eXBlTWFzazsKICAgICBzdGF0aWMgY29uc3QgdWludHB0cl90IG1l
ZGl1bVR5cGUgPSAoc3VwZXJDaHVua1NpemUgKyBtZWRpdW1DaHVua09mZnNldCkgJiB0eXBlTWFz
azsKLSAgICBzdGF0aWMgY29uc3QgdWludHB0cl90IGxhcmdlVHlwZU1hc2sgPSB+KG1lZGl1bVR5
cGUgJiBzbWFsbFR5cGUpOwotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3Qgc21hbGxPck1lZGl1
bVR5cGVNYXNrID0gbWVkaXVtVHlwZSAmIHNtYWxsVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdWlu
dHB0cl90IHNtYWxsT3JNZWRpdW1TbWFsbFR5cGVNYXNrID0gc21hbGxUeXBlIF4gbWVkaXVtVHlw
ZTsgLy8gT25seSB2YWxpZCBpZiBvYmplY3QgaXMga25vd24gdG8gYmUgc21hbGwgb3IgbWVkaXVt
LgotCisgICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBsYXJnZVR5cGUgPSAoc3VwZXJDaHVua1Np
emUgKyBsYXJnZUNodW5rT2Zmc2V0KSAmIHR5cGVNYXNrOworICAgIAogICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgZGVhbGxvY2F0b3JMb2dDYXBhY2l0eSA9IDI1NjsKIAorICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgeFNtYWxsTGluZUNhY2hlQ2FwYWNpdHkgPSAzMjsKICAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IHNtYWxsTGluZUNhY2hlQ2FwYWNpdHkgPSAxNjsKICAgICBzdGF0aWMgY29uc3Qgc2l6
ZV90IG1lZGl1bUxpbmVDYWNoZUNhcGFjaXR5ID0gODsKIAorICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgeFNtYWxsQWxsb2NhdG9yTG9nQ2FwYWNpdHkgPSAzMjsKICAgICBzdGF0aWMgY29uc3Qgc2l6
ZV90IHNtYWxsQWxsb2NhdG9yTG9nQ2FwYWNpdHkgPSAxNjsKICAgICBzdGF0aWMgY29uc3Qgc2l6
ZV90IG1lZGl1bUFsbG9jYXRvckxvZ0NhcGFjaXR5ID0gODsKICAgICAKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvU21hbGxBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL1NtYWxsQWxsb2NhdG9yLmgJKHJldmlzaW9uIDE2NzM1MykKKysrIFNvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NyArMjgsNiBAQAogCiAjaW5jbHVkZSAiQkFzc2VydC5oIgogI2luY2x1ZGUgIlNtYWxsQ2h1bmsu
aCIKLSNpbmNsdWRlICJTbWFsbExpbmUuaCIKIAogbmFtZXNwYWNlIGJtYWxsb2MgewogCkBAIC04
NSw3ICs4NCw3IEBAIGlubGluZSB2b2lkKiBTbWFsbEFsbG9jYXRvcjo6YWxsb2NhdGUoKQogICAg
IC0tbV9yZW1haW5pbmc7CiAgICAgY2hhciogcmVzdWx0ID0gbV9wdHI7CiAgICAgbV9wdHIgKz0g
bV9zaXplOwotICAgIEJBU1NFUlQoaXNTbWFsbChyZXN1bHQpKTsKKyAgICBCQVNTRVJUKG9iamVj
dFR5cGUocmVzdWx0KSA9PSBTbWFsbCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDog
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFsbFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxUcmFpdHMuaAkocmV2aXNpb24gMTY3MzUzKQorKysgU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFsbFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIHN0cnVjdCBTbWFsbFRyYWl0cyB7CiAgICAgdHlwZWRlZiBQYWdlPFNtYWxsVHJh
aXRzPiBQYWdlOwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBsaW5lU2l6ZSA9IHNtYWxsTGlu
ZVNpemU7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBtaW5pbXVtT2JqZWN0U2l6ZSA9IGFsaWdu
bWVudDsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbmltdW1PYmplY3RTaXplID0geFNtYWxs
TWF4ICsgYWxpZ25tZW50OwogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY2h1bmtTaXplID0gc21h
bGxDaHVua1NpemU7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjaHVua09mZnNldCA9IHNtYWxs
Q2h1bmtPZmZzZXQ7CiAgICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBjaHVua01hc2sgPSBzbWFs
bENodW5rTWFzazsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1IZWFwLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNSGVhcC5jcHAJKHJldmlzaW9uIDE2
NzM1MykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1IZWFwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNiArMzYsMTMgQEAgVk1IZWFwOjpWTUhlYXAoKQogewogfQogCit2b2lkIFZNSGVh
cDo6YWxsb2NhdGVYU21hbGxDaHVuaygpCit7CisgICAgWFNtYWxsQ2h1bmsqIGNodW5rID0gWFNt
YWxsQ2h1bms6OmNyZWF0ZSgpOworICAgIGZvciAoYXV0byogaXQgPSBjaHVuay0+YmVnaW4oKTsg
aXQgIT0gY2h1bmstPmVuZCgpOyArK2l0KQorICAgICAgICBtX3hTbWFsbFBhZ2VzLnB1c2goaXQp
OworfQorCiB2b2lkIFZNSGVhcDo6YWxsb2NhdGVTbWFsbENodW5rKCkKIHsKICAgICBTbWFsbENo
dW5rKiBjaHVuayA9IFNtYWxsQ2h1bms6OmNyZWF0ZSgpOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZN
SGVhcC5oCShyZXZpc2lvbiAxNjczNTMpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNSGVh
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2VncmVnYXRl
ZEZyZWVMaXN0LmgiCiAjaW5jbHVkZSAiU21hbGxDaHVuay5oIgogI2luY2x1ZGUgIlZlY3Rvci5o
IgorI2luY2x1ZGUgIlhTbWFsbENodW5rLmgiCiAKIG5hbWVzcGFjZSBibWFsbG9jIHsKIApAQCAt
NDUsMjQgKzQ2LDM2IEBAIGNsYXNzIFZNSGVhcCB7CiBwdWJsaWM6CiAgICAgVk1IZWFwKCk7CiAK
KyAgICBYU21hbGxQYWdlKiBhbGxvY2F0ZVhTbWFsbFBhZ2UoKTsKICAgICBTbWFsbFBhZ2UqIGFs
bG9jYXRlU21hbGxQYWdlKCk7CiAgICAgTWVkaXVtUGFnZSogYWxsb2NhdGVNZWRpdW1QYWdlKCk7
CiAgICAgUmFuZ2UgYWxsb2NhdGVMYXJnZVJhbmdlKHNpemVfdCk7CiAKKyAgICB2b2lkIGRlYWxs
b2NhdGVYU21hbGxQYWdlKHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+JiwgWFNtYWxsUGFnZSopOwog
ICAgIHZvaWQgZGVhbGxvY2F0ZVNtYWxsUGFnZShzdGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYsIFNt
YWxsUGFnZSopOwogICAgIHZvaWQgZGVhbGxvY2F0ZU1lZGl1bVBhZ2Uoc3RkOjp1bmlxdWVfbG9j
azxNdXRleD4mLCBNZWRpdW1QYWdlKik7CiAgICAgdm9pZCBkZWFsbG9jYXRlTGFyZ2VSYW5nZShz
dGQ6OnVuaXF1ZV9sb2NrPE11dGV4PiYsIFJhbmdlKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGFs
bG9jYXRlWFNtYWxsQ2h1bmsoKTsKICAgICB2b2lkIGFsbG9jYXRlU21hbGxDaHVuaygpOwogICAg
IHZvaWQgYWxsb2NhdGVNZWRpdW1DaHVuaygpOwogICAgIFJhbmdlIGFsbG9jYXRlTGFyZ2VDaHVu
aygpOwogICAgIAorICAgIFZlY3RvcjxYU21hbGxQYWdlKj4gbV94U21hbGxQYWdlczsKICAgICBW
ZWN0b3I8U21hbGxQYWdlKj4gbV9zbWFsbFBhZ2VzOwogICAgIFZlY3RvcjxNZWRpdW1QYWdlKj4g
bV9tZWRpdW1QYWdlczsKICAgICBTZWdyZWdhdGVkRnJlZUxpc3QgbV9sYXJnZVJhbmdlczsKIH07
CiAKK2lubGluZSBYU21hbGxQYWdlKiBWTUhlYXA6OmFsbG9jYXRlWFNtYWxsUGFnZSgpCit7Cisg
ICAgaWYgKCFtX3hTbWFsbFBhZ2VzLnNpemUoKSkKKyAgICAgICAgYWxsb2NhdGVYU21hbGxDaHVu
aygpOworCisgICAgcmV0dXJuIG1feFNtYWxsUGFnZXMucG9wKCk7Cit9CisKIGlubGluZSBTbWFs
bFBhZ2UqIFZNSGVhcDo6YWxsb2NhdGVTbWFsbFBhZ2UoKQogewogICAgIGlmICghbV9zbWFsbFBh
Z2VzLnNpemUoKSkKQEAgLTg3LDYgKzEwMCwxNSBAQCBpbmxpbmUgUmFuZ2UgVk1IZWFwOjphbGxv
Y2F0ZUxhcmdlUmFuZ2UoCiAgICAgcmV0dXJuIHJhbmdlOwogfQogCitpbmxpbmUgdm9pZCBWTUhl
YXA6OmRlYWxsb2NhdGVYU21hbGxQYWdlKHN0ZDo6dW5pcXVlX2xvY2s8TXV0ZXg+JiBsb2NrLCBY
U21hbGxQYWdlKiBwYWdlKQoreworICAgIGxvY2sudW5sb2NrKCk7CisgICAgdm1EZWFsbG9jYXRl
UGh5c2ljYWxQYWdlcyhwYWdlLT5iZWdpbigpLT5iZWdpbigpLCB2bVBhZ2VTaXplKTsKKyAgICBs
b2NrLmxvY2soKTsKKyAgICAKKyAgICBtX3hTbWFsbFBhZ2VzLnB1c2gocGFnZSk7Cit9CisKIGlu
bGluZSB2b2lkIFZNSGVhcDo6ZGVhbGxvY2F0ZVNtYWxsUGFnZShzdGQ6OnVuaXF1ZV9sb2NrPE11
dGV4PiYgbG9jaywgU21hbGxQYWdlKiBwYWdlKQogewogICAgIGxvY2sudW5sb2NrKCk7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1hTbWFsbEFsbG9jYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvWFNtYWxsQWxsb2NhdG9yLmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1hTbWFsbEFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgWFNtYWxsQWxsb2NhdG9yX2gKKyNkZWZpbmUgWFNtYWxsQWxsb2Nh
dG9yX2gKKworI2luY2x1ZGUgIkJBc3NlcnQuaCIKKyNpbmNsdWRlICJYU21hbGxDaHVuay5oIgor
CituYW1lc3BhY2UgYm1hbGxvYyB7CisKKy8vIEhlbHBlciBvYmplY3QgZm9yIGFsbG9jYXRpbmcg
WFNtYWxsIG9iamVjdHMuCisKK2NsYXNzIFhTbWFsbEFsbG9jYXRvciB7CitwdWJsaWM6CisgICAg
WFNtYWxsQWxsb2NhdG9yKCk7CisgICAgWFNtYWxsQWxsb2NhdG9yKHNpemVfdCk7CisgICAgCisg
ICAgYm9vbCBpc051bGwoKSB7IHJldHVybiAhbV9wdHI7IH0KKyAgICBYU21hbGxMaW5lKiBsaW5l
KCk7CisKKyAgICBib29sIGNhbkFsbG9jYXRlKCkgeyByZXR1cm4gISFtX3JlbWFpbmluZzsgfQor
ICAgIHZvaWQqIGFsbG9jYXRlKCk7CisKKyAgICB1bnNpZ25lZCBzaG9ydCBvYmplY3RDb3VudCgp
OworICAgIHVuc2lnbmVkIGNoYXIgZGVyZWZDb3VudCgpOworICAgIHZvaWQgcmVmaWxsKFhTbWFs
bExpbmUqKTsKKworcHJpdmF0ZToKKyAgICBjaGFyKiBtX3B0cjsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX3NpemU7CisgICAgdW5zaWduZWQgY2hhciBtX3JlbWFpbmluZzsKKyAgICB1bnNpZ25lZCBj
aGFyIG1fbWF4T2JqZWN0Q291bnQ7Cit9OworCitpbmxpbmUgWFNtYWxsQWxsb2NhdG9yOjpYU21h
bGxBbGxvY2F0b3IoKQorICAgIDogbV9wdHIoKQorICAgICwgbV9zaXplKCkKKyAgICAsIG1fcmVt
YWluaW5nKCkKKyAgICAsIG1fbWF4T2JqZWN0Q291bnQoKQoreworfQorCitpbmxpbmUgWFNtYWxs
QWxsb2NhdG9yOjpYU21hbGxBbGxvY2F0b3Ioc2l6ZV90IHNpemUpCisgICAgOiBtX3B0cigpCisg
ICAgLCBtX3NpemUoc2l6ZSkKKyAgICAsIG1fcmVtYWluaW5nKCkKKyAgICAsIG1fbWF4T2JqZWN0
Q291bnQoeFNtYWxsTGluZVNpemUgLyBzaXplKQoreworfQorCitpbmxpbmUgWFNtYWxsTGluZSog
WFNtYWxsQWxsb2NhdG9yOjpsaW5lKCkKK3sKKyAgICByZXR1cm4gWFNtYWxsTGluZTo6Z2V0KGNh
bkFsbG9jYXRlKCkgPyBtX3B0ciA6IG1fcHRyIC0gMSk7Cit9CisKK2lubGluZSB2b2lkKiBYU21h
bGxBbGxvY2F0b3I6OmFsbG9jYXRlKCkKK3sKKyAgICBCQVNTRVJUKG1fcmVtYWluaW5nKTsKKyAg
ICBCQVNTRVJUKG1fc2l6ZSA+PSBYU21hbGxMaW5lOjptaW5pbXVtT2JqZWN0U2l6ZSk7CisKKyAg
ICAtLW1fcmVtYWluaW5nOworICAgIGNoYXIqIHJlc3VsdCA9IG1fcHRyOworICAgIG1fcHRyICs9
IG1fc2l6ZTsKKyAgICBCQVNTRVJUKG9iamVjdFR5cGUocmVzdWx0KSA9PSBYU21hbGwpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK2lubGluZSB1bnNpZ25lZCBzaG9ydCBYU21hbGxBbGxvY2F0
b3I6Om9iamVjdENvdW50KCkKK3sKKyAgICByZXR1cm4gbV9tYXhPYmplY3RDb3VudCAtIG1fcmVt
YWluaW5nOworfQorCitpbmxpbmUgdW5zaWduZWQgY2hhciBYU21hbGxBbGxvY2F0b3I6OmRlcmVm
Q291bnQoKQoreworICAgIHJldHVybiBYU21hbGxMaW5lOjptYXhSZWZDb3VudCAtIG9iamVjdENv
dW50KCk7Cit9CisKK2lubGluZSB2b2lkIFhTbWFsbEFsbG9jYXRvcjo6cmVmaWxsKFhTbWFsbExp
bmUqIGxpbmUpCit7CisgICAgQkFTU0VSVCghY2FuQWxsb2NhdGUoKSk7CisgICAgbGluZS0+Y29u
Y3VycmVudFJlZihYU21hbGxMaW5lOjptYXhSZWZDb3VudCk7CisgICAgbV9wdHIgPSBsaW5lLT5i
ZWdpbigpOworICAgIG1fcmVtYWluaW5nID0gbV9tYXhPYmplY3RDb3VudDsKK30KKworfSAvLyBu
YW1lc3BhY2UgYm1hbGxvYworCisjZW5kaWYgLy8gWFNtYWxsQWxsb2NhdG9yX2gKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvWFNtYWxsQ2h1bmsuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1hTbWFsbENodW5rLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL1hTbWFsbENodW5rLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFhTbWFsbENodW5rX2gKKyNkZWZpbmUgWFNtYWxsQ2h1bmtfaAorCisjaW5jbHVkZSAiQ2h1bmsu
aCIKKyNpbmNsdWRlICJYU21hbGxMaW5lLmgiCisjaW5jbHVkZSAiWFNtYWxsUGFnZS5oIgorI2lu
Y2x1ZGUgIlhTbWFsbFRyYWl0cy5oIgorCituYW1lc3BhY2UgYm1hbGxvYyB7CisKK3R5cGVkZWYg
Q2h1bms8WFNtYWxsVHJhaXRzPiBYU21hbGxDaHVuazsKKworfTsgLy8gbmFtZXNwYWNlIGJtYWxs
b2MKKworI2VuZGlmIC8vIFhTbWFsbENodW5rCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L1hTbWFsbExpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1hTbWFs
bExpbmUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvWFNtYWxsTGlu
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBYU21hbGxMaW5lX2gKKyNkZWZpbmUg
WFNtYWxsTGluZV9oCisKKyNpbmNsdWRlICJMaW5lLmgiCisjaW5jbHVkZSAiWFNtYWxsVHJhaXRz
LmgiCisKK25hbWVzcGFjZSBibWFsbG9jIHsKKwordHlwZWRlZiBMaW5lPFhTbWFsbFRyYWl0cz4g
WFNtYWxsTGluZTsKKworfSAvLyBuYW1lc3BhY2UgYm1hbGxvYworCisjZW5kaWYgLy8gWFNtYWxs
TGluZV9oCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1hTbWFsbFBhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1hTbWFsbFBhZ2UuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvWFNtYWxsUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBYU21hbGxQYWdlX2gKKyNkZWZpbmUgWFNtYWxsUGFnZV9oCisKKyNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiWFNtYWxsVHJhaXRzLmgiCisKK25hbWVzcGFjZSBibWFs
bG9jIHsKKwordHlwZWRlZiBQYWdlPFhTbWFsbFRyYWl0cz4gWFNtYWxsUGFnZTsKKworfSAvLyBu
YW1lc3BhY2UgYm1hbGxvYworCisjZW5kaWYgLy8gWFNtYWxsUGFnZV9oCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1hTbWFsbFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvWFNtYWxsVHJhaXRzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL1hTbWFsbFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBY
U21hbGxUcmFpdHNfaAorI2RlZmluZSBYU21hbGxUcmFpdHNfaAorCisjaW5jbHVkZSAiU2l6ZXMu
aCIKKworbmFtZXNwYWNlIGJtYWxsb2MgeworCit0ZW1wbGF0ZTxjbGFzcyBUcmFpdHM+IGNsYXNz
IENodW5rOwordGVtcGxhdGU8Y2xhc3MgVHJhaXRzPiBjbGFzcyBMaW5lOwordGVtcGxhdGU8Y2xh
c3MgVHJhaXRzPiBjbGFzcyBQYWdlOworCitzdHJ1Y3QgWFNtYWxsVHJhaXRzIHsKKyAgICB0eXBl
ZGVmIENodW5rPFhTbWFsbFRyYWl0cz4gQ2h1bms7CisgICAgdHlwZWRlZiBMaW5lPFhTbWFsbFRy
YWl0cz4gTGluZTsKKyAgICB0eXBlZGVmIFBhZ2U8WFNtYWxsVHJhaXRzPiBQYWdlOworCisgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBsaW5lU2l6ZSA9IHhTbWFsbExpbmVTaXplOworICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgbWluaW11bU9iamVjdFNpemUgPSBhbGlnbm1lbnQ7CisgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBjaHVua1NpemUgPSB4U21hbGxDaHVua1NpemU7CisgICAgc3RhdGljIGNv
bnN0IHNpemVfdCBjaHVua09mZnNldCA9IHhTbWFsbENodW5rT2Zmc2V0OworICAgIHN0YXRpYyBj
b25zdCB1aW50cHRyX3QgY2h1bmtNYXNrID0geFNtYWxsQ2h1bmtNYXNrOworfTsKKworfSAvLyBu
YW1lc3BhY2UgYm1hbGxvYworCisjZW5kaWYgLy8gWFNtYWxsVHJhaXRzX2gKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvYm1hbGxvYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvYm1hbGxvYy5oCShyZXZpc2lvbiAxNjczNTMpCisrKyBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL2JtYWxsb2MuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTIgQEAgaW5saW5l
IHZvaWQqIHJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplXwogCiAgICAgc2l6ZV90IG9sZFNpemUg
PSAwOwogICAgIHN3aXRjaChvYmplY3RUeXBlKG9iamVjdCkpIHsKKyAgICBjYXNlIFhTbWFsbDog
eworICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGFuIGV4YWN0IHNpemUsIGJ1dCB3ZSBjYW4gY2Fs
Y3VsYXRlIGEgbWF4aW11bS4KKyAgICAgICAgdm9pZCogZW5kID0gcm91bmRVcFRvTXVsdGlwbGVP
Zjx4U21hbGxMaW5lU2l6ZT4oc3RhdGljX2Nhc3Q8Y2hhcio+KG9iamVjdCkgKyAxKTsKKyAgICAg
ICAgb2xkU2l6ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihlbmQpIC0gc3RhdGljX2Nhc3Q8Y2hhcio+
KG9iamVjdCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFNtYWxsOiB7CiAgICAg
ICAgIC8vIFdlIGRvbid0IGhhdmUgYW4gZXhhY3Qgc2l6ZSwgYnV0IHdlIGNhbiBjYWxjdWxhdGUg
YSBtYXhpbXVtLgogICAgICAgICB2b2lkKiBlbmQgPSByb3VuZFVwVG9NdWx0aXBsZU9mPHNtYWxs
TGluZVNpemU+KHN0YXRpY19jYXN0PGNoYXIqPihvYmplY3QpICsgMSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>