<?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>151519</bug_id>
          
          <creation_ts>2015-11-20 15:22:55 -0800</creation_ts>
          <short_desc>Use the JITAddGenerator snippet in the FTL.</short_desc>
          <delta_ts>2015-12-02 11:21:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143851</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-20 15:22:55 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143852</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-11-20 15:23:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/23637757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143881</commentid>
    <comment_count>2</comment_count>
      <attachid>266012</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-20 16:19:51 -0800</bug_when>
    <thetext>Created attachment 266012
patch 1.

This patch passes the JSC tests on x86_64.  Still need to benchmark it, test it on ARM64, and tune the IC size for the ValueAdd IC.  Other than that, the code is in what I expect to be the final form.

Feedback is welcomed.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143887</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 16:21:20 -0800</bug_when>
    <thetext>Attachment 266012 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:152:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:153:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:154:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:155:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:156:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:159:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:160:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:161:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:162:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:341:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/ftl/FTLCompile.cpp:344:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:38:  Do not use &apos;using namespace DFG;&apos;.  [build/using_namespace] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:41:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:53:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:53:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/JavaScriptCore/ftl/FTLCompileBinaryOp.cpp:193:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/ftl/FTLCompileBinaryOp.cpp:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 20 in 18 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>1143893</commentid>
    <comment_count>4</comment_count>
      <attachid>266015</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-20 16:29:10 -0800</bug_when>
    <thetext>Created attachment 266015
patch 2: fixed valid style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143895</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 16:30:32 -0800</bug_when>
    <thetext>Attachment 266015 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:152:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:153:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:154:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:155:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:156:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:159:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:160:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:161:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h:162:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:39:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:51:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:51:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 12 in 18 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>1144531</commentid>
    <comment_count>6</comment_count>
      <attachid>266189</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-26 09:40:55 -0800</bug_when>
    <thetext>Created attachment 266189
x86_64 benchmark result.

Benchmarks show that perf is neutral.  Any of the &quot;definitely&quot; faster/slower results are just noise, and do not reproduce when I re-run them.

I tried adding an ftl-object-add.js test to specifically test the effects of polymorphic operands on FTL add performance.  The result was no significant change.  This is because the FTL (and DFG) had already previously supported polymorphic adds (ValueAdd) with an unconditional call to its slow path function.

This patch introduces the ability to handle numeric types without going to the slow path, which evidently does not contribute significant difference in perf.  We should move forward with this patch anyway because:
1. it keeps the op_add implementation consistent with the other operators.
2. it introduces the common BinaryOpDescriptor which make it easier to add future binary operators (implemented as snippets) to the FTL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145255</commentid>
    <comment_count>7</comment_count>
      <attachid>266015</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-01 10:21:41 -0800</bug_when>
    <thetext>Comment on attachment 266015
patch 2: fixed valid style issues.

I need to rebase this patch in light of recent commits.  I will also split this into 2 patches: 1 to refactor the FTL code for binary snippets (new bug), 1 for the FTL ValueAdd snippet (this bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145334</commentid>
    <comment_count>8</comment_count>
      <attachid>266379</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-01 12:57:39 -0800</bug_when>
    <thetext>Created attachment 266379
rebased patch.

Still waiting for tests of IC sizes to finish running.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145335</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-01 12:59:19 -0800</bug_when>
    <thetext>Attachment 266379 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 2 in 9 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>1145349</commentid>
    <comment_count>10</comment_count>
      <attachid>266379</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-01 13:13:31 -0800</bug_when>
    <thetext>Comment on attachment 266379
rebased patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145465</commentid>
    <comment_count>11</comment_count>
      <attachid>266414</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-01 17:03:55 -0800</bug_when>
    <thetext>Created attachment 266414
patch 4: plus 2 bug fixes.

Added 2 bug fixes:
1. In lower() in FTLLowerDFGToLLVM.cpp, I added the case for ValueAdd where it needs to account for a potential need of a spill location on the stack.
2. In compileValueAdd(), I moved the increment m_stackmapIDs a little lower in the function to the point where we are committed to allocated a new patchpoint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145467</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-01 17:05:28 -0800</bug_when>
    <thetext>Attachment 266414 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 2 in 9 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>1145468</commentid>
    <comment_count>13</comment_count>
      <attachid>266414</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-01 17:06:19 -0800</bug_when>
    <thetext>Comment on attachment 266414
patch 4: plus 2 bug fixes.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145471</commentid>
    <comment_count>14</comment_count>
      <attachid>266415</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-01 17:10:52 -0800</bug_when>
    <thetext>Created attachment 266415
patch 5: preserve original compileValueAdd() when #if FTL_USES_B3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145472</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-01 17:12:08 -0800</bug_when>
    <thetext>Attachment 266415 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 2 in 9 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>1145625</commentid>
    <comment_count>16</comment_count>
      <attachid>266454</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-02 11:06:06 -0800</bug_when>
    <thetext>Created attachment 266454
patch 6: added back CRASH() for B3 in the same way that ArithSub does it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145626</commentid>
    <comment_count>17</comment_count>
      <attachid>266454</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-02 11:06:46 -0800</bug_when>
    <thetext>Comment on attachment 266454
patch 6: added back CRASH() for B3 in the same way that ArithSub does it.

Wrong patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145627</commentid>
    <comment_count>18</comment_count>
      <attachid>266455</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-02 11:07:48 -0800</bug_when>
    <thetext>Created attachment 266455
patch 6: added back CRASH() for B3 in the same way that ArithSub does it (again).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145628</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-02 11:10:14 -0800</bug_when>
    <thetext>Attachment 266455 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLInlineCacheDescriptorInlines.h:52:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 2 in 9 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>1145635</commentid>
    <comment_count>20</comment_count>
      <attachid>266455</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-02 11:15:38 -0800</bug_when>
    <thetext>Comment on attachment 266455
patch 6: added back CRASH() for B3 in the same way that ArithSub does it (again).

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145639</commentid>
    <comment_count>21</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-02 11:21:08 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r192950: &lt;http://trac.webkit.org/r192950&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266012</attachid>
            <date>2015-11-20 16:19:51 -0800</date>
            <delta_ts>2015-11-20 16:29:10 -0800</delta_ts>
            <desc>patch 1.</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>57887</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyNzA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg4IEBA
CisyMDE1LTExLTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSdyZSBhZGRpbmcgdXNlIG9mIHRo
ZSBvcF9hZGQgc25pcHBldCBieSBmaXJzdCBnZW5lcmFsaXppbmcgdGhlIGV4aXN0aW5nIG1hY2hp
bmVyeQorICAgICAgICBmb3IgdXNpbmcgdGhlIG9wX3N1YiBzbmlwcGV0LiAgVGhpcyB3YXkgd2Ug
Y2FuIG1vcmUgZWFzaWx5IGFkZCBzdXBwb3J0IGZvciBtb3JlCisgICAgICAgIGJpbmFyeSBvcGVy
YXRvciBzbmlwcGV0cy4gIEJvdGggb3BfYWRkIGFuZCBvcF9zdWIgc25pcHBldHMgYXJlIG5vdyB1
c2VkIGluIHRoZQorICAgICAgICBGVEwgdmlhIGNvbW1vbiBCaW5hcnlPcCBtYWNoaW5lcnkuCisK
KyAgICAgICAgT25lIGRldGFpbCBhYm91dCBob3cgd2UgY2hvb3NpbmcgdG8gaGFuZGxlIG9wZXJh
bmRzIHRvIHRoZSBiaW5hcnkgc25pcHBldHMgdGhhdAorICAgICAgICBtYXkgYmUgY29uc3RhbnQ6
IHRoZSBzbG93IHBhdGggY2FsbCB0byBhIEMrKyBmdW5jdGlvbiBzdGlsbCBuZWVkcyB0aGUgY29u
c3RhbnQKKyAgICAgICAgb3BlcmFuZCBsb2FkZWQgaW4gYSByZWdpc3Rlci4gIFRvIHNpbXBsaWZ5
IHRoaW5ncywgd2UncmUgY2hvb3NpbmcgdG8gYWx3YXlzIHRlbGwKKyAgICAgICAgTExWTSB0byBs
b2FkIHRoZSBvcGVyYW5kcyBpbnRvIHJlZ2lzdGVycyBldmVuIGlmIHRoZXkgbWF5IGJlIGNvbnN0
YW50LiAgSWYgYQorICAgICAgICBjb25zdGFudCBvcGVyYW5kIGlzIGluIGEgcmVnaXN0ZXIsIHRo
ZSBzbmlwcGV0IGdlbmVyYXRvciB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlCisgICAgICAgIG9mIGl0
LiAgSXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbiBpbW1lZGlhdGUu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIGZ0bC9GVExD
b21waWxlLmNwcDoKKyAgICAgICAgLSBNb3ZlZCB0aGUgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29u
dGV4dCB0byBGVExDb21waWxlQmluYXJ5T3AuY3BwIHZlcmJhdGltLgorICAgICAgICAtIEdlbmVy
YWxpemUgZ2VuZXJhdGVBcml0aFN1YklDRmFzdFBhdGgoKSB0byBnZW5lcmF0ZUJpbmFyeU9wSUNG
YXN0UGF0aCgpLgorICAgICAgICAgIEl0IG5vdyB1c2VzIHNuaXBwZXQgc3BlY2lmaWMgaGVscGVy
cyBpbiBGVExDb21waWxlQmluYXJ5T3AuY3BwIHRvIGdlbmVyYXRlCisgICAgICAgICAgdGhlIGZh
c3QgcGF0aHMuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dDo6QmluYXJ5
U25pcHBldFJlZ2lzdGVyQ29udGV4dCk6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5U25pcHBl
dFJlZ2lzdGVyQ29udGV4dDo6aW5pdGlhbGl6ZVJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkZU
TDo6QmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dDo6cmVzdG9yZVJlZ2lzdGVycyk6CisgICAg
ICAgIC0gTW92ZWQgaGVyZSB3aXRob3V0IGNoYW5nZWQgZnJvbSBGVExDb21waWxlLmNwcC4KKyAg
ICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZUFyaXRoU3ViRmFzdFBhdGgpOgorICAgICAgICAtIFJl
ZmFjdG9yZWQgb3V0IGlmIGdlbmVyYXRlQXJpdGhTdWJJQ0Zhc3RQYXRoKCkuCisgICAgICAgIChK
U0M6OkZUTDo6Z2VuZXJhdGVWYWx1ZUFkZEZhc3RQYXRoKToKKyAgICAgICAgLSBBZGRlZCBmb3Ig
dXNpbmcgSklUQWRkR2VuZXJhdG9yLgorICAgICAgICAKKyAgICAgICAgKiBmdGwvRlRMQ29tcGls
ZUJpbmFyeU9wLmg6IEFkZGVkLgorCisgICAgICAgICogZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpFeGNlcHRpb25IYW5kbGVyTWFuYWdlcjo6
YmluYXJ5T3BPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGNlcHRpb25IYW5kbGVyTWFu
YWdlcjo6c3ViT1NSRXhpdCk6IERlbGV0ZWQuCisgICAgICAgICogZnRsL0ZUTEV4Y2VwdGlvbkhh
bmRsZXJNYW5hZ2VyLmg6CisKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
Lmg6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5T3BEZXNjcmlwdG9yOjpub2RlVHlwZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6QmluYXJ5T3BEZXNjcmlwdG9yOjpzaXplKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpCaW5hcnlPcERlc2NyaXB0b3I6Om5hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkJp
bmFyeU9wRGVzY3JpcHRvcjo6ZmFzdFBhdGhJQ05hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkJp
bmFyeU9wRGVzY3JpcHRvcjo6c2xvd1BhdGhGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6
QmluYXJ5T3BEZXNjcmlwdG9yOjpsZWZ0VHlwZSk6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5
T3BEZXNjcmlwdG9yOjpyaWdodFR5cGUpOgorICAgICAgICAoSlNDOjpGVEw6OkJpbmFyeU9wRGVz
Y3JpcHRvcjo6bGVmdElzQ29uc3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5T3BE
ZXNjcmlwdG9yOjpyaWdodElzQ29uc3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5
T3BEZXNjcmlwdG9yOjpsZWZ0Q29uc3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5
T3BEZXNjcmlwdG9yOjpyaWdodENvbnN0SW50MzIpOgorICAgICAgICAoSlNDOjpGVEw6OkJpbmFy
eU9wRGVzY3JpcHRvcjo6QmluYXJ5T3BEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpB
cml0aFN1YkRlc2NyaXB0b3I6OkFyaXRoU3ViRGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkZUTDo6QXJpdGhTdWJEZXNjcmlwdG9yOjpsZWZ0VHlwZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkZUTDo6QXJpdGhTdWJEZXNjcmlwdG9yOjpyaWdodFR5cGUpOiBEZWxldGVkLgor
ICAgICAgICAtIFJlZmFjdG9yIEFyaXRoU3ViRGVzY3JpcHRvciBpbnRvIEJpbmFyeU9wRGVzY3Jp
cHRvciwgYW5kIGFkZAorICAgICAgICAgIEFyaXRoU3ViRGVzY3JpcHRvciBhbmQgVmFsdWVBZGRE
ZXNjcmlwdG9yIGFzIHNwZWNpYWxpemF0aW9ucyBvZgorICAgICAgICAgIEJpbmFyeU9wRGVzY3Jp
cHRvciBmb3IgdGhlIHJlc3BlY3RpdmUgc25pcHBldHMuCisKKyAgICAgICAgKiBmdGwvRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpB
cml0aFN1YkRlc2NyaXB0b3I6OkFyaXRoU3ViRGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkZU
TDo6QXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUpOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVl
QWRkRGVzY3JpcHRvcjo6VmFsdWVBZGREZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpW
YWx1ZUFkZERlc2NyaXB0b3I6OmljU2l6ZSk6CisKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2Fj
aGVTaXplLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzaXplT2ZWYWx1ZUFkZCk6CisgICAgICAg
ICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVZhbHVlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQXJpdGhBZGRPclN1Yik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXQuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6Ok9TUkV4aXREZXNjcmlwdG9yOjp3aWxsQXJyaXZlQXRFeGl0RnJvbUluZGly
ZWN0RXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAoSlNDOjpGVEw6Ok9TUkV4aXREZXNjcmlwdG9y
OjptaWdodEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBmdGwv
RlRMT1NSRXhpdC5oOgorICAgICAgICAqIGZ0bC9GVExTdGF0ZS5oOgorCiAyMDE1LTExLTIwICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQjMgc2hvdWxkIGhhdmUg
YSBTZWxlY3Qgb3Bjb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShy
ZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTk4NCw2ICs5ODQsNyBAQCBpZiAoRU5BQkxFX0ZUTF9KSVQpCiAg
ICAgICAgIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwCiAgICAgICAgIGZ0bC9GVExDb21tb25WYWx1
ZXMuY3BwCiAgICAgICAgIGZ0bC9GVExDb21waWxlLmNwcAorICAgICAgICBmdGwvRlRMQ29tcGls
ZUJpbmFyeU9wLmNwcAogICAgICAgICBmdGwvRlRMRFdBUkZEZWJ1Z0xpbmVJbmZvLmNwcAogICAg
ICAgICBmdGwvRlRMRFdBUkZSZWdpc3Rlci5jcHAKICAgICAgICAgZnRsL0ZUTERhdGFTZWN0aW9u
LmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lv
biAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01MjIsNiArNTIyLDcg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExDYXBhYmlsaXRpZXMuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTENvbW1vblZhbHVlcy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGlsZS5jcHAiIC8+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGlsZUJpbmFyeU9wLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExEYXRhU2VjdGlvbi5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMRFdBUkZEZWJ1Z0xpbmVJbmZvLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExEV0FSRlJlZ2lzdGVyLmNwcCIgLz4K
QEAgLTEyODksNiArMTI5MCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRM
Q2FwYWJpbGl0aWVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29t
bW9uVmFsdWVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGls
ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTENvbXBpbGVCaW5hcnlP
cC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTERhdGFTZWN0aW9uLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMRFdBUkZEZWJ1Z0xpbmVJbmZv
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMRFdBUkZSZWdpc3Rlci5o
IiAvPgpAQCAtMTMwNSw2ICsxMzA3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0
bFxGVExGb3JPU1JFbnRyeUpJVENvZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGZ0bFxGVExHZW5lcmF0ZWRGdW5jdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZnRsXEZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZnRsXEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbmxpbmVDYWNoZVNpemUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMSklUQ29kZS5oIiAvPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNp
b24gMTkyNjg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xNTU3
LDYgKzE1NTcsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTENvbXBpbGUu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZnRsPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGlsZUJpbmFyeU9wLmNwcCI+CisgICAg
ICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZnRsXEZUTERhdGFTZWN0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmZ0bDwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNDEyMyw2ICs0MTI2LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExDb21waWxlLmgiPgogICAgICAgPEZpbHRlcj5mdGw8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0
bFxGVExDb21waWxlQmluYXJ5T3AuaCI+CisgICAgICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTERhdGFTZWN0
aW9uLmgiPgogICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAg
LTQxNjUsNiArNDE3MSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yLmgiPgogICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbmxpbmVDYWNo
ZURlc2NyaXB0b3JJbmxpbmVzLmgiPgorICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbmxpbmVDYWNo
ZVNpemUuaCI+CiAgICAgICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5MjY4NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAKIAkJMEYyNEU1NTYxN0YwQjcx
QzAwQUJCMjE3IC8qIElubGluZUNhbGxGcmFtZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNEU1NTQxN0YwQjcxQzAwQUJCMjE3IC8qIElubGlu
ZUNhbGxGcmFtZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGMjRFNTU4MTdGNzRFREIwMEFCQjIxNyAvKiBWYWx1ZVJlY292ZXJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTU3MTdG
NzRFREIwMEFCQjIxNyAvKiBWYWx1ZVJlY292ZXJ5LmNwcCAqLzsgfTsKIAkJMEYyNTZDMzYxNjI3
QjBBRDAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI1NkMzNDE2
MjdCMEFBMDA3RjI3ODMgLyogREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCAqLzsgfTsKLQkJMEYyNUYxQUUxODE2MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hlRGVz
Y3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyNUYxQTcxODE2MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMjVGMUFF
MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjVGMUE3MTgxNjM1RjMwMDUy
MkYzOSAvKiBGVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaCAqLzsgfTsKIAkJMEYyNUYxQUYxODE2
MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hlU2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI1RjFBODE4MTYzNUYzMDA1MjJGMzkgLyog
RlRMSW5saW5lQ2FjaGVTaXplLmNwcCAqLzsgfTsKIAkJMEYyNUYxQjAxODE2MzVGMzAwNTIyRjM5
IC8qIEZUTElubGluZUNhY2hlU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYyNUYxQTkxODE2MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hl
U2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGMjVGMUIxMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNUYxQUExODE2MzVGMzAw
NTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5jcHAgKi87IH07CkBAIC0xOTY0LDYgKzE5NjQsOSBA
QAogCQlGRTEyMjAyODFCRTdGNTkxMDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTIyMDI1MUJFN0Y1
NjQwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0b3IuY3BwICovOyB9OwogCQlGRTE4N0EwMTFCRkJF
NTVFMDAzOEJCQ0EgLyogSklUTXVsR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTg3OUZGMUJGQkM3M0MwMDM4QkJDQSAvKiBKSVRN
dWxHZW5lcmF0b3IuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJ
CUZFMTg3QTAyMUJGQkU1NjEwMDM4QkJDQSAvKiBKSVRNdWxHZW5lcmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTg3QTAwMUJGQkM3M0MwMDM4
QkJDQSAvKiBKSVRNdWxHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgp
OyB9OyB9OworCQlGRTE4N0EwNzFCRkZEOERBMDAzOEJCQ0EgLyogRlRMQ29tcGlsZUJpbmFyeU9w
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTg3
QTA1MUJGRkQ4QzcwMDM4QkJDQSAvKiBGVExDb21waWxlQmluYXJ5T3AuY3BwICovOyBzZXR0aW5n
cyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUZFMTg3QTA4MUJGRkQ4REUwMDM4QkJDQSAv
KiBGVExDb21waWxlQmluYXJ5T3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFMTg3QTA2MUJGRkQ4QzcwMDM4QkJDQSAvKiBGVExDb21waWxlQmluYXJ5
T3AuaCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlGRTE4N0EwOTFC
RkZEQ0RDMDAzOEJCQ0EgLyogRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUxODdBMDMxQkZGQzg5
MDAwMzhCQkNBIC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwogCQlGRTFDMEZGRDFCMTkzRTk4MDBCNTNGQ0Eg
LyogRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRTFDMEZGQzFCMTkzRTk4MDBCNTNGQ0EgLyogRXhjZXB0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkUxQzBGRkYxQjE5NEZEMTAw
QjUzRkNBIC8qIEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRTFDMEZGRTFCMTk0RkQxMDBCNTNGQ0EgLyogRXhjZXB0aW9uLmNwcCAq
LzsgfTsKIAkJRkUyMENFOUQxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyMENFOUIxNUYwNEE5
NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwICovOyB9OwpAQCAtNDA5Niw2ICs0MDk5LDkgQEAK
IAkJRkUxMjIwMjYxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRBZGRHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUxODc5RkYxQkZCQzczQzAwMzhCQkNBIC8qIEpJVE11bEdlbmVy
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRNdWxHZW5l
cmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTE4N0EwMDFCRkJDNzND
MDAzOEJCQ0EgLyogSklUTXVsR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpJVE11bEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
RTE4N0EwMzFCRkZDODkwMDAzOEJCQ0EgLyogRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExJbmxpbmVDYWNoZURlc2Ny
aXB0b3JJbmxpbmVzLmg7IHBhdGggPSBmdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTE4N0EwNTFCRkZEOEM3MDAzOEJC
Q0EgLyogRlRMQ29tcGlsZUJpbmFyeU9wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEZUTENvbXBpbGVCaW5hcnlPcC5jcHA7IHBhdGggPSBmdGwvRlRMQ29tcGlsZUJp
bmFyeU9wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkUxODdBMDYxQkZGRDhD
NzAwMzhCQkNBIC8qIEZUTENvbXBpbGVCaW5hcnlPcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBGVExDb21waWxlQmluYXJ5T3AuaDsgcGF0aCA9IGZ0bC9GVExDb21waWxlQmlu
YXJ5T3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUxQzBGRkMxQjE5M0U5ODAw
QjUzRkNBIC8qIEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUxQzBGRkUxQjE5NEZE
MTAwQjUzRkNBIC8qIEV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTIw
Q0U5QjE1RjA0QTk1MDBERjM0MzAgLyogTExJbnRDTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludENMb29wLmNwcDsgcGF0aCA9IGxsaW50L0xMSW50Q0xv
b3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM3MCw2ICs0Mzc2LDggQEAK
IAkJCQkwRkVBMEEyMTE3MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggKi8sCiAJ
CQkJMEZFQTBBMDAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENvbXBpbGUuY3BwICovLAogCQkJCTBG
RUEwQTAxMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmggKi8sCisJCQkJRkUxODdBMDUx
QkZGRDhDNzAwMzhCQkNBIC8qIEZUTENvbXBpbGVCaW5hcnlPcC5jcHAgKi8sCisJCQkJRkUxODdB
MDYxQkZGRDhDNzAwMzhCQkNBIC8qIEZUTENvbXBpbGVCaW5hcnlPcC5oICovLAogCQkJCTBGRTk1
Rjc3MThCNTY5NDcwMEI1MzFGQiAvKiBGVExEYXRhU2VjdGlvbi5jcHAgKi8sCiAJCQkJMEZFOTVG
NzgxOEI1Njk0NzAwQjUzMUZCIC8qIEZUTERhdGFTZWN0aW9uLmggKi8sCiAJCQkJMkFDOTIyQjkx
OEExNjE4MjAwM0NFMEZCIC8qIEZUTERXQVJGRGVidWdMaW5lSW5mby5jcHAgKi8sCkBAIC00Mzk3
LDYgKzQ0MDUsNyBAQAogCQkJCTBGRDhBMzE2MTdENTFGMjIwMENBMkM0MCAvKiBGVExGb3JPU1JF
bnRyeUpJVENvZGUuaCAqLywKIAkJCQlBNzhBOTc3QzE3OTczOEQ1MDA5REY3NDQgLyogRlRMR2Vu
ZXJhdGVkRnVuY3Rpb24uaCAqLywKIAkJCQkwRjI1RjFBNzE4MTYzNUYzMDA1MjJGMzkgLyogRlRM
SW5saW5lQ2FjaGVEZXNjcmlwdG9yLmggKi8sCisJCQkJRkUxODdBMDMxQkZGQzg5MDAwMzhCQkNB
IC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXMuaCAqLywKIAkJCQkwRjI1RjFBODE4
MTYzNUYzMDA1MjJGMzkgLyogRlRMSW5saW5lQ2FjaGVTaXplLmNwcCAqLywKIAkJCQkwRjI1RjFB
OTE4MTYzNUYzMDA1MjJGMzkgLyogRlRMSW5saW5lQ2FjaGVTaXplLmggKi8sCiAJCQkJMEZFQTBB
MjYxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9zaXRvcnkuY3BwICovLApAQCAt
NjczNiw2ICs2NzQ1LDcgQEAKIAkJCQk4NjY3MzlEMjEzQkZERTcxMDAyM0Q4N0MgLyogQmlnSW50
ZWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NEIyNzIxQTc4NEJBRjAwNkU0RTY2IC8qIEJp
bmFyeVN3aXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRUMwRTE2RjVDRDAwQjM0NDYw
IC8qIEJvb2xlYW5PYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFMTg3QTA4MUJGRkQ4REUw
MDM4QkJDQSAvKiBGVExDb21waWxlQmluYXJ5T3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3
MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3RDgwMUE1MTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJs
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNzQ4MCw2ICs3NDkwLDcgQEAKIAkJCQk4NkM1NjhFMjEx
QTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ3
MDNDRDcxOTI4NDRDQzAwMTNGQkVBIC8qIG1vZGVscy5weSBpbiBIZWFkZXJzICovLAogCQkJCUUz
Nzk0RTc2MUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRkUxODdBMDkxQkZGRENEQzAwMzhCQkNBIC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRv
cklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTVGMzUzMUI3REM4NTMwMEM1MERDNSAv
KiBNb2R1bGVMb2FkZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzIwMUJEQTA4
RUYwMDMzMUI4NCAvKiBNb2R1bGVMb2FkZXJPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzAyRTkxMTBFMTgzOURCMDAwRjkyOTcgLyogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04Mzk1LDYgKzg0MDYsNyBAQAogCQkJCTg2RUM5REM0MTMyOERGODIw
MDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4
MkUyMTE0MTcyQ0UzMDAxNzlDOTQgLyogREZHQ2FwYWJpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRkZDOTU3MTRFRjkwQTAwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGRTE4N0EwNzFCRkZEOERBMDAzOEJCQ0EgLyogRlRMQ29tcGlsZUJpbmFy
eU9wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0IzQTI3MTU0NEM5OTUwMDNFRDBGRiAvKiBE
RkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzNjk0
MUFFOUNDMzMwMDBENERGQiAvKiBERkdDbGVhblVwUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTc3QTQyM0YxN0EwQkJGRDAwQThEQjgxIC8qIERGR0Nsb2JiZXJpemUuY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJl
dmlzaW9uIDE5MjY4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEzICszNywxNCBAQAogI2luY2x1ZGUgIkRGR09wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJEYXRhVmlldy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5o
IgorI2luY2x1ZGUgIkZUTENvbXBpbGVCaW5hcnlPcC5oIgorI2luY2x1ZGUgIkZUTElubGluZUNh
Y2hlRGVzY3JpcHRvcklubGluZXMuaCIKICNpbmNsdWRlICJGVExFeGNlcHRpb25IYW5kbGVyTWFu
YWdlci5oIgogI2luY2x1ZGUgIkZUTEV4aXRUaHVua0dlbmVyYXRvci5oIgogI2luY2x1ZGUgIkZU
TElubGluZUNhY2hlU2l6ZS5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJG
VExUaHVua3MuaCIKICNpbmNsdWRlICJGVExVbndpbmRJbmZvLmgiCi0jaW5jbHVkZSAiSklUU3Vi
R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKQEAgLTMwNywxMjUgKzMw
OCwxMiBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUNoZWNrSW5JQ0Zhc3RQYXRoKAogICAgIH0KIH0K
IAotY2xhc3MgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dCB7Ci0gICAgLy8gVGhlIHB1cnBv
c2Ugb2YgdGhpcyBjbGFzcyBpcyB0byBzaHVmZmxlIHJlZ2lzdGVycyB0byBnZXQgdGhlbSBpbnRv
IHRoZSBzdGF0ZQotICAgIC8vIHRoYXQgYmFzZWxpbmUgY29kZSBleHBlY3RzIHNvIHRoYXQgd2Ug
Y2FuIHVzZSB0aGUgYmFzZWxpbmUgc25pcHBldCBnZW5lcmF0b3JzIGkuZS4KLSAgICAvLyAgICAx
LiBFbnN1cmUgdGhhdCB0aGUgaW5wdXRzIGFuZCBvdXRwdXQgYXJlIG5vdCBpbiByZXNlcnZlZCBy
ZWdpc3RlcnMgKHdoaWNoCi0gICAgLy8gICAgICAgaW5jbHVkZSB0aGUgdGFnIHJlZ2lzdGVycyku
IFRoZSBzbmlwcGV0IHdpbGwgdXNlIHRoZXNlIHJlc2VydmVkIHJlZ2lzdGVycy4KLSAgICAvLyAg
ICAgICBIZW5jZSwgd2UgbmVlZCB0byBwdXQgdGhlIGlucHV0cyBhbmQgb3V0cHV0IGluIG90aGVy
IHNjcmF0Y2ggcmVnaXN0ZXJzLgotICAgIC8vICAgIDIuIFRhZyByZWdpc3RlcnMgYXJlIGxvYWRl
ZCB3aXRoIHRoZSBleHBlY3RlZCB2YWx1ZXMuCi0gICAgLy8KLSAgICAvLyBXaGVuIHRoZSBzbmlw
cGV0IGlzIGRvbmU6Ci0gICAgLy8gICAgMS4gSWYgd2UgaGFkIHJlLWFzc2lnbmVkIHRoZSByZXN1
bHQgcmVnaXN0ZXIgdG8gYSBzY3JhdGNoLCB3ZSBuZWVkIHRvIGNvcHkgdGhlCi0gICAgLy8gICAg
ICAgcmVzdWx0IGJhY2sgZnJvbSB0aGUgc2NyYXRjaC4KLSAgICAvLyAgICAyLiBSZXN0b3JlIHRo
ZSBpbnB1dCBhbmQgdGFnIHJlZ2lzdGVycyB0byB0aGUgdmFsdWVzIHRoYXQgTExWTSBwdXQgdGhl
cmUgb3JpZ2luYWxseS4KLSAgICAvLyAgICAgICBUaGF0IGlzIHVubGVzcyB3aGVuIG9uZSBvZiB0
aGVtIGlzIGFsc28gdGhlIHJlc3VsdCByZWdpc3Rlci4gSW4gdGhhdCBjYXNlLCB3ZQotICAgIC8v
ICAgICAgIGRvbid0IHdhbnQgdG8gdHJhc2ggdGhlIHJlc3VsdCwgYW5kIGhlbmNlLCBzaG91bGQg
bm90IHJlc3RvcmUgaW50byBpdC4KLQotcHVibGljOgotICAgIEJpbmFyeVNuaXBwZXRSZWdpc3Rl
ckNvbnRleHQoU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IsIEdQUlJlZyYgcmVz
dWx0LCBHUFJSZWcmIGxlZnQsIEdQUlJlZyYgcmlnaHQpCi0gICAgICAgIDogbV9hbGxvY2F0b3Io
YWxsb2NhdG9yKQotICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKLSAgICAgICAgLCBtX2xlZnQo
bGVmdCkKLSAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQotICAgICAgICAsIG1fb3JpZ1Jlc3VsdChy
ZXN1bHQpCi0gICAgICAgICwgbV9vcmlnTGVmdChsZWZ0KQotICAgICAgICAsIG1fb3JpZ1JpZ2h0
KHJpZ2h0KQotICAgIHsKLSAgICAgICAgbV9hbGxvY2F0b3IubG9jayhtX3Jlc3VsdCk7Ci0gICAg
ICAgIG1fYWxsb2NhdG9yLmxvY2sobV9sZWZ0KTsKLSAgICAgICAgbV9hbGxvY2F0b3IubG9jayht
X3JpZ2h0KTsKLQotICAgICAgICBSZWdpc3RlclNldCBpbnB1dEFuZE91dHB1dFJlZ2lzdGVycyA9
IFJlZ2lzdGVyU2V0KG1fbGVmdCwgbV9yaWdodCwgbV9yZXN1bHQpOwotICAgICAgICBSZWdpc3Rl
clNldCByZXNlcnZlZFJlZ2lzdGVyczsKLSAgICAgICAgZm9yIChHUFJSZWcgcmVnIDogR1BSSW5m
bzo6cmVzZXJ2ZWRSZWdpc3RlcnMoKSkKLSAgICAgICAgICAgIHJlc2VydmVkUmVnaXN0ZXJzLnNl
dChyZWcpOwotCi0gICAgICAgIGlmIChyZXNlcnZlZFJlZ2lzdGVycy5nZXQobV9sZWZ0KSkKLSAg
ICAgICAgICAgIG1fbGVmdCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwotICAg
ICAgICBpZiAocmVzZXJ2ZWRSZWdpc3RlcnMuZ2V0KG1fcmlnaHQpKSB7Ci0gICAgICAgICAgICBp
ZiAobV9vcmlnUmlnaHQgPT0gbV9vcmlnTGVmdCkKLSAgICAgICAgICAgICAgICBtX3JpZ2h0ID0g
bV9sZWZ0OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fcmlnaHQgPSBtX2Fs
bG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVz
ZXJ2ZWRSZWdpc3RlcnMuZ2V0KG1fcmVzdWx0KSkgewotICAgICAgICAgICAgaWYgKG1fb3JpZ1Jl
c3VsdCA9PSBtX29yaWdMZWZ0KQotICAgICAgICAgICAgICAgIG1fcmVzdWx0ID0gbV9sZWZ0Owot
ICAgICAgICAgICAgZWxzZSBpZiAobV9vcmlnUmVzdWx0ID09IG1fb3JpZ1JpZ2h0KQotICAgICAg
ICAgICAgICAgIG1fcmVzdWx0ID0gbV9yaWdodDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBtX3Jlc3VsdCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKCFpbnB1dEFuZE91dHB1dFJlZ2lzdGVycy5nZXQoR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyKSkKLSAgICAgICAgICAgIG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIg
PSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICAgICAgaWYgKCFpbnB1dEFu
ZE91dHB1dFJlZ2lzdGVycy5nZXQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSkKLSAg
ICAgICAgICAgIG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBtX2FsbG9jYXRvci5hbGxv
Y2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVSZWdpc3RlcnMo
Q0NhbGxIZWxwZXJzJiBqaXQpCi0gICAgewotICAgICAgICBpZiAobV9sZWZ0ICE9IG1fb3JpZ0xl
ZnQpCi0gICAgICAgICAgICBqaXQubW92ZShtX29yaWdMZWZ0LCBtX2xlZnQpOwotICAgICAgICBp
ZiAobV9yaWdodCAhPSBtX29yaWdSaWdodCAmJiBtX29yaWdSaWdodCAhPSBtX29yaWdMZWZ0KQot
ICAgICAgICAgICAgaml0Lm1vdmUobV9vcmlnUmlnaHQsIG1fcmlnaHQpOwotCi0gICAgICAgIGlm
IChtX3NhdmVkVGFnTWFza1JlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICBq
aXQubW92ZShHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIsIG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIp
OwotICAgICAgICBpZiAobV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBJbnZhbGlkR1BS
UmVnKQotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
LCBtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLQotICAgICAgICBqaXQuZW1pdE1hdGVy
aWFsaXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKLSAgICB9Ci0KLSAgICB2b2lkIHJlc3RvcmVSZWdp
c3RlcnMoQ0NhbGxIZWxwZXJzJiBqaXQpCi0gICAgewotICAgICAgICBpZiAobV9vcmlnUmVzdWx0
ICE9IG1fcmVzdWx0KQotICAgICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQsIG1fb3JpZ1Jlc3Vs
dCk7Ci0gICAgICAgIGlmIChtX29yaWdMZWZ0ICE9IG1fbGVmdCAmJiBtX29yaWdMZWZ0ICE9IG1f
b3JpZ1Jlc3VsdCkKLSAgICAgICAgICAgIGppdC5tb3ZlKG1fbGVmdCwgbV9vcmlnTGVmdCk7Ci0g
ICAgICAgIGlmIChtX29yaWdSaWdodCAhPSBtX3JpZ2h0ICYmIG1fb3JpZ1JpZ2h0ICE9IG1fb3Jp
Z1Jlc3VsdCAmJiBtX29yaWdSaWdodCAhPSBtX29yaWdMZWZ0KQotICAgICAgICAgICAgaml0Lm1v
dmUobV9yaWdodCwgbV9vcmlnUmlnaHQpOwotCi0gICAgICAgIC8vIFdlIGFyZSBndWFyYW50ZWVk
IHRoYXQgdGhlIHRhZyByZWdpc3RlcnMgYXJlIG5vdCB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwg
aW5wdXQKLSAgICAgICAgLy8gb3Igb3V0cHV0IHJlZ2lzdGVycy4gT3RoZXJ3aXNlLCB3ZSB3b3Vs
ZCBub3QgaGF2ZSBhbGxvY2F0ZWQgYSBzY3JhdGNoIGZvciB0aGVtLgotICAgICAgICAvLyBIZW5j
ZSwgd2UgZG9uJ3QgbmVlZCB0byBuZWVkIHRvIGNoZWNrIGZvciBvdmVybGFwIGxpa2Ugd2UgZG8g
Zm9yIHRoZSBpbnB1dCByZWdpc3RlcnMuCi0gICAgICAgIGlmIChtX3NhdmVkVGFnTWFza1JlZ2lz
dGVyICE9IEludmFsaWRHUFJSZWcpIHsKLSAgICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdN
YXNrUmVnaXN0ZXIgIT0gbV9vcmlnTGVmdCk7Ci0gICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6
dGFnTWFza1JlZ2lzdGVyICE9IG1fb3JpZ1JpZ2h0KTsKLSAgICAgICAgICAgIEFTU0VSVChHUFJJ
bmZvOjp0YWdNYXNrUmVnaXN0ZXIgIT0gbV9vcmlnUmVzdWx0KTsKLSAgICAgICAgICAgIGppdC5t
b3ZlKG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gSW52
YWxpZEdQUlJlZykgewotICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciAhPSBtX29yaWdMZWZ0KTsKLSAgICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdU
eXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmlnUmlnaHQpOwotICAgICAgICAgICAgQVNTRVJUKEdQ
UkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBtX29yaWdSZXN1bHQpOwotICAgICAgICAg
ICAgaml0Lm1vdmUobV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgfQotICAgIH0KLQotcHJpdmF0ZToKLSAgICBTY3Jh
dGNoUmVnaXN0ZXJBbGxvY2F0b3ImIG1fYWxsb2NhdG9yOwotCi0gICAgR1BSUmVnJiBtX3Jlc3Vs
dDsKLSAgICBHUFJSZWcmIG1fbGVmdDsKLSAgICBHUFJSZWcmIG1fcmlnaHQ7Ci0KLSAgICBHUFJS
ZWcgbV9vcmlnUmVzdWx0OwotICAgIEdQUlJlZyBtX29yaWdMZWZ0OwotICAgIEdQUlJlZyBtX29y
aWdSaWdodDsKLQotICAgIEdQUlJlZyBtX3NhdmVkVGFnTWFza1JlZ2lzdGVyIHsgSW52YWxpZEdQ
UlJlZyB9OwotICAgIEdQUlJlZyBtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyIHsgSW52YWxp
ZEdQUlJlZyB9OwotfTsKLQotc3RhdGljIHZvaWQgZ2VuZXJhdGVBcml0aFN1YklDRmFzdFBhdGgo
CitzdGF0aWMgdm9pZCBnZW5lcmF0ZUJpbmFyeU9wSUNGYXN0UGF0aCgKICAgICBTdGF0ZSYgc3Rh
dGUsIENvZGVCbG9jayogY29kZUJsb2NrLCBHZW5lcmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5j
dGlvbiwKLSAgICBTdGFja01hcHM6OlJlY29yZE1hcCYgcmVjb3JkTWFwLCBBcml0aFN1YkRlc2Ny
aXB0b3ImIGljKQorICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwJiByZWNvcmRNYXAsIEJpbmFyeU9w
RGVzY3JpcHRvciYgaWMpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUuZ3JhcGgubV92bTsKLSAgICBz
aXplX3Qgc2l6ZU9mSUMgPSBzaXplT2ZBcml0aFN1YigpOworICAgIHNpemVfdCBzaXplT2ZJQyA9
IGljLnNpemUoKTsKIAogICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0g
cmVjb3JkTWFwLmZpbmQoaWMuc3RhY2ttYXBJRCgpKTsKICAgICBpZiAoaXRlciA9PSByZWNvcmRN
YXAuZW5kKCkpCkBAIC00NDMsNDAgKzMzMSwyNSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUFyaXRo
U3ViSUNGYXN0UGF0aCgKICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IHJlY29yZC5sb2NhdGlvbnNb
MF0uZGlyZWN0R1BSKCk7CiAgICAgICAgIEdQUlJlZyBsZWZ0ID0gcmVjb3JkLmxvY2F0aW9uc1sx
XS5kaXJlY3RHUFIoKTsKICAgICAgICAgR1BSUmVnIHJpZ2h0ID0gcmVjb3JkLmxvY2F0aW9uc1sy
XS5kaXJlY3RHUFIoKTsKLQogICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdXNl
ZFJlZ2lzdGVyc0ZvcihyZWNvcmQpOwotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3Ig
YWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOwotCi0gICAgICAgIEJpbmFyeVNuaXBwZXRSZWdpc3Rl
ckNvbnRleHQgY29udGV4dChhbGxvY2F0b3IsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwotCi0gICAg
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwot
ICAgICAgICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsK
LSAgICAgICAgRlBSUmVnIHJpZ2h0RlBSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEZQUigp
OwotICAgICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRGUFJSZWc7CiAKLSAgICAgICAg
SklUU3ViR2VuZXJhdG9yIGdlbihKU1ZhbHVlUmVncyhyZXN1bHQpLCBKU1ZhbHVlUmVncyhsZWZ0
KSwgSlNWYWx1ZVJlZ3MocmlnaHQpLCBpYy5sZWZ0VHlwZSgpLCBpYy5yaWdodFR5cGUoKSwgbGVm
dEZQUiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgZG9uZTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoU3Rh
cnQ7CiAKLSAgICAgICAgYXV0byBudW1iZXJPZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdp
c3RlcnMgPQotICAgICAgICAgICAgYWxsb2NhdG9yLnByZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQ
dXNoaW5nKGZhc3RQYXRoSklULCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OkV4dHJhU3RhY2tT
cGFjZTo6Tm9FeHRyYVNwYWNlKTsKLQotICAgICAgICBjb250ZXh0LmluaXRpYWxpemVSZWdpc3Rl
cnMoZmFzdFBhdGhKSVQpOwotICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChmYXN0UGF0aEpJ
VCk7Ci0KLSAgICAgICAgQVNTRVJUKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7Ci0gICAgICAgIGdl
bi5lbmRKdW1wTGlzdCgpLmxpbmsoJmZhc3RQYXRoSklUKTsKLSAgICAgICAgY29udGV4dC5yZXN0
b3JlUmVnaXN0ZXJzKGZhc3RQYXRoSklUKTsKLSAgICAgICAgYWxsb2NhdG9yLnJlc3RvcmVSZXVz
ZWRSZWdpc3RlcnNCeVBvcHBpbmcoZmFzdFBhdGhKSVQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVycywKLSAgICAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBmYXN0UGF0aEpJVC5qdW1wKCk7Ci0KLSAgICAgICAgZ2VuLnNsb3dQYXRo
SnVtcExpc3QoKS5saW5rKCZmYXN0UGF0aEpJVCk7Ci0gICAgICAgIGNvbnRleHQucmVzdG9yZVJl
Z2lzdGVycyhmYXN0UGF0aEpJVCk7Ci0gICAgICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVn
aXN0ZXJzQnlQb3BwaW5nKGZhc3RQYXRoSklULCBudW1iZXJPZkJ5dGVzVXNlZFRvUHJlc2VydmVS
ZXVzZWRSZWdpc3RlcnMsCi0gICAgICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OkV4
dHJhU3RhY2tTcGFjZTo6U3BhY2VGb3JDQ2FsbCk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6SnVt
cCBzbG93UGF0aFN0YXJ0ID0gZmFzdFBhdGhKSVQuanVtcCgpOworICAgICAgICBzd2l0Y2ggKGlj
Lm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBBcml0aFN1YjoKKyAgICAgICAgICAgIGdlbmVy
YXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmlnaHQs
IHVzZWRSZWdpc3RlcnMsIGRvbmUsc2xvd1BhdGhTdGFydCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAgIGdlbmVyYXRlVmFsdWVBZGRGYXN0
UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmlnaHQsIHVzZWRSZWdpc3RlcnMs
IGRvbmUsc2xvd1BhdGhTdGFydCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0K
IAogICAgICAgICBjaGFyKiBzdGFydE9mSUMgPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRl
ZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0cnVjdGlvbk9mZnNldDsKLSAgICAgICAgZ2VuZXJhdGVJ
bmxpbmVJZlBvc3NpYmxlT3V0T2ZMaW5lSWZOb3Qoc3RhdGUsIHZtLCBjb2RlQmxvY2ssIGZhc3RQ
YXRoSklULCBzdGFydE9mSUMsIHNpemVPZklDLCAiQXJpdGhTdWIgaW5saW5lIGNhY2hlIGZhc3Qg
cGF0aCIsIFsmXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlciwgQ0NhbGxIZWxwZXJzJiwgYm9vbCkg
eworICAgICAgICBjb25zdCBjaGFyKiBmYXN0UGF0aElDTmFtZSA9IGljLmZhc3RQYXRoSUNOYW1l
KCk7CisgICAgICAgIGdlbmVyYXRlSW5saW5lSWZQb3NzaWJsZU91dE9mTGluZUlmTm90KHN0YXRl
LCB2bSwgY29kZUJsb2NrLCBmYXN0UGF0aEpJVCwgc3RhcnRPZklDLCBzaXplT2ZJQywgZmFzdFBh
dGhJQ05hbWUsIFsmXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlciwgQ0NhbGxIZWxwZXJzJiwgYm9v
bCkgewogICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGRvbmUsIENvZGVMb2NhdGlvbkxhYmVs
KHN0YXJ0T2ZJQyArIHNpemVPZklDKSk7CiAgICAgICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPnNp
ZGVDb2RlTGlua0J1ZmZlci0+bGluayhpYy5tX3Nsb3dQYXRoRG9uZVtpXSwgQ29kZUxvY2F0aW9u
TGFiZWwoc3RhcnRPZklDICsgc2l6ZU9mSUMpKTsKICAgICAgICAgICAgIApAQCAtNjY0LDcgKzUz
Nyw3IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAg
ICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZSA9PSByZXN1bHQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBleGl0LnJlZ2lzdGVyc1RvUHJlc2VydmVGb3JDYWxsVGhhdE1pZ2h0VGhyb3cu
c2V0KGJhc2UpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXhpdERlc2NyaXB0b3IubV9l
eGNlcHRpb25UeXBlID09IEV4Y2VwdGlvblR5cGU6OlN1YkdlbmVyYXRvcikgeworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoZXhpdERlc2NyaXB0b3IubV9leGNlcHRpb25UeXBlID09IEV4Y2Vw
dGlvblR5cGU6OkJpbmFyeU9wR2VuZXJhdG9yKSB7CiAgICAgICAgICAgICAgICAgICAgIEdQUlJl
ZyByZXN1bHQgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVjdEdQUigpOwogICAgICAgICAgICAg
ICAgICAgICBHUFJSZWcgbGVmdCA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7CiAg
ICAgICAgICAgICAgICAgICAgIEdQUlJlZyByaWdodCA9IHJlY29yZC5sb2NhdGlvbnNbMl0uZGly
ZWN0R1BSKCk7CkBAIC03MjUsNyArNTk4LDcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNl
ZE9uU3RhY2tNYXBzKAogICAgIGlmICghc3RhdGUuZ2V0QnlJZHMuaXNFbXB0eSgpCiAgICAgICAg
IHx8ICFzdGF0ZS5wdXRCeUlkcy5pc0VtcHR5KCkKICAgICAgICAgfHwgIXN0YXRlLmNoZWNrSW5z
LmlzRW1wdHkoKQotICAgICAgICB8fCAhc3RhdGUuYXJpdGhTdWJzLmlzRW1wdHkoKQorICAgICAg
ICB8fCAhc3RhdGUuYmluYXJ5T3BzLmlzRW1wdHkoKQogICAgICAgICB8fCAhc3RhdGUubGF6eVNs
b3dQYXRocy5pc0VtcHR5KCkpIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzIHNsb3dQYXRoSklUKCZ2
bSwgY29kZUJsb2NrKTsKICAgICAgICAgCkBAIC04NzMsMTcgKzc0NiwxNyBAQCBzdGF0aWMgdm9p
ZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAotICAgICAgICBmb3IgKHNpemVfdCBpID0gc3RhdGUuYXJpdGhTdWJzLnNpemUoKTsgaS0tOykg
ewotICAgICAgICAgICAgQXJpdGhTdWJEZXNjcmlwdG9yJiBhcml0aFN1YiA9IHN0YXRlLmFyaXRo
U3Vic1tpXTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IHN0YXRlLmJpbmFyeU9wcy5zaXplKCk7
IGktLTspIHsKKyAgICAgICAgICAgIEJpbmFyeU9wRGVzY3JpcHRvciYgYmluYXJ5T3AgPSBzdGF0
ZS5iaW5hcnlPcHNbaV07CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICh2ZXJib3NlQ29t
cGlsYXRpb25FbmFibGVkKCkpCi0gICAgICAgICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcgQXJp
dGhTdWIgc3RhY2ttYXAgIyIsIGFyaXRoU3ViLnN0YWNrbWFwSUQoKSwgIlxuIik7CisgICAgICAg
ICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcgIiwgYmluYXJ5T3AubmFtZSgpLCAiIHN0YWNrbWFw
ICMiLCBiaW5hcnlPcC5zdGFja21hcElEKCksICJcbiIpOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBhdXRvIGl0ZXIgPSByZWNvcmRNYXAuZmluZChhcml0aFN1Yi5zdGFja21hcElEKCkpOwor
ICAgICAgICAgICAgYXV0byBpdGVyID0gcmVjb3JkTWFwLmZpbmQoYmluYXJ5T3Auc3RhY2ttYXBJ
RCgpKTsKICAgICAgICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IGFyaXRoU3ViLmNvZGVPcmlnaW4o
KTsKKyAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IGJpbmFyeU9wLmNvZGVPcmln
aW4oKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVyLT52YWx1ZS5z
aXplKCk7ICsraSkgewogICAgICAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQg
PSBpdGVyLT52YWx1ZVtpXS5yZWNvcmQ7CiAgICAgICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNl
ZFJlZ2lzdGVycyA9IHVzZWRSZWdpc3RlcnNGb3IocmVjb3JkKTsKQEAgLTg5MiwxOSArNzY1LDE5
IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAg
ICAgICBHUFJSZWcgbGVmdCA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7CiAgICAg
ICAgICAgICAgICAgR1BSUmVnIHJpZ2h0ID0gcmVjb3JkLmxvY2F0aW9uc1syXS5kaXJlY3RHUFIo
KTsKIAotICAgICAgICAgICAgICAgIGFyaXRoU3ViLm1fc2xvd1BhdGhTdGFydHMuYXBwZW5kKHNs
b3dQYXRoSklULmxhYmVsKCkpOworICAgICAgICAgICAgICAgIGJpbmFyeU9wLm1fc2xvd1BhdGhT
dGFydHMuYXBwZW5kKHNsb3dQYXRoSklULmxhYmVsKCkpOwogICAgICAgICAgICAgICAgIGJvb2wg
YWRkZWRVbmlxdWVFeGNlcHRpb25KdW1wID0gYWRkTmV3RXhjZXB0aW9uSnVtcElmTmVjZXNzYXJ5
KGl0ZXItPnZhbHVlW2ldLmluZGV4KTsKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IGxl
ZnQgfHwgcmVzdWx0ID09IHJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgc2l0
dWF0aW9uIGhhcyBhIHJlYWxseSBpbnRlcmVzdGluZyByZWdpc3RlciBwcmVzZXJ2YXRpb24gc3Rv
cnkuCiAgICAgICAgICAgICAgICAgICAgIC8vIFNlZSBjb21tZW50IGFib3ZlIGZvciBHZXRCeUlk
cy4KLSAgICAgICAgICAgICAgICAgICAgaWYgKE9TUkV4aXQqIGV4aXQgPSBleGNlcHRpb25IYW5k
bGVyTWFuYWdlci5zdWJPU1JFeGl0KGl0ZXItPnZhbHVlW2ldLmluZGV4KSkKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKE9TUkV4aXQqIGV4aXQgPSBleGNlcHRpb25IYW5kbGVyTWFuYWdlci5iaW5h
cnlPcE9TUkV4aXQoaXRlci0+dmFsdWVbaV0uaW5kZXgpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgZXhpdC0+c3BpbGxSZWdpc3RlcnNUb1NwaWxsU2xvdChzbG93UGF0aEpJVCwganNDYWxsVGhh
dE1pZ2h0VGhyb3dTcGlsbE9mZnNldCk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICAgY2FsbE9wZXJhdGlvbihzdGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIGNv
ZGVPcmlnaW4sIGFkZGVkVW5pcXVlRXhjZXB0aW9uSnVtcCA/ICZleGNlcHRpb25KdW1wc1RvTGlu
ay5sYXN0KCkuZmlyc3QgOiAmZXhjZXB0aW9uVGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICBv
cGVyYXRpb25WYWx1ZVN1YiwgcmVzdWx0LCBsZWZ0LCByaWdodCkuY2FsbCgpOworICAgICAgICAg
ICAgICAgICAgICBiaW5hcnlPcC5zbG93UGF0aEZ1bmN0aW9uKCksIHJlc3VsdCwgbGVmdCwgcmln
aHQpLmNhbGwoKTsKIAotICAgICAgICAgICAgICAgIGFyaXRoU3ViLm1fc2xvd1BhdGhEb25lLmFw
cGVuZChzbG93UGF0aEpJVC5qdW1wKCkpOworICAgICAgICAgICAgICAgIGJpbmFyeU9wLm1fc2xv
d1BhdGhEb25lLmFwcGVuZChzbG93UGF0aEpJVC5qdW1wKCkpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKQEAgLTk5Miw5ICs4NjUsOSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2Vk
T25TdGFja01hcHMoCiAgICAgICAgICAgICAgICAgc3RhdGUsIGNvZGVCbG9jaywgZ2VuZXJhdGVk
RnVuY3Rpb24sIHJlY29yZE1hcCwgc3RhdGUuY2hlY2tJbnNbaV0sCiAgICAgICAgICAgICAgICAg
c2l6ZU9mSW4oKSk7IAogICAgICAgICB9Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRl
LmFyaXRoU3Vicy5zaXplKCk7IGktLTspIHsKLSAgICAgICAgICAgIEFyaXRoU3ViRGVzY3JpcHRv
ciYgYXJpdGhTdWIgPSBzdGF0ZS5hcml0aFN1YnNbaV07Ci0gICAgICAgICAgICBnZW5lcmF0ZUFy
aXRoU3ViSUNGYXN0UGF0aChzdGF0ZSwgY29kZUJsb2NrLCBnZW5lcmF0ZWRGdW5jdGlvbiwgcmVj
b3JkTWFwLCBhcml0aFN1Yik7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmJpbmFy
eU9wcy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgICAgIEJpbmFyeU9wRGVzY3JpcHRvciYgYmlu
YXJ5T3AgPSBzdGF0ZS5iaW5hcnlPcHNbaV07CisgICAgICAgICAgICBnZW5lcmF0ZUJpbmFyeU9w
SUNGYXN0UGF0aChzdGF0ZSwgY29kZUJsb2NrLCBnZW5lcmF0ZWRGdW5jdGlvbiwgcmVjb3JkTWFw
LCBiaW5hcnlPcCk7CiAgICAgICAgIH0KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUu
bGF6eVNsb3dQYXRocy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIExhenlTbG93UGF0aERl
c2NyaXB0b3ImIGxhenlTbG93UGF0aCA9IHN0YXRlLmxhenlTbG93UGF0aHNbaV07CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3AuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5
T3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkZUTENvbXBpbGVCaW5hcnlPcC5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNs
dWRlICJERkdOb2RlVHlwZS5oIgorI2luY2x1ZGUgIkZUTElubGluZUNhY2hlRGVzY3JpcHRvci5o
IgorI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKKyNp
bmNsdWRlICJKSVRTdWJHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCit1c2luZyBuYW1l
c3BhY2UgREZHOworCitjbGFzcyBCaW5hcnlTbmlwcGV0UmVnaXN0ZXJDb250ZXh0IHsKKyAgICAv
LyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHNodWZmbGUgcmVnaXN0ZXJzIHRvIGdl
dCB0aGVtIGludG8gdGhlIHN0YXRlCisgICAgLy8gdGhhdCBiYXNlbGluZSBjb2RlIGV4cGVjdHMg
c28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBiYXNlbGluZSBzbmlwcGV0IGdlbmVyYXRvcnMgaS5lLgor
ICAgIC8vICAgIDEuIEVuc3VyZSB0aGF0IHRoZSBpbnB1dHMgYW5kIG91dHB1dCBhcmUgbm90IGlu
IHJlc2VydmVkIHJlZ2lzdGVycyAod2hpY2gKKyAgICAvLyAgICAgICBpbmNsdWRlIHRoZSB0YWcg
cmVnaXN0ZXJzKS4gVGhlIHNuaXBwZXQgd2lsbCB1c2UgdGhlc2UgcmVzZXJ2ZWQgcmVnaXN0ZXJz
LgorICAgIC8vICAgICAgIEhlbmNlLCB3ZSBuZWVkIHRvIHB1dCB0aGUgaW5wdXRzIGFuZCBvdXRw
dXQgaW4gb3RoZXIgc2NyYXRjaCByZWdpc3RlcnMuCisgICAgLy8gICAgMi4gVGFnIHJlZ2lzdGVy
cyBhcmUgbG9hZGVkIHdpdGggdGhlIGV4cGVjdGVkIHZhbHVlcy4KKyAgICAvLworICAgIC8vIFdo
ZW4gdGhlIHNuaXBwZXQgaXMgZG9uZToKKyAgICAvLyAgICAxLiBJZiB3ZSBoYWQgcmUtYXNzaWdu
ZWQgdGhlIHJlc3VsdCByZWdpc3RlciB0byBhIHNjcmF0Y2gsIHdlIG5lZWQgdG8gY29weSB0aGUK
KyAgICAvLyAgICAgICByZXN1bHQgYmFjayBmcm9tIHRoZSBzY3JhdGNoLgorICAgIC8vICAgIDIu
IFJlc3RvcmUgdGhlIGlucHV0IGFuZCB0YWcgcmVnaXN0ZXJzIHRvIHRoZSB2YWx1ZXMgdGhhdCBM
TFZNIHB1dCB0aGVyZSBvcmlnaW5hbGx5LgorICAgIC8vICAgICAgIFRoYXQgaXMgdW5sZXNzIHdo
ZW4gb25lIG9mIHRoZW0gaXMgYWxzbyB0aGUgcmVzdWx0IHJlZ2lzdGVyLiBJbiB0aGF0IGNhc2Us
IHdlCisgICAgLy8gICAgICAgZG9uJ3Qgd2FudCB0byB0cmFzaCB0aGUgcmVzdWx0LCBhbmQgaGVu
Y2UsIHNob3VsZCBub3QgcmVzdG9yZSBpbnRvIGl0LgorCitwdWJsaWM6CisgICAgQmluYXJ5U25p
cHBldFJlZ2lzdGVyQ29udGV4dChTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvciwg
R1BSUmVnJiByZXN1bHQsIEdQUlJlZyYgbGVmdCwgR1BSUmVnJiByaWdodCkKKyAgICAgICAgOiBt
X2FsbG9jYXRvcihhbGxvY2F0b3IpCisgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQorICAgICAg
ICAsIG1fbGVmdChsZWZ0KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9v
cmlnUmVzdWx0KHJlc3VsdCkKKyAgICAgICAgLCBtX29yaWdMZWZ0KGxlZnQpCisgICAgICAgICwg
bV9vcmlnUmlnaHQocmlnaHQpCisgICAgeworICAgICAgICBtX2FsbG9jYXRvci5sb2NrKG1fcmVz
dWx0KTsKKyAgICAgICAgbV9hbGxvY2F0b3IubG9jayhtX2xlZnQpOworICAgICAgICBtX2FsbG9j
YXRvci5sb2NrKG1fcmlnaHQpOworCisgICAgICAgIFJlZ2lzdGVyU2V0IGlucHV0QW5kT3V0cHV0
UmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQobV9sZWZ0LCBtX3JpZ2h0LCBtX3Jlc3VsdCk7CisgICAg
ICAgIFJlZ2lzdGVyU2V0IHJlc2VydmVkUmVnaXN0ZXJzOworICAgICAgICBmb3IgKEdQUlJlZyBy
ZWcgOiBHUFJJbmZvOjpyZXNlcnZlZFJlZ2lzdGVycygpKQorICAgICAgICAgICAgcmVzZXJ2ZWRS
ZWdpc3RlcnMuc2V0KHJlZyk7CisKKyAgICAgICAgaWYgKHJlc2VydmVkUmVnaXN0ZXJzLmdldCht
X2xlZnQpKQorICAgICAgICAgICAgbV9sZWZ0ID0gbV9hbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNo
R1BSKCk7CisgICAgICAgIGlmIChyZXNlcnZlZFJlZ2lzdGVycy5nZXQobV9yaWdodCkpIHsKKyAg
ICAgICAgICAgIGlmIChtX29yaWdSaWdodCA9PSBtX29yaWdMZWZ0KQorICAgICAgICAgICAgICAg
IG1fcmlnaHQgPSBtX2xlZnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9y
aWdodCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOworICAgICAgICB9CisgICAg
ICAgIGlmIChyZXNlcnZlZFJlZ2lzdGVycy5nZXQobV9yZXN1bHQpKSB7CisgICAgICAgICAgICBp
ZiAobV9vcmlnUmVzdWx0ID09IG1fb3JpZ0xlZnQpCisgICAgICAgICAgICAgICAgbV9yZXN1bHQg
PSBtX2xlZnQ7CisgICAgICAgICAgICBlbHNlIGlmIChtX29yaWdSZXN1bHQgPT0gbV9vcmlnUmln
aHQpCisgICAgICAgICAgICAgICAgbV9yZXN1bHQgPSBtX3JpZ2h0OworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG1fcmVzdWx0ID0gbV9hbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNo
R1BSKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlucHV0QW5kT3V0cHV0UmVnaXN0ZXJz
LmdldChHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKQorICAgICAgICAgICAgbV9zYXZlZFRhZ01h
c2tSZWdpc3RlciA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOworICAgICAgICBp
ZiAoIWlucHV0QW5kT3V0cHV0UmVnaXN0ZXJzLmdldChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIpKQorICAgICAgICAgICAgbV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IG1fYWxs
b2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOworICAgIH0KKworICAgIHZvaWQgaW5pdGlhbGl6
ZVJlZ2lzdGVycyhDQ2FsbEhlbHBlcnMmIGppdCkKKyAgICB7CisgICAgICAgIGlmIChtX2xlZnQg
IT0gbV9vcmlnTGVmdCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1fb3JpZ0xlZnQsIG1fbGVmdCk7
CisgICAgICAgIGlmIChtX3JpZ2h0ICE9IG1fb3JpZ1JpZ2h0ICYmIG1fb3JpZ1JpZ2h0ICE9IG1f
b3JpZ0xlZnQpCisgICAgICAgICAgICBqaXQubW92ZShtX29yaWdSaWdodCwgbV9yaWdodCk7Cisg
ICAgICAgIAorICAgICAgICBpZiAobV9zYXZlZFRhZ01hc2tSZWdpc3RlciAhPSBJbnZhbGlkR1BS
UmVnKQorICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyLCBtX3Nh
dmVkVGFnTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgaWYgKG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVn
aXN0ZXIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnRh
Z1R5cGVOdW1iZXJSZWdpc3RlciwgbV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisKKyAg
ICAgICAgaml0LmVtaXRNYXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKCk7CisgICAgfQorCisg
ICAgdm9pZCByZXN0b3JlUmVnaXN0ZXJzKENDYWxsSGVscGVycyYgaml0KQorICAgIHsKKyAgICAg
ICAgaWYgKG1fb3JpZ1Jlc3VsdCAhPSBtX3Jlc3VsdCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1f
cmVzdWx0LCBtX29yaWdSZXN1bHQpOworICAgICAgICBpZiAobV9vcmlnTGVmdCAhPSBtX2xlZnQg
JiYgbV9vcmlnTGVmdCAhPSBtX29yaWdSZXN1bHQpCisgICAgICAgICAgICBqaXQubW92ZShtX2xl
ZnQsIG1fb3JpZ0xlZnQpOworICAgICAgICBpZiAobV9vcmlnUmlnaHQgIT0gbV9yaWdodCAmJiBt
X29yaWdSaWdodCAhPSBtX29yaWdSZXN1bHQgJiYgbV9vcmlnUmlnaHQgIT0gbV9vcmlnTGVmdCkK
KyAgICAgICAgICAgIGppdC5tb3ZlKG1fcmlnaHQsIG1fb3JpZ1JpZ2h0KTsKKworICAgICAgICAv
LyBXZSBhcmUgZ3VhcmFudGVlZCB0aGF0IHRoZSB0YWcgcmVnaXN0ZXJzIGFyZSBub3QgdGhlIHNh
bWUgYXMgdGhlIG9yaWdpbmFsIGlucHV0CisgICAgICAgIC8vIG9yIG91dHB1dCByZWdpc3RlcnMu
IE90aGVyd2lzZSwgd2Ugd291bGQgbm90IGhhdmUgYWxsb2NhdGVkIGEgc2NyYXRjaCBmb3IgdGhl
bS4KKyAgICAgICAgLy8gSGVuY2UsIHdlIGRvbid0IG5lZWQgdG8gbmVlZCB0byBjaGVjayBmb3Ig
b3ZlcmxhcCBsaWtlIHdlIGRvIGZvciB0aGUgaW5wdXQgcmVnaXN0ZXJzLgorICAgICAgICBpZiAo
bV9zYXZlZFRhZ01hc2tSZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVnKSB7CisgICAgICAgICAgICBB
U1NFUlQoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyICE9IG1fb3JpZ0xlZnQpOworICAgICAgICAg
ICAgQVNTRVJUKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlciAhPSBtX29yaWdSaWdodCk7CisgICAg
ICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyICE9IG1fb3JpZ1Jlc3VsdCk7
CisgICAgICAgICAgICBqaXQubW92ZShtX3NhdmVkVGFnTWFza1JlZ2lzdGVyLCBHUFJJbmZvOjp0
YWdNYXNrUmVnaXN0ZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChtX3NhdmVkVGFnVHlwZU51
bWJlclJlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpIHsKKyAgICAgICAgICAgIEFTU0VSVChHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmlnTGVmdCk7CisgICAgICAgICAgICBB
U1NFUlQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyICE9IG1fb3JpZ1JpZ2h0KTsKKyAg
ICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmln
UmVzdWx0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlKG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVnaXN0
ZXIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgICAgIH0KKyAgICB9CisK
K3ByaXZhdGU6CisgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBtX2FsbG9jYXRvcjsKKwor
ICAgIEdQUlJlZyYgbV9yZXN1bHQ7CisgICAgR1BSUmVnJiBtX2xlZnQ7CisgICAgR1BSUmVnJiBt
X3JpZ2h0OworCisgICAgR1BSUmVnIG1fb3JpZ1Jlc3VsdDsKKyAgICBHUFJSZWcgbV9vcmlnTGVm
dDsKKyAgICBHUFJSZWcgbV9vcmlnUmlnaHQ7CisKKyAgICBHUFJSZWcgbV9zYXZlZFRhZ01hc2tS
ZWdpc3RlciB7IEludmFsaWRHUFJSZWcgfTsKKyAgICBHUFJSZWcgbV9zYXZlZFRhZ1R5cGVOdW1i
ZXJSZWdpc3RlciB7IEludmFsaWRHUFJSZWcgfTsKK307CisKK3ZvaWQgZ2VuZXJhdGVBcml0aFN1
YkZhc3RQYXRoKEJpbmFyeU9wRGVzY3JpcHRvciYgaWMsIENDYWxsSGVscGVycyYgaml0LAorICAg
IEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVz
ZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6
Okp1bXAmIHNsb3dQYXRoU3RhcnQpCit7CisgICAgQVNTRVJUKGljLm5vZGVUeXBlKCkgPT0gQXJp
dGhTdWIpOworICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3IodXNlZFJlZ2lz
dGVycyk7CisgICAgCisgICAgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dCBjb250ZXh0KGFs
bG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgCisgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CisgICAgRlBSUmVnIGxlZnRGUFIg
PSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7CisgICAgRlBSUmVnIHJpZ2h0RlBSID0g
YWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEZQUigpOworICAgIEZQUlJlZyBzY3JhdGNoRlBSID0g
SW52YWxpZEZQUlJlZzsKKyAgICAKKyAgICBKSVRTdWJHZW5lcmF0b3IgZ2VuKEpTVmFsdWVSZWdz
KHJlc3VsdCksIEpTVmFsdWVSZWdzKGxlZnQpLCBKU1ZhbHVlUmVncyhyaWdodCksCisgICAgICAg
IGljLmxlZnRUeXBlKCksIGljLnJpZ2h0VHlwZSgpLCBsZWZ0RlBSLCByaWdodEZQUiwgc2NyYXRj
aEdQUiwgc2NyYXRjaEZQUik7CisgICAgCisgICAgYXV0byBudW1iZXJPZkJ5dGVzVXNlZFRvUHJl
c2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVJldXNlZFJlZ2lz
dGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6RXh0cmFTdGFja1Nw
YWNlOjpOb0V4dHJhU3BhY2UpOworICAgIAorICAgIGNvbnRleHQuaW5pdGlhbGl6ZVJlZ2lzdGVy
cyhqaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgCisgICAgQVNTRVJU
KGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7CisgICAgZ2VuLmVuZEp1bXBMaXN0KCkubGluaygmaml0
KTsKKyAgICBjb250ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVz
dG9yZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpF
eHRyYVN0YWNrU3BhY2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIGRvbmUgPSBqaXQuanVtcCgpOwor
ICAgIAorICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBjb250ZXh0
LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJlZ2lz
dGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNlZFJlZ2lz
dGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNrU3BhY2U6
OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOworfQorCit2
b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImIGljLCBDQ2Fs
bEhlbHBlcnMmIGppdCwKKyAgICAgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGxlZnQsIEdQUlJlZyBy
aWdodCwgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycywKKyAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
JiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpCit7CisgICAgQVNTRVJU
KGljLm5vZGVUeXBlKCkgPT0gVmFsdWVBZGQpOworICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
ciBhbGxvY2F0b3IodXNlZFJlZ2lzdGVycyk7CisgICAgCisgICAgQmluYXJ5U25pcHBldFJlZ2lz
dGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAg
CisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7
CisgICAgRlBSUmVnIGxlZnRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7Cisg
ICAgRlBSUmVnIHJpZ2h0RlBSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEZQUigpOworICAg
IEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQUlJlZzsKKyAgICAKKyAgICBKSVRBZGRHZW5l
cmF0b3IgZ2VuKEpTVmFsdWVSZWdzKHJlc3VsdCksIEpTVmFsdWVSZWdzKGxlZnQpLCBKU1ZhbHVl
UmVncyhyaWdodCksCisgICAgICAgIGljLmxlZnRUeXBlKCksIGljLnJpZ2h0VHlwZSgpLCBpYy5s
ZWZ0SXNDb25zdEludDMyKCksIGljLnJpZ2h0SXNDb25zdEludDMyKCksCisgICAgICAgIGljLmxl
ZnRDb25zdEludDMyKCksIGljLnJpZ2h0Q29uc3RJbnQzMigpLCBsZWZ0RlBSLCByaWdodEZQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7CisgICAgCisgICAgYXV0byBudW1iZXJPZkJ5dGVzVXNl
ZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVJldXNl
ZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6RXh0cmFT
dGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworICAgIAorICAgIGNvbnRleHQuaW5pdGlhbGl6ZVJl
Z2lzdGVycyhqaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgCisgICAg
QVNTRVJUKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7CisgICAgZ2VuLmVuZEp1bXBMaXN0KCkubGlu
aygmaml0KTsKKyAgICBjb250ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0
b3IucmVzdG9yZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2Vk
VG9QcmVzZXJ2ZVJldXNlZFJlZ2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2Nh
dG9yOjpFeHRyYVN0YWNrU3BhY2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIGRvbmUgPSBqaXQuanVt
cCgpOworICAgIAorICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBj
b250ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNl
ZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNl
ZFJlZ2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNr
U3BhY2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOwor
fQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJ
VCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5
T3AuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGls
ZUJpbmFyeU9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRlRMQ29tcGlsZUJpbmFy
eU9wX2gKKyNkZWZpbmUgRlRMQ29tcGlsZUJpbmFyeU9wX2gKKworI2lmIEVOQUJMRShGVExfSklU
KQorCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisKK25hbWVzcGFjZSBKU0MgeworbmFtZXNw
YWNlIEZUTCB7CisKK2NsYXNzIEJpbmFyeU9wRGVzY3JpcHRvcjsKKwordm9pZCBnZW5lcmF0ZUFy
aXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZXNjcmlwdG9yJiwgQ0NhbGxIZWxwZXJzJiwKKyAgICBH
UFJSZWcgcmVzdWx0LCBHUFJSZWcgbGVmdCwgR1BSUmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2Vk
UmVnaXN0ZXJzLAorICAgIENDYWxsSGVscGVyczo6SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpK
dW1wJiBzbG93UGF0aFN0YXJ0KTsKKwordm9pZCBnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgoQmlu
YXJ5T3BEZXNjcmlwdG9yJiwgQ0NhbGxIZWxwZXJzJiwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgbGVmdCwgR1BSUmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIEND
YWxsSGVscGVyczo6SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0
KTsKKworfSAvLyBuYW1lc3BhY2UgRlRMCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMQ29tcGlsZUJpbmFyeU9wX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhjZXB0aW9uSGFuZGxlck1hbmFnZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhjZXB0aW9uSGFu
ZGxlck1hbmFnZXIuY3BwCShyZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTMsMTUgKzkzLDE1IEBAIE9TUkV4aXQqIEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyOjpnZXRCeUkK
ICAgICByZXR1cm4gZXhpdDsgCiB9CiAKLU9TUkV4aXQqIEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2Vy
OjpzdWJPU1JFeGl0KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpCitPU1JFeGl0KiBFeGNl
cHRpb25IYW5kbGVyTWFuYWdlcjo6YmluYXJ5T3BPU1JFeGl0KHVpbnQzMl90IHN0YWNrbWFwUmVj
b3JkSW5kZXgpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV9tYXAuZmluZChzdGFja21hcFJl
Y29yZEluZGV4KTsKICAgICBpZiAoZmluZFJlc3VsdCA9PSBtX21hcC5lbmQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgc2l6ZV90IG9zckV4aXRJbmRleCA9IGZpbmRSZXN1bHQtPnZh
bHVlOwogICAgIE9TUkV4aXQqIGV4aXQgPSAmbV9zdGF0ZS5qaXRDb2RlLT5vc3JFeGl0W29zckV4
aXRJbmRleF07Ci0gICAgUkVMRUFTRV9BU1NFUlQoZXhpdC0+bV9kZXNjcmlwdG9yLm1fZXhjZXB0
aW9uVHlwZSA9PSBFeGNlcHRpb25UeXBlOjpTdWJHZW5lcmF0b3IpOwotICAgIHJldHVybiBleGl0
OyAKKyAgICBSRUxFQVNFX0FTU0VSVChleGl0LT5tX2Rlc2NyaXB0b3IubV9leGNlcHRpb25UeXBl
ID09IEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9wR2VuZXJhdG9yKTsKKyAgICByZXR1cm4gZXhpdDsK
IH0KIAogT1NSRXhpdCogRXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OmdldENhbGxPU1JFeGl0Q29t
bW9uKHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGNlcHRpb25IYW5kbGVyTWFuYWdlci5oCShyZXZp
c2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4Y2VwdGlvbkhh
bmRsZXJNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgog
ICAgIENvZGVMb2NhdGlvbkxhYmVsIGxhenlTbG93UGF0aEV4Y2VwdGlvblRhcmdldCh1aW50MzJf
dCBzdGFja21hcFJlY29yZEluZGV4KTsKIAogICAgIE9TUkV4aXQqIGdldEJ5SWRPU1JFeGl0KHVp
bnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpOwotICAgIE9TUkV4aXQqIHN1Yk9TUkV4aXQodWlu
dDMyX3Qgc3RhY2ttYXBSZWNvcmRJbmRleCk7CisgICAgT1NSRXhpdCogYmluYXJ5T3BPU1JFeGl0
KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpOwogICAgIE9TUkV4aXQqIGdldENhbGxPU1JF
eGl0KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgsIGNvbnN0IEpTQ2FsbCYpOwogICAgIE9T
UkV4aXQqIGdldENhbGxPU1JFeGl0KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgsIGNvbnN0
IEpTVGFpbENhbGwmKTsKICAgICBPU1JFeGl0KiBnZXRDYWxsT1NSRXhpdCh1aW50MzJfdCBzdGFj
a21hcFJlY29yZEluZGV4LCBjb25zdCBKU0NhbGxWYXJhcmdzJik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJl
dmlzaW9uIDE5MjY4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2Fj
aGVEZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJERkdBYnN0
cmFjdFZhbHVlLmgiCiAjaW5jbHVkZSAiRlRMTGF6eVNsb3dQYXRoLmgiCiAjaW5jbHVkZSAiSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgpAQCAt
MTIzLDIzICsxMjQsNzIgQEAgcHVibGljOgogICAgIFZlY3RvcjxDaGVja0luR2VuZXJhdG9yPiBt
X2dlbmVyYXRvcnM7CiB9OwogCi1jbGFzcyBBcml0aFN1YkRlc2NyaXB0b3IgOiBwdWJsaWMgSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yIHsKK2NsYXNzIEJpbmFyeU9wRGVzY3JpcHRvciA6IHB1YmxpYyBJ
bmxpbmVDYWNoZURlc2NyaXB0b3IgewogcHVibGljOgotICAgIEFyaXRoU3ViRGVzY3JpcHRvcih1
bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIFJlc3VsdFR5cGUgbGVm
dFR5cGUsIFJlc3VsdFR5cGUgcmlnaHRUeXBlKQorICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
KCpTbG93UGF0aEZ1bmN0aW9uKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKKworICAgIHVuc2lnbmVkIG5vZGVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaXplOyB9CisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQorICAgIGNvbnN0IGNoYXIqIGZhc3RQYXRoSUNOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9mYXN0UGF0aElDTmFtZTsgfQorICAgIFNsb3dQYXRoRnVuY3Rpb24gc2xvd1BhdGhGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2xvd1BhdGhGdW5jdGlvbjsgfQorCisgICAgUmVzdWx0VHlw
ZSBsZWZ0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdFR5cGU7IH0KKyAgICBSZXN1bHRUeXBl
IHJpZ2h0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHRUeXBlOyB9CisgICAgYm9vbCBsZWZ0
SXNDb25zdEludDMyKCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0SXNDb25zdEludDMyOyB9OworICAg
IGJvb2wgcmlnaHRJc0NvbnN0SW50MzIoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0SXNDb25zdElu
dDMyOyB9OworICAgIGludDMyX3QgbGVmdENvbnN0SW50MzIoKSBjb25zdCB7IHJldHVybiBtX2xl
ZnRDb25zdEludDMyOyB9OworICAgIGludDMyX3QgcmlnaHRDb25zdEludDMyKCkgeyByZXR1cm4g
bV9yaWdodENvbnN0SW50MzI7IH07CisKKyAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXI6OkxhYmVs
PiBtX3Nsb3dQYXRoU3RhcnRzOworCitwcm90ZWN0ZWQ6CisgICAgQmluYXJ5T3BEZXNjcmlwdG9y
KHVuc2lnbmVkIG5vZGVUeXBlLCB1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgICAgIHNpemVfdCBzaXplLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy
KiBmYXN0UGF0aElDTmFtZSwKKyAgICAgICAgU2xvd1BhdGhGdW5jdGlvbiBzbG93UGF0aEZ1bmN0
aW9uLCBSZXN1bHRUeXBlIGxlZnRUeXBlLCBSZXN1bHRUeXBlIHJpZ2h0VHlwZSwKKyAgICAgICAg
Ym9vbCBsZWZ0SXNDb25zdEludDMyID0gZmFsc2UsIGJvb2wgcmlnaHRJc0NvbnN0SW50MzIgPSBm
YWxzZSwgaW50MzJfdCBsZWZ0Q29uc3RJbnQzMiA9IDAsIGludDMyX3QgcmlnaHRDb25zdEludDMy
ID0gMCkKICAgICAgICAgOiBJbmxpbmVDYWNoZURlc2NyaXB0b3Ioc3RhY2ttYXBJRCwgY29kZU9y
aWdpbiwgbnVsbHB0cikKKyAgICAgICAgLCBtX25vZGVUeXBlKG5vZGVUeXBlKQorICAgICAgICAs
IG1fc2l6ZShzaXplKQorICAgICAgICAsIG1fbmFtZShuYW1lKQorICAgICAgICAsIG1fZmFzdFBh
dGhJQ05hbWUoZmFzdFBhdGhJQ05hbWUpCisgICAgICAgICwgbV9zbG93UGF0aEZ1bmN0aW9uKHNs
b3dQYXRoRnVuY3Rpb24pCiAgICAgICAgICwgbV9sZWZ0VHlwZShsZWZ0VHlwZSkKICAgICAgICAg
LCBtX3JpZ2h0VHlwZShyaWdodFR5cGUpCisgICAgICAgICwgbV9sZWZ0SXNDb25zdEludDMyKGxl
ZnRJc0NvbnN0SW50MzIpCisgICAgICAgICwgbV9yaWdodElzQ29uc3RJbnQzMihyaWdodElzQ29u
c3RJbnQzMikKKyAgICAgICAgLCBtX2xlZnRDb25zdEludDMyKGxlZnRDb25zdEludDMyKQorICAg
ICAgICAsIG1fcmlnaHRDb25zdEludDMyKHJpZ2h0Q29uc3RJbnQzMikKICAgICB7CiAgICAgfQog
Ci0gICAgUmVzdWx0VHlwZSBsZWZ0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdFR5cGU7IH0K
LSAgICBSZXN1bHRUeXBlIHJpZ2h0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHRUeXBlOyB9
Ci0gICAgCi0gICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4gbV9zbG93UGF0aFN0YXJ0
czsKKyAgICB1bnNpZ25lZCBtX25vZGVUeXBlOworICAgIHNpemVfdCBtX3NpemU7CisgICAgY29u
c3QgY2hhciogbV9uYW1lOworICAgIGNvbnN0IGNoYXIqIG1fZmFzdFBhdGhJQ05hbWU7CisgICAg
U2xvd1BhdGhGdW5jdGlvbiBtX3Nsb3dQYXRoRnVuY3Rpb247CiAKLXByaXZhdGU6CiAgICAgUmVz
dWx0VHlwZSBtX2xlZnRUeXBlOwogICAgIFJlc3VsdFR5cGUgbV9yaWdodFR5cGU7CisgICAgYm9v
bCBtX2xlZnRJc0NvbnN0SW50MzI7CisgICAgYm9vbCBtX3JpZ2h0SXNDb25zdEludDMyOworICAg
IGludDMyX3QgbV9sZWZ0Q29uc3RJbnQzMjsKKyAgICBpbnQzMl90IG1fcmlnaHRDb25zdEludDMy
OworfTsKKworY2xhc3MgQXJpdGhTdWJEZXNjcmlwdG9yIDogcHVibGljIEJpbmFyeU9wRGVzY3Jp
cHRvciB7CitwdWJsaWM6CisgICAgQXJpdGhTdWJEZXNjcmlwdG9yKHVuc2lnbmVkIHN0YWNrbWFw
SUQsIENvZGVPcmlnaW4sIFJlc3VsdFR5cGUgbGVmdFR5cGUsIFJlc3VsdFR5cGUgcmlnaHRUeXBl
KTsKKworICAgIHN0YXRpYyBzaXplX3QgaWNTaXplKCk7Cit9OworCitjbGFzcyBWYWx1ZUFkZERl
c2NyaXB0b3IgOiBwdWJsaWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1
ZUFkZERlc2NyaXB0b3IodW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgUmVzdWx0VHlw
ZSBsZWZ0VHlwZSwgUmVzdWx0VHlwZSByaWdodFR5cGUsCisgICAgICAgIGJvb2wgbGVmdElzQ29u
c3RJbnQzMiwgYm9vbCByaWdodElzQ29uc3RJbnQzMiwgaW50MzJfdCBsZWZ0Q29uc3RJbnQzMiwg
aW50MzJfdCByaWdodENvbnN0SW50MzIpOworCisgICAgc3RhdGljIHNpemVfdCBpY1NpemUoKTsK
IH07CiAKIC8vIFlvdSBjYW4gY3JlYXRlIGEgbGF6eSBzbG93IHBhdGggY2FsbCBpbiBsb3dlckRG
R1RvTExWTSBieSBkb2luZzoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3JJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lc19oCisjZGVmaW5lIEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXNf
aAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJERkdOb2RlVHlwZS5oIgorI2lu
Y2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIK
KyNpbmNsdWRlICJGVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgeworCit1c2luZyBuYW1lc3BhY2UgREZHOworCitBcml0aFN1YkRlc2Ny
aXB0b3I6OkFyaXRoU3ViRGVzY3JpcHRvcih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2lu
IGNvZGVPcmlnaW4sIFJlc3VsdFR5cGUgbGVmdFR5cGUsIFJlc3VsdFR5cGUgcmlnaHRUeXBlKQor
ICAgIDogQmluYXJ5T3BEZXNjcmlwdG9yKEFyaXRoU3ViLCBzdGFja21hcElELCBjb2RlT3JpZ2lu
LCBpY1NpemUoKSwKKyAgICAgICAgICJBcml0aFN1YiIsICJBcml0aFN1YiBJQyBmYXN0IHBhdGgi
LCBvcGVyYXRpb25WYWx1ZVN1YiwgbGVmdFR5cGUsIHJpZ2h0VHlwZSkKK3sKK30KKworc2l6ZV90
IEFyaXRoU3ViRGVzY3JpcHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mQXJpdGhT
dWIoKTsKK30KKworVmFsdWVBZGREZXNjcmlwdG9yOjpWYWx1ZUFkZERlc2NyaXB0b3IodW5zaWdu
ZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBSZXN1bHRUeXBlIGxlZnRUeXBl
LCBSZXN1bHRUeXBlIHJpZ2h0VHlwZSwKKyAgICBib29sIGxlZnRJc0NvbnN0SW50MzIsIGJvb2wg
cmlnaHRJc0NvbnN0SW50MzIsIGludDMyX3QgbGVmdENvbnN0SW50MzIsIGludDMyX3QgcmlnaHRD
b25zdEludDMyKQorICAgIDogQmluYXJ5T3BEZXNjcmlwdG9yKFZhbHVlQWRkLCBzdGFja21hcElE
LCBjb2RlT3JpZ2luLCBpY1NpemUoKSwKKyAgICAgICAgIlZhbHVlQWRkIiwgIlZhbHVlQWRkIElD
IGZhc3QgcGF0aCIsIG9wZXJhdGlvblZhbHVlQWRkLAorICAgICAgICBsZWZ0VHlwZSwgcmlnaHRU
eXBlLCBsZWZ0SXNDb25zdEludDMyLCByaWdodElzQ29uc3RJbnQzMiwgbGVmdENvbnN0SW50MzIs
IHJpZ2h0Q29uc3RJbnQzMikKK3sKK30KKworc2l6ZV90IFZhbHVlQWRkRGVzY3JpcHRvcjo6aWNT
aXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mVmFsdWVBZGQoKTsKK30KKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBG
VExJbmxpbmVDYWNoZURlc2NyaXB0b3JJbmxpbmVzX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHJldmlzaW9uIDE5MjY4NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ1LDYgKzE0NSwyMyBAQCBzaXplX3Qgc2l6ZU9mQXJpdGhTdWIoKQog
I2VuZGlmCiB9CiAKK3NpemVfdCBzaXplT2ZWYWx1ZUFkZCgpCit7CisjaWYgQ1BVKEFSTTY0KQor
I2lmZGVmIE5ERUJVRworICAgIHJldHVybiAyMTY7IC8vIEFSTTY0IHJlbGVhc2UuCisjZWxzZQor
ICAgIHJldHVybiAzMTI7IC8vIEFSTTY0IGRlYnVnLgorI2VuZGlmCisjZWxzZSAvLyBDUFUoWDg2
XzY0KQorI2lmZGVmIE5ERUJVRworICAgIHJldHVybiAyMjM7IC8vIFg4Nl82NCByZWxlYXNlLgor
I2Vsc2UKKyAgICByZXR1cm4gMjk4OyAvLyBYODZfNjQgZGVidWcuCisjZW5kaWYKKyNlbmRpZgor
fQorCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUoKQogewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCShy
ZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNh
Y2hlU2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIHNpemVfdCBzaXplT2ZD
b25zdHJ1Y3RWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3Mo
KTsKIHNpemVfdCBzaXplT2ZJbigpOwogc2l6ZV90IHNpemVPZkFyaXRoU3ViKCk7CitzaXplX3Qg
c2l6ZU9mVmFsdWVBZGQoKTsKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIHNpemVfdCBzaXplT2ZQ
cm9iZSgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTkyNjg1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Nzgs
MTUgKzE0NzgsNTkgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgp
CiAgICAgewotICAgICAgICBKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uOwotICAgICAgICBp
ZiAoIShwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpICYgU3BlY0Z1bGxOdW1iZXIpCi0gICAg
ICAgICAgICAmJiAhKHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkgJiBTcGVjRnVsbE51bWJl
cikpCi0gICAgICAgICAgICBvcGVyYXRpb24gPSBvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcjsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgb3BlcmF0aW9uID0gb3BlcmF0aW9uVmFsdWVBZGQ7
Ci0gICAgICAgIHNldEpTVmFsdWUodm1DYWxsKAotICAgICAgICAgICAgbV9vdXQuaW50NjQsIG1f
b3V0Lm9wZXJhdGlvbihvcGVyYXRpb24pLCBtX2NhbGxGcmFtZSwKLSAgICAgICAgICAgIGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKTsK
KyAgICAgICAgdW5zaWduZWQgc3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKKworICAgICAg
ICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCisgICAgICAgICAgICBkYXRhTG9n
KCIgICAgRW1pdHRpbmcgVmFsdWVBZGQgcGF0Y2hwb2ludCB3aXRoIHN0YWNrbWFwICMiLCBzdGFj
a21hcElELCAiXG4iKTsKKworI2lmIEZUTF9VU0VTX0IzCisgICAgICAgIENSQVNIKCk7CisjZWxz
ZQorICAgICAgICBhdXRvIGxlZnRDaGlsZCA9IG1fbm9kZS0+Y2hpbGQxKCk7CisgICAgICAgIGF1
dG8gcmlnaHRDaGlsZCA9IG1fbm9kZS0+Y2hpbGQyKCk7CisKKyAgICAgICAgaWYgKCEocHJvdmVu
VHlwZShsZWZ0Q2hpbGQpICYgU3BlY0Z1bGxOdW1iZXIpIHx8ICEocHJvdmVuVHlwZShyaWdodENo
aWxkKSAmIFNwZWNGdWxsTnVtYmVyKSkgeworICAgICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwo
bV9vdXQuaW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlciks
IG1fY2FsbEZyYW1lLAorICAgICAgICAgICAgICAgIGxvd0pTVmFsdWUobGVmdENoaWxkKSwgbG93
SlNWYWx1ZShyaWdodENoaWxkKSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKGxlZnRDaGlsZCk7CisgICAgICAgIExW
YWx1ZSByaWdodCA9IGxvd0pTVmFsdWUocmlnaHRDaGlsZCk7CisKKyAgICAgICAgYm9vbCBsZWZ0
SXNDb25zdEludDMyID0gbGVmdENoaWxkLT5pc0ludDMyQ29uc3RhbnQoKTsKKyAgICAgICAgYm9v
bCByaWdodElzQ29uc3RJbnQzMiA9IHJpZ2h0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpOworCisg
ICAgICAgIC8vIFRoZSBERkcgZG9lcyBub3QgYWx3YXlzIGZvbGQgdGhlIHN1bSBvZiAyIGNvbnN0
YW50IGludCBvcGVyYW5kcyB0b2dldGhlci4KKyAgICAgICAgLy8gSnVzdCB0cmVhdCBvbmUgb3Bl
cmFuZCBhcyBhIHZhcmlhYmxlIGZvciBub3cgYmVjYXVzZSB0aGUgc25pcHBldCBkb2VzIG5vdCBz
dXBwb3J0IGJvdGgKKyAgICAgICAgLy8gb3BlcmFuZHMgYmVpbmcgY29uc3RhbnQuCisgICAgICAg
IGlmIChsZWZ0SXNDb25zdEludDMyICYmIHJpZ2h0SXNDb25zdEludDMyKQorICAgICAgICAgICAg
cmlnaHRJc0NvbnN0SW50MzIgPSBmYWxzZTsKKworICAgICAgICBpbnQzMl90IGxlZnRDb25zdElu
dDMyID0gbGVmdElzQ29uc3RJbnQzMiA/IGxlZnRDaGlsZC0+YXNJbnQzMigpIDogMDsKKyAgICAg
ICAgaW50MzJfdCByaWdodENvbnN0SW50MzIgPSByaWdodElzQ29uc3RJbnQzMiA/IHJpZ2h0Q2hp
bGQtPmFzSW50MzIoKSA6IDA7CisKKyAgICAgICAgLy8gQXJndW1lbnRzOiBpZCwgYnl0ZXMsIHRh
cmdldCwgbnVtQXJncywgYXJncy4uLgorICAgICAgICBTdGFja21hcEFyZ3VtZW50TGlzdCBhcmd1
bWVudHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQ2NChzdGFja21h
cElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMihWYWx1ZUFk
ZERlc2NyaXB0b3I6OmljU2l6ZSgpKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY29uc3RO
dWxsKG1fb3V0LnJlZjgpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdElu
dDMyKDIpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChsZWZ0KTsKKyAgICAgICAgYXJndW1l
bnRzLmFwcGVuZChyaWdodCk7CisKKyAgICAgICAgYXBwZW5kT1NSRXhpdEFyZ3VtZW50c0ZvclBh
dGNocG9pbnRJZldpbGxDYXRjaEV4Y2VwdGlvbihhcmd1bWVudHMsCisgICAgICAgICAgICBFeGNl
cHRpb25UeXBlOjpCaW5hcnlPcEdlbmVyYXRvciwgMyk7IC8vIGxlZnQsIHJpZ2h0LCBhbmQgcmVz
dWx0IHNob3cgdXAgaW4gdGhlIHN0YWNrbWFwIGxvY2F0aW9ucy4KKworICAgICAgICBMVmFsdWUg
Y2FsbCA9IG1fb3V0LmNhbGwobV9vdXQuaW50NjQsIG1fb3V0LnBhdGNocG9pbnRJbnQ2NEludHJp
bnNpYygpLCBhcmd1bWVudHMpOworICAgICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50
aW9uKGNhbGwsIExMVk1BbnlSZWdDYWxsQ29udik7CisKKyAgICAgICAgbV9mdGxTdGF0ZS5iaW5h
cnlPcHMuYXBwZW5kKFZhbHVlQWRkRGVzY3JpcHRvcihzdGFja21hcElELCBtX25vZGUtPm9yaWdp
bi5zZW1hbnRpYywKKyAgICAgICAgICAgIGFic3RyYWN0VmFsdWUobV9ub2RlLT5jaGlsZDEoKSku
cmVzdWx0VHlwZSgpLCBhYnN0cmFjdFZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpLnJlc3VsdFR5cGUo
KSwKKyAgICAgICAgICAgIGxlZnRJc0NvbnN0SW50MzIsIHJpZ2h0SXNDb25zdEludDMyLCBsZWZ0
Q29uc3RJbnQzMiwgcmlnaHRDb25zdEludDMyKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxs
KTsKKyNlbmRpZgogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQpAQCAtMTY0
OSwxOCArMTY5MywxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gQXJndW1lbnRzOiBpZCwg
Ynl0ZXMsIHRhcmdldCwgbnVtQXJncywgYXJncy4uLgogICAgICAgICAgICAgU3RhY2ttYXBBcmd1
bWVudExpc3QgYXJndW1lbnRzOwogICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5j
b25zdEludDY0KHN0YWNrbWFwSUQpKTsKLSAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9v
dXQuY29uc3RJbnQzMihzaXplT2ZBcml0aFN1YigpKSk7CisgICAgICAgICAgICBhcmd1bWVudHMu
YXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoQXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUoKSkpOwog
ICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOwogICAg
ICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKDIpKTsKICAgICAgICAg
ICAgIGFyZ3VtZW50cy5hcHBlbmQobGVmdCk7CiAgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KHJpZ2h0KTsKIAotICAgICAgICAgICAgYXBwZW5kT1NSRXhpdEFyZ3VtZW50c0ZvclBhdGNocG9p
bnRJZldpbGxDYXRjaEV4Y2VwdGlvbihhcmd1bWVudHMsIEV4Y2VwdGlvblR5cGU6OlN1YkdlbmVy
YXRvciwgMyk7IC8vIGxlZnQsIHJpZ2h0LCBhbmQgcmVzdWx0IHNob3cgdXAgaW4gdGhlIHN0YWNr
bWFwIGxvY2F0aW9ucy4KKyAgICAgICAgICAgIGFwcGVuZE9TUkV4aXRBcmd1bWVudHNGb3JQYXRj
aHBvaW50SWZXaWxsQ2F0Y2hFeGNlcHRpb24oYXJndW1lbnRzLAorICAgICAgICAgICAgICAgIEV4
Y2VwdGlvblR5cGU6OkJpbmFyeU9wR2VuZXJhdG9yLCAzKTsgLy8gbGVmdCwgcmlnaHQsIGFuZCBy
ZXN1bHQgc2hvdyB1cCBpbiB0aGUgc3RhY2ttYXAgbG9jYXRpb25zLgogCiAgICAgICAgICAgICBM
VmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwobV9vdXQuaW50NjQsIG1fb3V0LnBhdGNocG9pbnRJbnQ2
NEludHJpbnNpYygpLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxs
aW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwogCi0gICAgICAgICAgICBt
X2Z0bFN0YXRlLmFyaXRoU3Vicy5hcHBlbmQoQXJpdGhTdWJEZXNjcmlwdG9yKHN0YWNrbWFwSUQs
IG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLAorICAgICAgICAgICAgbV9mdGxTdGF0ZS5iaW5hcnlP
cHMuYXBwZW5kKEFyaXRoU3ViRGVzY3JpcHRvcihzdGFja21hcElELCBtX25vZGUtPm9yaWdpbi5z
ZW1hbnRpYywKICAgICAgICAgICAgICAgICBhYnN0cmFjdFZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkp
LnJlc3VsdFR5cGUoKSwKICAgICAgICAgICAgICAgICBhYnN0cmFjdFZhbHVlKG1fbm9kZS0+Y2hp
bGQyKCkpLnJlc3VsdFR5cGUoKSkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT1NSRXhpdC5jcHAJKHJldmlzaW9uIDE5MjY4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgYm9v
bCBPU1JFeGl0RGVzY3JpcHRvcjo6d2lsbEFycml2ZUF0RXhpdAogICAgIGNhc2UgRXhjZXB0aW9u
VHlwZTo6R2V0QnlJZDoKICAgICBjYXNlIEV4Y2VwdGlvblR5cGU6OlB1dEJ5SWQ6CiAgICAgY2Fz
ZSBFeGNlcHRpb25UeXBlOjpMYXp5U2xvd1BhdGg6Ci0gICAgY2FzZSBFeGNlcHRpb25UeXBlOjpT
dWJHZW5lcmF0b3I6CisgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpCaW5hcnlPcEdlbmVyYXRvcjoK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtODksNyArODksNyBAQCBib29sIE9TUkV4aXREZXNjcmlwdG9yOjptaWdodEFycml2ZUF0
T1NSCiAgICAgc3dpdGNoIChtX2V4Y2VwdGlvblR5cGUpIHsKICAgICBjYXNlIEV4Y2VwdGlvblR5
cGU6OkdldEJ5SWQ6CiAgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpQdXRCeUlkOgotICAgIGNhc2Ug
RXhjZXB0aW9uVHlwZTo6U3ViR2VuZXJhdG9yOgorICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6Qmlu
YXJ5T3BHZW5lcmF0b3I6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NS
RXhpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dC5oCShyZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDcgKzE0Myw3IEBAIGVudW0gY2xhc3MgRXhj
ZXB0aW9uVHlwZSB7CiAgICAgR2V0QnlJZCwKICAgICBQdXRCeUlkLAogICAgIExhenlTbG93UGF0
aCwKLSAgICBTdWJHZW5lcmF0b3IKKyAgICBCaW5hcnlPcEdlbmVyYXRvciwKIH07CiAKIHN0cnVj
dCBPU1JFeGl0RGVzY3JpcHRvciB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0
ZS5oCShyZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIFNlZ21l
bnRlZFZlY3RvcjxHZXRCeUlkRGVzY3JpcHRvcj4gZ2V0QnlJZHM7CiAgICAgU2VnbWVudGVkVmVj
dG9yPFB1dEJ5SWREZXNjcmlwdG9yPiBwdXRCeUlkczsKICAgICBTZWdtZW50ZWRWZWN0b3I8Q2hl
Y2tJbkRlc2NyaXB0b3I+IGNoZWNrSW5zOwotICAgIFNlZ21lbnRlZFZlY3RvcjxBcml0aFN1YkRl
c2NyaXB0b3I+IGFyaXRoU3ViczsKKyAgICBTZWdtZW50ZWRWZWN0b3I8QmluYXJ5T3BEZXNjcmlw
dG9yPiBiaW5hcnlPcHM7CiAgICAgU2VnbWVudGVkVmVjdG9yPExhenlTbG93UGF0aERlc2NyaXB0
b3I+IGxhenlTbG93UGF0aHM7CiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgU2VnbWVudGVk
VmVjdG9yPFByb2JlRGVzY3JpcHRvcj4gcHJvYmVzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266015</attachid>
            <date>2015-11-20 16:29:10 -0800</date>
            <delta_ts>2015-12-01 10:21:41 -0800</delta_ts>
            <desc>patch 2: fixed valid style issues.</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>57882</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyNzA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg4IEBA
CisyMDE1LTExLTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSdyZSBhZGRpbmcgdXNlIG9mIHRo
ZSBvcF9hZGQgc25pcHBldCBieSBmaXJzdCBnZW5lcmFsaXppbmcgdGhlIGV4aXN0aW5nIG1hY2hp
bmVyeQorICAgICAgICBmb3IgdXNpbmcgdGhlIG9wX3N1YiBzbmlwcGV0LiAgVGhpcyB3YXkgd2Ug
Y2FuIG1vcmUgZWFzaWx5IGFkZCBzdXBwb3J0IGZvciBtb3JlCisgICAgICAgIGJpbmFyeSBvcGVy
YXRvciBzbmlwcGV0cy4gIEJvdGggb3BfYWRkIGFuZCBvcF9zdWIgc25pcHBldHMgYXJlIG5vdyB1
c2VkIGluIHRoZQorICAgICAgICBGVEwgdmlhIGNvbW1vbiBCaW5hcnlPcCBtYWNoaW5lcnkuCisK
KyAgICAgICAgT25lIGRldGFpbCBhYm91dCBob3cgd2UgY2hvb3NpbmcgdG8gaGFuZGxlIG9wZXJh
bmRzIHRvIHRoZSBiaW5hcnkgc25pcHBldHMgdGhhdAorICAgICAgICBtYXkgYmUgY29uc3RhbnQ6
IHRoZSBzbG93IHBhdGggY2FsbCB0byBhIEMrKyBmdW5jdGlvbiBzdGlsbCBuZWVkcyB0aGUgY29u
c3RhbnQKKyAgICAgICAgb3BlcmFuZCBsb2FkZWQgaW4gYSByZWdpc3Rlci4gIFRvIHNpbXBsaWZ5
IHRoaW5ncywgd2UncmUgY2hvb3NpbmcgdG8gYWx3YXlzIHRlbGwKKyAgICAgICAgTExWTSB0byBs
b2FkIHRoZSBvcGVyYW5kcyBpbnRvIHJlZ2lzdGVycyBldmVuIGlmIHRoZXkgbWF5IGJlIGNvbnN0
YW50LiAgSWYgYQorICAgICAgICBjb25zdGFudCBvcGVyYW5kIGlzIGluIGEgcmVnaXN0ZXIsIHRo
ZSBzbmlwcGV0IGdlbmVyYXRvciB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlCisgICAgICAgIG9mIGl0
LiAgSXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbiBpbW1lZGlhdGUu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIGZ0bC9GVExD
b21waWxlLmNwcDoKKyAgICAgICAgLSBNb3ZlZCB0aGUgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29u
dGV4dCB0byBGVExDb21waWxlQmluYXJ5T3AuY3BwIHZlcmJhdGltLgorICAgICAgICAtIEdlbmVy
YWxpemUgZ2VuZXJhdGVBcml0aFN1YklDRmFzdFBhdGgoKSB0byBnZW5lcmF0ZUJpbmFyeU9wSUNG
YXN0UGF0aCgpLgorICAgICAgICAgIEl0IG5vdyB1c2VzIHNuaXBwZXQgc3BlY2lmaWMgaGVscGVy
cyBpbiBGVExDb21waWxlQmluYXJ5T3AuY3BwIHRvIGdlbmVyYXRlCisgICAgICAgICAgdGhlIGZh
c3QgcGF0aHMuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dDo6QmluYXJ5
U25pcHBldFJlZ2lzdGVyQ29udGV4dCk6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5U25pcHBl
dFJlZ2lzdGVyQ29udGV4dDo6aW5pdGlhbGl6ZVJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkZU
TDo6QmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dDo6cmVzdG9yZVJlZ2lzdGVycyk6CisgICAg
ICAgIC0gTW92ZWQgaGVyZSB3aXRob3V0IGNoYW5nZWQgZnJvbSBGVExDb21waWxlLmNwcC4KKyAg
ICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZUFyaXRoU3ViRmFzdFBhdGgpOgorICAgICAgICAtIFJl
ZmFjdG9yZWQgb3V0IGlmIGdlbmVyYXRlQXJpdGhTdWJJQ0Zhc3RQYXRoKCkuCisgICAgICAgIChK
U0M6OkZUTDo6Z2VuZXJhdGVWYWx1ZUFkZEZhc3RQYXRoKToKKyAgICAgICAgLSBBZGRlZCBmb3Ig
dXNpbmcgSklUQWRkR2VuZXJhdG9yLgorICAgICAgICAKKyAgICAgICAgKiBmdGwvRlRMQ29tcGls
ZUJpbmFyeU9wLmg6IEFkZGVkLgorCisgICAgICAgICogZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpFeGNlcHRpb25IYW5kbGVyTWFuYWdlcjo6
YmluYXJ5T3BPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGNlcHRpb25IYW5kbGVyTWFu
YWdlcjo6c3ViT1NSRXhpdCk6IERlbGV0ZWQuCisgICAgICAgICogZnRsL0ZUTEV4Y2VwdGlvbkhh
bmRsZXJNYW5hZ2VyLmg6CisKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
Lmg6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5T3BEZXNjcmlwdG9yOjpub2RlVHlwZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6QmluYXJ5T3BEZXNjcmlwdG9yOjpzaXplKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpCaW5hcnlPcERlc2NyaXB0b3I6Om5hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkJp
bmFyeU9wRGVzY3JpcHRvcjo6ZmFzdFBhdGhJQ05hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkJp
bmFyeU9wRGVzY3JpcHRvcjo6c2xvd1BhdGhGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6
QmluYXJ5T3BEZXNjcmlwdG9yOjpsZWZ0VHlwZSk6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5
T3BEZXNjcmlwdG9yOjpyaWdodFR5cGUpOgorICAgICAgICAoSlNDOjpGVEw6OkJpbmFyeU9wRGVz
Y3JpcHRvcjo6bGVmdElzQ29uc3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5T3BE
ZXNjcmlwdG9yOjpyaWdodElzQ29uc3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5
T3BEZXNjcmlwdG9yOjpsZWZ0Q29uc3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6QmluYXJ5
T3BEZXNjcmlwdG9yOjpyaWdodENvbnN0SW50MzIpOgorICAgICAgICAoSlNDOjpGVEw6OkJpbmFy
eU9wRGVzY3JpcHRvcjo6QmluYXJ5T3BEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpB
cml0aFN1YkRlc2NyaXB0b3I6OkFyaXRoU3ViRGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkZUTDo6QXJpdGhTdWJEZXNjcmlwdG9yOjpsZWZ0VHlwZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkZUTDo6QXJpdGhTdWJEZXNjcmlwdG9yOjpyaWdodFR5cGUpOiBEZWxldGVkLgor
ICAgICAgICAtIFJlZmFjdG9yIEFyaXRoU3ViRGVzY3JpcHRvciBpbnRvIEJpbmFyeU9wRGVzY3Jp
cHRvciwgYW5kIGFkZAorICAgICAgICAgIEFyaXRoU3ViRGVzY3JpcHRvciBhbmQgVmFsdWVBZGRE
ZXNjcmlwdG9yIGFzIHNwZWNpYWxpemF0aW9ucyBvZgorICAgICAgICAgIEJpbmFyeU9wRGVzY3Jp
cHRvciBmb3IgdGhlIHJlc3BlY3RpdmUgc25pcHBldHMuCisKKyAgICAgICAgKiBmdGwvRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpB
cml0aFN1YkRlc2NyaXB0b3I6OkFyaXRoU3ViRGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkZU
TDo6QXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUpOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVl
QWRkRGVzY3JpcHRvcjo6VmFsdWVBZGREZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpW
YWx1ZUFkZERlc2NyaXB0b3I6OmljU2l6ZSk6CisKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2Fj
aGVTaXplLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzaXplT2ZWYWx1ZUFkZCk6CisgICAgICAg
ICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVZhbHVlQWRkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQXJpdGhBZGRPclN1Yik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXQuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6Ok9TUkV4aXREZXNjcmlwdG9yOjp3aWxsQXJyaXZlQXRFeGl0RnJvbUluZGly
ZWN0RXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAoSlNDOjpGVEw6Ok9TUkV4aXREZXNjcmlwdG9y
OjptaWdodEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBmdGwv
RlRMT1NSRXhpdC5oOgorICAgICAgICAqIGZ0bC9GVExTdGF0ZS5oOgorCiAyMDE1LTExLTIwICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQjMgc2hvdWxkIGhhdmUg
YSBTZWxlY3Qgb3Bjb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShy
ZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTk4NCw2ICs5ODQsNyBAQCBpZiAoRU5BQkxFX0ZUTF9KSVQpCiAg
ICAgICAgIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwCiAgICAgICAgIGZ0bC9GVExDb21tb25WYWx1
ZXMuY3BwCiAgICAgICAgIGZ0bC9GVExDb21waWxlLmNwcAorICAgICAgICBmdGwvRlRMQ29tcGls
ZUJpbmFyeU9wLmNwcAogICAgICAgICBmdGwvRlRMRFdBUkZEZWJ1Z0xpbmVJbmZvLmNwcAogICAg
ICAgICBmdGwvRlRMRFdBUkZSZWdpc3Rlci5jcHAKICAgICAgICAgZnRsL0ZUTERhdGFTZWN0aW9u
LmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lv
biAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01MjIsNiArNTIyLDcg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExDYXBhYmlsaXRpZXMuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTENvbW1vblZhbHVlcy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGlsZS5jcHAiIC8+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGlsZUJpbmFyeU9wLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExEYXRhU2VjdGlvbi5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMRFdBUkZEZWJ1Z0xpbmVJbmZvLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExEV0FSRlJlZ2lzdGVyLmNwcCIgLz4K
QEAgLTEyODksNiArMTI5MCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRM
Q2FwYWJpbGl0aWVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29t
bW9uVmFsdWVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGls
ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTENvbXBpbGVCaW5hcnlP
cC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTERhdGFTZWN0aW9uLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMRFdBUkZEZWJ1Z0xpbmVJbmZv
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMRFdBUkZSZWdpc3Rlci5o
IiAvPgpAQCAtMTMwNSw2ICsxMzA3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0
bFxGVExGb3JPU1JFbnRyeUpJVENvZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGZ0bFxGVExHZW5lcmF0ZWRGdW5jdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZnRsXEZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZnRsXEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbmxpbmVDYWNoZVNpemUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMSklUQ29kZS5oIiAvPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNp
b24gMTkyNjg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xNTU3
LDYgKzE1NTcsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTENvbXBpbGUu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZnRsPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMQ29tcGlsZUJpbmFyeU9wLmNwcCI+CisgICAg
ICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZnRsXEZUTERhdGFTZWN0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmZ0bDwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNDEyMyw2ICs0MTI2LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExDb21waWxlLmgiPgogICAgICAgPEZpbHRlcj5mdGw8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0
bFxGVExDb21waWxlQmluYXJ5T3AuaCI+CisgICAgICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTERhdGFTZWN0
aW9uLmgiPgogICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAg
LTQxNjUsNiArNDE3MSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yLmgiPgogICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbmxpbmVDYWNo
ZURlc2NyaXB0b3JJbmxpbmVzLmgiPgorICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExJbmxpbmVDYWNo
ZVNpemUuaCI+CiAgICAgICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5MjY4NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAKIAkJMEYyNEU1NTYxN0YwQjcx
QzAwQUJCMjE3IC8qIElubGluZUNhbGxGcmFtZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNEU1NTQxN0YwQjcxQzAwQUJCMjE3IC8qIElubGlu
ZUNhbGxGcmFtZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGMjRFNTU4MTdGNzRFREIwMEFCQjIxNyAvKiBWYWx1ZVJlY292ZXJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTU3MTdG
NzRFREIwMEFCQjIxNyAvKiBWYWx1ZVJlY292ZXJ5LmNwcCAqLzsgfTsKIAkJMEYyNTZDMzYxNjI3
QjBBRDAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI1NkMzNDE2
MjdCMEFBMDA3RjI3ODMgLyogREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCAqLzsgfTsKLQkJMEYyNUYxQUUxODE2MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hlRGVz
Y3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyNUYxQTcxODE2MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMjVGMUFF
MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjVGMUE3MTgxNjM1RjMwMDUy
MkYzOSAvKiBGVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaCAqLzsgfTsKIAkJMEYyNUYxQUYxODE2
MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hlU2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI1RjFBODE4MTYzNUYzMDA1MjJGMzkgLyog
RlRMSW5saW5lQ2FjaGVTaXplLmNwcCAqLzsgfTsKIAkJMEYyNUYxQjAxODE2MzVGMzAwNTIyRjM5
IC8qIEZUTElubGluZUNhY2hlU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYyNUYxQTkxODE2MzVGMzAwNTIyRjM5IC8qIEZUTElubGluZUNhY2hl
U2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGMjVGMUIxMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyNUYxQUExODE2MzVGMzAw
NTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5jcHAgKi87IH07CkBAIC0xOTY0LDYgKzE5NjQsOSBA
QAogCQlGRTEyMjAyODFCRTdGNTkxMDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTIyMDI1MUJFN0Y1
NjQwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0b3IuY3BwICovOyB9OwogCQlGRTE4N0EwMTFCRkJF
NTVFMDAzOEJCQ0EgLyogSklUTXVsR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTg3OUZGMUJGQkM3M0MwMDM4QkJDQSAvKiBKSVRN
dWxHZW5lcmF0b3IuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJ
CUZFMTg3QTAyMUJGQkU1NjEwMDM4QkJDQSAvKiBKSVRNdWxHZW5lcmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTg3QTAwMUJGQkM3M0MwMDM4
QkJDQSAvKiBKSVRNdWxHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgp
OyB9OyB9OworCQlGRTE4N0EwNzFCRkZEOERBMDAzOEJCQ0EgLyogRlRMQ29tcGlsZUJpbmFyeU9w
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMTg3
QTA1MUJGRkQ4QzcwMDM4QkJDQSAvKiBGVExDb21waWxlQmluYXJ5T3AuY3BwICovOyBzZXR0aW5n
cyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUZFMTg3QTA4MUJGRkQ4REUwMDM4QkJDQSAv
KiBGVExDb21waWxlQmluYXJ5T3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFMTg3QTA2MUJGRkQ4QzcwMDM4QkJDQSAvKiBGVExDb21waWxlQmluYXJ5
T3AuaCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlGRTE4N0EwOTFC
RkZEQ0RDMDAzOEJCQ0EgLyogRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUxODdBMDMxQkZGQzg5
MDAwMzhCQkNBIC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwogCQlGRTFDMEZGRDFCMTkzRTk4MDBCNTNGQ0Eg
LyogRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRTFDMEZGQzFCMTkzRTk4MDBCNTNGQ0EgLyogRXhjZXB0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkUxQzBGRkYxQjE5NEZEMTAw
QjUzRkNBIC8qIEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRTFDMEZGRTFCMTk0RkQxMDBCNTNGQ0EgLyogRXhjZXB0aW9uLmNwcCAq
LzsgfTsKIAkJRkUyMENFOUQxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyMENFOUIxNUYwNEE5
NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwICovOyB9OwpAQCAtNDA5Niw2ICs0MDk5LDkgQEAK
IAkJRkUxMjIwMjYxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRBZGRHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUxODc5RkYxQkZCQzczQzAwMzhCQkNBIC8qIEpJVE11bEdlbmVy
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRNdWxHZW5l
cmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTE4N0EwMDFCRkJDNzND
MDAzOEJCQ0EgLyogSklUTXVsR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpJVE11bEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
RTE4N0EwMzFCRkZDODkwMDAzOEJCQ0EgLyogRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExJbmxpbmVDYWNoZURlc2Ny
aXB0b3JJbmxpbmVzLmg7IHBhdGggPSBmdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTE4N0EwNTFCRkZEOEM3MDAzOEJC
Q0EgLyogRlRMQ29tcGlsZUJpbmFyeU9wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEZUTENvbXBpbGVCaW5hcnlPcC5jcHA7IHBhdGggPSBmdGwvRlRMQ29tcGlsZUJp
bmFyeU9wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkUxODdBMDYxQkZGRDhD
NzAwMzhCQkNBIC8qIEZUTENvbXBpbGVCaW5hcnlPcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBGVExDb21waWxlQmluYXJ5T3AuaDsgcGF0aCA9IGZ0bC9GVExDb21waWxlQmlu
YXJ5T3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUxQzBGRkMxQjE5M0U5ODAw
QjUzRkNBIC8qIEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUxQzBGRkUxQjE5NEZE
MTAwQjUzRkNBIC8qIEV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTIw
Q0U5QjE1RjA0QTk1MDBERjM0MzAgLyogTExJbnRDTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludENMb29wLmNwcDsgcGF0aCA9IGxsaW50L0xMSW50Q0xv
b3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM3MCw2ICs0Mzc2LDggQEAK
IAkJCQkwRkVBMEEyMTE3MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggKi8sCiAJ
CQkJMEZFQTBBMDAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENvbXBpbGUuY3BwICovLAogCQkJCTBG
RUEwQTAxMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmggKi8sCisJCQkJRkUxODdBMDUx
QkZGRDhDNzAwMzhCQkNBIC8qIEZUTENvbXBpbGVCaW5hcnlPcC5jcHAgKi8sCisJCQkJRkUxODdB
MDYxQkZGRDhDNzAwMzhCQkNBIC8qIEZUTENvbXBpbGVCaW5hcnlPcC5oICovLAogCQkJCTBGRTk1
Rjc3MThCNTY5NDcwMEI1MzFGQiAvKiBGVExEYXRhU2VjdGlvbi5jcHAgKi8sCiAJCQkJMEZFOTVG
NzgxOEI1Njk0NzAwQjUzMUZCIC8qIEZUTERhdGFTZWN0aW9uLmggKi8sCiAJCQkJMkFDOTIyQjkx
OEExNjE4MjAwM0NFMEZCIC8qIEZUTERXQVJGRGVidWdMaW5lSW5mby5jcHAgKi8sCkBAIC00Mzk3
LDYgKzQ0MDUsNyBAQAogCQkJCTBGRDhBMzE2MTdENTFGMjIwMENBMkM0MCAvKiBGVExGb3JPU1JF
bnRyeUpJVENvZGUuaCAqLywKIAkJCQlBNzhBOTc3QzE3OTczOEQ1MDA5REY3NDQgLyogRlRMR2Vu
ZXJhdGVkRnVuY3Rpb24uaCAqLywKIAkJCQkwRjI1RjFBNzE4MTYzNUYzMDA1MjJGMzkgLyogRlRM
SW5saW5lQ2FjaGVEZXNjcmlwdG9yLmggKi8sCisJCQkJRkUxODdBMDMxQkZGQzg5MDAwMzhCQkNB
IC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXMuaCAqLywKIAkJCQkwRjI1RjFBODE4
MTYzNUYzMDA1MjJGMzkgLyogRlRMSW5saW5lQ2FjaGVTaXplLmNwcCAqLywKIAkJCQkwRjI1RjFB
OTE4MTYzNUYzMDA1MjJGMzkgLyogRlRMSW5saW5lQ2FjaGVTaXplLmggKi8sCiAJCQkJMEZFQTBB
MjYxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9zaXRvcnkuY3BwICovLApAQCAt
NjczNiw2ICs2NzQ1LDcgQEAKIAkJCQk4NjY3MzlEMjEzQkZERTcxMDAyM0Q4N0MgLyogQmlnSW50
ZWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NEIyNzIxQTc4NEJBRjAwNkU0RTY2IC8qIEJp
bmFyeVN3aXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRUMwRTE2RjVDRDAwQjM0NDYw
IC8qIEJvb2xlYW5PYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFMTg3QTA4MUJGRkQ4REUw
MDM4QkJDQSAvKiBGVExDb21waWxlQmluYXJ5T3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3
MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3RDgwMUE1MTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJs
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNzQ4MCw2ICs3NDkwLDcgQEAKIAkJCQk4NkM1NjhFMjEx
QTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ3
MDNDRDcxOTI4NDRDQzAwMTNGQkVBIC8qIG1vZGVscy5weSBpbiBIZWFkZXJzICovLAogCQkJCUUz
Nzk0RTc2MUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRkUxODdBMDkxQkZGRENEQzAwMzhCQkNBIC8qIEZUTElubGluZUNhY2hlRGVzY3JpcHRv
cklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTVGMzUzMUI3REM4NTMwMEM1MERDNSAv
KiBNb2R1bGVMb2FkZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzIwMUJEQTA4
RUYwMDMzMUI4NCAvKiBNb2R1bGVMb2FkZXJPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzAyRTkxMTBFMTgzOURCMDAwRjkyOTcgLyogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04Mzk1LDYgKzg0MDYsNyBAQAogCQkJCTg2RUM5REM0MTMyOERGODIw
MDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4
MkUyMTE0MTcyQ0UzMDAxNzlDOTQgLyogREZHQ2FwYWJpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRkZDOTU3MTRFRjkwQTAwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGRTE4N0EwNzFCRkZEOERBMDAzOEJCQ0EgLyogRlRMQ29tcGlsZUJpbmFy
eU9wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0IzQTI3MTU0NEM5OTUwMDNFRDBGRiAvKiBE
RkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzNjk0
MUFFOUNDMzMwMDBENERGQiAvKiBERkdDbGVhblVwUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTc3QTQyM0YxN0EwQkJGRDAwQThEQjgxIC8qIERGR0Nsb2JiZXJpemUuY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJl
dmlzaW9uIDE5MjY4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEzICszNywxNCBAQAogI2luY2x1ZGUgIkRGR09wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJEYXRhVmlldy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5o
IgorI2luY2x1ZGUgIkZUTENvbXBpbGVCaW5hcnlPcC5oIgogI2luY2x1ZGUgIkZUTEV4Y2VwdGlv
bkhhbmRsZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRlRMRXhpdFRodW5rR2VuZXJhdG9yLmgiCisj
aW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIkZU
TElubGluZUNhY2hlU2l6ZS5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJG
VExUaHVua3MuaCIKICNpbmNsdWRlICJGVExVbndpbmRJbmZvLmgiCi0jaW5jbHVkZSAiSklUU3Vi
R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKQEAgLTMwNywxMjUgKzMw
OCwxMiBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUNoZWNrSW5JQ0Zhc3RQYXRoKAogICAgIH0KIH0K
IAotY2xhc3MgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dCB7Ci0gICAgLy8gVGhlIHB1cnBv
c2Ugb2YgdGhpcyBjbGFzcyBpcyB0byBzaHVmZmxlIHJlZ2lzdGVycyB0byBnZXQgdGhlbSBpbnRv
IHRoZSBzdGF0ZQotICAgIC8vIHRoYXQgYmFzZWxpbmUgY29kZSBleHBlY3RzIHNvIHRoYXQgd2Ug
Y2FuIHVzZSB0aGUgYmFzZWxpbmUgc25pcHBldCBnZW5lcmF0b3JzIGkuZS4KLSAgICAvLyAgICAx
LiBFbnN1cmUgdGhhdCB0aGUgaW5wdXRzIGFuZCBvdXRwdXQgYXJlIG5vdCBpbiByZXNlcnZlZCBy
ZWdpc3RlcnMgKHdoaWNoCi0gICAgLy8gICAgICAgaW5jbHVkZSB0aGUgdGFnIHJlZ2lzdGVycyku
IFRoZSBzbmlwcGV0IHdpbGwgdXNlIHRoZXNlIHJlc2VydmVkIHJlZ2lzdGVycy4KLSAgICAvLyAg
ICAgICBIZW5jZSwgd2UgbmVlZCB0byBwdXQgdGhlIGlucHV0cyBhbmQgb3V0cHV0IGluIG90aGVy
IHNjcmF0Y2ggcmVnaXN0ZXJzLgotICAgIC8vICAgIDIuIFRhZyByZWdpc3RlcnMgYXJlIGxvYWRl
ZCB3aXRoIHRoZSBleHBlY3RlZCB2YWx1ZXMuCi0gICAgLy8KLSAgICAvLyBXaGVuIHRoZSBzbmlw
cGV0IGlzIGRvbmU6Ci0gICAgLy8gICAgMS4gSWYgd2UgaGFkIHJlLWFzc2lnbmVkIHRoZSByZXN1
bHQgcmVnaXN0ZXIgdG8gYSBzY3JhdGNoLCB3ZSBuZWVkIHRvIGNvcHkgdGhlCi0gICAgLy8gICAg
ICAgcmVzdWx0IGJhY2sgZnJvbSB0aGUgc2NyYXRjaC4KLSAgICAvLyAgICAyLiBSZXN0b3JlIHRo
ZSBpbnB1dCBhbmQgdGFnIHJlZ2lzdGVycyB0byB0aGUgdmFsdWVzIHRoYXQgTExWTSBwdXQgdGhl
cmUgb3JpZ2luYWxseS4KLSAgICAvLyAgICAgICBUaGF0IGlzIHVubGVzcyB3aGVuIG9uZSBvZiB0
aGVtIGlzIGFsc28gdGhlIHJlc3VsdCByZWdpc3Rlci4gSW4gdGhhdCBjYXNlLCB3ZQotICAgIC8v
ICAgICAgIGRvbid0IHdhbnQgdG8gdHJhc2ggdGhlIHJlc3VsdCwgYW5kIGhlbmNlLCBzaG91bGQg
bm90IHJlc3RvcmUgaW50byBpdC4KLQotcHVibGljOgotICAgIEJpbmFyeVNuaXBwZXRSZWdpc3Rl
ckNvbnRleHQoU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IsIEdQUlJlZyYgcmVz
dWx0LCBHUFJSZWcmIGxlZnQsIEdQUlJlZyYgcmlnaHQpCi0gICAgICAgIDogbV9hbGxvY2F0b3Io
YWxsb2NhdG9yKQotICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKLSAgICAgICAgLCBtX2xlZnQo
bGVmdCkKLSAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQotICAgICAgICAsIG1fb3JpZ1Jlc3VsdChy
ZXN1bHQpCi0gICAgICAgICwgbV9vcmlnTGVmdChsZWZ0KQotICAgICAgICAsIG1fb3JpZ1JpZ2h0
KHJpZ2h0KQotICAgIHsKLSAgICAgICAgbV9hbGxvY2F0b3IubG9jayhtX3Jlc3VsdCk7Ci0gICAg
ICAgIG1fYWxsb2NhdG9yLmxvY2sobV9sZWZ0KTsKLSAgICAgICAgbV9hbGxvY2F0b3IubG9jayht
X3JpZ2h0KTsKLQotICAgICAgICBSZWdpc3RlclNldCBpbnB1dEFuZE91dHB1dFJlZ2lzdGVycyA9
IFJlZ2lzdGVyU2V0KG1fbGVmdCwgbV9yaWdodCwgbV9yZXN1bHQpOwotICAgICAgICBSZWdpc3Rl
clNldCByZXNlcnZlZFJlZ2lzdGVyczsKLSAgICAgICAgZm9yIChHUFJSZWcgcmVnIDogR1BSSW5m
bzo6cmVzZXJ2ZWRSZWdpc3RlcnMoKSkKLSAgICAgICAgICAgIHJlc2VydmVkUmVnaXN0ZXJzLnNl
dChyZWcpOwotCi0gICAgICAgIGlmIChyZXNlcnZlZFJlZ2lzdGVycy5nZXQobV9sZWZ0KSkKLSAg
ICAgICAgICAgIG1fbGVmdCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwotICAg
ICAgICBpZiAocmVzZXJ2ZWRSZWdpc3RlcnMuZ2V0KG1fcmlnaHQpKSB7Ci0gICAgICAgICAgICBp
ZiAobV9vcmlnUmlnaHQgPT0gbV9vcmlnTGVmdCkKLSAgICAgICAgICAgICAgICBtX3JpZ2h0ID0g
bV9sZWZ0OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fcmlnaHQgPSBtX2Fs
bG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVz
ZXJ2ZWRSZWdpc3RlcnMuZ2V0KG1fcmVzdWx0KSkgewotICAgICAgICAgICAgaWYgKG1fb3JpZ1Jl
c3VsdCA9PSBtX29yaWdMZWZ0KQotICAgICAgICAgICAgICAgIG1fcmVzdWx0ID0gbV9sZWZ0Owot
ICAgICAgICAgICAgZWxzZSBpZiAobV9vcmlnUmVzdWx0ID09IG1fb3JpZ1JpZ2h0KQotICAgICAg
ICAgICAgICAgIG1fcmVzdWx0ID0gbV9yaWdodDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBtX3Jlc3VsdCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKCFpbnB1dEFuZE91dHB1dFJlZ2lzdGVycy5nZXQoR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyKSkKLSAgICAgICAgICAgIG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIg
PSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICAgICAgaWYgKCFpbnB1dEFu
ZE91dHB1dFJlZ2lzdGVycy5nZXQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSkKLSAg
ICAgICAgICAgIG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBtX2FsbG9jYXRvci5hbGxv
Y2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVSZWdpc3RlcnMo
Q0NhbGxIZWxwZXJzJiBqaXQpCi0gICAgewotICAgICAgICBpZiAobV9sZWZ0ICE9IG1fb3JpZ0xl
ZnQpCi0gICAgICAgICAgICBqaXQubW92ZShtX29yaWdMZWZ0LCBtX2xlZnQpOwotICAgICAgICBp
ZiAobV9yaWdodCAhPSBtX29yaWdSaWdodCAmJiBtX29yaWdSaWdodCAhPSBtX29yaWdMZWZ0KQot
ICAgICAgICAgICAgaml0Lm1vdmUobV9vcmlnUmlnaHQsIG1fcmlnaHQpOwotCi0gICAgICAgIGlm
IChtX3NhdmVkVGFnTWFza1JlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICBq
aXQubW92ZShHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIsIG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIp
OwotICAgICAgICBpZiAobV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBJbnZhbGlkR1BS
UmVnKQotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
LCBtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLQotICAgICAgICBqaXQuZW1pdE1hdGVy
aWFsaXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKLSAgICB9Ci0KLSAgICB2b2lkIHJlc3RvcmVSZWdp
c3RlcnMoQ0NhbGxIZWxwZXJzJiBqaXQpCi0gICAgewotICAgICAgICBpZiAobV9vcmlnUmVzdWx0
ICE9IG1fcmVzdWx0KQotICAgICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQsIG1fb3JpZ1Jlc3Vs
dCk7Ci0gICAgICAgIGlmIChtX29yaWdMZWZ0ICE9IG1fbGVmdCAmJiBtX29yaWdMZWZ0ICE9IG1f
b3JpZ1Jlc3VsdCkKLSAgICAgICAgICAgIGppdC5tb3ZlKG1fbGVmdCwgbV9vcmlnTGVmdCk7Ci0g
ICAgICAgIGlmIChtX29yaWdSaWdodCAhPSBtX3JpZ2h0ICYmIG1fb3JpZ1JpZ2h0ICE9IG1fb3Jp
Z1Jlc3VsdCAmJiBtX29yaWdSaWdodCAhPSBtX29yaWdMZWZ0KQotICAgICAgICAgICAgaml0Lm1v
dmUobV9yaWdodCwgbV9vcmlnUmlnaHQpOwotCi0gICAgICAgIC8vIFdlIGFyZSBndWFyYW50ZWVk
IHRoYXQgdGhlIHRhZyByZWdpc3RlcnMgYXJlIG5vdCB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwg
aW5wdXQKLSAgICAgICAgLy8gb3Igb3V0cHV0IHJlZ2lzdGVycy4gT3RoZXJ3aXNlLCB3ZSB3b3Vs
ZCBub3QgaGF2ZSBhbGxvY2F0ZWQgYSBzY3JhdGNoIGZvciB0aGVtLgotICAgICAgICAvLyBIZW5j
ZSwgd2UgZG9uJ3QgbmVlZCB0byBuZWVkIHRvIGNoZWNrIGZvciBvdmVybGFwIGxpa2Ugd2UgZG8g
Zm9yIHRoZSBpbnB1dCByZWdpc3RlcnMuCi0gICAgICAgIGlmIChtX3NhdmVkVGFnTWFza1JlZ2lz
dGVyICE9IEludmFsaWRHUFJSZWcpIHsKLSAgICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdN
YXNrUmVnaXN0ZXIgIT0gbV9vcmlnTGVmdCk7Ci0gICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6
dGFnTWFza1JlZ2lzdGVyICE9IG1fb3JpZ1JpZ2h0KTsKLSAgICAgICAgICAgIEFTU0VSVChHUFJJ
bmZvOjp0YWdNYXNrUmVnaXN0ZXIgIT0gbV9vcmlnUmVzdWx0KTsKLSAgICAgICAgICAgIGppdC5t
b3ZlKG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gSW52
YWxpZEdQUlJlZykgewotICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciAhPSBtX29yaWdMZWZ0KTsKLSAgICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdU
eXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmlnUmlnaHQpOwotICAgICAgICAgICAgQVNTRVJUKEdQ
UkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBtX29yaWdSZXN1bHQpOwotICAgICAgICAg
ICAgaml0Lm1vdmUobV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgfQotICAgIH0KLQotcHJpdmF0ZToKLSAgICBTY3Jh
dGNoUmVnaXN0ZXJBbGxvY2F0b3ImIG1fYWxsb2NhdG9yOwotCi0gICAgR1BSUmVnJiBtX3Jlc3Vs
dDsKLSAgICBHUFJSZWcmIG1fbGVmdDsKLSAgICBHUFJSZWcmIG1fcmlnaHQ7Ci0KLSAgICBHUFJS
ZWcgbV9vcmlnUmVzdWx0OwotICAgIEdQUlJlZyBtX29yaWdMZWZ0OwotICAgIEdQUlJlZyBtX29y
aWdSaWdodDsKLQotICAgIEdQUlJlZyBtX3NhdmVkVGFnTWFza1JlZ2lzdGVyIHsgSW52YWxpZEdQ
UlJlZyB9OwotICAgIEdQUlJlZyBtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyIHsgSW52YWxp
ZEdQUlJlZyB9OwotfTsKLQotc3RhdGljIHZvaWQgZ2VuZXJhdGVBcml0aFN1YklDRmFzdFBhdGgo
CitzdGF0aWMgdm9pZCBnZW5lcmF0ZUJpbmFyeU9wSUNGYXN0UGF0aCgKICAgICBTdGF0ZSYgc3Rh
dGUsIENvZGVCbG9jayogY29kZUJsb2NrLCBHZW5lcmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5j
dGlvbiwKLSAgICBTdGFja01hcHM6OlJlY29yZE1hcCYgcmVjb3JkTWFwLCBBcml0aFN1YkRlc2Ny
aXB0b3ImIGljKQorICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwJiByZWNvcmRNYXAsIEJpbmFyeU9w
RGVzY3JpcHRvciYgaWMpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUuZ3JhcGgubV92bTsKLSAgICBz
aXplX3Qgc2l6ZU9mSUMgPSBzaXplT2ZBcml0aFN1YigpOworICAgIHNpemVfdCBzaXplT2ZJQyA9
IGljLnNpemUoKTsKIAogICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0g
cmVjb3JkTWFwLmZpbmQoaWMuc3RhY2ttYXBJRCgpKTsKICAgICBpZiAoaXRlciA9PSByZWNvcmRN
YXAuZW5kKCkpCkBAIC00NDMsNDAgKzMzMSwyNSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUFyaXRo
U3ViSUNGYXN0UGF0aCgKICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IHJlY29yZC5sb2NhdGlvbnNb
MF0uZGlyZWN0R1BSKCk7CiAgICAgICAgIEdQUlJlZyBsZWZ0ID0gcmVjb3JkLmxvY2F0aW9uc1sx
XS5kaXJlY3RHUFIoKTsKICAgICAgICAgR1BSUmVnIHJpZ2h0ID0gcmVjb3JkLmxvY2F0aW9uc1sy
XS5kaXJlY3RHUFIoKTsKLQogICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdXNl
ZFJlZ2lzdGVyc0ZvcihyZWNvcmQpOwotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3Ig
YWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOwotCi0gICAgICAgIEJpbmFyeVNuaXBwZXRSZWdpc3Rl
ckNvbnRleHQgY29udGV4dChhbGxvY2F0b3IsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwotCi0gICAg
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwot
ICAgICAgICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsK
LSAgICAgICAgRlBSUmVnIHJpZ2h0RlBSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEZQUigp
OwotICAgICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IEludmFsaWRGUFJSZWc7CiAKLSAgICAgICAg
SklUU3ViR2VuZXJhdG9yIGdlbihKU1ZhbHVlUmVncyhyZXN1bHQpLCBKU1ZhbHVlUmVncyhsZWZ0
KSwgSlNWYWx1ZVJlZ3MocmlnaHQpLCBpYy5sZWZ0VHlwZSgpLCBpYy5yaWdodFR5cGUoKSwgbGVm
dEZQUiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgZG9uZTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoU3Rh
cnQ7CiAKLSAgICAgICAgYXV0byBudW1iZXJPZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdp
c3RlcnMgPQotICAgICAgICAgICAgYWxsb2NhdG9yLnByZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQ
dXNoaW5nKGZhc3RQYXRoSklULCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OkV4dHJhU3RhY2tT
cGFjZTo6Tm9FeHRyYVNwYWNlKTsKLQotICAgICAgICBjb250ZXh0LmluaXRpYWxpemVSZWdpc3Rl
cnMoZmFzdFBhdGhKSVQpOwotICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChmYXN0UGF0aEpJ
VCk7Ci0KLSAgICAgICAgQVNTRVJUKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7Ci0gICAgICAgIGdl
bi5lbmRKdW1wTGlzdCgpLmxpbmsoJmZhc3RQYXRoSklUKTsKLSAgICAgICAgY29udGV4dC5yZXN0
b3JlUmVnaXN0ZXJzKGZhc3RQYXRoSklUKTsKLSAgICAgICAgYWxsb2NhdG9yLnJlc3RvcmVSZXVz
ZWRSZWdpc3RlcnNCeVBvcHBpbmcoZmFzdFBhdGhKSVQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVycywKLSAgICAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBmYXN0UGF0aEpJVC5qdW1wKCk7Ci0KLSAgICAgICAgZ2VuLnNsb3dQYXRo
SnVtcExpc3QoKS5saW5rKCZmYXN0UGF0aEpJVCk7Ci0gICAgICAgIGNvbnRleHQucmVzdG9yZVJl
Z2lzdGVycyhmYXN0UGF0aEpJVCk7Ci0gICAgICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVn
aXN0ZXJzQnlQb3BwaW5nKGZhc3RQYXRoSklULCBudW1iZXJPZkJ5dGVzVXNlZFRvUHJlc2VydmVS
ZXVzZWRSZWdpc3RlcnMsCi0gICAgICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OkV4
dHJhU3RhY2tTcGFjZTo6U3BhY2VGb3JDQ2FsbCk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6SnVt
cCBzbG93UGF0aFN0YXJ0ID0gZmFzdFBhdGhKSVQuanVtcCgpOworICAgICAgICBzd2l0Y2ggKGlj
Lm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBBcml0aFN1YjoKKyAgICAgICAgICAgIGdlbmVy
YXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmlnaHQs
IHVzZWRSZWdpc3RlcnMsIGRvbmUsIHNsb3dQYXRoU3RhcnQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICBnZW5lcmF0ZVZhbHVlQWRkRmFz
dFBhdGgoaWMsIGZhc3RQYXRoSklULCByZXN1bHQsIGxlZnQsIHJpZ2h0LCB1c2VkUmVnaXN0ZXJz
LCBkb25lLCBzbG93UGF0aFN0YXJ0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQogCiAgICAgICAgIGNoYXIqIHN0YXJ0T2ZJQyA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJh
dGVkRnVuY3Rpb24pICsgcmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0OwotICAgICAgICBnZW5lcmF0
ZUlubGluZUlmUG9zc2libGVPdXRPZkxpbmVJZk5vdChzdGF0ZSwgdm0sIGNvZGVCbG9jaywgZmFz
dFBhdGhKSVQsIHN0YXJ0T2ZJQywgc2l6ZU9mSUMsICJBcml0aFN1YiBpbmxpbmUgY2FjaGUgZmFz
dCBwYXRoIiwgWyZdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyLCBDQ2FsbEhlbHBlcnMmLCBib29s
KSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGZhc3RQYXRoSUNOYW1lID0gaWMuZmFzdFBhdGhJQ05h
bWUoKTsKKyAgICAgICAgZ2VuZXJhdGVJbmxpbmVJZlBvc3NpYmxlT3V0T2ZMaW5lSWZOb3Qoc3Rh
dGUsIHZtLCBjb2RlQmxvY2ssIGZhc3RQYXRoSklULCBzdGFydE9mSUMsIHNpemVPZklDLCBmYXN0
UGF0aElDTmFtZSwgWyZdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyLCBDQ2FsbEhlbHBlcnMmLCBi
b29sKSB7CiAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoZG9uZSwgQ29kZUxvY2F0aW9uTGFi
ZWwoc3RhcnRPZklDICsgc2l6ZU9mSUMpKTsKICAgICAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+
c2lkZUNvZGVMaW5rQnVmZmVyLT5saW5rKGljLm1fc2xvd1BhdGhEb25lW2ldLCBDb2RlTG9jYXRp
b25MYWJlbChzdGFydE9mSUMgKyBzaXplT2ZJQykpOwogICAgICAgICAgICAgCkBAIC02NjQsNyAr
NTM3LDcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAg
ICAgICAgICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BS
KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlID09IHJlc3VsdCkKICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4aXQucmVnaXN0ZXJzVG9QcmVzZXJ2ZUZvckNhbGxUaGF0TWlnaHRUaHJv
dy5zZXQoYmFzZSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChleGl0RGVzY3JpcHRvci5t
X2V4Y2VwdGlvblR5cGUgPT0gRXhjZXB0aW9uVHlwZTo6U3ViR2VuZXJhdG9yKSB7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChleGl0RGVzY3JpcHRvci5tX2V4Y2VwdGlvblR5cGUgPT0gRXhj
ZXB0aW9uVHlwZTo6QmluYXJ5T3BHZW5lcmF0b3IpIHsKICAgICAgICAgICAgICAgICAgICAgR1BS
UmVnIHJlc3VsdCA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7CiAgICAgICAgICAg
ICAgICAgICAgIEdQUlJlZyBsZWZ0ID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsK
ICAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHJpZ2h0ID0gcmVjb3JkLmxvY2F0aW9uc1syXS5k
aXJlY3RHUFIoKTsKQEAgLTcyNSw3ICs1OTgsNyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJh
c2VkT25TdGFja01hcHMoCiAgICAgaWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkKICAgICAg
ICAgfHwgIXN0YXRlLnB1dEJ5SWRzLmlzRW1wdHkoKQogICAgICAgICB8fCAhc3RhdGUuY2hlY2tJ
bnMuaXNFbXB0eSgpCi0gICAgICAgIHx8ICFzdGF0ZS5hcml0aFN1YnMuaXNFbXB0eSgpCisgICAg
ICAgIHx8ICFzdGF0ZS5iaW5hcnlPcHMuaXNFbXB0eSgpCiAgICAgICAgIHx8ICFzdGF0ZS5sYXp5
U2xvd1BhdGhzLmlzRW1wdHkoKSkgewogICAgICAgICBDQ2FsbEhlbHBlcnMgc2xvd1BhdGhKSVQo
JnZtLCBjb2RlQmxvY2spOwogICAgICAgICAKQEAgLTg3MywxNyArNzQ2LDE3IEBAIHN0YXRpYyB2
b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSBzdGF0ZS5hcml0aFN1YnMuc2l6ZSgpOyBpLS07
KSB7Ci0gICAgICAgICAgICBBcml0aFN1YkRlc2NyaXB0b3ImIGFyaXRoU3ViID0gc3RhdGUuYXJp
dGhTdWJzW2ldOworICAgICAgICBmb3IgKHNpemVfdCBpID0gc3RhdGUuYmluYXJ5T3BzLnNpemUo
KTsgaS0tOykgeworICAgICAgICAgICAgQmluYXJ5T3BEZXNjcmlwdG9yJiBiaW5hcnlPcCA9IHN0
YXRlLmJpbmFyeU9wc1tpXTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2VD
b21waWxhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGluZyBB
cml0aFN1YiBzdGFja21hcCAjIiwgYXJpdGhTdWIuc3RhY2ttYXBJRCgpLCAiXG4iKTsKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGluZyAiLCBiaW5hcnlPcC5uYW1lKCksICIgc3RhY2tt
YXAgIyIsIGJpbmFyeU9wLnN0YWNrbWFwSUQoKSwgIlxuIik7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGF1dG8gaXRlciA9IHJlY29yZE1hcC5maW5kKGFyaXRoU3ViLnN0YWNrbWFwSUQoKSk7
CisgICAgICAgICAgICBhdXRvIGl0ZXIgPSByZWNvcmRNYXAuZmluZChiaW5hcnlPcC5zdGFja21h
cElEKCkpOwogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOyAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAg
IAotICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYXJpdGhTdWIuY29kZU9yaWdp
bigpOworICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYmluYXJ5T3AuY29kZU9y
aWdpbigpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZXItPnZhbHVl
LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmQmIHJlY29y
ZCA9IGl0ZXItPnZhbHVlW2ldLnJlY29yZDsKICAgICAgICAgICAgICAgICBSZWdpc3RlclNldCB1
c2VkUmVnaXN0ZXJzID0gdXNlZFJlZ2lzdGVyc0ZvcihyZWNvcmQpOwpAQCAtODkyLDE5ICs3NjUs
MTkgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAg
ICAgICAgIEdQUlJlZyBsZWZ0ID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsKICAg
ICAgICAgICAgICAgICBHUFJSZWcgcmlnaHQgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQ
UigpOwogCi0gICAgICAgICAgICAgICAgYXJpdGhTdWIubV9zbG93UGF0aFN0YXJ0cy5hcHBlbmQo
c2xvd1BhdGhKSVQubGFiZWwoKSk7CisgICAgICAgICAgICAgICAgYmluYXJ5T3AubV9zbG93UGF0
aFN0YXJ0cy5hcHBlbmQoc2xvd1BhdGhKSVQubGFiZWwoKSk7CiAgICAgICAgICAgICAgICAgYm9v
bCBhZGRlZFVuaXF1ZUV4Y2VwdGlvbkp1bXAgPSBhZGROZXdFeGNlcHRpb25KdW1wSWZOZWNlc3Nh
cnkoaXRlci0+dmFsdWVbaV0uaW5kZXgpOwogICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0g
bGVmdCB8fCByZXN1bHQgPT0gcmlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBz
aXR1YXRpb24gaGFzIGEgcmVhbGx5IGludGVyZXN0aW5nIHJlZ2lzdGVyIHByZXNlcnZhdGlvbiBz
dG9yeS4KICAgICAgICAgICAgICAgICAgICAgLy8gU2VlIGNvbW1lbnQgYWJvdmUgZm9yIEdldEJ5
SWRzLgotICAgICAgICAgICAgICAgICAgICBpZiAoT1NSRXhpdCogZXhpdCA9IGV4Y2VwdGlvbkhh
bmRsZXJNYW5hZ2VyLnN1Yk9TUkV4aXQoaXRlci0+dmFsdWVbaV0uaW5kZXgpKQorICAgICAgICAg
ICAgICAgICAgICBpZiAoT1NSRXhpdCogZXhpdCA9IGV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmJp
bmFyeU9wT1NSRXhpdChpdGVyLT52YWx1ZVtpXS5pbmRleCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBleGl0LT5zcGlsbFJlZ2lzdGVyc1RvU3BpbGxTbG90KHNsb3dQYXRoSklULCBqc0NhbGxU
aGF0TWlnaHRUaHJvd1NwaWxsT2Zmc2V0KTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwg
Y29kZU9yaWdpbiwgYWRkZWRVbmlxdWVFeGNlcHRpb25KdW1wID8gJmV4Y2VwdGlvbkp1bXBzVG9M
aW5rLmxhc3QoKS5maXJzdCA6ICZleGNlcHRpb25UYXJnZXQsCi0gICAgICAgICAgICAgICAgICAg
IG9wZXJhdGlvblZhbHVlU3ViLCByZXN1bHQsIGxlZnQsIHJpZ2h0KS5jYWxsKCk7CisgICAgICAg
ICAgICAgICAgICAgIGJpbmFyeU9wLnNsb3dQYXRoRnVuY3Rpb24oKSwgcmVzdWx0LCBsZWZ0LCBy
aWdodCkuY2FsbCgpOwogCi0gICAgICAgICAgICAgICAgYXJpdGhTdWIubV9zbG93UGF0aERvbmUu
YXBwZW5kKHNsb3dQYXRoSklULmp1bXAoKSk7CisgICAgICAgICAgICAgICAgYmluYXJ5T3AubV9z
bG93UGF0aERvbmUuYXBwZW5kKHNsb3dQYXRoSklULmp1bXAoKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIApAQCAtOTkyLDkgKzg2NSw5IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFz
ZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgICAgICBzdGF0ZSwgY29kZUJsb2NrLCBnZW5lcmF0
ZWRGdW5jdGlvbiwgcmVjb3JkTWFwLCBzdGF0ZS5jaGVja0luc1tpXSwKICAgICAgICAgICAgICAg
ICBzaXplT2ZJbigpKTsgCiAgICAgICAgIH0KLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3Rh
dGUuYXJpdGhTdWJzLnNpemUoKTsgaS0tOykgewotICAgICAgICAgICAgQXJpdGhTdWJEZXNjcmlw
dG9yJiBhcml0aFN1YiA9IHN0YXRlLmFyaXRoU3Vic1tpXTsKLSAgICAgICAgICAgIGdlbmVyYXRl
QXJpdGhTdWJJQ0Zhc3RQYXRoKHN0YXRlLCBjb2RlQmxvY2ssIGdlbmVyYXRlZEZ1bmN0aW9uLCBy
ZWNvcmRNYXAsIGFyaXRoU3ViKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuYmlu
YXJ5T3BzLnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgQmluYXJ5T3BEZXNjcmlwdG9yJiBi
aW5hcnlPcCA9IHN0YXRlLmJpbmFyeU9wc1tpXTsKKyAgICAgICAgICAgIGdlbmVyYXRlQmluYXJ5
T3BJQ0Zhc3RQYXRoKHN0YXRlLCBjb2RlQmxvY2ssIGdlbmVyYXRlZEZ1bmN0aW9uLCByZWNvcmRN
YXAsIGJpbmFyeU9wKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0
ZS5sYXp5U2xvd1BhdGhzLnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgTGF6eVNsb3dQYXRo
RGVzY3JpcHRvciYgbGF6eVNsb3dQYXRoID0gc3RhdGUubGF6eVNsb3dQYXRoc1tpXTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGVCaW5h
cnlPcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRlRMQ29tcGlsZUJpbmFyeU9wLmgiCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2lu
Y2x1ZGUgIkRGR05vZGVUeXBlLmgiCisjaW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
LmgiCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgor
I2luY2x1ZGUgIkpJVFN1YkdlbmVyYXRvci5oIgorI2luY2x1ZGUgIlNjcmF0Y2hSZWdpc3RlckFs
bG9jYXRvci5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3VzaW5nIG5h
bWVzcGFjZSBERkc7CisKK2NsYXNzIEJpbmFyeVNuaXBwZXRSZWdpc3RlckNvbnRleHQgeworICAg
IC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2xhc3MgaXMgdG8gc2h1ZmZsZSByZWdpc3RlcnMgdG8g
Z2V0IHRoZW0gaW50byB0aGUgc3RhdGUKKyAgICAvLyB0aGF0IGJhc2VsaW5lIGNvZGUgZXhwZWN0
cyBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIGJhc2VsaW5lIHNuaXBwZXQgZ2VuZXJhdG9ycyBpLmUu
CisgICAgLy8gICAgMS4gRW5zdXJlIHRoYXQgdGhlIGlucHV0cyBhbmQgb3V0cHV0IGFyZSBub3Qg
aW4gcmVzZXJ2ZWQgcmVnaXN0ZXJzICh3aGljaAorICAgIC8vICAgICAgIGluY2x1ZGUgdGhlIHRh
ZyByZWdpc3RlcnMpLiBUaGUgc25pcHBldCB3aWxsIHVzZSB0aGVzZSByZXNlcnZlZCByZWdpc3Rl
cnMuCisgICAgLy8gICAgICAgSGVuY2UsIHdlIG5lZWQgdG8gcHV0IHRoZSBpbnB1dHMgYW5kIG91
dHB1dCBpbiBvdGhlciBzY3JhdGNoIHJlZ2lzdGVycy4KKyAgICAvLyAgICAyLiBUYWcgcmVnaXN0
ZXJzIGFyZSBsb2FkZWQgd2l0aCB0aGUgZXhwZWN0ZWQgdmFsdWVzLgorICAgIC8vCisgICAgLy8g
V2hlbiB0aGUgc25pcHBldCBpcyBkb25lOgorICAgIC8vICAgIDEuIElmIHdlIGhhZCByZS1hc3Np
Z25lZCB0aGUgcmVzdWx0IHJlZ2lzdGVyIHRvIGEgc2NyYXRjaCwgd2UgbmVlZCB0byBjb3B5IHRo
ZQorICAgIC8vICAgICAgIHJlc3VsdCBiYWNrIGZyb20gdGhlIHNjcmF0Y2guCisgICAgLy8gICAg
Mi4gUmVzdG9yZSB0aGUgaW5wdXQgYW5kIHRhZyByZWdpc3RlcnMgdG8gdGhlIHZhbHVlcyB0aGF0
IExMVk0gcHV0IHRoZXJlIG9yaWdpbmFsbHkuCisgICAgLy8gICAgICAgVGhhdCBpcyB1bmxlc3Mg
d2hlbiBvbmUgb2YgdGhlbSBpcyBhbHNvIHRoZSByZXN1bHQgcmVnaXN0ZXIuIEluIHRoYXQgY2Fz
ZSwgd2UKKyAgICAvLyAgICAgICBkb24ndCB3YW50IHRvIHRyYXNoIHRoZSByZXN1bHQsIGFuZCBo
ZW5jZSwgc2hvdWxkIG5vdCByZXN0b3JlIGludG8gaXQuCisKK3B1YmxpYzoKKyAgICBCaW5hcnlT
bmlwcGV0UmVnaXN0ZXJDb250ZXh0KFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2NhdG9y
LCBHUFJSZWcmIHJlc3VsdCwgR1BSUmVnJiBsZWZ0LCBHUFJSZWcmIHJpZ2h0KQorICAgICAgICA6
IG1fYWxsb2NhdG9yKGFsbG9jYXRvcikKKyAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCisgICAg
ICAgICwgbV9sZWZ0KGxlZnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBt
X29yaWdSZXN1bHQocmVzdWx0KQorICAgICAgICAsIG1fb3JpZ0xlZnQobGVmdCkKKyAgICAgICAg
LCBtX29yaWdSaWdodChyaWdodCkKKyAgICB7CisgICAgICAgIG1fYWxsb2NhdG9yLmxvY2sobV9y
ZXN1bHQpOworICAgICAgICBtX2FsbG9jYXRvci5sb2NrKG1fbGVmdCk7CisgICAgICAgIG1fYWxs
b2NhdG9yLmxvY2sobV9yaWdodCk7CisKKyAgICAgICAgUmVnaXN0ZXJTZXQgaW5wdXRBbmRPdXRw
dXRSZWdpc3RlcnMgPSBSZWdpc3RlclNldChtX2xlZnQsIG1fcmlnaHQsIG1fcmVzdWx0KTsKKyAg
ICAgICAgUmVnaXN0ZXJTZXQgcmVzZXJ2ZWRSZWdpc3RlcnM7CisgICAgICAgIGZvciAoR1BSUmVn
IHJlZyA6IEdQUkluZm86OnJlc2VydmVkUmVnaXN0ZXJzKCkpCisgICAgICAgICAgICByZXNlcnZl
ZFJlZ2lzdGVycy5zZXQocmVnKTsKKworICAgICAgICBpZiAocmVzZXJ2ZWRSZWdpc3RlcnMuZ2V0
KG1fbGVmdCkpCisgICAgICAgICAgICBtX2xlZnQgPSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNjcmF0
Y2hHUFIoKTsKKyAgICAgICAgaWYgKHJlc2VydmVkUmVnaXN0ZXJzLmdldChtX3JpZ2h0KSkgewor
ICAgICAgICAgICAgaWYgKG1fb3JpZ1JpZ2h0ID09IG1fb3JpZ0xlZnQpCisgICAgICAgICAgICAg
ICAgbV9yaWdodCA9IG1fbGVmdDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBt
X3JpZ2h0ID0gbV9hbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHJlc2VydmVkUmVnaXN0ZXJzLmdldChtX3Jlc3VsdCkpIHsKKyAgICAgICAgICAg
IGlmIChtX29yaWdSZXN1bHQgPT0gbV9vcmlnTGVmdCkKKyAgICAgICAgICAgICAgICBtX3Jlc3Vs
dCA9IG1fbGVmdDsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1fb3JpZ1Jlc3VsdCA9PSBtX29yaWdS
aWdodCkKKyAgICAgICAgICAgICAgICBtX3Jlc3VsdCA9IG1fcmlnaHQ7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbV9yZXN1bHQgPSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNjcmF0
Y2hHUFIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaW5wdXRBbmRPdXRwdXRSZWdpc3Rl
cnMuZ2V0KEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpCisgICAgICAgICAgICBtX3NhdmVkVGFn
TWFza1JlZ2lzdGVyID0gbV9hbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CisgICAgICAg
IGlmICghaW5wdXRBbmRPdXRwdXRSZWdpc3RlcnMuZ2V0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlcikpCisgICAgICAgICAgICBtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyID0gbV9h
bGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CisgICAgfQorCisgICAgdm9pZCBpbml0aWFs
aXplUmVnaXN0ZXJzKENDYWxsSGVscGVycyYgaml0KQorICAgIHsKKyAgICAgICAgaWYgKG1fbGVm
dCAhPSBtX29yaWdMZWZ0KQorICAgICAgICAgICAgaml0Lm1vdmUobV9vcmlnTGVmdCwgbV9sZWZ0
KTsKKyAgICAgICAgaWYgKG1fcmlnaHQgIT0gbV9vcmlnUmlnaHQgJiYgbV9vcmlnUmlnaHQgIT0g
bV9vcmlnTGVmdCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1fb3JpZ1JpZ2h0LCBtX3JpZ2h0KTsK
KyAgICAgICAgCisgICAgICAgIGlmIChtX3NhdmVkVGFnTWFza1JlZ2lzdGVyICE9IEludmFsaWRH
UFJSZWcpCisgICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIsIG1f
c2F2ZWRUYWdNYXNrUmVnaXN0ZXIpOworICAgICAgICBpZiAobV9zYXZlZFRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6
dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKwor
ICAgICAgICBqaXQuZW1pdE1hdGVyaWFsaXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKKyAgICB9CisK
KyAgICB2b2lkIHJlc3RvcmVSZWdpc3RlcnMoQ0NhbGxIZWxwZXJzJiBqaXQpCisgICAgeworICAg
ICAgICBpZiAobV9vcmlnUmVzdWx0ICE9IG1fcmVzdWx0KQorICAgICAgICAgICAgaml0Lm1vdmUo
bV9yZXN1bHQsIG1fb3JpZ1Jlc3VsdCk7CisgICAgICAgIGlmIChtX29yaWdMZWZ0ICE9IG1fbGVm
dCAmJiBtX29yaWdMZWZ0ICE9IG1fb3JpZ1Jlc3VsdCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1f
bGVmdCwgbV9vcmlnTGVmdCk7CisgICAgICAgIGlmIChtX29yaWdSaWdodCAhPSBtX3JpZ2h0ICYm
IG1fb3JpZ1JpZ2h0ICE9IG1fb3JpZ1Jlc3VsdCAmJiBtX29yaWdSaWdodCAhPSBtX29yaWdMZWZ0
KQorICAgICAgICAgICAgaml0Lm1vdmUobV9yaWdodCwgbV9vcmlnUmlnaHQpOworCisgICAgICAg
IC8vIFdlIGFyZSBndWFyYW50ZWVkIHRoYXQgdGhlIHRhZyByZWdpc3RlcnMgYXJlIG5vdCB0aGUg
c2FtZSBhcyB0aGUgb3JpZ2luYWwgaW5wdXQKKyAgICAgICAgLy8gb3Igb3V0cHV0IHJlZ2lzdGVy
cy4gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBub3QgaGF2ZSBhbGxvY2F0ZWQgYSBzY3JhdGNoIGZvciB0
aGVtLgorICAgICAgICAvLyBIZW5jZSwgd2UgZG9uJ3QgbmVlZCB0byBuZWVkIHRvIGNoZWNrIGZv
ciBvdmVybGFwIGxpa2Ugd2UgZG8gZm9yIHRoZSBpbnB1dCByZWdpc3RlcnMuCisgICAgICAgIGlm
IChtX3NhdmVkVGFnTWFza1JlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpIHsKKyAgICAgICAgICAg
IEFTU0VSVChHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIgIT0gbV9vcmlnTGVmdCk7CisgICAgICAg
ICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyICE9IG1fb3JpZ1JpZ2h0KTsKKyAg
ICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIgIT0gbV9vcmlnUmVzdWx0
KTsKKyAgICAgICAgICAgIGppdC5tb3ZlKG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIsIEdQUkluZm86
OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fc2F2ZWRUYWdUeXBl
TnVtYmVyUmVnaXN0ZXIgIT0gSW52YWxpZEdQUlJlZykgeworICAgICAgICAgICAgQVNTRVJUKEdQ
UkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBtX29yaWdMZWZ0KTsKKyAgICAgICAgICAg
IEFTU0VSVChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmlnUmlnaHQpOwor
ICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBtX29y
aWdSZXN1bHQpOworICAgICAgICAgICAgaml0Lm1vdmUobV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdp
c3RlciwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgfQorICAgIH0K
KworcHJpdmF0ZToKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIG1fYWxsb2NhdG9yOwor
CisgICAgR1BSUmVnJiBtX3Jlc3VsdDsKKyAgICBHUFJSZWcmIG1fbGVmdDsKKyAgICBHUFJSZWcm
IG1fcmlnaHQ7CisKKyAgICBHUFJSZWcgbV9vcmlnUmVzdWx0OworICAgIEdQUlJlZyBtX29yaWdM
ZWZ0OworICAgIEdQUlJlZyBtX29yaWdSaWdodDsKKworICAgIEdQUlJlZyBtX3NhdmVkVGFnTWFz
a1JlZ2lzdGVyIHsgSW52YWxpZEdQUlJlZyB9OworICAgIEdQUlJlZyBtX3NhdmVkVGFnVHlwZU51
bWJlclJlZ2lzdGVyIHsgSW52YWxpZEdQUlJlZyB9OworfTsKKwordm9pZCBnZW5lcmF0ZUFyaXRo
U3ViRmFzdFBhdGgoQmluYXJ5T3BEZXNjcmlwdG9yJiBpYywgQ0NhbGxIZWxwZXJzJiBqaXQsCisg
ICAgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGxlZnQsIEdQUlJlZyByaWdodCwgUmVnaXN0ZXJTZXQg
dXNlZFJlZ2lzdGVycywKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAmIGRvbmUsIENDYWxsSGVscGVy
czo6SnVtcCYgc2xvd1BhdGhTdGFydCkKK3sKKyAgICBBU1NFUlQoaWMubm9kZVR5cGUoKSA9PSBB
cml0aFN1Yik7CisgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcih1c2VkUmVn
aXN0ZXJzKTsKKyAgICAKKyAgICBCaW5hcnlTbmlwcGV0UmVnaXN0ZXJDb250ZXh0IGNvbnRleHQo
YWxsb2NhdG9yLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAgICAKKyAgICBHUFJSZWcgc2NyYXRj
aEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAgICBGUFJSZWcgbGVmdEZQ
UiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsKKyAgICBGUFJSZWcgcmlnaHRGUFIg
PSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIg
PSBJbnZhbGlkRlBSUmVnOworICAgIAorICAgIEpJVFN1YkdlbmVyYXRvciBnZW4oSlNWYWx1ZVJl
Z3MocmVzdWx0KSwgSlNWYWx1ZVJlZ3MobGVmdCksIEpTVmFsdWVSZWdzKHJpZ2h0KSwKKyAgICAg
ICAgaWMubGVmdFR5cGUoKSwgaWMucmlnaHRUeXBlKCksIGxlZnRGUFIsIHJpZ2h0RlBSLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAgICAKKyAgICBhdXRvIG51bWJlck9mQnl0ZXNVc2VkVG9Q
cmVzZXJ2ZVJldXNlZFJlZ2lzdGVycyA9CisgICAgYWxsb2NhdG9yLnByZXNlcnZlUmV1c2VkUmVn
aXN0ZXJzQnlQdXNoaW5nKGppdCwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNr
U3BhY2U6Ok5vRXh0cmFTcGFjZSk7CisgICAgCisgICAgY29udGV4dC5pbml0aWFsaXplUmVnaXN0
ZXJzKGppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAKKyAgICBBU1NF
UlQoZ2VuLmRpZEVtaXRGYXN0UGF0aCgpKTsKKyAgICBnZW4uZW5kSnVtcExpc3QoKS5saW5rKCZq
aXQpOworICAgIGNvbnRleHQucmVzdG9yZVJlZ2lzdGVycyhqaXQpOworICAgIGFsbG9jYXRvci5y
ZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5nKGppdCwgbnVtYmVyT2ZCeXRlc1VzZWRUb1By
ZXNlcnZlUmV1c2VkUmVnaXN0ZXJzLAorICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6
OkV4dHJhU3RhY2tTcGFjZTo6U3BhY2VGb3JDQ2FsbCk7CisgICAgZG9uZSA9IGppdC5qdW1wKCk7
CisgICAgCisgICAgZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5saW5rKCZqaXQpOworICAgIGNvbnRl
eHQucmVzdG9yZVJlZ2lzdGVycyhqaXQpOworICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVn
aXN0ZXJzQnlQb3BwaW5nKGppdCwgbnVtYmVyT2ZCeXRlc1VzZWRUb1ByZXNlcnZlUmV1c2VkUmVn
aXN0ZXJzLAorICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OkV4dHJhU3RhY2tTcGFj
ZTo6U3BhY2VGb3JDQ2FsbCk7CisgICAgc2xvd1BhdGhTdGFydCA9IGppdC5qdW1wKCk7Cit9CisK
K3ZvaWQgZ2VuZXJhdGVWYWx1ZUFkZEZhc3RQYXRoKEJpbmFyeU9wRGVzY3JpcHRvciYgaWMsIEND
YWxsSGVscGVycyYgaml0LAorICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcg
cmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
JiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpCit7CisgICAgQVNTRVJU
KGljLm5vZGVUeXBlKCkgPT0gVmFsdWVBZGQpOworICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
ciBhbGxvY2F0b3IodXNlZFJlZ2lzdGVycyk7CisgICAgCisgICAgQmluYXJ5U25pcHBldFJlZ2lz
dGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAg
CisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7
CisgICAgRlBSUmVnIGxlZnRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7Cisg
ICAgRlBSUmVnIHJpZ2h0RlBSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEZQUigpOworICAg
IEZQUlJlZyBzY3JhdGNoRlBSID0gSW52YWxpZEZQUlJlZzsKKyAgICAKKyAgICBKSVRBZGRHZW5l
cmF0b3IgZ2VuKEpTVmFsdWVSZWdzKHJlc3VsdCksIEpTVmFsdWVSZWdzKGxlZnQpLCBKU1ZhbHVl
UmVncyhyaWdodCksCisgICAgICAgIGljLmxlZnRUeXBlKCksIGljLnJpZ2h0VHlwZSgpLCBpYy5s
ZWZ0SXNDb25zdEludDMyKCksIGljLnJpZ2h0SXNDb25zdEludDMyKCksCisgICAgICAgIGljLmxl
ZnRDb25zdEludDMyKCksIGljLnJpZ2h0Q29uc3RJbnQzMigpLCBsZWZ0RlBSLCByaWdodEZQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7CisgICAgCisgICAgYXV0byBudW1iZXJPZkJ5dGVzVXNl
ZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVJldXNl
ZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6RXh0cmFT
dGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworICAgIAorICAgIGNvbnRleHQuaW5pdGlhbGl6ZVJl
Z2lzdGVycyhqaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgCisgICAg
QVNTRVJUKGdlbi5kaWRFbWl0RmFzdFBhdGgoKSk7CisgICAgZ2VuLmVuZEp1bXBMaXN0KCkubGlu
aygmaml0KTsKKyAgICBjb250ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0
b3IucmVzdG9yZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2Vk
VG9QcmVzZXJ2ZVJldXNlZFJlZ2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2Nh
dG9yOjpFeHRyYVN0YWNrU3BhY2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIGRvbmUgPSBqaXQuanVt
cCgpOworICAgIAorICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBj
b250ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNl
ZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNl
ZFJlZ2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNr
U3BhY2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOwor
fQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJ
VCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5
T3AuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGls
ZUJpbmFyeU9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRlRMQ29tcGlsZUJpbmFy
eU9wX2gKKyNkZWZpbmUgRlRMQ29tcGlsZUJpbmFyeU9wX2gKKworI2lmIEVOQUJMRShGVExfSklU
KQorCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisKK25hbWVzcGFjZSBKU0MgeworbmFtZXNw
YWNlIEZUTCB7CisKK2NsYXNzIEJpbmFyeU9wRGVzY3JpcHRvcjsKKwordm9pZCBnZW5lcmF0ZUFy
aXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZXNjcmlwdG9yJiwgQ0NhbGxIZWxwZXJzJiwKKyAgICBH
UFJSZWcgcmVzdWx0LCBHUFJSZWcgbGVmdCwgR1BSUmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2Vk
UmVnaXN0ZXJzLAorICAgIENDYWxsSGVscGVyczo6SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpK
dW1wJiBzbG93UGF0aFN0YXJ0KTsKKwordm9pZCBnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgoQmlu
YXJ5T3BEZXNjcmlwdG9yJiwgQ0NhbGxIZWxwZXJzJiwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgbGVmdCwgR1BSUmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIEND
YWxsSGVscGVyczo6SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0
KTsKKworfSAvLyBuYW1lc3BhY2UgRlRMCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMQ29tcGlsZUJpbmFyeU9wX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhjZXB0aW9uSGFuZGxlck1hbmFnZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhjZXB0aW9uSGFu
ZGxlck1hbmFnZXIuY3BwCShyZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTMsMTUgKzkzLDE1IEBAIE9TUkV4aXQqIEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyOjpnZXRCeUkK
ICAgICByZXR1cm4gZXhpdDsgCiB9CiAKLU9TUkV4aXQqIEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2Vy
OjpzdWJPU1JFeGl0KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpCitPU1JFeGl0KiBFeGNl
cHRpb25IYW5kbGVyTWFuYWdlcjo6YmluYXJ5T3BPU1JFeGl0KHVpbnQzMl90IHN0YWNrbWFwUmVj
b3JkSW5kZXgpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV9tYXAuZmluZChzdGFja21hcFJl
Y29yZEluZGV4KTsKICAgICBpZiAoZmluZFJlc3VsdCA9PSBtX21hcC5lbmQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgc2l6ZV90IG9zckV4aXRJbmRleCA9IGZpbmRSZXN1bHQtPnZh
bHVlOwogICAgIE9TUkV4aXQqIGV4aXQgPSAmbV9zdGF0ZS5qaXRDb2RlLT5vc3JFeGl0W29zckV4
aXRJbmRleF07Ci0gICAgUkVMRUFTRV9BU1NFUlQoZXhpdC0+bV9kZXNjcmlwdG9yLm1fZXhjZXB0
aW9uVHlwZSA9PSBFeGNlcHRpb25UeXBlOjpTdWJHZW5lcmF0b3IpOwotICAgIHJldHVybiBleGl0
OyAKKyAgICBSRUxFQVNFX0FTU0VSVChleGl0LT5tX2Rlc2NyaXB0b3IubV9leGNlcHRpb25UeXBl
ID09IEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9wR2VuZXJhdG9yKTsKKyAgICByZXR1cm4gZXhpdDsK
IH0KIAogT1NSRXhpdCogRXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OmdldENhbGxPU1JFeGl0Q29t
bW9uKHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGNlcHRpb25IYW5kbGVyTWFuYWdlci5oCShyZXZp
c2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4Y2VwdGlvbkhh
bmRsZXJNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgog
ICAgIENvZGVMb2NhdGlvbkxhYmVsIGxhenlTbG93UGF0aEV4Y2VwdGlvblRhcmdldCh1aW50MzJf
dCBzdGFja21hcFJlY29yZEluZGV4KTsKIAogICAgIE9TUkV4aXQqIGdldEJ5SWRPU1JFeGl0KHVp
bnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpOwotICAgIE9TUkV4aXQqIHN1Yk9TUkV4aXQodWlu
dDMyX3Qgc3RhY2ttYXBSZWNvcmRJbmRleCk7CisgICAgT1NSRXhpdCogYmluYXJ5T3BPU1JFeGl0
KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpOwogICAgIE9TUkV4aXQqIGdldENhbGxPU1JF
eGl0KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgsIGNvbnN0IEpTQ2FsbCYpOwogICAgIE9T
UkV4aXQqIGdldENhbGxPU1JFeGl0KHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgsIGNvbnN0
IEpTVGFpbENhbGwmKTsKICAgICBPU1JFeGl0KiBnZXRDYWxsT1NSRXhpdCh1aW50MzJfdCBzdGFj
a21hcFJlY29yZEluZGV4LCBjb25zdCBKU0NhbGxWYXJhcmdzJik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJl
dmlzaW9uIDE5MjY4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2Fj
aGVEZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJERkdBYnN0
cmFjdFZhbHVlLmgiCiAjaW5jbHVkZSAiRlRMTGF6eVNsb3dQYXRoLmgiCiAjaW5jbHVkZSAiSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgpAQCAt
MTIzLDIzICsxMjQsNzIgQEAgcHVibGljOgogICAgIFZlY3RvcjxDaGVja0luR2VuZXJhdG9yPiBt
X2dlbmVyYXRvcnM7CiB9OwogCi1jbGFzcyBBcml0aFN1YkRlc2NyaXB0b3IgOiBwdWJsaWMgSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yIHsKK2NsYXNzIEJpbmFyeU9wRGVzY3JpcHRvciA6IHB1YmxpYyBJ
bmxpbmVDYWNoZURlc2NyaXB0b3IgewogcHVibGljOgotICAgIEFyaXRoU3ViRGVzY3JpcHRvcih1
bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIFJlc3VsdFR5cGUgbGVm
dFR5cGUsIFJlc3VsdFR5cGUgcmlnaHRUeXBlKQorICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
KCpTbG93UGF0aEZ1bmN0aW9uKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKKworICAgIHVuc2lnbmVkIG5vZGVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaXplOyB9CisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQorICAgIGNvbnN0IGNoYXIqIGZhc3RQYXRoSUNOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9mYXN0UGF0aElDTmFtZTsgfQorICAgIFNsb3dQYXRoRnVuY3Rpb24gc2xvd1BhdGhGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2xvd1BhdGhGdW5jdGlvbjsgfQorCisgICAgUmVzdWx0VHlw
ZSBsZWZ0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdFR5cGU7IH0KKyAgICBSZXN1bHRUeXBl
IHJpZ2h0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHRUeXBlOyB9CisgICAgYm9vbCBsZWZ0
SXNDb25zdEludDMyKCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0SXNDb25zdEludDMyOyB9OworICAg
IGJvb2wgcmlnaHRJc0NvbnN0SW50MzIoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0SXNDb25zdElu
dDMyOyB9OworICAgIGludDMyX3QgbGVmdENvbnN0SW50MzIoKSBjb25zdCB7IHJldHVybiBtX2xl
ZnRDb25zdEludDMyOyB9OworICAgIGludDMyX3QgcmlnaHRDb25zdEludDMyKCkgeyByZXR1cm4g
bV9yaWdodENvbnN0SW50MzI7IH07CisKKyAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXI6OkxhYmVs
PiBtX3Nsb3dQYXRoU3RhcnRzOworCitwcm90ZWN0ZWQ6CisgICAgQmluYXJ5T3BEZXNjcmlwdG9y
KHVuc2lnbmVkIG5vZGVUeXBlLCB1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgICAgIHNpemVfdCBzaXplLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy
KiBmYXN0UGF0aElDTmFtZSwKKyAgICAgICAgU2xvd1BhdGhGdW5jdGlvbiBzbG93UGF0aEZ1bmN0
aW9uLCBSZXN1bHRUeXBlIGxlZnRUeXBlLCBSZXN1bHRUeXBlIHJpZ2h0VHlwZSwKKyAgICAgICAg
Ym9vbCBsZWZ0SXNDb25zdEludDMyID0gZmFsc2UsIGJvb2wgcmlnaHRJc0NvbnN0SW50MzIgPSBm
YWxzZSwgaW50MzJfdCBsZWZ0Q29uc3RJbnQzMiA9IDAsIGludDMyX3QgcmlnaHRDb25zdEludDMy
ID0gMCkKICAgICAgICAgOiBJbmxpbmVDYWNoZURlc2NyaXB0b3Ioc3RhY2ttYXBJRCwgY29kZU9y
aWdpbiwgbnVsbHB0cikKKyAgICAgICAgLCBtX25vZGVUeXBlKG5vZGVUeXBlKQorICAgICAgICAs
IG1fc2l6ZShzaXplKQorICAgICAgICAsIG1fbmFtZShuYW1lKQorICAgICAgICAsIG1fZmFzdFBh
dGhJQ05hbWUoZmFzdFBhdGhJQ05hbWUpCisgICAgICAgICwgbV9zbG93UGF0aEZ1bmN0aW9uKHNs
b3dQYXRoRnVuY3Rpb24pCiAgICAgICAgICwgbV9sZWZ0VHlwZShsZWZ0VHlwZSkKICAgICAgICAg
LCBtX3JpZ2h0VHlwZShyaWdodFR5cGUpCisgICAgICAgICwgbV9sZWZ0SXNDb25zdEludDMyKGxl
ZnRJc0NvbnN0SW50MzIpCisgICAgICAgICwgbV9yaWdodElzQ29uc3RJbnQzMihyaWdodElzQ29u
c3RJbnQzMikKKyAgICAgICAgLCBtX2xlZnRDb25zdEludDMyKGxlZnRDb25zdEludDMyKQorICAg
ICAgICAsIG1fcmlnaHRDb25zdEludDMyKHJpZ2h0Q29uc3RJbnQzMikKICAgICB7CiAgICAgfQog
Ci0gICAgUmVzdWx0VHlwZSBsZWZ0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdFR5cGU7IH0K
LSAgICBSZXN1bHRUeXBlIHJpZ2h0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHRUeXBlOyB9
Ci0gICAgCi0gICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4gbV9zbG93UGF0aFN0YXJ0
czsKKyAgICB1bnNpZ25lZCBtX25vZGVUeXBlOworICAgIHNpemVfdCBtX3NpemU7CisgICAgY29u
c3QgY2hhciogbV9uYW1lOworICAgIGNvbnN0IGNoYXIqIG1fZmFzdFBhdGhJQ05hbWU7CisgICAg
U2xvd1BhdGhGdW5jdGlvbiBtX3Nsb3dQYXRoRnVuY3Rpb247CiAKLXByaXZhdGU6CiAgICAgUmVz
dWx0VHlwZSBtX2xlZnRUeXBlOwogICAgIFJlc3VsdFR5cGUgbV9yaWdodFR5cGU7CisgICAgYm9v
bCBtX2xlZnRJc0NvbnN0SW50MzI7CisgICAgYm9vbCBtX3JpZ2h0SXNDb25zdEludDMyOworICAg
IGludDMyX3QgbV9sZWZ0Q29uc3RJbnQzMjsKKyAgICBpbnQzMl90IG1fcmlnaHRDb25zdEludDMy
OworfTsKKworY2xhc3MgQXJpdGhTdWJEZXNjcmlwdG9yIDogcHVibGljIEJpbmFyeU9wRGVzY3Jp
cHRvciB7CitwdWJsaWM6CisgICAgQXJpdGhTdWJEZXNjcmlwdG9yKHVuc2lnbmVkIHN0YWNrbWFw
SUQsIENvZGVPcmlnaW4sIFJlc3VsdFR5cGUgbGVmdFR5cGUsIFJlc3VsdFR5cGUgcmlnaHRUeXBl
KTsKKworICAgIHN0YXRpYyBzaXplX3QgaWNTaXplKCk7Cit9OworCitjbGFzcyBWYWx1ZUFkZERl
c2NyaXB0b3IgOiBwdWJsaWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1
ZUFkZERlc2NyaXB0b3IodW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgUmVzdWx0VHlw
ZSBsZWZ0VHlwZSwgUmVzdWx0VHlwZSByaWdodFR5cGUsCisgICAgICAgIGJvb2wgbGVmdElzQ29u
c3RJbnQzMiwgYm9vbCByaWdodElzQ29uc3RJbnQzMiwgaW50MzJfdCBsZWZ0Q29uc3RJbnQzMiwg
aW50MzJfdCByaWdodENvbnN0SW50MzIpOworCisgICAgc3RhdGljIHNpemVfdCBpY1NpemUoKTsK
IH07CiAKIC8vIFlvdSBjYW4gY3JlYXRlIGEgbGF6eSBzbG93IHBhdGggY2FsbCBpbiBsb3dlckRG
R1RvTExWTSBieSBkb2luZzoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3JJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lc19oCisjZGVmaW5lIEZUTElubGluZUNhY2hlRGVzY3JpcHRvcklubGluZXNf
aAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJERkdOb2RlVHlwZS5oIgorI2lu
Y2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJGVExJbmxpbmVDYWNoZURlc2NyaXB0
b3IuaCIKKyNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgeworCitBcml0aFN1YkRlc2NyaXB0b3I6OkFyaXRoU3ViRGVzY3JpcHRv
cih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIFJlc3VsdFR5cGUg
bGVmdFR5cGUsIFJlc3VsdFR5cGUgcmlnaHRUeXBlKQorICAgIDogQmluYXJ5T3BEZXNjcmlwdG9y
KERGRzo6QXJpdGhTdWIsIHN0YWNrbWFwSUQsIGNvZGVPcmlnaW4sIGljU2l6ZSgpLAorICAgICAg
ICAiQXJpdGhTdWIiLCAiQXJpdGhTdWIgSUMgZmFzdCBwYXRoIiwgREZHOjpvcGVyYXRpb25WYWx1
ZVN1YiwgbGVmdFR5cGUsIHJpZ2h0VHlwZSkKK3sKK30KKworc2l6ZV90IEFyaXRoU3ViRGVzY3Jp
cHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mQXJpdGhTdWIoKTsKK30KKworVmFs
dWVBZGREZXNjcmlwdG9yOjpWYWx1ZUFkZERlc2NyaXB0b3IodW5zaWduZWQgc3RhY2ttYXBJRCwg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBSZXN1bHRUeXBlIGxlZnRUeXBlLCBSZXN1bHRUeXBlIHJp
Z2h0VHlwZSwKKyAgICBib29sIGxlZnRJc0NvbnN0SW50MzIsIGJvb2wgcmlnaHRJc0NvbnN0SW50
MzIsIGludDMyX3QgbGVmdENvbnN0SW50MzIsIGludDMyX3QgcmlnaHRDb25zdEludDMyKQorICAg
IDogQmluYXJ5T3BEZXNjcmlwdG9yKERGRzo6VmFsdWVBZGQsIHN0YWNrbWFwSUQsIGNvZGVPcmln
aW4sIGljU2l6ZSgpLAorICAgICAgICAiVmFsdWVBZGQiLCAiVmFsdWVBZGQgSUMgZmFzdCBwYXRo
IiwgREZHOjpvcGVyYXRpb25WYWx1ZUFkZCwKKyAgICAgICAgbGVmdFR5cGUsIHJpZ2h0VHlwZSwg
bGVmdElzQ29uc3RJbnQzMiwgcmlnaHRJc0NvbnN0SW50MzIsIGxlZnRDb25zdEludDMyLCByaWdo
dENvbnN0SW50MzIpCit7Cit9CisKK3NpemVfdCBWYWx1ZUFkZERlc2NyaXB0b3I6OmljU2l6ZSgp
Cit7CisgICAgcmV0dXJuIHNpemVPZlZhbHVlQWRkKCk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lc19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCShyZXZpc2lvbiAxOTI2ODUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0NSw2ICsxNDUsMjMgQEAgc2l6ZV90IHNpemVPZkFyaXRoU3ViKCkKICNlbmRp
ZgogfQogCitzaXplX3Qgc2l6ZU9mVmFsdWVBZGQoKQoreworI2lmIENQVShBUk02NCkKKyNpZmRl
ZiBOREVCVUcKKyAgICByZXR1cm4gMjE2OyAvLyBBUk02NCByZWxlYXNlLgorI2Vsc2UKKyAgICBy
ZXR1cm4gMzEyOyAvLyBBUk02NCBkZWJ1Zy4KKyNlbmRpZgorI2Vsc2UgLy8gQ1BVKFg4Nl82NCkK
KyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMjIzOyAvLyBYODZfNjQgcmVsZWFzZS4KKyNlbHNl
CisgICAgcmV0dXJuIDI5ODsgLy8gWDg2XzY0IGRlYnVnLgorI2VuZGlmCisjZW5kaWYKK30KKwog
I2lmIEVOQUJMRShNQVNNX1BST0JFKQogc2l6ZV90IHNpemVPZlByb2JlKCkKIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkocmV2aXNp
b24gMTkyNjg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNp
emUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBzaXplX3Qgc2l6ZU9mQ29uc3Ry
dWN0VmFyYXJncygpOwogc2l6ZV90IHNpemVPZkNvbnN0cnVjdEZvcndhcmRWYXJhcmdzKCk7CiBz
aXplX3Qgc2l6ZU9mSW4oKTsKIHNpemVfdCBzaXplT2ZBcml0aFN1YigpOworc2l6ZV90IHNpemVP
ZlZhbHVlQWRkKCk7CiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUo
KTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5MjY4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDc4LDE1ICsx
NDc4LDU5IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAg
IHsKLSAgICAgICAgSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbjsKLSAgICAgICAgaWYgKCEo
cHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSAmIFNwZWNGdWxsTnVtYmVyKQotICAgICAgICAg
ICAgJiYgIShwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpICYgU3BlY0Z1bGxOdW1iZXIpKQot
ICAgICAgICAgICAgb3BlcmF0aW9uID0gb3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXI7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG9wZXJhdGlvbiA9IG9wZXJhdGlvblZhbHVlQWRkOwotICAg
ICAgICBzZXRKU1ZhbHVlKHZtQ2FsbCgKLSAgICAgICAgICAgIG1fb3V0LmludDY0LCBtX291dC5v
cGVyYXRpb24ob3BlcmF0aW9uKSwgbV9jYWxsRnJhbWUsCi0gICAgICAgICAgICBsb3dKU1ZhbHVl
KG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAg
ICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CisKKyAgICAgICAgaWYg
KE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQorICAgICAgICAgICAgZGF0YUxvZygiICAg
IEVtaXR0aW5nIFZhbHVlQWRkIHBhdGNocG9pbnQgd2l0aCBzdGFja21hcCAjIiwgc3RhY2ttYXBJ
RCwgIlxuIik7CisKKyNpZiBGVExfVVNFU19CMworICAgICAgICBDUkFTSCgpOworI2Vsc2UKKyAg
ICAgICAgYXV0byBsZWZ0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMSgpOworICAgICAgICBhdXRvIHJp
Z2h0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMigpOworCisgICAgICAgIGlmICghKHByb3ZlblR5cGUo
bGVmdENoaWxkKSAmIFNwZWNGdWxsTnVtYmVyKSB8fCAhKHByb3ZlblR5cGUocmlnaHRDaGlsZCkg
JiBTcGVjRnVsbE51bWJlcikpIHsKKyAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0
LmludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIpLCBtX2Nh
bGxGcmFtZSwKKyAgICAgICAgICAgICAgICBsb3dKU1ZhbHVlKGxlZnRDaGlsZCksIGxvd0pTVmFs
dWUocmlnaHRDaGlsZCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShsZWZ0Q2hpbGQpOworICAgICAgICBMVmFsdWUg
cmlnaHQgPSBsb3dKU1ZhbHVlKHJpZ2h0Q2hpbGQpOworCisgICAgICAgIGJvb2wgbGVmdElzQ29u
c3RJbnQzMiA9IGxlZnRDaGlsZC0+aXNJbnQzMkNvbnN0YW50KCk7CisgICAgICAgIGJvb2wgcmln
aHRJc0NvbnN0SW50MzIgPSByaWdodENoaWxkLT5pc0ludDMyQ29uc3RhbnQoKTsKKworICAgICAg
ICAvLyBUaGUgREZHIGRvZXMgbm90IGFsd2F5cyBmb2xkIHRoZSBzdW0gb2YgMiBjb25zdGFudCBp
bnQgb3BlcmFuZHMgdG9nZXRoZXIuCisgICAgICAgIC8vIEp1c3QgdHJlYXQgb25lIG9wZXJhbmQg
YXMgYSB2YXJpYWJsZSBmb3Igbm93IGJlY2F1c2UgdGhlIHNuaXBwZXQgZG9lcyBub3Qgc3VwcG9y
dCBib3RoCisgICAgICAgIC8vIG9wZXJhbmRzIGJlaW5nIGNvbnN0YW50LgorICAgICAgICBpZiAo
bGVmdElzQ29uc3RJbnQzMiAmJiByaWdodElzQ29uc3RJbnQzMikKKyAgICAgICAgICAgIHJpZ2h0
SXNDb25zdEludDMyID0gZmFsc2U7CisKKyAgICAgICAgaW50MzJfdCBsZWZ0Q29uc3RJbnQzMiA9
IGxlZnRJc0NvbnN0SW50MzIgPyBsZWZ0Q2hpbGQtPmFzSW50MzIoKSA6IDA7CisgICAgICAgIGlu
dDMyX3QgcmlnaHRDb25zdEludDMyID0gcmlnaHRJc0NvbnN0SW50MzIgPyByaWdodENoaWxkLT5h
c0ludDMyKCkgOiAwOworCisgICAgICAgIC8vIEFyZ3VtZW50czogaWQsIGJ5dGVzLCB0YXJnZXQs
IG51bUFyZ3MsIGFyZ3MuLi4KKyAgICAgICAgU3RhY2ttYXBBcmd1bWVudExpc3QgYXJndW1lbnRz
OworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50NjQoc3RhY2ttYXBJRCkp
OworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoVmFsdWVBZGREZXNj
cmlwdG9yOjppY1NpemUoKSkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNvbnN0TnVsbCht
X291dC5yZWY4KSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMigy
KSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobGVmdCk7CisgICAgICAgIGFyZ3VtZW50cy5h
cHBlbmQocmlnaHQpOworCisgICAgICAgIGFwcGVuZE9TUkV4aXRBcmd1bWVudHNGb3JQYXRjaHBv
aW50SWZXaWxsQ2F0Y2hFeGNlcHRpb24oYXJndW1lbnRzLAorICAgICAgICAgICAgRXhjZXB0aW9u
VHlwZTo6QmluYXJ5T3BHZW5lcmF0b3IsIDMpOyAvLyBsZWZ0LCByaWdodCwgYW5kIHJlc3VsdCBz
aG93IHVwIGluIHRoZSBzdGFja21hcCBsb2NhdGlvbnMuCisKKyAgICAgICAgTFZhbHVlIGNhbGwg
PSBtX291dC5jYWxsKG1fb3V0LmludDY0LCBtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMo
KSwgYXJndW1lbnRzKTsKKyAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihj
YWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOworCisgICAgICAgIG1fZnRsU3RhdGUuYmluYXJ5T3Bz
LmFwcGVuZChWYWx1ZUFkZERlc2NyaXB0b3Ioc3RhY2ttYXBJRCwgbV9ub2RlLT5vcmlnaW4uc2Vt
YW50aWMsCisgICAgICAgICAgICBhYnN0cmFjdFZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLnJlc3Vs
dFR5cGUoKSwgYWJzdHJhY3RWYWx1ZShtX25vZGUtPmNoaWxkMigpKS5yZXN1bHRUeXBlKCksCisg
ICAgICAgICAgICBsZWZ0SXNDb25zdEludDMyLCByaWdodElzQ29uc3RJbnQzMiwgbGVmdENvbnN0
SW50MzIsIHJpZ2h0Q29uc3RJbnQzMikpOworCisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7Cisj
ZW5kaWYKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlU3RyQ2F0KCkKQEAgLTE2NDksMTgg
KzE2OTMsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIEFyZ3VtZW50czogaWQsIGJ5dGVz
LCB0YXJnZXQsIG51bUFyZ3MsIGFyZ3MuLi4KICAgICAgICAgICAgIFN0YWNrbWFwQXJndW1lbnRM
aXN0IGFyZ3VtZW50czsKICAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJ
bnQ2NChzdGFja21hcElEKSk7Ci0gICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNv
bnN0SW50MzIoc2l6ZU9mQXJpdGhTdWIoKSkpOworICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVu
ZChtX291dC5jb25zdEludDMyKEFyaXRoU3ViRGVzY3JpcHRvcjo6aWNTaXplKCkpKTsKICAgICAg
ICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY29uc3ROdWxsKG1fb3V0LnJlZjgpKTsKICAgICAgICAg
ICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMigyKSk7CiAgICAgICAgICAgICBh
cmd1bWVudHMuYXBwZW5kKGxlZnQpOwogICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChyaWdo
dCk7CiAKLSAgICAgICAgICAgIGFwcGVuZE9TUkV4aXRBcmd1bWVudHNGb3JQYXRjaHBvaW50SWZX
aWxsQ2F0Y2hFeGNlcHRpb24oYXJndW1lbnRzLCBFeGNlcHRpb25UeXBlOjpTdWJHZW5lcmF0b3Is
IDMpOyAvLyBsZWZ0LCByaWdodCwgYW5kIHJlc3VsdCBzaG93IHVwIGluIHRoZSBzdGFja21hcCBs
b2NhdGlvbnMuCisgICAgICAgICAgICBhcHBlbmRPU1JFeGl0QXJndW1lbnRzRm9yUGF0Y2hwb2lu
dElmV2lsbENhdGNoRXhjZXB0aW9uKGFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICBFeGNlcHRp
b25UeXBlOjpCaW5hcnlPcEdlbmVyYXRvciwgMyk7IC8vIGxlZnQsIHJpZ2h0LCBhbmQgcmVzdWx0
IHNob3cgdXAgaW4gdGhlIHN0YWNrbWFwIGxvY2F0aW9ucy4KIAogICAgICAgICAgICAgTFZhbHVl
IGNhbGwgPSBtX291dC5jYWxsKG1fb3V0LmludDY0LCBtX291dC5wYXRjaHBvaW50SW50NjRJbnRy
aW5zaWMoKSwgYXJndW1lbnRzKTsKICAgICAgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGluZ0Nv
bnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKIAotICAgICAgICAgICAgbV9mdGxT
dGF0ZS5hcml0aFN1YnMuYXBwZW5kKEFyaXRoU3ViRGVzY3JpcHRvcihzdGFja21hcElELCBtX25v
ZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgIG1fZnRsU3RhdGUuYmluYXJ5T3BzLmFw
cGVuZChBcml0aFN1YkRlc2NyaXB0b3Ioc3RhY2ttYXBJRCwgbV9ub2RlLT5vcmlnaW4uc2VtYW50
aWMsCiAgICAgICAgICAgICAgICAgYWJzdHJhY3RWYWx1ZShtX25vZGUtPmNoaWxkMSgpKS5yZXN1
bHRUeXBlKCksCiAgICAgICAgICAgICAgICAgYWJzdHJhY3RWYWx1ZShtX25vZGUtPmNoaWxkMigp
KS5yZXN1bHRUeXBlKCkpKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFeGl0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXQuY3BwCShyZXZpc2lvbiAxOTI2ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgT1NS
RXhpdERlc2NyaXB0b3I6OndpbGxBcnJpdmVBdEV4aXQKICAgICBjYXNlIEV4Y2VwdGlvblR5cGU6
OkdldEJ5SWQ6CiAgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpQdXRCeUlkOgogICAgIGNhc2UgRXhj
ZXB0aW9uVHlwZTo6TGF6eVNsb3dQYXRoOgotICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6U3ViR2Vu
ZXJhdG9yOgorICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6QmluYXJ5T3BHZW5lcmF0b3I6CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5LDcgKzg5LDcgQEAgYm9vbCBPU1JFeGl0RGVzY3JpcHRvcjo6bWlnaHRBcnJpdmVBdE9TUgog
ICAgIHN3aXRjaCAobV9leGNlcHRpb25UeXBlKSB7CiAgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpH
ZXRCeUlkOgogICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6UHV0QnlJZDoKLSAgICBjYXNlIEV4Y2Vw
dGlvblR5cGU6OlN1YkdlbmVyYXRvcjoKKyAgICBjYXNlIEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9w
R2VuZXJhdG9yOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaAko
cmV2aXNpb24gMTkyNjg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw3ICsxNDMsNyBAQCBlbnVtIGNsYXNzIEV4Y2VwdGlv
blR5cGUgewogICAgIEdldEJ5SWQsCiAgICAgUHV0QnlJZCwKICAgICBMYXp5U2xvd1BhdGgsCi0g
ICAgU3ViR2VuZXJhdG9yCisgICAgQmluYXJ5T3BHZW5lcmF0b3IsCiB9OwogCiBzdHJ1Y3QgT1NS
RXhpdERlc2NyaXB0b3IgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAko
cmV2aXNpb24gMTkyNjg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICBTZWdtZW50ZWRW
ZWN0b3I8R2V0QnlJZERlc2NyaXB0b3I+IGdldEJ5SWRzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxQ
dXRCeUlkRGVzY3JpcHRvcj4gcHV0QnlJZHM7CiAgICAgU2VnbWVudGVkVmVjdG9yPENoZWNrSW5E
ZXNjcmlwdG9yPiBjaGVja0luczsKLSAgICBTZWdtZW50ZWRWZWN0b3I8QXJpdGhTdWJEZXNjcmlw
dG9yPiBhcml0aFN1YnM7CisgICAgU2VnbWVudGVkVmVjdG9yPEJpbmFyeU9wRGVzY3JpcHRvcj4g
YmluYXJ5T3BzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxMYXp5U2xvd1BhdGhEZXNjcmlwdG9yPiBs
YXp5U2xvd1BhdGhzOwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogICAgIFNlZ21lbnRlZFZlY3Rv
cjxQcm9iZURlc2NyaXB0b3I+IHByb2JlczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>266189</attachid>
            <date>2015-11-26 09:40:55 -0800</date>
            <delta_ts>2015-12-01 12:58:02 -0800</delta_ts>
            <desc>x86_64 benchmark result.</desc>
            <filename>bench-result-x86_64.txt</filename>
            <type>text/plain</type>
            <size>66204</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">R2VuZXJhdGluZyBiZW5jaG1hcmsgcmVwb3J0IGF0IC9Wb2x1bWVzL0RhdGEvYmVuY2gvZnRsLWFk
ZC9iYXNlNjRfbmV3NjRfU3VuU3BpZGVyTG9uZ1NwaWRlclY4U3BpZGVyT2N0YW5lS3Jha2VuSlNS
ZWdyZXNzQXNtQmVuY2hDb21wcmVzc2lvbkJlbmNoX0Zsb3Jpb25fMjAxNTExMjZfMDkyOF9yZXBv
cnQudHh0CkFuZCByYXcgZGF0YSBhdCAvVm9sdW1lcy9EYXRhL2JlbmNoL2Z0bC1hZGQvYmFzZTY0
X25ldzY0X1N1blNwaWRlckxvbmdTcGlkZXJWOFNwaWRlck9jdGFuZUtyYWtlbkpTUmVncmVzc0Fz
bUJlbmNoQ29tcHJlc3Npb25CZW5jaF9GbG9yaW9uXzIwMTUxMTI2XzA5MjguanNvbgoKQmVuY2ht
YXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0YW5lLCBL
cmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9uIEZsb3Jp
b24gKE1hY0Jvb2tQcm8xMSwxKS4KClZNcyB0ZXN0ZWQ6CiJiYXNlNjQiIGF0IC9Wb2x1bWVzL0Rh
dGEvYmVuY2gvZnRsLWFkZC9iYXNlNjQvanNjCiJuZXc2NCIgYXQgL1ZvbHVtZXMvRGF0YS9iZW5j
aC9mdGwtYWRkL25ldzY0L2pzYwoKQ29sbGVjdGVkIDQgc2FtcGxlcyBwZXIgYmVuY2htYXJrL1ZN
LCB3aXRoIDQgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1pdHRlZCBhIGNhbGwgdG8g
Z2MoKSBiZXR3ZWVuIHNhbXBsZSBtZWFzdXJlbWVudHMuClVzZWQgMSBiZW5jaG1hcmsgaXRlcmF0
aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZvciB3YXJtLXVwLiBVc2VkIHRoZSBqc2Mtc3BlY2lmaWMg
cHJlY2lzZVRpbWUoKSBmdW5jdGlvbiB0byBnZXQgbWljcm9zZWNvbmQtbGV2ZWwKdGltaW5nLiBS
ZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1dGlvbiB0aW1lcyB3aXRoIDk1JSBjb25maWRlbmNlIGlu
dGVydmFscyBpbiBtaWxsaXNlY29uZHMuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTY0ICAgICAgICAgICAgICAgICAgICBuZXc2
NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApTdW5TcGlkZXI6CiAgIDNk
LWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzQ0Mist
MC4yMzY1ICAgICA/ICAgICAgNi43NjI0Ky0wLjQ0OTYgICAgICAgID8gbWlnaHQgYmUgMS4wNjU5
eCBzbG93ZXIKICAgM2QtbW9ycGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNy4zNzY3Ky0wLjg3NjcgICAgID8gICAgIDEwLjI4MzMrLTkuMTk1MyAgICAgICAgPyBt
aWdodCBiZSAxLjM5NDB4IHNsb3dlcgogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4Ljc1NjkrLTIuMzE4MSAgICAgICAgICAgIDguMzA2OCstMy42
NzQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0MnggZmFzdGVyCiAgIGFjY2Vzcy1iaW5hcnktdHJl
ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjY5NSstMS4wMzMyICAgICAgICAg
ICAgMy4xNjc5Ky0wLjM4ODEgICAgICAgICAgbWlnaHQgYmUgMS4xNTgzeCBmYXN0ZXIKICAgYWNj
ZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy43MTgzKy0w
LjI2MzAgICAgID8gICAgICA3Ljc2OTIrLTAuMTg3NSAgICAgICAgPwogICBhY2Nlc3MtbmJvZHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjM1NzgrLTAuMjA2MSAgICAg
PyAgICAgIDcuNDY5NSstMTIuOTIwOSAgICAgICA/IG1pZ2h0IGJlIDIuMjI0NXggc2xvd2VyCiAg
IGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjg2
MSstMC4zNDA4ICAgICA/ICAgICAgNC4zMzMzKy0wLjM3NzEgICAgICAgID8gbWlnaHQgYmUgMS4w
MTEweCBzbG93ZXIKICAgYml0b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi41MDg5Ky0yLjEzOTQgICAgICAgICAgICAxLjgwOTMrLTAuMTMxNiAgICAgICAg
ICBtaWdodCBiZSAxLjM4NjZ4IGZhc3RlcgogICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjQzNDArLTAuOTUyOCAgICAgPyAgICAgIDUuODI0Myst
Mi41NzM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMzEzNnggc2xvd2VyCiAgIGJpdG9wcy1iaXR3aXNl
LWFuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTg3MistMC4wMzU3ICAgICA/
ICAgICAgMi42MzMwKy0wLjExODIgICAgICAgID8gbWlnaHQgYmUgMS4wMTc3eCBzbG93ZXIKICAg
Yml0b3BzLW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45Mzcz
Ky0wLjA3MTIgICAgID8gICAgICA0LjczMjkrLTIuNTc0MiAgICAgICAgPyBtaWdodCBiZSAxLjIw
MjF4IHNsb3dlcgogICBjb250cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjk0MjErLTAuNjMyNCAgICAgPyAgICAgIDQuMDE3OCstMS4yODc1ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE5Mnggc2xvd2VyCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuNzQxMistMS4xNjUwICAgICAgICAgICAgNS4yODU1Ky0w
LjM5NDAgICAgICAgICAgbWlnaHQgYmUgMS4wODYyeCBmYXN0ZXIKICAgY3J5cHRvLW1kNSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS40NzcwKy00LjMwMDUgICAgID8g
ICAgICA1LjU2NzIrLTYuNzA3OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNjV4IHNsb3dlcgogICBj
cnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjEyMDUr
LTAuNDE2MCAgICAgPyAgICAgIDQuMzE2MCstMC45MzAxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ3
NHggc2xvd2VyCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTAuNzA4NystMS42NzEzICAgICAgICAgICAxMC4xNjU0Ky0wLjkwMTIgICAgICAgICAg
bWlnaHQgYmUgMS4wNTM0eCBmYXN0ZXIKICAgZGF0ZS1mb3JtYXQteHBhcmIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNi4wOTg4Ky0wLjQxNzggICAgID8gICAgICA2LjIxNTYrLTAu
NDI5OCAgICAgICAgPyBtaWdodCBiZSAxLjAxOTJ4IHNsb3dlcgogICBtYXRoLWNvcmRpYyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAyMjErLTAuMDkyMSAgICAgICAg
ICAgIDMuOTkyNSstMC42NDIzICAgICAgICAKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNy4xMTg4Ky0yLjI2ODEgICAgICAgICAgICA2LjU4Njcr
LTEuMDc3NCAgICAgICAgICBtaWdodCBiZSAxLjA4MDh4IGZhc3RlcgogICBtYXRoLXNwZWN0cmFs
LW5vcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk1MjcrLTAuMTYwMCAgICAg
PyAgICAgIDIuOTUzOSstMC4zODU5ICAgICAgICA/CiAgIHJlZ2V4cC1kbmEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTAxMistMC4xOTg5ICAgICA/ICAgICAgOC41
NzQ4Ky0xLjY4MDYgICAgICAgID8gbWlnaHQgYmUgMS4wODUzeCBzbG93ZXIKICAgc3RyaW5nLWJh
c2U2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS45MjM3Ky0xLjQ1NTMg
ICAgICAgICAgICA1LjQ0NTcrLTAuMDg5NyAgICAgICAgICBtaWdodCBiZSAxLjA4Nzh4IGZhc3Rl
cgogICBzdHJpbmctZmFzdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjQ0MTcrLTEuMzEwNSAgICAgPyAgICAgMTAuMDkxNystMi4zNzg0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDY4OHggc2xvd2VyCiAgIHN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTEuOTcyOCstMS4wODQxICAgICA/ICAgICAxMi4yMjc4Ky0yLjk4NDAgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjEzeCBzbG93ZXIKICAgc3RyaW5nLXVucGFjay1jb2RlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyNC43NTEwKy0yLjEyMDQgICAgICAgICAgIDI0LjMy
NzMrLTEuODIwMiAgICAgICAgICBtaWdodCBiZSAxLjAxNzR4IGZhc3RlcgogICBzdHJpbmctdmFs
aWRhdGUtaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjczNzMrLTAuOTUwMSAg
ICAgICAgICAgIDYuMjI0NCstMC43OTc0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDgyNHggZmFzdGVy
CgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjYxMTArLTAuMjAyNiAgICAgPyAgICAgIDYuODg3OSstMC43OTE1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQxOXggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmFzZTY0ICAgICAgICAgICAgICAgICAgICBuZXc2NCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApMb25nU3BpZGVyOgogICAzZC1jdWJlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTI0LjcwMjUrLTguNTM3MiAg
ICAgICAgIDExMjEuNTc4MCstMjUuMzcwNSAgICAgICAKICAgM2QtbW9ycGggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjE2OS44NjE5Ky0zNi41MTE3ICAgICAgICAyMTMw
LjY4OTErLTE4LjA2NjIgICAgICAgICBtaWdodCBiZSAxLjAxODR4IGZhc3RlcgogICAzZC1yYXl0
cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODQ3LjczMjErLTIzLjk1
NTEgICAgICAgICA4NDcuMDE0NCstMTUuMjU2MCAgICAgICAKICAgYWNjZXNzLWJpbmFyeS10cmVl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIwNi44OTA2Ky0yNi42NDExICAgICAgICAx
MjA0LjI3ODArLTYuNTI3NCAgICAgICAgCiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0MDUuMTA4OSstMjEuMzkwOSAgICAgICAgIDQwMi43ODgzKy0x
NS4yNjgyICAgICAgIAogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNzE5LjE5MTUrLTEzLjU5NzUgICAgPyAgICA3MjEuMTMzNystMy4zMjcxICAgICAg
ICA/CiAgIGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
OTYuODk3MistMTM1LjQyNDQgICAgICAgIDY2MC44MzgzKy0yLjY0OTcgICAgICAgICAgbWlnaHQg
YmUgMS4wNTQ2eCBmYXN0ZXIKICAgYml0b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAg
ICAgICAgICAgICAgICA0Ni4zNzYwKy0wLjg0NjcgICAgIF4gICAgIDQzLjIxNTUrLTAuOTgyNyAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDczMXggZmFzdGVyCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjguNTc1MSstNjMuMzgyMyAgICAgICAgIDEy
NC4xOTA0Ky0yMi44OTYyICAgICAgICAgbWlnaHQgYmUgMS4wMzUzeCBmYXN0ZXIKICAgYml0b3Bz
LW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY2OS4wNjA1Ky0yMS41
NzAyICAgICAgICAgNjYxLjM2NjUrLTEzLjQ0ODMgICAgICAgICBtaWdodCBiZSAxLjAxMTZ4IGZh
c3RlcgogICBjb250cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NzMwLjExNzkrLTMzMy4wMzA5ICAgICAgICA2MjkuMDM1NystMTMuMDQ1NSAgICAgICAgIG1pZ2h0
IGJlIDEuMTYwN3ggZmFzdGVyCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3NjQuNzc5NystMjMuNzE5MiAgICAgICAgIDc1Ni41MzkxKy0yMC40NDkx
ICAgICAgICAgbWlnaHQgYmUgMS4wMTA5eCBmYXN0ZXIKICAgY3J5cHRvLW1kNSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzMy42MDY4Ky0yMC41OTg3ICAgID8gICAgNjU0
LjU5NzIrLTY2LjM2ODAgICAgICAgPyBtaWdodCBiZSAxLjAzMzF4IHNsb3dlcgogICBjcnlwdG8t
c2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODk5LjIzODArLTMyLjgw
MjcgICAgICAgICA4OTYuMzQyMistMjYuOTY2MCAgICAgICAKICAgZGF0ZS1mb3JtYXQtdG9mdGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY4Mi45Nzk0Ky04Ljk5MDUgICAgID8gICAg
Njk5LjYwNjArLTU0LjE4OTEgICAgICAgPyBtaWdodCBiZSAxLjAyNDN4IHNsb3dlcgogICBkYXRl
LWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTUxLjk3NjcrLTI2
OS43NjM4ICAgICAgICA4NzkuODIxMCstNS42Mzk5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDgyMHgg
ZmFzdGVyCiAgIGhhc2gtbWFwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMDYuMTg0OCstMy41OTY2ICAgICAgICAgIDIwNS4xNzI4Ky03LjI5NjQgICAgICAgIAogICBt
YXRoLWNvcmRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjg3LjcwNzgr
LTIyLjU1ODcgICAgPyAgICA2ODguNDY2NystMTMuNTU3MyAgICAgICA/CiAgIG1hdGgtcGFydGlh
bC1zdW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NjQuODE0OCstMi43MDY0ICAg
ICA/ICAgIDY3Mi42NTgzKy0xMS40NTE4ICAgICAgID8gbWlnaHQgYmUgMS4wMTE4eCBzbG93ZXIK
ICAgbWF0aC1zcGVjdHJhbC1ub3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc2OS40
NjM5Ky0xNS42MTQ0ICAgID8gICAgNzg1LjIxMzUrLTIxLjM5MDYgICAgICAgPyBtaWdodCBiZSAx
LjAyMDV4IHNsb3dlcgogICBzdHJpbmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNTEzLjY0NzArLTcuNjcyNiAgICAgICAgICA1MDMuMzYzNSstNi4wMTY4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIwNHggZmFzdGVyCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1MTAuNjA2MSstMTIuMjAxNyAgICAgICAgIDUxMC41ODk3
Ky01Ljc1ODUgICAgICAgIAogICBzdHJpbmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjQ0LjA5ODErLTUuODUyNiAgICAgICAgICAyNDMuMjM4NSstNS40NzI1ICAg
ICAgICAKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1NjIuNzMxMystMjMuMTg0NyAgICAgICAgIDU1NS4xMDE3Ky02LjE5NzEgICAgICAgICAgbWln
aHQgYmUgMS4wMTM3eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBiYXNlNjQgICAgICAgICAgICAgICAgICAgIG5ldzY0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClY4U3BpZGVyOgogICBjcnlwdG8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg5LjcwNjQrLTQuMTA0
NyAgICAgICAgICAgODguMzg3MSstMi40MDYzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0OXggZmFz
dGVyCiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MjQuNTE0MistMTEuMDM0MSAgICA/ICAgIDEzMC4wNjAwKy01LjY3ODUgICAgICAgID8gbWlnaHQg
YmUgMS4wNDQ1eCBzbG93ZXIKICAgZWFybGV5LWJveWVyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2Ny42Nzk0Ky0yLjE4NDcgICAgICAgICAgIDY2LjYyMzcrLTEuOTMzNiAg
ICAgICAgICBtaWdodCBiZSAxLjAxNTh4IGZhc3RlcgogICByYXl0cmFjZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLjgzNjcrLTEuNTQxOSAgICAgPyAgICAgNTEu
MzMxNSstMC45ODY4ICAgICAgICA/CiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgODQuMTIzMCstNy40NjkzICAgICAgICAgICA4My45MDA5Ky0yLjk5
NTkgICAgICAgIAogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDkzLjI2ODMrLTIxLjY4MDEgICAgICAgICAgODcuOTYxMSstNC43NTc2ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDYwM3ggZmFzdGVyCiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNTguNzIwOCstMy41MDU4ICAgICAgICAgICA1OC40MDczKy0y
Ljk1ODQgICAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3Ny45OTAzKy0zLjU2NDggICAgICAgICAgIDc3LjU4NDcrLTAuNzM4MSAgICAg
ICAgICBtaWdodCBiZSAxLjAwNTJ4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U2NCAgICAgICAgICAgICAgICAgICAg
bmV3NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKT2N0YW5lOgogICBl
bmNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjU4MzQr
LTAuMDAzMDUgICAgPyAgICAgMC4yNjE3MSstMC4wMDkwNCAgICAgICA/IG1pZ2h0IGJlIDEuMDEz
MXggc2xvd2VyCiAgIGRlY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC41Njg4MistMC4xMTg3NSAgICA/ICAgICA0LjU4NzU4Ky0wLjA5MTc2ICAgICAgID8K
ICAgZGVsdGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjE4
NjYyKy0wLjAwMTk2ICAgID8gICAgIDAuMTg3NjcrLTAuMDA0MDYgICAgICAgPwogICBlYXJsZXkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDEwMTErLTAuMDA4
NDAgICAgPyAgICAgMC40MTQ2MSstMC4wMTQ0OCAgICAgICA/IG1pZ2h0IGJlIDEuMDExMHggc2xv
d2VyCiAgIGJveWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni4yOTA1NystMC4xMjU3MCAgICA/ICAgICA2LjMzNjU5Ky0wLjEyMjk3ICAgICAgID8KICAgbmF2
aWVyLXN0b2tlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA2LjgyMTk2Ky0w
LjEwOTI4ICAgID8gICAgIDYuOTMwODgrLTAuMTM3NjggICAgICAgPyBtaWdodCBiZSAxLjAxNjB4
IHNsb3dlcgogICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAg
ICAgIDEuMjIwMzArLTAuMDE2NDEgICAgICAgICAgMS4yMTkzNistMC4wMjMwMSAgICAgICAKICAg
cmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjEyNTQx
Ky0wLjAwMzI1ICAgICAgICAgIDAuMTI0ODUrLTAuMDAyNDYgICAgICAgCiAgIHNwbGF5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC42MjA3MSstMC4wNDQzNSAg
ICA/ICAgICAwLjYzMjc4Ky0wLjA0MjAzICAgICAgID8gbWlnaHQgYmUgMS4wMTk1eCBzbG93ZXIK
ICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDMzLjE0
MTM0Ky0wLjMzOTAxICAgID8gICAgMzMuODUyNTMrLTEuMjM1MDUgICAgICAgPyBtaWdodCBiZSAx
LjAyMTV4IHNsb3dlcgogICBwZGZqcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHgyICAgICAgNTEuMDczODcrLTEuMTg1MDggICAgPyAgICA1MS4zOTk4MCstMS43MDY5NCAgICAg
ICA/CiAgIG1hbmRyZWVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA3
My45Mzg1OSstMS44Mjc4OSAgICA/ICAgIDc0LjA0NzM5Ky0xLjI5OTQ1ICAgICAgID8KICAgZ2Jl
bXUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDU0Ljk0NTY0Ky0x
LjcyMzgyICAgICAgICAgNTMuNzgyMDYrLTAuOTQwMzIgICAgICAgICBtaWdodCBiZSAxLjAyMTZ4
IGZhc3RlcgogICBjbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuNzc5MzIrLTAuMDEyMTUgICAgICAgICAgMC43NzY5NistMC4wMDY0OCAgICAgICAKICAg
anF1ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjMwODY5
Ky0wLjEyMTgzICAgID8gICAgMTAuNzQ1NTUrLTEuNTM2MjIgICAgICAgPyBtaWdodCBiZSAxLjA0
MjR4IHNsb3dlcgogICBib3gyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgy
ICAgICAgMTQuOTkzMzkrLTAuNDk0OTAgICAgPyAgICAxNS4xMDg4OSstMC4xOTE3NyAgICAgICA/
CiAgIHpsaWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDUzMS42
MjkwOSstMzUuOTkxMjggICAgICAgNTIzLjMzNzE4Ky0zNC45Njc2MCAgICAgICAgbWlnaHQgYmUg
MS4wMTU4eCBmYXN0ZXIKICAgdHlwZXNjcmlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4MiAgICAxMDMwLjQxOTI1Ky0yOS45NjQzMiAgICAgIDEwMjEuNzU4NDgrLTIzLjI1MDE2ICAg
ICAgCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDcuOTc3MjQrLTAuMDc5MTEgICAgPyAgICAgOC4wMTAyMSstMC4wNDgzMCAgICAgICA/IG1pZ2h0
IGJlIDEuMDA0MXggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmFzZTY0ICAgICAgICAgICAgICAgICAgICBuZXc2NCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApLcmFrZW46CiAgIGFpLWFzdGFyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTU5LjIzOCstOC4wOTkgICAg
ICAgICAgICAxNTguOTc1Ky0yLjczNSAgICAgICAgIAogICBhdWRpby1iZWF0LWRldGVjdGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2My4zNTArLTAuOTg2ICAgICAgPyAgICAgIDcw
LjgwMistMjIuOTkxICAgICAgICA/IG1pZ2h0IGJlIDEuMTE3Nnggc2xvd2VyCiAgIGF1ZGlvLWRm
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQ3Ljc4MCstMi45Mjgg
ICAgICA/ICAgICAxNTEuMjg2Ky02LjQ3NyAgICAgICAgID8gbWlnaHQgYmUgMS4wMjM3eCBzbG93
ZXIKICAgYXVkaW8tZmZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDUuOTI2Ky0xLjU5NiAgICAgID8gICAgICA0Ni4zMTIrLTIuMjk5ICAgICAgICAgPwogICBhdWRp
by1vc2NpbGxhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MC4yNDkrLTYu
NzIyICAgICAgPyAgICAgIDgxLjYwMCstMy4xNzEgICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2OHgg
c2xvd2VyCiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDgyLjcyNystMS41MzQgICAgICAgICAgICAgODEuMjM0Ky0xLjYyMSAgICAgICAgICAgbWln
aHQgYmUgMS4wMTg0eCBmYXN0ZXIKICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNzguNDY1Ky0zLjk3MCAgICAgID8gICAgICA4MS45MjcrLTIuNTk0
ICAgICAgICAgPyBtaWdodCBiZSAxLjA0NDF4IHNsb3dlcgogICBpbWFnaW5nLWdhdXNzaWFuLWJs
dXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNS45NjUrLTUuMDQwICAgICAgICAgICAg
MTEyLjk4OSstMy45MzEgICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2M3ggZmFzdGVyCiAgIGpzb24t
cGFyc2UtZmluYW5jaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5LjU2MCstMS43
MjUgICAgICA/ICAgICAgNTMuMTgzKy00LjM5MCAgICAgICAgID8gbWlnaHQgYmUgMS4wNzMxeCBz
bG93ZXIKICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzEuNjAwKy0yLjEzMiAgICAgICAgICAgICAzMC4xODYrLTIuNTE2ICAgICAgICAgICBtaWdo
dCBiZSAxLjA0Njl4IGZhc3RlcgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1NS45NjQrLTIuMzIxICAgICAgICAgICAgIDU1LjY3NystNC41MDQg
ICAgICAgICAKICAgc3RhbmZvcmQtY3J5cHRvLWNjbSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTAuMDM2Ky0yLjI3MiAgICAgICAgICAgICA0OS4zNjgrLTUuOTA4ICAgICAgICAgICBt
aWdodCBiZSAxLjAxMzV4IGZhc3RlcgogICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEzNC44ODQrLTYuNjA0ICAgICAgICAgICAgMTI4LjU3MCstMy45
NDEgICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ5MXggZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0by1z
aGEyNTYtaXRlcmF0aXZlICAgICAgICAgICAgICAgICAgIDUxLjkzMistNC40MDEgICAgICAgICAg
ICAgNTEuNzM3Ky01LjIyNyAgICAgICAgIAoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgODEuOTc3Ky0wLjU5MCAgICAgID8gICAgICA4Mi40MTgr
LTIuNTQxICAgICAgICAgPyBtaWdodCBiZSAxLjAwNTR4IHNsb3dlcgoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U2NCAgICAgICAg
ICAgICAgICAgICAgbmV3NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
SlNSZWdyZXNzOgogICBhYmMtZm9yd2FyZC1sb29wLWVxdWFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDM4LjU5NzArLTMuNjU1OCAgICAgPyAgICAgMzkuMzkyNSstNC41NTU0ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDIwNnggc2xvd2VyCiAgIGFiYy1wb3N0Zml4LWJhY2t3YXJkLWxvb3AgICAg
ICAgICAgICAgICAgICAgICAgICAgNDYuNDIyMSstMjYuNDk0MSAgICAgICAgICAzOS43NjI4Ky0w
Ljk2MTAgICAgICAgICAgbWlnaHQgYmUgMS4xNjc1eCBmYXN0ZXIKICAgYWJjLXNpbXBsZS1iYWNr
d2FyZC1sb29wICAgICAgICAgICAgICAgICAgICAgICAgICA1MS4xNjQwKy0zNi45MTU1ICAgICAg
ICAgIDQwLjQwNjYrLTEuMjExMSAgICAgICAgICBtaWdodCBiZSAxLjI2NjJ4IGZhc3RlcgogICBh
YmMtc2ltcGxlLWZvcndhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjM0Mzgr
LTIyLjY2MDkgICAgICAgICAgMzcuMjQwNCstMi4wNzExICAgICAgICAgIG1pZ2h0IGJlIDEuMjQ0
NHggZmFzdGVyCiAgIGFiYy1za2lwcHktbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjguNjE4MystMS4yOTg3ICAgICA/ICAgICAyOC45Mjc3Ky00LjA0NzAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTA4eCBzbG93ZXIKICAgYWJzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4yNDAyKy0wLjA1MjQgICAgID8gICAgICAzLjMyODcrLTAu
MjEzNyAgICAgICAgPyBtaWdodCBiZSAxLjAyNzN4IHNsb3dlcgogICBhZGFwdC10by1kb3VibGUt
ZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjk1NzMrLTIuMjYzNCAgICAgPyAg
ICAgMjEuMDMyMistMS4xMzA4ICAgICAgICA/CiAgIGFsaWFzZWQtYXJndW1lbnRzLWdldGJ5dmFs
ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNTM5OSstMC4xMTE1ICAgICAgICAgICAgMS41MzQ0
Ky0wLjEwNjggICAgICAgIAogICBhbGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjEzNDcrLTAuMzI5MyAgICAgPyAgICAgIDMuMTM4OCstMC4yMTAzICAg
ICAgICA/CiAgIGFyZ3VtZW50cy1uYW1lZC1hbmQtcmVmbGVjdGl2ZSAgICAgICAgICAgICAgICAg
ICAgMTMuMzM5NystMi4zMTU3ICAgICAgICAgICAxMi45OTAwKy0wLjcwOTAgICAgICAgICAgbWln
aHQgYmUgMS4wMjY5eCBmYXN0ZXIKICAgYXJndW1lbnRzLW91dC1vZi1ib3VuZHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMC4zOTgzKy0wLjYyMDYgICAgID8gICAgIDExLjMwOTYrLTAuODcz
MCAgICAgICAgPyBtaWdodCBiZSAxLjA4NzZ4IHNsb3dlcgogICBhcmd1bWVudHMtc3RyaWN0LW1v
ZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjEwMTErLTAuOTg0OCAgICAgPyAgICAg
MTIuMTY1NSstMi4xMDU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDk1OXggc2xvd2VyCiAgIGFyZ3Vt
ZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMjQ1NCstMC43
MjMxICAgICAgICAgICAgOS45ODA5Ky0wLjM5MDYgICAgICAgICAgbWlnaHQgYmUgMS4wMjY1eCBm
YXN0ZXIKICAgYXJpdHktbWlzbWF0Y2gtaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMS4zMTAwKy0wLjAzMjcgICAgID8gICAgICAxLjUzOTArLTAuNzAzMSAgICAgICAgPyBtaWdo
dCBiZSAxLjE3NDh4IHNsb3dlcgogICBhcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJl
ICAgICAgICAgICAgICAgICA5LjMxMTUrLTAuNDI5MyAgICAgPyAgICAgMTIuMzQ1NSstOS42MDg1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMzI1OHggc2xvd2VyCiAgIGFycmF5LW5vbmFycmF5LXBvbHlt
b3JocGljLWFjY2VzcyAgICAgICAgICAgICAgICAgMzAuMTcwNSstMS42ODU3ICAgICA/ICAgICAz
MC45OTYyKy0xLjQ0MDEgICAgICAgID8gbWlnaHQgYmUgMS4wMjc0eCBzbG93ZXIKICAgYXJyYXkt
cHJvdG90eXBlLWV2ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwNy4wMjYzKy0yLjc4
MDIgICAgID8gICAgMTA3LjM4OTArLTEwLjA3MTEgICAgICAgPwogICBhcnJheS1wcm90b3R5cGUt
Zm9yRWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgMTExLjcxNTgrLTkuNDUyNyAgICAgICAg
ICAxMDMuNzE2MCstNS40NjI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc3MXggZmFzdGVyCiAgIGFy
cmF5LXByb3RvdHlwZS1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTIuMjYzMSst
Ni4yMjkxICAgICAgICAgIDExMS40MTAwKy00LjA5NTkgICAgICAgIAogICBhcnJheS1wcm90b3R5
cGUtcmVkdWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMzLjAwNTYrLTk3LjYyMTMgICAg
ICAgICAxMDEuNzUwOSstNi45MDEwICAgICAgICAgIG1pZ2h0IGJlIDEuMzA3MnggZmFzdGVyCiAg
IGFycmF5LXByb3RvdHlwZS1yZWR1Y2VSaWdodCAgICAgICAgICAgICAgICAgICAgICAxMDAuMDA1
MCstMi42NTQ4ICAgICA/ICAgIDEwMC4yMTg5Ky0yLjIxNDEgICAgICAgID8KICAgYXJyYXktcHJv
dG90eXBlLXNvbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwNi44Mjk0Ky03LjEzNTMg
ICAgICAgICAgMTA1LjgxNDQrLTYuNjMwNiAgICAgICAgCiAgIGFycmF5LXNwbGljZS1jb250aWd1
b3VzICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAuOTQxNystMS41MTE0ICAgICA/ICAgICAz
MS4zNDUwKy0zLjA2MTggICAgICAgID8gbWlnaHQgYmUgMS4wMTMweCBzbG93ZXIKICAgYXJyYXkt
d2l0aC1kb3VibGUtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43OTY3Ky0wLjEy
NTIgICAgICAgICAgICA0Ljc2NjgrLTAuMTA1MyAgICAgICAgCiAgIGFycmF5LXdpdGgtZG91Ymxl
LWluY3JlbWVudCAgICAgICAgICAgICAgICAgICAgICAgIDQuMzI0OCstMC4zMjYxICAgICAgICAg
ICAgNC4yNDg0Ky0wLjE0OTIgICAgICAgICAgbWlnaHQgYmUgMS4wMTgweCBmYXN0ZXIKICAgYXJy
YXktd2l0aC1kb3VibGUtbXVsLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgNS44OTM3Ky0w
LjAzMjEgICAgID8gICAgICA3LjU1NTErLTIuNjcxNiAgICAgICAgPyBtaWdodCBiZSAxLjI4MTl4
IHNsb3dlcgogICBhcnJheS13aXRoLWRvdWJsZS1zdW0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjI1NTUrLTAuMTE2NyAgICAgPyAgICAgIDQuNDg3OSstMC44MDM2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDU0Nnggc2xvd2VyCiAgIGFycmF5LXdpdGgtaW50MzItYWRkLXN1YiAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAuNTIxMistMy4yMDczICAgICA/ICAgICAxMC43MTI1Ky0zLjg4
MTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTgyeCBzbG93ZXIKICAgYXJyYXktd2l0aC1pbnQzMi1v
ci1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgNC45NTM5Ky0xLjI0NzMgICAgICAgICAg
ICA0LjQ3MjArLTAuMjQzOCAgICAgICAgICBtaWdodCBiZSAxLjEwNzh4IGZhc3RlcgogICBBcnJh
eUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzguNzA3MystMy41NDY1ICAg
ICAgICAgICAzNy40ODY4Ky0xLjMwODggICAgICAgICAgbWlnaHQgYmUgMS4wMzI2eCBmYXN0ZXIK
ICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAxNi41
OTk4Ky0wLjg4MTQgICAgID8gICAgIDE3LjA1OTkrLTAuNzQ4OCAgICAgICAgPyBtaWdodCBiZSAx
LjAyNzd4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQgICAgICAg
ICAgICAgICAgICA0LjU1NzArLTAuMDk0NSAgICAgICAgICAgIDQuNTQ4NystMC4xMDYyICAgICAg
ICAKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOC4zNTMw
Ky0xLjExODQgICAgID8gICAgIDM5LjkyNTArLTIuMDc1MyAgICAgICAgPyBtaWdodCBiZSAxLjA0
MTB4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC1idWZm
ZXIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyNi45ODgyKy0yLjI1ODggICAgICAgICAgIDI2LjM2NDErLTIuODgxNiAgICAgICAgICBtaWdo
dCBiZSAxLjAyMzd4IGZhc3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1s
aXZlZCAgICAgICAgICAgIDE1LjQxNTUrLTIuODE2NCAgICAgPyAgICAgMTUuNzU0MystMS43MTkx
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyMHggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJh
eS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgMTIuODg1MSstMS4yODk1ICAgICAgICAgICAx
Mi43MzM2Ky0xLjI4NjIgICAgICAgICAgbWlnaHQgYmUgMS4wMTE5eCBmYXN0ZXIKICAgYXJyb3dm
dW5jdGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC40MDY5Ky0xLjEx
NzkgICAgID8gICAgIDE0Ljc2NDArLTEuMTYzNyAgICAgICAgPyBtaWdodCBiZSAxLjAyNDh4IHNs
b3dlcgogICBhc21qc19ib29sX2J1ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjUwNTkrLTAuMjIwNSAgICAgPyAgICAgIDkuNTUyNistMC4yODYxICAgICAgICA/CiAgIGFz
c2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgIDMuMTc0Myst
MC4yMzkxICAgICA/ICAgICAgMy40MDQzKy0wLjg3OTMgICAgICAgID8gbWlnaHQgYmUgMS4wNzI1
eCBzbG93ZXIKICAgYXNzaWduLWN1c3RvbS1zZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC42NDQyKy0wLjI4MDkgICAgICAgICAgICA0LjU4MjYrLTAuMzQ1NSAgICAgICAgICBt
aWdodCBiZSAxLjAxMzV4IGZhc3RlcgogICBiYXNpYy1zZXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDExLjkwNDArLTAuODQ3MSAgICAgPyAgICAgMTEuOTkzMistMS4y
NjkyICAgICAgICA/CiAgIGJpZy1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuOTMyNSstMC41NDM4ICAgICA/ICAgICAgNS4wNDEwKy0xLjA2NzggICAgICAg
ID8gbWlnaHQgYmUgMS4wMjIweCBzbG93ZXIKICAgYm9vbGVhbi10ZXN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC4xNTc2Ky0wLjk2OTQgICAgICAgICAgICAzLjc5MzIr
LTAuMDgyNCAgICAgICAgICBtaWdodCBiZSAxLjA5NjF4IGZhc3RlcgogICBicmFuY2gtZm9sZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljk4NzIrLTAuMjUyMyAgICAg
PyAgICAgIDUuMjM0OCstMC44OTA3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ5Nnggc2xvd2VyCiAg
IGJyYW5jaC1vbi1zdHJpbmctYXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgMTkuMzM4
NSstMS43MTE0ICAgICAgICAgICAxOS4wODM0Ky0wLjk2ODcgICAgICAgICAgbWlnaHQgYmUgMS4w
MTM0eCBmYXN0ZXIKICAgYnktdmFsLWdlbmVyaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4wNzQwKy0wLjY4MTQgICAgICAgICAgICAzLjc4NzMrLTAuOTk3NSAgICAgICAg
ICBtaWdodCBiZSAxLjA3NTd4IGZhc3RlcgogICBjYWxsLXNwcmVhZC1hcHBseSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQwLjgzNTMrLTEuNzYyNCAgICAgICAgICAgNDAuNzkxMCst
MS40NzYyICAgICAgICAKICAgY2FsbC1zcHJlYWQtY2FsbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzMS41OTkxKy0zLjQ0MTUgICAgID8gICAgIDQyLjUzNjMrLTI4LjE4OTUgICAg
ICAgPyBtaWdodCBiZSAxLjM0NjF4IHNsb3dlcgogICBjYXB0dXJlZC1hc3NpZ25tZW50cyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjYwNzgrLTAuMDQ0MCAgICAgPyAgICAgIDAuNjIw
MistMC4wNjE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwNHggc2xvd2VyCiAgIGNhc3QtaW50LXRv
LWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMTA0OCstMS4wNDg0ICAg
ICA/ICAgICAgNy40MTg0Ky0xLjM1OTMgICAgICAgID8gbWlnaHQgYmUgMS4wNDQxeCBzbG93ZXIK
ICAgY2VsbC1hcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4w
Mjg3Ky0wLjUxMjMgICAgID8gICAgICA2LjIzNTgrLTAuNTI3MSAgICAgICAgPyBtaWdodCBiZSAx
LjAzNDN4IHNsb3dlcgogICBjZmctc2ltcGxpZnkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjcyMjgrLTAuNDI2NiAgICAgICAgICAgIDMuNjY3MistMC4xNzk1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE1MXggZmFzdGVyCiAgIGNoYWluLWdldHRlci1hY2Nlc3MgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDkuODg4MCstMC40NzE1ICAgICAgICAgICAgOS44ODE1
Ky0wLjI0MzUgICAgICAgIAogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE1LjUyMDcrLTEuNTcyMyAgICAgPyAgICAgMTUuNjM1MystMS42NDY3ICAg
ICAgICA/CiAgIGNvbnN0YW50LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuNDU5MystMC4zMjU0ICAgICA/ICAgICAgNy45NDkzKy00LjkwOTggICAgICAgID8gbWln
aHQgYmUgMS4yMzA3eCBzbG93ZXIKICAgY3JlYXRlLWxvdHMtb2YtZnVuY3Rpb25zICAgICAgICAg
ICAgICAgICAgICAgICAgICAxNC42MDc1Ky0wLjQ0MzcgICAgID8gICAgIDE1LjQ0NjArLTQuODM3
MyAgICAgICAgPyBtaWdodCBiZSAxLjA1NzR4IHNsb3dlcgogICBjc2UtbmV3LWFycmF5LWJ1ZmZl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ1MTkrLTAuNzE3NyAgICAgPyAgICAg
IDMuNjE0OCstMS40MzQ1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ3Mnggc2xvd2VyCiAgIGNzZS1u
ZXctYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzI2NSstMC45
MTA3ICAgICA/ICAgICAgMy40MzI2Ky0wLjU2NjEgICAgICAgID8gbWlnaHQgYmUgMS4wMzE5eCBz
bG93ZXIKICAgY3VzdG9tLXNldHRlci1nZXR0ZXItYXMtcHV0LWdldC1ieS1pZCAgICAgICAgICAg
ICAgMC43MTY2Ky0wLjA4NzcgICAgID8gICAgICAwLjg0NDQrLTAuMzA3OSAgICAgICAgPyBtaWdo
dCBiZSAxLjE3ODR4IHNsb3dlcgogICBEYXRhVmlldy1jdXN0b20tcHJvcGVydGllcyAgICAgICAg
ICAgICAgICAgICAgICAgIDU3Ljk1OTIrLTQzLjM3ODUgICAgICAgICAgNDUuNTQyMSstMi42NjE0
ICAgICAgICAgIG1pZ2h0IGJlIDEuMjcyN3ggZmFzdGVyCiAgIGRlbGF5LXRlYXItb2ZmLWFyZ3Vt
ZW50cy1zdHJpY3Rtb2RlICAgICAgICAgICAgICAgMTYuOTUxMCstMS44MDI5ICAgICA/ICAgICAx
Ny42NzEyKy0wLjY3NDcgICAgICAgID8gbWlnaHQgYmUgMS4wNDI1eCBzbG93ZXIKICAgZGVsdGFi
bHVlLXZhcmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0NS4yNjk3Ky04Ljcx
MDYgICAgICAgICAgMjM5LjI3MDMrLTUuMzY4OCAgICAgICAgICBtaWdodCBiZSAxLjAyNTF4IGZh
c3RlcgogICBkZXN0cnVjdHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAg
MjIzLjk5NTcrLTQuNTYyNyAgICAgPyAgICAyMjYuNjM1OCstMTQuOTIxMSAgICAgICA/IG1pZ2h0
IGJlIDEuMDExOHggc2xvd2VyCiAgIGRlc3RydWN0dXJpbmctcGFyYW1ldGVycy1vdmVycmlkZGVu
LWJ5LWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAuNjI3NCstMC4wMzYwICAgICAgICAgICAgMC42MjUxKy0wLjA0MDIgICAg
ICAgIAogICBkZXN0cnVjdHVyaW5nLXN3YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2LjM5NTArLTAuMTIwNSAgICAgPyAgICAgIDYuNzYwNSstMC41NjkzICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU3Mnggc2xvd2VyCiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEuNTI4NistMC4wMzE3ICAgICA/ICAgICAgMS41NTE5Ky0wLjIxMzAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTUzeCBzbG93ZXIKICAgZGl2LWJvb2xlYW4tZG91YmxlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi42MjIwKy0wLjAzNjkgICAgID8gICAgICA2
Ljk4MzgrLTAuNzU3NyAgICAgICAgPyBtaWdodCBiZSAxLjA1NDZ4IHNsb3dlcgogICBkaXYtYm9v
bGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjYzOTIrLTAuNDM3
OSAgICAgICAgICAgMTAuNDUwNistMC40ODIxICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4MXggZmFz
dGVyCiAgIGRvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAg
IDUuOTY4MCstMC40MTM5ICAgICAgICAgICAgNS42NTYyKy0wLjE2MDYgICAgICAgICAgbWlnaHQg
YmUgMS4wNTUxeCBmYXN0ZXIKICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAg
ICAgICAgICAgICAgICAxMS4xOTA4Ky0wLjYwMjMgICAgICAgICAgIDEwLjk0ODYrLTAuMzkyMSAg
ICAgICAgICBtaWdodCBiZSAxLjAyMjF4IGZhc3RlcgogICBkb3VibGUtcG9sbHV0aW9uLXB1dGJ5
b2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICA0Ljc1NTArLTAuMTM4NiAgICAgPyAgICAgIDQu
ODkyOCstMS4wODc3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5MHggc2xvd2VyCiAgIGRvdWJsZS1y
ZWFsLXVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzMuNTEyMCstNC43MTMx
ICAgICA/ICAgICAzNC40NzI1Ky00LjUzMTQgICAgICAgID8gbWlnaHQgYmUgMS4wMjg3eCBzbG93
ZXIKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAg
NC40MDE3Ky0xLjQwNTggICAgICAgICAgICAzLjk3ODYrLTEuMTE4NSAgICAgICAgICBtaWdodCBi
ZSAxLjEwNjR4IGZhc3RlcgogICBkb3VibGUtdG8taW50MzItdHlwZWQtYXJyYXkgICAgICAgICAg
ICAgICAgICAgICAgICAzLjI1NzIrLTAuMTg4NCAgICAgICAgICAgIDMuMDg2OCstMC41MTU1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDU1MnggZmFzdGVyCiAgIGRvdWJsZS10by11aW50MzItdHlwZWQt
YXJyYXktbm8taW5saW5lICAgICAgICAgICAgIDQuMjQ0MCstMS41NDcxICAgICAgICAgICAgNC4y
MTc4Ky0xLjM2NjAgICAgICAgIAogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5ICAgICAg
ICAgICAgICAgICAgICAgICAzLjMzNzArLTAuNTEyOCAgICAgICAgICAgIDMuMDc2NystMC41OTI2
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg0NnggZmFzdGVyCiAgIGVsaWRhYmxlLW5ldy1vYmplY3Qt
ZGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgNDYuMDEzMSstMS4xMzE3ICAgICAgICAgICA0
NS42NzU5Ky0wLjg1NjUgICAgICAgIAogICBlbGlkYWJsZS1uZXctb2JqZWN0LXJvZmxjb3B0ZXIg
ICAgICAgICAgICAgICAgICAgIDQ5LjE4NzUrLTEwLjQ5MjggICAgICAgICAgNDQuODY0OSstMS45
NTg3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDk2M3ggZmFzdGVyCiAgIGVsaWRhYmxlLW5ldy1vYmpl
Y3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAgMzguNzc2NistMS4zODI3ICAgICA/ICAg
ICAzOS4zOTU2Ky0xLjYzNjEgICAgICAgID8gbWlnaHQgYmUgMS4wMTYweCBzbG93ZXIKICAgZWxp
ZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAgICA1MS4yMDYyKy0y
LjI3ODYgICAgICAgICAgIDUwLjY3ODcrLTIuNTI4NyAgICAgICAgICBtaWdodCBiZSAxLjAxMDR4
IGZhc3RlcgogICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3LjA1NTUrLTEuNzk2MCAgICAgICAgICAgIDYuNDc5MSstMC40MDc3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDg5MHggZmFzdGVyCiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzYuNjMxNSstMi41MTg3ICAgICA/ICAgICAzNy41NzMxKy0yLjQ0
NzYgICAgICAgID8gbWlnaHQgYmUgMS4wMjU3eCBzbG93ZXIKICAgZXhpdC1sZW5ndGgtb24tcGxh
aW4tb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAxOS43NDQ2Ky0xLjM3NzAgICAgID8gICAg
IDIwLjc2NTArLTAuMjMyMSAgICAgICAgPyBtaWdodCBiZSAxLjA1MTd4IHNsb3dlcgogICBleHRl
cm5hbC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAyLjA3OTMrLTEu
MTQ4NyAgICAgICAgICAgIDEuNzI3OSstMC40MTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMjAzNHgg
ZmFzdGVyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1wdXRieXZhbCAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMzcyNystMC45Nzk5ICAgICAgICAgICAgMy4wMjM1Ky0wLjE3MzAgICAgICAgICAgbWln
aHQgYmUgMS4xMTU1eCBmYXN0ZXIKICAgZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFnZS12YXItaW5k
ZXggICAgICAgICAgICAgICAgMS44NzE4Ky0wLjMwNjUgICAgID8gICAgICAyLjE3MTArLTAuNTAw
MyAgICAgICAgPyBtaWdodCBiZSAxLjE1OTh4IHNsb3dlcgogICBmaXhlZC10eXBlZC1hcnJheS1z
dG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAxLjU2NjArLTAuMzAyMyAgICAgICAgICAg
IDEuNDc5MCstMC4wOTAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDU4OHggZmFzdGVyCiAgIEZsb2F0
MzJBcnJheS1tYXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNjI0NSstMC4y
NzY2ICAgICA/ICAgICAgNS44MTE1Ky0xLjAxNDEgICAgICAgID8gbWlnaHQgYmUgMS4wMzMyeCBz
bG93ZXIKICAgRmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAgICAgICAg
ICA2NC42ODg3Ky01Ljc5OTUgICAgID8gICAgIDY1Ljc0OTMrLTAuNzgwNyAgICAgICAgPyBtaWdo
dCBiZSAxLjAxNjR4IHNsb3dlcgogICBGbG9hdDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgICAgIDkwLjcyMzYrLTIuNzM4NiAgICAgPyAgICAgOTEuNzAyNSstMi43NDYz
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwOHggc2xvd2VyCiAgIEZsb2F0NjRBcnJheS10by1JbnQx
NkFycmF5LXNldCAgICAgICAgICAgICAgICAgICAgODEuNjczMSstNS4xMzc4ICAgICAgICAgICA4
MC4xMTE3Ky0xLjg0MTYgICAgICAgICAgbWlnaHQgYmUgMS4wMTk1eCBmYXN0ZXIKICAgZm9sZC1k
b3VibGUtdG8taW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4yNzY1Ky0xLjQw
NDUgICAgID8gICAgIDE2LjQxODYrLTEuNDM5MCAgICAgICAgPwogICBmb2xkLWdldC1ieS1pZC10
by1tdWx0aS1nZXQtYnktb2Zmc2V0LXJhcmUtaW50ICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuMjIyNCstMS4yNjk3ICAgICA/ICAgICAx
NC41NzkxKy0xLjE5MzAgICAgICAgID8gbWlnaHQgYmUgMS4wMjUxeCBzbG93ZXIKICAgZm9sZC1n
ZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAgICAgICAxMi4xMTkzKy0xLjc2
NjcgICAgID8gICAgIDEyLjQ3ODcrLTEuMjkzMCAgICAgICAgPyBtaWdodCBiZSAxLjAyOTd4IHNs
b3dlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tZ2V0LWJ5LW9mZnNldCAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjMzMDkr
LTIuODc0NyAgICAgPyAgICAgIDkuNzcwNistMy42NTU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ3
MXggc2xvd2VyCiAgIGZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1wb2x5LWdldC1ieS1vZmZz
ZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMC45NTE4Ky0zLjA3NjMgICAgICAgICAgIDEwLjExMTUrLTIuMjQ0NSAgICAgICAgICBtaWdo
dCBiZSAxLjA4MzF4IGZhc3RlcgogICBmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcG9seS1w
dXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTIuMzk4MystMy40OTY4ICAgICA/ICAgICAxMi42MDc3Ky0yLjg4NzkgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTY5eCBzbG93ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0
LXRvLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMC4xMzA1Ky0xLjM3OTAgICAgID8gICAgIDEwLjg3NTUrLTMuMjI0
NiAgICAgICAgPyBtaWdodCBiZSAxLjA3MzV4IHNsb3dlcgogICBmb2xkLW11bHRpLXB1dC1ieS1v
ZmZzZXQtdG8tcmVwbGFjZS1vci10cmFuc2l0aW9uLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4xNjg4Ky0xNi43
OTQ0ICAgICAgICAgIDE1Ljc3NzUrLTEuMDM0NyAgICAgICAgICBtaWdodCBiZSAxLjI3ODN4IGZh
c3RlcgogICBmb2xkLXB1dC1ieS1pZC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgICAgICAgICAg
IDE0Ljc0MDgrLTAuNzEwMSAgICAgICAgICAgMTQuMTAyMSstMS42ODU3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDQ1M3ggZmFzdGVyCiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN0cmluZy10by1tdWx0
aS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuMzMzNSstMi4zOTAxICAgICA/ICAgICAxNC4zNjY1Ky0zLjMxNTMg
ICAgICAgID8KICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3ltYm9sLXRvLW11bHRpLXB1dC1ieS1v
ZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMy41OTM5Ky0wLjM3NzggICAgID8gICAgIDE0LjE0NTQrLTMuMDI5MCAgICAgICAgPyBt
aWdodCBiZSAxLjA0MDZ4IHNsb3dlcgogICBmb2xkLXB1dC1zdHJ1Y3R1cmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEwLjE0OTErLTEuNzcwOSAgICAgICAgICAgIDkuNjgzOCstMC43
NjMzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4MHggZmFzdGVyCiAgIGZvci1vZi1pdGVyYXRlLWFy
cmF5LWVudHJpZXMgICAgICAgICAgICAgICAgICAgICAgMTUuMDE0MystMi4yNjIzICAgICA/ICAg
ICAxNS42Mjc3Ky0xLjU0MzAgICAgICAgID8gbWlnaHQgYmUgMS4wNDA5eCBzbG93ZXIKICAgZm9y
LW9mLWl0ZXJhdGUtYXJyYXkta2V5cyAgICAgICAgICAgICAgICAgICAgICAgICAgNS40MTE5Ky0x
LjM2MTUgICAgICAgICAgICA0Ljk4NTArLTAuMjI4MiAgICAgICAgICBtaWdodCBiZSAxLjA4NTZ4
IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMgICAgICAgICAgICAgICAgICAg
ICAgICA0Ljg3NjgrLTAuNTY4MSAgICAgICAgICAgIDQuNzUwNystMC41NzQ2ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI2NXggZmFzdGVyCiAgIGZyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjAuMjYxNCstMC43MDc3ICAgICA/ICAgICAyMC45NjAzKy0wLjY0
NzMgICAgICAgID8gbWlnaHQgYmUgMS4wMzQ1eCBzbG93ZXIKICAgZnRsLWxpYnJhcnktaW5saW5p
bmctZGF0YXZpZXcgICAgICAgICAgICAgICAgICAgICA3Ny45NTU2Ky02LjEyMTkgICAgICAgICAg
IDc3LjI3MzQrLTcuMjk2OCAgICAgICAgCiAgIGZ0bC1saWJyYXJ5LWlubGluaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMTYuMzQ0MistNC42MDI3ICAgICAgICAgIDExMi43MTg0Ky00
Ljg0OTIgICAgICAgICAgbWlnaHQgYmUgMS4wMzIyeCBmYXN0ZXIKICAgZnRsLW9iamVjdC1hZGQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUyOS4yMzc0Ky0yNzMuNzI4NCAgICAg
ICAgNDYzLjIyNDIrLTkuNDA0OCAgICAgICAgICBtaWdodCBiZSAxLjE0MjV4IGZhc3RlcgogICBm
dGwtb2JqZWN0LXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LjQ4NTEr
LTIuMjkxOCAgICAgPyAgICAgNDUuNTcxMCstMi41NjA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0
NHggc2xvd2VyCiAgIGZ1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTUuMTIxMistMS44NzQ3ICAgICA/ICAgICAxNS4yNDA5Ky0yLjA0ODcgICAgICAgID8K
ICAgZnVuY3Rpb24tZG90LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4x
MzUwKy0wLjI2MjYgICAgID8gICAgICAzLjIyNjErLTAuMjIyNyAgICAgICAgPyBtaWdodCBiZSAx
LjAyOTF4IHNsb3dlcgogICBmdW5jdGlvbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjU2NzYrLTAuMzMxNSAgICAgPyAgICAgIDQuMzUzMistMS41NzE5ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMjIwMnggc2xvd2VyCiAgIGZ1bmN0aW9uLXdpdGgtZXZhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMTMuODE3MistNS44NzM2ICAgICAgICAgIDExMy4yOTcy
Ky0zLjk4MzcgICAgICAgIAogICBnY3NlLXBvbHktZ2V0LWxlc3Mtb2J2aW91cyAgICAgICAgICAg
ICAgICAgICAgICAgIDI2LjM1NjkrLTUuOTQ2NyAgICAgPyAgICAgMjYuOTMyMystMy4wMjUzICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDIxOHggc2xvd2VyCiAgIGdjc2UtcG9seS1nZXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjguOTY4MystNC45NDk0ICAgICAgICAgICAyOC44
NjY1Ky0wLjcxNzAgICAgICAgIAogICBnY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjcwMTkrLTAuNjYzMSAgICAgPyAgICAgIDUuMzIxNCstMS45NzA1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMTMxOHggc2xvd2VyCiAgIGdldC1ieS1pZC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc1MTArLTAuNTIyNyAgICAgPyAg
ICAgIDMuODY5OCstMC42MDM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxNnggc2xvd2VyCiAgIGdl
dC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTQwMSstMS45
MDQwICAgICAgICAgICAgNi41NzkzKy0wLjgxOTQgICAgICAgICAgbWlnaHQgYmUgMS4yMDY4eCBm
YXN0ZXIKICAgZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgICAgICAgICAgICAgICAg
ICAgMy40MTQ3Ky0wLjMzMDcgICAgICAgICAgICAzLjM0OTErLTAuMTA1OCAgICAgICAgICBtaWdo
dCBiZSAxLjAxOTZ4IGZhc3RlcgogICBnZXQtYnktaWQtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uICAgICAgICAgICAgICA0LjkzNjMrLTAuMTc4MiAgICAgPyAgICAgIDQuOTk5NistMC4zMjYy
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyOHggc2xvd2VyCiAgIGdldC1ieS1pZC1wcm90by1vci1z
ZWxmICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuMzk3MystNC41NjI2ICAgICAgICAgICAx
OC4zODExKy0yLjk3MjcgICAgICAgICAgbWlnaHQgYmUgMS4wNTUzeCBmYXN0ZXIKICAgZ2V0LWJ5
LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40NTE2
Ky0xLjQ3NTcgICAgID8gICAgICA0LjQ1NTArLTAuODY0MyAgICAgICAgPwogICBnZXQtYnktaWQt
c2VsZi1vci1wcm90byAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjEzNjUrLTQuMDkxMCAg
ICAgPyAgICAgMTkuMTQwMSstNC4zMzU2ICAgICAgICA/CiAgIGdldC1ieS12YWwtb3V0LW9mLWJv
dW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuODk5OCstMC41MzE4ICAgICAgICAgICAg
NS43NjA1Ky0wLjU2MjUgICAgICAgICAgbWlnaHQgYmUgMS4wMjQyeCBmYXN0ZXIKICAgZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzLjYwMTYrLTAuMDI0NCAgICAgPyAgICAgIDMuOTEyNystMC44OTk3ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDg2NHggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjY0OTUrLTEuNzM5OSAgICAgICAgICAgIDku
MDc0OCstMi44MjExICAgICAgICAgIG1pZ2h0IGJlIDEuMTczNXggZmFzdGVyCiAgIGdldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2sgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41NzkwKy0wLjcyMjcgICAgID8g
ICAgICAzLjU3OTUrLTAuNTQyMSAgICAgICAgPwogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4LjYwNzgrLTIuNjIyMiAgICAgICAgICAgIDcuNzk0
NistMi41Mzc0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTA0M3ggZmFzdGVyCiAgIGdldC1ieS12YWwt
d2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgMTguNzE0NystMS4yNDc3ICAg
ICA/ICAgICAxOS41NDIyKy0zLjExNTEgICAgICAgID8gbWlnaHQgYmUgMS4wNDQyeCBzbG93ZXIK
ICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuNDE0MistMC44NTgyICAgICAgICAgICAgNC4wOTQ4Ky0wLjEzMTAg
ICAgICAgICAgbWlnaHQgYmUgMS4wNzgweCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAyMy43MzY5Ky0xNC42MjAwICAgICAgICAgIDE5
Ljc3MjYrLTQuODM4NiAgICAgICAgICBtaWdodCBiZSAxLjIwMDV4IGZhc3RlcgogICBnZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQuNzExMistMi4wNDYyICAgICAgICAgICAgNC4wNjI3Ky0wLjA3NDMgICAgICAgICAgbWln
aHQgYmUgMS4xNTk2eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuODY5NystNC41ODc2ICAgICA/ICAgICAyNC44
MDQ4Ky02LjM1NjMgICAgICAgID8gbWlnaHQgYmUgMS4wMzkyeCBzbG93ZXIKICAgZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjkwOTkrLTAuMTM5MCAgICAgICAg
ICAgIDMuNzA4NSstMS4wMTg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0M3ggZmFzdGVyCiAgIGdl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuNjQ5OCst
NC44NTk3ICAgICA/ICAgICAyMi4yMjU4Ky03LjYwMTYgICAgICAgID8gbWlnaHQgYmUgMS4wMjY2
eCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmICAgICAgICAg
ICAgICAyMC4xOTc2Ky0zLjE1MzUgICAgID8gICAgIDIwLjM4NTkrLTMuODM5OCAgICAgICAgPwog
ICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS4xOTczKy0wLjIwMzcgICAgID8gICAgICA1LjM5NjQrLTAuNDU4NSAg
ICAgICAgPyBtaWdodCBiZSAxLjAzODN4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgIDE4LjQyMTQrLTEuNDY4NiAgICAgPyAgICAgMjEu
NjQyOSstNC45MjA0ICAgICAgICA/IG1pZ2h0IGJlIDEuMTc0OXggc2xvd2VyCiAgIGdldF9jYWxs
ZWVfbW9ub21vcnBoaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDA1NistMS4wMDY3
ICAgICAgICAgICAgMy45MjEwKy0wLjgxMTUgICAgICAgICAgbWlnaHQgYmUgMS4xMjM2eCBmYXN0
ZXIKICAgZ2V0X2NhbGxlZV9wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC4zNTA4Ky0wLjM0NjcgICAgID8gICAgICA0Ljk0MjArLTEuMDE5MiAgICAgICAgPyBtaWdodCBi
ZSAxLjEzNTl4IHNsb3dlcgogICBnZXR0ZXItbm8tYWN0aXZhdGlvbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2LjQ0MzcrLTEuMDAxNCAgICAgPyAgICAgIDcuMDc0OCstMS4yMTY3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDk3OXggc2xvd2VyCiAgIGdldHRlci1wcm90b3R5cGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMDczNSstMC4zNTczICAgICA/ICAgICAgOS4y
NDY4Ky0wLjE3NDQgICAgICAgID8gbWlnaHQgYmUgMS4wMTkxeCBzbG93ZXIKICAgZ2V0dGVyLXJp
Y2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgMTM4Ny40NjI1Ky0xMS4yODU4
ICAgID8gICAxNDA0LjIzNDkrLTU5LjMyMzMgICAgICAgPyBtaWdodCBiZSAxLjAxMjF4IHNsb3dl
cgogICBnZXR0ZXItcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgw
LjI0MjQrLTguODc3NCAgICAgPyAgICAxODMuODk3OSstMTEuNzcyNSAgICAgICA/IG1pZ2h0IGJl
IDEuMDIwM3ggc2xvd2VyCiAgIGdldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDguMTY5MCstMC44ODMyICAgICAgICAgICAgOC4xMTQ2Ky0xLjI4MjYgICAg
ICAgIAogICBnbG9iYWwtb2JqZWN0LWFjY2Vzcy13aXRoLW11dGF0aW5nLXN0cnVjdHVyZSAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjAy
MTgrLTAuNTkyOSAgICAgPyAgICAgIDguMDc3NistMi41ODc2ICAgICAgICA/IG1pZ2h0IGJlIDEu
MTUwNHggc2xvd2VyCiAgIGdsb2JhbC12YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAg
ICAgICAgICAgIDAuOTU3NSstMC4wNzU3ICAgICA/ICAgICAgMS4xNjYyKy0wLjQyNTMgICAgICAg
ID8gbWlnaHQgYmUgMS4yMTc5eCBzbG93ZXIKICAgZ2xvYmFsLXZhci1jb25zdC1pbmZlciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC44Njk3Ky0wLjA1MjkgICAgICAgICAgICAwLjg0Mjcr
LTAuMDExMiAgICAgICAgICBtaWdodCBiZSAxLjAzMjB4IGZhc3RlcgogICBoYXJkLW92ZXJmbG93
LWNoZWNrLWVxdWFsICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjExMDArLTIuNjk5NyAgICAg
ICAgICAgMzMuNjE1NSstMC40NzU3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ0NXggZmFzdGVyCiAg
IGhhcmQtb3ZlcmZsb3ctY2hlY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuMTA0
MistNS4zNzAyICAgICA/ICAgICAzNy4wNzI2Ky0yLjA4NzMgICAgICAgID8gbWlnaHQgYmUgMS4w
MjY4eCBzbG93ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cyAgICAgICAgICAgICAg
ICAgICAgICA0MS4xOTk4Ky0zLjUwODIgICAgID8gICAgIDQ1LjMxNTUrLTQuNDI0NyAgICAgICAg
PyBtaWdodCBiZSAxLjA5OTl4IHNsb3dlcgogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQ0LjQ1MzUrLTUuNDA4NSAgICAgICAgICAgNDMuMDY5Myst
NS4zMzkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyMXggZmFzdGVyCiAgIEhhc2hNYXAtc3RyaW5n
LXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAgMzguOTI1NCstMi4wMzg2ICAgICA/
ICAgICA0MC4zODEyKy01LjA2MTAgICAgICAgID8gbWlnaHQgYmUgMS4wMzc0eCBzbG93ZXIKICAg
aG9pc3QtbWFrZS1yb3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4yOTg2
Ky0yLjE5ODMgICAgICAgICAgIDEwLjI4NDgrLTIuMjY5NSAgICAgICAgICBtaWdodCBiZSAxLjA5
ODZ4IGZhc3RlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcCAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
Ljk0OTMrLTEuMDA1NCAgICAgPyAgICAgIDYuMTQzNystMS4zMjY4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDMyN3ggc2xvd2VyCiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuNDc0NSstMS4wNDMwICAgICA/ICAgICAgNC41MTU5Ky0wLjk0NzUgICAg
ICAgID8KICAgaW11bC1kb3VibGUtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOC4wNDYzKy0yLjQzMjIgICAgICAgICAgICA3LjQ0NTArLTEuNzM0MCAgICAgICAgICBtaWdo
dCBiZSAxLjA4MDh4IGZhc3RlcgogICBpbXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4LjQ2NTMrLTAuNjU2MSAgICAgPyAgICAgMTIuNjU1OCstMTEuMTA2
MiAgICAgICA/IG1pZ2h0IGJlIDEuNDk1MHggc2xvd2VyCiAgIGltdWwtbWl4ZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTEwMCstMi4zNDM3ICAgICAgICAgICAg
Ny4wMTYyKy0wLjQ2NDggICAgICAgICAgbWlnaHQgYmUgMS4xMjc0eCBmYXN0ZXIKICAgaW4tZm91
ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMy43MTUwKy0wLjc0
OTAgICAgID8gICAgIDI0LjI0MzMrLTEuNTc1MCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjN4IHNs
b3dlcgogICBpbi1vbmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE2LjM0NzIrLTEuNDk5OSAgICAgICAgICAgMTUuODU1NystMy4wNTgyICAgICAgICAgIG1pZ2h0
IGJlIDEuMDMxMHggZmFzdGVyCiAgIGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTcuMjA0OCstMi4xMzU3ICAgICAgICAgICAxNS4wNzcxKy0xLjg2NTMg
ICAgICAgICAgbWlnaHQgYmUgMS4xNDExeCBmYXN0ZXIKICAgaW4tdHdvLWNhc2VzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4wMzIwKy0xLjMyNTggICAgICAgICAgIDE2
LjU3ODIrLTAuNTg5NSAgICAgICAgICBtaWdodCBiZSAxLjAyNzR4IGZhc3RlcgogICBpbmRleGVk
LXByb3BlcnRpZXMtaW4tb2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICA0LjA3NzMrLTEuMjI4
MCAgICAgICAgICAgIDMuODU3MCstMC4zODIxICAgICAgICAgIG1pZ2h0IGJlIDEuMDU3MXggZmFz
dGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5lICAgICAgICAgICAg
IDYuNTY1NistMi4yODIwICAgICAgICAgICAgNS45ODA3Ky0xLjc1NjcgICAgICAgICAgbWlnaHQg
YmUgMS4wOTc4eCBmYXN0ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdiAgICAgICAg
ICAgICAgICAgICAgICAxNy4xMDgyKy0xLjE2MTQgICAgID8gICAgIDE3LjE5MjUrLTEuODc3NSAg
ICAgICAgPwogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGlu
ZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE0LjExMDcrLTAuNTI2NyAgICAgPyAgICAgMTUuNTQ5NistMS45MzA0ICAgICAgICA/IG1pZ2h0
IGJlIDEuMTAyMHggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2Nv
cGUgICAgICAgICAgICAgMzAuNzk1MistNC4wNzU3ICAgICAgICAgICAzMC4zODczKy0xLjcwNTkg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTM0eCBmYXN0ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10
aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNjQuNjE0MistMy4yMjg1ICAgICAgICAgICA2MS4yODEyKy00
LjY1NjAgICAgICAgICAgbWlnaHQgYmUgMS4wNTQ0eCBmYXN0ZXIKICAgaW5mZXItY2xvc3VyZS1j
b25zdC10aGVuLXJlZW50ZXIgICAgICAgICAgICAgICAgICAzMS41NDQ3Ky0zLjY4NzYgICAgID8g
ICAgIDMxLjYyMTgrLTYuMzIwNyAgICAgICAgPwogICBpbmZlci1jb25zdGFudC1nbG9iYWwtcHJv
cGVydHkgICAgICAgICAgICAgICAgICAgICA0LjM0NDArLTAuMTA2MyAgICAgPyAgICAgIDQuNDQ2
MistMC4xNzIyICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzNXggc2xvd2VyCiAgIGluZmVyLWNvbnN0
YW50LXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTUwOCstNS4zODE5ICAg
ICAgICAgICAgMy43NzExKy0xLjAxMDcgICAgICAgICAgbWlnaHQgYmUgMS40NzE5eCBmYXN0ZXIK
ICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4tdmFycyAgICAgICAgICAgICAgICAgICAgOC4z
ODgyKy0wLjQ0NjMgICAgID8gICAgICA4LjcxNDIrLTAuNjU1OCAgICAgICAgPyBtaWdodCBiZSAx
LjAzODl4IHNsb3dlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzICAgICAgICAg
ICAgICAgICAgICA4LjQ1MTArLTIuMDY2OSAgICAgICAgICAgIDcuNzI3NystMC4zMTUxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDkzNnggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTU5NSstMS4xNTY3ICAgICA/ICAgICAgOC4xODU5
Ky0wLjg3NzggICAgICAgID8gbWlnaHQgYmUgMS4wMjg0eCBzbG93ZXIKICAgaW5mZXItb25lLXRp
bWUtZGVlcC1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAxMy4zNzg1Ky0wLjgyNTEgICAg
ICAgICAgIDEyLjUyNzQrLTEuMjEzNCAgICAgICAgICBtaWdodCBiZSAxLjA2Nzl4IGZhc3Rlcgog
ICBpbmxpbmUtYXJndW1lbnRzLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjE1
NjQrLTAuOTMxMiAgICAgPyAgICAgIDUuMzQ2NystMC45NjM3ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDM2OXggc2xvd2VyCiAgIGlubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nlc3MgICAgICAgICAg
ICAgICAgICAgIDUuMjA1MCstMC42Mzc0ICAgICAgICAgICAgNC45NDQwKy0wLjIyMDIgICAgICAg
ICAgbWlnaHQgYmUgMS4wNTI4eCBmYXN0ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1sb2NhbC1lc2Nh
cGUgICAgICAgICAgICAgICAgICAgICAgNC45Mjg0Ky0wLjEzNDMgICAgID8gICAgICA1LjA0MTMr
LTAuNDMxNCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjl4IHNsb3dlcgogICBpbmxpbmUtZ2V0LXNj
b3BlZC12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ0MzcrLTIuMjMwMiAgICAg
ICAgICAgIDcuMTI4NSstMi4zNjk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ0MnggZmFzdGVyCiAg
IGlubGluZWQtcHV0LWJ5LWlkLXRyYW5zaXRpb24gICAgICAgICAgICAgICAgICAgICAgMTQuMzYw
NSstMC4xOTAzICAgICAgICAgICAxMy4yODc0Ky0xLjQwMTMgICAgICAgICAgbWlnaHQgYmUgMS4w
ODA4eCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnktdmFsLXdpdGgtc3RyaW5nLXRyYW5zaXRpb24g
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
NC41MDQ5Ky0xLjg1MDUgICAgID8gICAgIDU3LjU3NTMrLTMuOTU0OSAgICAgICAgPyBtaWdodCBi
ZSAxLjA1NjN4IHNsb3dlcgogICBpbmxpbmVkLXB1dC1ieS12YWwtd2l0aC1zeW1ib2wtdHJhbnNp
dGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDU2LjE1NjMrLTYuOTU0NiAgICAgPyAgICAgNTYuNzk4NSstMi4zMjEzICAgICAgICA/IG1p
Z2h0IGJlIDEuMDExNHggc2xvd2VyCiAgIGludC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFs
ICAgICAgICAgICAgICAgICAgIDYuMjUwMCstMC40ODUyICAgICAgICAgICAgNi4yMTg0Ky0wLjUx
OTUgICAgICAgIAogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgICAgIDIxLjAxNzgrLTAuNDE0OCAgICAgICAgICAgMjAuNzA3OSstMC45MzI1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE1MHggZmFzdGVyCiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgICAgIDYuNDk2MystMS43MzY2ICAgICAgICAgICAgNi4xMTg3Ky0x
LjA1MTcgICAgICAgICAgbWlnaHQgYmUgMS4wNjE3eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWFk
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wMTg2Ky0wLjg3NzkgICAgID8g
ICAgICA4LjMwMjArLTQuMjA4NiAgICAgICAgPyBtaWdodCBiZSAxLjE4Mjl4IHNsb3dlcgogICBp
bnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA1LjU1OTcr
LTAuODUxMiAgICAgPyAgICAgIDUuNzQ1MCstMC45ODMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDMz
M3ggc2xvd2VyCiAgIGludC1vci1vdGhlci1tYXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgICAgIDUuNjQyMCstMC43NDk5ICAgICAgICAgICAgNS41MDY4Ky0xLjcyMDggICAgICAgICAg
bWlnaHQgYmUgMS4wMjQ2eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgNS45MDA0Ky0xLjE1NDYgICAgICAgICAgICA1LjI5ODYrLTEu
MDgyNSAgICAgICAgICBtaWdodCBiZSAxLjExMzZ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbW9k
LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA1LjE0ODMrLTAuNjI3MCAgICAgPyAg
ICAgIDUuMzI4OSstMS4wNTM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1MXggc2xvd2VyCiAgIGlu
dC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDYuNzYzOSst
My44MTUyICAgICAgICAgICAgNS42NDI1Ky0wLjc2NDUgICAgICAgICAgbWlnaHQgYmUgMS4xOTg3
eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAg
ICAgICAgNi40ODk4Ky0wLjg2NzcgICAgICAgICAgICA1Ljg4NjgrLTAuOTIzOSAgICAgICAgICBt
aWdodCBiZSAxLjEwMjR4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgIDIxLjE4MTYrLTAuMzY5MCAgICAgPyAgICAgMjEuNjg3NSstMi44
ODQzICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzOXggc2xvd2VyCiAgIGludC1vci1vdGhlci1zdWIt
dGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDYuNTY3OCstMS4yMjE1ICAgICAgICAg
ICAgNi40MDY0Ky0wLjQ0NDEgICAgICAgICAgbWlnaHQgYmUgMS4wMjUyeCBmYXN0ZXIKICAgaW50
LW9yLW90aGVyLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44NjQzKy0x
LjA5NzQgICAgICAgICAgICA0LjYyMzMrLTAuMjA2NiAgICAgICAgICBtaWdodCBiZSAxLjA1MjF4
IGZhc3RlcgogICBpbnQtb3ZlcmZsb3ctbG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjE5NTcrLTEuNjQ0NiAgICAgPyAgICAgMTAuMTUxMCstMTUuMzA4MiAgICAgICA/IG1p
Z2h0IGJlIDEuNjM4NHggc2xvd2VyCiAgIEludDE2QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgICAgICAgNjQuNDg2MSstMi42MTEwICAgICA/ICAgICA2NS42NDgwKy03LjY4
MzMgICAgICAgID8gbWlnaHQgYmUgMS4wMTgweCBzbG93ZXIKICAgSW50MTZBcnJheS1idWJibGUt
c29ydC13aXRoLWJ5dGVMZW5ndGggICAgICAgICAgICAyOS4wNTg5Ky00Ljc1OTIgICAgICAgICAg
IDI4LjM5ODYrLTAuOTQxOSAgICAgICAgICBtaWdodCBiZSAxLjAyMzN4IGZhc3RlcgogICBJbnQx
NkFycmF5LWJ1YmJsZS1zb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4LjgzMDArLTQu
MTIzNiAgICAgICAgICAgMjcuMjk5MCstMS45MzMzICAgICAgICAgIG1pZ2h0IGJlIDEuMDU2MXgg
ZmFzdGVyCiAgIEludDE2QXJyYXktbG9hZC1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuMTMxMCstMC4xNjA0ICAgICA/ICAgICAgMi4xNzg1Ky0wLjI1NDYgICAgICAgID8gbWln
aHQgYmUgMS4wMjIzeCBzbG93ZXIKICAgSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAg
ICAgICAgICAgICAgICAgICA2My4wMjE0Ky0xLjMzMzQgICAgID8gICAgIDY0LjExMjIrLTUuNDg5
MiAgICAgICAgPyBtaWdodCBiZSAxLjAxNzN4IHNsb3dlcgogICBJbnQzMkFycmF5LWFsbG9jLWxh
cmdlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjkyMzIrLTkuNDEwNCAgICAgICAgICAg
MTMuODU5MystMS4xMTI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMzY1NHggZmFzdGVyCiAgIEludDMy
QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgNzEuOTg0OSstNC44
MDM4ICAgICAgICAgICA3MS4yOTczKy0yLjk0NDQgICAgICAgIAogICBJbnQzMkFycmF5LWFsbG9j
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjgyNjIrLTAuMjY4NCAgICAgPyAg
ICAgIDMuODc2MistMC4yMjE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzMXggc2xvd2VyCiAgIElu
dDMyQXJyYXktSW50OEFycmF5LXZpZXctYWxsb2MgICAgICAgICAgICAgICAgICAgIDcuOTE2Nyst
MC42MjE4ICAgICA/ICAgICAgOC43NzI1Ky0xLjQ1NjEgICAgICAgID8gbWlnaHQgYmUgMS4xMDgx
eCBzbG93ZXIKICAgaW50NTItc3BpbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNi41MzkyKy0wLjU4MzMgICAgID8gICAgICA5LjIzMTgrLTUuMzA4NCAgICAgICAgPyBt
aWdodCBiZSAxLjQxMTh4IHNsb3dlcgogICBJbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgICAgICAgIDU2LjU4MDMrLTIuNDg1NSAgICAgICAgICAgNTYuMjU2MistNC4y
ODMzICAgICAgICAKICAgSW50OEFycmF5LWxvYWQtd2l0aC1ieXRlTGVuZ3RoICAgICAgICAgICAg
ICAgICAgICAgNC41ODkzKy0wLjQzMjYgICAgID8gICAgICA0LjY4MDQrLTAuMTM1OCAgICAgICAg
PyBtaWdodCBiZSAxLjAxOTl4IHNsb3dlcgogICBJbnQ4QXJyYXktbG9hZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjQzMjErLTAuMDc2MSAgICAgPyAgICAgIDQuNTIyMyst
MC4xMDUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwM3ggc2xvd2VyCiAgIGludGVnZXItZGl2aWRl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuODIwNistMi43OTQ0ICAgICA/
ICAgICAxNC45Njk4Ky0xLjc3NjAgICAgICAgID8gbWlnaHQgYmUgMS4wMTAxeCBzbG93ZXIKICAg
aW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42MDgw
Ky0wLjkxMjQgICAgICAgICAgICAyLjI0NTYrLTAuNDg0NyAgICAgICAgICBtaWdodCBiZSAxLjE2
MTR4IGZhc3RlcgogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0Ljc5MTcrLTAuMTYyMiAgICAgPyAgICAgIDUuNjE4MistMS43MDY5ICAgICAgICA/
IG1pZ2h0IGJlIDEuMTcyNXggc2xvd2VyCiAgIGlzLWJvb2xlYW4tZm9sZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNjE0MystMC41NzcxICAgICAgICAgICAgMy40NjUyKy0w
LjAyMzggICAgICAgICAgbWlnaHQgYmUgMS4wNDMweCBmYXN0ZXIKICAgaXMtZnVuY3Rpb24tZm9s
ZC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4xODI5Ky0wLjg5ODAgICAgID8gICAgIDEzLjE5
ODkrLTAuODMxOSAgICAgICAgPwogICBpcy1mdW5jdGlvbi1mb2xkLXRyaWNreSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA2LjEyNjUrLTIuNTQzMCAgICAgICAgICAgIDUuMDQ2OCstMC4xMjI0
ICAgICAgICAgIG1pZ2h0IGJlIDEuMjE0MHggZmFzdGVyCiAgIGlzLWZ1bmN0aW9uLWZvbGQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDczOSstMC4wMzU3ICAgICA/ICAgICAg
My44ODUzKy0wLjkzMTggICAgICAgID8gbWlnaHQgYmUgMS4xMTg0eCBzbG93ZXIKICAgaXMtbnVt
YmVyLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4yOTYzKy0zLjEw
MDcgICAgICAgICAgICA0Ljk2NDUrLTAuMTg1NyAgICAgICAgICBtaWdodCBiZSAxLjQ2OTd4IGZh
c3RlcgogICBpcy1udW1iZXItZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjUxNDQrLTAuMTM3NCAgICAgPyAgICAgIDMuNzExMistMC40Mzc5ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU2MHggc2xvd2VyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtZnVuY3Rpb25zICAg
ICAgICAgICAgICAgICAgIDMuNTU5NSstMC4xNzk0ICAgICA/ICAgICAgMy44MjYyKy0wLjQyMzYg
ICAgICAgID8gbWlnaHQgYmUgMS4wNzQ5eCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtZm9s
ZC1sZXNzLXRyaWNreSAgICAgICAgICAgICAgICAgNS42NDg1Ky0xLjg2MjkgICAgICAgICAgICA1
LjA5MDErLTAuMjM4MCAgICAgICAgICBtaWdodCBiZSAxLjEwOTd4IGZhc3RlcgogICBpcy1vYmpl
Y3Qtb3ItbnVsbC1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICA3LjE4ODgrLTEuMjUw
NiAgICAgPyAgICAgIDcuNjg0NistMi45NzY4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY5MHggc2xv
d2VyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuMDAzNSstMS4wNjQ5ICAgICAgICAgICAgMy41MzAwKy0wLjEwMDcgICAgICAgICAgbWlnaHQg
YmUgMS4xMzQxeCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2tpZXItZnVuY3Rpb24g
ICAgICAgICAgICAgICAgNS45OTk4Ky0xLjgxNzEgICAgICAgICAgICA1LjA3NTYrLTAuMTYxMiAg
ICAgICAgICBtaWdodCBiZSAxLjE4MjF4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlj
a2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEzLjMxNjYrLTEuMDYyOCAgICAgPyAgICAgMTMuMzU2Nyst
MC44Njg5ICAgICAgICA/CiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNreS1mdW5jdGlvbiAgICAg
ICAgICAgICAgICAgIDUuOTE4NistMS43NDc5ICAgICAgICAgICAgNS41ODk4Ky0wLjk2MTUgICAg
ICAgICAgbWlnaHQgYmUgMS4wNTg4eCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5
LWludGVybmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTEuMTE3NistNi4wNjI2ICAgICAgICAgICAgOS43MzIyKy0wLjgx
MjUgICAgICAgICAgbWlnaHQgYmUgMS4xNDIzeCBmYXN0ZXIKICAgaXMtc3RyaW5nLWZvbGQtdHJp
Y2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS42NTIyKy0yLjA4MzMgICAgID8gICAg
ICA1LjcyMDArLTEuNzUzOSAgICAgICAgPyBtaWdodCBiZSAxLjAxMjB4IHNsb3dlcgogICBpcy1z
dHJpbmctZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUyNDQrLTAu
MTY0MiAgICAgPyAgICAgIDMuNzA0MystMC40MzcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDUxMXgg
c2xvd2VyCiAgIGlzLXVuZGVmaW5lZC1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQuNjEwOCstMS4wNzkyICAgICAgICAgICAgNC4zMDg1Ky0wLjEyNzIgICAgICAgICAgbWln
aHQgYmUgMS4wNzAyeCBmYXN0ZXIKICAgaXMtdW5kZWZpbmVkLWZvbGQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy42MTM2Ky0wLjMyOTMgICAgID8gICAgICAzLjcwMTArLTAuNzI4
NyAgICAgICAgPyBtaWdodCBiZSAxLjAyNDJ4IHNsb3dlcgogICBKU09OUC1uZWdhdGl2ZS0wICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjM1NzcrLTAuMDMxNSAgICAgICAgICAg
IDAuMzQ5MistMC4wNDA0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MXggZmFzdGVyCiAgIGxhcmdl
LWludC1jYXB0dXJlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMjI5NistMC4x
NTY5ICAgICA/ICAgICAgNS45NjQ3Ky0xLjAzNDQgICAgICAgID8gbWlnaHQgYmUgMS4xNDA2eCBz
bG93ZXIKICAgbGFyZ2UtaW50LW5lZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxOC40NjM4Ky0wLjg1MzYgICAgID8gICAgIDE4LjU2MjgrLTEuMzUzMCAgICAgICAgPwogICBs
YXJnZS1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjUzMzMr
LTEuNzE3MyAgICAgICAgICAgMTcuMjU3MystMS4xMzY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2
MHggZmFzdGVyCiAgIGxvYWQtdmFyYXJncy1lbGltaW5hdGlvbiAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjUuNzczNystMi40Mzk4ICAgICA/ICAgICA0My40MTUwKy01Mi45NTM3ICAgICAgID8g
bWlnaHQgYmUgMS42ODQ1eCBzbG93ZXIKICAgbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC4yNTAyKy0wLjc3NDcgICAgICAgICAgICAzLjk3MzErLTAu
MTA2MCAgICAgICAgICBtaWdodCBiZSAxLjA2OTd4IGZhc3RlcgogICBsb2dpY2FsLW5vdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjA0MDIrLTAuMjU4MCAgICAgPyAg
ICAgIDYuMDkxNCstMC45MTc5ICAgICAgICA/CiAgIGxvdHMtb2YtZmllbGRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMuMjg4NistMS4yNDk1ICAgICAgICAgICAxMi44NTE2
Ky0wLjc5NTAgICAgICAgICAgbWlnaHQgYmUgMS4wMzQweCBmYXN0ZXIKICAgbWFrZS1pbmRleGVk
LXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45MTAwKy0wLjQ1MDggICAg
ID8gICAgICA0LjM1MTkrLTEuMzIwOCAgICAgICAgPyBtaWdodCBiZSAxLjExMzB4IHNsb3dlcgog
ICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjY2
NjArLTAuMjcyNSAgICAgICAgICAgIDUuMjQ3NSstMC4yNDI4ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDc5N3ggZmFzdGVyCiAgIG1hcnNhZ2xpYS1sYXJnZXItaW50cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDIuMzA2NSstMy4xMTI0ICAgICA/ICAgICA0My4zMDg1Ky0xLjUyMDkgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjM3eCBzbG93ZXIKICAgbWFyc2FnbGlhLW9zci1lbnRyeSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyNi4zNTk1Ky0yLjExMTggICAgICAgICAgIDI2LjI1NjMr
LTIuMzIwMiAgICAgICAgCiAgIG1hdGgtd2l0aC1vdXQtb2YtYm91bmRzLWFycmF5LXZhbHVlcyAg
ICAgICAgICAgICAgMjkuMTMyMystMi40MTIzICAgICA/ICAgICAyOS40NTc1Ky0yLjY0MDIgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIKICAgbWF4LWJvb2xlYW4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40NDg5Ky0wLjA2NDEgICAgID8gICAgICAzLjUy
NjErLTAuMzc2NCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjR4IHNsb3dlcgogICBtZXRob2Qtb24t
bnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxLjgwMjIrLTAuMzc5MSAg
ICAgPyAgICAgMjIuMDQyNCstMS41MzgxICAgICAgICA/IG1pZ2h0IGJlIDEuMDExMHggc2xvd2Vy
CiAgIG1pbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
NDkwNystMC4yMDI4ICAgICA/ICAgICAgMy42MDQ3Ky0wLjE4NDkgICAgICAgID8gbWlnaHQgYmUg
MS4wMzI2eCBzbG93ZXIKICAgbWludXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC4wOTAzKy0wLjM2MDIgICAgICAgICAgICAzLjkyMDQrLTAuMTEyMSAgICAg
ICAgICBtaWdodCBiZSAxLjA0MzN4IGZhc3RlcgogICBtaW51cy1ib29sZWFuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA4ODErLTAuMTMwNyAgICAgPyAgICAgIDMuMTgw
MystMC4zMDcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5OHggc2xvd2VyCiAgIG1pc2Mtc3RyaWN0
LWVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuOTcyNCstNi43OTcwICAg
ICAgICAgICAzNi40MDgxKy01LjA3NTUgICAgICAgICAgbWlnaHQgYmUgMS4wMTU1eCBmYXN0ZXIK
ICAgbW9kLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS40
NTA4Ky00LjI1NDggICAgICAgICAgIDE0LjE5OTMrLTAuMTQwNCAgICAgICAgICBtaWdodCBiZSAx
LjA4ODF4IGZhc3RlcgogICBtb2QtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwLjY3MTUrLTAuNDcwMCAgICAgPyAgICAgMTAuNzI5NCstMC4wODk2ICAgICAg
ICA/CiAgIG11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuNTQ2NistMC4xMDI3ICAgICA/ICAgICAgNC42NTU5Ky0wLjI3MzEgICAgICAgID8gbWlnaHQg
YmUgMS4wMjQweCBzbG93ZXIKICAgbXVsLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy42NTUzKy0wLjExMTEgICAgICAgICAgICAzLjY0MTYrLTAuMDM0OSAg
ICAgICAgCiAgIG5lZy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQuNDIwMSstMC45MDM1ICAgICAgICAgICAgNC4xNzIwKy0wLjYxMzMgICAgICAgICAgbWln
aHQgYmUgMS4wNTk1eCBmYXN0ZXIKICAgbmVnYXRpdmUtemVyby1kaXZpZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMC40ODUyKy0wLjAzNjYgICAgID8gICAgICAwLjUxMjYrLTAuMDYz
MSAgICAgICAgPyBtaWdodCBiZSAxLjA1NjR4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLW1vZHVs
byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ3NjMrLTAuMDQyNiAgICAgICAgICAg
IDAuNDYzNistMC4wMjQwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3NXggZmFzdGVyCiAgIG5lZ2F0
aXZlLXplcm8tbmVnYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDQxOCstMC4w
MTQ2ICAgICAgICAgICAgMC40MzI4Ky0wLjAyMzggICAgICAgICAgbWlnaHQgYmUgMS4wMjA3eCBm
YXN0ZXIKICAgbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1OC45NjE1Ky0zLjE2NDcgICAgID8gICAgIDU5LjM0OTUrLTUuNDA5NiAgICAgICAgPwogICBu
ZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI0LjI1MjQr
LTQuMjYxMyAgICAgPyAgICAxMjQuNzEwNSstMi45NDE2ICAgICAgICA/CiAgIG5ldy1hcnJheS1i
dWZmZXItcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzY1MistMC4zOTE3ICAg
ICAhICAgICAgOS42MDMzKy0wLjc0NTQgICAgICAgICEgZGVmaW5pdGVseSAxLjE0ODB4IHNsb3dl
cgogICBuZXctYXJyYXktZGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2
LjIyMzQrLTEuOTI1OSAgICAgPyAgICAgMTcuNzg3NCstMi40MDg2ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDk2NHggc2xvd2VyCiAgIG5ldy1hcnJheS1wdXNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUuNTgxMistMS41MTAxICAgICA/ICAgICAgNi4yMjMzKy0zLjc4NjEgICAg
ICAgID8gbWlnaHQgYmUgMS4xMTUweCBzbG93ZXIKICAgbm8taW5saW5lLWNvbnN0cnVjdG9yICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0MS45ODk3Ky0xLjY4MzkgICAgICAgICAgIDQxLjUz
OTIrLTIuODAwNyAgICAgICAgICBtaWdodCBiZSAxLjAxMDh4IGZhc3RlcgogICBudW1iZXItdGVz
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk1MzMrLTAuMzczMiAg
ICAgICAgICAgIDMuODQ4OSstMC4xNTgwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3MXggZmFzdGVy
CiAgIG9iamVjdC1jbG9zdXJlLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYu
NzU4NystMS4xOTI4ICAgICA/ICAgICAgNi44NjMwKy0xLjAxOTIgICAgICAgID8gbWlnaHQgYmUg
MS4wMTU0eCBzbG93ZXIKICAgb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy1vbi1sYXJn
ZS1hcnJheSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjE5MDcrLTAuMzcxNSAgICAgICAgICAgIDUuMDE3MistMC4xNTIzICAgICAgICAg
IG1pZ2h0IGJlIDEuMDM0NnggZmFzdGVyCiAgIG9iamVjdC10ZXN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNzU5NSstMC43Njg5ICAgICAgICAgICAgMy40OTQxKy0w
LjA4MDMgICAgICAgICAgbWlnaHQgYmUgMS4wNzYweCBmYXN0ZXIKICAgb2J2aW91cy1zaW5rLXBh
dGhvbG9neS10YWtlbiAgICAgICAgICAgICAgICAgICAgIDE0My40NjQ1Ky0zLjA5MzYgICAgID8g
ICAgMTQzLjgxMzIrLTMuNzA4NiAgICAgICAgPwogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjAzMDYrLTIuMjA0MSAgICAgPyAgICAgMzYuMjk1
MistNC4zNjM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM2MXggc2xvd2VyCiAgIG9idmlvdXNseS1l
bGlkYWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgMzMuOTI5NystMy40OTI0ICAg
ICA/ICAgICAzNC4zODUwKy0xLjQ1MzMgICAgICAgID8gbWlnaHQgYmUgMS4wMTM0eCBzbG93ZXIK
ICAgcGx1cy1ib29sZWFuLWFyaXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4z
MTUyKy0wLjIzMTUgICAgICAgICAgICAzLjE2MzMrLTAuMTM1MCAgICAgICAgICBtaWdodCBiZSAx
LjA0ODB4IGZhc3RlcgogICBwbHVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjg5MDUrLTAuMDQ0MyAgICAgPyAgICAgIDMuOTA4MSstMC4wNDM3ICAgICAg
ICA/CiAgIHBsdXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuMjYyMystMC4xMjkxICAgICA/ICAgICAgMy4zNjUzKy0wLjIwNTAgICAgICAgID8gbWlnaHQg
YmUgMS4wMzE2eCBzbG93ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50LXByb3RvdHlw
ZXMtc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuNDY5MSstMC4xNjUyICAgICA/ICAgICAgMy42NDkyKy0wLjI0NjggICAgICAg
ID8gbWlnaHQgYmUgMS4wNTE5eCBzbG93ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50
LXByb3RvdHlwZXMgICAgICAgICAgICAgMy42NjE3Ky0wLjY0NjcgICAgICAgICAgICAzLjU2NzYr
LTAuMTQ1MiAgICAgICAgICBtaWdodCBiZSAxLjAyNjR4IGZhc3RlcgogICBwb2x5LWNoYWluLWFj
Y2Vzcy1zaW1wbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQzNTErLTAuMTAzOSAgICAg
PyAgICAgIDMuNTE2NCstMC4yODkxICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzN3ggc2xvd2VyCiAg
IHBvbHktY2hhaW4tYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzIy
NSstMC43ODM3ICAgICAgICAgICAgMy4zMjI0Ky0wLjE3NjUgICAgICAgICAgbWlnaHQgYmUgMS4x
MjA0eCBmYXN0ZXIKICAgcG9seS1zdHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA3My4wMzcyKy0xLjk3OTQgICAgICAgICAgIDcyLjIzMjcrLTQuMDg2OCAgICAgICAg
ICBtaWdodCBiZSAxLjAxMTF4IGZhc3RlcgogICBwb2x5bW9ycGhpYy1hZGQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjAxMDUrLTAuODM5MCAgICAgICAgICAgIDMuNjAwMist
MC4yNjE2ICAgICAgICAgIG1pZ2h0IGJlIDEuMTE0MHggZmFzdGVyCiAgIHBvbHltb3JwaGljLWFy
cmF5LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNzE3NystMC4xODEyICAgICAg
ICAgICAgMS42OTc4Ky0wLjA3MzUgICAgICAgICAgbWlnaHQgYmUgMS4wMTE3eCBmYXN0ZXIKICAg
cG9seW1vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43ODEy
Ky0wLjI4MjggICAgID8gICAgICA0LjM0NjQrLTEuOTkwMSAgICAgICAgPyBtaWdodCBiZSAxLjE0
OTV4IHNsb3dlcgogICBwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDM1LjAyODMrLTIuMzM4NSAgICAgPyAgICAgMzYuMDgxMistMS4yNzQxICAgICAgICA/
IG1pZ2h0IGJlIDEuMDMwMXggc2xvd2VyCiAgIHBvbHltb3JwaGljLXB1dC1ieS12YWwtd2l0aC1z
dHJpbmcgICAgICAgICAgICAgICAgMzYuODczOCstMi45Njk3ICAgICA/ICAgICAzNy41NDg4Ky0y
LjI5NTYgICAgICAgID8gbWlnaHQgYmUgMS4wMTgzeCBzbG93ZXIKICAgcG9seW1vcnBoaWMtcHV0
LWJ5LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAzNi4zMTg4Ky0xLjU4MDYgICAgID8g
ICAgIDM2LjQ5MjArLTMuMjYzMyAgICAgICAgPwogICBwb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjU1MTArLTEuMTI0MCAgICAgICAgICAgMTcuMzcz
NystMC45NzE0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwMnggZmFzdGVyCiAgIHBvbHl2YXJpYW50
LW1vbm9tb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgMTAuMTIyNCstMy43NTQ1ICAg
ICAgICAgICAgOC44NTYxKy0xLjgzMjYgICAgICAgICAgbWlnaHQgYmUgMS4xNDMweCBmYXN0ZXIK
ICAgcHJvdG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC42
MTkxKy0wLjg3NDEgICAgICAgICAgICA5LjgxNzIrLTAuNTI3MyAgICAgICAgICBtaWdodCBiZSAx
LjA4MTd4IGZhc3RlcgogICBwcm90b3R5cGUtYWNjZXNzLXdpdGgtbXV0YXRpbmctcHJvdG90eXBl
ICAgICAgICAgICA3LjIxODErLTEuNjAyNyAgICAgICAgICAgIDYuOTI3NSstMC41NDc4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQxOXggZmFzdGVyCiAgIHB1dC1ieS1pZC1yZXBsYWNlLWFuZC10cmFu
c2l0aW9uICAgICAgICAgICAgICAgICAgMTEuMDc5MistMS4zNzU2ICAgICA/ICAgICAxMS44MDE1
Ky0yLjMzOTAgICAgICAgID8gbWlnaHQgYmUgMS4wNjUyeCBzbG93ZXIKICAgcHV0LWJ5LWlkLXNs
aWdodGx5LXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgMy45ODE4Ky0wLjc0NzAgICAg
ICAgICAgICAzLjU4NTYrLTAuMjE1NSAgICAgICAgICBtaWdodCBiZSAxLjExMDV4IGZhc3Rlcgog
ICBwdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0Ljg0
NjYrLTEuMTg5MCAgICAgPyAgICAgMTUuMDg2NystMS4zNjc2ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE2Mnggc2xvd2VyCiAgIHB1dC1ieS12YWwtZGlyZWN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAuNTE3MistMC4xMDc2ICAgICAgICAgICAgMC40NTgxKy0wLjAxNjggICAgICAg
ICAgbWlnaHQgYmUgMS4xMjkweCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC1sYXJnZS1pbmRleC1ibGFu
ay1pbmRleGluZy10eXBlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDcuMTkxMCstMC43MDQ1ICAgICA/ICAgICAgNy43NTg3Ky0xLjQ4MDEg
ICAgICAgID8gbWlnaHQgYmUgMS4wNzg5eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC1tYWNoaW5lLWlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yODU2Ky0wLjg2NzMgICAgICAgICAgICAz
LjkwNzcrLTEuMTY0MiAgICAgICAgICBtaWdodCBiZSAxLjA5Njd4IGZhc3RlcgogICBwdXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS40NzU1Ky0xLjAyMjUgICAg
ID8gICAgIDE1LjYwMDUrLTEuNjMxNyAgICAgICAgPwogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5n
LXNsaWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuOTg5NSstMC4zMDczICAgICAgICAgICAgMy44MDgyKy0w
LjA0NjkgICAgICAgICAgbWlnaHQgYmUgMS4wNDc2eCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC13aXRo
LXN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS43MjY0Ky0wLjY3NjUgICAgICAg
ICAgIDE1LjI2NjUrLTAuNTcyMCAgICAgICAgICBtaWdodCBiZSAxLjAzMDF4IGZhc3RlcgogICBw
dXQtYnktdmFsLXdpdGgtc3ltYm9sLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi44NzE2Ky0xLjA3
NDggICAgID8gICAgIDE3LjI0NDYrLTAuNjkxMiAgICAgICAgPyBtaWdodCBiZSAxLjAyMjF4IHNs
b3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3ltYm9sLXNsaWdodGx5LXBvbHltb3JwaGljICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDI2
NistMC40MTg2ICAgICA/ICAgICAgNC44MzE0Ky0yLjI1NDYgICAgICAgID8gbWlnaHQgYmUgMS4w
OTE1eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxNS41MTAyKy0xLjI3MzUgICAgICAgICAgIDE1LjIyNTgrLTEuMjIwNSAgICAgICAg
ICBtaWdodCBiZSAxLjAxODd4IGZhc3RlcgogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE5LjMzMDIrLTIuMjI3MCAgICAgICAgICAgMTkuMDMyNSst
Mi43ODA1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NnggZmFzdGVyCiAgIHJheXRyYWNlLXdpdGgt
ZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgIDguODE0OCstMi4xNjU3ICAgICAg
ICAgICAgOC4wNDU3Ky0yLjE4MTcgICAgICAgICAgbWlnaHQgYmUgMS4wOTU2eCBmYXN0ZXIKICAg
cmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAxOS41Nzk4
Ky0xLjY2NDcgICAgID8gICAgIDIwLjQyNzArLTEuNzMwMSAgICAgICAgPyBtaWdodCBiZSAxLjA0
MzN4IHNsb3dlcgogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zciAgICAgICAgICAgICAgICAg
ICAgICAgIDIyLjIyMzErLTAuNzU2NiAgICAgPyAgICAgMjYuNzExMystOS45MDIxICAgICAgICA/
IG1pZ2h0IGJlIDEuMjAyMHggc2xvd2VyCiAgIHJlcGVhdC1tdWx0aS1nZXQtYnktb2Zmc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgMjcuMzIzMSstMS44NzMxICAgICAgICAgICAyNy4yNzcyKy0y
LjU0NjMgICAgICAgIAogICByaWNoYXJkcy1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAg
ICAgICAgICAgIDk4LjY4MTIrLTcuMzc3NyAgICAgPyAgICAgOTkuODM2MCstNi4wOTUyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDExN3ggc2xvd2VyCiAgIHJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzNTYuMzQ2MystMTYuMjgyOCAgICAgICAgIDM1My43NTU2
Ky0xNC4zMDE2ICAgICAgIAogICBzZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4LjUwNDcrLTAuNTYwNCAgICAgPyAgICAgIDguNzQ1OCstMC40ODc0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI4M3ggc2xvd2VyCiAgIHNldHRlciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNjAyNystMC43NjYzICAgICA/ICAgICAgOC4z
MzExKy0xLjM2MTEgICAgICAgID8gbWlnaHQgYmUgMS4wOTU4eCBzbG93ZXIKICAgc2ltcGxlLWFj
dGl2YXRpb24tZGVtbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNC4zMzU4Ky0yLjIxNTIg
ICAgICAgICAgIDMzLjM5NTgrLTIuNzcxMiAgICAgICAgICBtaWdodCBiZSAxLjAyODF4IGZhc3Rl
cgogICBzaW1wbGUtZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
Ljk1MTUrLTAuNDk2MyAgICAgPyAgICAgMTMuNjkwMistMC45MzI5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDU3MHggc2xvd2VyCiAgIHNpbXBsZS1wb2x5LWNhbGwtbmVzdGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAuMzgyMistMi43MDM0ICAgICAgICAgICAgOS42NDc2Ky0xLjEzMzQgICAg
ICAgICAgbWlnaHQgYmUgMS4wNzYxeCBmYXN0ZXIKICAgc2ltcGxlLXBvbHktY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wNTc3Ky0wLjkxNzggICAgICAgICAgICAxLjg1
NjUrLTAuMjM3MCAgICAgICAgICBtaWdodCBiZSAxLjEwODR4IGZhc3RlcgogICBzaW4tYm9vbGVh
biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxLjA0ODYrLTEuMjAzMCAg
ICAgPyAgICAgMjEuMjczMystMS4zMzY0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwN3ggc2xvd2Vy
CiAgIHNpbmdsZXRvbi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzcu
NTI2OSstNy40ODcxICAgICA/ICAgICA3OC44NDEyKy00LjgwMjQgICAgICAgID8gbWlnaHQgYmUg
MS4wMTcweCBzbG93ZXIKICAgc2luay1mdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMy45ODI1Ky02LjQ0OTUgICAgICAgICAgIDEyLjMxNTYrLTMuNjQ3MiAgICAg
ICAgICBtaWdodCBiZSAxLjEzNTR4IGZhc3RlcgogICBzaW5rLWh1Z2UtYWN0aXZhdGlvbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE5Ljg3NDYrLTAuOTcyOCAgICAgPyAgICAgMjAuMTYx
MSstMS40NTM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0NHggc2xvd2VyCiAgIHNpbmthYmxlLW5l
dy1vYmplY3QtZGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgNjguODQwMCstNy42MjM5ICAg
ICAgICAgICA2Ny42MjI0Ky0xLjI2NzMgICAgICAgICAgbWlnaHQgYmUgMS4wMTgweCBmYXN0ZXIK
ICAgc2lua2FibGUtbmV3LW9iamVjdC10YWtlbiAgICAgICAgICAgICAgICAgICAgICAgICA1Ny4w
MzUzKy0zLjI5MjYgICAgID8gICAgIDU3LjQ0MDQrLTAuNzQzNyAgICAgICAgPwogICBzaW5rYWJs
ZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjY1ODkrLTMuNjk0
MCAgICAgICAgICAgMzYuMTgwMCstMi41MjYwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzMnggZmFz
dGVyCiAgIHNsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAg
IDMuMjQ5MistMC4xNjU4ICAgICA/ICAgICAgMy4yNDk5Ky0wLjE4NTMgICAgICAgID8KICAgc2xv
dy1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMTYwKy0w
LjAyODMgICAgICAgICAgICAzLjExMDUrLTAuMDA3NiAgICAgICAgCiAgIHNsb3ctdGVybmFyaWVz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuNzYyMystMS4zNDcxICAgICA/
ICAgICAyMy4xNDU3Ky0wLjM1NjQgICAgICAgID8gbWlnaHQgYmUgMS4wMTY4eCBzbG93ZXIKICAg
c29ydGluZy1iZW5jaG1hcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNC45ODAw
Ky0zLjY0NzggICAgICAgICAgIDI0LjMwMDIrLTEuNjQxNCAgICAgICAgICBtaWdodCBiZSAxLjAy
ODB4IGZhc3RlcgogICBzcGFyc2UtY29uZGl0aW9uYWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjEwMjArLTAuNzg5NCAgICAgICAgICAgIDEuNzY0NSstMC4xMzIxICAgICAgICAg
IG1pZ2h0IGJlIDEuMTkxM3ggZmFzdGVyCiAgIHNwbGljZS10by1yZW1vdmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTcuOTczMistMy44MDg0ICAgICAgICAgICAxNi43NTAyKy0x
LjQ1NjYgICAgICAgICAgbWlnaHQgYmUgMS4wNzMweCBmYXN0ZXIKICAgc3RyaW5nLWNoYXItY29k
ZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4yMTUwKy0wLjI4MjYgICAgID8g
ICAgIDE4LjM3MjUrLTIuODU4MyAgICAgICAgPwogICBzdHJpbmctY29uY2F0LW9iamVjdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMyMDErLTEuMjU1MyAgICAgICAgICAgIDIuODky
NistMC4wNTc4ICAgICAgICAgIG1pZ2h0IGJlIDEuMTQ3OHggZmFzdGVyCiAgIHN0cmluZy1jb25j
YXQtcGFpci1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTEzMCstMC4zMDE4ICAg
ICAgICAgICAgMi45NDI1Ky0wLjExNDIgICAgICAgICAgbWlnaHQgYmUgMS4wNTc5eCBmYXN0ZXIK
ICAgc3RyaW5nLWNvbmNhdC1wYWlyLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAxMy4x
MDA1Ky0xLjQ3ODAgICAgID8gICAgIDEzLjY0MjErLTEuMjIzMSAgICAgICAgPyBtaWdodCBiZSAx
LjA0MTN4IHNsb3dlcgogICBzdHJpbmctY29uY2F0LXNpbXBsZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEzLjQ5ODUrLTEuMzEwMCAgICAgPyAgICAgMTMuODcwMSstMi4wNzU4ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI3NXggc2xvd2VyCiAgIHN0cmluZy1jb25zLXJlcGVhdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDkuNzg3OSstMS41MTAwICAgICA/ICAgICAgOS44MTU1
Ky0xLjA4MTIgICAgICAgID8KICAgc3RyaW5nLWNvbnMtdG93ZXIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOS42OTY0Ky0wLjcyMTkgICAgID8gICAgIDEwLjQ2MzArLTEuMDUwMiAg
ICAgICAgPyBtaWdodCBiZSAxLjA3OTF4IHNsb3dlcgogICBzdHJpbmctZXF1YWxpdHkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjgzODErLTIuNzI1OSAgICAgICAgICAgMjUu
MTM5MCstMS4wMTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3OHggZmFzdGVyCiAgIHN0cmluZy1n
ZXQtYnktdmFsLWJpZy1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgIDguNTg0MistMC43MDAz
ICAgICA/ICAgICAxMC45MTIwKy00Ljk3MjUgICAgICAgID8gbWlnaHQgYmUgMS4yNzEyeCBzbG93
ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUgICAgICAgICAgICAg
NS4yMTY4Ky0yLjk0NDMgICAgICAgICAgICA0LjIwNzQrLTAuMzc0NiAgICAgICAgICBtaWdodCBi
ZSAxLjIzOTl4IGZhc3RlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAg
ICAgICAgICAgICAgICA2LjgxNzMrLTMuOTE4NyAgICAgICAgICAgIDUuNTkyMystMC4xMTgyICAg
ICAgICAgIG1pZ2h0IGJlIDEuMjE5MHggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzUwNystMS43MjM0ICAgICAgICAgICAgNC42
MzEyKy0wLjY2NTkgICAgICAgICAgbWlnaHQgYmUgMS4xNTU0eCBmYXN0ZXIKICAgc3RyaW5nLWhh
c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wNDAwKy0wLjc3NjQg
ICAgICAgICAgICAzLjAxMDcrLTAuNjUyNyAgICAgICAgCiAgIHN0cmluZy1sb25nLWlkZW50LWVx
dWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgMjAuMjI3MystMC42OTIxICAgICA/ICAgICAy
MC4yNTI3Ky0xLjY3MDMgICAgICAgID8KICAgc3RyaW5nLW91dC1vZi1ib3VuZHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMS43OTcyKy0xLjA3NzUgICAgICAgICAgIDExLjU0MTMrLTAu
OTgyNyAgICAgICAgICBtaWdodCBiZSAxLjAyMjJ4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LWFy
aXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjYxODIrLTEuMTQ0NSAgICAgPyAg
ICAgMzYuMjE5NSstMi42MTU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2OXggc2xvd2VyCiAgIHN0
cmluZy1yb3BlLXdpdGgtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuODQwMyst
MC45OTU4ICAgICA/ICAgICAyNy4zMDg3Ky0zLjE2MDkgICAgICAgID8gbWlnaHQgYmUgMS4wNTY4
eCBzbG93ZXIKICAgc3RyaW5nLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0Ni45ODU5Ky0zLjU1NTUgICAgICAgICAgIDQ2LjE0MTUrLTMuMDg5MyAgICAgICAgICBt
aWdodCBiZSAxLjAxODN4IGZhc3RlcgogICBzdHJpbmctdGVzdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjY0MDUrLTAuMDc0NSAgICAgPyAgICAgIDMuNzM2NistMC4y
NzY4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2NHggc2xvd2VyCiAgIHN0cmluZy12YXItZXF1YWxp
dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzguMjg2MystMS4xNDk0ICAgICAgICAg
ICAzNi41OTgwKy0xLjEzMjQgICAgICAgICAgbWlnaHQgYmUgMS4wNDYxeCBmYXN0ZXIKICAgc3Ry
dWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAgICAgMy4wMjMzKy0w
LjEyNDIgICAgID8gICAgICAzLjMwMzcrLTEuMTEzMyAgICAgICAgPyBtaWdodCBiZSAxLjA5Mjd4
IHNsb3dlcgogICBzdWJzdHJpbmctY29uY2F0LXdlaXJkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDUwLjE4NzYrLTQuOTY5OSAgICAgICAgICAgNDkuMzI1MCstMi42NzAzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE3NXggZmFzdGVyCiAgIHN1YnN0cmluZy1jb25jYXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNTIuNDg4OSstNC42MTUwICAgICA/ICAgICA1Mi43MTYwKy00LjM4
ODYgICAgICAgID8KICAgc3Vic3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA2MS42OTczKy00LjU4NzcgICAgICAgICAgIDYwLjIxNjcrLTMuNzIwOSAgICAgICAg
ICBtaWdodCBiZSAxLjAyNDZ4IGZhc3RlcgogICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjYxODArLTAuNTE3NSAgICAgPyAgICAgIDMuODI2NSst
MC42MTg4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU3Nnggc2xvd2VyCiAgIHN3aXRjaC1jaGFyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMzU2NystMy4zMDg3ICAgICAg
ICAgICAgOS4zMjcwKy0wLjU5MjQgICAgICAgICAgbWlnaHQgYmUgMS4xMTA0eCBmYXN0ZXIKICAg
c3dpdGNoLWNvbnN0YW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4zNDIz
Ky0yLjg2NDggICAgID8gICAgIDE0LjA2NjUrLTIuODA1MSAgICAgICAgPyBtaWdodCBiZSAxLjA1
NDN4IHNsb3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy12YXIgICAgICAgICAgICAgICAg
ICAgICAgIDI0LjEzMTArLTIuNTk2NSAgICAgICAgICAgMjIuODY5OSstMC44Nzc1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDU1MXggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtYmlnICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjAuNzc4OSstMC44NzQwICAgICA/ICAgICAyMi4yNTQxKy0z
LjM4MTEgICAgICAgID8gbWlnaHQgYmUgMS4wNzEweCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1i
YXNpYy12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4wMzgwKy0xLjA5MzEgICAgID8g
ICAgIDE4LjEwNTIrLTAuNzMyMSAgICAgICAgPwogICBzd2l0Y2gtc3RyaW5nLWJhc2ljICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE2Ljg0NjIrLTEuMjIzMiAgICAgPyAgICAgMTcuMjE4
MCstMS40ODExICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyMXggc2xvd2VyCiAgIHN3aXRjaC1zdHJp
bmctYmlnLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgMjUuMTI3MCstMS40MzA3ICAg
ICAgICAgICAyNC40NDA2Ky0yLjk3MzMgICAgICAgICAgbWlnaHQgYmUgMS4wMjgxeCBmYXN0ZXIK
ICAgc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgICAgICAgICAxOC4x
MjUyKy0yLjg5MzMgICAgICAgICAgIDE3LjQ4ODcrLTEuMDM5MyAgICAgICAgICBtaWdodCBiZSAx
LjAzNjR4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dlciAgICAgICAgICAgICAg
ICAgICAgICAgIDE2LjEwNDIrLTEuODEyNyAgICAgICAgICAgMTUuNzEwNystMC41MzY5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDI1MXggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctc2hvcnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTYuMDMzOCstMS4wNjg3ICAgICAgICAgICAxNS4xMTE2
Ky0wLjUwOTkgICAgICAgICAgbWlnaHQgYmUgMS4wNjEweCBmYXN0ZXIKICAgc3dpdGNoICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4wMzExKy0xLjU0MzkgICAg
ICAgICAgIDE2LjIwNTYrLTIuNDc2OCAgICAgICAgICBtaWdodCBiZSAxLjA1MDl4IGZhc3Rlcgog
ICBzeW1ib2wtdG9zdHJpbmd0YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAx
NzYrLTAuMTcyMiAgICAgPyAgICAgIDQuNjYxMystMS40MzMwICAgICAgICA/IG1pZ2h0IGJlIDEu
MTYwMnggc2xvd2VyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuNDc2NistMC4wODY3ICAgICBeICAgICAgNC4yNTQwKy0wLjEyNzYgICAgICAg
IF4gZGVmaW5pdGVseSAxLjA1MjN4IGZhc3RlcgogICB0ZWFyLW9mZi1hcmd1bWVudHMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2LjA3MTUrLTAuNDkxMSAgICAgPyAgICAgIDYuMTUw
MistMC40NDYxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzMHggc2xvd2VyCiAgIHRlbXBvcmFsLXN0
cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuNjQ2MystMC43NTUzICAg
ICA/ICAgICAxNS44MTA0Ky0xLjMwMzQgICAgICAgID8gbWlnaHQgYmUgMS4wMTA1eCBzbG93ZXIK
ICAgdG8taW50MzItYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi45
MjE5Ky0wLjYxNzMgICAgICAgICAgIDE2LjU4NzgrLTAuNTk3MyAgICAgICAgICBtaWdodCBiZSAx
LjAyMDF4IGZhc3RlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1jbG9uZWQtYXJndW1lbnRzICAg
ICAgICAgICAgIDE1Ljg3MjcrLTcuMzY3OSAgICAgICAgICAgMTIuNzgzNystMC41NTkyICAgICAg
ICAgIG1pZ2h0IGJlIDEuMjQxNnggZmFzdGVyCiAgIHRyeS1jYXRjaC1nZXQtYnktdmFsLWRpcmVj
dC1hcmd1bWVudHMgICAgICAgICAgICAgIDQuNzcyNystMi4xNzgzICAgICAgICAgICAgNC4wMTc0
Ky0yLjQwNjcgICAgICAgICAgbWlnaHQgYmUgMS4xODgweCBmYXN0ZXIKICAgdHJ5LWNhdGNoLWdl
dC1ieS12YWwtc2NvcGVkLWFyZ3VtZW50cyAgICAgICAgICAgICAgNi4zMTQ3Ky0xLjA1MzggICAg
ICAgICAgICA2LjEyNjIrLTAuNDk0OCAgICAgICAgICBtaWdodCBiZSAxLjAzMDh4IGZhc3Rlcgog
ICB0eXBlZC1hcnJheS1nZXQtc2V0LWJ5LXZhbC1wcm9maWxpbmcgICAgICAgICAgICAgIDM2Ljc1
NjIrLTYuNTU5NyAgICAgICAgICAgMzYuNDIzNSstMi4yODUwICAgICAgICAKICAgdW5kZWZpbmVk
LXByb3BlcnR5LWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgIDI5MS44Njc3Ky00Ljg2MTMg
ICAgICAgICAgMjkwLjA0NDQrLTIuNDkwNCAgICAgICAgCiAgIHVuZGVmaW5lZC10ZXN0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTUwMCstMC41OTYyICAgICA/ICAgICAg
NC4wMTAxKy0wLjUyMTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTUyeCBzbG93ZXIKICAgdW5wcm9m
aWxlZC1saWNtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS40OTQ5Ky0yLjI2
OTMgICAgICAgICAgIDEwLjY3MTgrLTAuNDQxMyAgICAgICAgICBtaWdodCBiZSAxLjA3NzF4IGZh
c3RlcgogICB2OC1yYXl0cmFjZS13aXRoLWVtcHR5LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAg
MTA0Ljk0MDYrLTEwLjczNjMgICAgICAgICAxMDMuNzE3MystNi41NDc2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDExOHggZmFzdGVyCiAgIHY4LXJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoICAgICAgICAg
ICAgICAgICAgICAgICAxMDQuOTU4NSstNi4yNzM3ICAgICA/ICAgIDEwNS4xODI2Ky00Ljg1MTIg
ICAgICAgID8KICAgdmFyYXJncy1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNy43NzQ0Ky0xLjc0MzUgICAgID8gICAgIDE3Ljk2OTgrLTAuNDM4MSAgICAgICAgPyBt
aWdodCBiZSAxLjAxMTB4IHNsb3dlcgogICB2YXJhcmdzLWNvbnN0cnVjdC1pbmxpbmUgICAgICAg
ICAgICAgICAgICAgICAgICAgIDI4LjIyODIrLTEuNzEyMiAgICAgPyAgICAgMjkuMDU0NistMS45
OTE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5M3ggc2xvd2VyCiAgIHZhcmFyZ3MtY29uc3RydWN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuNDU5NystMC43NDM1ICAgICA/ICAg
ICAyNS41NTk1Ky0wLjI0MDQgICAgICAgID8KICAgdmFyYXJncy1pbmxpbmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMS4wOTA1Ky0wLjMwMjggICAgID8gICAgIDExLjEzODEr
LTAuNjUyNyAgICAgICAgPwogICB2YXJhcmdzLXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEyLjY0MzgrLTAuNjk4MCAgICAgICAgICAgMTIuMzgwNistMC42MDY3ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDIxM3ggZmFzdGVyCiAgIHZhcmFyZ3MgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTM4OCstMS4yODg2ICAgICAgICAgICAxMS45
NjQ1Ky0wLjQ5NzIgICAgICAgICAgbWlnaHQgYmUgMS4wNDgweCBmYXN0ZXIKICAgd2VpcmQtaW5s
aW5pbmctY29uc3QtcHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgNS43MDM5Ky00LjI2NTYg
ICAgICAgICAgICA0LjA5NzkrLTIuNjU0MyAgICAgICAgICBtaWdodCBiZSAxLjM5MTl4IGZhc3Rl
cgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MS4xODkxKy0wLjE0NDMgICAgICAgICAgIDExLjEyNjgrLTAuMTMzMCAgICAgICAgICBtaWdodCBi
ZSAxLjAwNTZ4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJhc2U2NCAgICAgICAgICAgICAgICAgICAgbmV3NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQXNtQmVuY2g6CiAgIGJpZ2ZpYi5jcHAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NDEuMzE4MSstMTYuMzUzNyAg
ICA/ICAgIDY0Ny4wNTc2Ky0xNy4xNDM0ICAgICAgID8KICAgY3JheS5jICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU1OC4yOTgzKy0yMS4xMzI4ICAgID8gICAgNTYy
LjA3NzMrLTEyLjY5NjUgICAgICAgPwogICBkcnkuYyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNTk2LjI2ODcrLTE1LjA4MjUgICAgICAgICA1OTAuMDI5MistMzAu
MzAxOSAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNnggZmFzdGVyCiAgIEZsb2F0TU0uYyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NzkuMTA5OCstMTMuNTg4NiAgICAgICAg
IDk3NC41NTk0Ky00LjgwMzEgICAgICAgIAogICBnY2MtbG9vcHMuY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0ODQwLjAxNDgrLTQ0LjE0NjAgICAgPyAgIDQ4NDIuNDc5Myst
MTUuMDU1MyAgICAgICA/CiAgIG4tYm9keS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDExNzUuMzIzMistMjIuMzE2NSAgICAgICAgMTE2OC40Njg1Ky0xMC43Nzk0ICAg
ICAgIAogICBRdWlja3NvcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NTgzLjgzNTMrLTYuOTIxOSAgICAgICAgICA1NzIuMjQxMCstMTYuOTg4NyAgICAgICAgIG1pZ2h0
IGJlIDEuMDIwM3ggZmFzdGVyCiAgIHN0ZXBhbm92X2NvbnRhaW5lci5jcHAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUzNzQuNzQxMystNDAuNDk3NiAgICA/ICAgNTM5My41MDExKy05Mi43OTAy
ICAgICAgID8KICAgVG93ZXJzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMyMi40OTc2Ky0zLjcwMjIgICAgID8gICAgMzIzLjY2MzArLTcuMjY3OSAgICAgICAgPwoK
ICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAyMC43
MjM4Ky01Ljc2MDEgICAgICAgICAxMDE4LjY3NTErLTguNDM2NSAgICAgICAgICBtaWdodCBiZSAx
LjAwMjB4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJhc2U2NCAgICAgICAgICAgICAgICAgICAgbmV3NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQ29tcHJlc3Npb25CZW5jaDoKICAgaHVmZm1h
biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MS45MDIyKy0xLjcz
NTcgICAgID8gICAgIDcyLjc0MjYrLTIuMzUxNiAgICAgICAgPyBtaWdodCBiZSAxLjAxMTd4IHNs
b3dlcgogICBhcml0aG1ldGljLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MzY2LjA3NjArLTMuMjI4NyAgICAgPyAgICAzNzAuMTcwNistNC40OTY3ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDExMnggc2xvd2VyCiAgIGFyaXRobWV0aWMtcHJlY2lzZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzNTEuNjgwMistNC4yOTAxICAgICAgICAgIDM0NS42NjY5Ky0xNy43OTQw
ICAgICAgICAgbWlnaHQgYmUgMS4wMTc0eCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1jb21wbGV4LXBy
ZWNpc2UgICAgICAgICAgICAgICAgICAgICAgIDM1MC4zNTMwKy02LjExNTggICAgID8gICAgMzUx
Ljc3MDMrLTEzLjI3NzYgICAgICAgPwogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMCAgICAg
ICAgICAgICAgICAgICAgICAgMzg4LjExMjIrLTIuNTIyOSAgICAgICAgICAzODUuNzgyMistOC42
ODEzICAgICAgICAKICAgYXJpdGhtZXRpYy1wcmVjaXNlLW9yZGVyLTEgICAgICAgICAgICAgICAg
ICAgICAgIDQxOS4yNDU4Ky05LjU3MDkgICAgID8gICAgNDIwLjU2NzUrLTE0Ljc2OTYgICAgICAg
PwogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgNDk0
LjkxMzArLTE0Ljg0NzUgICAgICAgICA0ODguNTE1NSstNi4wMTA2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEzMXggZmFzdGVyCiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVyLTEgICAgICAgICAgICAg
ICAgICAgICAgICA0MzYuNzM3NSstMy4yMDcwICAgICA/ICAgIDQzOS44ODA4Ky02LjEwMDcgICAg
ICAgID8KICAgYXJpdGhtZXRpYy1zaW1wbGUtb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAg
IDUxMC43NjA3Ky02LjEzNzIgICAgID8gICAgNTE1LjA2NzgrLTguNDg5NCAgICAgICAgPwogICBs
ei1zdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDYxLjIwMjEr
LTE4LjE1NDYgICAgICAgICA0NDkuNjc4NCstMjAuMzgzOCAgICAgICAgIG1pZ2h0IGJlIDEuMDI1
NnggZmFzdGVyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzQ5LjA2MDArLTIuMzYyNSAgICAgICAgICAzNDguNDY5OSstMS4yMjI3ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDAxN3ggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTY0ICAgICAgICAgICAgICAgICAgICBuZXc2
NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW9tZWFuIG9mIHByZWZl
cnJlZCBtZWFuczoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA3Mi40MTI2Ky0wLjk0NTQgICAgID8gICAgIDcyLjYwMjArLTAuODM4MyAgICAgICAg
PyBtaWdodCBiZSAxLjAwMjZ4IHNsb3dlcgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266379</attachid>
            <date>2015-12-01 12:57:39 -0800</date>
            <delta_ts>2015-12-01 17:03:55 -0800</delta_ts>
            <desc>rebased patch.</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>11712</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyODk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTEyLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmUgZGV0YWlsIGFib3V0IGhvdyB3
ZSBjaG9vc2luZyB0byBoYW5kbGUgb3BlcmFuZHMgdG8gdGhlIGJpbmFyeSBzbmlwcGV0cyB0aGF0
CisgICAgICAgIG1heSBiZSBjb25zdGFudDogdGhlIHNsb3cgcGF0aCBjYWxsIHRvIGEgQysrIGZ1
bmN0aW9uIHN0aWxsIG5lZWRzIHRoZSBjb25zdGFudAorICAgICAgICBvcGVyYW5kIGxvYWRlZCBp
biBhIHJlZ2lzdGVyLiAgVG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSdyZSBjaG9vc2luZyB0byBhbHdh
eXMgdGVsbAorICAgICAgICBMTFZNIHRvIGxvYWQgdGhlIG9wZXJhbmRzIGludG8gcmVnaXN0ZXJz
IGV2ZW4gaWYgdGhleSBtYXkgYmUgY29uc3RhbnQuICBIb3dldmVyLAorICAgICAgICBldmVuIHRo
b3VnaCBhIGNvbnN0YW50IG9wZXJhbmQgaXMgcHJlbG9hZGVkIGluIGEgcmVnaXN0ZXIsIHRoZSBz
bmlwcGV0IGdlbmVyYXRvcgorICAgICAgICB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlIG9mIGl0LiAg
SXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbgorICAgICAgICBpbW1l
ZGlhdGUuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGVCaW5hcnlPcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Z2VuZXJhdGVBcml0aFN1
YkZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgp
OgorICAgICAgICAtIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aCgpIGN1cnJlbnRseSBpcyBhbiBl
eGFjdCBjb3B5IG9mIGdlbmVyYXRlQXJpdGhTdWJGYXN0UGF0aCgpCisgICAgICAgICAgZXhjZXB0
IHRoYXQgaXQgdXNlcyBKSVRBZGRHZW5lcmF0b3IgaW5zdGVhZCBvZiBKSVRTdWJHZW5lcmF0b3Iu
ICBXaGVuIHdlIGFkZAorICAgICAgICAgIHN1cHBvcnQgZm9yIEpJVE11bEdlbmVyYXRvciBsYXRl
ciwgdGhlIGNvZGUgd2lsbCBzdGFydCB0byB2YXJ5LiAgV2UnbGwgcmVmYWN0b3IKKyAgICAgICAg
ICB0aGVzZSBmdW5jdGlvbnMgdGhlbiB3aGVuIHdlIGhhdmUgbW9yZSBpbnNpZ2h0IGludG8gd2hh
dCBuZWVkcyB0byB2YXJ5IGJldHdlZW4KKyAgICAgICAgICB0aGUgaW1wbGVtZW50YXRpb25zLgor
CisgICAgICAgICogZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5oOgorICAgICAgICAqIGZ0bC9GVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpGVEw6OkFyaXRoU3ViRGVzY3JpcHRvcjo6
aWNTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZUFkZERlc2NyaXB0b3I6OlZhbHVlQWRk
RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVBZGREZXNjcmlwdG9yOjppY1Np
emUpOgorICAgICAgICAqIGZ0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OnNpemVPZkFyaXRoU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpzaXplT2ZWYWx1ZUFk
ZCk6CisgICAgICAgIChKU0M6OkZUTDo6c2l6ZU9mUHJvYmUpOgorICAgICAgICAqIGZ0bC9GVExJ
bmxpbmVDYWNoZVNpemUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVWYWx1ZUFkZCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVN0ckNhdCk6
CisKIDIwMTUtMTItMDEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZmFjdG9yIEZUTCBzdWIgc25pcHBldCBjb2RlIHRvIHN1cHBvcnQgZ2VuZXJhbCBiaW5hcnkg
b3Agc25pcHBldHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAJKHJldmlzaW9uIDE5Mjg5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
cGlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsOSBAQCBzdGF0aWMgdm9pZCBn
ZW5lcmF0ZUJpbmFyeU9wSUNGYXN0UGF0aCgKICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAg
ICAgICAgIGdlbmVyYXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwg
bGVmdCwgcmlnaHQsIHVzZWRSZWdpc3RlcnMsIGRvbmUsIHNsb3dQYXRoU3RhcnQpOwogICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICBnZW5lcmF0
ZVZhbHVlQWRkRmFzdFBhdGgoaWMsIGZhc3RQYXRoSklULCByZXN1bHQsIGxlZnQsIHJpZ2h0LCB1
c2VkUmVnaXN0ZXJzLCBkb25lLCBzbG93UGF0aFN0YXJ0KTsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxl
QmluYXJ5T3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q29tcGlsZUJpbmFyeU9wLmNwcAkocmV2aXNpb24gMTkyODk2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiREZHTm9kZVR5cGUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVD
YWNoZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSklUQWRk
R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2Ny
YXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiCiAKQEAgLTE4OCw2ICsxODksNDMgQEAgdm9pZCBnZW5l
cmF0ZUFyaXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQu
anVtcCgpOwogfQogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2Ny
aXB0b3ImIGljLCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcg
bGVmdCwgR1BSUmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIENDYWxs
SGVscGVyczo6SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0KQor
eworICAgIEFTU0VSVChpYy5ub2RlVHlwZSgpID09IFZhbHVlQWRkKTsKKyAgICBTY3JhdGNoUmVn
aXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOworCisgICAgQmluYXJ5U25p
cHBldFJlZ2lzdGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdo
dCk7CisKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hH
UFIoKTsKKyAgICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIo
KTsKKyAgICBGUFJSZWcgcmlnaHRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7
CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOworCisgICAgSklUQWRkR2Vu
ZXJhdG9yIGdlbihpYy5sZWZ0T3BlcmFuZCgpLCBpYy5yaWdodE9wZXJhbmQoKSwgSlNWYWx1ZVJl
Z3MocmVzdWx0KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MobGVmdCksIEpTVmFsdWVSZWdzKHJpZ2h0
KSwgbGVmdEZQUiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworCisgICAgYXV0
byBudW1iZXJPZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9j
YXRvci5wcmVzZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3Rl
ckFsbG9jYXRvcjo6RXh0cmFTdGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworCisgICAgY29udGV4
dC5pbml0aWFsaXplUmVnaXN0ZXJzKGppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0
KTsKKworICAgIEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOworICAgIGdlbi5lbmRKdW1w
TGlzdCgpLmxpbmsoJmppdCk7CisgICAgY29udGV4dC5yZXN0b3JlUmVnaXN0ZXJzKGppdCk7Cisg
ICAgYWxsb2NhdG9yLnJlc3RvcmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBudW1iZXJP
ZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMsCisgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvcjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKKyAgICBkb25l
ID0gaml0Lmp1bXAoKTsKKworICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsK
KyAgICBjb250ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9y
ZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2
ZVJldXNlZFJlZ2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRy
YVN0YWNrU3BhY2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVt
cCgpOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUo
RlRMX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFy
eU9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxl
QmluYXJ5T3AuaAkocmV2aXNpb24gMTkyODk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlQmluYXJ5T3AuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAg
dm9pZCBnZW5lcmF0ZUFyaXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIEdQUlJlZyByZXN1
bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMs
CiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQ
YXRoU3RhcnQpOwogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2Ny
aXB0b3ImLCBDQ2FsbEhlbHBlcnMmLAorICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBH
UFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpOworCiB9IC8v
IG5hbWVzcGFjZSBGVEwKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJldmlz
aW9uIDE5Mjg5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVE
ZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsMTIgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBzaXplX3QgaWNTaXplKCk7CiB9OwogCitjbGFzcyBWYWx1ZUFkZERlc2NyaXB0
b3IgOiBwdWJsaWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1ZUFkZERl
c2NyaXB0b3IodW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgY29uc3QgU25pcHBldE9w
ZXJhbmQmIGxlZnRPcGVyYW5kLCBjb25zdCBTbmlwcGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKTsK
KyAgICBzdGF0aWMgc2l6ZV90IGljU2l6ZSgpOworfTsKKwogLy8gWW91IGNhbiBjcmVhdGUgYSBs
YXp5IHNsb3cgcGF0aCBjYWxsIGluIGxvd2VyREZHVG9MTFZNIGJ5IGRvaW5nOgogLy8gbV9mdGxT
dGF0ZS5sYXp5U2xvd1BhdGhzLmFwcGVuZCgKIC8vICAgICBMYXp5U2xvd1BhdGhEZXNjcmlwdG9y
KApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0
b3JJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE5Mjg5NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxOCBAQCBzaXplX3QgQXJpdGhTdWJEZXNjcmlwdG9y
OjppY1NpemUoKQogICAgIHJldHVybiBzaXplT2ZBcml0aFN1YigpOwogfQogCitWYWx1ZUFkZERl
c2NyaXB0b3I6OlZhbHVlQWRkRGVzY3JpcHRvcih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4sCisgICAgY29uc3QgU25pcHBldE9wZXJhbmQmIGxlZnRPcGVyYW5kLCBj
b25zdCBTbmlwcGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKQorICAgIDogQmluYXJ5T3BEZXNjcmlw
dG9yKERGRzo6VmFsdWVBZGQsIHN0YWNrbWFwSUQsIGNvZGVPcmlnaW4sIGljU2l6ZSgpLAorICAg
ICAgICAiVmFsdWVBZGQiLCAiVmFsdWVBZGQgSUMgZmFzdCBwYXRoIiwgREZHOjpvcGVyYXRpb25W
YWx1ZUFkZCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkKK3sKK30KKworc2l6ZV90IFZhbHVl
QWRkRGVzY3JpcHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mVmFsdWVBZGQoKTsK
K30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9K
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNo
ZVNpemUuY3BwCShyZXZpc2lvbiAxOTI4OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMjMg
QEAgc2l6ZV90IHNpemVPZkFyaXRoU3ViKCkKICNlbmRpZgogfQogCitzaXplX3Qgc2l6ZU9mVmFs
dWVBZGQoKQoreworI2lmIENQVShBUk02NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTgw
OyAvLyBBUk02NCByZWxlYXNlLgorI2Vsc2UKKyAgICByZXR1cm4gMjc2OyAvLyBBUk02NCBkZWJ1
Zy4KKyNlbmRpZgorI2Vsc2UgLy8gQ1BVKFg4Nl82NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1
cm4gMTk5OyAvLyBYODZfNjQgcmVsZWFzZS4KKyNlbHNlCisgICAgcmV0dXJuIDI4NjsgLy8gWDg2
XzY0IGRlYnVnLgorI2VuZGlmCisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQog
c2l6ZV90IHNpemVPZlByb2JlKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW5saW5lQ2FjaGVTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkocmV2aXNpb24gMTkyODk2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAt
NDcsNiArNDcsNyBAQCBzaXplX3Qgc2l6ZU9mQ29uc3RydWN0VmFyYXJncygpOwogc2l6ZV90IHNp
emVPZkNvbnN0cnVjdEZvcndhcmRWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mSW4oKTsKIHNpemVf
dCBzaXplT2ZBcml0aFN1YigpOworc2l6ZV90IHNpemVPZlZhbHVlQWRkKCk7CiAjaWYgRU5BQkxF
KE1BU01fUFJPQkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUoKTsKICNlbmRpZgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9u
IDE5Mjg5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDg0LDE1ICsxNDg0LDU2IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAgIHsKLSAgICAgICAgSl9KSVRPcGVyYXRp
b25fRUpKIG9wZXJhdGlvbjsKLSAgICAgICAgaWYgKCEocHJvdmVuVHlwZShtX25vZGUtPmNoaWxk
MSgpKSAmIFNwZWNGdWxsTnVtYmVyKQotICAgICAgICAgICAgJiYgIShwcm92ZW5UeXBlKG1fbm9k
ZS0+Y2hpbGQyKCkpICYgU3BlY0Z1bGxOdW1iZXIpKQotICAgICAgICAgICAgb3BlcmF0aW9uID0g
b3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9w
ZXJhdGlvbiA9IG9wZXJhdGlvblZhbHVlQWRkOwotICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbCgK
LSAgICAgICAgICAgIG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uKSwgbV9j
YWxsRnJhbWUsCi0gICAgICAgICAgICBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQg
PSBtX3N0YWNrbWFwSURzKys7CisKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxh
dGlvbigpKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEVtaXR0aW5nIFZhbHVlQWRkIHBhdGNo
cG9pbnQgd2l0aCBzdGFja21hcCAjIiwgc3RhY2ttYXBJRCwgIlxuIik7CisKKyNpZiBGVExfVVNF
U19CMworICAgICAgICBDUkFTSCgpOworI2Vsc2UKKyAgICAgICAgYXV0byBsZWZ0Q2hpbGQgPSBt
X25vZGUtPmNoaWxkMSgpOworICAgICAgICBhdXRvIHJpZ2h0Q2hpbGQgPSBtX25vZGUtPmNoaWxk
MigpOworCisgICAgICAgIGlmICghKHByb3ZlblR5cGUobGVmdENoaWxkKSAmIFNwZWNGdWxsTnVt
YmVyKSB8fCAhKHByb3ZlblR5cGUocmlnaHRDaGlsZCkgJiBTcGVjRnVsbE51bWJlcikpIHsKKyAg
ICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24o
b3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIpLCBtX2NhbGxGcmFtZSwKKyAgICAgICAgICAgICAg
ICBsb3dKU1ZhbHVlKGxlZnRDaGlsZCksIGxvd0pTVmFsdWUocmlnaHRDaGlsZCkpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNW
YWx1ZShsZWZ0Q2hpbGQpOworICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dKU1ZhbHVlKHJpZ2h0
Q2hpbGQpOworCisgICAgICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKGFic3RyYWN0VmFs
dWUobGVmdENoaWxkKS5yZXN1bHRUeXBlKCkpOworICAgICAgICBTbmlwcGV0T3BlcmFuZCByaWdo
dE9wZXJhbmQoYWJzdHJhY3RWYWx1ZShyaWdodENoaWxkKS5yZXN1bHRUeXBlKCkpOworCisgICAg
ICAgIC8vIFRoZSBERkcgZG9lcyBub3QgYWx3YXlzIGZvbGQgdGhlIHN1bSBvZiAyIGNvbnN0YW50
IGludCBvcGVyYW5kcyB0b2dldGhlci4KKyAgICAgICAgLy8gQmVjYXVzZSB0aGUgc25pcHBldCBk
b2VzIG5vdCBzdXBwb3J0IGJvdGggb3BlcmFuZHMgYmVpbmcgY29uc3RhbnQsIGlmIHRoZSBsZWZ0
CisgICAgICAgIC8vIG9wZXJhbmQgaXMgYWxyZWFkeSBhIGNvbnN0YW50LCB3ZSdsbCBqdXN0IHBy
ZXRlbmQgdGhlIHJpZ2h0IG9wZXJhbmQgaXMgbm90LgorICAgICAgICBpZiAobGVmdENoaWxkLT5p
c0ludDMyQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIo
bGVmdENoaWxkLT5hc0ludDMyKCkpOworICAgICAgICBpZiAoIWxlZnRPcGVyYW5kLmlzQ29uc3Qo
KSAmJiByaWdodENoaWxkLT5pc0ludDMyQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJpZ2h0T3Bl
cmFuZC5zZXRDb25zdEludDMyKHJpZ2h0Q2hpbGQtPmFzSW50MzIoKSk7CisKKyAgICAgICAgLy8g
QXJndW1lbnRzOiBpZCwgYnl0ZXMsIHRhcmdldCwgbnVtQXJncywgYXJncy4uLgorICAgICAgICBT
dGFja21hcEFyZ3VtZW50TGlzdCBhcmd1bWVudHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQo
bV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQo
bV9vdXQuY29uc3RJbnQzMihWYWx1ZUFkZERlc2NyaXB0b3I6OmljU2l6ZSgpKSk7CisgICAgICAg
IGFyZ3VtZW50cy5hcHBlbmQoY29uc3ROdWxsKG1fb3V0LnJlZjgpKTsKKyAgICAgICAgYXJndW1l
bnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKDIpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVu
ZChsZWZ0KTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChyaWdodCk7CisKKyAgICAgICAgYXBw
ZW5kT1NSRXhpdEFyZ3VtZW50c0ZvclBhdGNocG9pbnRJZldpbGxDYXRjaEV4Y2VwdGlvbihhcmd1
bWVudHMsCisgICAgICAgICAgICBFeGNlcHRpb25UeXBlOjpCaW5hcnlPcEdlbmVyYXRvciwgMyk7
IC8vIGxlZnQsIHJpZ2h0LCBhbmQgcmVzdWx0IHNob3cgdXAgaW4gdGhlIHN0YWNrbWFwIGxvY2F0
aW9ucy4KKworICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwobV9vdXQuaW50NjQsIG1f
b3V0LnBhdGNocG9pbnRJbnQ2NEludHJpbnNpYygpLCBhcmd1bWVudHMpOworICAgICAgICBzZXRJ
bnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1BbnlSZWdDYWxsQ29udik7CisK
KyAgICAgICAgbV9mdGxTdGF0ZS5iaW5hcnlPcHMuYXBwZW5kKFZhbHVlQWRkRGVzY3JpcHRvcihz
dGFja21hcElELCBtX25vZGUtPm9yaWdpbi5zZW1hbnRpYywgbGVmdE9wZXJhbmQsIHJpZ2h0T3Bl
cmFuZCkpOworCisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CisjZW5kaWYKICAgICB9CiAgICAg
CiAgICAgdm9pZCBjb21waWxlU3RyQ2F0KCkK
</data>
<flag name="review"
          id="291398"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266414</attachid>
            <date>2015-12-01 17:03:55 -0800</date>
            <delta_ts>2015-12-01 17:10:52 -0800</delta_ts>
            <desc>patch 4: plus 2 bug fixes.</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>12965</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyOTI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE1LTEyLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmUgZGV0YWlsIGFib3V0IGhvdyB3
ZSBjaG9vc2luZyB0byBoYW5kbGUgb3BlcmFuZHMgdG8gdGhlIGJpbmFyeSBzbmlwcGV0cyB0aGF0
CisgICAgICAgIG1heSBiZSBjb25zdGFudDogdGhlIHNsb3cgcGF0aCBjYWxsIHRvIGEgQysrIGZ1
bmN0aW9uIHN0aWxsIG5lZWRzIHRoZSBjb25zdGFudAorICAgICAgICBvcGVyYW5kIGxvYWRlZCBp
biBhIHJlZ2lzdGVyLiAgVG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSdyZSBjaG9vc2luZyB0byBhbHdh
eXMgdGVsbAorICAgICAgICBMTFZNIHRvIGxvYWQgdGhlIG9wZXJhbmRzIGludG8gcmVnaXN0ZXJz
IGV2ZW4gaWYgdGhleSBtYXkgYmUgY29uc3RhbnQuICBIb3dldmVyLAorICAgICAgICBldmVuIHRo
b3VnaCBhIGNvbnN0YW50IG9wZXJhbmQgaXMgcHJlbG9hZGVkIGluIGEgcmVnaXN0ZXIsIHRoZSBz
bmlwcGV0IGdlbmVyYXRvcgorICAgICAgICB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlIG9mIGl0LiAg
SXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbgorICAgICAgICBpbW1l
ZGlhdGUuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGVCaW5hcnlPcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Z2VuZXJhdGVBcml0aFN1
YkZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgp
OgorICAgICAgICAtIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aCgpIGN1cnJlbnRseSBpcyBhbiBl
eGFjdCBjb3B5IG9mIGdlbmVyYXRlQXJpdGhTdWJGYXN0UGF0aCgpCisgICAgICAgICAgZXhjZXB0
IHRoYXQgaXQgdXNlcyBKSVRBZGRHZW5lcmF0b3IgaW5zdGVhZCBvZiBKSVRTdWJHZW5lcmF0b3Iu
ICBXaGVuIHdlIGFkZAorICAgICAgICAgIHN1cHBvcnQgZm9yIEpJVE11bEdlbmVyYXRvciBsYXRl
ciwgdGhlIGNvZGUgd2lsbCBzdGFydCB0byB2YXJ5LiAgV2UnbGwgcmVmYWN0b3IKKyAgICAgICAg
ICB0aGVzZSBmdW5jdGlvbnMgdGhlbiB3aGVuIHdlIGhhdmUgbW9yZSBpbnNpZ2h0IGludG8gd2hh
dCBuZWVkcyB0byB2YXJ5IGJldHdlZW4KKyAgICAgICAgICB0aGUgaW1wbGVtZW50YXRpb25zLgor
CisgICAgICAgICogZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5oOgorICAgICAgICAqIGZ0bC9GVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVlQWRkRGVzY3JpcHRvcjo6
VmFsdWVBZGREZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZUFkZERlc2NyaXB0
b3I6OmljU2l6ZSk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6c2l6ZU9mVmFsdWVBZGQpOgorICAgICAgICAqIGZ0bC9GVExJbmxpbmVD
YWNoZVNpemUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVmFsdWVBZGQpOgorCiAyMDE1LTEyLTAx
ICBDYWl0bGluIFBvdHRlciAgPGNhaXRwb3R0ZXI4OEBnbWFpbC5jb20+CiAKICAgICAgICAgW0pT
Q10gc3VwcG9ydCBDb3ZlckluaXRpYWxpemVkTmFtZSBpbiBuZXN0ZWQgQXNzaWdubWVudFBhdHRl
cm5zCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlz
aW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUJp
bmFyeU9wSUNGYXN0UGF0aCgKICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAgICAgICAgIGdl
bmVyYXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmln
aHQsIHVzZWRSZWdpc3RlcnMsIGRvbmUsIHNsb3dQYXRoU3RhcnQpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICBnZW5lcmF0ZVZhbHVlQWRk
RmFzdFBhdGgoaWMsIGZhc3RQYXRoSklULCByZXN1bHQsIGxlZnQsIHJpZ2h0LCB1c2VkUmVnaXN0
ZXJzLCBkb25lLCBzbG93UGF0aFN0YXJ0KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJp
bmFyeU9wLmNwcAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlQmluYXJ5T3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiREZHTm9kZVR5cGUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yLmgiCiAKQEAgLTE4OCw2ICsxODksNDMgQEAgdm9pZCBnZW5lcmF0ZUFyaXRo
U3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOwog
fQogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImIGlj
LCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgbGVmdCwgR1BS
UmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIENDYWxsSGVscGVyczo6
SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0KQoreworICAgIEFT
U0VSVChpYy5ub2RlVHlwZSgpID09IFZhbHVlQWRkKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IgYWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOworCisgICAgQmluYXJ5U25pcHBldFJlZ2lz
dGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisKKyAg
ICBHUFJSZWcgc2NyYXRjaEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAg
ICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsKKyAgICBG
UFJSZWcgcmlnaHRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7CisgICAgRlBS
UmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOworCisgICAgSklUQWRkR2VuZXJhdG9yIGdl
bihpYy5sZWZ0T3BlcmFuZCgpLCBpYy5yaWdodE9wZXJhbmQoKSwgSlNWYWx1ZVJlZ3MocmVzdWx0
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MobGVmdCksIEpTVmFsdWVSZWdzKHJpZ2h0KSwgbGVmdEZQ
UiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworCisgICAgYXV0byBudW1iZXJP
ZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworCisgICAgY29udGV4dC5pbml0aWFs
aXplUmVnaXN0ZXJzKGppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKworICAg
IEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOworICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxp
bmsoJmppdCk7CisgICAgY29udGV4dC5yZXN0b3JlUmVnaXN0ZXJzKGppdCk7CisgICAgYWxsb2Nh
dG9yLnJlc3RvcmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBudW1iZXJPZkJ5dGVzVXNl
ZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMsCisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvcjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKKyAgICBkb25lID0gaml0Lmp1
bXAoKTsKKworICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBjb250
ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJl
Z2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNlZFJl
Z2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNrU3Bh
Y2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
aAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21w
aWxlQmluYXJ5T3AuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAgdm9pZCBnZW5l
cmF0ZUFyaXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBsZWZ0LCBHUFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCiAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQp
OwogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImLCBD
Q2FsbEhlbHBlcnMmLAorICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcgcmln
aHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wJiBk
b25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpOworCiB9IC8vIG5hbWVzcGFj
ZSBGVEwKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJldmlzaW9uIDE5Mjkw
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsMTIgQEAgcHVibGljOgogICAgIHN0YXRp
YyBzaXplX3QgaWNTaXplKCk7CiB9OwogCitjbGFzcyBWYWx1ZUFkZERlc2NyaXB0b3IgOiBwdWJs
aWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1ZUFkZERlc2NyaXB0b3Io
dW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgY29uc3QgU25pcHBldE9wZXJhbmQmIGxl
ZnRPcGVyYW5kLCBjb25zdCBTbmlwcGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKTsKKyAgICBzdGF0
aWMgc2l6ZV90IGljU2l6ZSgpOworfTsKKwogLy8gWW91IGNhbiBjcmVhdGUgYSBsYXp5IHNsb3cg
cGF0aCBjYWxsIGluIGxvd2VyREZHVG9MTFZNIGJ5IGRvaW5nOgogLy8gbV9mdGxTdGF0ZS5sYXp5
U2xvd1BhdGhzLmFwcGVuZCgKIC8vICAgICBMYXp5U2xvd1BhdGhEZXNjcmlwdG9yKApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3JJbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNo
ZURlc2NyaXB0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0NywxOCBAQCBzaXplX3QgQXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUo
KQogICAgIHJldHVybiBzaXplT2ZBcml0aFN1YigpOwogfQogCitWYWx1ZUFkZERlc2NyaXB0b3I6
OlZhbHVlQWRkRGVzY3JpcHRvcih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgY29uc3QgU25pcHBldE9wZXJhbmQmIGxlZnRPcGVyYW5kLCBjb25zdCBTbmlw
cGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKQorICAgIDogQmluYXJ5T3BEZXNjcmlwdG9yKERGRzo6
VmFsdWVBZGQsIHN0YWNrbWFwSUQsIGNvZGVPcmlnaW4sIGljU2l6ZSgpLAorICAgICAgICAiVmFs
dWVBZGQiLCAiVmFsdWVBZGQgSUMgZmFzdCBwYXRoIiwgREZHOjpvcGVyYXRpb25WYWx1ZUFkZCwg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkKK3sKK30KKworc2l6ZV90IFZhbHVlQWRkRGVzY3Jp
cHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mVmFsdWVBZGQoKTsKK30KKwogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3Bw
CShyZXZpc2lvbiAxOTI5MDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGlu
ZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMjMgQEAgc2l6ZV90
IHNpemVPZkFyaXRoU3ViKCkKICNlbmRpZgogfQogCitzaXplX3Qgc2l6ZU9mVmFsdWVBZGQoKQor
eworI2lmIENQVShBUk02NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTgwOyAvLyBBUk02
NCByZWxlYXNlLgorI2Vsc2UKKyAgICByZXR1cm4gMjc2OyAvLyBBUk02NCBkZWJ1Zy4KKyNlbmRp
ZgorI2Vsc2UgLy8gQ1BVKFg4Nl82NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTk5OyAv
LyBYODZfNjQgcmVsZWFzZS4KKyNlbHNlCisgICAgcmV0dXJuIDI4NjsgLy8gWDg2XzY0IGRlYnVn
LgorI2VuZGlmCisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc2l6ZV90IHNp
emVPZlByb2JlKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5l
Q2FjaGVTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bmxpbmVDYWNoZVNpemUuaAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
NyBAQCBzaXplX3Qgc2l6ZU9mQ29uc3RydWN0VmFyYXJncygpOwogc2l6ZV90IHNpemVPZkNvbnN0
cnVjdEZvcndhcmRWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mSW4oKTsKIHNpemVfdCBzaXplT2ZB
cml0aFN1YigpOworc2l6ZV90IHNpemVPZlZhbHVlQWRkKCk7CiAjaWYgRU5BQkxFKE1BU01fUFJP
QkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUoKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5MjkwMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzQsNyArMjM0LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgR2V0QnlJZDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVmFsdWVBZGQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG1h
eSBoYXZlIHRvIGZsdXNoIG9uZSB0aGluZyBmb3IgR2V0QnlJZHMvQXJpdGhTdWJzIHdoZW4gdGhl
IGJhc2UgYW5kIHJlc3VsdCBvciB0aGUgbGVmdC9yaWdodCBhbmQgdGhlIHJlc3VsdAogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYXJlIGFzc2lnbmVkIHRoZSBzYW1lIHJlZ2lzdGVyLiBGb3Ig
YSBtb3JlIGNvbXByZWhlbnNpdmUgb3ZlcnZpZXcsIGxvb2sgYXQgdGhlIGNvbW1lbnQgaW4gRlRM
Q29tcGlsZS5jcHAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEFy
aXRoU3ViICYmIG5vZGUtPmJpbmFyeVVzZUtpbmQoKSAhPSBVbnR5cGVkVXNlKQpAQCAtMjQzLDgg
KzI0NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZXJJbmZvKiBl
eGNlcHRpb25IYW5kbGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB3aWxsQ2F0Y2hF
eGNlcHRpb24gPSBtX2dyYXBoLndpbGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG5vZGUt
Pm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aWxsQ2F0Y2hFeGNlcHRpb24pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG51bWJlck9mR2V0QnlJZE9yU3Vi
U3BpbGxzID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOdW1iZXJPZkNhdGNo
U3BpbGxzID0gc3RkOjptYXgobWF4TnVtYmVyT2ZDYXRjaFNwaWxscywgbnVtYmVyT2ZHZXRCeUlk
T3JTdWJTcGlsbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbnVtYmVyT2ZHZXRCeUlkT3JCaW5hcnlPcFNwaWxscyA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4TnVtYmVyT2ZDYXRjaFNwaWxscyA9IHN0ZDo6bWF4KG1heE51bWJl
ck9mQ2F0Y2hTcGlsbHMsIG51bWJlck9mR2V0QnlJZE9yQmluYXJ5T3BTcGlsbHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIH0KQEAgLTE0ODQsMTUgKzE0ODUsNTYgQEAgcHJpdmF0ZToKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgpCiAgICAgewotICAgICAgICBKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uOwotICAgICAgICBpZiAoIShwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQx
KCkpICYgU3BlY0Z1bGxOdW1iZXIpCi0gICAgICAgICAgICAmJiAhKHByb3ZlblR5cGUobV9ub2Rl
LT5jaGlsZDIoKSkgJiBTcGVjRnVsbE51bWJlcikpCi0gICAgICAgICAgICBvcGVyYXRpb24gPSBv
cGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgb3Bl
cmF0aW9uID0gb3BlcmF0aW9uVmFsdWVBZGQ7Ci0gICAgICAgIHNldEpTVmFsdWUodm1DYWxsKAot
ICAgICAgICAgICAgbV9vdXQuaW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb24pLCBtX2Nh
bGxGcmFtZSwKLSAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyNpZiBGVExfVVNFU19CMworICAgICAgICBDUkFT
SCgpOworI2Vsc2UKKyAgICAgICAgYXV0byBsZWZ0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMSgpOwor
ICAgICAgICBhdXRvIHJpZ2h0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMigpOworCisgICAgICAgIGlm
ICghKHByb3ZlblR5cGUobGVmdENoaWxkKSAmIFNwZWNGdWxsTnVtYmVyKSB8fCAhKHByb3ZlblR5
cGUocmlnaHRDaGlsZCkgJiBTcGVjRnVsbE51bWJlcikpIHsKKyAgICAgICAgICAgIHNldEpTVmFs
dWUodm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRO
b3ROdW1iZXIpLCBtX2NhbGxGcmFtZSwKKyAgICAgICAgICAgICAgICBsb3dKU1ZhbHVlKGxlZnRD
aGlsZCksIGxvd0pTVmFsdWUocmlnaHRDaGlsZCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7
CisKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQorICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEVtaXR0aW5nIFZhbHVlQWRkIHBhdGNocG9pbnQgd2l0aCBzdGFja21h
cCAjIiwgc3RhY2ttYXBJRCwgIlxuIik7CisKKyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1Zh
bHVlKGxlZnRDaGlsZCk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUocmlnaHRD
aGlsZCk7CisKKyAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQoYWJzdHJhY3RWYWx1
ZShsZWZ0Q2hpbGQpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZChhYnN0cmFjdFZhbHVlKHJpZ2h0Q2hpbGQpLnJlc3VsdFR5cGUoKSk7CisKKyAgICAg
ICAgLy8gVGhlIERGRyBkb2VzIG5vdCBhbHdheXMgZm9sZCB0aGUgc3VtIG9mIDIgY29uc3RhbnQg
aW50IG9wZXJhbmRzIHRvZ2V0aGVyLgorICAgICAgICAvLyBCZWNhdXNlIHRoZSBzbmlwcGV0IGRv
ZXMgbm90IHN1cHBvcnQgYm90aCBvcGVyYW5kcyBiZWluZyBjb25zdGFudCwgaWYgdGhlIGxlZnQK
KyAgICAgICAgLy8gb3BlcmFuZCBpcyBhbHJlYWR5IGEgY29uc3RhbnQsIHdlJ2xsIGp1c3QgcHJl
dGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBpcyBub3QuCisgICAgICAgIGlmIChsZWZ0Q2hpbGQtPmlz
SW50MzJDb25zdGFudCgpKQorICAgICAgICAgICAgbGVmdE9wZXJhbmQuc2V0Q29uc3RJbnQzMihs
ZWZ0Q2hpbGQtPmFzSW50MzIoKSk7CisgICAgICAgIGlmICghbGVmdE9wZXJhbmQuaXNDb25zdCgp
ICYmIHJpZ2h0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpKQorICAgICAgICAgICAgcmlnaHRPcGVy
YW5kLnNldENvbnN0SW50MzIocmlnaHRDaGlsZC0+YXNJbnQzMigpKTsKKworICAgICAgICAvLyBB
cmd1bWVudHM6IGlkLCBieXRlcywgdGFyZ2V0LCBudW1BcmdzLCBhcmdzLi4uCisgICAgICAgIFN0
YWNrbWFwQXJndW1lbnRMaXN0IGFyZ3VtZW50czsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZCht
X291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZCht
X291dC5jb25zdEludDMyKFZhbHVlQWRkRGVzY3JpcHRvcjo6aWNTaXplKCkpKTsKKyAgICAgICAg
YXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOworICAgICAgICBhcmd1bWVu
dHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMikpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KGxlZnQpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJpZ2h0KTsKKworICAgICAgICBhcHBl
bmRPU1JFeGl0QXJndW1lbnRzRm9yUGF0Y2hwb2ludElmV2lsbENhdGNoRXhjZXB0aW9uKGFyZ3Vt
ZW50cywKKyAgICAgICAgICAgIEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9wR2VuZXJhdG9yLCAzKTsg
Ly8gbGVmdCwgcmlnaHQsIGFuZCByZXN1bHQgc2hvdyB1cCBpbiB0aGUgc3RhY2ttYXAgbG9jYXRp
b25zLgorCisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbChtX291dC5pbnQ2NCwgbV9v
dXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7CisgICAgICAgIHNldElu
c3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKKwor
ICAgICAgICBtX2Z0bFN0YXRlLmJpbmFyeU9wcy5hcHBlbmQoVmFsdWVBZGREZXNjcmlwdG9yKHN0
YWNrbWFwSUQsIG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVy
YW5kKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKKyNlbmRpZgogICAgIH0KICAgICAK
ICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQo=
</data>
<flag name="review"
          id="291434"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266415</attachid>
            <date>2015-12-01 17:10:52 -0800</date>
            <delta_ts>2015-12-02 11:06:06 -0800</delta_ts>
            <desc>patch 5: preserve original compileValueAdd() when #if FTL_USES_B3.</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>12866</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyOTI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE1LTEyLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmUgZGV0YWlsIGFib3V0IGhvdyB3
ZSBjaG9vc2luZyB0byBoYW5kbGUgb3BlcmFuZHMgdG8gdGhlIGJpbmFyeSBzbmlwcGV0cyB0aGF0
CisgICAgICAgIG1heSBiZSBjb25zdGFudDogdGhlIHNsb3cgcGF0aCBjYWxsIHRvIGEgQysrIGZ1
bmN0aW9uIHN0aWxsIG5lZWRzIHRoZSBjb25zdGFudAorICAgICAgICBvcGVyYW5kIGxvYWRlZCBp
biBhIHJlZ2lzdGVyLiAgVG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSdyZSBjaG9vc2luZyB0byBhbHdh
eXMgdGVsbAorICAgICAgICBMTFZNIHRvIGxvYWQgdGhlIG9wZXJhbmRzIGludG8gcmVnaXN0ZXJz
IGV2ZW4gaWYgdGhleSBtYXkgYmUgY29uc3RhbnQuICBIb3dldmVyLAorICAgICAgICBldmVuIHRo
b3VnaCBhIGNvbnN0YW50IG9wZXJhbmQgaXMgcHJlbG9hZGVkIGluIGEgcmVnaXN0ZXIsIHRoZSBz
bmlwcGV0IGdlbmVyYXRvcgorICAgICAgICB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlIG9mIGl0LiAg
SXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbgorICAgICAgICBpbW1l
ZGlhdGUuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGVCaW5hcnlPcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Z2VuZXJhdGVBcml0aFN1
YkZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgp
OgorICAgICAgICAtIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aCgpIGN1cnJlbnRseSBpcyBhbiBl
eGFjdCBjb3B5IG9mIGdlbmVyYXRlQXJpdGhTdWJGYXN0UGF0aCgpCisgICAgICAgICAgZXhjZXB0
IHRoYXQgaXQgdXNlcyBKSVRBZGRHZW5lcmF0b3IgaW5zdGVhZCBvZiBKSVRTdWJHZW5lcmF0b3Iu
ICBXaGVuIHdlIGFkZAorICAgICAgICAgIHN1cHBvcnQgZm9yIEpJVE11bEdlbmVyYXRvciBsYXRl
ciwgdGhlIGNvZGUgd2lsbCBzdGFydCB0byB2YXJ5LiAgV2UnbGwgcmVmYWN0b3IKKyAgICAgICAg
ICB0aGVzZSBmdW5jdGlvbnMgdGhlbiB3aGVuIHdlIGhhdmUgbW9yZSBpbnNpZ2h0IGludG8gd2hh
dCBuZWVkcyB0byB2YXJ5IGJldHdlZW4KKyAgICAgICAgICB0aGUgaW1wbGVtZW50YXRpb25zLgor
CisgICAgICAgICogZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5oOgorICAgICAgICAqIGZ0bC9GVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVlQWRkRGVzY3JpcHRvcjo6
VmFsdWVBZGREZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZUFkZERlc2NyaXB0
b3I6OmljU2l6ZSk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6c2l6ZU9mVmFsdWVBZGQpOgorICAgICAgICAqIGZ0bC9GVExJbmxpbmVD
YWNoZVNpemUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVmFsdWVBZGQpOgorCiAyMDE1LTEyLTAx
ICBDYWl0bGluIFBvdHRlciAgPGNhaXRwb3R0ZXI4OEBnbWFpbC5jb20+CiAKICAgICAgICAgW0pT
Q10gc3VwcG9ydCBDb3ZlckluaXRpYWxpemVkTmFtZSBpbiBuZXN0ZWQgQXNzaWdubWVudFBhdHRl
cm5zCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlz
aW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUJp
bmFyeU9wSUNGYXN0UGF0aCgKICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAgICAgICAgIGdl
bmVyYXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmln
aHQsIHVzZWRSZWdpc3RlcnMsIGRvbmUsIHNsb3dQYXRoU3RhcnQpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICBnZW5lcmF0ZVZhbHVlQWRk
RmFzdFBhdGgoaWMsIGZhc3RQYXRoSklULCByZXN1bHQsIGxlZnQsIHJpZ2h0LCB1c2VkUmVnaXN0
ZXJzLCBkb25lLCBzbG93UGF0aFN0YXJ0KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJp
bmFyeU9wLmNwcAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlQmluYXJ5T3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiREZHTm9kZVR5cGUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yLmgiCiAKQEAgLTE4OCw2ICsxODksNDMgQEAgdm9pZCBnZW5lcmF0ZUFyaXRo
U3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOwog
fQogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImIGlj
LCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgbGVmdCwgR1BS
UmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIENDYWxsSGVscGVyczo6
SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0KQoreworICAgIEFT
U0VSVChpYy5ub2RlVHlwZSgpID09IFZhbHVlQWRkKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IgYWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOworCisgICAgQmluYXJ5U25pcHBldFJlZ2lz
dGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisKKyAg
ICBHUFJSZWcgc2NyYXRjaEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAg
ICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsKKyAgICBG
UFJSZWcgcmlnaHRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7CisgICAgRlBS
UmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOworCisgICAgSklUQWRkR2VuZXJhdG9yIGdl
bihpYy5sZWZ0T3BlcmFuZCgpLCBpYy5yaWdodE9wZXJhbmQoKSwgSlNWYWx1ZVJlZ3MocmVzdWx0
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MobGVmdCksIEpTVmFsdWVSZWdzKHJpZ2h0KSwgbGVmdEZQ
UiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworCisgICAgYXV0byBudW1iZXJP
ZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworCisgICAgY29udGV4dC5pbml0aWFs
aXplUmVnaXN0ZXJzKGppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKworICAg
IEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOworICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxp
bmsoJmppdCk7CisgICAgY29udGV4dC5yZXN0b3JlUmVnaXN0ZXJzKGppdCk7CisgICAgYWxsb2Nh
dG9yLnJlc3RvcmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBudW1iZXJPZkJ5dGVzVXNl
ZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMsCisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvcjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKKyAgICBkb25lID0gaml0Lmp1
bXAoKTsKKworICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBjb250
ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJl
Z2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNlZFJl
Z2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNrU3Bh
Y2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
aAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21w
aWxlQmluYXJ5T3AuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAgdm9pZCBnZW5l
cmF0ZUFyaXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBsZWZ0LCBHUFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCiAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQp
OwogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImLCBD
Q2FsbEhlbHBlcnMmLAorICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcgcmln
aHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wJiBk
b25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpOworCiB9IC8vIG5hbWVzcGFj
ZSBGVEwKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJldmlzaW9uIDE5Mjkw
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsMTIgQEAgcHVibGljOgogICAgIHN0YXRp
YyBzaXplX3QgaWNTaXplKCk7CiB9OwogCitjbGFzcyBWYWx1ZUFkZERlc2NyaXB0b3IgOiBwdWJs
aWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1ZUFkZERlc2NyaXB0b3Io
dW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgY29uc3QgU25pcHBldE9wZXJhbmQmIGxl
ZnRPcGVyYW5kLCBjb25zdCBTbmlwcGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKTsKKyAgICBzdGF0
aWMgc2l6ZV90IGljU2l6ZSgpOworfTsKKwogLy8gWW91IGNhbiBjcmVhdGUgYSBsYXp5IHNsb3cg
cGF0aCBjYWxsIGluIGxvd2VyREZHVG9MTFZNIGJ5IGRvaW5nOgogLy8gbV9mdGxTdGF0ZS5sYXp5
U2xvd1BhdGhzLmFwcGVuZCgKIC8vICAgICBMYXp5U2xvd1BhdGhEZXNjcmlwdG9yKApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3JJbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNo
ZURlc2NyaXB0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0NywxOCBAQCBzaXplX3QgQXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUo
KQogICAgIHJldHVybiBzaXplT2ZBcml0aFN1YigpOwogfQogCitWYWx1ZUFkZERlc2NyaXB0b3I6
OlZhbHVlQWRkRGVzY3JpcHRvcih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgY29uc3QgU25pcHBldE9wZXJhbmQmIGxlZnRPcGVyYW5kLCBjb25zdCBTbmlw
cGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKQorICAgIDogQmluYXJ5T3BEZXNjcmlwdG9yKERGRzo6
VmFsdWVBZGQsIHN0YWNrbWFwSUQsIGNvZGVPcmlnaW4sIGljU2l6ZSgpLAorICAgICAgICAiVmFs
dWVBZGQiLCAiVmFsdWVBZGQgSUMgZmFzdCBwYXRoIiwgREZHOjpvcGVyYXRpb25WYWx1ZUFkZCwg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkKK3sKK30KKworc2l6ZV90IFZhbHVlQWRkRGVzY3Jp
cHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mVmFsdWVBZGQoKTsKK30KKwogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3Bw
CShyZXZpc2lvbiAxOTI5MDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGlu
ZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMjMgQEAgc2l6ZV90
IHNpemVPZkFyaXRoU3ViKCkKICNlbmRpZgogfQogCitzaXplX3Qgc2l6ZU9mVmFsdWVBZGQoKQor
eworI2lmIENQVShBUk02NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTgwOyAvLyBBUk02
NCByZWxlYXNlLgorI2Vsc2UKKyAgICByZXR1cm4gMjc2OyAvLyBBUk02NCBkZWJ1Zy4KKyNlbmRp
ZgorI2Vsc2UgLy8gQ1BVKFg4Nl82NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTk5OyAv
LyBYODZfNjQgcmVsZWFzZS4KKyNlbHNlCisgICAgcmV0dXJuIDI4NjsgLy8gWDg2XzY0IGRlYnVn
LgorI2VuZGlmCisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc2l6ZV90IHNp
emVPZlByb2JlKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5l
Q2FjaGVTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bmxpbmVDYWNoZVNpemUuaAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
NyBAQCBzaXplX3Qgc2l6ZU9mQ29uc3RydWN0VmFyYXJncygpOwogc2l6ZV90IHNpemVPZkNvbnN0
cnVjdEZvcndhcmRWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mSW4oKTsKIHNpemVfdCBzaXplT2ZB
cml0aFN1YigpOworc2l6ZV90IHNpemVPZlZhbHVlQWRkKCk7CiAjaWYgRU5BQkxFKE1BU01fUFJP
QkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUoKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5MjkwMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzQsNyArMjM0LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgR2V0QnlJZDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVmFsdWVBZGQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG1h
eSBoYXZlIHRvIGZsdXNoIG9uZSB0aGluZyBmb3IgR2V0QnlJZHMvQXJpdGhTdWJzIHdoZW4gdGhl
IGJhc2UgYW5kIHJlc3VsdCBvciB0aGUgbGVmdC9yaWdodCBhbmQgdGhlIHJlc3VsdAogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYXJlIGFzc2lnbmVkIHRoZSBzYW1lIHJlZ2lzdGVyLiBGb3Ig
YSBtb3JlIGNvbXByZWhlbnNpdmUgb3ZlcnZpZXcsIGxvb2sgYXQgdGhlIGNvbW1lbnQgaW4gRlRM
Q29tcGlsZS5jcHAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEFy
aXRoU3ViICYmIG5vZGUtPmJpbmFyeVVzZUtpbmQoKSAhPSBVbnR5cGVkVXNlKQpAQCAtMjQzLDgg
KzI0NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZXJJbmZvKiBl
eGNlcHRpb25IYW5kbGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB3aWxsQ2F0Y2hF
eGNlcHRpb24gPSBtX2dyYXBoLndpbGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG5vZGUt
Pm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aWxsQ2F0Y2hFeGNlcHRpb24pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG51bWJlck9mR2V0QnlJZE9yU3Vi
U3BpbGxzID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOdW1iZXJPZkNhdGNo
U3BpbGxzID0gc3RkOjptYXgobWF4TnVtYmVyT2ZDYXRjaFNwaWxscywgbnVtYmVyT2ZHZXRCeUlk
T3JTdWJTcGlsbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbnVtYmVyT2ZHZXRCeUlkT3JCaW5hcnlPcFNwaWxscyA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4TnVtYmVyT2ZDYXRjaFNwaWxscyA9IHN0ZDo6bWF4KG1heE51bWJl
ck9mQ2F0Y2hTcGlsbHMsIG51bWJlck9mR2V0QnlJZE9yQmluYXJ5T3BTcGlsbHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIH0KQEAgLTE0ODQsNiArMTQ4NSw3IEBAIHByaXZhdGU6CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAgIHsKKyNpZiBGVExfVVNFU19CMwogICAgICAg
ICBKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uOwogICAgICAgICBpZiAoIShwcm92ZW5UeXBl
KG1fbm9kZS0+Y2hpbGQxKCkpICYgU3BlY0Z1bGxOdW1iZXIpCiAgICAgICAgICAgICAmJiAhKHBy
b3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkgJiBTcGVjRnVsbE51bWJlcikpCkBAIC0xNDkzLDYg
KzE0OTUsNTQgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoCiAgICAgICAg
ICAgICBtX291dC5pbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbiksIG1fY2FsbEZyYW1l
LAogICAgICAgICAgICAgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSwgbG93SlNWYWx1ZSht
X25vZGUtPmNoaWxkMigpKSkpOworI2Vsc2UKKyAgICAgICAgYXV0byBsZWZ0Q2hpbGQgPSBtX25v
ZGUtPmNoaWxkMSgpOworICAgICAgICBhdXRvIHJpZ2h0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMigp
OworCisgICAgICAgIGlmICghKHByb3ZlblR5cGUobGVmdENoaWxkKSAmIFNwZWNGdWxsTnVtYmVy
KSB8fCAhKHByb3ZlblR5cGUocmlnaHRDaGlsZCkgJiBTcGVjRnVsbE51bWJlcikpIHsKKyAgICAg
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGROb3ROdW1iZXIpLCBtX2NhbGxGcmFtZSwKKyAgICAgICAgICAgICAgICBs
b3dKU1ZhbHVlKGxlZnRDaGlsZCksIGxvd0pTVmFsdWUocmlnaHRDaGlsZCkpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQgPSBt
X3N0YWNrbWFwSURzKys7CisKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlv
bigpKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEVtaXR0aW5nIFZhbHVlQWRkIHBhdGNocG9p
bnQgd2l0aCBzdGFja21hcCAjIiwgc3RhY2ttYXBJRCwgIlxuIik7CisKKyAgICAgICAgTFZhbHVl
IGxlZnQgPSBsb3dKU1ZhbHVlKGxlZnRDaGlsZCk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxv
d0pTVmFsdWUocmlnaHRDaGlsZCk7CisKKyAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJh
bmQoYWJzdHJhY3RWYWx1ZShsZWZ0Q2hpbGQpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBw
ZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZChhYnN0cmFjdFZhbHVlKHJpZ2h0Q2hpbGQpLnJlc3VsdFR5
cGUoKSk7CisKKyAgICAgICAgLy8gVGhlIERGRyBkb2VzIG5vdCBhbHdheXMgZm9sZCB0aGUgc3Vt
IG9mIDIgY29uc3RhbnQgaW50IG9wZXJhbmRzIHRvZ2V0aGVyLgorICAgICAgICAvLyBCZWNhdXNl
IHRoZSBzbmlwcGV0IGRvZXMgbm90IHN1cHBvcnQgYm90aCBvcGVyYW5kcyBiZWluZyBjb25zdGFu
dCwgaWYgdGhlIGxlZnQKKyAgICAgICAgLy8gb3BlcmFuZCBpcyBhbHJlYWR5IGEgY29uc3RhbnQs
IHdlJ2xsIGp1c3QgcHJldGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBpcyBub3QuCisgICAgICAgIGlm
IChsZWZ0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpKQorICAgICAgICAgICAgbGVmdE9wZXJhbmQu
c2V0Q29uc3RJbnQzMihsZWZ0Q2hpbGQtPmFzSW50MzIoKSk7CisgICAgICAgIGlmICghbGVmdE9w
ZXJhbmQuaXNDb25zdCgpICYmIHJpZ2h0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpKQorICAgICAg
ICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIocmlnaHRDaGlsZC0+YXNJbnQzMigpKTsK
KworICAgICAgICAvLyBBcmd1bWVudHM6IGlkLCBieXRlcywgdGFyZ2V0LCBudW1BcmdzLCBhcmdz
Li4uCisgICAgICAgIFN0YWNrbWFwQXJndW1lbnRMaXN0IGFyZ3VtZW50czsKKyAgICAgICAgYXJn
dW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpKTsKKyAgICAgICAgYXJn
dW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKFZhbHVlQWRkRGVzY3JpcHRvcjo6aWNTaXpl
KCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOwor
ICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMikpOworICAgICAgICBh
cmd1bWVudHMuYXBwZW5kKGxlZnQpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJpZ2h0KTsK
KworICAgICAgICBhcHBlbmRPU1JFeGl0QXJndW1lbnRzRm9yUGF0Y2hwb2ludElmV2lsbENhdGNo
RXhjZXB0aW9uKGFyZ3VtZW50cywKKyAgICAgICAgICAgIEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9w
R2VuZXJhdG9yLCAzKTsgLy8gbGVmdCwgcmlnaHQsIGFuZCByZXN1bHQgc2hvdyB1cCBpbiB0aGUg
c3RhY2ttYXAgbG9jYXRpb25zLgorCisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbCht
X291dC5pbnQ2NCwgbV9vdXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7
CisgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJl
Z0NhbGxDb252KTsKKworICAgICAgICBtX2Z0bFN0YXRlLmJpbmFyeU9wcy5hcHBlbmQoVmFsdWVB
ZGREZXNjcmlwdG9yKHN0YWNrbWFwSUQsIG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLCBsZWZ0T3Bl
cmFuZCwgcmlnaHRPcGVyYW5kKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKKyNlbmRp
ZgogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266454</attachid>
            <date>2015-12-02 11:06:06 -0800</date>
            <delta_ts>2015-12-02 11:06:46 -0800</delta_ts>
            <desc>patch 6: added back CRASH() for B3 in the same way that ArithSub does it.</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>12866</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyOTI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE1LTEyLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmUgZGV0YWlsIGFib3V0IGhvdyB3
ZSBjaG9vc2luZyB0byBoYW5kbGUgb3BlcmFuZHMgdG8gdGhlIGJpbmFyeSBzbmlwcGV0cyB0aGF0
CisgICAgICAgIG1heSBiZSBjb25zdGFudDogdGhlIHNsb3cgcGF0aCBjYWxsIHRvIGEgQysrIGZ1
bmN0aW9uIHN0aWxsIG5lZWRzIHRoZSBjb25zdGFudAorICAgICAgICBvcGVyYW5kIGxvYWRlZCBp
biBhIHJlZ2lzdGVyLiAgVG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSdyZSBjaG9vc2luZyB0byBhbHdh
eXMgdGVsbAorICAgICAgICBMTFZNIHRvIGxvYWQgdGhlIG9wZXJhbmRzIGludG8gcmVnaXN0ZXJz
IGV2ZW4gaWYgdGhleSBtYXkgYmUgY29uc3RhbnQuICBIb3dldmVyLAorICAgICAgICBldmVuIHRo
b3VnaCBhIGNvbnN0YW50IG9wZXJhbmQgaXMgcHJlbG9hZGVkIGluIGEgcmVnaXN0ZXIsIHRoZSBz
bmlwcGV0IGdlbmVyYXRvcgorICAgICAgICB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlIG9mIGl0LiAg
SXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbgorICAgICAgICBpbW1l
ZGlhdGUuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGVCaW5hcnlPcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Z2VuZXJhdGVBcml0aFN1
YkZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgp
OgorICAgICAgICAtIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aCgpIGN1cnJlbnRseSBpcyBhbiBl
eGFjdCBjb3B5IG9mIGdlbmVyYXRlQXJpdGhTdWJGYXN0UGF0aCgpCisgICAgICAgICAgZXhjZXB0
IHRoYXQgaXQgdXNlcyBKSVRBZGRHZW5lcmF0b3IgaW5zdGVhZCBvZiBKSVRTdWJHZW5lcmF0b3Iu
ICBXaGVuIHdlIGFkZAorICAgICAgICAgIHN1cHBvcnQgZm9yIEpJVE11bEdlbmVyYXRvciBsYXRl
ciwgdGhlIGNvZGUgd2lsbCBzdGFydCB0byB2YXJ5LiAgV2UnbGwgcmVmYWN0b3IKKyAgICAgICAg
ICB0aGVzZSBmdW5jdGlvbnMgdGhlbiB3aGVuIHdlIGhhdmUgbW9yZSBpbnNpZ2h0IGludG8gd2hh
dCBuZWVkcyB0byB2YXJ5IGJldHdlZW4KKyAgICAgICAgICB0aGUgaW1wbGVtZW50YXRpb25zLgor
CisgICAgICAgICogZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5oOgorICAgICAgICAqIGZ0bC9GVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVlQWRkRGVzY3JpcHRvcjo6
VmFsdWVBZGREZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZUFkZERlc2NyaXB0
b3I6OmljU2l6ZSk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6c2l6ZU9mVmFsdWVBZGQpOgorICAgICAgICAqIGZ0bC9GVExJbmxpbmVD
YWNoZVNpemUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVmFsdWVBZGQpOgorCiAyMDE1LTEyLTAx
ICBDYWl0bGluIFBvdHRlciAgPGNhaXRwb3R0ZXI4OEBnbWFpbC5jb20+CiAKICAgICAgICAgW0pT
Q10gc3VwcG9ydCBDb3ZlckluaXRpYWxpemVkTmFtZSBpbiBuZXN0ZWQgQXNzaWdubWVudFBhdHRl
cm5zCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlz
aW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUJp
bmFyeU9wSUNGYXN0UGF0aCgKICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAgICAgICAgIGdl
bmVyYXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmln
aHQsIHVzZWRSZWdpc3RlcnMsIGRvbmUsIHNsb3dQYXRoU3RhcnQpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICBnZW5lcmF0ZVZhbHVlQWRk
RmFzdFBhdGgoaWMsIGZhc3RQYXRoSklULCByZXN1bHQsIGxlZnQsIHJpZ2h0LCB1c2VkUmVnaXN0
ZXJzLCBkb25lLCBzbG93UGF0aFN0YXJ0KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJp
bmFyeU9wLmNwcAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlQmluYXJ5T3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiREZHTm9kZVR5cGUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yLmgiCiAKQEAgLTE4OCw2ICsxODksNDMgQEAgdm9pZCBnZW5lcmF0ZUFyaXRo
U3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOwog
fQogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImIGlj
LCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgbGVmdCwgR1BS
UmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIENDYWxsSGVscGVyczo6
SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0KQoreworICAgIEFT
U0VSVChpYy5ub2RlVHlwZSgpID09IFZhbHVlQWRkKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IgYWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOworCisgICAgQmluYXJ5U25pcHBldFJlZ2lz
dGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisKKyAg
ICBHUFJSZWcgc2NyYXRjaEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAg
ICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsKKyAgICBG
UFJSZWcgcmlnaHRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7CisgICAgRlBS
UmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOworCisgICAgSklUQWRkR2VuZXJhdG9yIGdl
bihpYy5sZWZ0T3BlcmFuZCgpLCBpYy5yaWdodE9wZXJhbmQoKSwgSlNWYWx1ZVJlZ3MocmVzdWx0
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MobGVmdCksIEpTVmFsdWVSZWdzKHJpZ2h0KSwgbGVmdEZQ
UiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworCisgICAgYXV0byBudW1iZXJP
ZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworCisgICAgY29udGV4dC5pbml0aWFs
aXplUmVnaXN0ZXJzKGppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKworICAg
IEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOworICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxp
bmsoJmppdCk7CisgICAgY29udGV4dC5yZXN0b3JlUmVnaXN0ZXJzKGppdCk7CisgICAgYWxsb2Nh
dG9yLnJlc3RvcmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBudW1iZXJPZkJ5dGVzVXNl
ZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMsCisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvcjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKKyAgICBkb25lID0gaml0Lmp1
bXAoKTsKKworICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBjb250
ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJl
Z2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNlZFJl
Z2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNrU3Bh
Y2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
aAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21w
aWxlQmluYXJ5T3AuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAgdm9pZCBnZW5l
cmF0ZUFyaXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBsZWZ0LCBHUFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCiAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQp
OwogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImLCBD
Q2FsbEhlbHBlcnMmLAorICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcgcmln
aHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wJiBk
b25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpOworCiB9IC8vIG5hbWVzcGFj
ZSBGVEwKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJldmlzaW9uIDE5Mjkw
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsMTIgQEAgcHVibGljOgogICAgIHN0YXRp
YyBzaXplX3QgaWNTaXplKCk7CiB9OwogCitjbGFzcyBWYWx1ZUFkZERlc2NyaXB0b3IgOiBwdWJs
aWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1ZUFkZERlc2NyaXB0b3Io
dW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgY29uc3QgU25pcHBldE9wZXJhbmQmIGxl
ZnRPcGVyYW5kLCBjb25zdCBTbmlwcGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKTsKKyAgICBzdGF0
aWMgc2l6ZV90IGljU2l6ZSgpOworfTsKKwogLy8gWW91IGNhbiBjcmVhdGUgYSBsYXp5IHNsb3cg
cGF0aCBjYWxsIGluIGxvd2VyREZHVG9MTFZNIGJ5IGRvaW5nOgogLy8gbV9mdGxTdGF0ZS5sYXp5
U2xvd1BhdGhzLmFwcGVuZCgKIC8vICAgICBMYXp5U2xvd1BhdGhEZXNjcmlwdG9yKApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3JJbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNo
ZURlc2NyaXB0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0NywxOCBAQCBzaXplX3QgQXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUo
KQogICAgIHJldHVybiBzaXplT2ZBcml0aFN1YigpOwogfQogCitWYWx1ZUFkZERlc2NyaXB0b3I6
OlZhbHVlQWRkRGVzY3JpcHRvcih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgY29uc3QgU25pcHBldE9wZXJhbmQmIGxlZnRPcGVyYW5kLCBjb25zdCBTbmlw
cGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKQorICAgIDogQmluYXJ5T3BEZXNjcmlwdG9yKERGRzo6
VmFsdWVBZGQsIHN0YWNrbWFwSUQsIGNvZGVPcmlnaW4sIGljU2l6ZSgpLAorICAgICAgICAiVmFs
dWVBZGQiLCAiVmFsdWVBZGQgSUMgZmFzdCBwYXRoIiwgREZHOjpvcGVyYXRpb25WYWx1ZUFkZCwg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkKK3sKK30KKworc2l6ZV90IFZhbHVlQWRkRGVzY3Jp
cHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mVmFsdWVBZGQoKTsKK30KKwogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3Bw
CShyZXZpc2lvbiAxOTI5MDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGlu
ZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMjMgQEAgc2l6ZV90
IHNpemVPZkFyaXRoU3ViKCkKICNlbmRpZgogfQogCitzaXplX3Qgc2l6ZU9mVmFsdWVBZGQoKQor
eworI2lmIENQVShBUk02NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTgwOyAvLyBBUk02
NCByZWxlYXNlLgorI2Vsc2UKKyAgICByZXR1cm4gMjc2OyAvLyBBUk02NCBkZWJ1Zy4KKyNlbmRp
ZgorI2Vsc2UgLy8gQ1BVKFg4Nl82NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTk5OyAv
LyBYODZfNjQgcmVsZWFzZS4KKyNlbHNlCisgICAgcmV0dXJuIDI4NjsgLy8gWDg2XzY0IGRlYnVn
LgorI2VuZGlmCisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc2l6ZV90IHNp
emVPZlByb2JlKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5l
Q2FjaGVTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bmxpbmVDYWNoZVNpemUuaAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
NyBAQCBzaXplX3Qgc2l6ZU9mQ29uc3RydWN0VmFyYXJncygpOwogc2l6ZV90IHNpemVPZkNvbnN0
cnVjdEZvcndhcmRWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mSW4oKTsKIHNpemVfdCBzaXplT2ZB
cml0aFN1YigpOworc2l6ZV90IHNpemVPZlZhbHVlQWRkKCk7CiAjaWYgRU5BQkxFKE1BU01fUFJP
QkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUoKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5MjkwMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzQsNyArMjM0LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgR2V0QnlJZDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVmFsdWVBZGQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG1h
eSBoYXZlIHRvIGZsdXNoIG9uZSB0aGluZyBmb3IgR2V0QnlJZHMvQXJpdGhTdWJzIHdoZW4gdGhl
IGJhc2UgYW5kIHJlc3VsdCBvciB0aGUgbGVmdC9yaWdodCBhbmQgdGhlIHJlc3VsdAogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYXJlIGFzc2lnbmVkIHRoZSBzYW1lIHJlZ2lzdGVyLiBGb3Ig
YSBtb3JlIGNvbXByZWhlbnNpdmUgb3ZlcnZpZXcsIGxvb2sgYXQgdGhlIGNvbW1lbnQgaW4gRlRM
Q29tcGlsZS5jcHAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEFy
aXRoU3ViICYmIG5vZGUtPmJpbmFyeVVzZUtpbmQoKSAhPSBVbnR5cGVkVXNlKQpAQCAtMjQzLDgg
KzI0NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZXJJbmZvKiBl
eGNlcHRpb25IYW5kbGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB3aWxsQ2F0Y2hF
eGNlcHRpb24gPSBtX2dyYXBoLndpbGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG5vZGUt
Pm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aWxsQ2F0Y2hFeGNlcHRpb24pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG51bWJlck9mR2V0QnlJZE9yU3Vi
U3BpbGxzID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOdW1iZXJPZkNhdGNo
U3BpbGxzID0gc3RkOjptYXgobWF4TnVtYmVyT2ZDYXRjaFNwaWxscywgbnVtYmVyT2ZHZXRCeUlk
T3JTdWJTcGlsbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbnVtYmVyT2ZHZXRCeUlkT3JCaW5hcnlPcFNwaWxscyA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4TnVtYmVyT2ZDYXRjaFNwaWxscyA9IHN0ZDo6bWF4KG1heE51bWJl
ck9mQ2F0Y2hTcGlsbHMsIG51bWJlck9mR2V0QnlJZE9yQmluYXJ5T3BTcGlsbHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIH0KQEAgLTE0ODQsNiArMTQ4NSw3IEBAIHByaXZhdGU6CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlVmFsdWVBZGQoKQogICAgIHsKKyNpZiBGVExfVVNFU19CMwogICAgICAg
ICBKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uOwogICAgICAgICBpZiAoIShwcm92ZW5UeXBl
KG1fbm9kZS0+Y2hpbGQxKCkpICYgU3BlY0Z1bGxOdW1iZXIpCiAgICAgICAgICAgICAmJiAhKHBy
b3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkgJiBTcGVjRnVsbE51bWJlcikpCkBAIC0xNDkzLDYg
KzE0OTUsNTQgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoCiAgICAgICAg
ICAgICBtX291dC5pbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbiksIG1fY2FsbEZyYW1l
LAogICAgICAgICAgICAgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSwgbG93SlNWYWx1ZSht
X25vZGUtPmNoaWxkMigpKSkpOworI2Vsc2UKKyAgICAgICAgYXV0byBsZWZ0Q2hpbGQgPSBtX25v
ZGUtPmNoaWxkMSgpOworICAgICAgICBhdXRvIHJpZ2h0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMigp
OworCisgICAgICAgIGlmICghKHByb3ZlblR5cGUobGVmdENoaWxkKSAmIFNwZWNGdWxsTnVtYmVy
KSB8fCAhKHByb3ZlblR5cGUocmlnaHRDaGlsZCkgJiBTcGVjRnVsbE51bWJlcikpIHsKKyAgICAg
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGROb3ROdW1iZXIpLCBtX2NhbGxGcmFtZSwKKyAgICAgICAgICAgICAgICBs
b3dKU1ZhbHVlKGxlZnRDaGlsZCksIGxvd0pTVmFsdWUocmlnaHRDaGlsZCkpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQgPSBt
X3N0YWNrbWFwSURzKys7CisKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlv
bigpKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEVtaXR0aW5nIFZhbHVlQWRkIHBhdGNocG9p
bnQgd2l0aCBzdGFja21hcCAjIiwgc3RhY2ttYXBJRCwgIlxuIik7CisKKyAgICAgICAgTFZhbHVl
IGxlZnQgPSBsb3dKU1ZhbHVlKGxlZnRDaGlsZCk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxv
d0pTVmFsdWUocmlnaHRDaGlsZCk7CisKKyAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJh
bmQoYWJzdHJhY3RWYWx1ZShsZWZ0Q2hpbGQpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBw
ZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZChhYnN0cmFjdFZhbHVlKHJpZ2h0Q2hpbGQpLnJlc3VsdFR5
cGUoKSk7CisKKyAgICAgICAgLy8gVGhlIERGRyBkb2VzIG5vdCBhbHdheXMgZm9sZCB0aGUgc3Vt
IG9mIDIgY29uc3RhbnQgaW50IG9wZXJhbmRzIHRvZ2V0aGVyLgorICAgICAgICAvLyBCZWNhdXNl
IHRoZSBzbmlwcGV0IGRvZXMgbm90IHN1cHBvcnQgYm90aCBvcGVyYW5kcyBiZWluZyBjb25zdGFu
dCwgaWYgdGhlIGxlZnQKKyAgICAgICAgLy8gb3BlcmFuZCBpcyBhbHJlYWR5IGEgY29uc3RhbnQs
IHdlJ2xsIGp1c3QgcHJldGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBpcyBub3QuCisgICAgICAgIGlm
IChsZWZ0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpKQorICAgICAgICAgICAgbGVmdE9wZXJhbmQu
c2V0Q29uc3RJbnQzMihsZWZ0Q2hpbGQtPmFzSW50MzIoKSk7CisgICAgICAgIGlmICghbGVmdE9w
ZXJhbmQuaXNDb25zdCgpICYmIHJpZ2h0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpKQorICAgICAg
ICAgICAgcmlnaHRPcGVyYW5kLnNldENvbnN0SW50MzIocmlnaHRDaGlsZC0+YXNJbnQzMigpKTsK
KworICAgICAgICAvLyBBcmd1bWVudHM6IGlkLCBieXRlcywgdGFyZ2V0LCBudW1BcmdzLCBhcmdz
Li4uCisgICAgICAgIFN0YWNrbWFwQXJndW1lbnRMaXN0IGFyZ3VtZW50czsKKyAgICAgICAgYXJn
dW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpKTsKKyAgICAgICAgYXJn
dW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKFZhbHVlQWRkRGVzY3JpcHRvcjo6aWNTaXpl
KCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOwor
ICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMikpOworICAgICAgICBh
cmd1bWVudHMuYXBwZW5kKGxlZnQpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJpZ2h0KTsK
KworICAgICAgICBhcHBlbmRPU1JFeGl0QXJndW1lbnRzRm9yUGF0Y2hwb2ludElmV2lsbENhdGNo
RXhjZXB0aW9uKGFyZ3VtZW50cywKKyAgICAgICAgICAgIEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9w
R2VuZXJhdG9yLCAzKTsgLy8gbGVmdCwgcmlnaHQsIGFuZCByZXN1bHQgc2hvdyB1cCBpbiB0aGUg
c3RhY2ttYXAgbG9jYXRpb25zLgorCisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbCht
X291dC5pbnQ2NCwgbV9vdXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7
CisgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJl
Z0NhbGxDb252KTsKKworICAgICAgICBtX2Z0bFN0YXRlLmJpbmFyeU9wcy5hcHBlbmQoVmFsdWVB
ZGREZXNjcmlwdG9yKHN0YWNrbWFwSUQsIG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLCBsZWZ0T3Bl
cmFuZCwgcmlnaHRPcGVyYW5kKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKKyNlbmRp
ZgogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266455</attachid>
            <date>2015-12-02 11:07:48 -0800</date>
            <delta_ts>2015-12-02 11:15:38 -0800</delta_ts>
            <desc>patch 6: added back CRASH() for B3 in the same way that ArithSub does it (again).</desc>
            <filename>bug-151519.patch</filename>
            <type>text/plain</type>
            <size>12965</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyOTI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE1LTEyLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdGhlIEpJVEFkZEdlbmVyYXRvciBzbmlwcGV0IGluIHRoZSBGVEwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmUgZGV0YWlsIGFib3V0IGhvdyB3
ZSBjaG9vc2luZyB0byBoYW5kbGUgb3BlcmFuZHMgdG8gdGhlIGJpbmFyeSBzbmlwcGV0cyB0aGF0
CisgICAgICAgIG1heSBiZSBjb25zdGFudDogdGhlIHNsb3cgcGF0aCBjYWxsIHRvIGEgQysrIGZ1
bmN0aW9uIHN0aWxsIG5lZWRzIHRoZSBjb25zdGFudAorICAgICAgICBvcGVyYW5kIGxvYWRlZCBp
biBhIHJlZ2lzdGVyLiAgVG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSdyZSBjaG9vc2luZyB0byBhbHdh
eXMgdGVsbAorICAgICAgICBMTFZNIHRvIGxvYWQgdGhlIG9wZXJhbmRzIGludG8gcmVnaXN0ZXJz
IGV2ZW4gaWYgdGhleSBtYXkgYmUgY29uc3RhbnQuICBIb3dldmVyLAorICAgICAgICBldmVuIHRo
b3VnaCBhIGNvbnN0YW50IG9wZXJhbmQgaXMgcHJlbG9hZGVkIGluIGEgcmVnaXN0ZXIsIHRoZSBz
bmlwcGV0IGdlbmVyYXRvcgorICAgICAgICB3aWxsIG5vdCBiZSBtYWRlIGF3YXJlIG9mIGl0LiAg
SXQgd2lsbCBjb250aW51ZSB0byBsb2FkIHRoZSBjb25zdGFudCBhcyBhbgorICAgICAgICBpbW1l
ZGlhdGUuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TENvbXBpbGVCaW5hcnlPcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Z2VuZXJhdGVBcml0aFN1
YkZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6RlRMOjpnZW5lcmF0ZVZhbHVlQWRkRmFzdFBhdGgp
OgorICAgICAgICAtIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aCgpIGN1cnJlbnRseSBpcyBhbiBl
eGFjdCBjb3B5IG9mIGdlbmVyYXRlQXJpdGhTdWJGYXN0UGF0aCgpCisgICAgICAgICAgZXhjZXB0
IHRoYXQgaXQgdXNlcyBKSVRBZGRHZW5lcmF0b3IgaW5zdGVhZCBvZiBKSVRTdWJHZW5lcmF0b3Iu
ICBXaGVuIHdlIGFkZAorICAgICAgICAgIHN1cHBvcnQgZm9yIEpJVE11bEdlbmVyYXRvciBsYXRl
ciwgdGhlIGNvZGUgd2lsbCBzdGFydCB0byB2YXJ5LiAgV2UnbGwgcmVmYWN0b3IKKyAgICAgICAg
ICB0aGVzZSBmdW5jdGlvbnMgdGhlbiB3aGVuIHdlIGhhdmUgbW9yZSBpbnNpZ2h0IGludG8gd2hh
dCBuZWVkcyB0byB2YXJ5IGJldHdlZW4KKyAgICAgICAgICB0aGUgaW1wbGVtZW50YXRpb25zLgor
CisgICAgICAgICogZnRsL0ZUTENvbXBpbGVCaW5hcnlPcC5oOgorICAgICAgICAqIGZ0bC9GVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVEZXNj
cmlwdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVlQWRkRGVzY3JpcHRvcjo6
VmFsdWVBZGREZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZUFkZERlc2NyaXB0
b3I6OmljU2l6ZSk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6c2l6ZU9mVmFsdWVBZGQpOgorICAgICAgICAqIGZ0bC9GVExJbmxpbmVD
YWNoZVNpemUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVmFsdWVBZGQpOgorCiAyMDE1LTEyLTAx
ICBDYWl0bGluIFBvdHRlciAgPGNhaXRwb3R0ZXI4OEBnbWFpbC5jb20+CiAKICAgICAgICAgW0pT
Q10gc3VwcG9ydCBDb3ZlckluaXRpYWxpemVkTmFtZSBpbiBuZXN0ZWQgQXNzaWdubWVudFBhdHRl
cm5zCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlz
aW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUJp
bmFyeU9wSUNGYXN0UGF0aCgKICAgICAgICAgY2FzZSBBcml0aFN1YjoKICAgICAgICAgICAgIGdl
bmVyYXRlQXJpdGhTdWJGYXN0UGF0aChpYywgZmFzdFBhdGhKSVQsIHJlc3VsdCwgbGVmdCwgcmln
aHQsIHVzZWRSZWdpc3RlcnMsIGRvbmUsIHNsb3dQYXRoU3RhcnQpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICBnZW5lcmF0ZVZhbHVlQWRk
RmFzdFBhdGgoaWMsIGZhc3RQYXRoSklULCByZXN1bHQsIGxlZnQsIHJpZ2h0LCB1c2VkUmVnaXN0
ZXJzLCBkb25lLCBzbG93UGF0aFN0YXJ0KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJp
bmFyeU9wLmNwcAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlQmluYXJ5T3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiREZHTm9kZVR5cGUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiSklUU3ViR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yLmgiCiAKQEAgLTE4OCw2ICsxODksNDMgQEAgdm9pZCBnZW5lcmF0ZUFyaXRo
U3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOwog
fQogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImIGlj
LCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgbGVmdCwgR1BS
UmVnIHJpZ2h0LCBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLAorICAgIENDYWxsSGVscGVyczo6
SnVtcCYgZG9uZSwgQ0NhbGxIZWxwZXJzOjpKdW1wJiBzbG93UGF0aFN0YXJ0KQoreworICAgIEFT
U0VSVChpYy5ub2RlVHlwZSgpID09IFZhbHVlQWRkKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3IgYWxsb2NhdG9yKHVzZWRSZWdpc3RlcnMpOworCisgICAgQmluYXJ5U25pcHBldFJlZ2lz
dGVyQ29udGV4dCBjb250ZXh0KGFsbG9jYXRvciwgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisKKyAg
ICBHUFJSZWcgc2NyYXRjaEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAg
ICBGUFJSZWcgbGVmdEZQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hGUFIoKTsKKyAgICBG
UFJSZWcgcmlnaHRGUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoRlBSKCk7CisgICAgRlBS
UmVnIHNjcmF0Y2hGUFIgPSBJbnZhbGlkRlBSUmVnOworCisgICAgSklUQWRkR2VuZXJhdG9yIGdl
bihpYy5sZWZ0T3BlcmFuZCgpLCBpYy5yaWdodE9wZXJhbmQoKSwgSlNWYWx1ZVJlZ3MocmVzdWx0
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MobGVmdCksIEpTVmFsdWVSZWdzKHJpZ2h0KSwgbGVmdEZQ
UiwgcmlnaHRGUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworCisgICAgYXV0byBudW1iZXJP
ZkJ5dGVzVXNlZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMgPQorICAgIGFsbG9jYXRvci5wcmVz
ZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6RXh0cmFTdGFja1NwYWNlOjpOb0V4dHJhU3BhY2UpOworCisgICAgY29udGV4dC5pbml0aWFs
aXplUmVnaXN0ZXJzKGppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKworICAg
IEFTU0VSVChnZW4uZGlkRW1pdEZhc3RQYXRoKCkpOworICAgIGdlbi5lbmRKdW1wTGlzdCgpLmxp
bmsoJmppdCk7CisgICAgY29udGV4dC5yZXN0b3JlUmVnaXN0ZXJzKGppdCk7CisgICAgYWxsb2Nh
dG9yLnJlc3RvcmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBudW1iZXJPZkJ5dGVzVXNl
ZFRvUHJlc2VydmVSZXVzZWRSZWdpc3RlcnMsCisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvcjo6RXh0cmFTdGFja1NwYWNlOjpTcGFjZUZvckNDYWxsKTsKKyAgICBkb25lID0gaml0Lmp1
bXAoKTsKKworICAgIGdlbi5zbG93UGF0aEp1bXBMaXN0KCkubGluaygmaml0KTsKKyAgICBjb250
ZXh0LnJlc3RvcmVSZWdpc3RlcnMoaml0KTsKKyAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJl
Z2lzdGVyc0J5UG9wcGluZyhqaXQsIG51bWJlck9mQnl0ZXNVc2VkVG9QcmVzZXJ2ZVJldXNlZFJl
Z2lzdGVycywKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNrU3Bh
Y2U6OlNwYWNlRm9yQ0NhbGwpOworICAgIHNsb3dQYXRoU3RhcnQgPSBqaXQuanVtcCgpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZUJpbmFyeU9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlQmluYXJ5T3Au
aAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21w
aWxlQmluYXJ5T3AuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAgdm9pZCBnZW5l
cmF0ZUFyaXRoU3ViRmFzdFBhdGgoQmluYXJ5T3BEZQogICAgIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBsZWZ0LCBHUFJSZWcgcmlnaHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCiAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wJiBkb25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQp
OwogCit2b2lkIGdlbmVyYXRlVmFsdWVBZGRGYXN0UGF0aChCaW5hcnlPcERlc2NyaXB0b3ImLCBD
Q2FsbEhlbHBlcnMmLAorICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBsZWZ0LCBHUFJSZWcgcmln
aHQsIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wJiBk
b25lLCBDQ2FsbEhlbHBlcnM6Okp1bXAmIHNsb3dQYXRoU3RhcnQpOworCiB9IC8vIG5hbWVzcGFj
ZSBGVEwKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgJKHJldmlzaW9uIDE5Mjkw
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsMTIgQEAgcHVibGljOgogICAgIHN0YXRp
YyBzaXplX3QgaWNTaXplKCk7CiB9OwogCitjbGFzcyBWYWx1ZUFkZERlc2NyaXB0b3IgOiBwdWJs
aWMgQmluYXJ5T3BEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBWYWx1ZUFkZERlc2NyaXB0b3Io
dW5zaWduZWQgc3RhY2ttYXBJRCwgQ29kZU9yaWdpbiwgY29uc3QgU25pcHBldE9wZXJhbmQmIGxl
ZnRPcGVyYW5kLCBjb25zdCBTbmlwcGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKTsKKyAgICBzdGF0
aWMgc2l6ZV90IGljU2l6ZSgpOworfTsKKwogLy8gWW91IGNhbiBjcmVhdGUgYSBsYXp5IHNsb3cg
cGF0aCBjYWxsIGluIGxvd2VyREZHVG9MTFZNIGJ5IGRvaW5nOgogLy8gbV9mdGxTdGF0ZS5sYXp5
U2xvd1BhdGhzLmFwcGVuZCgKIC8vICAgICBMYXp5U2xvd1BhdGhEZXNjcmlwdG9yKApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3JJbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNo
ZURlc2NyaXB0b3JJbmxpbmVzLmgJKHJldmlzaW9uIDE5MjkwMSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9ySW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0NywxOCBAQCBzaXplX3QgQXJpdGhTdWJEZXNjcmlwdG9yOjppY1NpemUo
KQogICAgIHJldHVybiBzaXplT2ZBcml0aFN1YigpOwogfQogCitWYWx1ZUFkZERlc2NyaXB0b3I6
OlZhbHVlQWRkRGVzY3JpcHRvcih1bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgY29uc3QgU25pcHBldE9wZXJhbmQmIGxlZnRPcGVyYW5kLCBjb25zdCBTbmlw
cGV0T3BlcmFuZCYgcmlnaHRPcGVyYW5kKQorICAgIDogQmluYXJ5T3BEZXNjcmlwdG9yKERGRzo6
VmFsdWVBZGQsIHN0YWNrbWFwSUQsIGNvZGVPcmlnaW4sIGljU2l6ZSgpLAorICAgICAgICAiVmFs
dWVBZGQiLCAiVmFsdWVBZGQgSUMgZmFzdCBwYXRoIiwgREZHOjpvcGVyYXRpb25WYWx1ZUFkZCwg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkKK3sKK30KKworc2l6ZV90IFZhbHVlQWRkRGVzY3Jp
cHRvcjo6aWNTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZU9mVmFsdWVBZGQoKTsKK30KKwogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3Bw
CShyZXZpc2lvbiAxOTI5MDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGlu
ZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsMjMgQEAgc2l6ZV90
IHNpemVPZkFyaXRoU3ViKCkKICNlbmRpZgogfQogCitzaXplX3Qgc2l6ZU9mVmFsdWVBZGQoKQor
eworI2lmIENQVShBUk02NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTgwOyAvLyBBUk02
NCByZWxlYXNlLgorI2Vsc2UKKyAgICByZXR1cm4gMjc2OyAvLyBBUk02NCBkZWJ1Zy4KKyNlbmRp
ZgorI2Vsc2UgLy8gQ1BVKFg4Nl82NCkKKyNpZmRlZiBOREVCVUcKKyAgICByZXR1cm4gMTk5OyAv
LyBYODZfNjQgcmVsZWFzZS4KKyNlbHNlCisgICAgcmV0dXJuIDI4NjsgLy8gWDg2XzY0IGRlYnVn
LgorI2VuZGlmCisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc2l6ZV90IHNp
emVPZlByb2JlKCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5l
Q2FjaGVTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bmxpbmVDYWNoZVNpemUuaAkocmV2aXNpb24gMTkyOTAxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
NyBAQCBzaXplX3Qgc2l6ZU9mQ29uc3RydWN0VmFyYXJncygpOwogc2l6ZV90IHNpemVPZkNvbnN0
cnVjdEZvcndhcmRWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mSW4oKTsKIHNpemVfdCBzaXplT2ZB
cml0aFN1YigpOworc2l6ZV90IHNpemVPZlZhbHVlQWRkKCk7CiAjaWYgRU5BQkxFKE1BU01fUFJP
QkUpCiBzaXplX3Qgc2l6ZU9mUHJvYmUoKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE5MjkwMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzQsNyArMjM0LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgR2V0QnlJZDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeUlkRmx1c2g6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVmFsdWVBZGQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG1h
eSBoYXZlIHRvIGZsdXNoIG9uZSB0aGluZyBmb3IgR2V0QnlJZHMvQXJpdGhTdWJzIHdoZW4gdGhl
IGJhc2UgYW5kIHJlc3VsdCBvciB0aGUgbGVmdC9yaWdodCBhbmQgdGhlIHJlc3VsdAogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYXJlIGFzc2lnbmVkIHRoZSBzYW1lIHJlZ2lzdGVyLiBGb3Ig
YSBtb3JlIGNvbXByZWhlbnNpdmUgb3ZlcnZpZXcsIGxvb2sgYXQgdGhlIGNvbW1lbnQgaW4gRlRM
Q29tcGlsZS5jcHAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEFy
aXRoU3ViICYmIG5vZGUtPmJpbmFyeVVzZUtpbmQoKSAhPSBVbnR5cGVkVXNlKQpAQCAtMjQzLDgg
KzI0NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZXJJbmZvKiBl
eGNlcHRpb25IYW5kbGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB3aWxsQ2F0Y2hF
eGNlcHRpb24gPSBtX2dyYXBoLndpbGxDYXRjaEV4Y2VwdGlvbkluTWFjaGluZUZyYW1lKG5vZGUt
Pm9yaWdpbi5mb3JFeGl0LCBvcENhdGNoT3JpZ2luLCBleGNlcHRpb25IYW5kbGVyKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aWxsQ2F0Y2hFeGNlcHRpb24pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG51bWJlck9mR2V0QnlJZE9yU3Vi
U3BpbGxzID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOdW1iZXJPZkNhdGNo
U3BpbGxzID0gc3RkOjptYXgobWF4TnVtYmVyT2ZDYXRjaFNwaWxscywgbnVtYmVyT2ZHZXRCeUlk
T3JTdWJTcGlsbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbnVtYmVyT2ZHZXRCeUlkT3JCaW5hcnlPcFNwaWxscyA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4TnVtYmVyT2ZDYXRjaFNwaWxscyA9IHN0ZDo6bWF4KG1heE51bWJl
ck9mQ2F0Y2hTcGlsbHMsIG51bWJlck9mR2V0QnlJZE9yQmluYXJ5T3BTcGlsbHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIH0KQEAgLTE0ODQsMTUgKzE0ODUsNTYgQEAgcHJpdmF0ZToKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZCgpCiAgICAgewotICAgICAgICBKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uOwotICAgICAgICBpZiAoIShwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQx
KCkpICYgU3BlY0Z1bGxOdW1iZXIpCi0gICAgICAgICAgICAmJiAhKHByb3ZlblR5cGUobV9ub2Rl
LT5jaGlsZDIoKSkgJiBTcGVjRnVsbE51bWJlcikpCi0gICAgICAgICAgICBvcGVyYXRpb24gPSBv
cGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgb3Bl
cmF0aW9uID0gb3BlcmF0aW9uVmFsdWVBZGQ7Ci0gICAgICAgIHNldEpTVmFsdWUodm1DYWxsKAot
ICAgICAgICAgICAgbV9vdXQuaW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb24pLCBtX2Nh
bGxGcmFtZSwKLSAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICAgICAgYXV0byBsZWZ0Q2hpbGQgPSBtX25v
ZGUtPmNoaWxkMSgpOworICAgICAgICBhdXRvIHJpZ2h0Q2hpbGQgPSBtX25vZGUtPmNoaWxkMigp
OworCisgICAgICAgIGlmICghKHByb3ZlblR5cGUobGVmdENoaWxkKSAmIFNwZWNGdWxsTnVtYmVy
KSB8fCAhKHByb3ZlblR5cGUocmlnaHRDaGlsZCkgJiBTcGVjRnVsbE51bWJlcikpIHsKKyAgICAg
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGROb3ROdW1iZXIpLCBtX2NhbGxGcmFtZSwKKyAgICAgICAgICAgICAgICBs
b3dKU1ZhbHVlKGxlZnRDaGlsZCksIGxvd0pTVmFsdWUocmlnaHRDaGlsZCkpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQgPSBt
X3N0YWNrbWFwSURzKys7CisKKyAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlv
bigpKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEVtaXR0aW5nIFZhbHVlQWRkIHBhdGNocG9p
bnQgd2l0aCBzdGFja21hcCAjIiwgc3RhY2ttYXBJRCwgIlxuIik7CisKKyNpZiBGVExfVVNFU19C
MworICAgICAgICBDUkFTSCgpOworI2Vsc2UKKyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1Zh
bHVlKGxlZnRDaGlsZCk7CisgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUocmlnaHRD
aGlsZCk7CisKKyAgICAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQoYWJzdHJhY3RWYWx1
ZShsZWZ0Q2hpbGQpLnJlc3VsdFR5cGUoKSk7CisgICAgICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0
T3BlcmFuZChhYnN0cmFjdFZhbHVlKHJpZ2h0Q2hpbGQpLnJlc3VsdFR5cGUoKSk7CisKKyAgICAg
ICAgLy8gVGhlIERGRyBkb2VzIG5vdCBhbHdheXMgZm9sZCB0aGUgc3VtIG9mIDIgY29uc3RhbnQg
aW50IG9wZXJhbmRzIHRvZ2V0aGVyLgorICAgICAgICAvLyBCZWNhdXNlIHRoZSBzbmlwcGV0IGRv
ZXMgbm90IHN1cHBvcnQgYm90aCBvcGVyYW5kcyBiZWluZyBjb25zdGFudCwgaWYgdGhlIGxlZnQK
KyAgICAgICAgLy8gb3BlcmFuZCBpcyBhbHJlYWR5IGEgY29uc3RhbnQsIHdlJ2xsIGp1c3QgcHJl
dGVuZCB0aGUgcmlnaHQgb3BlcmFuZCBpcyBub3QuCisgICAgICAgIGlmIChsZWZ0Q2hpbGQtPmlz
SW50MzJDb25zdGFudCgpKQorICAgICAgICAgICAgbGVmdE9wZXJhbmQuc2V0Q29uc3RJbnQzMihs
ZWZ0Q2hpbGQtPmFzSW50MzIoKSk7CisgICAgICAgIGlmICghbGVmdE9wZXJhbmQuaXNDb25zdCgp
ICYmIHJpZ2h0Q2hpbGQtPmlzSW50MzJDb25zdGFudCgpKQorICAgICAgICAgICAgcmlnaHRPcGVy
YW5kLnNldENvbnN0SW50MzIocmlnaHRDaGlsZC0+YXNJbnQzMigpKTsKKworICAgICAgICAvLyBB
cmd1bWVudHM6IGlkLCBieXRlcywgdGFyZ2V0LCBudW1BcmdzLCBhcmdzLi4uCisgICAgICAgIFN0
YWNrbWFwQXJndW1lbnRMaXN0IGFyZ3VtZW50czsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZCht
X291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZCht
X291dC5jb25zdEludDMyKFZhbHVlQWRkRGVzY3JpcHRvcjo6aWNTaXplKCkpKTsKKyAgICAgICAg
YXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOworICAgICAgICBhcmd1bWVu
dHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMikpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KGxlZnQpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJpZ2h0KTsKKworICAgICAgICBhcHBl
bmRPU1JFeGl0QXJndW1lbnRzRm9yUGF0Y2hwb2ludElmV2lsbENhdGNoRXhjZXB0aW9uKGFyZ3Vt
ZW50cywKKyAgICAgICAgICAgIEV4Y2VwdGlvblR5cGU6OkJpbmFyeU9wR2VuZXJhdG9yLCAzKTsg
Ly8gbGVmdCwgcmlnaHQsIGFuZCByZXN1bHQgc2hvdyB1cCBpbiB0aGUgc3RhY2ttYXAgbG9jYXRp
b25zLgorCisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbChtX291dC5pbnQ2NCwgbV9v
dXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7CisgICAgICAgIHNldElu
c3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKKwor
ICAgICAgICBtX2Z0bFN0YXRlLmJpbmFyeU9wcy5hcHBlbmQoVmFsdWVBZGREZXNjcmlwdG9yKHN0
YWNrbWFwSUQsIG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVy
YW5kKSk7CisKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKKyNlbmRpZgogICAgIH0KICAgICAK
ICAgICB2b2lkIGNvbXBpbGVTdHJDYXQoKQo=
</data>
<flag name="review"
          id="291469"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>