<?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>44202</bug_id>
          
          <creation_ts>2010-08-18 13:53:47 -0700</creation_ts>
          <short_desc>Implement strict type checking in js bindings for WebGL functions</short_desc>
          <delta_ts>2010-08-19 11:59:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kbr</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>266358</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-18 13:53:47 -0700</bug_when>
    <thetext>An exception will be thrown in case of type mismatch for Wrapper types and DomString, the same behavior as for overloaded functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266370</commentid>
    <comment_count>1</comment_count>
      <attachid>64769</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-18 14:21:59 -0700</bug_when>
    <thetext>Created attachment 64769
patch

Tested both in Safari and Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266372</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-18 14:25:00 -0700</bug_when>
    <thetext>Forget to mention: all the current demos run fine after this change.  The test has been added in khronos already and was copied over using kbr&apos;s script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266487</commentid>
    <comment_count>3</comment_count>
      <attachid>64769</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-08-18 17:51:41 -0700</bug_when>
    <thetext>Comment on attachment 64769
patch

Good work overall. A few minor issues.

WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp:171
 +          setDOMException(exec, TYPE_MISMATCH_ERR);
In the JSC custom bindings and in CodeGeneratorJS.pm I think you should use &quot;return throwVMTypeError(exec)&quot;, which is used for the overloaded method handling&apos;s fall-through case. The code generator is used to generate bindings to objects which aren&apos;t strictly part of the DOM (like the TypedArrays, for example), so I think it is more appropriate to throw an exception that is not DOM-specific.


WebCore/bindings/scripts/CodeGeneratorJS.pm:1967
 +                              # an TYPE_MISMATCH_ERR is thrown instead of casting to null.
See above about using throwVMTypeError instead.


WebCore/bindings/scripts/CodeGeneratorV8.pm:1249
 +              # an TYPE_MISMATCH_ERR is thrown instead of casting to null.
I think this should use V8Proxy::throwTypeError to match the behavior of the overloaded function generation.


WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:231
 +          return throwError(TYPE_MISMATCH_ERR);
I think the V8 custom bindings should use V8Proxy::throwTypeError per above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266518</commentid>
    <comment_count>4</comment_count>
      <attachid>64804</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-18 20:02:56 -0700</bug_when>
    <thetext>Created attachment 64804
revised patch: responding to kbr&apos;s review

Changed from TYPE_MIS_MATCH to TypeError.

Again, tested in Safari and Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266519</commentid>
    <comment_count>5</comment_count>
      <attachid>64805</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-18 20:05:22 -0700</bug_when>
    <thetext>Created attachment 64805
revised patch: tiny fix

remove a change in shader file that shouldn&apos;t be in this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266525</commentid>
    <comment_count>6</comment_count>
      <attachid>64805</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-18 20:19:57 -0700</bug_when>
    <thetext>Comment on attachment 64805
revised patch: tiny fix

&gt;WebCore/bindings/scripts/CodeGeneratorV8.pm:1249
&gt; +              # an TYPE_MISMATCH_ERR is thrown instead of casting to null.
Incorrect comment. It throws TypeError, not TYPE_MISMATCH_ERR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266820</commentid>
    <comment_count>7</comment_count>
      <attachid>64871</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-19 10:41:53 -0700</bug_when>
    <thetext>Created attachment 64871
revised patch: fixing the error in the comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266859</commentid>
    <comment_count>8</comment_count>
      <attachid>64871</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-08-19 11:38:25 -0700</bug_when>
    <thetext>Comment on attachment 64871
revised patch: fixing the error in the comment

Looks fine. Minor grammatical comments, not strictly necessary to fix.

WebCore/bindings/scripts/CodeGeneratorJS.pm:1967
 +                              # an TypeError is thrown instead of casting to null.
an -&gt; a

WebCore/bindings/scripts/CodeGeneratorV8.pm:1249
 +              # an TypeError is thrown instead of casting to null.
an -&gt; a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266870</commentid>
    <comment_count>9</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-19 11:50:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 64871 [details])
&gt; Looks fine. Minor grammatical comments, not strictly necessary to fix.
&gt; 
&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:1967
&gt;  +                              # an TypeError is thrown instead of casting to null.
&gt; an -&gt; a
&gt; 
&gt; WebCore/bindings/scripts/CodeGeneratorV8.pm:1249
&gt;  +              # an TypeError is thrown instead of casting to null.
&gt; an -&gt; a

I&apos;ll fix it on the landing patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266876</commentid>
    <comment_count>10</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-08-19 11:59:44 -0700</bug_when>
    <thetext>Committed r65689: &lt;http://trac.webkit.org/changeset/65689&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64769</attachid>
            <date>2010-08-18 14:21:59 -0700</date>
            <delta_ts>2010-08-18 20:02:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>js.patch</filename>
            <type>text/plain</type>
            <size>79241</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTYyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDgtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgc3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4ganMgYmluZGluZ3MgZm9yIFdlYkdMIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMDIK
KworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwOiBBZGQgdHlwZSBjaGVjayBmb3Igd3JhcHBlciB0eXBlcyBhbmQgRE9NU3RyaW5nIGFuZCB0
aHJvdyBlcnJvciBpbiBjYXNlIG9mIG1pc21hdGNoLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAoV2ViQ29yZTo6ZGF0
YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBEaXR0by4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0
YWNoZWRTaGFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0ZXhBdHRyaWJBbmRVbmlmb3JtSGVscGVyZik6
CisgICAgICAgIChXZWJDb3JlOjp1bmlmb3JtSGVscGVyaSk6CisgICAgICAgIChXZWJDb3JlOjp1
bmlmb3JtTWF0cml4SGVscGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaWRsOiBBZGQgYXR0cmlidXRlIFN0cmljdFR5cGVDaGVja2luZyBmb3IgV2ViR0wg
ZnVuY3Rpb25zLgorCiAyMDEwLTA4LTE4ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bu
b2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2NywxMCBA
QCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhCiAgICAgICAgIHJldHVy
biB0aHJvd1N5bnRheEVycm9yKGV4ZWMpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dCo+KGltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDAg
JiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFyZ3Vt
ZW50KDApLmluaGVyaXRzKCZKU1dlYkdMUHJvZ3JhbTo6c19pbmZvKSkgeworICAgICAgICBzZXRE
T01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICB9CiAgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFBy
b2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0yMzgsNiArMjQyLDEwIEBAIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2cKIAogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0
PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KGltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA+IDAgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYg
IWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKCZKU1dlYkdMUHJvZ3JhbTo6c19pbmZvKSkgewor
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CiAgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFt
ID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVkIHBuYW1l
ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCkBAIC0yNjIsNiArMjcwLDEwIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldFNoYWQKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4
dCo+KGltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDAgJiYgIWV4ZWMt
PmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlu
aGVyaXRzKCZKU1dlYkdMU2hhZGVyOjpzX2luZm8pKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgIH0KICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRlcihleGVjLT5h
cmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT5hcmd1bWVudCgxKS50b0lu
dDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTI4Niw3ICsyOTgs
MTUgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZgogCiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0g
c3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpz
X2luZm8pKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VS
Uik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KICAgICBXZWJHTFByb2dy
YW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEgJiYgIWV4ZWMtPmFyZ3VtZW50KDEpLmlzVW5kZWZp
bmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDEpLmluaGVyaXRzKCZKU1dlYkdMVW5pZm9y
bUxvY2F0aW9uOjpzX2luZm8pKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBF
X01JU01BVENIX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KICAg
ICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVj
LT5hcmd1bWVudCgxKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTM1NCw5ICszNzQsMTMgQEAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdQogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2Nh
dGlvbiA9IDA7CiAgICAgbG9uZyBpbmRleCA9IC0xOwogICAgIAotICAgIGlmIChmdW5jdGlvbkZv
clVuaWZvcm0oZikpCisgICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkgeworICAgICAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRl
ZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xVbmlm
b3JtTG9jYXRpb246OnNfaW5mbykpIHsKKyAgICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICAgICAgfQogICAgICAgICBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhl
Yy0+YXJndW1lbnQoMCkpOwotICAgIGVsc2UKKyAgICB9IGVsc2UKICAgICAgICAgaW5kZXggPSBl
eGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQpAQCAtNDM5LDYgKzQ2MywxMCBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5j
dGlvbmkoRGF0YUZ1CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAgICAg
ICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKIAorICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cygmSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19p
bmZvKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CiAgICAgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT5hcmd1bWVu
dCgwKSk7CiAgIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTUwMiw2ICs1MzAs
MTAgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRAogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJy
b3IoZXhlYyk7CiAKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+
YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5o
ZXJpdHMoJkpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnNfaW5mbykpIHsKKyAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgfQogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRv
V2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSAgICAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYzLDYgKzE5NjMs
MjQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCIgLiAkcGFyYW1ldGVyLT50
eXBlIC4gIj4gJG5hbWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4
ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZvciBmdW5jdGlvbnMg
d2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3MgdHlwZSBk
b2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgYW4gVFlQRV9NSVNNQVRDSF9FUlIgaXMgdGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBu
dWxsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJleGVjLT5hcmd1bWVudCgk
YXJnc0luZGV4KSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdUeXBl
ID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEke2FyZ1ZhbHVl
fS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pbmhlcml0cygmSlMke2FyZ1R5
cGV9OjpzX2luZm8pKSB7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9N
SVNNQVRDSF9FUlIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNV
bmRlZmluZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaXNTdHJpbmcoKSAmJiAhJHthcmdWYWx1
ZX0uaXNPYmplY3QoKSkge1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVf
TUlTTUFUQ0hfRVJSKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2ln
bmF0dXJlKCRwYXJhbWV0ZXIpIC4gIiAkbmFtZSA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFt
ZXRlciwgImV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpIikgLiAiO1xuIik7CiAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIElmIGEgcGFyYW1ldGVyIGlzICJhbiBpbmRleCIgYW5kIGl0
J3MgbmVnYXRpdmUgaXQgc2hvdWxkIHRocm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbi4K
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2
aXNpb24gNjU1ODQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ1LDYgKzEyNDUsMTkgQEAgRU5ECiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEJpbmRp
bmdNYWNyb3MuaCJ9ID0gMTsKKyAgICAgICAgICAgICMgRm9yIGZ1bmN0aW9ucyB3aXRoICJTdHJp
Y3RUeXBlQ2hlY2tpbmciLCBpZiBhbiBpbnB1dCBwYXJhbWV0ZXIncyB0eXBlIGRvZXMgbm90IG1h
dGNoIHRoZSBzaWduYXR1cmUsCisgICAgICAgICAgICAjIGFuIFRZUEVfTUlTTUFUQ0hfRVJSIGlz
IHRocm93biBpbnN0ZWFkIG9mIGNhc3RpbmcgdG8gbnVsbC4KKyAgICAgICAgICAgIGlmICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2lu
ZyJ9KSB7CisgICAgICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImFyZ3NbJHBhcmFtSW5kZXhd
IjsKKyAgICAgICAgICAgICAgICBteSAkYXJnVHlwZSA9IEdldFR5cGVGcm9tU2lnbmF0dXJlKCRw
YXJhbWV0ZXIpOworICAgICAgICAgICAgICAgIGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkg
eworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChh
cmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1
ZSkgJiYgIVY4JHthcmdUeXBlfTo6SGFzSW5zdGFuY2UoJGFyZ1ZhbHVlKSlcbiIpOworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcihUWVBFX01JU01BVENIX0VSUik7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4g
JHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFs
dWV9LT5Jc1N0cmluZygpICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSlcbiIpOworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcihUWVBFX01JU01BVENIX0VSUik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIEVYQ0VQ
VElPTl9CTE9DSygkbmF0aXZlVHlwZSwgJHBhcmFtZXRlck5hbWUsICIgLgogICAgICAgICAgICAg
ICAgICBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImFyZ3NbJHBhcmFtSW5kZXhdIiwgQmFz
aWNUeXBlQ2FuRmFpbENvbnZlcnNpb24oJHBhcmFtZXRlcikgPyAgIiR7cGFyYW1ldGVyTmFtZX1P
ayIgOiB1bmRlZikgLiAiKTtcbiIpOwogICAgICAgICB9CkBAIC0yOTg4LDcgKzMwMDEsMTAgQEAg
c3ViIFJlcXVpcmVzQ3VzdG9tU2lnbmF0dXJlCiAgICAgaWYgKEB7JGZ1bmN0aW9uLT57b3Zlcmxv
YWRzfX0gPiAxKSB7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLQorICAgICMgVHlwZSBjaGVj
a2luZyBpcyBwZXJmb3JtZWQgaW4gdGhlIGdlbmVyYXRlZCBjb2RlCisgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0p
IHsKKyAgICAgIHJldHVybiAwOworICAgIH0KICAgICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7
JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAgICAgICBpZiAoJHBhcmFtZXRlci0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn0gfHwgJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNhbGxiYWNrIn0pIHsKICAgICAgICAgICAgIHJldHVybiAwOwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIyNyw2ICsyMjcsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmlu
Z0NvCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChh
cmdzWzBdKSAmJiAhVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQorICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUik7CiAgICAgV2ViR0xQcm9ncmFt
KiBwcm9ncmFtID0gVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFyZ3NbMF0pID8gVjhXZWJH
TFByb2dyYW06OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkp
IDogMDsKICAgICBWZWN0b3I8V2ViR0xTaGFkZXIqPiBzaGFkZXJzOwogICAgIGJvb2wgc3VjY2Vl
ZCA9IGNvbnRleHQtPmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzLCBlYyk7CkBA
IC0zMTksNiArMzIxLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdD
bwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOworICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJn
c1swXSkgJiYgIVY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOwogICAgIFdlYkdMUHJvZ3JhbSog
cHJvZ3JhbSA9IFY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xQ
cm9ncmFtOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6
IDA7CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBwbmFtZSA9IHRvSW50MzIoYXJnc1sxXSwg
b2spOwpAQCAtMzUxLDYgKzM1NSw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVu
ZGVyaW5nQ28KIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JO
dWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMU2hhZGVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOwogICAgIFdlYkdMU2hh
ZGVyKiBzaGFkZXIgPSBWOFdlYkdMU2hhZGVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2Vi
R0xTaGFkZXI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkp
IDogMDsKICAgICBib29sIG9rOwogICAgIHVuc2lnbmVkIHBuYW1lID0gdG9JbnQzMihhcmdzWzFd
LCBvayk7CkBAIC0zODMsOCArMzg5LDEyIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdM
UmVuZGVyaW5nQ28KIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVk
T3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hfRVJSKTsKICAgICBXZWJH
TFByb2dyYW0qIHByb2dyYW0gPSBWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkg
PyBWOFdlYkdMUHJvZ3JhbTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChh
cmdzWzBdKSkgOiAwOwogCisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAxICYmICFpc1VuZGVmaW5l
ZE9yTnVsbChhcmdzWzFdKSAmJiAhVjhXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6SGFzSW5zdGFuY2Uo
YXJnc1sxXSkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hfRVJSKTsK
ICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9u
ID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihhcmdzWzFdLCBvayk7CiAKQEAgLTQ1Miw4ICs0NjIs
MTEgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2ZXJ0ZXhBdHRyaQogCiAgICAgaWYg
KGlzRnVuY3Rpb25Ub0NhbGxGb3JBdHRyaWJ1dGUoZnVuY3Rpb25Ub0NhbGwpKQogICAgICAgICBp
bmRleCA9IHRvSW50MzIoYXJnc1swXSwgb2spOwotICAgIGVsc2UKKyAgICBlbHNlIHsKKyAgICAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAm
JiAhVjhXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpCisgICAgICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgIGxvY2F0
aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihhcmdzWzBdLCBvayk7CisgICAgfQogCiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCkBAIC01MjYsNiArNTM5LDggQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtSGVscAogICAgIH0KIAogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVk
T3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShh
cmdzWzBdKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOwog
ICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24g
PSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGFyZ3NbMF0sIG9rKTsKIApAQCAtNjM5LDYgKzY1NCw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybU1hdHIKIAogICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKIAorICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNV
bmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRpb246Okhhc0lu
c3RhbmNlKGFyZ3NbMF0pKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENI
X0VSUik7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1swXSwgb2spOwogICAgIApJbmRl
eDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAkocmV2
aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ2NCwyMTMgKzQ2NCwyMTAgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5QQUNLX0ZMSVBfWV9XRUJHTCAgICAgICAg
ICAgID0gMHg5MjQwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5QQUNLX1BSRU1VTFRJ
UExZX0FMUEhBX1dFQkdMID0gMHg5MjQxOwogCi0gICAgICAgIHZvaWQgICAgICAgICBhY3RpdmVU
ZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGV4dHVyZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIHZvaWQgICAgICAgICBhdHRhY2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0s
IGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZv
aWQgICAgICAgICBiaW5kQXR0cmliTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIERPTVN0cmluZyBuYW1lKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0
YXJnZXQsIGluIFdlYkdMQnVmZmVyIGJ1ZmZlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgICAgICAgICBiaW5kRnJhbWVidWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICB2b2lkICAgICAgICAgYmluZFJlbmRlcmJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBXZWJHTFRleHR1cmUgdGV4dHVyZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIHZvaWQgICAgICAgICBibGVuZENvbG9yKGluIGRvdWJsZSByZWQsIGluIGRvdWJsZSBn
cmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBibGVuZEVxdWF0aW9uKCBpbiB1bnNpZ25lZCBsb25nIG1vZGUgKTsKLSAgICAgICAgdm9p
ZCAgICAgICAgIGJsZW5kRXF1YXRpb25TZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIG1vZGVSR0Is
IGluIHVuc2lnbmVkIGxvbmcgbW9kZUFscGhhKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5k
RnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7
Ci0gICAgICAgIHZvaWQgICAgICAgICBibGVuZEZ1bmNTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25n
IHNyY1JHQiwgaW4gdW5zaWduZWQgbG9uZyBkc3RSR0IsIGluIHVuc2lnbmVkIGxvbmcgc3JjQWxw
aGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOwotICAgICAgICB2b2lkICAgICAgICAgYnVm
ZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gQXJyYXlCdWZmZXIgZGF0YSwgaW4g
dW5zaWduZWQgbG9uZyB1c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lk
ICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gQXJyYXlCdWZm
ZXJWaWV3IGRhdGEsIGluIHVuc2lnbmVkIGxvbmcgdXNhZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJ1ZmZlckRhdGEoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIGxvbmcgc2l6ZSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSkgcmFpc2VzIChET01FeGNl
cHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBvZmZzZXQsIGluIEFycmF5QnVmZmVyIGRhdGEpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJ1ZmZlclN1YkRhdGEoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgb2Zmc2V0LCBpbiBBcnJheUJ1ZmZlclZpZXcgZGF0
YSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotCi0gICAgICAgIHVuc2lnbmVkIGxvbmcgY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhpbiB1bnNpZ25lZCBsb25nIHRhcmdldCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBjbGVhcihpbiB1bnNpZ25lZCBsb25nIG1hc2spOwotICAgICAgICB2b2lkICAgICAg
ICAgY2xlYXJDb2xvcihpbiBkb3VibGUgcmVkLCBpbiBkb3VibGUgZ3JlZW4sIGluIGRvdWJsZSBi
bHVlLCBpbiBkb3VibGUgYWxwaGEpOwotICAgICAgICB2b2lkICAgICAgICAgY2xlYXJEZXB0aChp
biBkb3VibGUgZGVwdGgpOwotICAgICAgICB2b2lkICAgICAgICAgY2xlYXJTdGVuY2lsKGluIGxv
bmcgcyk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjb2xvck1hc2soaW4gYm9vbGVhbiByZWQsIGlu
IGJvb2xlYW4gZ3JlZW4sIGluIGJvb2xlYW4gYmx1ZSwgaW4gYm9vbGVhbiBhbHBoYSk7Ci0gICAg
ICAgIHZvaWQgICAgICAgICBjb21waWxlU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBhY3RpdmVUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGV4dHVyZSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBhdHRh
Y2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIFdlYkdMU2hhZGVyIHNoYWRlcikg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
ICAgICAgICBiaW5kQXR0cmliTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIGluIERPTVN0cmluZyBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRCdWZmZXIo
aW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMQnVmZmVyIGJ1ZmZlcikgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBi
aW5kRnJhbWVidWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMRnJhbWVidWZm
ZXIgZnJhbWVidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgYmluZFJlbmRlcmJ1ZmZlcihpbiB1bnNpZ25lZCBsb25n
IHRhcmdldCwgaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRU
ZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJHTFRleHR1cmUgdGV4dHVyZSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
ICAgICAgICBibGVuZENvbG9yKGluIGRvdWJsZSByZWQsIGluIGRvdWJsZSBncmVlbiwgaW4gZG91
YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBibGVuZEVxdWF0aW9uKCBpbiB1bnNpZ25lZCBsb25nIG1vZGUgKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJsZW5kRXF1YXRpb25TZXBh
cmF0ZShpbiB1bnNpZ25lZCBsb25nIG1vZGVSR0IsIGluIHVuc2lnbmVkIGxvbmcgbW9kZUFscGhh
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJsZW5kRnVuYyhp
biB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBibGVuZEZ1bmNTZXBhcmF0ZShp
biB1bnNpZ25lZCBsb25nIHNyY1JHQiwgaW4gdW5zaWduZWQgbG9uZyBkc3RSR0IsIGluIHVuc2ln
bmVkIGxvbmcgc3JjQWxwaGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gQXJyYXlCdWZmZXIgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gQXJyYXlCdWZm
ZXJWaWV3IGRhdGEsIGluIHVuc2lnbmVkIGxvbmcgdXNhZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJ1ZmZlckRhdGEo
aW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgc2l6ZSwgaW4gdW5zaWduZWQgbG9uZyB1
c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4g
bG9uZyBvZmZzZXQsIGluIEFycmF5QnVmZmVyIGRhdGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJ1ZmZlclN1YkRhdGEo
aW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgb2Zmc2V0LCBpbiBBcnJheUJ1ZmZlclZp
ZXcgZGF0YSkgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIHVuc2lnbmVkIGxvbmcgY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBj
bGVhcihpbiB1bnNpZ25lZCBsb25nIG1hc2spOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgY2xlYXJDb2xvcihpbiBkb3VibGUgcmVkLCBpbiBkb3VibGUgZ3JlZW4s
IGluIGRvdWJsZSBibHVlLCBpbiBkb3VibGUgYWxwaGEpOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgY2xlYXJEZXB0aChpbiBkb3VibGUgZGVwdGgpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY2xlYXJTdGVuY2lsKGluIGxvbmcg
cyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjb2xvck1hc2so
aW4gYm9vbGVhbiByZWQsIGluIGJvb2xlYW4gZ3JlZW4sIGluIGJvb2xlYW4gYmx1ZSwgaW4gYm9v
bGVhbiBhbHBoYSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBj
b21waWxlU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIAogICAgICAgICAvL3ZvaWQgICAgICAgICBjb21wcmVzc2VkVGV4SW1hZ2UyRChp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBp
bnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBo
ZWlnaHQsIGluIGxvbmcgYm9yZGVyLCBpbiB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qg
dm9pZCogZGF0YSk7CiAgICAgICAgIC8vdm9pZCAgICAgICAgIGNvbXByZXNzZWRUZXhTdWJJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZz
ZXQsIGluIGxvbmcgeW9mZnNldCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQg
bG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIGlt
YWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgICAgIAotICAgICAgICB2b2lkICAgICAg
ICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWws
IGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBp
biB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBi
b3JkZXIpOwotICAgICAgICB2b2lkICAgICAgICAgY29weVRleFN1YkltYWdlMkQoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5
b2Zmc2V0LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4g
dW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcg
bGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgeCwgaW4gbG9u
ZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4g
bG9uZyBib3JkZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAg
Y29weVRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWws
IGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiBsb25nIHgsIGluIGxvbmcgeSwg
aW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogCi0gICAg
ICAgIFdlYkdMQnVmZmVyIGNyZWF0ZUJ1ZmZlcigpOwotICAgICAgICBXZWJHTEZyYW1lYnVmZmVy
IGNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgICAgIFdlYkdMUHJvZ3JhbSBjcmVhdGVQcm9ncmFt
KCk7Ci0gICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyIGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAg
ICAgICBXZWJHTFNoYWRlciBjcmVhdGVTaGFkZXIoaW4gdW5zaWduZWQgbG9uZyB0eXBlKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgV2ViR0xUZXh0dXJlIGNyZWF0ZVRleHR1cmUoKTsK
LQotICAgICAgICB2b2lkICAgICAgICAgY3VsbEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2RlKTsK
LQotICAgICAgICB2b2lkICAgICAgICAgZGVsZXRlQnVmZmVyKGluIFdlYkdMQnVmZmVyIGJ1ZmZl
cik7Ci0gICAgICAgIHZvaWQgICAgICAgICBkZWxldGVGcmFtZWJ1ZmZlcihpbiBXZWJHTEZyYW1l
YnVmZmVyIGZyYW1lYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlbGV0ZVByb2dyYW0o
aW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pOwotICAgICAgICB2b2lkICAgICAgICAgZGVsZXRlUmVu
ZGVyYnVmZmVyKGluIFdlYkdMUmVuZGVyYnVmZmVyIHJlbmRlcmJ1ZmZlcik7Ci0gICAgICAgIHZv
aWQgICAgICAgICBkZWxldGVTaGFkZXIoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKTsKLSAgICAgICAg
dm9pZCAgICAgICAgIGRlbGV0ZVRleHR1cmUoaW4gV2ViR0xUZXh0dXJlIHRleHR1cmUpOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTEJ1ZmZlciBjcmVhdGVCdWZmZXIoKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gV2ViR0xGcmFtZWJ1ZmZlciBjcmVhdGVGcmFtZWJ1
ZmZlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTFByb2dyYW0gY3JlYXRl
UHJvZ3JhbSgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTFJlbmRlcmJ1ZmZl
ciBjcmVhdGVSZW5kZXJidWZmZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gV2Vi
R0xTaGFkZXIgY3JlYXRlU2hhZGVyKGluIHVuc2lnbmVkIGxvbmcgdHlwZSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMVGV4dHVyZSBjcmVh
dGVUZXh0dXJlKCk7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAg
IGN1bGxGYWNlKGluIHVuc2lnbmVkIGxvbmcgbW9kZSk7CisKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0ZUJ1ZmZlcihpbiBXZWJHTEJ1ZmZlciBidWZmZXIp
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlRnJhbWVi
dWZmZXIoaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBkZWxldGVQcm9ncmFtKGluIFdlYkdMUHJvZ3JhbSBw
cm9ncmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0
ZVJlbmRlcmJ1ZmZlcihpbiBXZWJHTFJlbmRlcmJ1ZmZlciByZW5kZXJidWZmZXIpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlU2hhZGVyKGluIFdlYkdM
U2hhZGVyIHNoYWRlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAg
ICBkZWxldGVUZXh0dXJlKGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlKTsKIAotICAgICAgICB2b2lk
ICAgICAgICAgZGVwdGhGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVuYyk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBkZXB0aE1hc2soaW4gYm9vbGVhbiBmbGFnKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIGRlcHRoRnVuYyhpbiB1bnNpZ25lZCBsb25nIGZ1bmMpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVwdGhNYXNrKGluIGJv
b2xlYW4gZmxhZyk7CiAgICAgICAgIC8vIEZJWE1FOiB0aGlzIGRpZmZlcnMgZnJvbSB0aGUgY3Vy
cmVudCBXZWJHTCBzcGVjIChkZXB0aFJhbmdlZikKLSAgICAgICAgdm9pZCAgICAgICAgIGRlcHRo
UmFuZ2UoaW4gZG91YmxlIHpOZWFyLCBpbiBkb3VibGUgekZhcik7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBkZXRhY2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIFdlYkdMU2hhZGVy
IHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBkaXNh
YmxlKGluIHVuc2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRpc2FibGVW
ZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRyYXdBcnJheXMoaW4gdW5zaWduZWQgbG9uZyBt
b2RlLCBpbiBsb25nIGZpcnN0LCBpbiBsb25nIGNvdW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCAgICAgICAgIGRyYXdFbGVtZW50cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUs
IGluIGxvbmcgY291bnQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gbG9uZyBvZmZzZXQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgICAgICAgICBlbmFibGUoaW4gdW5z
aWduZWQgbG9uZyBjYXApOwotICAgICAgICB2b2lkICAgICAgICAgZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgICAgICAgICBmaW5pc2goKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZsdXNoKCk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihpbiB1bnNpZ25l
ZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCBpbiB1bnNpZ25lZCBs
b25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVy
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVmZmVy
VGV4dHVyZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFj
aG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBpbiBXZWJHTFRleHR1cmUgdGV4dHVy
ZSwgaW4gbG9uZyBsZXZlbCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBmcm9udEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2RlKTsKLSAgICAgICAgdm9pZCAgICAg
ICAgIGdlbmVyYXRlTWlwbWFwKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlcHRoUmFuZ2UoaW4gZG91YmxlIHpOZWFy
LCBpbiBkb3VibGUgekZhcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBkZXRhY2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIFdlYkdMU2hhZGVy
IHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgICAgICAgICBkaXNhYmxlKGluIHVuc2lnbmVkIGxvbmcgY2FwKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJh
eShpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRyYXdBcnJheXMoaW4gdW5zaWduZWQg
bG9uZyBtb2RlLCBpbiBsb25nIGZpcnN0LCBpbiBsb25nIGNvdW50KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRyYXdFbGVt
ZW50cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgY291bnQsIGluIHVuc2lnbmVkIGxv
bmcgdHlwZSwgaW4gbG9uZyBvZmZzZXQpIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBlbmFibGUoaW4gdW5zaWduZWQgbG9u
ZyBjYXApOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkoaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBmaW5pc2go
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGZsdXNoKCk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBmcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBhdHRhY2ht
ZW50LCBpbiB1bnNpZ25lZCBsb25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgaW4gV2ViR0xSZW5kZXJi
dWZmZXIgcmVuZGVyYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGZyYW1lYnVmZmVyVGV4dHVyZTJEKGluIHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVk
IGxvbmcgdGV4dGFyZ2V0LCBpbiBXZWJHTFRleHR1cmUgdGV4dHVyZSwgaW4gbG9uZyBsZXZlbCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
ICAgICAgICBmcm9udEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2RlKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGdlbmVyYXRlTWlwbWFwKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0KTsKICAgICAgICAgCi0gICAgICAgIFdlYkdMQWN0aXZlSW5mbyBnZXRBY3RpdmVB
dHRyaWIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCi0g
ICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFdlYkdMQWN0aXZlSW5m
byBnZXRBY3RpdmVVbmlmb3JtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBs
b25nIGluZGV4KQotICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTEFjdGl2ZUluZm8gZ2V0QWN0aXZlQXR0cmliKGluIFdl
YkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMQWN0aXZlSW5mbyBn
ZXRBY3RpdmVVbmlmb3JtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25n
IGluZGV4KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBn
ZXRBdHRhY2hlZFNoYWRlcnMoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pCi0gICAgICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBpbnQgICAgICAgICAgZ2V0QXR0cmliTG9jYXRp
b24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gaW50ICAgICAgICAgIGdldEF0dHJpYkxvY2F0aW9uKGluIFdl
YkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiBET01TdHJpbmcgbmFtZSk7CiAKICAgICAgICAgLy8gYW55
IGdldEJ1ZmZlclBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQg
bG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQg
Z2V0QnVmZmVyUGFyYW1ldGVyKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXIoKTsKIAotICAgICAgICBXZWJHTENvbnRleHRBdHRy
aWJ1dGVzIGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKIAotICAg
ICAgICB1bnNpZ25lZCBsb25nIGdldEVycm9yKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKTsKIAogICAgICAgICAvLyBhbnkgZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNp
Z25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQg
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKCk7CiAgICAgICAgIC8vIGFueSBnZXRQ
YXJhbWV0ZXIoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0UGFyYW1ldGVyKCk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRQYXJhbWV0ZXIoKTsKICAgICAgICAgLy8gYW55IGdl
dFByb2dyYW1QYXJhbWV0ZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxv
bmcgcG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdl
dFByb2dyYW1QYXJhbWV0ZXIoKTsKLSAgICAgICAgRE9NU3RyaW5nIGdldFByb2dyYW1JbmZvTG9n
KGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFByb2dyYW1QYXJhbWV0ZXIoKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nIGdldFByb2dyYW1JbmZvTG9n
KGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
Ly8gYW55IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwg
aW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtD
dXN0b21dIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKCk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoKTsKICAg
ICAgICAgLy8gYW55IGdldFNoYWRlclBhcmFtZXRlcihpbiBXZWJHTFNoYWRlciBzaGFkZXIsIGlu
IHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3Vz
dG9tXSB2b2lkIGdldFNoYWRlclBhcmFtZXRlcigpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgZ2V0U2hhZGVyUGFyYW1ldGVy
KCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgRE9NU3RyaW5nICAgIGdldFNoYWRl
ckluZm9Mb2coaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nICAgIGdldFNoYWRlckluZm9Mb2co
aW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyBUQkQKICAgICAgICAgLy8gdm9pZCBnbEdldFNoYWRlclByZWNpc2lvbkZvcm1hdCAoR0xlbnVt
IHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250eXBlLCBHTGludCogcmFuZ2UsIEdMaW50KiBw
cmVjaXNpb24pOwogCi0gICAgICAgIERPTVN0cmluZyAgICBnZXRTaGFkZXJTb3VyY2UoaW4gV2Vi
R0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgRE9NU3RyaW5n
ICAgIGdldFN0cmluZyhpbiB1bnNpZ25lZCBsb25nIG5hbWUpOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBET01TdHJpbmcgICAgZ2V0U2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNo
YWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IERPTVN0cmluZyAgICBnZXRTdHJpbmcoaW4gdW5zaWduZWQgbG9uZyBuYW1lKTsKIAogICAgICAg
ICAvLyBhbnkgZ2V0VGV4UGFyYW1ldGVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNp
Z25lZCBsb25nIHBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0g
dm9pZCBnZXRUZXhQYXJhbWV0ZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3Vz
dG9tXSB2b2lkIGdldFRleFBhcmFtZXRlcigpOwogCiAgICAgICAgIC8vIGFueSBnZXRVbmlmb3Jt
KGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlv
bikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0VW5pZm9y
bSgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgZ2V0VW5pZm9y
bSgpOwogCi0gICAgICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGdldFVuaWZvcm1Mb2NhdGlvbihp
biBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gRE9NU3RyaW5nIG5hbWUpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTFVuaWZvcm1Mb2NhdGlv
biBnZXRVbmlmb3JtTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmlu
ZyBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBhbnkgZ2V0VmVydGV4
QXR0cmliKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldFZlcnRleEF0dHJp
YigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgZ2V0VmVydGV4
QXR0cmliKCk7CiAKLSAgICAgICAgbG9uZyBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoaW4gdW5zaWdu
ZWQgbG9uZyBpbmRleCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGxvbmcgZ2V0VmVydGV4QXR0cmliT2Zmc2V0KGluIHVuc2lnbmVkIGxvbmcg
aW5kZXgsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpOwogCi0gICAgICAgIHZvaWQgICAgICAgICBo
aW50KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIG1vZGUpOwotICAg
ICAgICBib29sZWFuICAgICAgaXNCdWZmZXIoaW4gV2ViR0xCdWZmZXIgYnVmZmVyKTsKLSAgICAg
ICAgYm9vbGVhbiAgICAgIGlzRW5hYmxlZChpbiB1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAg
IGJvb2xlYW4gICAgICBpc0ZyYW1lYnVmZmVyKGluIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZm
ZXIpOwotICAgICAgICBib29sZWFuICAgICAgaXNQcm9ncmFtKGluIFdlYkdMUHJvZ3JhbSBwcm9n
cmFtKTsKLSAgICAgICAgYm9vbGVhbiAgICAgIGlzUmVuZGVyYnVmZmVyKGluIFdlYkdMUmVuZGVy
YnVmZmVyIHJlbmRlcmJ1ZmZlcik7Ci0gICAgICAgIGJvb2xlYW4gICAgICBpc1NoYWRlcihpbiBX
ZWJHTFNoYWRlciBzaGFkZXIpOwotICAgICAgICBib29sZWFuICAgICAgaXNUZXh0dXJlKGluIFdl
YkdMVGV4dHVyZSB0ZXh0dXJlKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGxpbmVXaWR0aChpbiBk
b3VibGUgd2lkdGgpOwotICAgICAgICB2b2lkICAgICAgICAgbGlua1Byb2dyYW0oaW4gV2ViR0xQ
cm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAg
ICAgcGl4ZWxTdG9yZWkoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gbG9uZyBwYXJhbSk7Ci0g
ICAgICAgIHZvaWQgICAgICAgICBwb2x5Z29uT2Zmc2V0KGluIGRvdWJsZSBmYWN0b3IsIGluIGRv
dWJsZSB1bml0cyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBo
aW50KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIG1vZGUpOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNCdWZmZXIoaW4gV2ViR0xC
dWZmZXIgYnVmZmVyKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYm9vbGVhbiAgICAg
IGlzRW5hYmxlZChpbiB1bnNpZ25lZCBsb25nIGNhcCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGJvb2xlYW4gICAgICBpc0ZyYW1lYnVmZmVyKGluIFdlYkdMRnJhbWVidWZmZXIgZnJh
bWVidWZmZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNQ
cm9ncmFtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gYm9vbGVhbiAgICAgIGlzUmVuZGVyYnVmZmVyKGluIFdlYkdMUmVuZGVyYnVmZmVyIHJl
bmRlcmJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xlYW4gICAgICBp
c1NoYWRlcihpbiBXZWJHTFNoYWRlciBzaGFkZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBib29sZWFuICAgICAgaXNUZXh0dXJlKGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGxpbmVXaWR0aChpbiBkb3Vi
bGUgd2lkdGgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgbGlu
a1Byb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcGl4ZWxTdG9yZWkoaW4g
dW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gbG9uZyBwYXJhbSk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBwb2x5Z29uT2Zmc2V0KGluIGRvdWJsZSBmYWN0b3IsIGlu
IGRvdWJsZSB1bml0cyk7CiAKLSAgICAgICAgdm9pZCAgICAgICAgIHJlYWRQaXhlbHMoaW4gbG9u
ZyB4LCBpbiBsb25nIHksIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCBpbiB1bnNpZ25l
ZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBBcnJheUJ1ZmZlclZpZXcg
cGl4ZWxzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHJlYWRQ
aXhlbHMoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0
LCBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBBcnJh
eUJ1ZmZlclZpZXcgcGl4ZWxzKTsKICAgICAgICAgCi0gICAgICAgIHZvaWQgICAgICAgICByZWxl
YXNlU2hhZGVyQ29tcGlsZXIoKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHJlbmRlcmJ1ZmZlclN0
b3JhZ2UoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxm
b3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsK
LSAgICAgICAgdm9pZCAgICAgICAgIHNhbXBsZUNvdmVyYWdlKGluIGRvdWJsZSB2YWx1ZSwgaW4g
Ym9vbGVhbiBpbnZlcnQpOwotICAgICAgICB2b2lkICAgICAgICAgc2Npc3NvcihpbiBsb25nIHgs
IGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWln
aHQpOwotICAgICAgICB2b2lkICAgICAgICAgc2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNo
YWRlciwgaW4gRE9NU3RyaW5nIHN0cmluZykgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IHZvaWQgICAgICAgICBzdGVuY2lsRnVuYyhpbiB1bnNpZ25lZCBsb25nIGZ1bmMsIGluIGxvbmcg
cmVmLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOwotICAgICAgICB2b2lkICAgICAgICAgc3RlbmNp
bEZ1bmNTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIGZhY2UsIGluIHVuc2lnbmVkIGxvbmcgZnVu
YywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBzdGVuY2lsTWFzayhpbiB1bnNpZ25lZCBsb25nIG1hc2spOwotICAgICAgICB2b2lkICAg
ICAgICAgc3RlbmNpbE1hc2tTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIGZhY2UsIGluIHVuc2ln
bmVkIGxvbmcgbWFzayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsT3AoaW4gdW5zaWdu
ZWQgbG9uZyBmYWlsLCBpbiB1bnNpZ25lZCBsb25nIHpmYWlsLCBpbiB1bnNpZ25lZCBsb25nIHpw
YXNzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxPcFNlcGFyYXRlKGluIHVuc2lnbmVk
IGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmYWlsLCBpbiB1bnNpZ25lZCBsb25nIHpmYWls
LCBpbiB1bnNpZ25lZCBsb25nIHpwYXNzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIHJlbGVhc2VTaGFkZXJDb21waWxlcigpOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZShpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQg
bG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgc2FtcGxlQ292ZXJhZ2UoaW4gZG91YmxlIHZhbHVlLCBp
biBib29sZWFuIGludmVydCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRo
LCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBzaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyLCBpbiBET01T
dHJpbmcgc3RyaW5nKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVuYywg
aW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxv
bmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQg
bG9uZyBtYXNrKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0
ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIHZvaWQgICAgICAgICBzdGVuY2lsTWFza1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcg
ZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
Z10gdm9pZCAgICAgICAgIHN0ZW5jaWxPcChpbiB1bnNpZ25lZCBsb25nIGZhaWwsIGluIHVuc2ln
bmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbE9wU2VwYXJhdGUoaW4gdW5zaWduZWQg
bG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZhaWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWws
IGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOwogCi0gICAgICAgIHZvaWQgICAgICAgICB0ZXhQYXJh
bWV0ZXJmKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBp
biBmbG9hdCBwYXJhbSk7Ci0gICAgICAgIHZvaWQgICAgICAgICB0ZXhQYXJhbWV0ZXJpKGluIHVu
c2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbiBsb25nIHBhcmFt
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleFBhcmFtZXRl
cmYoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGluIGZs
b2F0IHBhcmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRl
eFBhcmFtZXRlcmkoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgcG5h
bWUsIGluIGxvbmcgcGFyYW0pOwogCiAgICAgICAgIC8vIFN1cHBvcnRlZCBmb3JtczoKLSAgICAg
ICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxv
bmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgd2lkdGgs
IGluIGxvbmcgaGVpZ2h0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9u
ZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxv
bmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBs
b25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAg
ICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25l
ZCBsb25nIHR5cGUsIGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0
YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBp
biB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcykgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5h
bGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9u
ZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTFZpZGVvRWxlbWVudCB2aWRl
bykgcmFpc2VzIChET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJ
bWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhv
ZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcg
dHlwZSwgaW4gQXJyYXlCdWZmZXJWaWV3IHBpeGVscykgcmFpc2VzIChET01FeGNlcHRpb24pOwot
ICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdl
dCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBp
biB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zm
c2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25n
IGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdl
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZz
ZXQsIGluIGxvbmcgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTENh
bnZhc0VsZW1lbnQgY2FudmFzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
ICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxl
dmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxv
bmcgdHlwZSwgaW4gSFRNTFZpZGVvRWxlbWVudCB2aWRlbykgcmFpc2VzIChET01FeGNlcHRpb24p
OwotCi0gICAgICAgIHZvaWQgdW5pZm9ybTFmKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0
aW9uLCBpbiBmbG9hdCB4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0g
dm9pZCB1bmlmb3JtMWZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9h
dDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTFp
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm0xaXYoaW4gV2ViR0xVbmlm
b3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEludDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTJmKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0
aW9uLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtMmZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0
aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZv
aWQgdW5pZm9ybTJpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgs
IGluIGxvbmcgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQg
dW5pZm9ybTJpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJh
eSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1bmlmb3JtM2YoaW4gV2Vi
R0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZs
b2F0IHopIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZv
cm0zZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1bmlmb3JtM2koaW4gV2ViR0xV
bmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHop
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm0zaXYo
aW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEludDMyQXJyYXkgdikgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTRmKGluIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6LCBpbiBm
bG9hdCB3KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlm
b3JtNGZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkg
dikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTRpKGluIFdlYkdM
VW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB6
LCBpbiBsb25nIHcpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lk
IHVuaWZvcm00aXYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEludDMyQXJy
YXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlm
b3JtTWF0cml4MmZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBib29sZWFu
IHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4M2Z2KGluIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uIGxvY2F0aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFy
cmF5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3Jt
TWF0cml4NGZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBib29sZWFuIHRy
YW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQot
ICAgICAgICB2b2lkICAgICAgICAgdXNlUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICB2YWxpZGF0ZVByb2dy
YW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAg
ICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIxZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGlu
IGZsb2F0IHgpOwotICAgICAgICBbQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMWZ2
KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7Ci0gICAgICAg
IHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZs
b2F0IHgsIGluIGZsb2F0IHkpOwotICAgICAgICBbQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4
QXR0cmliMmZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7
Ci0gICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIzZihpbiB1bnNpZ25lZCBsb25nIGlu
ZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHopOwotICAgICAgICBbQ3VzdG9t
XSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliM2Z2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4g
RmxvYXQzMkFycmF5IHZhbHVlcyk7Ci0gICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWI0
ZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0
IHosIGluIGZsb2F0IHcpOwotICAgICAgICBbQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0
cmliNGZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7Ci0g
ICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWJQb2ludGVyKGluIHVuc2lnbmVkIGxvbmcg
aW5keCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIGJvb2xlYW4gbm9y
bWFsaXplZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxv
bmcgc3RyaWRlLCBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGlu
IHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGlu
dGVybmFsZm9ybWF0LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgYm9yZGVy
LCBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBBcnJh
eUJ1ZmZlclZpZXcgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1
bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBJbWFnZURhdGEg
cGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBs
b25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25n
IGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdl
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxl
dmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1h
dCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXMpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWws
IGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBp
biB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8pIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwg
aW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHdpZHRoLCBpbiBsb25n
IGhlaWdodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9u
ZyB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBl
LCBpbiBJbWFnZURhdGEgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9m
ZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4g
SFRNTEltYWdlRWxlbWVudCBpbWFnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25l
ZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlv
ZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGlu
IEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcykgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25n
IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0xZihpbiBXZWJHTFVuaWZvcm1M
b2NhdGlvbiBsb2NhdGlvbiwgaW4gZmxvYXQgeCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtMWZ2KGluIFdlYkdM
VW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5pZm9ybTFpKGlu
IFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9y
bTFpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJheSB2KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCB1
bmlmb3JtMmYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGlu
IGZsb2F0IHkpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nLCBDdXN0b21dIHZvaWQgdW5pZm9ybTJmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2Nh
dGlvbiwgaW4gRmxvYXQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0yaShpbiBXZWJHTFVuaWZvcm1Mb2NhdGlv
biBsb2NhdGlvbiwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9ybTJpdihpbiBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCB1bmlmb3JtM2Yo
aW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGluIGZsb2F0IHks
IGluIGZsb2F0IHopIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9ybTNmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBs
b2NhdGlvbiwgaW4gRmxvYXQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0zaShpbiBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiBsb2NhdGlvbiwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIGxvbmcgeikgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1
bmlmb3JtM2l2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBJbnQzMkFycmF5
IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2
b2lkIHVuaWZvcm00ZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gZmxvYXQg
eCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeiwgaW4gZmxvYXQgdykgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtNGZ2
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5p
Zm9ybTRpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGluIGxv
bmcgeSwgaW4gbG9uZyB6LCBpbiBsb25nIHcpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9ybTRpdihpbiBXZWJHTFVu
aWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9y
bU1hdHJpeDJmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gYm9vbGVhbiB0
cmFuc3Bvc2UsIGluIEZsb2F0MzJBcnJheSBhcnJheSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4M2Z2
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwg
aW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYoaW4gV2ViR0xV
bmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMy
QXJyYXkgYXJyYXkpIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICB1c2VQcm9ncmFtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFt
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9p
ZCAgICAgICAgIHZhbGlkYXRlUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAg
ICAgIHZlcnRleEF0dHJpYjFmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCAgICAgICAgIHZlcnRleEF0
dHJpYjFmdihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIEZsb2F0MzJBcnJheSB2YWx1ZXMpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMmYo
aW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMmZ2
KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIzZihpbiB1bnNp
Z25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHopOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRy
aWIzZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjRmKGlu
IHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeiwg
aW4gZmxvYXQgdyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCAg
ICAgICAgIHZlcnRleEF0dHJpYjRmdihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIEZsb2F0MzJB
cnJheSB2YWx1ZXMpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAg
dmVydGV4QXR0cmliUG9pbnRlcihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGxvbmcgc2l6ZSwg
aW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBib29sZWFuIG5vcm1hbGl6ZWQsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBs
b25nIHN0cmlkZSwgaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogCi0gICAgICAgIHZvaWQgICAgICAgICB2aWV3cG9ydChpbiBsb25nIHgsIGluIGxvbmcgeSwg
aW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmlld3BvcnQoaW4gbG9uZyB4LCBp
biBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0
KTsKICAgICB9OwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTYyOCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTA4LTE4ICBa
aGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN0cmljdCB0eXBlIGNoZWNraW5nIGluIGpz
IGJpbmRpbmdzIGZvciBXZWJHTCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjAyCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC9iYWQtYXJndW1lbnRzLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWw6CisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXIuaHRtbDoKKwog
MjAxMC0wOC0xOCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9iYWQtYXJndW1lbnRzLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRz
LXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExOSBAQAorVGVzdHMg
Y2FsbGluZyBXZWJHTCBBUElzIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZXMKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFByb2dyYW0gQ29tcGlsZWQKK1BBU1MgU2hhZGVyIENv
bXBpbGVkCitQQVNTIGdldFVuaWZvcm1Mb2NhdGlvbiBzdWNjZWVkZWQKK1BBU1MgY29udGV4dC5j
b21waWxlU2hhZGVyKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0
aW9uIDE3LgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29u
dGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuYXR0
YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9N
SVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVy
KHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hf
RVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihhcmd1bWVu
dCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5i
aW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmJp
bmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0
LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1Mg
Y29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAx
Ny4KK1BBU1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9u
IDE3LgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJB
TUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwg
YXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERP
TSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZs
b2F0MzJBcnJheShbMC4wLCAwLjBdKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01B
VENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC51bmlmb3JtMml2KGFyZ3Vt
ZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVf
TUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LnVuaWZvcm1NYXRy
aXgyZnYoYXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAw
LjBdKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxNy4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
LgorUEFTUyBjb250ZXh0LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1Mg
Y29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBsb2MpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
VFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0VW5p
Zm9ybShwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01B
VENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRp
b24oYXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0Lmdl
dFByb2dyYW1JbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlT
TUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9M
b2coYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERP
TSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
LgorUEFTUyBjb250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQu
bGlua1Byb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRD
SF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0
aW9uIDE3LgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4K
K1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29u
dGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZGV0
YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9N
SVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQudXNlUHJvZ3JhbShh
cmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4
Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
LgorUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcu
CitQQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24g
MTcuCitQQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJC
VUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVY
VFVSRV8yRCwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9F
UlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0
LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNN
QVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0
dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29u
dGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBF
X01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC51bmlmb3JtMmZ2
KGFyZ3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0pKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0
LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFswLCAwXSkpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNv
bnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJyYXko
WzAuMCwgMC4wLCAwLjAsIDAuMF0pKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0
ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFyZ3Vt
ZW50LCAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0oYXJndW1lbnQsIGxvYykgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BB
U1MgY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0
LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcu
CitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRl
eHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBF
X01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5nZXRTaGFkZXJT
b3VyY2UoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGNvbnRleHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFyZ3VtZW50KSBpcyB1bmRl
ZmluZWQuCitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQu
CitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSBpcyB1bmRlZmlu
ZWQuCitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIGlzIHVuZGVm
aW5lZC4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5l
ZC4KK1BBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIGNvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZG
RVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVy
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFy
Z3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0
LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5mcmFt
ZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFD
SE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSBpcyB1bmRlZmluZWQuCitQ
QVNTIGNvbnRleHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAw
LjBdKSkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5l
dyBJbnQzMkFycmF5KFswLCAwXSkpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51bmlmb3Jt
TWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxzZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjAsIDAu
MCwgMC4wXSkpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtUGFyYW1ldGVy
KGFyZ3VtZW50LCAwKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFy
Z3VtZW50LCAwKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVudCwgbG9j
KSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkgaXMg
bnVsbAorUEFTUyBjb250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxW
aWV3UHJvak1hdHJpeCcpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhh
cmd1bWVudCkgaXMgJycKK1BBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSBp
cyAnJworUEFTUyBjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgaXMgJycKK1BBU1Mg
Y29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQubGlua1Byb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5hdHRh
Y2hTaGFkZXIoYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFk
ZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5hdHRhY2hT
aGFkZXIoYXJndW1lbnQsIHNoYWRlcikgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmRldGFj
aFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmRl
dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQu
dXNlUHJvZ3JhbShhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnNoYWRlclNv
dXJjZShhcmd1bWVudCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kQXR0
cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5l
ZC4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJn
dW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRl
eHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJp
bmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BB
U1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBj
b250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQu
RlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8y
RCwgYXJndW1lbnQsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51bmlmb3JtMmZ2KGFy
Z3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0pKSBpcyB1bmRlZmluZWQuCitQQVNT
IGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwgbmV3IEludDMyQXJyYXkoWzAsIDBdKSkgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYoYXJndW1lbnQsIGZhbHNl
LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAwLjBdKSkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIGlzIG51bGwKK1BB
U1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIGlzIG51bGwKK1BBU1Mg
Y29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBsb2MpIGlzIG51bGwKK1BBU1MgY29udGV4dC5n
ZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3VtZW50KSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0VW5p
Zm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZpZXdQcm9qTWF0cml4JykgaXMgbnVsbAor
UEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKGFyZ3VtZW50KSBpcyAnJworUEFTUyBjb250
ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQpIGlzICcnCitQQVNTIGNvbnRleHQuZ2V0U2hh
ZGVyU291cmNlKGFyZ3VtZW50KSBpcyAnJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2JhZC1hcmd1bWVudHMtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsOTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisKKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitkZXNjcmlwdGlvbigi
VGVzdHMgY2FsbGluZyBXZWJHTCBBUElzIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZXMiKTsKKwor
dmFyIGNvbnRleHQgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IHd0dS5s
b2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQpOwordmFyIHNoYWRlciA9IHd0dS5sb2FkU3RhbmRh
cmRWZXJ0ZXhTaGFkZXIoY29udGV4dCk7Cit2YXIgc2hvdWxkR2VuZXJhdGVHTEVycm9yID0gd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcjsKKworYXNzZXJ0TXNnKHByb2dyYW0gIT0gbnVsbCwgIlBy
b2dyYW0gQ29tcGlsZWQiKTsKK2Fzc2VydE1zZyhzaGFkZXIgIT0gbnVsbCwgIlNoYWRlciBDb21w
aWxlZCIpOworCit2YXIgbG9jID0gY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwg
InVfbW9kZWxWaWV3UHJvak1hdHJpeCIpOworYXNzZXJ0TXNnKGxvYyAhPSBudWxsLCAiZ2V0VW5p
Zm9ybUxvY2F0aW9uIHN1Y2NlZWRlZCIpOworCit2YXIgYXJndW1lbnRzID0gWworICB7IHZhbHVl
OiAiZm9vIiwKKyAgICB0aHJvdzogdHJ1ZSB9LAorICB7IHZhbHVlOiAwLAorICAgIHRocm93OiB0
cnVlIH0sCisgIHsgdmFsdWU6IG51bGwsCisgICAgdGhyb3c6IGZhbHNlIH0sCisgIHsgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICB0aHJvdzogZmFsc2UgfQorXTsKKwordmFyIGFyZ3VtZW50OworCitm
dW5jdGlvbiBzaG91bGRCZUVtcHR5U3RyaW5nKGNvbW1hbmQpIHsKKyAgc2hvdWxkQmUoY29tbWFu
ZCwgIicnIik7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytp
KSB7CisgIHZhciBmdW5jLCBmdW5jMiwgZnVuYzM7CisgIGlmIChhcmd1bWVudHNbaV0udGhyb3cp
IHsKKyAgICBmdW5jID0gc2hvdWxkVGhyb3c7CisgICAgZnVuYzIgPSBzaG91bGRUaHJvdzsKKyAg
ICBmdW5jMyA9IHNob3VsZFRocm93OworICB9IGVsc2UgeworICAgIGZ1bmMgPSBzaG91bGRCZVVu
ZGVmaW5lZDsKKyAgICBmdW5jMiA9IHNob3VsZEJlTnVsbDsKKyAgICBmdW5jMyA9IHNob3VsZEJl
RW1wdHlTdHJpbmc7CisgIH0KKyAgYXJndW1lbnQgPSBhcmd1bWVudHNbaV0udmFsdWU7CisgIGZ1
bmMoImNvbnRleHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5s
aW5rUHJvZ3JhbShhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5hdHRhY2hTaGFkZXIoYXJn
dW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50
KSIpOworICBmdW5jKCJjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSIpOwor
ICBmdW5jKCJjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkiKTsKKyAgZnVu
YygiY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikiKTsKKyAgZnVuYygiY29u
dGV4dC51c2VQcm9ncmFtKGFyZ3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0LnNoYWRlclNvdXJj
ZShhcmd1bWVudCwgJ2ZvbycpIik7CisgIGZ1bmMoImNvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9u
KGFyZ3VtZW50LCAwLCAnZm9vJykiKTsKKyAgZnVuYygiY29udGV4dC5iaW5kQnVmZmVyKGNvbnRl
eHQuQVJSQVlfQlVGRkVSLCBhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5iaW5kRnJhbWVi
dWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQu
YmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIik7CisgIGZ1
bmMoImNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkiKTsK
KyAgZnVuYygiY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVG
RkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1
bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZS
QU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQs
IGFyZ3VtZW50LCAwKSIpOworICBmdW5jKCJjb250ZXh0LnVuaWZvcm0yZnYoYXJndW1lbnQsIG5l
dyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIik7CisgIGZ1bmMoImNvbnRleHQudW5pZm9ybTJp
dihhcmd1bWVudCwgbmV3IEludDMyQXJyYXkoWzAsIDBdKSkiKTsKKyAgZnVuYygiY29udGV4dC51
bmlmb3JtTWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxzZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAw
LjAsIDAuMCwgMC4wXSkpIik7CisKKyAgZnVuYzIoImNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihhcmd1bWVudCwgMCkiKTsKKyAgZnVuYzIoImNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFy
Z3VtZW50LCAwKSIpOworICBmdW5jMigiY29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBsb2Mp
Iik7CisgIGZ1bmMyKCJjb250ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJndW1lbnQpIik7Cisg
IGZ1bmMyKCJjb250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3
UHJvak1hdHJpeCcpIik7CisKKyAgZnVuYzMoImNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJn
dW1lbnQpIik7CisgIGZ1bmMzKCJjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQpIik7
CisgIGZ1bmMzKCJjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkiKTsKK30KKworc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmctZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Vy
cm9yLXJlcG9ydGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY1NDcwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAgVGVzdHMgZ2VuZXJhdGlvbiBvZiBzeW50aGV0aWMgYW5k
IHJlYWwgRwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKLVBBU1MgY29udGV4dC5nZXRF
cnJvcigpIGlzIDAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAogVGVzdGluZyBnZXRBY3RpdmVBdHRyaWIKIFBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
bnVsbCwgMikgaXMgbnVsbAogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfVkFMVUUgOiAKQEAgLTE4LDEyICsxOCwxMiBAQCBQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5p
Zm9ybShwcm9ncmFtLCA1CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9WQUxVRSA6IAogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
CiBUZXN0aW5nIGF0dGVtcHRzIHRvIG1hbmlwdWxhdGUgdGhlIGRlZmF1bHQgZnJhbWVidWZmZXIK
LVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgMCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVG
RkVSLCBudWxsKSBpcyB1bmRlZmluZWQuCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250
ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVS
QlVGRkVSLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250
ZXh0LlJFTkRFUkJVRkZFUiwgbnVsbCkgaXMgdW5kZWZpbmVkLgogUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCiBQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1
cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250
ZXh0LlRFWFRVUkVfMkQsIDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5mcmFtZWJ1
ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1F
TlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIG51bGwsIDApIGlzIHVuZGVmaW5lZC4KIFBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IAogUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1y
ZXBvcnRpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9lcnJvci1yZXBvcnRpbmcuaHRtbAkocmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjEsNyArMjEsNyBAQCB2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4CiAv
LyBkaXNjb3ZlcmVkIGluIHRoZSBzeW50aGV0aWMgZXJyb3IgZ2VuZXJhdGlvbiBhbmQgaW4gdGhl
IFdlYkdMCiAvLyBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuCiAKLXNob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiMCIpOworZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRleHQuTk9fRVJS
T1IpOwogCiBkZWJ1ZygiVGVzdGluZyBnZXRBY3RpdmVBdHRyaWIiKTsKIC8vIFN5bnRoZXRpYyBP
cGVuR0wgZXJyb3IKQEAgLTQ4LDE0ICs0OCwxNCBAQCBnbEVycm9yU2hvdWxkQmUoY29udGV4dCwg
Y29udGV4dC5JTlZBTElECiBnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5OT19FUlJP
Uik7CiAKIGRlYnVnKCJUZXN0aW5nIGF0dGVtcHRzIHRvIG1hbmlwdWxhdGUgdGhlIGRlZmF1bHQg
ZnJhbWVidWZmZXIiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZl
cihjb250ZXh0LkZSQU1FQlVGRkVSLCAwKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQu
YmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIG51bGwpIik7CiBnbEVycm9yU2hv
dWxkQmUoY29udGV4dCwgY29udGV4dC5OT19FUlJPUik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiY29u
dGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0
LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSIpOworc2hvdWxkQmVV
bmRlZmluZWQoImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJV
RkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgbnVs
bCkiKTsKIC8vIFN5bnRoZXRpYyBPcGVuR0wgZXJyb3IKIGdsRXJyb3JTaG91bGRCZShjb250ZXh0
LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OKTsKIC8vIEVycm9yIHN0YXRlIHNob3VsZCBiZSBj
bGVhciBieSB0aGlzIHBvaW50CiBnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5OT19F
UlJPUik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChj
b250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIDApIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5mcmFtZWJ1ZmZl
clRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQw
LCBjb250ZXh0LlRFWFRVUkVfMkQsIG51bGwsIDApIik7CiAvLyBTeW50aGV0aWMgT3BlbkdMIGVy
cm9yCiBnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTik7
CiAvLyBFcnJvciBzdGF0ZSBzaG91bGQgYmUgY2xlYXIgYnkgdGhpcyBwb2ludApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0
LWdldC1jYWxscy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY1NDcwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQsMTEgKzQsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQQogCiBQQVNTIHNoYWRlcnMubGVuZ3RoIGlzIDIKIFBBU1Mgc2hhZGVyc1swXSA9
PSBzdGFuZGFyZFZlcnQgJiYgc2hhZGVyc1sxXSA9PSBzdGFuZGFyZEZyYWcgfHwgc2hhZGVyc1sx
XSA9PSBzdGFuZGFyZFZlcnQgJiYgc2hhZGVyc1swXSA9PSBzdGFuZGFyZEZyYWcgaXMgdHJ1ZQot
UEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKG51bGwp
IGlzIHVuZGVmaW5lZC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCi1Q
QVNTIGdsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFZlcnQpIGlzIHVuZGVmaW5lZC4KLVBB
U1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IAorUEFTUyBnbC5nZXRBdHRhY2hlZFNoYWRl
cnMoc3RhbmRhcmRWZXJ0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCiBQQVNTIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVIsIGds
LkJVRkZFUl9TSVpFKSBpcyAxNgogUEFTUyBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlf
QlVGRkVSLCBnbC5CVUZGRVJfVVNBR0UpIGlzIGdsLkRZTkFNSUNfRFJBVwogUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCkBAIC03NSw5ICs3NSwxMSBAQCBQQVNT
IGdsLmdldFVuaWZvcm0obWF0UHJvZ3JhbSwgbXZhbDRMb2MpCiBQQVNTIGdsLmdldFZlcnRleEF0
dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBidWZmZXIK
IFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxF
RCkgaXMgdHJ1ZQogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9TSVpFKSBpcyA0Ci1QQVNTIChnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9TVFJJREUpID09IDApIHx8IChnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpID09IDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpIGlz
IHRydWUKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
U1RSSURFKSBpcyAwCiBQQVNTIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklC
X0FSUkFZX1RZUEUpIGlzIGdsLkZMT0FUCiBQQVNTIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5W
RVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQpIGlzIGZhbHNlCitQQVNTIGdsLmdldFZlcnRl
eEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSkgaXMgMzYKK1BBU1MgZ2wu
Z2V0VmVydGV4QXR0cmliT2Zmc2V0KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUikg
aXMgMTIKIFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
RU5BQkxFRCkgaXMgZmFsc2UKIFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLkNVUlJFTlRf
VkVSVEVYX0FUVFJJQikgaXMgWzUsIDYsIDcsIDhdCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwJKHJldmlzaW9uIDY1NDcwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMSArMzksMTEgQEAgZ2wubGlua1Byb2dyYW0oc3RhbmRh
cmRQcm9ncmFtKTsKIHZhciBzaGFkZXJzID0gZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKHN0YW5kYXJk
UHJvZ3JhbSk7CiBzaG91bGRCZSgnc2hhZGVycy5sZW5ndGgnLCAnMicpOwogc2hvdWxkQmVUcnVl
KCdzaGFkZXJzWzBdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzFdID09IHN0YW5kYXJkRnJh
ZyB8fCBzaGFkZXJzWzFdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzBdID09IHN0YW5kYXJk
RnJhZycpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1InKTsKK2dsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmdldEF0
dGFjaGVkU2hhZGVycyhudWxsKScpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuSU5W
QUxJRF9WQUxVRScpOwotc2hvdWxkQmVVbmRlZmluZWQoJ2dsLmdldEF0dGFjaGVkU2hhZGVycyhz
dGFuZGFyZFZlcnQpJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5JTlZBTElEX1ZB
TFVFJyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworc2hvdWxkVGhy
b3coJ2dsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFZlcnQpJyk7CitnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAogLy8gVGVzdCBnZXRCdWZmZXJQYXJhbWV0ZXIKIHZhciBi
dWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKQEAgLTIxNCw5ICsyMTQsMTMgQEAgZ2wudmVydGV4
QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZgogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0
dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKScsICdidWZmZXIn
KTsKIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJB
WV9FTkFCTEVEKScsICd0cnVlJyk7CiBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGds
LlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSknLCAnNCcpOwotc2hvdWxkQmUoJyhnbC5nZXRWZXJ0
ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpID09IDApIHx8IChnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpID09IDQgKiBz
aXplSW5CeXRlcyhnbC5GTE9BVCkpJywgJ3RydWUnKTsKKy8vIFN0cmlkZSBNVVNUIGJlIHRoZSB2
YWx1ZSB0aGUgdXNlciBwdXQgaW4uCitzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGds
LlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICcwJyk7CiBzaG91bGRCZSgnZ2wuZ2V0VmVy
dGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSknLCAnZ2wuRkxPQVQnKTsK
IHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9O
T1JNQUxJWkVEKScsICdmYWxzZScpOworZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5G
TE9BVCwgZmFsc2UsIDM2LCAxMik7CitzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGds
LlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICczNicpOworc2hvdWxkQmUoJ2dsLmdldFZl
cnRleEF0dHJpYk9mZnNldCgxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIpJywgJzEy
Jyk7CiBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CiBzaG91bGRCZSgnZ2wuZ2V0VmVy
dGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCknLCAnZmFsc2UnKTsK
IGdsLnZlcnRleEF0dHJpYjRmKDEsIDUsIDYsIDcsIDgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlv
dXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTE0LDEwICsxNCwxMCBAQCBQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHVuZGVmaW5l
ZCwgc2hhCiBQQVNTIGNvbnRleHQuc2hhZGVyU291cmNlKCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZSh1bmRlZmluZWQsICdmb28n
KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuYmluZEF0
dHJpYkxvY2F0aW9uKHVuZGVmaW5lZCwgMCwgJ2ZvbycpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9WQUxVRS4KLVBBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVS
LCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgotUEFTUyBjb250ZXh0LmJpbmRGcmFt
ZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgotUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIs
IDApIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCi1QQVNTIGNvbnRleHQuYmluZFRleHR1
cmUoY29udGV4dC5URVhUVVJFXzJELCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgor
UEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIDApIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIDApIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BB
U1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIDApIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCiBQQVNTIGNv
bnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5G
UkFNRUJVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgY29u
dGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBudWxsKSB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgpAQCAtMjYsMTQgKzI2LDE0IEBAIFBBU1MgY29udGV4dC5i
aW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlUKIFBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIo
Y29udGV4dC5GUkFNRUJVRkZFUiwgdW5kZWZpbmVkKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgogUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIs
IHVuZGVmaW5lZCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgY29udGV4dC5i
aW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIHVuZGVmaW5lZCkgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250
ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVS
QlVGRkVSLCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OLgotUEFTUyBj
b250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQu
Q09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMCkgd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNv
bnRleHQuUkVOREVSQlVGRkVSLCBudWxsKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BF
UkFUSU9OLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVC
VUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgbnVs
bCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTi4KIFBBU1MgY29udGV4
dC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKHVuZGVmaW5lZCwg
MCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmdldFNo
YWRlclBhcmFtZXRlcih1bmRlZmluZWQsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9W
QUxVRS4KIFBBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKHVuZGVmaW5lZCwgMCkgd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmdldFNoYWRlclNvdXJj
ZSh1bmRlZmluZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KLVBBU1MgY29u
dGV4dC5nZXRVbmlmb3JtKHVuZGVmaW5lZCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X1ZBTFVFLgorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVkLCBudWxsKSB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0
aW9uKHVuZGVmaW5lZCwgJ2ZvbycpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4K
IAogY2hlY2sgd2l0aCBiaW5kaW5ncwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWwJKHJldmlzaW9uIDY1
NDcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZp
b3VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEwICszMCwxMCBAQCBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JCiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4
dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5zaGFkZXJTb3VyY2UoKSIpOwogc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRl
eHQuc2hhZGVyU291cmNlKHVuZGVmaW5lZCwgJ2ZvbycpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJy
b3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5iaW5kQXR0cmliTG9j
YXRpb24odW5kZWZpbmVkLCAwLCAnZm9vJykiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250
ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlf
QlVGRkVSLCAwKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9f
RVJST1IsICJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCAwKSIp
Owotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250
ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIDApIik7Ci1zaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZFRl
eHR1cmUoY29udGV4dC5URVhUVVJFXzJELCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuYmlu
ZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0
LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCAwKSIpOworc2hvdWxkVGhyb3co
ImNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkiKTsKK3No
b3VsZFRocm93KCJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgMCkiKTsK
IHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4
dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBudWxsKSIpOwogc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRGcmFtZWJ1
ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBudWxsKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29u
dGV4dC5SRU5ERVJCVUZGRVIsIG51bGwpIik7CkBAIC00MiwxNCArNDIsMTQgQEAgc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTgogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNv
bnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCB1bmRlZmluZWQpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4
dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJF
TkRFUkJVRkZFUiwgdW5kZWZpbmVkKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQs
IGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8y
RCwgdW5kZWZpbmVkKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQu
SU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRl
eHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJC
VUZGRVIsIDApIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZB
TElEX09QRVJBVElPTiwgImNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFN
RUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCAw
LCAwKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9P
UEVSQVRJT04sICJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIG51
bGwpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09Q
RVJBVElPTiwgImNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZF
UiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBudWxsLCAw
KSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxV
RSwgImNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmRlZmluZWQsIDApIik7CiBzaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5n
ZXRQcm9ncmFtSW5mb0xvZyh1bmRlZmluZWQsIDApIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Y29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0
ZXIodW5kZWZpbmVkLCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRl
eHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyh1bmRlZmluZWQsIDAp
Iik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVF
LCAiY29udGV4dC5nZXRTaGFkZXJTb3VyY2UodW5kZWZpbmVkKSIpOwotc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuZ2V0VW5pZm9y
bSh1bmRlZmluZWQsIDApIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4
dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5nZXRVbmlmb3JtKHVuZGVmaW5lZCwgbnVsbCkiKTsK
IHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJj
b250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbih1bmRlZmluZWQsICdmb28nKSIpOwogCiBkZWJ1Zygi
Iik7CkBAIC02NCw4ICs2NCw4IEBAIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250
ZXh0Lk4KIAogZGVidWcoIiIpOwogZGVidWcoImNoZWNrIHdpdGhvdXQgYmluZGluZ3MiKTsKLWNv
bnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCk7Ci1jb250ZXh0LmJpbmRU
ZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgMCk7Citjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4
dC5BUlJBWV9CVUZGRVIsIG51bGwpOworY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRV
UkVfMkQsIG51bGwpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5W
QUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmJ1ZmZlckRhdGEoY29udGV4dC5BUlJBWV9CVUZGRVIs
IDEsIGNvbnRleHQuU1RBVElDX0RSQVcpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4
dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHQuZ2V0QnVmZmVyUGFyYW1ldGVy
KGNvbnRleHQuQVJSQVlfQlVGRkVSLCBjb250ZXh0LkJVRkZFUl9TSVpFKSIpOwogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0
LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjb250ZXh0LlJHQkEsIDEsIDEsIDAs
IGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheShbMCww
LDAsMF0pKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64804</attachid>
            <date>2010-08-18 20:02:56 -0700</date>
            <delta_ts>2010-08-18 20:05:22 -0700</delta_ts>
            <desc>revised patch: responding to kbr&apos;s review</desc>
            <filename>js.patch</filename>
            <type>text/plain</type>
            <size>78275</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTYyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDgtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgc3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4ganMgYmluZGluZ3MgZm9yIFdlYkdMIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMDIK
KworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwOiBBZGQgdHlwZSBjaGVjayBmb3Igd3JhcHBlciB0eXBlcyBhbmQgRE9NU3RyaW5nIGFuZCB0
aHJvdyBlcnJvciBpbiBjYXNlIG9mIG1pc21hdGNoLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAoV2ViQ29yZTo6ZGF0
YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBEaXR0by4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0
YWNoZWRTaGFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0ZXhBdHRyaWJBbmRVbmlmb3JtSGVscGVyZik6
CisgICAgICAgIChXZWJDb3JlOjp1bmlmb3JtSGVscGVyaSk6CisgICAgICAgIChXZWJDb3JlOjp1
bmlmb3JtTWF0cml4SGVscGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaWRsOiBBZGQgYXR0cmlidXRlIFN0cmljdFR5cGVDaGVja2luZyBmb3IgV2ViR0wg
ZnVuY3Rpb25zLgorCiAyMDEwLTA4LTE4ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bu
b2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw4IEBA
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGEKICAgICAgICAgcmV0dXJu
IHRocm93U3ludGF4RXJyb3IoZXhlYyk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJp
bmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1l
bnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQorICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJH
TFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0yMzgsNiArMjQwLDggQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZwogCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQor
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xQcm9ncmFtKiBw
cm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVk
IHBuYW1lID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCkBAIC0yNjIsNiArMjY2LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0U2hhZAogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQo
MCkuaW5oZXJpdHMoJkpTV2ViR0xTaGFkZXI6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRl
cihleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT5hcmd1bWVu
dCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTI4
Niw3ICsyOTIsMTEgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZgog
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBj
b250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNV
bmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQ
cm9ncmFtOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQo
MCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxICYmICFleGVjLT5hcmd1bWVu
dCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgxKS5pbmhlcml0cygm
SlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2MgPSB0b1dlYkdMVW5p
Zm9ybUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMzU0LDkgKzM2NCwxMSBA
QCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1CiAgICAgV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uID0gMDsKICAgICBsb25nIGluZGV4ID0gLTE7CiAgICAgCi0g
ICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkKKyAgICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3Jt
KGYpKSB7CisgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVjLT5h
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhl
cml0cygmSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICAgICAgbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9y
bUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAg
ICAgIGluZGV4ID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKIAogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTQzOSw2ICs0NTEsOCBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAyKQogICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKIAorICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5l
ZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cygmSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRp
b24oZXhlYy0+YXJndW1lbnQoMCkpOwogICAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CkBAIC01MDIsNiArNTE2LDggQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRy
aXgoRAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJu
IHRocm93U3ludGF4RXJyb3IoZXhlYyk7CiAKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
ID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+
YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnNfaW5mbykpCisg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDAp
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgICAgCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDY1NDcwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtMTk2Myw2ICsxOTYzLDIwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0
cjwiIC4gJHBhcmFtZXRlci0+dHlwZSAuICI+ICRuYW1lID0gJHtjYWxsYmFja0NsYXNzTmFtZX06
OmNyZWF0ZShhc09iamVjdChleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSksIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBGb3IgZnVuY3Rpb25zIHdpdGggIlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlucHV0
IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIGFuIFR5cGVFcnJvciBpcyB0aHJvd24gaW5zdGVhZCBvZiBj
YXN0aW5nIHRvIG51bGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImV4ZWMt
PmFyZ3VtZW50KCRhcmdzSW5kZXgpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXkgJGFyZ1R5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHBhcmFtZXRlci0+dHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghSXNOYXRpdmVUeXBlKCRh
cmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYg
ISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRz
KCZKUyR7YXJnVHlwZX06OnNfaW5mbykpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVk
T3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmlzU3RyaW5nKCkgJiYgISR7YXJnVmFsdWV9LmlzT2Jq
ZWN0KCkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIpIC4gIiAkbmFt
ZSA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFyZ3VtZW50KCRhcmdz
SW5kZXgpIikgLiAiO1xuIik7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIElmIGEg
cGFyYW1ldGVyIGlzICJhbiBpbmRleCIgYW5kIGl0J3MgbmVnYXRpdmUgaXQgc2hvdWxkIHRocm93
IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbi4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNpb24gNjU1ODQpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ1
LDYgKzEyNDUsMjMgQEAgRU5ECiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEJpbmRpbmdNYWNyb3MuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICMgRm9yIGZ1bmN0aW9ucyB3aXRoICJTdHJpY3RUeXBlQ2hlY2tpbmciLCBpZiBhbiBpbnB1
dCBwYXJhbWV0ZXIncyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSBzaWduYXR1cmUsCisgICAgICAg
ICAgICAjIGFuIFRZUEVfTUlTTUFUQ0hfRVJSIGlzIHRocm93biBpbnN0ZWFkIG9mIGNhc3Rpbmcg
dG8gbnVsbC4KKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAgICAgICAgICAgICAgbXkg
JGFyZ1ZhbHVlID0gImFyZ3NbJHBhcmFtSW5kZXhdIjsKKyAgICAgICAgICAgICAgICBteSAkYXJn
VHlwZSA9IEdldFR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIpOworICAgICAgICAgICAgICAg
IGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXgg
JiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgIVY4JHthcmdUeXBlfTo6SGFzSW5z
dGFuY2UoJGFyZ1ZhbHVlKSkge1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4g
JHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFs
dWV9LT5Jc1N0cmluZygpICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4i
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIEVYQ0VQVElPTl9CTE9DSygkbmF0aXZlVHlwZSwgJHBhcmFt
ZXRlck5hbWUsICIgLgogICAgICAgICAgICAgICAgICBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRl
ciwgImFyZ3NbJHBhcmFtSW5kZXhdIiwgQmFzaWNUeXBlQ2FuRmFpbENvbnZlcnNpb24oJHBhcmFt
ZXRlcikgPyAgIiR7cGFyYW1ldGVyTmFtZX1PayIgOiB1bmRlZikgLiAiKTtcbiIpOwogICAgICAg
ICB9CkBAIC0yOTg4LDcgKzMwMDUsMTAgQEAgc3ViIFJlcXVpcmVzQ3VzdG9tU2lnbmF0dXJlCiAg
ICAgaWYgKEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0gPiAxKSB7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KLQorICAgICMgVHlwZSBjaGVja2luZyBpcyBwZXJmb3JtZWQgaW4gdGhlIGdlbmVy
YXRlZCBjb2RlCisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKKyAgICAgIHJldHVybiAwOworICAgIH0KICAg
ICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAg
ICAgICBpZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn0gfHwg
JHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKICAgICAgICAg
ICAgIHJldHVybiAwOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjU0
NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsMTAgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDbwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIGlmIChhcmdzLkxlbmd0aCgp
ID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIVY4V2ViR0xQcm9ncmFtOjpI
YXNJbnN0YW5jZShhcmdzWzBdKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigp
OworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CiAgICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFyZ3Nb
MF0pID8gVjhXZWJHTFByb2dyYW06OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoYXJnc1swXSkpIDogMDsKICAgICBWZWN0b3I8V2ViR0xTaGFkZXIqPiBzaGFkZXJzOwogICAg
IGJvb2wgc3VjY2VlZCA9IGNvbnRleHQtPmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFk
ZXJzLCBlYyk7CkBAIC0zMTksNiArMzIzLDEwIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YkdMUmVuZGVyaW5nQ28KIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZp
bmVkT3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1sw
XSkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQogICAgIFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSA9IFY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xQcm9n
cmFtOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7
CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBwbmFtZSA9IHRvSW50MzIoYXJnc1sxXSwgb2sp
OwpAQCAtMzUxLDYgKzM1OSwxMCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRl
cmluZ0NvCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVs
bChhcmdzWzBdKSAmJiAhVjhXZWJHTFNoYWRlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKKyAg
ICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQogICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSBWOFdl
YkdMU2hhZGVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xTaGFkZXI6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICBib29sIG9r
OwogICAgIHVuc2lnbmVkIHBuYW1lID0gdG9JbnQzMihhcmdzWzFdLCBvayk7CkBAIC0zODMsOCAr
Mzk1LDE2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ28KIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4
dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYm
ICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKKyAgICAgICAgVjhQcm94
eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7CisgICAgfQogICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IFY4V2ViR0xQcm9ncmFt
OjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xQcm9ncmFtOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7CiAKKyAgICBpZiAoYXJncy5MZW5n
dGgoKSA+IDEgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMV0pICYmICFWOFdlYkdMVW5pZm9y
bUxvY2F0aW9uOjpIYXNJbnN0YW5jZShhcmdzWzFdKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJv
d1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsK
KyAgICB9CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1sxXSwgb2spOwogCkBAIC00NTIs
OCArNDcyLDEzIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmVydGV4QXR0cmkKIAog
ICAgIGlmIChpc0Z1bmN0aW9uVG9DYWxsRm9yQXR0cmlidXRlKGZ1bmN0aW9uVG9DYWxsKSkKICAg
ICAgICAgaW5kZXggPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICBlbHNlCisgICAgZWxzZSB7
CisgICAgICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJn
c1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRpb246Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7
CisgICAgICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIH0KICAgICAgICAgbG9jYXRp
b24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGFyZ3NbMF0sIG9rKTsKKyAgICB9CiAKICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAKQEAgLTUyNiw2ICs1NTEsMTAgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtSGVscAogICAgIH0KIAogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVk
T3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShh
cmdzWzBdKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICBy
ZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CiAgICAgYm9vbCBvayA9IGZh
bHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3Jt
TG9jYXRpb24oYXJnc1swXSwgb2spOwogCkBAIC02MzksNiArNjY4LDEwIEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybU1hdHIKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKIAorICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwo
YXJnc1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRpb246Okhhc0luc3RhbmNlKGFyZ3NbMF0p
KSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KICAgICBib29sIG9rID0gZmFsc2U7CiAg
ICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlv
bihhcmdzWzBdLCBvayk7CiAgICAgCkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaWRsCShyZXZpc2lvbiA2NTQ3MCkKKysrIFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDY0LDIx
MyArNDY0LDIxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBV
TlBBQ0tfRkxJUF9ZX1dFQkdMICAgICAgICAgICAgPSAweDkyNDA7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAweDkyNDE7CiAKLSAg
ICAgICAgdm9pZCAgICAgICAgIGFjdGl2ZVRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0ZXh0dXJl
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGF0dGFjaFNoYWRl
cihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRBdHRyaWJMb2NhdGlvbihp
biBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gRE9NU3Ry
aW5nIG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYmlu
ZEJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2ViR0xCdWZmZXIgYnVmZmVyKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRGcmFtZWJ1ZmZl
cihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZl
cikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBiaW5kUmVuZGVy
YnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJHTFJlbmRlcmJ1ZmZlciByZW5k
ZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYmlu
ZFRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJl
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kQ29sb3Io
aW4gZG91YmxlIHJlZCwgaW4gZG91YmxlIGdyZWVuLCBpbiBkb3VibGUgYmx1ZSwgaW4gZG91Ymxl
IGFscGhhKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kRXF1YXRpb24oIGluIHVuc2lnbmVk
IGxvbmcgbW9kZSApOwotICAgICAgICB2b2lkICAgICAgICAgYmxlbmRFcXVhdGlvblNlcGFyYXRl
KGluIHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwgaW4gdW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpOwot
ICAgICAgICB2b2lkICAgICAgICAgYmxlbmRGdW5jKGluIHVuc2lnbmVkIGxvbmcgc2ZhY3Rvciwg
aW4gdW5zaWduZWQgbG9uZyBkZmFjdG9yKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kRnVu
Y1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgc3JjUkdCLCBpbiB1bnNpZ25lZCBsb25nIGRzdFJH
QiwgaW4gdW5zaWduZWQgbG9uZyBzcmNBbHBoYSwgaW4gdW5zaWduZWQgbG9uZyBkc3RBbHBoYSk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBidWZmZXJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiBBcnJheUJ1ZmZlciBkYXRhLCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBidWZmZXJEYXRhKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiBBcnJheUJ1ZmZlclZpZXcgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1
c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYnVmZmVy
RGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBs
b25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBi
dWZmZXJTdWJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4g
QXJyYXlCdWZmZXIgZGF0YSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAg
ICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBvZmZz
ZXQsIGluIEFycmF5QnVmZmVyVmlldyBkYXRhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0KLSAg
ICAgICAgdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0KTsKLSAgICAgICAgdm9pZCAgICAgICAgIGNsZWFyKGluIHVuc2lnbmVkIGxvbmcg
bWFzayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjbGVhckNvbG9yKGluIGRvdWJsZSByZWQsIGlu
IGRvdWJsZSBncmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7Ci0gICAgICAg
IHZvaWQgICAgICAgICBjbGVhckRlcHRoKGluIGRvdWJsZSBkZXB0aCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBjbGVhclN0ZW5jaWwoaW4gbG9uZyBzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGNv
bG9yTWFzayhpbiBib29sZWFuIHJlZCwgaW4gYm9vbGVhbiBncmVlbiwgaW4gYm9vbGVhbiBibHVl
LCBpbiBib29sZWFuIGFscGhhKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGNvbXBpbGVTaGFkZXIo
aW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGFjdGl2ZVRleHR1cmUoaW4gdW5zaWduZWQg
bG9uZyB0ZXh0dXJlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIGF0dGFjaFNoYWRlcihpbiBXZWJHTFByb2dyYW0gcHJvZ3Jh
bSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRBdHRyaWJMb2NhdGlvbihpbiBX
ZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gRE9NU3RyaW5n
IG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYmluZEJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2Vi
R0xCdWZmZXIgYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRGcmFtZWJ1ZmZlcihpbiB1bnNpZ25lZCBsb25n
IHRhcmdldCwgaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcikgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBiaW5kUmVu
ZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJHTFJlbmRlcmJ1ZmZlciBy
ZW5kZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgYmluZFRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJsZW5kQ29sb3IoaW4gZG91YmxlIHJl
ZCwgaW4gZG91YmxlIGdyZWVuLCBpbiBkb3VibGUgYmx1ZSwgaW4gZG91YmxlIGFscGhhKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJsZW5kRXF1YXRpb24oIGlu
IHVuc2lnbmVkIGxvbmcgbW9kZSApOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgYmxlbmRFcXVhdGlvblNlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwg
aW4gdW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYmxlbmRGdW5jKGluIHVuc2lnbmVkIGxvbmcgc2ZhY3RvciwgaW4gdW5z
aWduZWQgbG9uZyBkZmFjdG9yKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGJsZW5kRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgc3JjUkdCLCBpbiB1bnNp
Z25lZCBsb25nIGRzdFJHQiwgaW4gdW5zaWduZWQgbG9uZyBzcmNBbHBoYSwgaW4gdW5zaWduZWQg
bG9uZyBkc3RBbHBoYSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAg
ICBidWZmZXJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBBcnJheUJ1ZmZlciBkYXRh
LCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBidWZmZXJEYXRhKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiBBcnJheUJ1ZmZlclZpZXcgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1
c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9u
ZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBidWZmZXJTdWJEYXRhKGlu
IHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4gQXJyYXlCdWZmZXIgZGF0
YSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2
b2lkICAgICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9u
ZyBvZmZzZXQsIGluIEFycmF5QnVmZmVyVmlldyBkYXRhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGNsZWFyKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjbGVhckNvbG9yKGluIGRv
dWJsZSByZWQsIGluIGRvdWJsZSBncmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBo
YSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjbGVhckRlcHRo
KGluIGRvdWJsZSBkZXB0aCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBjbGVhclN0ZW5jaWwoaW4gbG9uZyBzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
Z10gdm9pZCAgICAgICAgIGNvbG9yTWFzayhpbiBib29sZWFuIHJlZCwgaW4gYm9vbGVhbiBncmVl
biwgaW4gYm9vbGVhbiBibHVlLCBpbiBib29sZWFuIGFscGhhKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGNvbXBpbGVTaGFkZXIoaW4gV2ViR0xTaGFkZXIgc2hh
ZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCiAgICAgICAgIC8vdm9pZCAgICAg
ICAgIGNvbXByZXNzZWRUZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25n
IGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25n
IHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBib3JkZXIsIGluIHVuc2ln
bmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKTsKICAgICAgICAgLy92b2lkICAg
ICAgICAgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiB1bnNpZ25l
ZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gdW5zaWduZWQgbG9uZyBm
b3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKTsKICAg
ICAgICAgCi0gICAgICAgIHZvaWQgICAgICAgICBjb3B5VGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1h
dCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0LCBpbiBsb25nIGJvcmRlcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBj
b3B5VGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwg
aW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBp
biB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjb3B5VGV4SW1hZ2UyRChpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5h
bGZvcm1hdCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGlu
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBpbiBsb25nIGJvcmRlcik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjb3B5VGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZz
ZXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNp
Z25lZCBsb25nIGhlaWdodCk7CiAKLSAgICAgICAgV2ViR0xCdWZmZXIgY3JlYXRlQnVmZmVyKCk7
Ci0gICAgICAgIFdlYkdMRnJhbWVidWZmZXIgY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICAgICAg
V2ViR0xQcm9ncmFtIGNyZWF0ZVByb2dyYW0oKTsKLSAgICAgICAgV2ViR0xSZW5kZXJidWZmZXIg
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0gICAgICAgIFdlYkdMU2hhZGVyIGNyZWF0ZVNoYWRlcihp
biB1bnNpZ25lZCBsb25nIHR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBXZWJH
TFRleHR1cmUgY3JlYXRlVGV4dHVyZSgpOwotCi0gICAgICAgIHZvaWQgICAgICAgICBjdWxsRmFj
ZShpbiB1bnNpZ25lZCBsb25nIG1vZGUpOwotCi0gICAgICAgIHZvaWQgICAgICAgICBkZWxldGVC
dWZmZXIoaW4gV2ViR0xCdWZmZXIgYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlbGV0
ZUZyYW1lYnVmZmVyKGluIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOwotICAgICAgICB2
b2lkICAgICAgICAgZGVsZXRlUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSk7Ci0gICAg
ICAgIHZvaWQgICAgICAgICBkZWxldGVSZW5kZXJidWZmZXIoaW4gV2ViR0xSZW5kZXJidWZmZXIg
cmVuZGVyYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlbGV0ZVNoYWRlcihpbiBXZWJH
TFNoYWRlciBzaGFkZXIpOwotICAgICAgICB2b2lkICAgICAgICAgZGVsZXRlVGV4dHVyZShpbiBX
ZWJHTFRleHR1cmUgdGV4dHVyZSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdM
QnVmZmVyIGNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJH
TEZyYW1lYnVmZmVyIGNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIFdlYkdMUHJvZ3JhbSBjcmVhdGVQcm9ncmFtKCk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIFdlYkdMUmVuZGVyYnVmZmVyIGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTFNoYWRlciBjcmVhdGVTaGFkZXIoaW4gdW5zaWdu
ZWQgbG9uZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gV2ViR0xUZXh0dXJlIGNyZWF0ZVRleHR1cmUoKTsKKworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY3VsbEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2Rl
KTsKKworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlQnVm
ZmVyKGluIFdlYkdMQnVmZmVyIGJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBkZWxldGVGcmFtZWJ1ZmZlcihpbiBXZWJHTEZyYW1lYnVmZmVyIGZyYW1l
YnVmZmVyKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0
ZVByb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlUmVuZGVyYnVmZmVyKGluIFdlYkdMUmVuZGVyYnVm
ZmVyIHJlbmRlcmJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBkZWxldGVTaGFkZXIoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0ZVRleHR1cmUoaW4gV2ViR0xUZXh0dXJl
IHRleHR1cmUpOwogCi0gICAgICAgIHZvaWQgICAgICAgICBkZXB0aEZ1bmMoaW4gdW5zaWduZWQg
bG9uZyBmdW5jKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlcHRoTWFzayhpbiBib29sZWFuIGZs
YWcpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVwdGhGdW5j
KGluIHVuc2lnbmVkIGxvbmcgZnVuYyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICBkZXB0aE1hc2soaW4gYm9vbGVhbiBmbGFnKTsKICAgICAgICAgLy8gRklYTUU6
IHRoaXMgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IFdlYkdMIHNwZWMgKGRlcHRoUmFuZ2VmKQot
ICAgICAgICB2b2lkICAgICAgICAgZGVwdGhSYW5nZShpbiBkb3VibGUgek5lYXIsIGluIGRvdWJs
ZSB6RmFyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRldGFjaFNoYWRlcihpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCAgICAgICAgIGRpc2FibGUoaW4gdW5zaWduZWQgbG9uZyBjYXApOwotICAg
ICAgICB2b2lkICAgICAgICAgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgZHJh
d0FycmF5cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgZmlyc3QsIGluIGxvbmcgY291
bnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgZHJhd0VsZW1l
bnRzKGluIHVuc2lnbmVkIGxvbmcgbW9kZSwgaW4gbG9uZyBjb3VudCwgaW4gdW5zaWduZWQgbG9u
ZyB0eXBlLCBpbiBsb25nIG9mZnNldCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAg
dm9pZCAgICAgICAgIGVuYWJsZShpbiB1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZpbmlzaCgpOwotICAg
ICAgICB2b2lkICAgICAgICAgZmx1c2goKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25n
IGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBpbiBXZWJH
TFJlbmRlcmJ1ZmZlciByZW5kZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICB2b2lkICAgICAgICAgZnJhbWVidWZmZXJUZXh0dXJlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgaW4gdW5zaWduZWQgbG9uZyB0ZXh0YXJn
ZXQsIGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlLCBpbiBsb25nIGxldmVsKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyb250RmFjZShpbiB1bnNpZ25lZCBsb25n
IG1vZGUpOwotICAgICAgICB2b2lkICAgICAgICAgZ2VuZXJhdGVNaXBtYXAoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAg
ZGVwdGhSYW5nZShpbiBkb3VibGUgek5lYXIsIGluIGRvdWJsZSB6RmFyKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRldGFjaFNoYWRlcihpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRpc2FibGUoaW4gdW5z
aWduZWQgbG9uZyBjYXApOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgZHJhd0FycmF5cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgZmlyc3QsIGluIGxv
bmcgY291bnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkICAgICAgICAgZHJhd0VsZW1lbnRzKGluIHVuc2lnbmVkIGxvbmcgbW9kZSwgaW4g
bG9uZyBjb3VudCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBsb25nIG9mZnNldCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAg
ICAgIGVuYWJsZShpbiB1bnNpZ25lZCBsb25nIGNhcCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIHZvaWQgICAgICAgICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBs
b25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gdm9pZCAgICAgICAgIGZpbmlzaCgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9p
ZCAgICAgICAgIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVm
ZmVydGFyZ2V0LCBpbiBXZWJHTFJlbmRlcmJ1ZmZlciByZW5kZXJidWZmZXIpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZnJh
bWVidWZmZXJUZXh0dXJlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxv
bmcgYXR0YWNobWVudCwgaW4gdW5zaWduZWQgbG9uZyB0ZXh0YXJnZXQsIGluIFdlYkdMVGV4dHVy
ZSB0ZXh0dXJlLCBpbiBsb25nIGxldmVsKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGZyb250RmFjZShpbiB1bnNpZ25lZCBs
b25nIG1vZGUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZ2Vu
ZXJhdGVNaXBtYXAoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQpOwogICAgICAgICAKLSAgICAgICAg
V2ViR0xBY3RpdmVJbmZvIGdldEFjdGl2ZUF0dHJpYihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwg
aW4gdW5zaWduZWQgbG9uZyBpbmRleCkKLSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgV2ViR0xBY3RpdmVJbmZvIGdldEFjdGl2ZVVuaWZvcm0oaW4gV2ViR0xQcm9n
cmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMQWN0aXZl
SW5mbyBnZXRBY3RpdmVBdHRyaWIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVk
IGxvbmcgaW5kZXgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gV2ViR0xBY3RpdmVJbmZvIGdldEFjdGl2ZVVuaWZvcm0oaW4gV2ViR0xQcm9ncmFt
IHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldEF0dGFjaGVkU2hhZGVycyhpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSkKLSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldEF0dGFjaGVkU2hhZGVycyhpbiBX
ZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIGlu
dCAgICAgICAgICBnZXRBdHRyaWJMb2NhdGlvbihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4g
RE9NU3RyaW5nIG5hbWUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBpbnQgICAgICAg
ICAgZ2V0QXR0cmliTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmlu
ZyBuYW1lKTsKIAogICAgICAgICAvLyBhbnkgZ2V0QnVmZmVyUGFyYW1ldGVyKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXIoKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldEJ1ZmZlclBhcmFtZXRlcigpOwog
Ci0gICAgICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gV2ViR0xDb250ZXh0QXR0cmlidXRlcyBnZXRD
b250ZXh0QXR0cmlidXRlcygpOwogCi0gICAgICAgIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWduZWQgbG9uZyBnZXRFcnJvcigpOwog
CiAgICAgICAgIC8vIGFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgaW4gdW5zaWdu
ZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZv
aWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKCk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoKTsKICAgICAgICAgLy8gYW55IGdldFBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHBuYW1l
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRQYXJhbWV0
ZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFBhcmFt
ZXRlcigpOwogICAgICAgICAvLyBhbnkgZ2V0UHJvZ3JhbVBhcmFtZXRlcihpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0UHJvZ3JhbVBhcmFtZXRlcigpOwotICAgICAgICBE
T01TdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZv
aWQgZ2V0UHJvZ3JhbVBhcmFtZXRlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBE
T01TdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICAvLyBhbnkgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcigpOwogICAgICAgICAvLyBhbnkgZ2V0U2hhZGVyUGFyYW1ldGVy
KGluIFdlYkdMU2hhZGVyIHNoYWRlciwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0U2hhZGVyUGFyYW1ldGVyKCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCBnZXRTaGFkZXJQYXJhbWV0ZXIoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAg
ICAgICBET01TdHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBXZWJHTFNoYWRlciBzaGFkZXIp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBET01T
dHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBXZWJHTFNoYWRlciBzaGFkZXIpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIFRCRAogICAgICAgICAvLyB2b2lkIGdsR2V0U2hh
ZGVyUHJlY2lzaW9uRm9ybWF0IChHTGVudW0gc2hhZGVydHlwZSwgR0xlbnVtIHByZWNpc2lvbnR5
cGUsIEdMaW50KiByYW5nZSwgR0xpbnQqIHByZWNpc2lvbik7CiAKLSAgICAgICAgRE9NU3RyaW5n
ICAgIGdldFNoYWRlclNvdXJjZShpbiBXZWJHTFNoYWRlciBzaGFkZXIpIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICBET01TdHJpbmcgICAgZ2V0U3RyaW5nKGluIHVuc2lnbmVkIGxvbmcg
bmFtZSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIERPTVN0cmluZyAgICBnZXRTaGFk
ZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nICAgIGdldFN0cmluZyhpbiB1bnNp
Z25lZCBsb25nIG5hbWUpOwogCiAgICAgICAgIC8vIGFueSBnZXRUZXhQYXJhbWV0ZXIoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldFRleFBhcmFtZXRlcigpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgZ2V0VGV4UGFyYW1ldGVyKCk7CiAK
ICAgICAgICAgLy8gYW55IGdldFVuaWZvcm0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIFdl
YkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgW0N1c3RvbV0gdm9pZCBnZXRVbmlmb3JtKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIEN1c3RvbV0gdm9pZCBnZXRVbmlmb3JtKCk7CiAKLSAgICAgICAgV2ViR0xVbmlmb3JtTG9j
YXRpb24gZ2V0VW5pZm9ybUxvY2F0aW9uKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiBET01T
dHJpbmcgbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGdldFVuaWZvcm1Mb2NhdGlvbihpbiBXZWJHTFBy
b2dyYW0gcHJvZ3JhbSwgaW4gRE9NU3RyaW5nIG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAgICAgICAgIC8vIGFueSBnZXRWZXJ0ZXhBdHRyaWIoaW4gdW5zaWduZWQgbG9uZyBpbmRleCwg
aW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtD
dXN0b21dIHZvaWQgZ2V0VmVydGV4QXR0cmliKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIEN1c3RvbV0gdm9pZCBnZXRWZXJ0ZXhBdHRyaWIoKTsKIAotICAgICAgICBsb25nIGdldFZl
cnRleEF0dHJpYk9mZnNldChpbiB1bnNpZ25lZCBsb25nIGluZGV4LCBpbiB1bnNpZ25lZCBsb25n
IHBuYW1lKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gbG9uZyBnZXRWZXJ0ZXhBdHRy
aWJPZmZzZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7
CiAKLSAgICAgICAgdm9pZCAgICAgICAgIGhpbnQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IHVuc2lnbmVkIGxvbmcgbW9kZSk7Ci0gICAgICAgIGJvb2xlYW4gICAgICBpc0J1ZmZlcihpbiBX
ZWJHTEJ1ZmZlciBidWZmZXIpOwotICAgICAgICBib29sZWFuICAgICAgaXNFbmFibGVkKGluIHVu
c2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgYm9vbGVhbiAgICAgIGlzRnJhbWVidWZmZXIoaW4g
V2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7Ci0gICAgICAgIGJvb2xlYW4gICAgICBpc1By
b2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pOwotICAgICAgICBib29sZWFuICAgICAgaXNS
ZW5kZXJidWZmZXIoaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKLSAgICAgICAg
Ym9vbGVhbiAgICAgIGlzU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcik7Ci0gICAgICAgIGJv
b2xlYW4gICAgICBpc1RleHR1cmUoaW4gV2ViR0xUZXh0dXJlIHRleHR1cmUpOwotICAgICAgICB2
b2lkICAgICAgICAgbGluZVdpZHRoKGluIGRvdWJsZSB3aWR0aCk7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBsaW5rUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBwaXhlbFN0b3JlaShpbiB1bnNpZ25lZCBsb25n
IHBuYW1lLCBpbiBsb25nIHBhcmFtKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHBvbHlnb25PZmZz
ZXQoaW4gZG91YmxlIGZhY3RvciwgaW4gZG91YmxlIHVuaXRzKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGhpbnQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IHVuc2lnbmVkIGxvbmcgbW9kZSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xl
YW4gICAgICBpc0J1ZmZlcihpbiBXZWJHTEJ1ZmZlciBidWZmZXIpOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNFbmFibGVkKGluIHVuc2lnbmVkIGxvbmcgY2Fw
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYm9vbGVhbiAgICAgIGlzRnJhbWVidWZm
ZXIoaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGJvb2xlYW4gICAgICBpc1Byb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0p
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNSZW5kZXJidWZm
ZXIoaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gYm9vbGVhbiAgICAgIGlzU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcik7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xlYW4gICAgICBpc1RleHR1cmUoaW4g
V2ViR0xUZXh0dXJlIHRleHR1cmUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgbGluZVdpZHRoKGluIGRvdWJsZSB3aWR0aCk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBsaW5rUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3Jh
bSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICBwaXhlbFN0b3JlaShpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbiBsb25nIHBh
cmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHBvbHlnb25P
ZmZzZXQoaW4gZG91YmxlIGZhY3RvciwgaW4gZG91YmxlIHVuaXRzKTsKIAotICAgICAgICB2b2lk
ICAgICAgICAgcmVhZFBpeGVscyhpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3aWR0aCwg
aW4gbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25n
IHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgcmVhZFBpeGVscyhpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4g
bG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpOwogICAgICAgICAK
LSAgICAgICAgdm9pZCAgICAgICAgIHJlbGVhc2VTaGFkZXJDb21waWxlcigpOwotICAgICAgICB2
b2lkICAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwg
aW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwg
aW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICB2b2lkICAgICAgICAgc2FtcGxlQ292
ZXJhZ2UoaW4gZG91YmxlIHZhbHVlLCBpbiBib29sZWFuIGludmVydCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdp
ZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBzaGFk
ZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3RyaW5nKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVu
c2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Ci0g
ICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcg
ZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9u
ZyBtYXNrKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxv
bmcgbWFzayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsTWFza1NlcGFyYXRlKGluIHVu
c2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKLSAgICAgICAgdm9pZCAg
ICAgICAgIHN0ZW5jaWxPcChpbiB1bnNpZ25lZCBsb25nIGZhaWwsIGluIHVuc2lnbmVkIGxvbmcg
emZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOwotICAgICAgICB2b2lkICAgICAgICAgc3Rl
bmNpbE9wU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZh
aWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVsZWFzZVNoYWRlckNvbXBp
bGVyKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICByZW5kZXJi
dWZmZXJTdG9yYWdlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGlu
dGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhl
aWdodCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzYW1wbGVD
b3ZlcmFnZShpbiBkb3VibGUgdmFsdWUsIGluIGJvb2xlYW4gaW52ZXJ0KTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHNjaXNzb3IoaW4gbG9uZyB4LCBpbiBsb25n
IHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHNoYWRlclNvdXJjZShpbiBX
ZWJHTFNoYWRlciBzaGFkZXIsIGluIERPTVN0cmluZyBzdHJpbmcpIHJhaXNlcyhET01FeGNlcHRp
b24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbEZ1
bmMoaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9uZyBt
YXNrKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZ1bmMs
IGluIGxvbmcgcmVmLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbE1hc2soaW4gdW5zaWduZWQgbG9uZyBtYXNr
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxNYXNr
U2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbE9wKGluIHVu
c2lnbmVkIGxvbmcgZmFpbCwgaW4gdW5zaWduZWQgbG9uZyB6ZmFpbCwgaW4gdW5zaWduZWQgbG9u
ZyB6cGFzcyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzdGVu
Y2lsT3BTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIGZhY2UsIGluIHVuc2lnbmVkIGxvbmcgZmFp
bCwgaW4gdW5zaWduZWQgbG9uZyB6ZmFpbCwgaW4gdW5zaWduZWQgbG9uZyB6cGFzcyk7CiAKLSAg
ICAgICAgdm9pZCAgICAgICAgIHRleFBhcmFtZXRlcmYoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGluIGZsb2F0IHBhcmFtKTsKLSAgICAgICAgdm9pZCAg
ICAgICAgIHRleFBhcmFtZXRlcmkoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVk
IGxvbmcgcG5hbWUsIGluIGxvbmcgcGFyYW0pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgdGV4UGFyYW1ldGVyZihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4g
dW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gZmxvYXQgcGFyYW0pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4UGFyYW1ldGVyaShpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gbG9uZyBwYXJhbSk7CiAKICAgICAgICAg
Ly8gU3VwcG9ydGVkIGZvcm1zOgotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1
bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRl
cm5hbGZvcm1hdCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGJvcmRlciwgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gQXJyYXlCdWZmZXJWaWV3IHBpeGVscykgcmFp
c2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1
bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRl
cm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQg
bG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSW1hZ2VEYXRhIHBpeGVscykg
cmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBp
bnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWdu
ZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTEltYWdlRWxlbWVu
dCBpbWFnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4
SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWdu
ZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTENh
bnZhc0VsZW1lbnQgY2FudmFzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
ICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVs
LCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBl
LCBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0KLSAg
ICAgICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWln
aHQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25n
IGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBBcnJheUJ1ZmZlclZpZXcgcGl4ZWxz
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZz
ZXQsIGluIGxvbmcgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSW1hZ2VE
YXRhIHBpeGVscykgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAg
dGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4g
bG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5z
aWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXMpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5
b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBs
b25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MVmlkZW9FbGVtZW50IHZp
ZGVvKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgdm9pZCB1bmlmb3JtMWYoaW4g
V2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgpIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm0xZnYoaW4gV2ViR0xVbmlmb3Jt
TG9jYXRpb24gbG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCB1bmlmb3JtMWkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIGxvbmcgeCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZv
aWQgdW5pZm9ybTFpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJB
cnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1bmlmb3JtMmYoaW4g
V2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGluIGZsb2F0IHkpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm0yZnYoaW4g
V2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1bmlmb3JtMmkoaW4gV2ViR0xVbmlmb3JtTG9j
YXRpb24gbG9jYXRpb24sIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtMml2KGluIFdlYkdMVW5pZm9ybUxvY2F0
aW9uIGxvY2F0aW9uLCBpbiBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHVuaWZvcm0zZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4g
ZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTNmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBs
b2NhdGlvbiwgaW4gRmxvYXQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICB2b2lkIHVuaWZvcm0zaShpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gbG9u
ZyB4LCBpbiBsb25nIHksIGluIGxvbmcgeikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IFtDdXN0b21dIHZvaWQgdW5pZm9ybTNpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlv
biwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1
bmlmb3JtNGYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGlu
IGZsb2F0IHksIGluIGZsb2F0IHosIGluIGZsb2F0IHcpIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm00ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24g
bG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCB1bmlmb3JtNGkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGxv
bmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHosIGluIGxvbmcgdykgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTRpdihpbiBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoaW4gV2ViR0xVbmlmb3JtTG9j
YXRpb24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJy
YXkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm1N
YXRyaXgzZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJh
bnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRp
b24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkp
IHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgICAgICAgICB1c2VQcm9ncmFt
KGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
dm9pZCAgICAgICAgIHZhbGlkYXRlUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjFm
KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCk7Ci0gICAgICAgIFtDdXN0b21dIHZv
aWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIxZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9h
dDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjJmKGlu
IHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7Ci0gICAgICAgIFtD
dXN0b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4
LCBpbiBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0
dHJpYjNmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4g
ZmxvYXQgeik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIzZnYo
aW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAg
dm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjRmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxv
YXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeiwgaW4gZmxvYXQgdyk7Ci0gICAgICAgIFtDdXN0
b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWI0ZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBp
biBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0dHJp
YlBvaW50ZXIoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBsb25nIHNpemUsIGluIHVuc2lnbmVk
IGxvbmcgdHlwZSwgaW4gYm9vbGVhbiBub3JtYWxpemVkLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzdHJpZGUsIGluIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcg
bGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgd2lkdGgsIGlu
IGxvbmcgaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gbG9uZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRl
eEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2ln
bmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25l
ZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4g
dW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50
ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxm
b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhU
TUxDYW52YXNFbGVtZW50IGNhbnZhcykgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTFZp
ZGVvRWxlbWVudCB2aWRlbykgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNl
dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gQXJyYXlCdWZmZXJWaWV3IHBpeGVscykgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAg
ICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZl
bCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9y
bWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAg
IHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGlu
IGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwg
aW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlKSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAg
ICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBp
biBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQs
IGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVs
LCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTFZpZGVvRWxlbWVudCB2aWRlbykgcmFp
c2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
dW5pZm9ybTFmKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9t
XSB2b2lkIHVuaWZvcm0xZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEZs
b2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCB1bmlmb3JtMWkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24s
IGluIGxvbmcgeCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtMWl2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxv
Y2F0aW9uLCBpbiBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0yZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlv
biBsb2NhdGlvbiwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtMmZ2KGlu
IFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5pZm9y
bTJpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGluIGxvbmcg
eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1
c3RvbV0gdm9pZCB1bmlmb3JtMml2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBp
biBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0zZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlv
biwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeikgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtM2Z2
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5p
Zm9ybTNpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGluIGxv
bmcgeSwgaW4gbG9uZyB6KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIHVuaWZvcm0zaXYoaW4gV2ViR0xVbmlmb3JtTG9jYXRp
b24gbG9jYXRpb24sIGluIEludDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5pZm9ybTRmKGluIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6LCBpbiBm
bG9hdCB3KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
ZywgQ3VzdG9tXSB2b2lkIHVuaWZvcm00ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCB1bmlmb3JtNGkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24g
bG9jYXRpb24sIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHosIGluIGxvbmcgdykgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0g
dm9pZCB1bmlmb3JtNGl2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBJbnQz
MkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4MmZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0
aW9uIGxvY2F0aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3Vz
dG9tXSB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQg
dW5pZm9ybU1hdHJpeDRmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gYm9v
bGVhbiB0cmFuc3Bvc2UsIGluIEZsb2F0MzJBcnJheSBhcnJheSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHVzZVByb2dy
YW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmFsaWRhdGVQcm9ncmFtKGluIFdl
YkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMWYoaW4gdW5zaWduZWQg
bG9uZyBpbmR4LCBpbiBmbG9hdCB4KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3Vz
dG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMWZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwg
aW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0
IHgsIGluIGZsb2F0IHkpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZv
aWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9h
dDMyQXJyYXkgdmFsdWVzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAg
ICAgIHZlcnRleEF0dHJpYjNmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4g
ZmxvYXQgeSwgaW4gZmxvYXQgeik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjNmdihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGlu
IEZsb2F0MzJBcnJheSB2YWx1ZXMpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgdmVydGV4QXR0cmliNGYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBmbG9hdCB4
LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6LCBpbiBmbG9hdCB3KTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliNGZ2KGluIHVuc2ln
bmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWJQb2ludGVyKGluIHVuc2lnbmVk
IGxvbmcgaW5keCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIGJvb2xl
YW4gbm9ybWFsaXplZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc3RyaWRlLCBpbiB1bnNpZ25lZCBsb25nIG9m
ZnNldCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCAgICAgICAgIHZpZXdw
b3J0KGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNp
Z25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICB2aWV3cG9ydChpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0
aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogICAgIH07CiB9CiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDY1NjI4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTAtMDgtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
c3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4ganMgYmluZGluZ3MgZm9yIFdlYkdMIGZ1bmN0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMDIKKwor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVz
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRp
bmctZXhwZWN0ZWQudHh0OiBGaXggYnVncyBkdWUgdG8gc3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4g
dGhlIGpzIGJpbmRpbmdzLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9y
dGluZy5odG1sOiBkaXR0by4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3Qt
Z2V0LWNhbGxzLWV4cGVjdGVkLnR4dDogZGl0dG8uCisgICAgICAgICogZmFzdC9jYW52YXMvd2Vi
Z2wvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sOiBkaXR0by4KKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0OiBkaXR0by4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXIuaHRtbDogZGl0dG8u
CisKIDIwMTAtMDgtMTggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3Vt
ZW50cy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTkgQEAKK1Rl
c3RzIGNhbGxpbmcgV2ViR0wgQVBJcyB3aXRoIHdyb25nIGFyZ3VtZW50IHR5cGVzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBQcm9ncmFtIENvbXBpbGVkCitQQVNTIFNoYWRl
ciBDb21waWxlZAorUEFTUyBnZXRVbmlmb3JtTG9jYXRpb24gc3VjY2VlZGVkCitQQVNTIGNvbnRl
eHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5saW5rUHJvZ3JhbShhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJn
dW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRl
eHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hh
ZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0
LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRl
cikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC51
c2VQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZEF0dHJpYkxvY2F0
aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4
dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1
ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhU
VVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVS
LCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVu
dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5m
cmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FU
VEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYoYXJndW1l
bnQsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwgbmV3IElu
dDMyQXJyYXkoWzAsIDBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxzZSwgbmV3IEZsb2F0
MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihhcmd1bWVudCwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5n
ZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVudCwgbG9jKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmdldFVuaWZv
cm0ocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZp
ZXdQcm9qTWF0cml4JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0
LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250
ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYXR0YWNo
U2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmRldGFjaFNo
YWRlcihhcmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50
LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29u
dGV4dC5iaW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4
dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVS
LCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
Y29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5iaW5k
VGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5S
RU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZG
RVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1l
bnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRl
eHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjBdKSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC51bmlmb3Jt
Mml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYoYXJndW1l
bnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAwLjBdKSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFt
UGFyYW1ldGVyKGFyZ3VtZW50LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3Jt
KGFyZ3VtZW50LCBsb2MpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24o
YXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKGFyZ3VtZW50
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0Lmdl
dFNoYWRlckluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmNvbXBpbGVTaGFkZXIo
YXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5saW5rUHJvZ3JhbShhcmd1bWVu
dCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVy
KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3Vt
ZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBz
aGFkZXIpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51c2VQcm9ncmFtKGFyZ3VtZW50KSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbihhcmd1bWVudCwg
MCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQu
QVJSQVlfQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRG
cmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3Vt
ZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhU
VVJFXzJELCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVO
VCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNv
bnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5D
T0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCwgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYoYXJndW1lbnQsIG5ldyBGbG9hdDMyQXJy
YXkoWzAuMCwgMC4wXSkpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51bmlmb3JtMml2KGFy
Z3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJyYXkoWzAu
MCwgMC4wLCAwLjAsIDAuMF0pKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFNoYWRlclBh
cmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0oYXJn
dW1lbnQsIGxvYykgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJn
dW1lbnQpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24oYXJndW1lbnQs
ICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3Jh
bUluZm9Mb2coYXJndW1lbnQpIGlzICcnCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhh
cmd1bWVudCkgaXMgJycKK1BBU1MgY29udGV4dC5nZXRTaGFkZXJTb3VyY2UoYXJndW1lbnQpIGlz
ICcnCitQQVNTIGNvbnRleHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNv
bnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQu
YXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29u
dGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
Y29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgaXMgdW5kZWZpbmVkLgorUEFT
UyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4
dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1
ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
Y29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSBpcyB1bmRl
ZmluZWQuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFN
RUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwg
YXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUy
RChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0
LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudW5p
Zm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjBdKSkgaXMgdW5kZWZp
bmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFsw
LCAwXSkpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGFyZ3Vt
ZW50LCBmYWxzZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4wXSkpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSBp
cyBudWxsCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSBpcyBu
dWxsCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVudCwgbG9jKSBpcyBudWxsCitQQVNT
IGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkgaXMgbnVsbAorUEFTUyBjb250
ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcp
IGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgaXMgJycK
K1BBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSBpcyAnJworUEFTUyBjb250
ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgaXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworZGVz
Y3JpcHRpb24oIlRlc3RzIGNhbGxpbmcgV2ViR0wgQVBJcyB3aXRoIHdyb25nIGFyZ3VtZW50IHR5
cGVzIik7CisKK3ZhciBjb250ZXh0ID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOwordmFyIHByb2dy
YW0gPSB3dHUubG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0KTsKK3ZhciBzaGFkZXIgPSB3dHUu
bG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHQpOwordmFyIHNob3VsZEdlbmVyYXRlR0xF
cnJvciA9IHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3I7CisKK2Fzc2VydE1zZyhwcm9ncmFtICE9
IG51bGwsICJQcm9ncmFtIENvbXBpbGVkIik7Cithc3NlcnRNc2coc2hhZGVyICE9IG51bGwsICJT
aGFkZXIgQ29tcGlsZWQiKTsKKwordmFyIGxvYyA9IGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9u
KHByb2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKTsKK2Fzc2VydE1zZyhsb2MgIT0gbnVs
bCwgImdldFVuaWZvcm1Mb2NhdGlvbiBzdWNjZWVkZWQiKTsKKwordmFyIGFyZ3VtZW50cyA9IFsK
KyAgeyB2YWx1ZTogImZvbyIsCisgICAgdGhyb3c6IHRydWUgfSwKKyAgeyB2YWx1ZTogMCwKKyAg
ICB0aHJvdzogdHJ1ZSB9LAorICB7IHZhbHVlOiBudWxsLAorICAgIHRocm93OiBmYWxzZSB9LAor
ICB7IHZhbHVlOiB1bmRlZmluZWQsCisgICAgdGhyb3c6IGZhbHNlIH0KK107CisKK3ZhciBhcmd1
bWVudDsKKworZnVuY3Rpb24gc2hvdWxkQmVFbXB0eVN0cmluZyhjb21tYW5kKSB7CisgIHNob3Vs
ZEJlKGNvbW1hbmQsICInJyIpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkgeworICB2YXIgZnVuYywgZnVuYzIsIGZ1bmMzOworICBpZiAoYXJndW1lbnRz
W2ldLnRocm93KSB7CisgICAgZnVuYyA9IHNob3VsZFRocm93OworICAgIGZ1bmMyID0gc2hvdWxk
VGhyb3c7CisgICAgZnVuYzMgPSBzaG91bGRUaHJvdzsKKyAgfSBlbHNlIHsKKyAgICBmdW5jID0g
c2hvdWxkQmVVbmRlZmluZWQ7CisgICAgZnVuYzIgPSBzaG91bGRCZU51bGw7CisgICAgZnVuYzMg
PSBzaG91bGRCZUVtcHR5U3RyaW5nOworICB9CisgIGFyZ3VtZW50ID0gYXJndW1lbnRzW2ldLnZh
bHVlOworICBmdW5jKCJjb250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIik7CisgIGZ1bmMo
ImNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuYXR0YWNo
U2hhZGVyKGFyZ3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFt
LCBhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNo
YWRlcikiKTsKKyAgZnVuYygiY29udGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQp
Iik7CisgIGZ1bmMoImNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIik7Cisg
IGZ1bmMoImNvbnRleHQudXNlUHJvZ3JhbShhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5z
aGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSIpOworICBmdW5jKCJjb250ZXh0LmJpbmRBdHRy
aWJMb2NhdGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIik7CisgIGZ1bmMoImNvbnRleHQuYmluZEJ1
ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQu
YmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGFyZ3VtZW50KSIpOworICBmdW5j
KCJjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50
KSIpOworICBmdW5jKCJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgYXJn
dW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJV
RkZFUiwgYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Y29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5U
RVhUVVJFXzJELCBhcmd1bWVudCwgMCkiKTsKKyAgZnVuYygiY29udGV4dC51bmlmb3JtMmZ2KGFy
Z3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0pKSIpOworICBmdW5jKCJjb250ZXh0
LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFswLCAwXSkpIik7CisgIGZ1bmMo
ImNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJy
YXkoWzAuMCwgMC4wLCAwLjAsIDAuMF0pKSIpOworCisgIGZ1bmMyKCJjb250ZXh0LmdldFByb2dy
YW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIik7CisgIGZ1bmMyKCJjb250ZXh0LmdldFNoYWRlclBh
cmFtZXRlcihhcmd1bWVudCwgMCkiKTsKKyAgZnVuYzIoImNvbnRleHQuZ2V0VW5pZm9ybShhcmd1
bWVudCwgbG9jKSIpOworICBmdW5jMigiY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3Vt
ZW50KSIpOworICBmdW5jMigiY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24oYXJndW1lbnQsICd1
X21vZGVsVmlld1Byb2pNYXRyaXgnKSIpOworCisgIGZ1bmMzKCJjb250ZXh0LmdldFByb2dyYW1J
bmZvTG9nKGFyZ3VtZW50KSIpOworICBmdW5jMygiY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFy
Z3VtZW50KSIpOworICBmdW5jMygiY29udGV4dC5nZXRTaGFkZXJTb3VyY2UoYXJndW1lbnQpIik7
Cit9CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVw
b3J0aW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9lcnJvci1yZXBvcnRpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTQ3MCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9ydGluZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIFRlc3RzIGdlbmVyYXRpb24gb2Ygc3lu
dGhldGljIGFuZCByZWFsIEcKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1QQVNTIGNv
bnRleHQuZ2V0RXJyb3IoKSBpcyAwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKIFRlc3RpbmcgZ2V0QWN0aXZlQXR0cmliCiBQQVNTIGNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKG51bGwsIDIpIGlzIG51bGwKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX1ZBTFVFIDogCkBAIC0xOCwxMiArMTgsMTIgQEAgUEFTUyBjb250ZXh0Lmdl
dEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgNQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfVkFMVUUgOiAKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAogVGVzdGluZyBhdHRlbXB0cyB0byBtYW5pcHVsYXRlIHRoZSBkZWZhdWx0IGZy
YW1lYnVmZmVyCi1QQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZG
RVIsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgbnVsbCkgaXMgdW5kZWZpbmVkLgogUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250
ZXh0LlJFTkRFUkJVRkZFUiwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNI
TUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIG51bGwpIGlzIHVuZGVmaW5lZC4KIFBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IAogUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGNvbnRleHQuZnJhbWVi
dWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hN
RU5UMCwgY29udGV4dC5URVhUVVJFXzJELCAwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBudWxsLCAwKSBpcyB1bmRlZmluZWQu
CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiAK
IFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZXJyb3ItcmVwb3J0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLmh0bWwJKHJldmlzaW9uIDY1NDcwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDcgKzIxLDcgQEAgdmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFt
KGNvbnRleAogLy8gZGlzY292ZXJlZCBpbiB0aGUgc3ludGhldGljIGVycm9yIGdlbmVyYXRpb24g
YW5kIGluIHRoZSBXZWJHTAogLy8gaW1wbGVtZW50YXRpb24gaXRzZWxmLgogCi1zaG91bGRCZSgi
Y29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKK2dsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250
ZXh0Lk5PX0VSUk9SKTsKIAogZGVidWcoIlRlc3RpbmcgZ2V0QWN0aXZlQXR0cmliIik7CiAvLyBT
eW50aGV0aWMgT3BlbkdMIGVycm9yCkBAIC00OCwxNCArNDgsMTQgQEAgZ2xFcnJvclNob3VsZEJl
KGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRAogZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRl
eHQuTk9fRVJST1IpOwogCiBkZWJ1ZygiVGVzdGluZyBhdHRlbXB0cyB0byBtYW5pcHVsYXRlIHRo
ZSBkZWZhdWx0IGZyYW1lYnVmZmVyIik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5iaW5k
RnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVk
KCJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBudWxsKSIpOwog
Z2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IpOwotc2hvdWxkQmVVbmRl
ZmluZWQoImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZF
UiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkiKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRl
eHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJC
VUZGRVIsIG51bGwpIik7CiAvLyBTeW50aGV0aWMgT3BlbkdMIGVycm9yCiBnbEVycm9yU2hvdWxk
QmUoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTik7CiAvLyBFcnJvciBzdGF0ZSBz
aG91bGQgYmUgY2xlYXIgYnkgdGhpcyBwb2ludAogZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNv
bnRleHQuTk9fRVJST1IpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQuZnJhbWVidWZmZXJU
ZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwg
Y29udGV4dC5URVhUVVJFXzJELCAwLCAwKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQu
ZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9B
VFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBudWxsLCAwKSIpOwogLy8gU3ludGhldGlj
IE9wZW5HTCBlcnJvcgogZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9P
UEVSQVRJT04pOwogLy8gRXJyb3Igc3RhdGUgc2hvdWxkIGJlIGNsZWFyIGJ5IHRoaXMgcG9pbnQK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTQ3MCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDExICs0LDExIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBzaGFkZXJzLmxlbmd0aCBpcyAyCiBQQVNTIHNo
YWRlcnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8
IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFn
IGlzIHRydWUKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmdldEF0dGFjaGVkU2hh
ZGVycyhudWxsKSBpcyB1bmRlZmluZWQuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJ
RF9WQUxVRQotUEFTUyBnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KSBpcyB1bmRl
ZmluZWQuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9WQUxVRQorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKK1BBU1MgZ2wuZ2V0QXR0
YWNoZWRTaGFkZXJzKHN0YW5kYXJkVmVydCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAog
UEFTUyBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfU0la
RSkgaXMgMTYKIFBBU1MgZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wu
QlVGRkVSX1VTQUdFKSBpcyBnbC5EWU5BTUlDX0RSQVcKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IApAQCAtNzUsOSArNzUsMTEgQEAgUEFTUyBnbC5nZXRVbmlm
b3JtKG1hdFByb2dyYW0sIG12YWw0TG9jKQogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykgaXMgYnVmZmVyCiBQQVNTIGdsLmdl
dFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpIGlzIHRydWUK
IFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSkg
aXMgNAotUEFTUyAoZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
U1RSSURFKSA9PSAwKSB8fCAoZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfU1RSSURFKSA9PSA0ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpKSBpcyB0cnVlCitQQVNT
IGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSkgaXMg
MAogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBF
KSBpcyBnbC5GTE9BVAogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9OT1JNQUxJWkVEKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwg
Z2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpIGlzIDM2CitQQVNTIGdsLmdldFZlcnRleEF0
dHJpYk9mZnNldCgxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIpIGlzIDEyCiBQQVNT
IGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpIGlz
IGZhbHNlCiBQQVNTIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRS
SUIpIGlzIFs1LCA2LCA3LCA4XQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3Qt
Z2V0LWNhbGxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sCShyZXZpc2lvbiA2NTQ3MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzksMTEgKzM5LDExIEBAIGdsLmxpbmtQcm9ncmFtKHN0YW5kYXJkUHJvZ3JhbSk7
CiB2YXIgc2hhZGVycyA9IGdsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFByb2dyYW0pOwog
c2hvdWxkQmUoJ3NoYWRlcnMubGVuZ3RoJywgJzInKTsKIHNob3VsZEJlVHJ1ZSgnc2hhZGVyc1sw
XSA9PSBzdGFuZGFyZFZlcnQgJiYgc2hhZGVyc1sxXSA9PSBzdGFuZGFyZEZyYWcgfHwgc2hhZGVy
c1sxXSA9PSBzdGFuZGFyZFZlcnQgJiYgc2hhZGVyc1swXSA9PSBzdGFuZGFyZEZyYWcnKTsKLXNo
b3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7CitnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5nZXRBdHRhY2hlZFNoYWRl
cnMobnVsbCknKTsKLXNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLklOVkFMSURfVkFMVUUn
KTsKLXNob3VsZEJlVW5kZWZpbmVkKCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0
KScpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuSU5WQUxJRF9WQUxVRScpOworZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKK3Nob3VsZFRocm93KCdnbC5nZXRB
dHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KScpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CiAKIC8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyCiB2YXIgYnVmZmVyID0gZ2wu
Y3JlYXRlQnVmZmVyKCk7CkBAIC0yMTQsOSArMjE0LDEzIEBAIGdsLnZlcnRleEF0dHJpYlBvaW50
ZXIoMSwgNCwgZ2wuRkxPQVQsIGYKIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyknLCAnYnVmZmVyJyk7CiBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCkn
LCAndHJ1ZScpOwogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NJWkUpJywgJzQnKTsKLXNob3VsZEJlKCcoZ2wuZ2V0VmVydGV4QXR0cmliKDEs
IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKSA9PSAwKSB8fCAoZ2wuZ2V0VmVydGV4QXR0
cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKSA9PSA0ICogc2l6ZUluQnl0ZXMo
Z2wuRkxPQVQpKScsICd0cnVlJyk7CisvLyBTdHJpZGUgTVVTVCBiZSB0aGUgdmFsdWUgdGhlIHVz
ZXIgcHV0IGluLgorc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NUUklERSknLCAnMCcpOwogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1RZUEUpJywgJ2dsLkZMT0FUJyk7CiBzaG91bGRCZSgn
Z2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCkn
LCAnZmFsc2UnKTsKK2dsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNl
LCAzNiwgMTIpOworc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NUUklERSknLCAnMzYnKTsKK3Nob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWJP
ZmZzZXQoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSKScsICcxMicpOwogZ2wuZGlz
YWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpJywgJ2ZhbHNlJyk7CiBnbC52ZXJ0ZXhB
dHRyaWI0ZigxLCA1LCA2LCA3LCA4KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9u
dWxsLW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNCwx
MCArMTQsMTAgQEAgUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcih1bmRlZmluZWQsIHNoYQogUEFT
UyBjb250ZXh0LnNoYWRlclNvdXJjZSgpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxV
RS4KIFBBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVkLCAnZm9vJykgd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlv
bih1bmRlZmluZWQsIDAsICdmb28nKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUu
Ci1QQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkgd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KLVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29u
dGV4dC5GUkFNRUJVRkZFUiwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KLVBBU1Mg
Y29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgotUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQu
VEVYVFVSRV8yRCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgY29udGV4
dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCAwKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFRl
eHR1cmUoY29udGV4dC5URVhUVVJFXzJELCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgogUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIs
IG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGNvbnRleHQuYmluZEZy
YW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IuCiBQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJV
RkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KQEAgLTI2LDE0ICsyNiwx
NCBAQCBQQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVCiBQQVNTIGNvbnRl
eHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIHVuZGVmaW5lZCkgd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNv
bnRleHQuUkVOREVSQlVGRkVSLCB1bmRlZmluZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IuCiBQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCB1bmRlZmlu
ZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCi1QQVNTIGNvbnRleHQuZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hN
RU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X09QRVJBVElPTi4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZS
QU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQs
IDAsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGNvbnRl
eHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5E
RVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1
cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250
ZXh0LlRFWFRVUkVfMkQsIG51bGwsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVS
QVRJT04uCiBQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmRlZmluZWQsIDApIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5nZXRQcm9ncmFt
SW5mb0xvZyh1bmRlZmluZWQsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4K
IFBBU1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIodW5kZWZpbmVkLCAwKSB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyh1
bmRlZmluZWQsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29u
dGV4dC5nZXRTaGFkZXJTb3VyY2UodW5kZWZpbmVkKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfVkFMVUUuCi1QQVNTIGNvbnRleHQuZ2V0VW5pZm9ybSh1bmRlZmluZWQsIDApIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtKHVuZGVm
aW5lZCwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250
ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbih1bmRlZmluZWQsICdmb28nKSB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfVkFMVUUuCiAKIGNoZWNrIHdpdGggYmluZGluZ3MKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91
ci5odG1sCShyZXZpc2lvbiA2NTQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L251bGwtb2JqZWN0LWJlaGF2aW91ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAs
MTAgQEAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSQogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuc2hh
ZGVyU291cmNlKCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklO
VkFMSURfVkFMVUUsICJjb250ZXh0LnNoYWRlclNvdXJjZSh1bmRlZmluZWQsICdmb28nKSIpOwog
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNv
bnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKHVuZGVmaW5lZCwgMCwgJ2ZvbycpIik7Ci1zaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZEJ1
ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihj
b250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgMCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250
ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVG
RkVSLCAwKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJS
T1IsICJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgMCkiKTsKK3Nob3Vs
ZFRocm93KCJjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIDApIik7Citz
aG91bGRUaHJvdygiY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwg
MCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5E
RVJCVUZGRVIsIDApIik7CitzaG91bGRUaHJvdygiY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0
LlRFWFRVUkVfMkQsIDApIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4
dC5OT19FUlJPUiwgImNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgbnVs
bCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAi
Y29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgbnVsbCkiKTsKIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5i
aW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBudWxsKSIpOwpAQCAtNDIsMTQg
KzQyLDE0IEBAIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk4KIHNob3Vs
ZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5k
RnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgdW5kZWZpbmVkKSIpOwogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRSZW5k
ZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIHVuZGVmaW5lZCkiKTsKIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kVGV4dHVy
ZShjb250ZXh0LlRFWFRVUkVfMkQsIHVuZGVmaW5lZCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJv
cihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5mcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1F
TlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNv
bnRleHQsIGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmZyYW1lYnVmZmVyVGV4
dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0
LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRl
eHQuUkVOREVSQlVGRkVSLCBudWxsKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQs
IGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJE
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQu
VEVYVFVSRV8yRCwgbnVsbCwgMCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBj
b250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIodW5kZWZp
bmVkLCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJ
RF9WQUxVRSwgImNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2codW5kZWZpbmVkLCAwKSIpOwogc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRl
eHQuZ2V0U2hhZGVyUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCkiKTsKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmdldFNoYWRlcklu
Zm9Mb2codW5kZWZpbmVkLCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNv
bnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuZ2V0U2hhZGVyU291cmNlKHVuZGVmaW5lZCki
KTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUs
ICJjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVkLCAwKSIpOworc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuZ2V0VW5pZm9ybSh1
bmRlZmluZWQsIG51bGwpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4
dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24odW5kZWZpbmVkLCAn
Zm9vJykiKTsKIAogZGVidWcoIiIpOwpAQCAtNjQsOCArNjQsOCBAQCBzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoY29udGV4dCwgY29udGV4dC5OCiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJjaGVjayB3aXRo
b3V0IGJpbmRpbmdzIik7Ci1jb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIs
IDApOwotY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIDApOworY29udGV4
dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBudWxsKTsKK2NvbnRleHQuYmluZFRl
eHR1cmUoY29udGV4dC5URVhUVVJFXzJELCBudWxsKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihj
b250ZXh0LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5idWZmZXJEYXRhKGNv
bnRleHQuQVJSQVlfQlVGRkVSLCAxLCBjb250ZXh0LlNUQVRJQ19EUkFXKSIpOwogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0
LmdldEJ1ZmZlclBhcmFtZXRlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgY29udGV4dC5CVUZGRVJf
U0laRSkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURf
T1BFUkFUSU9OLCAiY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29u
dGV4dC5SR0JBLCAxLCAxLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwg
bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDBdKSkiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFn
CShyZXZpc2lvbiA2NTYyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291
cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAot
dmFyeWluZyBoaWdocCB2ZWMzIHZfbm9ybWFsOwordmFyeWluZyB2ZWMzIHZfbm9ybWFsOwogCiB2
b2lkIG1haW4oKQogewo=
</data>
<flag name="commit-queue"
          id="53445"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64805</attachid>
            <date>2010-08-18 20:05:22 -0700</date>
            <delta_ts>2010-08-19 10:41:53 -0700</delta_ts>
            <desc>revised patch: tiny fix</desc>
            <filename>js.patch</filename>
            <type>text/plain</type>
            <size>77892</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTYyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDgtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgc3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4ganMgYmluZGluZ3MgZm9yIFdlYkdMIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMDIK
KworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwOiBBZGQgdHlwZSBjaGVjayBmb3Igd3JhcHBlciB0eXBlcyBhbmQgRE9NU3RyaW5nIGFuZCB0
aHJvdyBlcnJvciBpbiBjYXNlIG9mIG1pc21hdGNoLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAoV2ViQ29yZTo6ZGF0
YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBEaXR0by4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0
YWNoZWRTaGFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0ZXhBdHRyaWJBbmRVbmlmb3JtSGVscGVyZik6
CisgICAgICAgIChXZWJDb3JlOjp1bmlmb3JtSGVscGVyaSk6CisgICAgICAgIChXZWJDb3JlOjp1
bmlmb3JtTWF0cml4SGVscGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaWRsOiBBZGQgYXR0cmlidXRlIFN0cmljdFR5cGVDaGVja2luZyBmb3IgV2ViR0wg
ZnVuY3Rpb25zLgorCiAyMDEwLTA4LTE4ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bu
b2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw4IEBA
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGEKICAgICAgICAgcmV0dXJu
IHRocm93U3ludGF4RXJyb3IoZXhlYyk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJp
bmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1l
bnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQorICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJH
TFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0yMzgsNiArMjQwLDggQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZwogCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQor
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xQcm9ncmFtKiBw
cm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVk
IHBuYW1lID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCkBAIC0yNjIsNiArMjY2LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0U2hhZAogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQo
MCkuaW5oZXJpdHMoJkpTV2ViR0xTaGFkZXI6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRl
cihleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT5hcmd1bWVu
dCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTI4
Niw3ICsyOTIsMTEgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZgog
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBj
b250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNV
bmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQ
cm9ncmFtOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQo
MCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxICYmICFleGVjLT5hcmd1bWVu
dCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgxKS5pbmhlcml0cygm
SlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2MgPSB0b1dlYkdMVW5p
Zm9ybUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMzU0LDkgKzM2NCwxMSBA
QCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1CiAgICAgV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uID0gMDsKICAgICBsb25nIGluZGV4ID0gLTE7CiAgICAgCi0g
ICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkKKyAgICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3Jt
KGYpKSB7CisgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVjLT5h
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhl
cml0cygmSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICAgICAgbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9y
bUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAg
ICAgIGluZGV4ID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKIAogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTQzOSw2ICs0NTEsOCBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAyKQogICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKIAorICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5l
ZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cygmSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRp
b24oZXhlYy0+YXJndW1lbnQoMCkpOwogICAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CkBAIC01MDIsNiArNTE2LDggQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRy
aXgoRAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJu
IHRocm93U3ludGF4RXJyb3IoZXhlYyk7CiAKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
ID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+
YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnNfaW5mbykpCisg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDAp
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgICAgCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDY1NDcwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtMTk2Myw2ICsxOTYzLDIwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0
cjwiIC4gJHBhcmFtZXRlci0+dHlwZSAuICI+ICRuYW1lID0gJHtjYWxsYmFja0NsYXNzTmFtZX06
OmNyZWF0ZShhc09iamVjdChleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSksIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBGb3IgZnVuY3Rpb25zIHdpdGggIlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlucHV0
IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIGFuIFR5cGVFcnJvciBpcyB0aHJvd24gaW5zdGVhZCBvZiBj
YXN0aW5nIHRvIG51bGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImV4ZWMt
PmFyZ3VtZW50KCRhcmdzSW5kZXgpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXkgJGFyZ1R5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHBhcmFtZXRlci0+dHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghSXNOYXRpdmVUeXBlKCRh
cmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYg
ISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRz
KCZKUyR7YXJnVHlwZX06OnNfaW5mbykpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVk
T3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmlzU3RyaW5nKCkgJiYgISR7YXJnVmFsdWV9LmlzT2Jq
ZWN0KCkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIpIC4gIiAkbmFt
ZSA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFyZ3VtZW50KCRhcmdz
SW5kZXgpIikgLiAiO1xuIik7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIElmIGEg
cGFyYW1ldGVyIGlzICJhbiBpbmRleCIgYW5kIGl0J3MgbmVnYXRpdmUgaXQgc2hvdWxkIHRocm93
IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbi4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNpb24gNjU1ODQpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ1
LDYgKzEyNDUsMjMgQEAgRU5ECiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEJpbmRpbmdNYWNyb3MuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICMgRm9yIGZ1bmN0aW9ucyB3aXRoICJTdHJpY3RUeXBlQ2hlY2tpbmciLCBpZiBhbiBpbnB1
dCBwYXJhbWV0ZXIncyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSBzaWduYXR1cmUsCisgICAgICAg
ICAgICAjIGFuIFRZUEVfTUlTTUFUQ0hfRVJSIGlzIHRocm93biBpbnN0ZWFkIG9mIGNhc3Rpbmcg
dG8gbnVsbC4KKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAgICAgICAgICAgICAgbXkg
JGFyZ1ZhbHVlID0gImFyZ3NbJHBhcmFtSW5kZXhdIjsKKyAgICAgICAgICAgICAgICBteSAkYXJn
VHlwZSA9IEdldFR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIpOworICAgICAgICAgICAgICAg
IGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXgg
JiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgIVY4JHthcmdUeXBlfTo6SGFzSW5z
dGFuY2UoJGFyZ1ZhbHVlKSkge1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4g
JHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFs
dWV9LT5Jc1N0cmluZygpICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4i
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIEVYQ0VQVElPTl9CTE9DSygkbmF0aXZlVHlwZSwgJHBhcmFt
ZXRlck5hbWUsICIgLgogICAgICAgICAgICAgICAgICBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRl
ciwgImFyZ3NbJHBhcmFtSW5kZXhdIiwgQmFzaWNUeXBlQ2FuRmFpbENvbnZlcnNpb24oJHBhcmFt
ZXRlcikgPyAgIiR7cGFyYW1ldGVyTmFtZX1PayIgOiB1bmRlZikgLiAiKTtcbiIpOwogICAgICAg
ICB9CkBAIC0yOTg4LDcgKzMwMDUsMTAgQEAgc3ViIFJlcXVpcmVzQ3VzdG9tU2lnbmF0dXJlCiAg
ICAgaWYgKEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0gPiAxKSB7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KLQorICAgICMgVHlwZSBjaGVja2luZyBpcyBwZXJmb3JtZWQgaW4gdGhlIGdlbmVy
YXRlZCBjb2RlCisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKKyAgICAgIHJldHVybiAwOworICAgIH0KICAg
ICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAg
ICAgICBpZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn0gfHwg
JHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKICAgICAgICAg
ICAgIHJldHVybiAwOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjU0
NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsMTAgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDbwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIGlmIChhcmdzLkxlbmd0aCgp
ID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIVY4V2ViR0xQcm9ncmFtOjpI
YXNJbnN0YW5jZShhcmdzWzBdKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigp
OworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CiAgICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFyZ3Nb
MF0pID8gVjhXZWJHTFByb2dyYW06OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoYXJnc1swXSkpIDogMDsKICAgICBWZWN0b3I8V2ViR0xTaGFkZXIqPiBzaGFkZXJzOwogICAg
IGJvb2wgc3VjY2VlZCA9IGNvbnRleHQtPmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFk
ZXJzLCBlYyk7CkBAIC0zMTksNiArMzIzLDEwIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YkdMUmVuZGVyaW5nQ28KIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZp
bmVkT3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1sw
XSkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQogICAgIFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSA9IFY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xQcm9n
cmFtOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7
CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBwbmFtZSA9IHRvSW50MzIoYXJnc1sxXSwgb2sp
OwpAQCAtMzUxLDYgKzM1OSwxMCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRl
cmluZ0NvCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVs
bChhcmdzWzBdKSAmJiAhVjhXZWJHTFNoYWRlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKKyAg
ICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQogICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSBWOFdl
YkdMU2hhZGVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xTaGFkZXI6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICBib29sIG9r
OwogICAgIHVuc2lnbmVkIHBuYW1lID0gdG9JbnQzMihhcmdzWzFdLCBvayk7CkBAIC0zODMsOCAr
Mzk1LDE2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ28KIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4
dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYm
ICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKKyAgICAgICAgVjhQcm94
eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7CisgICAgfQogICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IFY4V2ViR0xQcm9ncmFt
OjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xQcm9ncmFtOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7CiAKKyAgICBpZiAoYXJncy5MZW5n
dGgoKSA+IDEgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMV0pICYmICFWOFdlYkdMVW5pZm9y
bUxvY2F0aW9uOjpIYXNJbnN0YW5jZShhcmdzWzFdKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJv
d1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsK
KyAgICB9CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1sxXSwgb2spOwogCkBAIC00NTIs
OCArNDcyLDEzIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmVydGV4QXR0cmkKIAog
ICAgIGlmIChpc0Z1bmN0aW9uVG9DYWxsRm9yQXR0cmlidXRlKGZ1bmN0aW9uVG9DYWxsKSkKICAg
ICAgICAgaW5kZXggPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICBlbHNlCisgICAgZWxzZSB7
CisgICAgICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJn
c1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRpb246Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7
CisgICAgICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIH0KICAgICAgICAgbG9jYXRp
b24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGFyZ3NbMF0sIG9rKTsKKyAgICB9CiAKICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAKQEAgLTUyNiw2ICs1NTEsMTAgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtSGVscAogICAgIH0KIAogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVk
T3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShh
cmdzWzBdKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICBy
ZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CiAgICAgYm9vbCBvayA9IGZh
bHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3Jt
TG9jYXRpb24oYXJnc1swXSwgb2spOwogCkBAIC02MzksNiArNjY4LDEwIEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybU1hdHIKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKIAorICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwo
YXJnc1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRpb246Okhhc0luc3RhbmNlKGFyZ3NbMF0p
KSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KICAgICBib29sIG9rID0gZmFsc2U7CiAg
ICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlv
bihhcmdzWzBdLCBvayk7CiAgICAgCkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaWRsCShyZXZpc2lvbiA2NTQ3MCkKKysrIFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDY0LDIx
MyArNDY0LDIxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBV
TlBBQ0tfRkxJUF9ZX1dFQkdMICAgICAgICAgICAgPSAweDkyNDA7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAweDkyNDE7CiAKLSAg
ICAgICAgdm9pZCAgICAgICAgIGFjdGl2ZVRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0ZXh0dXJl
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGF0dGFjaFNoYWRl
cihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRBdHRyaWJMb2NhdGlvbihp
biBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gRE9NU3Ry
aW5nIG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYmlu
ZEJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2ViR0xCdWZmZXIgYnVmZmVyKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRGcmFtZWJ1ZmZl
cihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZl
cikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBiaW5kUmVuZGVy
YnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJHTFJlbmRlcmJ1ZmZlciByZW5k
ZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYmlu
ZFRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJl
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kQ29sb3Io
aW4gZG91YmxlIHJlZCwgaW4gZG91YmxlIGdyZWVuLCBpbiBkb3VibGUgYmx1ZSwgaW4gZG91Ymxl
IGFscGhhKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kRXF1YXRpb24oIGluIHVuc2lnbmVk
IGxvbmcgbW9kZSApOwotICAgICAgICB2b2lkICAgICAgICAgYmxlbmRFcXVhdGlvblNlcGFyYXRl
KGluIHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwgaW4gdW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpOwot
ICAgICAgICB2b2lkICAgICAgICAgYmxlbmRGdW5jKGluIHVuc2lnbmVkIGxvbmcgc2ZhY3Rvciwg
aW4gdW5zaWduZWQgbG9uZyBkZmFjdG9yKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kRnVu
Y1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgc3JjUkdCLCBpbiB1bnNpZ25lZCBsb25nIGRzdFJH
QiwgaW4gdW5zaWduZWQgbG9uZyBzcmNBbHBoYSwgaW4gdW5zaWduZWQgbG9uZyBkc3RBbHBoYSk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBidWZmZXJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiBBcnJheUJ1ZmZlciBkYXRhLCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBidWZmZXJEYXRhKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiBBcnJheUJ1ZmZlclZpZXcgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1
c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYnVmZmVy
RGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBs
b25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBi
dWZmZXJTdWJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4g
QXJyYXlCdWZmZXIgZGF0YSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAg
ICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBvZmZz
ZXQsIGluIEFycmF5QnVmZmVyVmlldyBkYXRhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0KLSAg
ICAgICAgdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0KTsKLSAgICAgICAgdm9pZCAgICAgICAgIGNsZWFyKGluIHVuc2lnbmVkIGxvbmcg
bWFzayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjbGVhckNvbG9yKGluIGRvdWJsZSByZWQsIGlu
IGRvdWJsZSBncmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7Ci0gICAgICAg
IHZvaWQgICAgICAgICBjbGVhckRlcHRoKGluIGRvdWJsZSBkZXB0aCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBjbGVhclN0ZW5jaWwoaW4gbG9uZyBzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGNv
bG9yTWFzayhpbiBib29sZWFuIHJlZCwgaW4gYm9vbGVhbiBncmVlbiwgaW4gYm9vbGVhbiBibHVl
LCBpbiBib29sZWFuIGFscGhhKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGNvbXBpbGVTaGFkZXIo
aW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGFjdGl2ZVRleHR1cmUoaW4gdW5zaWduZWQg
bG9uZyB0ZXh0dXJlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIGF0dGFjaFNoYWRlcihpbiBXZWJHTFByb2dyYW0gcHJvZ3Jh
bSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRBdHRyaWJMb2NhdGlvbihpbiBX
ZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gRE9NU3RyaW5n
IG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYmluZEJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2Vi
R0xCdWZmZXIgYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRGcmFtZWJ1ZmZlcihpbiB1bnNpZ25lZCBsb25n
IHRhcmdldCwgaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcikgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBiaW5kUmVu
ZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJHTFJlbmRlcmJ1ZmZlciBy
ZW5kZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgYmluZFRleHR1cmUoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJsZW5kQ29sb3IoaW4gZG91YmxlIHJl
ZCwgaW4gZG91YmxlIGdyZWVuLCBpbiBkb3VibGUgYmx1ZSwgaW4gZG91YmxlIGFscGhhKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJsZW5kRXF1YXRpb24oIGlu
IHVuc2lnbmVkIGxvbmcgbW9kZSApOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgYmxlbmRFcXVhdGlvblNlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwg
aW4gdW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYmxlbmRGdW5jKGluIHVuc2lnbmVkIGxvbmcgc2ZhY3RvciwgaW4gdW5z
aWduZWQgbG9uZyBkZmFjdG9yKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGJsZW5kRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgc3JjUkdCLCBpbiB1bnNp
Z25lZCBsb25nIGRzdFJHQiwgaW4gdW5zaWduZWQgbG9uZyBzcmNBbHBoYSwgaW4gdW5zaWduZWQg
bG9uZyBkc3RBbHBoYSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAg
ICBidWZmZXJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBBcnJheUJ1ZmZlciBkYXRh
LCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBidWZmZXJEYXRhKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiBBcnJheUJ1ZmZlclZpZXcgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1
c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9u
ZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBidWZmZXJTdWJEYXRhKGlu
IHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4gQXJyYXlCdWZmZXIgZGF0
YSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2
b2lkICAgICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9u
ZyBvZmZzZXQsIGluIEFycmF5QnVmZmVyVmlldyBkYXRhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGNsZWFyKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjbGVhckNvbG9yKGluIGRv
dWJsZSByZWQsIGluIGRvdWJsZSBncmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBo
YSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjbGVhckRlcHRo
KGluIGRvdWJsZSBkZXB0aCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBjbGVhclN0ZW5jaWwoaW4gbG9uZyBzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
Z10gdm9pZCAgICAgICAgIGNvbG9yTWFzayhpbiBib29sZWFuIHJlZCwgaW4gYm9vbGVhbiBncmVl
biwgaW4gYm9vbGVhbiBibHVlLCBpbiBib29sZWFuIGFscGhhKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGNvbXBpbGVTaGFkZXIoaW4gV2ViR0xTaGFkZXIgc2hh
ZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCiAgICAgICAgIC8vdm9pZCAgICAg
ICAgIGNvbXByZXNzZWRUZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25n
IGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25n
IHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBib3JkZXIsIGluIHVuc2ln
bmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKTsKICAgICAgICAgLy92b2lkICAg
ICAgICAgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiB1bnNpZ25l
ZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gdW5zaWduZWQgbG9uZyBm
b3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKTsKICAg
ICAgICAgCi0gICAgICAgIHZvaWQgICAgICAgICBjb3B5VGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1h
dCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0LCBpbiBsb25nIGJvcmRlcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBj
b3B5VGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwg
aW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBp
biB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjb3B5VGV4SW1hZ2UyRChpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5h
bGZvcm1hdCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGlu
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBpbiBsb25nIGJvcmRlcik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBjb3B5VGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZz
ZXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNp
Z25lZCBsb25nIGhlaWdodCk7CiAKLSAgICAgICAgV2ViR0xCdWZmZXIgY3JlYXRlQnVmZmVyKCk7
Ci0gICAgICAgIFdlYkdMRnJhbWVidWZmZXIgY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICAgICAg
V2ViR0xQcm9ncmFtIGNyZWF0ZVByb2dyYW0oKTsKLSAgICAgICAgV2ViR0xSZW5kZXJidWZmZXIg
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0gICAgICAgIFdlYkdMU2hhZGVyIGNyZWF0ZVNoYWRlcihp
biB1bnNpZ25lZCBsb25nIHR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBXZWJH
TFRleHR1cmUgY3JlYXRlVGV4dHVyZSgpOwotCi0gICAgICAgIHZvaWQgICAgICAgICBjdWxsRmFj
ZShpbiB1bnNpZ25lZCBsb25nIG1vZGUpOwotCi0gICAgICAgIHZvaWQgICAgICAgICBkZWxldGVC
dWZmZXIoaW4gV2ViR0xCdWZmZXIgYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlbGV0
ZUZyYW1lYnVmZmVyKGluIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOwotICAgICAgICB2
b2lkICAgICAgICAgZGVsZXRlUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSk7Ci0gICAg
ICAgIHZvaWQgICAgICAgICBkZWxldGVSZW5kZXJidWZmZXIoaW4gV2ViR0xSZW5kZXJidWZmZXIg
cmVuZGVyYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlbGV0ZVNoYWRlcihpbiBXZWJH
TFNoYWRlciBzaGFkZXIpOwotICAgICAgICB2b2lkICAgICAgICAgZGVsZXRlVGV4dHVyZShpbiBX
ZWJHTFRleHR1cmUgdGV4dHVyZSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdM
QnVmZmVyIGNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJH
TEZyYW1lYnVmZmVyIGNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIFdlYkdMUHJvZ3JhbSBjcmVhdGVQcm9ncmFtKCk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIFdlYkdMUmVuZGVyYnVmZmVyIGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTFNoYWRlciBjcmVhdGVTaGFkZXIoaW4gdW5zaWdu
ZWQgbG9uZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gV2ViR0xUZXh0dXJlIGNyZWF0ZVRleHR1cmUoKTsKKworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY3VsbEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2Rl
KTsKKworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlQnVm
ZmVyKGluIFdlYkdMQnVmZmVyIGJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBkZWxldGVGcmFtZWJ1ZmZlcihpbiBXZWJHTEZyYW1lYnVmZmVyIGZyYW1l
YnVmZmVyKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0
ZVByb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlUmVuZGVyYnVmZmVyKGluIFdlYkdMUmVuZGVyYnVm
ZmVyIHJlbmRlcmJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICBkZWxldGVTaGFkZXIoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0ZVRleHR1cmUoaW4gV2ViR0xUZXh0dXJl
IHRleHR1cmUpOwogCi0gICAgICAgIHZvaWQgICAgICAgICBkZXB0aEZ1bmMoaW4gdW5zaWduZWQg
bG9uZyBmdW5jKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlcHRoTWFzayhpbiBib29sZWFuIGZs
YWcpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVwdGhGdW5j
KGluIHVuc2lnbmVkIGxvbmcgZnVuYyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICBkZXB0aE1hc2soaW4gYm9vbGVhbiBmbGFnKTsKICAgICAgICAgLy8gRklYTUU6
IHRoaXMgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IFdlYkdMIHNwZWMgKGRlcHRoUmFuZ2VmKQot
ICAgICAgICB2b2lkICAgICAgICAgZGVwdGhSYW5nZShpbiBkb3VibGUgek5lYXIsIGluIGRvdWJs
ZSB6RmFyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRldGFjaFNoYWRlcihpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCAgICAgICAgIGRpc2FibGUoaW4gdW5zaWduZWQgbG9uZyBjYXApOwotICAg
ICAgICB2b2lkICAgICAgICAgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgZHJh
d0FycmF5cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgZmlyc3QsIGluIGxvbmcgY291
bnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgZHJhd0VsZW1l
bnRzKGluIHVuc2lnbmVkIGxvbmcgbW9kZSwgaW4gbG9uZyBjb3VudCwgaW4gdW5zaWduZWQgbG9u
ZyB0eXBlLCBpbiBsb25nIG9mZnNldCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAg
dm9pZCAgICAgICAgIGVuYWJsZShpbiB1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZpbmlzaCgpOwotICAg
ICAgICB2b2lkICAgICAgICAgZmx1c2goKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25n
IGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBpbiBXZWJH
TFJlbmRlcmJ1ZmZlciByZW5kZXJidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICB2b2lkICAgICAgICAgZnJhbWVidWZmZXJUZXh0dXJlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgaW4gdW5zaWduZWQgbG9uZyB0ZXh0YXJn
ZXQsIGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlLCBpbiBsb25nIGxldmVsKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGZyb250RmFjZShpbiB1bnNpZ25lZCBsb25n
IG1vZGUpOwotICAgICAgICB2b2lkICAgICAgICAgZ2VuZXJhdGVNaXBtYXAoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAg
ZGVwdGhSYW5nZShpbiBkb3VibGUgek5lYXIsIGluIGRvdWJsZSB6RmFyKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRldGFjaFNoYWRlcihpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSwgaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRpc2FibGUoaW4gdW5z
aWduZWQgbG9uZyBjYXApOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgZHJhd0FycmF5cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgZmlyc3QsIGluIGxv
bmcgY291bnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkICAgICAgICAgZHJhd0VsZW1lbnRzKGluIHVuc2lnbmVkIGxvbmcgbW9kZSwgaW4g
bG9uZyBjb3VudCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBsb25nIG9mZnNldCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAg
ICAgIGVuYWJsZShpbiB1bnNpZ25lZCBsb25nIGNhcCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIHZvaWQgICAgICAgICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBs
b25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gdm9pZCAgICAgICAgIGZpbmlzaCgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9p
ZCAgICAgICAgIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVm
ZmVydGFyZ2V0LCBpbiBXZWJHTFJlbmRlcmJ1ZmZlciByZW5kZXJidWZmZXIpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZnJh
bWVidWZmZXJUZXh0dXJlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxv
bmcgYXR0YWNobWVudCwgaW4gdW5zaWduZWQgbG9uZyB0ZXh0YXJnZXQsIGluIFdlYkdMVGV4dHVy
ZSB0ZXh0dXJlLCBpbiBsb25nIGxldmVsKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGZyb250RmFjZShpbiB1bnNpZ25lZCBs
b25nIG1vZGUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZ2Vu
ZXJhdGVNaXBtYXAoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQpOwogICAgICAgICAKLSAgICAgICAg
V2ViR0xBY3RpdmVJbmZvIGdldEFjdGl2ZUF0dHJpYihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwg
aW4gdW5zaWduZWQgbG9uZyBpbmRleCkKLSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgV2ViR0xBY3RpdmVJbmZvIGdldEFjdGl2ZVVuaWZvcm0oaW4gV2ViR0xQcm9n
cmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMQWN0aXZl
SW5mbyBnZXRBY3RpdmVBdHRyaWIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVk
IGxvbmcgaW5kZXgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gV2ViR0xBY3RpdmVJbmZvIGdldEFjdGl2ZVVuaWZvcm0oaW4gV2ViR0xQcm9ncmFt
IHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldEF0dGFjaGVkU2hhZGVycyhpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSkKLSAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldEF0dGFjaGVkU2hhZGVycyhpbiBX
ZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIGlu
dCAgICAgICAgICBnZXRBdHRyaWJMb2NhdGlvbihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4g
RE9NU3RyaW5nIG5hbWUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBpbnQgICAgICAg
ICAgZ2V0QXR0cmliTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmlu
ZyBuYW1lKTsKIAogICAgICAgICAvLyBhbnkgZ2V0QnVmZmVyUGFyYW1ldGVyKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXIoKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldEJ1ZmZlclBhcmFtZXRlcigpOwog
Ci0gICAgICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gV2ViR0xDb250ZXh0QXR0cmlidXRlcyBnZXRD
b250ZXh0QXR0cmlidXRlcygpOwogCi0gICAgICAgIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWduZWQgbG9uZyBnZXRFcnJvcigpOwog
CiAgICAgICAgIC8vIGFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgaW4gdW5zaWdu
ZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZv
aWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKCk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoKTsKICAgICAgICAgLy8gYW55IGdldFBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHBuYW1l
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRQYXJhbWV0
ZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFBhcmFt
ZXRlcigpOwogICAgICAgICAvLyBhbnkgZ2V0UHJvZ3JhbVBhcmFtZXRlcihpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0UHJvZ3JhbVBhcmFtZXRlcigpOwotICAgICAgICBE
T01TdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZv
aWQgZ2V0UHJvZ3JhbVBhcmFtZXRlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBE
T01TdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICAvLyBhbnkgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcigpOwogICAgICAgICAvLyBhbnkgZ2V0U2hhZGVyUGFyYW1ldGVy
KGluIFdlYkdMU2hhZGVyIHNoYWRlciwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0U2hhZGVyUGFyYW1ldGVyKCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCBnZXRTaGFkZXJQYXJhbWV0ZXIoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAg
ICAgICBET01TdHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBXZWJHTFNoYWRlciBzaGFkZXIp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBET01T
dHJpbmcgICAgZ2V0U2hhZGVySW5mb0xvZyhpbiBXZWJHTFNoYWRlciBzaGFkZXIpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIFRCRAogICAgICAgICAvLyB2b2lkIGdsR2V0U2hh
ZGVyUHJlY2lzaW9uRm9ybWF0IChHTGVudW0gc2hhZGVydHlwZSwgR0xlbnVtIHByZWNpc2lvbnR5
cGUsIEdMaW50KiByYW5nZSwgR0xpbnQqIHByZWNpc2lvbik7CiAKLSAgICAgICAgRE9NU3RyaW5n
ICAgIGdldFNoYWRlclNvdXJjZShpbiBXZWJHTFNoYWRlciBzaGFkZXIpIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICBET01TdHJpbmcgICAgZ2V0U3RyaW5nKGluIHVuc2lnbmVkIGxvbmcg
bmFtZSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIERPTVN0cmluZyAgICBnZXRTaGFk
ZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nICAgIGdldFN0cmluZyhpbiB1bnNp
Z25lZCBsb25nIG5hbWUpOwogCiAgICAgICAgIC8vIGFueSBnZXRUZXhQYXJhbWV0ZXIoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldFRleFBhcmFtZXRlcigpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgZ2V0VGV4UGFyYW1ldGVyKCk7CiAK
ICAgICAgICAgLy8gYW55IGdldFVuaWZvcm0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIFdl
YkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgW0N1c3RvbV0gdm9pZCBnZXRVbmlmb3JtKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIEN1c3RvbV0gdm9pZCBnZXRVbmlmb3JtKCk7CiAKLSAgICAgICAgV2ViR0xVbmlmb3JtTG9j
YXRpb24gZ2V0VW5pZm9ybUxvY2F0aW9uKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiBET01T
dHJpbmcgbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGdldFVuaWZvcm1Mb2NhdGlvbihpbiBXZWJHTFBy
b2dyYW0gcHJvZ3JhbSwgaW4gRE9NU3RyaW5nIG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAgICAgICAgIC8vIGFueSBnZXRWZXJ0ZXhBdHRyaWIoaW4gdW5zaWduZWQgbG9uZyBpbmRleCwg
aW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtD
dXN0b21dIHZvaWQgZ2V0VmVydGV4QXR0cmliKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIEN1c3RvbV0gdm9pZCBnZXRWZXJ0ZXhBdHRyaWIoKTsKIAotICAgICAgICBsb25nIGdldFZl
cnRleEF0dHJpYk9mZnNldChpbiB1bnNpZ25lZCBsb25nIGluZGV4LCBpbiB1bnNpZ25lZCBsb25n
IHBuYW1lKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gbG9uZyBnZXRWZXJ0ZXhBdHRy
aWJPZmZzZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7
CiAKLSAgICAgICAgdm9pZCAgICAgICAgIGhpbnQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IHVuc2lnbmVkIGxvbmcgbW9kZSk7Ci0gICAgICAgIGJvb2xlYW4gICAgICBpc0J1ZmZlcihpbiBX
ZWJHTEJ1ZmZlciBidWZmZXIpOwotICAgICAgICBib29sZWFuICAgICAgaXNFbmFibGVkKGluIHVu
c2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgYm9vbGVhbiAgICAgIGlzRnJhbWVidWZmZXIoaW4g
V2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7Ci0gICAgICAgIGJvb2xlYW4gICAgICBpc1By
b2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pOwotICAgICAgICBib29sZWFuICAgICAgaXNS
ZW5kZXJidWZmZXIoaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKLSAgICAgICAg
Ym9vbGVhbiAgICAgIGlzU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcik7Ci0gICAgICAgIGJv
b2xlYW4gICAgICBpc1RleHR1cmUoaW4gV2ViR0xUZXh0dXJlIHRleHR1cmUpOwotICAgICAgICB2
b2lkICAgICAgICAgbGluZVdpZHRoKGluIGRvdWJsZSB3aWR0aCk7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBsaW5rUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBwaXhlbFN0b3JlaShpbiB1bnNpZ25lZCBsb25n
IHBuYW1lLCBpbiBsb25nIHBhcmFtKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHBvbHlnb25PZmZz
ZXQoaW4gZG91YmxlIGZhY3RvciwgaW4gZG91YmxlIHVuaXRzKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGhpbnQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IHVuc2lnbmVkIGxvbmcgbW9kZSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xl
YW4gICAgICBpc0J1ZmZlcihpbiBXZWJHTEJ1ZmZlciBidWZmZXIpOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNFbmFibGVkKGluIHVuc2lnbmVkIGxvbmcgY2Fw
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYm9vbGVhbiAgICAgIGlzRnJhbWVidWZm
ZXIoaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGJvb2xlYW4gICAgICBpc1Byb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0p
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNSZW5kZXJidWZm
ZXIoaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gYm9vbGVhbiAgICAgIGlzU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcik7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xlYW4gICAgICBpc1RleHR1cmUoaW4g
V2ViR0xUZXh0dXJlIHRleHR1cmUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgbGluZVdpZHRoKGluIGRvdWJsZSB3aWR0aCk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBsaW5rUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3Jh
bSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICBwaXhlbFN0b3JlaShpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbiBsb25nIHBh
cmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHBvbHlnb25P
ZmZzZXQoaW4gZG91YmxlIGZhY3RvciwgaW4gZG91YmxlIHVuaXRzKTsKIAotICAgICAgICB2b2lk
ICAgICAgICAgcmVhZFBpeGVscyhpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3aWR0aCwg
aW4gbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25n
IHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgcmVhZFBpeGVscyhpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4g
bG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpOwogICAgICAgICAK
LSAgICAgICAgdm9pZCAgICAgICAgIHJlbGVhc2VTaGFkZXJDb21waWxlcigpOwotICAgICAgICB2
b2lkICAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwg
aW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwg
aW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICB2b2lkICAgICAgICAgc2FtcGxlQ292
ZXJhZ2UoaW4gZG91YmxlIHZhbHVlLCBpbiBib29sZWFuIGludmVydCk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdp
ZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBzaGFk
ZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3RyaW5nKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVu
c2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Ci0g
ICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcg
ZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9u
ZyBtYXNrKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxv
bmcgbWFzayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsTWFza1NlcGFyYXRlKGluIHVu
c2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKLSAgICAgICAgdm9pZCAg
ICAgICAgIHN0ZW5jaWxPcChpbiB1bnNpZ25lZCBsb25nIGZhaWwsIGluIHVuc2lnbmVkIGxvbmcg
emZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOwotICAgICAgICB2b2lkICAgICAgICAgc3Rl
bmNpbE9wU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZh
aWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVsZWFzZVNoYWRlckNvbXBp
bGVyKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICByZW5kZXJi
dWZmZXJTdG9yYWdlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGlu
dGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhl
aWdodCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzYW1wbGVD
b3ZlcmFnZShpbiBkb3VibGUgdmFsdWUsIGluIGJvb2xlYW4gaW52ZXJ0KTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHNjaXNzb3IoaW4gbG9uZyB4LCBpbiBsb25n
IHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHNoYWRlclNvdXJjZShpbiBX
ZWJHTFNoYWRlciBzaGFkZXIsIGluIERPTVN0cmluZyBzdHJpbmcpIHJhaXNlcyhET01FeGNlcHRp
b24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbEZ1
bmMoaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9uZyBt
YXNrKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZ1bmMs
IGluIGxvbmcgcmVmLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbE1hc2soaW4gdW5zaWduZWQgbG9uZyBtYXNr
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxNYXNr
U2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbE9wKGluIHVu
c2lnbmVkIGxvbmcgZmFpbCwgaW4gdW5zaWduZWQgbG9uZyB6ZmFpbCwgaW4gdW5zaWduZWQgbG9u
ZyB6cGFzcyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzdGVu
Y2lsT3BTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIGZhY2UsIGluIHVuc2lnbmVkIGxvbmcgZmFp
bCwgaW4gdW5zaWduZWQgbG9uZyB6ZmFpbCwgaW4gdW5zaWduZWQgbG9uZyB6cGFzcyk7CiAKLSAg
ICAgICAgdm9pZCAgICAgICAgIHRleFBhcmFtZXRlcmYoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGluIGZsb2F0IHBhcmFtKTsKLSAgICAgICAgdm9pZCAg
ICAgICAgIHRleFBhcmFtZXRlcmkoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVk
IGxvbmcgcG5hbWUsIGluIGxvbmcgcGFyYW0pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgdGV4UGFyYW1ldGVyZihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4g
dW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gZmxvYXQgcGFyYW0pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4UGFyYW1ldGVyaShpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gbG9uZyBwYXJhbSk7CiAKICAgICAgICAg
Ly8gU3VwcG9ydGVkIGZvcm1zOgotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1
bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRl
cm5hbGZvcm1hdCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGJvcmRlciwgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gQXJyYXlCdWZmZXJWaWV3IHBpeGVscykgcmFp
c2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1
bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRl
cm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQg
bG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSW1hZ2VEYXRhIHBpeGVscykg
cmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBp
bnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWdu
ZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTEltYWdlRWxlbWVu
dCBpbWFnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4
SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWdu
ZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTENh
bnZhc0VsZW1lbnQgY2FudmFzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
ICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVs
LCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBl
LCBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0KLSAg
ICAgICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWln
aHQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25n
IGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBBcnJheUJ1ZmZlclZpZXcgcGl4ZWxz
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZz
ZXQsIGluIGxvbmcgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSW1hZ2VE
YXRhIHBpeGVscykgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAg
dGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4g
bG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5z
aWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXMpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleFN1YkltYWdlMkQoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5
b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBs
b25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MVmlkZW9FbGVtZW50IHZp
ZGVvKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgdm9pZCB1bmlmb3JtMWYoaW4g
V2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgpIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm0xZnYoaW4gV2ViR0xVbmlmb3Jt
TG9jYXRpb24gbG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCB1bmlmb3JtMWkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIGxvbmcgeCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZv
aWQgdW5pZm9ybTFpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJB
cnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1bmlmb3JtMmYoaW4g
V2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGluIGZsb2F0IHkpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm0yZnYoaW4g
V2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1bmlmb3JtMmkoaW4gV2ViR0xVbmlmb3JtTG9j
YXRpb24gbG9jYXRpb24sIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtMml2KGluIFdlYkdMVW5pZm9ybUxvY2F0
aW9uIGxvY2F0aW9uLCBpbiBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHVuaWZvcm0zZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4g
ZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTNmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBs
b2NhdGlvbiwgaW4gRmxvYXQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICB2b2lkIHVuaWZvcm0zaShpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gbG9u
ZyB4LCBpbiBsb25nIHksIGluIGxvbmcgeikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IFtDdXN0b21dIHZvaWQgdW5pZm9ybTNpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlv
biwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1
bmlmb3JtNGYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgsIGlu
IGZsb2F0IHksIGluIGZsb2F0IHosIGluIGZsb2F0IHcpIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm00ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24g
bG9jYXRpb24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCB1bmlmb3JtNGkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGxv
bmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHosIGluIGxvbmcgdykgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTRpdihpbiBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoaW4gV2ViR0xVbmlmb3JtTG9j
YXRpb24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJy
YXkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm1N
YXRyaXgzZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJh
bnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRp
b24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkp
IHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgICAgICAgICB1c2VQcm9ncmFt
KGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
dm9pZCAgICAgICAgIHZhbGlkYXRlUHJvZ3JhbShpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjFm
KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCk7Ci0gICAgICAgIFtDdXN0b21dIHZv
aWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIxZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9h
dDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjJmKGlu
IHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7Ci0gICAgICAgIFtD
dXN0b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4
LCBpbiBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0
dHJpYjNmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4g
ZmxvYXQgeik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIzZnYo
aW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAg
dm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjRmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxv
YXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeiwgaW4gZmxvYXQgdyk7Ci0gICAgICAgIFtDdXN0
b21dIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWI0ZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBp
biBGbG9hdDMyQXJyYXkgdmFsdWVzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHZlcnRleEF0dHJp
YlBvaW50ZXIoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBsb25nIHNpemUsIGluIHVuc2lnbmVk
IGxvbmcgdHlwZSwgaW4gYm9vbGVhbiBub3JtYWxpemVkLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzdHJpZGUsIGluIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcg
bGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgd2lkdGgsIGlu
IGxvbmcgaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gbG9uZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRl
eEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2ln
bmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25l
ZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4g
dW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50
ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxm
b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhU
TUxDYW52YXNFbGVtZW50IGNhbnZhcykgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTFZp
ZGVvRWxlbWVudCB2aWRlbykgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNl
dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gQXJyYXlCdWZmZXJWaWV3IHBpeGVscykgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAg
ICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZl
bCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9y
bWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAg
IHRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGlu
IGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwg
aW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlKSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAg
ICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBp
biBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQs
IGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVs
LCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTFZpZGVvRWxlbWVudCB2aWRlbykgcmFp
c2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
dW5pZm9ybTFmKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9t
XSB2b2lkIHVuaWZvcm0xZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEZs
b2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCB1bmlmb3JtMWkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24s
IGluIGxvbmcgeCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtMWl2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxv
Y2F0aW9uLCBpbiBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0yZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlv
biBsb2NhdGlvbiwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtMmZ2KGlu
IFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5pZm9y
bTJpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGluIGxvbmcg
eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1
c3RvbV0gdm9pZCB1bmlmb3JtMml2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBp
biBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0zZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlv
biwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeikgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtM2Z2
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5p
Zm9ybTNpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGluIGxv
bmcgeSwgaW4gbG9uZyB6KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIHVuaWZvcm0zaXYoaW4gV2ViR0xVbmlmb3JtTG9jYXRp
b24gbG9jYXRpb24sIGluIEludDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgdW5pZm9ybTRmKGluIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6LCBpbiBm
bG9hdCB3KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
ZywgQ3VzdG9tXSB2b2lkIHVuaWZvcm00ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCB1bmlmb3JtNGkoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24g
bG9jYXRpb24sIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHosIGluIGxvbmcgdykgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0g
dm9pZCB1bmlmb3JtNGl2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBJbnQz
MkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4MmZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0
aW9uIGxvY2F0aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3Vz
dG9tXSB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQg
dW5pZm9ybU1hdHJpeDRmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gYm9v
bGVhbiB0cmFuc3Bvc2UsIGluIEZsb2F0MzJBcnJheSBhcnJheSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHVzZVByb2dy
YW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmFsaWRhdGVQcm9ncmFtKGluIFdl
YkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMWYoaW4gdW5zaWduZWQg
bG9uZyBpbmR4LCBpbiBmbG9hdCB4KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3Vz
dG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliMWZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwg
aW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0
IHgsIGluIGZsb2F0IHkpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZv
aWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9h
dDMyQXJyYXkgdmFsdWVzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAg
ICAgIHZlcnRleEF0dHJpYjNmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4g
ZmxvYXQgeSwgaW4gZmxvYXQgeik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjNmdihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGlu
IEZsb2F0MzJBcnJheSB2YWx1ZXMpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
ICAgICAgICAgdmVydGV4QXR0cmliNGYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBmbG9hdCB4
LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6LCBpbiBmbG9hdCB3KTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliNGZ2KGluIHVuc2ln
bmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWJQb2ludGVyKGluIHVuc2lnbmVk
IGxvbmcgaW5keCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIGJvb2xl
YW4gbm9ybWFsaXplZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc3RyaWRlLCBpbiB1bnNpZ25lZCBsb25nIG9m
ZnNldCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCAgICAgICAgIHZpZXdw
b3J0KGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNp
Z25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICB2aWV3cG9ydChpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0
aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogICAgIH07CiB9CiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDY1NjI4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTAtMDgtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
c3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4ganMgYmluZGluZ3MgZm9yIFdlYkdMIGZ1bmN0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMDIKKwor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVz
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRp
bmctZXhwZWN0ZWQudHh0OiBGaXggYnVncyBkdWUgdG8gc3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4g
dGhlIGpzIGJpbmRpbmdzLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9y
dGluZy5odG1sOiBkaXR0by4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3Qt
Z2V0LWNhbGxzLWV4cGVjdGVkLnR4dDogZGl0dG8uCisgICAgICAgICogZmFzdC9jYW52YXMvd2Vi
Z2wvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sOiBkaXR0by4KKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0OiBkaXR0by4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXIuaHRtbDogZGl0dG8u
CisKIDIwMTAtMDgtMTggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3Vt
ZW50cy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTkgQEAKK1Rl
c3RzIGNhbGxpbmcgV2ViR0wgQVBJcyB3aXRoIHdyb25nIGFyZ3VtZW50IHR5cGVzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBQcm9ncmFtIENvbXBpbGVkCitQQVNTIFNoYWRl
ciBDb21waWxlZAorUEFTUyBnZXRVbmlmb3JtTG9jYXRpb24gc3VjY2VlZGVkCitQQVNTIGNvbnRl
eHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5saW5rUHJvZ3JhbShhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJn
dW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRl
eHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hh
ZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0
LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRl
cikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC51
c2VQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZEF0dHJpYkxvY2F0
aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4
dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1
ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhU
VVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVS
LCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVu
dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5m
cmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FU
VEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYoYXJndW1l
bnQsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwgbmV3IElu
dDMyQXJyYXkoWzAsIDBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxzZSwgbmV3IEZsb2F0
MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihhcmd1bWVudCwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5n
ZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVudCwgbG9jKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmdldFVuaWZv
cm0ocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZp
ZXdQcm9qTWF0cml4JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0
LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250
ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYXR0YWNo
U2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmRldGFjaFNo
YWRlcihhcmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50
LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29u
dGV4dC5iaW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4
dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVS
LCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
Y29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5iaW5k
VGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5S
RU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZG
RVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1l
bnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRl
eHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjBdKSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC51bmlmb3Jt
Mml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYoYXJndW1l
bnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAwLjBdKSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFt
UGFyYW1ldGVyKGFyZ3VtZW50LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3Jt
KGFyZ3VtZW50LCBsb2MpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24o
YXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKGFyZ3VtZW50
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0Lmdl
dFNoYWRlckluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmNvbXBpbGVTaGFkZXIo
YXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5saW5rUHJvZ3JhbShhcmd1bWVu
dCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVy
KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3Vt
ZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBz
aGFkZXIpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51c2VQcm9ncmFtKGFyZ3VtZW50KSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbihhcmd1bWVudCwg
MCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQu
QVJSQVlfQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRG
cmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3Vt
ZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhU
VVJFXzJELCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVO
VCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNv
bnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5D
T0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCwgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYoYXJndW1lbnQsIG5ldyBGbG9hdDMyQXJy
YXkoWzAuMCwgMC4wXSkpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51bmlmb3JtMml2KGFy
Z3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJyYXkoWzAu
MCwgMC4wLCAwLjAsIDAuMF0pKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFNoYWRlclBh
cmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0oYXJn
dW1lbnQsIGxvYykgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJn
dW1lbnQpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24oYXJndW1lbnQs
ICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3Jh
bUluZm9Mb2coYXJndW1lbnQpIGlzICcnCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhh
cmd1bWVudCkgaXMgJycKK1BBU1MgY29udGV4dC5nZXRTaGFkZXJTb3VyY2UoYXJndW1lbnQpIGlz
ICcnCitQQVNTIGNvbnRleHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNv
bnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQu
YXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29u
dGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
Y29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgaXMgdW5kZWZpbmVkLgorUEFT
UyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4
dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1
ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
Y29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSBpcyB1bmRl
ZmluZWQuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFN
RUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwg
YXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUy
RChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0
LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudW5p
Zm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjBdKSkgaXMgdW5kZWZp
bmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFsw
LCAwXSkpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGFyZ3Vt
ZW50LCBmYWxzZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4wXSkpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSBp
cyBudWxsCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKGFyZ3VtZW50LCAwKSBpcyBu
dWxsCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVudCwgbG9jKSBpcyBudWxsCitQQVNT
IGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkgaXMgbnVsbAorUEFTUyBjb250
ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcp
IGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgaXMgJycK
K1BBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSBpcyAnJworUEFTUyBjb250
ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgaXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworZGVz
Y3JpcHRpb24oIlRlc3RzIGNhbGxpbmcgV2ViR0wgQVBJcyB3aXRoIHdyb25nIGFyZ3VtZW50IHR5
cGVzIik7CisKK3ZhciBjb250ZXh0ID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOwordmFyIHByb2dy
YW0gPSB3dHUubG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0KTsKK3ZhciBzaGFkZXIgPSB3dHUu
bG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGNvbnRleHQpOwordmFyIHNob3VsZEdlbmVyYXRlR0xF
cnJvciA9IHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3I7CisKK2Fzc2VydE1zZyhwcm9ncmFtICE9
IG51bGwsICJQcm9ncmFtIENvbXBpbGVkIik7Cithc3NlcnRNc2coc2hhZGVyICE9IG51bGwsICJT
aGFkZXIgQ29tcGlsZWQiKTsKKwordmFyIGxvYyA9IGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9u
KHByb2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKTsKK2Fzc2VydE1zZyhsb2MgIT0gbnVs
bCwgImdldFVuaWZvcm1Mb2NhdGlvbiBzdWNjZWVkZWQiKTsKKwordmFyIGFyZ3VtZW50cyA9IFsK
KyAgeyB2YWx1ZTogImZvbyIsCisgICAgdGhyb3c6IHRydWUgfSwKKyAgeyB2YWx1ZTogMCwKKyAg
ICB0aHJvdzogdHJ1ZSB9LAorICB7IHZhbHVlOiBudWxsLAorICAgIHRocm93OiBmYWxzZSB9LAor
ICB7IHZhbHVlOiB1bmRlZmluZWQsCisgICAgdGhyb3c6IGZhbHNlIH0KK107CisKK3ZhciBhcmd1
bWVudDsKKworZnVuY3Rpb24gc2hvdWxkQmVFbXB0eVN0cmluZyhjb21tYW5kKSB7CisgIHNob3Vs
ZEJlKGNvbW1hbmQsICInJyIpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkgeworICB2YXIgZnVuYywgZnVuYzIsIGZ1bmMzOworICBpZiAoYXJndW1lbnRz
W2ldLnRocm93KSB7CisgICAgZnVuYyA9IHNob3VsZFRocm93OworICAgIGZ1bmMyID0gc2hvdWxk
VGhyb3c7CisgICAgZnVuYzMgPSBzaG91bGRUaHJvdzsKKyAgfSBlbHNlIHsKKyAgICBmdW5jID0g
c2hvdWxkQmVVbmRlZmluZWQ7CisgICAgZnVuYzIgPSBzaG91bGRCZU51bGw7CisgICAgZnVuYzMg
PSBzaG91bGRCZUVtcHR5U3RyaW5nOworICB9CisgIGFyZ3VtZW50ID0gYXJndW1lbnRzW2ldLnZh
bHVlOworICBmdW5jKCJjb250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIik7CisgIGZ1bmMo
ImNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuYXR0YWNo
U2hhZGVyKGFyZ3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFt
LCBhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNo
YWRlcikiKTsKKyAgZnVuYygiY29udGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQp
Iik7CisgIGZ1bmMoImNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIik7Cisg
IGZ1bmMoImNvbnRleHQudXNlUHJvZ3JhbShhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5z
aGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSIpOworICBmdW5jKCJjb250ZXh0LmJpbmRBdHRy
aWJMb2NhdGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIik7CisgIGZ1bmMoImNvbnRleHQuYmluZEJ1
ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQu
YmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGFyZ3VtZW50KSIpOworICBmdW5j
KCJjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50
KSIpOworICBmdW5jKCJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgYXJn
dW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJV
RkZFUiwgYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Y29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5U
RVhUVVJFXzJELCBhcmd1bWVudCwgMCkiKTsKKyAgZnVuYygiY29udGV4dC51bmlmb3JtMmZ2KGFy
Z3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMF0pKSIpOworICBmdW5jKCJjb250ZXh0
LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5KFswLCAwXSkpIik7CisgIGZ1bmMo
ImNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJy
YXkoWzAuMCwgMC4wLCAwLjAsIDAuMF0pKSIpOworCisgIGZ1bmMyKCJjb250ZXh0LmdldFByb2dy
YW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIik7CisgIGZ1bmMyKCJjb250ZXh0LmdldFNoYWRlclBh
cmFtZXRlcihhcmd1bWVudCwgMCkiKTsKKyAgZnVuYzIoImNvbnRleHQuZ2V0VW5pZm9ybShhcmd1
bWVudCwgbG9jKSIpOworICBmdW5jMigiY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3Vt
ZW50KSIpOworICBmdW5jMigiY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24oYXJndW1lbnQsICd1
X21vZGVsVmlld1Byb2pNYXRyaXgnKSIpOworCisgIGZ1bmMzKCJjb250ZXh0LmdldFByb2dyYW1J
bmZvTG9nKGFyZ3VtZW50KSIpOworICBmdW5jMygiY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFy
Z3VtZW50KSIpOworICBmdW5jMygiY29udGV4dC5nZXRTaGFkZXJTb3VyY2UoYXJndW1lbnQpIik7
Cit9CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVw
b3J0aW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9lcnJvci1yZXBvcnRpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTQ3MCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9ydGluZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIFRlc3RzIGdlbmVyYXRpb24gb2Ygc3lu
dGhldGljIGFuZCByZWFsIEcKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1QQVNTIGNv
bnRleHQuZ2V0RXJyb3IoKSBpcyAwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKIFRlc3RpbmcgZ2V0QWN0aXZlQXR0cmliCiBQQVNTIGNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKG51bGwsIDIpIGlzIG51bGwKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX1ZBTFVFIDogCkBAIC0xOCwxMiArMTgsMTIgQEAgUEFTUyBjb250ZXh0Lmdl
dEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgNQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfVkFMVUUgOiAKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAogVGVzdGluZyBhdHRlbXB0cyB0byBtYW5pcHVsYXRlIHRoZSBkZWZhdWx0IGZy
YW1lYnVmZmVyCi1QQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZG
RVIsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgbnVsbCkgaXMgdW5kZWZpbmVkLgogUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250
ZXh0LlJFTkRFUkJVRkZFUiwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNI
TUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIG51bGwpIGlzIHVuZGVmaW5lZC4KIFBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IAogUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGNvbnRleHQuZnJhbWVi
dWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hN
RU5UMCwgY29udGV4dC5URVhUVVJFXzJELCAwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRl
eHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBudWxsLCAwKSBpcyB1bmRlZmluZWQu
CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiAK
IFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZXJyb3ItcmVwb3J0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLmh0bWwJKHJldmlzaW9uIDY1NDcwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDcgKzIxLDcgQEAgdmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFt
KGNvbnRleAogLy8gZGlzY292ZXJlZCBpbiB0aGUgc3ludGhldGljIGVycm9yIGdlbmVyYXRpb24g
YW5kIGluIHRoZSBXZWJHTAogLy8gaW1wbGVtZW50YXRpb24gaXRzZWxmLgogCi1zaG91bGRCZSgi
Y29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKK2dsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250
ZXh0Lk5PX0VSUk9SKTsKIAogZGVidWcoIlRlc3RpbmcgZ2V0QWN0aXZlQXR0cmliIik7CiAvLyBT
eW50aGV0aWMgT3BlbkdMIGVycm9yCkBAIC00OCwxNCArNDgsMTQgQEAgZ2xFcnJvclNob3VsZEJl
KGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRAogZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRl
eHQuTk9fRVJST1IpOwogCiBkZWJ1ZygiVGVzdGluZyBhdHRlbXB0cyB0byBtYW5pcHVsYXRlIHRo
ZSBkZWZhdWx0IGZyYW1lYnVmZmVyIik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5iaW5k
RnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVk
KCJjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBudWxsKSIpOwog
Z2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IpOwotc2hvdWxkQmVVbmRl
ZmluZWQoImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZF
UiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkiKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRl
eHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJC
VUZGRVIsIG51bGwpIik7CiAvLyBTeW50aGV0aWMgT3BlbkdMIGVycm9yCiBnbEVycm9yU2hvdWxk
QmUoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTik7CiAvLyBFcnJvciBzdGF0ZSBz
aG91bGQgYmUgY2xlYXIgYnkgdGhpcyBwb2ludAogZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNv
bnRleHQuTk9fRVJST1IpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQuZnJhbWVidWZmZXJU
ZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwg
Y29udGV4dC5URVhUVVJFXzJELCAwLCAwKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQu
ZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9B
VFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBudWxsLCAwKSIpOwogLy8gU3ludGhldGlj
IE9wZW5HTCBlcnJvcgogZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9P
UEVSQVRJT04pOwogLy8gRXJyb3Igc3RhdGUgc2hvdWxkIGJlIGNsZWFyIGJ5IHRoaXMgcG9pbnQK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NTQ3MCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDExICs0LDExIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBzaGFkZXJzLmxlbmd0aCBpcyAyCiBQQVNTIHNo
YWRlcnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8
IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFn
IGlzIHRydWUKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmdldEF0dGFjaGVkU2hh
ZGVycyhudWxsKSBpcyB1bmRlZmluZWQuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJ
RF9WQUxVRQotUEFTUyBnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KSBpcyB1bmRl
ZmluZWQuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9WQUxVRQorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiAKK1BBU1MgZ2wuZ2V0QXR0
YWNoZWRTaGFkZXJzKHN0YW5kYXJkVmVydCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAog
UEFTUyBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfU0la
RSkgaXMgMTYKIFBBU1MgZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wu
QlVGRkVSX1VTQUdFKSBpcyBnbC5EWU5BTUlDX0RSQVcKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IApAQCAtNzUsOSArNzUsMTEgQEAgUEFTUyBnbC5nZXRVbmlm
b3JtKG1hdFByb2dyYW0sIG12YWw0TG9jKQogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykgaXMgYnVmZmVyCiBQQVNTIGdsLmdl
dFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpIGlzIHRydWUK
IFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSkg
aXMgNAotUEFTUyAoZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
U1RSSURFKSA9PSAwKSB8fCAoZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfU1RSSURFKSA9PSA0ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpKSBpcyB0cnVlCitQQVNT
IGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSkgaXMg
MAogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBF
KSBpcyBnbC5GTE9BVAogUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9OT1JNQUxJWkVEKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwg
Z2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpIGlzIDM2CitQQVNTIGdsLmdldFZlcnRleEF0
dHJpYk9mZnNldCgxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIpIGlzIDEyCiBQQVNT
IGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpIGlz
IGZhbHNlCiBQQVNTIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRS
SUIpIGlzIFs1LCA2LCA3LCA4XQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3Qt
Z2V0LWNhbGxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sCShyZXZpc2lvbiA2NTQ3MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMzksMTEgKzM5LDExIEBAIGdsLmxpbmtQcm9ncmFtKHN0YW5kYXJkUHJvZ3JhbSk7
CiB2YXIgc2hhZGVycyA9IGdsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFByb2dyYW0pOwog
c2hvdWxkQmUoJ3NoYWRlcnMubGVuZ3RoJywgJzInKTsKIHNob3VsZEJlVHJ1ZSgnc2hhZGVyc1sw
XSA9PSBzdGFuZGFyZFZlcnQgJiYgc2hhZGVyc1sxXSA9PSBzdGFuZGFyZEZyYWcgfHwgc2hhZGVy
c1sxXSA9PSBzdGFuZGFyZFZlcnQgJiYgc2hhZGVyc1swXSA9PSBzdGFuZGFyZEZyYWcnKTsKLXNo
b3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7CitnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5nZXRBdHRhY2hlZFNoYWRl
cnMobnVsbCknKTsKLXNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLklOVkFMSURfVkFMVUUn
KTsKLXNob3VsZEJlVW5kZWZpbmVkKCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0
KScpOwotc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuSU5WQUxJRF9WQUxVRScpOworZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKK3Nob3VsZFRocm93KCdnbC5nZXRB
dHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KScpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CiAKIC8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyCiB2YXIgYnVmZmVyID0gZ2wu
Y3JlYXRlQnVmZmVyKCk7CkBAIC0yMTQsOSArMjE0LDEzIEBAIGdsLnZlcnRleEF0dHJpYlBvaW50
ZXIoMSwgNCwgZ2wuRkxPQVQsIGYKIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyknLCAnYnVmZmVyJyk7CiBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCkn
LCAndHJ1ZScpOwogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NJWkUpJywgJzQnKTsKLXNob3VsZEJlKCcoZ2wuZ2V0VmVydGV4QXR0cmliKDEs
IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKSA9PSAwKSB8fCAoZ2wuZ2V0VmVydGV4QXR0
cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKSA9PSA0ICogc2l6ZUluQnl0ZXMo
Z2wuRkxPQVQpKScsICd0cnVlJyk7CisvLyBTdHJpZGUgTVVTVCBiZSB0aGUgdmFsdWUgdGhlIHVz
ZXIgcHV0IGluLgorc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NUUklERSknLCAnMCcpOwogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1RZUEUpJywgJ2dsLkZMT0FUJyk7CiBzaG91bGRCZSgn
Z2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCkn
LCAnZmFsc2UnKTsKK2dsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNl
LCAzNiwgMTIpOworc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX1NUUklERSknLCAnMzYnKTsKK3Nob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWJP
ZmZzZXQoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSKScsICcxMicpOwogZ2wuZGlz
YWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwogc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpJywgJ2ZhbHNlJyk7CiBnbC52ZXJ0ZXhB
dHRyaWI0ZigxLCA1LCA2LCA3LCA4KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9u
dWxsLW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNCwx
MCArMTQsMTAgQEAgUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcih1bmRlZmluZWQsIHNoYQogUEFT
UyBjb250ZXh0LnNoYWRlclNvdXJjZSgpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxV
RS4KIFBBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVkLCAnZm9vJykgd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlv
bih1bmRlZmluZWQsIDAsICdmb28nKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUu
Ci1QQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkgd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KLVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29u
dGV4dC5GUkFNRUJVRkZFUiwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KLVBBU1Mg
Y29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgotUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQu
VEVYVFVSRV8yRCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgY29udGV4
dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCAwKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFRl
eHR1cmUoY29udGV4dC5URVhUVVJFXzJELCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgogUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIs
IG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGNvbnRleHQuYmluZEZy
YW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IuCiBQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJV
RkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KQEAgLTI2LDE0ICsyNiwx
NCBAQCBQQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVCiBQQVNTIGNvbnRl
eHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIHVuZGVmaW5lZCkgd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNv
bnRleHQuUkVOREVSQlVGRkVSLCB1bmRlZmluZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IuCiBQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCB1bmRlZmlu
ZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCi1QQVNTIGNvbnRleHQuZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hN
RU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X09QRVJBVElPTi4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZS
QU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQs
IDAsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGNvbnRl
eHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5E
RVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1
cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250
ZXh0LlRFWFRVUkVfMkQsIG51bGwsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVS
QVRJT04uCiBQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmRlZmluZWQsIDApIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5nZXRQcm9ncmFt
SW5mb0xvZyh1bmRlZmluZWQsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4K
IFBBU1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIodW5kZWZpbmVkLCAwKSB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyh1
bmRlZmluZWQsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29u
dGV4dC5nZXRTaGFkZXJTb3VyY2UodW5kZWZpbmVkKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfVkFMVUUuCi1QQVNTIGNvbnRleHQuZ2V0VW5pZm9ybSh1bmRlZmluZWQsIDApIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtKHVuZGVm
aW5lZCwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250
ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbih1bmRlZmluZWQsICdmb28nKSB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfVkFMVUUuCiAKIGNoZWNrIHdpdGggYmluZGluZ3MKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91
ci5odG1sCShyZXZpc2lvbiA2NTQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L251bGwtb2JqZWN0LWJlaGF2aW91ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAs
MTAgQEAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSQogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuc2hh
ZGVyU291cmNlKCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklO
VkFMSURfVkFMVUUsICJjb250ZXh0LnNoYWRlclNvdXJjZSh1bmRlZmluZWQsICdmb28nKSIpOwog
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNv
bnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKHVuZGVmaW5lZCwgMCwgJ2ZvbycpIik7Ci1zaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZEJ1
ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihj
b250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgMCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250
ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVG
RkVSLCAwKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJS
T1IsICJjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgMCkiKTsKK3Nob3Vs
ZFRocm93KCJjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIDApIik7Citz
aG91bGRUaHJvdygiY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwg
MCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5E
RVJCVUZGRVIsIDApIik7CitzaG91bGRUaHJvdygiY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0
LlRFWFRVUkVfMkQsIDApIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4
dC5OT19FUlJPUiwgImNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgbnVs
bCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAi
Y29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgbnVsbCkiKTsKIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5i
aW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBudWxsKSIpOwpAQCAtNDIsMTQg
KzQyLDE0IEBAIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk4KIHNob3Vs
ZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5k
RnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgdW5kZWZpbmVkKSIpOwogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRSZW5k
ZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIHVuZGVmaW5lZCkiKTsKIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kVGV4dHVy
ZShjb250ZXh0LlRFWFRVUkVfMkQsIHVuZGVmaW5lZCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJv
cihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5mcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1F
TlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSIpOwotc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNv
bnRleHQsIGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmZyYW1lYnVmZmVyVGV4
dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0
LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRl
eHQuUkVOREVSQlVGRkVSLCBudWxsKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQs
IGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJE
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQu
VEVYVFVSRV8yRCwgbnVsbCwgMCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBj
b250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIodW5kZWZp
bmVkLCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJ
RF9WQUxVRSwgImNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2codW5kZWZpbmVkLCAwKSIpOwogc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRl
eHQuZ2V0U2hhZGVyUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCkiKTsKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmdldFNoYWRlcklu
Zm9Mb2codW5kZWZpbmVkLCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNv
bnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuZ2V0U2hhZGVyU291cmNlKHVuZGVmaW5lZCki
KTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUs
ICJjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVkLCAwKSIpOworc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9WQUxVRSwgImNvbnRleHQuZ2V0VW5pZm9ybSh1
bmRlZmluZWQsIG51bGwpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4
dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24odW5kZWZpbmVkLCAn
Zm9vJykiKTsKIAogZGVidWcoIiIpOwpAQCAtNjQsOCArNjQsOCBAQCBzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoY29udGV4dCwgY29udGV4dC5OCiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJjaGVjayB3aXRo
b3V0IGJpbmRpbmdzIik7Ci1jb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIs
IDApOwotY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIDApOworY29udGV4
dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBudWxsKTsKK2NvbnRleHQuYmluZFRl
eHR1cmUoY29udGV4dC5URVhUVVJFXzJELCBudWxsKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihj
b250ZXh0LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5idWZmZXJEYXRhKGNv
bnRleHQuQVJSQVlfQlVGRkVSLCAxLCBjb250ZXh0LlNUQVRJQ19EUkFXKSIpOwogc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04sICJjb250ZXh0
LmdldEJ1ZmZlclBhcmFtZXRlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgY29udGV4dC5CVUZGRVJf
U0laRSkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURf
T1BFUkFUSU9OLCAiY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY29u
dGV4dC5SR0JBLCAxLCAxLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwg
bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDBdKSkiKTsK
</data>
<flag name="commit-queue"
          id="53447"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64871</attachid>
            <date>2010-08-19 10:41:53 -0700</date>
            <delta_ts>2014-02-24 11:09:30 -0800</delta_ts>
            <desc>revised patch: fixing the error in the comment</desc>
            <filename>js.patch</filename>
            <type>text/plain</type>
            <size>77884</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTYyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDgtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgc3RyaWN0IHR5cGUgY2hlY2tpbmcgaW4ganMgYmluZGluZ3MgZm9yIFdlYkdMIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMDIK
KworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwOiBBZGQgdHlwZSBjaGVjayBmb3Igd3JhcHBlciB0eXBlcyBhbmQgRE9NU3RyaW5nIGFuZCB0
aHJvdyBlcnJvciBpbiBjYXNlIG9mIG1pc21hdGNoLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAoV2ViQ29yZTo6ZGF0
YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBEaXR0by4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0
YWNoZWRTaGFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1ldGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0ZXhBdHRyaWJBbmRVbmlmb3JtSGVscGVyZik6
CisgICAgICAgIChXZWJDb3JlOjp1bmlmb3JtSGVscGVyaSk6CisgICAgICAgIChXZWJDb3JlOjp1
bmlmb3JtTWF0cml4SGVscGVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaWRsOiBBZGQgYXR0cmlidXRlIFN0cmljdFR5cGVDaGVja2luZyBmb3IgV2ViR0wg
ZnVuY3Rpb25zLgorCiAyMDEwLTA4LTE4ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bu
b2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw4IEBA
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGEKICAgICAgICAgcmV0dXJu
IHRocm93U3ludGF4RXJyb3IoZXhlYyk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJp
bmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1l
bnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQorICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJH
TFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0yMzgsNiArMjQwLDggQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZwogCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQor
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xQcm9ncmFtKiBw
cm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVk
IHBuYW1lID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCkBAIC0yNjIsNiArMjY2LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0U2hhZAogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0Kj4oaW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQo
MCkuaW5oZXJpdHMoJkpTV2ViR0xTaGFkZXI6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRl
cihleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT5hcmd1bWVu
dCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTI4
Niw3ICsyOTIsMTEgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZgog
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBj
b250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKKyAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNV
bmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQ
cm9ncmFtOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+YXJndW1lbnQo
MCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxICYmICFleGVjLT5hcmd1bWVu
dCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgxKS5pbmhlcml0cygm
SlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2MgPSB0b1dlYkdMVW5p
Zm9ybUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMzU0LDkgKzM2NCwxMSBA
QCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1CiAgICAgV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uID0gMDsKICAgICBsb25nIGluZGV4ID0gLTE7CiAgICAgCi0g
ICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkKKyAgICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3Jt
KGYpKSB7CisgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVjLT5h
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhl
cml0cygmSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICAgICAgbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9y
bUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAg
ICAgIGluZGV4ID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKIAogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTQzOSw2ICs0NTEsOCBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAyKQogICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKIAorICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5l
ZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cygmSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRp
b24oZXhlYy0+YXJndW1lbnQoMCkpOwogICAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CkBAIC01MDIsNiArNTE2LDggQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRy
aXgoRAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJu
IHRocm93U3ludGF4RXJyb3IoZXhlYyk7CiAKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
ID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+
YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnNfaW5mbykpCisg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPmFyZ3VtZW50KDAp
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgICAgCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDY1NDcwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtMTk2Myw2ICsxOTYzLDIwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0
cjwiIC4gJHBhcmFtZXRlci0+dHlwZSAuICI+ICRuYW1lID0gJHtjYWxsYmFja0NsYXNzTmFtZX06
OmNyZWF0ZShhc09iamVjdChleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSksIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBGb3IgZnVuY3Rpb25zIHdpdGggIlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlucHV0
IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIGFuIFR5cGVFcnJvciBpcyB0aHJvd24gaW5zdGVhZCBvZiBj
YXN0aW5nIHRvIG51bGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImV4ZWMt
PmFyZ3VtZW50KCRhcmdzSW5kZXgpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXkgJGFyZ1R5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHBhcmFtZXRlci0+dHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghSXNOYXRpdmVUeXBlKCRh
cmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYg
ISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRz
KCZKUyR7YXJnVHlwZX06OnNfaW5mbykpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVk
T3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmlzU3RyaW5nKCkgJiYgISR7YXJnVmFsdWV9LmlzT2Jq
ZWN0KCkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIpIC4gIiAkbmFt
ZSA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFyZ3VtZW50KCRhcmdz
SW5kZXgpIikgLiAiO1xuIik7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIElmIGEg
cGFyYW1ldGVyIGlzICJhbiBpbmRleCIgYW5kIGl0J3MgbmVnYXRpdmUgaXQgc2hvdWxkIHRocm93
IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbi4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNpb24gNjU1ODQpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ1
LDYgKzEyNDUsMjMgQEAgRU5ECiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEJpbmRpbmdNYWNyb3MuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICMgRm9yIGZ1bmN0aW9ucyB3aXRoICJTdHJpY3RUeXBlQ2hlY2tpbmciLCBpZiBhbiBpbnB1
dCBwYXJhbWV0ZXIncyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSBzaWduYXR1cmUsCisgICAgICAg
ICAgICAjIGFuIFR5cGVFcnJvciBpcyB0aHJvd24gaW5zdGVhZCBvZiBjYXN0aW5nIHRvIG51bGwu
CisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1
ZSA9ICJhcmdzWyRwYXJhbUluZGV4XSI7CisgICAgICAgICAgICAgICAgbXkgJGFyZ1R5cGUgPSBH
ZXRUeXBlRnJvbVNpZ25hdHVyZSgkcGFyYW1ldGVyKTsKKyAgICAgICAgICAgICAgICBpZiAoSXNX
cmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYmICFpc1Vu
ZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNlKCRh
cmdWYWx1ZSkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUlu
ZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICEke2FyZ1ZhbHVlfS0+SXNT
dHJpbmcoKSAmJiAhJHthcmdWYWx1ZX0tPklzT2JqZWN0KCkpIHtcbiIpOworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5
cGVFcnJvcigpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIiAgICBFWENFUFRJT05fQkxPQ0soJG5hdGl2ZVR5cGUsICRwYXJhbWV0ZXJOYW1l
LCAiIC4KICAgICAgICAgICAgICAgICAgSlNWYWx1ZVRvTmF0aXZlKCRwYXJhbWV0ZXIsICJhcmdz
WyRwYXJhbUluZGV4XSIsIEJhc2ljVHlwZUNhbkZhaWxDb252ZXJzaW9uKCRwYXJhbWV0ZXIpID8g
ICIke3BhcmFtZXRlck5hbWV9T2siIDogdW5kZWYpIC4gIik7XG4iKTsKICAgICAgICAgfQpAQCAt
Mjk4OCw3ICszMDA1LDEwIEBAIHN1YiBSZXF1aXJlc0N1c3RvbVNpZ25hdHVyZQogICAgIGlmIChA
eyRmdW5jdGlvbi0+e292ZXJsb2Fkc319ID4gMSkgewogICAgICAgICByZXR1cm4gMDsKICAgICB9
Ci0KKyAgICAjIFR5cGUgY2hlY2tpbmcgaXMgcGVyZm9ybWVkIGluIHRoZSBnZW5lcmF0ZWQgY29k
ZQorICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0
cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAgICByZXR1cm4gMDsKKyAgICB9CiAgICAgZm9yZWFj
aCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAgaWYg
KCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPcHRpb25hbCJ9IHx8ICRwYXJhbWV0
ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9KSB7CiAgICAgICAgICAgICByZXR1
cm4gMDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDY1NDcwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDEwIEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFdlYkdMUmVuZGVyaW5nQ28KIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYg
IWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFu
Y2UoYXJnc1swXSkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQogICAgIFdlYkdMUHJv
Z3JhbSogcHJvZ3JhbSA9IFY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4
V2ViR0xQcm9ncmFtOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3Nb
MF0pKSA6IDA7CiAgICAgVmVjdG9yPFdlYkdMU2hhZGVyKj4gc2hhZGVyczsKICAgICBib29sIHN1
Y2NlZWQgPSBjb250ZXh0LT5nZXRBdHRhY2hlZFNoYWRlcnMocHJvZ3JhbSwgc2hhZGVycywgZWMp
OwpAQCAtMzE5LDYgKzMyMywxMCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRl
cmluZ0NvCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVs
bChhcmdzWzBdKSAmJiAhVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7Cisg
ICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KICAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBW
OFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBWOFdlYkdMUHJvZ3JhbTo6dG9O
YXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAwOwogICAgIGJv
b2wgb2s7CiAgICAgdW5zaWduZWQgcG5hbWUgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKQEAgLTM1
MSw2ICszNTksMTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDbwog
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBj
b250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OworICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJnc1sw
XSkgJiYgIVY4V2ViR0xTaGFkZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7CisgICAgICAgIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOworICAgIH0KICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gVjhXZWJHTFNoYWRl
cjo6SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBWOFdlYkdMU2hhZGVyOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7CiAgICAgYm9vbCBvazsKICAgICB1
bnNpZ25lZCBwbmFtZSA9IHRvSW50MzIoYXJnc1sxXSwgb2spOwpAQCAtMzgzLDggKzM5NSwxNiBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvCiAKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhXZWJH
TFByb2dyYW06Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwor
ICAgIH0KICAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBWOFdlYkdMUHJvZ3JhbTo6SGFzSW5z
dGFuY2UoYXJnc1swXSkgPyBWOFdlYkdMUHJvZ3JhbTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAwOwogCisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAx
ICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzFdKSAmJiAhVjhXZWJHTFVuaWZvcm1Mb2NhdGlv
bjo6SGFzSW5zdGFuY2UoYXJnc1sxXSkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQog
ICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24g
PSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGFyZ3NbMV0sIG9rKTsKIApAQCAtNDUyLDggKzQ3Miwx
MyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZlcnRleEF0dHJpCiAKICAgICBpZiAo
aXNGdW5jdGlvblRvQ2FsbEZvckF0dHJpYnV0ZShmdW5jdGlvblRvQ2FsbCkpCiAgICAgICAgIGlu
ZGV4ID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0gICAgZWxzZQorICAgIGVsc2UgeworICAgICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYm
ICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgeworICAgICAg
ICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICB9CiAgICAgICAgIGxvY2F0aW9uID0gdG9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbihhcmdzWzBdLCBvayk7CisgICAgfQogCiAgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOwogCkBAIC01MjYsNiArNTUxLDEwIEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdW5pZm9ybUhlbHAKICAgICB9CiAKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChh
cmdzWzBdKSAmJiAhVjhXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6SGFzSW5zdGFuY2UoYXJnc1swXSkp
IHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAg
ICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9u
KGFyZ3NbMF0sIG9rKTsKIApAQCAtNjM5LDYgKzY2OCwxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHVuaWZvcm1NYXRyCiAKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRl
eHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAK
KyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0p
ICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgeworICAg
ICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1sw
XSwgb2spOwogICAgIApJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmlkbAkocmV2aXNpb24gNjU0NzApCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ2NCwyMTMgKzQ2NCwy
MTAgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5QQUNLX0ZM
SVBfWV9XRUJHTCAgICAgICAgICAgID0gMHg5MjQwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMID0gMHg5MjQxOwogCi0gICAgICAgIHZv
aWQgICAgICAgICBhY3RpdmVUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGV4dHVyZSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBhdHRhY2hTaGFkZXIoaW4gV2Vi
R0xQcm9ncmFtIHByb2dyYW0sIGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBiaW5kQXR0cmliTG9jYXRpb24oaW4gV2ViR0xQ
cm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIERPTVN0cmluZyBuYW1l
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRCdWZmZXIo
aW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMQnVmZmVyIGJ1ZmZlcikgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBiaW5kRnJhbWVidWZmZXIoaW4gdW5z
aWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYmluZFJlbmRlcmJ1ZmZlcihp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVy
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJpbmRUZXh0dXJl
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJHTFRleHR1cmUgdGV4dHVyZSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBibGVuZENvbG9yKGluIGRvdWJs
ZSByZWQsIGluIGRvdWJsZSBncmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBibGVuZEVxdWF0aW9uKCBpbiB1bnNpZ25lZCBsb25nIG1v
ZGUgKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJsZW5kRXF1YXRpb25TZXBhcmF0ZShpbiB1bnNp
Z25lZCBsb25nIG1vZGVSR0IsIGluIHVuc2lnbmVkIGxvbmcgbW9kZUFscGhhKTsKLSAgICAgICAg
dm9pZCAgICAgICAgIGJsZW5kRnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2ln
bmVkIGxvbmcgZGZhY3Rvcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBibGVuZEZ1bmNTZXBhcmF0
ZShpbiB1bnNpZ25lZCBsb25nIHNyY1JHQiwgaW4gdW5zaWduZWQgbG9uZyBkc3RSR0IsIGluIHVu
c2lnbmVkIGxvbmcgc3JjQWxwaGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOwotICAgICAg
ICB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gQXJy
YXlCdWZmZXIgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSkgcmFpc2VzIChET01FeGNlcHRp
b24pOwotICAgICAgICB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gQXJyYXlCdWZmZXJWaWV3IGRhdGEsIGluIHVuc2lnbmVkIGxvbmcgdXNhZ2UpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJ1ZmZlckRhdGEoaW4g
dW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgc2l6ZSwgaW4gdW5zaWduZWQgbG9uZyB1c2Fn
ZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgYnVmZmVyU3Vi
RGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBvZmZzZXQsIGluIEFycmF5QnVm
ZmVyIGRhdGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGJ1
ZmZlclN1YkRhdGEoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgb2Zmc2V0LCBpbiBB
cnJheUJ1ZmZlclZpZXcgZGF0YSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotCi0gICAgICAgIHVu
c2lnbmVkIGxvbmcgY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhpbiB1bnNpZ25lZCBsb25nIHRhcmdl
dCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjbGVhcihpbiB1bnNpZ25lZCBsb25nIG1hc2spOwot
ICAgICAgICB2b2lkICAgICAgICAgY2xlYXJDb2xvcihpbiBkb3VibGUgcmVkLCBpbiBkb3VibGUg
Z3JlZW4sIGluIGRvdWJsZSBibHVlLCBpbiBkb3VibGUgYWxwaGEpOwotICAgICAgICB2b2lkICAg
ICAgICAgY2xlYXJEZXB0aChpbiBkb3VibGUgZGVwdGgpOwotICAgICAgICB2b2lkICAgICAgICAg
Y2xlYXJTdGVuY2lsKGluIGxvbmcgcyk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjb2xvck1hc2so
aW4gYm9vbGVhbiByZWQsIGluIGJvb2xlYW4gZ3JlZW4sIGluIGJvb2xlYW4gYmx1ZSwgaW4gYm9v
bGVhbiBhbHBoYSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBjb21waWxlU2hhZGVyKGluIFdlYkdM
U2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBhY3RpdmVUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGV4
dHVyZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgICAgICAgICBhdHRhY2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIFdl
YkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBiaW5kQXR0cmliTG9jYXRpb24oaW4gV2ViR0xQcm9n
cmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIERPTVN0cmluZyBuYW1lKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGJpbmRCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMQnVmZmVy
IGJ1ZmZlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgICAgICAgICBiaW5kRnJhbWVidWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQs
IGluIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgYmluZFJlbmRlcmJ1ZmZl
cihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVm
ZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIGJpbmRUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBXZWJH
TFRleHR1cmUgdGV4dHVyZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBibGVuZENvbG9yKGluIGRvdWJsZSByZWQsIGluIGRv
dWJsZSBncmVlbiwgaW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBibGVuZEVxdWF0aW9uKCBpbiB1bnNpZ25l
ZCBsb25nIG1vZGUgKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAg
IGJsZW5kRXF1YXRpb25TZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIG1vZGVSR0IsIGluIHVuc2ln
bmVkIGxvbmcgbW9kZUFscGhhKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGJsZW5kRnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2lnbmVkIGxv
bmcgZGZhY3Rvcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBi
bGVuZEZ1bmNTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIHNyY1JHQiwgaW4gdW5zaWduZWQgbG9u
ZyBkc3RSR0IsIGluIHVuc2lnbmVkIGxvbmcgc3JjQWxwaGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0
QWxwaGEpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgYnVmZmVy
RGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gQXJyYXlCdWZmZXIgZGF0YSwgaW4gdW5z
aWduZWQgbG9uZyB1c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gQXJyYXlCdWZmZXJWaWV3IGRhdGEsIGluIHVuc2lnbmVkIGxvbmcgdXNhZ2UpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGJ1ZmZlckRhdGEoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgc2l6ZSwg
aW4gdW5zaWduZWQgbG9uZyB1c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25l
ZCBsb25nIHRhcmdldCwgaW4gbG9uZyBvZmZzZXQsIGluIEFycmF5QnVmZmVyIGRhdGEpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAg
ICAgIGJ1ZmZlclN1YkRhdGEoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgb2Zmc2V0
LCBpbiBBcnJheUJ1ZmZlclZpZXcgZGF0YSkgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHVuc2lnbmVkIGxvbmcgY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhpbiB1bnNpZ25lZCBsb25nIHRhcmdldCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgICAgICAgICBjbGVhcihpbiB1bnNpZ25lZCBsb25nIG1hc2spOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY2xlYXJDb2xvcihpbiBkb3VibGUgcmVk
LCBpbiBkb3VibGUgZ3JlZW4sIGluIGRvdWJsZSBibHVlLCBpbiBkb3VibGUgYWxwaGEpOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY2xlYXJEZXB0aChpbiBkb3Vi
bGUgZGVwdGgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY2xl
YXJTdGVuY2lsKGluIGxvbmcgcyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
ICAgICAgICBjb2xvck1hc2soaW4gYm9vbGVhbiByZWQsIGluIGJvb2xlYW4gZ3JlZW4sIGluIGJv
b2xlYW4gYmx1ZSwgaW4gYm9vbGVhbiBhbHBoYSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgICAgICAgICBjb21waWxlU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIAogICAgICAgICAvL3ZvaWQgICAgICAgICBjb21w
cmVzc2VkVGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwg
aW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwg
aW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIGxvbmcgYm9yZGVyLCBpbiB1bnNpZ25lZCBsb25n
IGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgICAgIC8vdm9pZCAgICAgICAgIGNv
bXByZXNzZWRUZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxl
dmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgaW4gdW5zaWduZWQgbG9uZyB3
aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBp
biB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CiAgICAgICAgIAot
ICAgICAgICB2b2lkICAgICAgICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxv
bmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25n
IGhlaWdodCwgaW4gbG9uZyBib3JkZXIpOwotICAgICAgICB2b2lkICAgICAgICAgY29weVRleFN1
YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcg
eG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgY29weVRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9u
ZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQs
IGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25l
ZCBsb25nIGhlaWdodCwgaW4gbG9uZyBib3JkZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkICAgICAgICAgY29weVRleFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LCBpbiBs
b25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9u
ZyBoZWlnaHQpOwogCi0gICAgICAgIFdlYkdMQnVmZmVyIGNyZWF0ZUJ1ZmZlcigpOwotICAgICAg
ICBXZWJHTEZyYW1lYnVmZmVyIGNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgICAgIFdlYkdMUHJv
Z3JhbSBjcmVhdGVQcm9ncmFtKCk7Ci0gICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyIGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpOwotICAgICAgICBXZWJHTFNoYWRlciBjcmVhdGVTaGFkZXIoaW4gdW5zaWdu
ZWQgbG9uZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgV2ViR0xUZXh0dXJl
IGNyZWF0ZVRleHR1cmUoKTsKLQotICAgICAgICB2b2lkICAgICAgICAgY3VsbEZhY2UoaW4gdW5z
aWduZWQgbG9uZyBtb2RlKTsKLQotICAgICAgICB2b2lkICAgICAgICAgZGVsZXRlQnVmZmVyKGlu
IFdlYkdMQnVmZmVyIGJ1ZmZlcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBkZWxldGVGcmFtZWJ1
ZmZlcihpbiBXZWJHTEZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAg
ICAgIGRlbGV0ZVByb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pOwotICAgICAgICB2b2lk
ICAgICAgICAgZGVsZXRlUmVuZGVyYnVmZmVyKGluIFdlYkdMUmVuZGVyYnVmZmVyIHJlbmRlcmJ1
ZmZlcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBkZWxldGVTaGFkZXIoaW4gV2ViR0xTaGFkZXIg
c2hhZGVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRlbGV0ZVRleHR1cmUoaW4gV2ViR0xUZXh0
dXJlIHRleHR1cmUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTEJ1ZmZlciBj
cmVhdGVCdWZmZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gV2ViR0xGcmFtZWJ1
ZmZlciBjcmVhdGVGcmFtZWJ1ZmZlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBX
ZWJHTFByb2dyYW0gY3JlYXRlUHJvZ3JhbSgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSBXZWJHTFJlbmRlcmJ1ZmZlciBjcmVhdGVSZW5kZXJidWZmZXIoKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gV2ViR0xTaGFkZXIgY3JlYXRlU2hhZGVyKGluIHVuc2lnbmVkIGxvbmcg
dHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IFdlYkdMVGV4dHVyZSBjcmVhdGVUZXh0dXJlKCk7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gdm9pZCAgICAgICAgIGN1bGxGYWNlKGluIHVuc2lnbmVkIGxvbmcgbW9kZSk7CisKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0ZUJ1ZmZlcihpbiBX
ZWJHTEJ1ZmZlciBidWZmZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAg
ICAgICAgZGVsZXRlRnJhbWVidWZmZXIoaW4gV2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBkZWxldGVQcm9ncmFt
KGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIGRlbGV0ZVJlbmRlcmJ1ZmZlcihpbiBXZWJHTFJlbmRlcmJ1ZmZlciByZW5k
ZXJidWZmZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVs
ZXRlU2hhZGVyKGluIFdlYkdMU2hhZGVyIHNoYWRlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIHZvaWQgICAgICAgICBkZWxldGVUZXh0dXJlKGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJl
KTsKIAotICAgICAgICB2b2lkICAgICAgICAgZGVwdGhGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVu
Yyk7Ci0gICAgICAgIHZvaWQgICAgICAgICBkZXB0aE1hc2soaW4gYm9vbGVhbiBmbGFnKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlcHRoRnVuYyhpbiB1bnNp
Z25lZCBsb25nIGZ1bmMpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgZGVwdGhNYXNrKGluIGJvb2xlYW4gZmxhZyk7CiAgICAgICAgIC8vIEZJWE1FOiB0aGlzIGRp
ZmZlcnMgZnJvbSB0aGUgY3VycmVudCBXZWJHTCBzcGVjIChkZXB0aFJhbmdlZikKLSAgICAgICAg
dm9pZCAgICAgICAgIGRlcHRoUmFuZ2UoaW4gZG91YmxlIHpOZWFyLCBpbiBkb3VibGUgekZhcik7
Ci0gICAgICAgIHZvaWQgICAgICAgICBkZXRhY2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dy
YW0sIGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IHZvaWQgICAgICAgICBkaXNhYmxlKGluIHVuc2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgdm9p
ZCAgICAgICAgIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRyYXdBcnJheXMo
aW4gdW5zaWduZWQgbG9uZyBtb2RlLCBpbiBsb25nIGZpcnN0LCBpbiBsb25nIGNvdW50KSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGRyYXdFbGVtZW50cyhpbiB1
bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgY291bnQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwg
aW4gbG9uZyBvZmZzZXQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgICAg
ICAgICBlbmFibGUoaW4gdW5zaWduZWQgbG9uZyBjYXApOwotICAgICAgICB2b2lkICAgICAgICAg
ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBmaW5pc2goKTsKLSAgICAgICAgdm9p
ZCAgICAgICAgIGZsdXNoKCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBmcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBhdHRhY2ht
ZW50LCBpbiB1bnNpZ25lZCBsb25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgaW4gV2ViR0xSZW5kZXJi
dWZmZXIgcmVuZGVyYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAg
ICAgICAgIGZyYW1lYnVmZmVyVGV4dHVyZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1
bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBpbiBX
ZWJHTFRleHR1cmUgdGV4dHVyZSwgaW4gbG9uZyBsZXZlbCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIHZvaWQgICAgICAgICBmcm9udEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2RlKTsK
LSAgICAgICAgdm9pZCAgICAgICAgIGdlbmVyYXRlTWlwbWFwKGluIHVuc2lnbmVkIGxvbmcgdGFy
Z2V0KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlcHRoUmFu
Z2UoaW4gZG91YmxlIHpOZWFyLCBpbiBkb3VibGUgekZhcik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBkZXRhY2hTaGFkZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dy
YW0sIGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBkaXNhYmxlKGluIHVuc2lnbmVkIGxv
bmcgY2FwKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRpc2Fi
bGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRyYXdB
cnJheXMoaW4gdW5zaWduZWQgbG9uZyBtb2RlLCBpbiBsb25nIGZpcnN0LCBpbiBsb25nIGNvdW50
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9p
ZCAgICAgICAgIGRyYXdFbGVtZW50cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgY291
bnQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gbG9uZyBvZmZzZXQpIHJhaXNlcyhET01FeGNl
cHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBlbmFi
bGUoaW4gdW5zaWduZWQgbG9uZyBjYXApOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2
b2lkICAgICAgICAgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaW4gdW5zaWduZWQgbG9uZyBpbmRl
eCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgICAgICAgICBmaW5pc2goKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGZsdXNoKCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAg
ICBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5z
aWduZWQgbG9uZyBhdHRhY2htZW50LCBpbiB1bnNpZ25lZCBsb25nIHJlbmRlcmJ1ZmZlcnRhcmdl
dCwgaW4gV2ViR0xSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGZyYW1lYnVmZmVy
VGV4dHVyZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFj
aG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBpbiBXZWJHTFRleHR1cmUgdGV4dHVy
ZSwgaW4gbG9uZyBsZXZlbCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBmcm9udEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2Rl
KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGdlbmVyYXRlTWlw
bWFwKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKICAgICAgICAgCi0gICAgICAgIFdlYkdMQWN0
aXZlSW5mbyBnZXRBY3RpdmVBdHRyaWIoaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIHVuc2ln
bmVkIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFdlYkdMQWN0aXZlSW5mbyBnZXRBY3RpdmVVbmlmb3JtKGluIFdlYkdMUHJvZ3JhbSBwcm9n
cmFtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQotICAgICAgICAgICAgcmFpc2VzIChET01FeGNl
cHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBXZWJHTEFjdGl2ZUluZm8gZ2V0
QWN0aXZlQXR0cmliKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIGlu
ZGV4KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IFdlYkdMQWN0aXZlSW5mbyBnZXRBY3RpdmVVbmlmb3JtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFt
LCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAg
ICAgW0N1c3RvbV0gdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoaW4gV2ViR0xQcm9ncmFtIHByb2dy
YW0pCi0gICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoaW4gV2ViR0xQcm9n
cmFtIHByb2dyYW0pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBpbnQgICAgICAg
ICAgZ2V0QXR0cmliTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmlu
ZyBuYW1lKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gaW50ICAgICAgICAgIGdldEF0
dHJpYkxvY2F0aW9uKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiBET01TdHJpbmcgbmFtZSk7
CiAKICAgICAgICAgLy8gYW55IGdldEJ1ZmZlclBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFtDdXN0b21dIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVyKCk7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXIoKTsKIAotICAgICAg
ICBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgZ2V0Q29udGV4dEF0
dHJpYnV0ZXMoKTsKIAotICAgICAgICB1bnNpZ25lZCBsb25nIGdldEVycm9yKCk7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKTsKIAogICAgICAg
ICAvLyBhbnkgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcg
cG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nLCBDdXN0b21dIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKCk7CiAg
ICAgICAgIC8vIGFueSBnZXRQYXJhbWV0ZXIoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0UGFyYW1ldGVyKCk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRQYXJhbWV0ZXIoKTsK
ICAgICAgICAgLy8gYW55IGdldFByb2dyYW1QYXJhbWV0ZXIoaW4gV2ViR0xQcm9ncmFtIHByb2dy
YW0sIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICBbQ3VzdG9tXSB2b2lkIGdldFByb2dyYW1QYXJhbWV0ZXIoKTsKLSAgICAgICAgRE9NU3RyaW5n
IGdldFByb2dyYW1JbmZvTG9nKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFBy
b2dyYW1QYXJhbWV0ZXIoKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5n
IGdldFByb2dyYW1JbmZvTG9nKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgLy8gYW55IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKCk7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCBnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoKTsKICAgICAgICAgLy8gYW55IGdldFNoYWRlclBhcmFtZXRlcihpbiBXZWJH
TFNoYWRlciBzaGFkZXIsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNlcHRp
b24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdldFNoYWRlclBhcmFtZXRlcigpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQg
Z2V0U2hhZGVyUGFyYW1ldGVyKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgRE9N
U3RyaW5nICAgIGdldFNoYWRlckluZm9Mb2coaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nICAg
IGdldFNoYWRlckluZm9Mb2coaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAogICAgICAgICAvLyBUQkQKICAgICAgICAgLy8gdm9pZCBnbEdldFNoYWRlclByZWNp
c2lvbkZvcm1hdCAoR0xlbnVtIHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250eXBlLCBHTGlu
dCogcmFuZ2UsIEdMaW50KiBwcmVjaXNpb24pOwogCi0gICAgICAgIERPTVN0cmluZyAgICBnZXRT
aGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgRE9NU3RyaW5nICAgIGdldFN0cmluZyhpbiB1bnNpZ25lZCBsb25nIG5hbWUpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcgICAgZ2V0U2hhZGVyU291cmNl
KGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIERPTVN0cmluZyAgICBnZXRTdHJpbmcoaW4gdW5zaWduZWQgbG9u
ZyBuYW1lKTsKIAogICAgICAgICAvLyBhbnkgZ2V0VGV4UGFyYW1ldGVyKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRUZXhQYXJhbWV0ZXIoKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIGdldFRleFBhcmFtZXRlcigpOwogCiAgICAgICAg
IC8vIGFueSBnZXRVbmlmb3JtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBpbiBXZWJHTFVuaWZv
cm1Mb2NhdGlvbiBsb2NhdGlvbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0
b21dIHZvaWQgZ2V0VW5pZm9ybSgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0
b21dIHZvaWQgZ2V0VW5pZm9ybSgpOwogCi0gICAgICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGdl
dFVuaWZvcm1Mb2NhdGlvbihpbiBXZWJHTFByb2dyYW0gcHJvZ3JhbSwgaW4gRE9NU3RyaW5nIG5h
bWUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiBnZXRVbmlmb3JtTG9jYXRpb24oaW4gV2ViR0xQcm9ncmFtIHBy
b2dyYW0sIGluIERPTVN0cmluZyBuYW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAg
ICAvLyBhbnkgZ2V0VmVydGV4QXR0cmliKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIHVuc2ln
bmVkIGxvbmcgcG5hbWUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2
b2lkIGdldFZlcnRleEF0dHJpYigpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0
b21dIHZvaWQgZ2V0VmVydGV4QXR0cmliKCk7CiAKLSAgICAgICAgbG9uZyBnZXRWZXJ0ZXhBdHRy
aWJPZmZzZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGxvbmcgZ2V0VmVydGV4QXR0cmliT2Zmc2V0
KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpOwogCi0gICAg
ICAgIHZvaWQgICAgICAgICBoaW50KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25l
ZCBsb25nIG1vZGUpOwotICAgICAgICBib29sZWFuICAgICAgaXNCdWZmZXIoaW4gV2ViR0xCdWZm
ZXIgYnVmZmVyKTsKLSAgICAgICAgYm9vbGVhbiAgICAgIGlzRW5hYmxlZChpbiB1bnNpZ25lZCBs
b25nIGNhcCk7Ci0gICAgICAgIGJvb2xlYW4gICAgICBpc0ZyYW1lYnVmZmVyKGluIFdlYkdMRnJh
bWVidWZmZXIgZnJhbWVidWZmZXIpOwotICAgICAgICBib29sZWFuICAgICAgaXNQcm9ncmFtKGlu
IFdlYkdMUHJvZ3JhbSBwcm9ncmFtKTsKLSAgICAgICAgYm9vbGVhbiAgICAgIGlzUmVuZGVyYnVm
ZmVyKGluIFdlYkdMUmVuZGVyYnVmZmVyIHJlbmRlcmJ1ZmZlcik7Ci0gICAgICAgIGJvb2xlYW4g
ICAgICBpc1NoYWRlcihpbiBXZWJHTFNoYWRlciBzaGFkZXIpOwotICAgICAgICBib29sZWFuICAg
ICAgaXNUZXh0dXJlKGluIFdlYkdMVGV4dHVyZSB0ZXh0dXJlKTsKLSAgICAgICAgdm9pZCAgICAg
ICAgIGxpbmVXaWR0aChpbiBkb3VibGUgd2lkdGgpOwotICAgICAgICB2b2lkICAgICAgICAgbGlu
a1Byb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICB2b2lkICAgICAgICAgcGl4ZWxTdG9yZWkoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwg
aW4gbG9uZyBwYXJhbSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBwb2x5Z29uT2Zmc2V0KGluIGRv
dWJsZSBmYWN0b3IsIGluIGRvdWJsZSB1bml0cyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgICAgICAgICBoaW50KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25l
ZCBsb25nIG1vZGUpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAg
aXNCdWZmZXIoaW4gV2ViR0xCdWZmZXIgYnVmZmVyKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gYm9vbGVhbiAgICAgIGlzRW5hYmxlZChpbiB1bnNpZ25lZCBsb25nIGNhcCk7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xlYW4gICAgICBpc0ZyYW1lYnVmZmVyKGluIFdl
YkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSBib29sZWFuICAgICAgaXNQcm9ncmFtKGluIFdlYkdMUHJvZ3JhbSBwcm9ncmFtKTsKKyAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZ10gYm9vbGVhbiAgICAgIGlzUmVuZGVyYnVmZmVyKGluIFdl
YkdMUmVuZGVyYnVmZmVyIHJlbmRlcmJ1ZmZlcik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIGJvb2xlYW4gICAgICBpc1NoYWRlcihpbiBXZWJHTFNoYWRlciBzaGFkZXIpOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNUZXh0dXJlKGluIFdlYkdMVGV4
dHVyZSB0ZXh0dXJlKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAg
IGxpbmVXaWR0aChpbiBkb3VibGUgd2lkdGgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkICAgICAgICAgbGlua1Byb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgcGl4ZWxTdG9yZWkoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gbG9uZyBwYXJhbSk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBwb2x5Z29uT2Zmc2V0KGlu
IGRvdWJsZSBmYWN0b3IsIGluIGRvdWJsZSB1bml0cyk7CiAKLSAgICAgICAgdm9pZCAgICAgICAg
IHJlYWRQaXhlbHMoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIGxvbmcgd2lkdGgsIGluIGxvbmcg
aGVpZ2h0LCBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBp
biBBcnJheUJ1ZmZlclZpZXcgcGl4ZWxzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCAgICAgICAgIHJlYWRQaXhlbHMoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIGxvbmcgd2lk
dGgsIGluIGxvbmcgaGVpZ2h0LCBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQg
bG9uZyB0eXBlLCBpbiBBcnJheUJ1ZmZlclZpZXcgcGl4ZWxzKTsKICAgICAgICAgCi0gICAgICAg
IHZvaWQgICAgICAgICByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKTsKLSAgICAgICAgdm9pZCAgICAg
ICAgIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2ln
bmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0KTsKLSAgICAgICAgdm9pZCAgICAgICAgIHNhbXBsZUNvdmVyYWdlKGlu
IGRvdWJsZSB2YWx1ZSwgaW4gYm9vbGVhbiBpbnZlcnQpOwotICAgICAgICB2b2lkICAgICAgICAg
c2Npc3NvcihpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4g
dW5zaWduZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICB2b2lkICAgICAgICAgc2hhZGVyU291cmNl
KGluIFdlYkdMU2hhZGVyIHNoYWRlciwgaW4gRE9NU3RyaW5nIHN0cmluZykgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsRnVuYyhpbiB1bnNpZ25lZCBs
b25nIGZ1bmMsIGluIGxvbmcgcmVmLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOwotICAgICAgICB2
b2lkICAgICAgICAgc3RlbmNpbEZ1bmNTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIGZhY2UsIGlu
IHVuc2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsTWFzayhpbiB1bnNpZ25lZCBsb25nIG1hc2sp
OwotICAgICAgICB2b2lkICAgICAgICAgc3RlbmNpbE1hc2tTZXBhcmF0ZShpbiB1bnNpZ25lZCBs
b25nIGZhY2UsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBz
dGVuY2lsT3AoaW4gdW5zaWduZWQgbG9uZyBmYWlsLCBpbiB1bnNpZ25lZCBsb25nIHpmYWlsLCBp
biB1bnNpZ25lZCBsb25nIHpwYXNzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxPcFNl
cGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmYWlsLCBpbiB1
bnNpZ25lZCBsb25nIHpmYWlsLCBpbiB1bnNpZ25lZCBsb25nIHpwYXNzKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHJlbGVhc2VTaGFkZXJDb21waWxlcigpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgcmVuZGVyYnVmZmVyU3Rv
cmFnZShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZv
cm1hdCwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc2FtcGxlQ292ZXJhZ2Uo
aW4gZG91YmxlIHZhbHVlLCBpbiBib29sZWFuIGludmVydCk7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgICAgICAgICBzY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1
bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFk
ZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3RyaW5nKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxGdW5jKGluIHVu
c2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1NlcGFy
YXRlKGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBsb25n
IHJlZiwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
Z10gdm9pZCAgICAgICAgIHN0ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICBzdGVuY2lsTWFza1NlcGFyYXRl
KGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHN0ZW5jaWxPcChpbiB1bnNpZ25lZCBs
b25nIGZhaWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3Mp
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgc3RlbmNpbE9wU2Vw
YXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZhaWwsIGluIHVu
c2lnbmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOwogCi0gICAgICAgIHZv
aWQgICAgICAgICB0ZXhQYXJhbWV0ZXJmKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNp
Z25lZCBsb25nIHBuYW1lLCBpbiBmbG9hdCBwYXJhbSk7Ci0gICAgICAgIHZvaWQgICAgICAgICB0
ZXhQYXJhbWV0ZXJpKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBu
YW1lLCBpbiBsb25nIHBhcmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIHRleFBhcmFtZXRlcmYoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVk
IGxvbmcgcG5hbWUsIGluIGZsb2F0IHBhcmFtKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
Z10gdm9pZCAgICAgICAgIHRleFBhcmFtZXRlcmkoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGlu
IHVuc2lnbmVkIGxvbmcgcG5hbWUsIGluIGxvbmcgcGFyYW0pOwogCiAgICAgICAgIC8vIFN1cHBv
cnRlZCBmb3JtczoKLSAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gbG9uZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9y
bWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhlbHMpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxm
b3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcg
Zm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2Up
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQo
aW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcg
aW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2ln
bmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxDYW52YXNFbGVt
ZW50IGNhbnZhcykgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAg
dGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5z
aWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRN
TFZpZGVvRWxlbWVudCB2aWRlbykgcmFpc2VzIChET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZv
aWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25n
IGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQs
IGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gQXJyYXlCdWZmZXJWaWV3IHBpeGVscykgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1
bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBs
b25nIHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2ln
bmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEltYWdlRGF0YSBwaXhl
bHMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgIHRleFN1Yklt
YWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxvbmcgeG9m
ZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1M
SW1hZ2VFbGVtZW50IGltYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
ICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxl
dmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2lnbmVkIGxv
bmcgdHlwZSwgaW4gSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3Jt
YXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgaW4gSFRNTFZpZGVvRWxlbWVudCB2aWRlbykgcmFp
c2VzIChET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgdW5pZm9ybTFmKGluIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtMWZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9u
IGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgdW5pZm9ybTFpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBs
b25nIHgpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZv
cm0xaXYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIEludDMyQXJyYXkgdikg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTJmKGluIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtMmZ2KGluIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTJpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxv
Y2F0aW9uLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTJpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2Nh
dGlvbiwgaW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9p
ZCB1bmlmb3JtM2YoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZsb2F0IHgs
IGluIGZsb2F0IHksIGluIGZsb2F0IHopIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBb
Q3VzdG9tXSB2b2lkIHVuaWZvcm0zZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24s
IGluIEZsb2F0MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCB1
bmlmb3JtM2koaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGxvbmcgeCwgaW4g
bG9uZyB5LCBpbiBsb25nIHopIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9t
XSB2b2lkIHVuaWZvcm0zaXYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIElu
dDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgdW5pZm9ybTRm
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5
LCBpbiBmbG9hdCB6LCBpbiBmbG9hdCB3KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
W0N1c3RvbV0gdm9pZCB1bmlmb3JtNGZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9u
LCBpbiBGbG9hdDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
dW5pZm9ybTRpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25nIHgsIGlu
IGxvbmcgeSwgaW4gbG9uZyB6LCBpbiBsb25nIHcpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHVuaWZvcm00aXYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9j
YXRpb24sIGluIEludDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAg
W0N1c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4MmZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxv
Y2F0aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4M2Z2
KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwg
aW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1
c3RvbV0gdm9pZCB1bmlmb3JtTWF0cml4NGZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0
aW9uLCBpbiBib29sZWFuIHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLQotICAgICAgICB2b2lkICAgICAgICAgdXNlUHJvZ3JhbShpbiBXZWJH
TFByb2dyYW0gcHJvZ3JhbSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgICAg
ICAgICB2YWxpZGF0ZVByb2dyYW0oaW4gV2ViR0xQcm9ncmFtIHByb2dyYW0pIHJhaXNlcyhET01F
eGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIxZihpbiB1bnNp
Z25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgpOwotICAgICAgICBbQ3VzdG9tXSB2b2lkICAgICAg
ICAgdmVydGV4QXR0cmliMWZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5
IHZhbHVlcyk7Ci0gICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIyZihpbiB1bnNpZ25l
ZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHkpOwotICAgICAgICBbQ3VzdG9tXSB2
b2lkICAgICAgICAgdmVydGV4QXR0cmliMmZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxv
YXQzMkFycmF5IHZhbHVlcyk7Ci0gICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWIzZihp
biB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHop
OwotICAgICAgICBbQ3VzdG9tXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliM2Z2KGluIHVuc2ln
bmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5IHZhbHVlcyk7Ci0gICAgICAgIHZvaWQgICAg
ICAgICB2ZXJ0ZXhBdHRyaWI0ZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGlu
IGZsb2F0IHksIGluIGZsb2F0IHosIGluIGZsb2F0IHcpOwotICAgICAgICBbQ3VzdG9tXSB2b2lk
ICAgICAgICAgdmVydGV4QXR0cmliNGZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQz
MkFycmF5IHZhbHVlcyk7Ci0gICAgICAgIHZvaWQgICAgICAgICB2ZXJ0ZXhBdHRyaWJQb2ludGVy
KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHR5
cGUsIGluIGJvb2xlYW4gbm9ybWFsaXplZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIGxvbmcgc3RyaWRlLCBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAg
ICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBp
biB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhl
aWdodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGxvbmcgYm9yZGVyLCBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQg
bG9uZyB0eXBlLCBpbiBBcnJheUJ1ZmZlclZpZXcgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhJbWFnZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25n
IGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0
eXBlLCBpbiBJbWFnZURhdGEgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9y
bWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1M
SW1hZ2VFbGVtZW50IGltYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1
bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBIVE1MQ2FudmFz
RWxlbWVudCBjYW52YXMpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2ln
bmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxWaWRlb0VsZW1l
bnQgdmlkZW8pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdl
dCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBs
b25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEFycmF5QnVmZmVyVmlldyBwaXhlbHMpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHRl
eFN1YkltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIGxv
bmcgeG9mZnNldCwgaW4gbG9uZyB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4g
dW5zaWduZWQgbG9uZyB0eXBlLCBpbiBJbWFnZURhdGEgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB0ZXhTdWJJ
bWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhv
ZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBmb3JtYXQsIGluIHVuc2ln
bmVkIGxvbmcgdHlwZSwgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSkgcmFpc2VzIChET01FeGNl
cHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4U3Vi
SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4
b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNp
Z25lZCBsb25nIHR5cGUsIGluIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcykgcmFpc2VzIChET01F
eGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdGV4
U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9u
ZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8pIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0x
ZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gZmxvYXQgeCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9pZCB1
bmlmb3JtMWZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBGbG9hdDMyQXJy
YXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgdW5pZm9ybTFpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBsb25n
IHgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBD
dXN0b21dIHZvaWQgdW5pZm9ybTFpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwg
aW4gSW50MzJBcnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCB1bmlmb3JtMmYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRp
b24sIGluIGZsb2F0IHgsIGluIGZsb2F0IHkpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9ybTJmdihpbiBXZWJHTFVu
aWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gRmxvYXQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0yaShpbiBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZv
aWQgdW5pZm9ybTJpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJB
cnJheSB2KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
Z10gdm9pZCB1bmlmb3JtM2YoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGZs
b2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHopIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5pZm9ybTNmdihpbiBXZWJH
TFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gRmxvYXQzMkFycmF5IHYpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm0zaShp
biBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGlu
IGxvbmcgeikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIEN1c3RvbV0gdm9pZCB1bmlmb3JtM2l2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0
aW9uLCBpbiBJbnQzMkFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB2b2lkIHVuaWZvcm00ZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBs
b2NhdGlvbiwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeiwgaW4gZmxvYXQgdykg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3Rv
bV0gdm9pZCB1bmlmb3JtNGZ2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBG
bG9hdDMyQXJyYXkgdikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHZvaWQgdW5pZm9ybTRpKGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9u
LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB6LCBpbiBsb25nIHcpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQgdW5p
Zm9ybTRpdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gSW50MzJBcnJheSB2
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBD
dXN0b21dIHZvaWQgdW5pZm9ybU1hdHJpeDJmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2Nh
dGlvbiwgaW4gYm9vbGVhbiB0cmFuc3Bvc2UsIGluIEZsb2F0MzJBcnJheSBhcnJheSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9p
ZCB1bmlmb3JtTWF0cml4M2Z2KGluIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBpbiBi
b29sZWFuIHRyYW5zcG9zZSwgaW4gRmxvYXQzMkFycmF5IGFycmF5KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkIHVuaWZvcm1N
YXRyaXg0ZnYoaW4gV2ViR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIGluIGJvb2xlYW4gdHJh
bnNwb3NlLCBpbiBGbG9hdDMyQXJyYXkgYXJyYXkpIHJhaXNlcyhET01FeGNlcHRpb24pOworCisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB1c2VQcm9ncmFtKGluIFdl
YkdMUHJvZ3JhbSBwcm9ncmFtKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHZhbGlkYXRlUHJvZ3JhbShpbiBXZWJHTFByb2dy
YW0gcHJvZ3JhbSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjFmKGluIHVuc2lnbmVkIGxvbmcgaW5k
eCwgaW4gZmxvYXQgeCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIEN1c3RvbV0gdm9p
ZCAgICAgICAgIHZlcnRleEF0dHJpYjFmdihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIEZsb2F0
MzJBcnJheSB2YWx1ZXMpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgdmVydGV4QXR0cmliMmYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBmbG9hdCB4LCBpbiBm
bG9hdCB5KTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgQ3VzdG9tXSB2b2lkICAgICAg
ICAgdmVydGV4QXR0cmliMmZ2KGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gRmxvYXQzMkFycmF5
IHZhbHVlcyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB2ZXJ0
ZXhBdHRyaWIzZihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIGZsb2F0IHgsIGluIGZsb2F0IHks
IGluIGZsb2F0IHopOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDdXN0b21dIHZvaWQg
ICAgICAgICB2ZXJ0ZXhBdHRyaWIzZnYoaW4gdW5zaWduZWQgbG9uZyBpbmR4LCBpbiBGbG9hdDMy
QXJyYXkgdmFsdWVzKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAg
IHZlcnRleEF0dHJpYjRmKGluIHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gZmxvYXQgeCwgaW4gZmxv
YXQgeSwgaW4gZmxvYXQgeiwgaW4gZmxvYXQgdyk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIEN1c3RvbV0gdm9pZCAgICAgICAgIHZlcnRleEF0dHJpYjRmdihpbiB1bnNpZ25lZCBsb25n
IGluZHgsIGluIEZsb2F0MzJBcnJheSB2YWx1ZXMpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkICAgICAgICAgdmVydGV4QXR0cmliUG9pbnRlcihpbiB1bnNpZ25lZCBsb25nIGlu
ZHgsIGluIGxvbmcgc2l6ZSwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBib29sZWFuIG5vcm1h
bGl6ZWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBsb25nIHN0cmlkZSwgaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgICAgICAgICB2aWV3cG9ydChpbiBs
b25nIHgsIGluIGxvbmcgeSwgaW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9u
ZyBoZWlnaHQpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgdmll
d3BvcnQoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVu
c2lnbmVkIGxvbmcgaGVpZ2h0KTsKICAgICB9OwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTYy
OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5
IEBACisyMDEwLTA4LTE4ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN0cmljdCB0
eXBlIGNoZWNraW5nIGluIGpzIGJpbmRpbmdzIGZvciBXZWJHTCBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjAyCisKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZXJyb3ItcmVwb3J0aW5nLWV4cGVj
dGVkLnR4dDogRml4IGJ1Z3MgZHVlIHRvIHN0cmljdCB0eXBlIGNoZWNraW5nIGluIHRoZSBqcyBi
aW5kaW5ncy4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmcuaHRt
bDogZGl0dG8uCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdldC1jYWxs
cy1leHBlY3RlZC50eHQ6IGRpdHRvLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dsLW9i
amVjdC1nZXQtY2FsbHMuaHRtbDogZGl0dG8uCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
bnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dDogZGl0dG8uCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLmh0bWw6IGRpdHRvLgorCiAyMDEw
LTA4LTE4ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Jh
ZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVz
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE5IEBACitUZXN0cyBjYWxs
aW5nIFdlYkdMIEFQSXMgd2l0aCB3cm9uZyBhcmd1bWVudCB0eXBlcworCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKK1BBU1MgUHJvZ3JhbSBDb21waWxlZAorUEFTUyBTaGFkZXIgQ29tcGls
ZWQKK1BBU1MgZ2V0VW5pZm9ybUxvY2F0aW9uIHN1Y2NlZWRlZAorUEFTUyBjb250ZXh0LmNvbXBp
bGVTaGFkZXIoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmF0dGFj
aFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5kZXRhY2hT
aGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQudXNlUHJvZ3Jh
bShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
Y29udGV4dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbihhcmd1
bWVudCwgMCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZEZy
YW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29u
dGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwg
YXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNv
bnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4
dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZnJhbWVidWZm
ZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5U
MCwgY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC51bmlmb3JtMmZ2KGFyZ3VtZW50LCBuZXcg
RmxvYXQzMkFycmF5KFswLjAsIDAuMF0pKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yaXYoYXJndW1lbnQsIG5ldyBJbnQzMkFycmF5
KFswLCAwXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNv
bnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFsc2UsIG5ldyBGbG9hdDMyQXJyYXko
WzAuMCwgMC4wLCAwLjAsIDAuMF0pKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVy
UGFyYW1ldGVyKGFyZ3VtZW50LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0oYXJndW1lbnQsIGxvYykgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtKHByb2dy
YW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBjb250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1h
dHJpeCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRl
eHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRTaGFk
ZXJTb3VyY2UoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIGNvbnRleHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5saW5rUHJvZ3JhbShhcmd1bWVudCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5hdHRh
Y2hTaGFkZXIoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihh
cmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJn
dW1lbnQsIHNoYWRlcikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgY29udGV4dC51c2VQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2Zvbycp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmlu
ZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlf
QlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1l
bnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQu
YmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuYmluZFRleHR1cmUo
Y29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVG
RkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250
ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LnVuaWZv
cm0yZnYoYXJndW1lbnQsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1
bWVudCwgbmV3IEludDMyQXJyYXkoWzAsIDBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxz
ZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihhcmd1bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVu
dCwgbG9jKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250
ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50
LCAndV9tb2RlbFZpZXdQcm9qTWF0cml4JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRTaGFkZXJJ
bmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50
KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQpIGlzIHVuZGVmaW5l
ZC4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVm
aW5lZC4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgaXMgdW5k
ZWZpbmVkLgorUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudXNlUHJvZ3JhbShhcmd1bWVudCkgaXMgdW5kZWZp
bmVkLgorUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIGlzIHVuZGVm
aW5lZC4KK1BBU1MgY29udGV4dC5iaW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28n
KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JV
RkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZm
ZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29u
dGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwg
YXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRl
eHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZy
YW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRU
QUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1lbnQsIDApIGlzIHVuZGVmaW5lZC4K
K1BBU1MgY29udGV4dC51bmlmb3JtMmZ2KGFyZ3VtZW50LCBuZXcgRmxvYXQzMkFycmF5KFswLjAs
IDAuMF0pKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwg
bmV3IEludDMyQXJyYXkoWzAsIDBdKSkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnVuaWZv
cm1NYXRyaXgyZnYoYXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwg
MC4wLCAwLjBdKSkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0
ZXIoYXJndW1lbnQsIDApIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIo
YXJndW1lbnQsIDApIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBs
b2MpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGFyZ3VtZW50KSBp
cyBudWxsCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2Rl
bFZpZXdQcm9qTWF0cml4JykgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9n
KGFyZ3VtZW50KSBpcyAnJworUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQp
IGlzICcnCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSBpcyAnJworUEFT
UyBjb250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29u
dGV4dC5saW5rUHJvZ3JhbShhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0
dGFjaFNoYWRlcihhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFjaFNo
YWRlcihwcm9ncmFtLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmF0dGFj
aFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZGV0
YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQu
ZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4
dC51c2VQcm9ncmFtKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuc2hhZGVy
U291cmNlKGFyZ3VtZW50LCAnZm9vJykgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRB
dHRyaWJMb2NhdGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29u
dGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBhcmd1bWVudCkgaXMgdW5kZWZp
bmVkLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBh
cmd1bWVudCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29u
dGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQu
YmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIs
IGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50
KSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4
dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJF
XzJELCBhcmd1bWVudCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYo
YXJndW1lbnQsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIGlzIHVuZGVmaW5lZC4KK1BB
U1MgY29udGV4dC51bmlmb3JtMml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihhcmd1bWVudCwgZmFs
c2UsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wLCAwLjAsIDAuMF0pKSBpcyB1bmRlZmluZWQu
CitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAor
UEFTUyBjb250ZXh0LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkgaXMgbnVsbAorUEFT
UyBjb250ZXh0LmdldFVuaWZvcm0oYXJndW1lbnQsIGxvYykgaXMgbnVsbAorUEFTUyBjb250ZXh0
LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJndW1lbnQpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRV
bmlmb3JtTG9jYXRpb24oYXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSBpcyBudWxs
CitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIGlzICcnCitQQVNTIGNv
bnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCkgaXMgJycKK1BBU1MgY29udGV4dC5nZXRT
aGFkZXJTb3VyY2UoYXJndW1lbnQpIGlzICcnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYmFkLWFyZ3VtZW50cy10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw5MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKworPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2Rlc2NyaXB0aW9u
KCJUZXN0cyBjYWxsaW5nIFdlYkdMIEFQSXMgd2l0aCB3cm9uZyBhcmd1bWVudCB0eXBlcyIpOwor
Cit2YXIgY29udGV4dCA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsKK3ZhciBwcm9ncmFtID0gd3R1
LmxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dCk7Cit2YXIgc2hhZGVyID0gd3R1LmxvYWRTdGFu
ZGFyZFZlcnRleFNoYWRlcihjb250ZXh0KTsKK3ZhciBzaG91bGRHZW5lcmF0ZUdMRXJyb3IgPSB3
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yOworCithc3NlcnRNc2cocHJvZ3JhbSAhPSBudWxsLCAi
UHJvZ3JhbSBDb21waWxlZCIpOworYXNzZXJ0TXNnKHNoYWRlciAhPSBudWxsLCAiU2hhZGVyIENv
bXBpbGVkIik7CisKK3ZhciBsb2MgPSBjb250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
LCAidV9tb2RlbFZpZXdQcm9qTWF0cml4Iik7Cithc3NlcnRNc2cobG9jICE9IG51bGwsICJnZXRV
bmlmb3JtTG9jYXRpb24gc3VjY2VlZGVkIik7CisKK3ZhciBhcmd1bWVudHMgPSBbCisgIHsgdmFs
dWU6ICJmb28iLAorICAgIHRocm93OiB0cnVlIH0sCisgIHsgdmFsdWU6IDAsCisgICAgdGhyb3c6
IHRydWUgfSwKKyAgeyB2YWx1ZTogbnVsbCwKKyAgICB0aHJvdzogZmFsc2UgfSwKKyAgeyB2YWx1
ZTogdW5kZWZpbmVkLAorICAgIHRocm93OiBmYWxzZSB9CitdOworCit2YXIgYXJndW1lbnQ7CisK
K2Z1bmN0aW9uIHNob3VsZEJlRW1wdHlTdHJpbmcoY29tbWFuZCkgeworICBzaG91bGRCZShjb21t
YW5kLCAiJyciKTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyAr
K2kpIHsKKyAgdmFyIGZ1bmMsIGZ1bmMyLCBmdW5jMzsKKyAgaWYgKGFyZ3VtZW50c1tpXS50aHJv
dykgeworICAgIGZ1bmMgPSBzaG91bGRUaHJvdzsKKyAgICBmdW5jMiA9IHNob3VsZFRocm93Owor
ICAgIGZ1bmMzID0gc2hvdWxkVGhyb3c7CisgIH0gZWxzZSB7CisgICAgZnVuYyA9IHNob3VsZEJl
VW5kZWZpbmVkOworICAgIGZ1bmMyID0gc2hvdWxkQmVOdWxsOworICAgIGZ1bmMzID0gc2hvdWxk
QmVFbXB0eVN0cmluZzsKKyAgfQorICBhcmd1bWVudCA9IGFyZ3VtZW50c1tpXS52YWx1ZTsKKyAg
ZnVuYygiY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0
LmxpbmtQcm9ncmFtKGFyZ3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0LmF0dGFjaFNoYWRlcihh
cmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1l
bnQpIik7CisgIGZ1bmMoImNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIik7
CisgIGZ1bmMoImNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSIpOworICBm
dW5jKCJjb250ZXh0LmRldGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSIpOworICBmdW5jKCJj
b250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIik7CisgIGZ1bmMoImNvbnRleHQuc2hhZGVyU291
cmNlKGFyZ3VtZW50LCAnZm9vJykiKTsKKyAgZnVuYygiY29udGV4dC5iaW5kQXR0cmliTG9jYXRp
b24oYXJndW1lbnQsIDAsICdmb28nKSIpOworICBmdW5jKCJjb250ZXh0LmJpbmRCdWZmZXIoY29u
dGV4dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0LmJpbmRGcmFt
ZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkiKTsKKyAgZnVuYygiY29udGV4
dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkiKTsKKyAg
ZnVuYygiY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSIp
OworICBmdW5jKCJjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFy
Z3VtZW50KSIpOworICBmdW5jKCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQu
RlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8y
RCwgYXJndW1lbnQsIDApIik7CisgIGZ1bmMoImNvbnRleHQudW5pZm9ybTJmdihhcmd1bWVudCwg
bmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjBdKSkiKTsKKyAgZnVuYygiY29udGV4dC51bmlmb3Jt
Mml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSIpOworICBmdW5jKCJjb250ZXh0
LnVuaWZvcm1NYXRyaXgyZnYoYXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAs
IDAuMCwgMC4wLCAwLjBdKSkiKTsKKworICBmdW5jMigiY29udGV4dC5nZXRQcm9ncmFtUGFyYW1l
dGVyKGFyZ3VtZW50LCAwKSIpOworICBmdW5jMigiY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIo
YXJndW1lbnQsIDApIik7CisgIGZ1bmMyKCJjb250ZXh0LmdldFVuaWZvcm0oYXJndW1lbnQsIGxv
YykiKTsKKyAgZnVuYzIoImNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1bWVudCkiKTsK
KyAgZnVuYzIoImNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZp
ZXdQcm9qTWF0cml4JykiKTsKKworICBmdW5jMygiY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhh
cmd1bWVudCkiKTsKKyAgZnVuYzMoImNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCki
KTsKKyAgZnVuYzMoImNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSIpOworfQorCitz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9ydGluZy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
ZXJyb3ItcmVwb3J0aW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmctZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQCBUZXN0cyBnZW5lcmF0aW9uIG9mIHN5bnRoZXRpYyBh
bmQgcmVhbCBHCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotUEFTUyBjb250ZXh0Lmdl
dEVycm9yKCkgaXMgMAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCiBUZXN0aW5nIGdldEFjdGl2ZUF0dHJpYgogUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJp
YihudWxsLCAyKSBpcyBudWxsCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9WQUxVRSA6IApAQCAtMTgsMTIgKzE4LDEyIEBAIFBBU1MgY29udGV4dC5nZXRBY3RpdmVV
bmlmb3JtKHByb2dyYW0sIDUKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX1ZBTFVFIDogCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKIFRlc3RpbmcgYXR0ZW1wdHMgdG8gbWFuaXB1bGF0ZSB0aGUgZGVmYXVsdCBmcmFtZWJ1ZmZl
cgotUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCAwKSBp
cyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIG51bGwpIGlzIHVuZGVmaW5lZC4KIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNv
bnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5E
RVJCVUZGRVIsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNv
bnRleHQuUkVOREVSQlVGRkVSLCBudWxsKSBpcyB1bmRlZmluZWQuCiBQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiAKIFBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4
dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LmZyYW1l
YnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNI
TUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgbnVsbCwgMCkgaXMgdW5kZWZpbmVkLgogUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCiBQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Vycm9y
LXJlcG9ydGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2Vycm9yLXJlcG9ydGluZy5odG1sCShyZXZpc2lvbiA2NTQ3MCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2Vycm9yLXJlcG9ydGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw3ICsyMSw3IEBAIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXgK
IC8vIGRpc2NvdmVyZWQgaW4gdGhlIHN5bnRoZXRpYyBlcnJvciBnZW5lcmF0aW9uIGFuZCBpbiB0
aGUgV2ViR0wKIC8vIGltcGxlbWVudGF0aW9uIGl0c2VsZi4KIAotc2hvdWxkQmUoImNvbnRleHQu
Z2V0RXJyb3IoKSIsICIwIik7CitnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5OT19F
UlJPUik7CiAKIGRlYnVnKCJUZXN0aW5nIGdldEFjdGl2ZUF0dHJpYiIpOwogLy8gU3ludGhldGlj
IE9wZW5HTCBlcnJvcgpAQCAtNDgsMTQgKzQ4LDE0IEBAIGdsRXJyb3JTaG91bGRCZShjb250ZXh0
LCBjb250ZXh0LklOVkFMSUQKIGdsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250ZXh0Lk5PX0VS
Uk9SKTsKIAogZGVidWcoIlRlc3RpbmcgYXR0ZW1wdHMgdG8gbWFuaXB1bGF0ZSB0aGUgZGVmYXVs
dCBmcmFtZWJ1ZmZlciIpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQuYmluZEZyYW1lYnVm
ZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIDApIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4
dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgbnVsbCkiKTsKIGdsRXJyb3JT
aG91bGRCZShjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJj
b250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRl
eHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIDApIik7CitzaG91bGRC
ZVVuZGVmaW5lZCgiY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1F
QlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBu
dWxsKSIpOwogLy8gU3ludGhldGljIE9wZW5HTCBlcnJvcgogZ2xFcnJvclNob3VsZEJlKGNvbnRl
eHQsIGNvbnRleHQuSU5WQUxJRF9PUEVSQVRJT04pOwogLy8gRXJyb3Igc3RhdGUgc2hvdWxkIGJl
IGNsZWFyIGJ5IHRoaXMgcG9pbnQKIGdsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250ZXh0Lk5P
X0VSUk9SKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJE
KGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQu
VEVYVFVSRV8yRCwgMCwgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVO
VDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgbnVsbCwgMCkiKTsKIC8vIFN5bnRoZXRpYyBPcGVuR0wg
ZXJyb3IKIGdsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9O
KTsKIC8vIEVycm9yIHN0YXRlIHNob3VsZCBiZSBjbGVhciBieSB0aGlzIHBvaW50CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmpl
Y3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNCwxMSArNCwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBCiAKIFBBU1Mgc2hhZGVycy5sZW5ndGggaXMgMgogUEFTUyBzaGFkZXJzWzBd
ID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzFdID09IHN0YW5kYXJkRnJhZyB8fCBzaGFkZXJz
WzFdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzBdID09IHN0YW5kYXJkRnJhZyBpcyB0cnVl
Ci1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBnbC5nZXRBdHRhY2hlZFNoYWRlcnMobnVs
bCkgaXMgdW5kZWZpbmVkLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfVkFMVUUK
LVBBU1MgZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKHN0YW5kYXJkVmVydCkgaXMgdW5kZWZpbmVkLgot
UEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfVkFMVUUKK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCitQQVNTIGdsLmdldEF0dGFjaGVkU2hh
ZGVycyhzdGFuZGFyZFZlcnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wu
Z2V0QnVmZmVyUGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuQlVGRkVSX1NJWkUpIGlzIDE2
CiBQQVNTIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVIsIGdsLkJVRkZFUl9V
U0FHRSkgaXMgZ2wuRFlOQU1JQ19EUkFXCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKQEAgLTc1LDkgKzc1LDExIEBAIFBBU1MgZ2wuZ2V0VW5pZm9ybShtYXRQ
cm9ncmFtLCBtdmFsNExvYykKIFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIGJ1ZmZlcgogUEFTUyBnbC5nZXRWZXJ0ZXhB
dHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKSBpcyB0cnVlCiBQQVNTIGds
LmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NJWkUpIGlzIDQKLVBB
U1MgKGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSkg
PT0gMCkgfHwgKGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NU
UklERSkgPT0gNCAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSkgaXMgdHJ1ZQorUEFTUyBnbC5nZXRW
ZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpIGlzIDAKIFBBU1Mg
Z2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSkgaXMgZ2wu
RkxPQVQKIFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
Tk9STUFMSVpFRCkgaXMgZmFsc2UKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRF
WF9BVFRSSUJfQVJSQVlfU1RSSURFKSBpcyAzNgorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWJPZmZz
ZXQoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSKSBpcyAxMgogUEFTUyBnbC5nZXRW
ZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKSBpcyBmYWxzZQog
UEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKSBpcyBb
NSwgNiwgNywgOF0KIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdldC1jYWxs
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9i
amVjdC1nZXQtY2FsbHMuaHRtbAkocmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDExICszOSwxMSBAQCBnbC5saW5rUHJvZ3JhbShzdGFuZGFyZFByb2dyYW0pOwogdmFyIHNo
YWRlcnMgPSBnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRQcm9ncmFtKTsKIHNob3VsZEJl
KCdzaGFkZXJzLmxlbmd0aCcsICcyJyk7CiBzaG91bGRCZVRydWUoJ3NoYWRlcnNbMF0gPT0gc3Rh
bmRhcmRWZXJ0ICYmIHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8IHNoYWRlcnNbMV0gPT0g
c3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFnJyk7Ci1zaG91bGRCZSgn
Z2wuZ2V0RXJyb3IoKScsICdnbC5OT19FUlJPUicpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CiBzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKG51bGwp
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5JTlZBTElEX1ZBTFVFJyk7Ci1zaG91
bGRCZVVuZGVmaW5lZCgnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKHN0YW5kYXJkVmVydCknKTsKLXNo
b3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLklOVkFMSURfVkFMVUUnKTsKK2dsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7CitzaG91bGRUaHJvdygnZ2wuZ2V0QXR0YWNoZWRT
aGFkZXJzKHN0YW5kYXJkVmVydCknKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwogCiAvLyBUZXN0IGdldEJ1ZmZlclBhcmFtZXRlcgogdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1
ZmZlcigpOwpAQCAtMjE0LDkgKzIxNCwxMyBAQCBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQs
IGdsLkZMT0FULCBmCiBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpJywgJ2J1ZmZlcicpOwogc2hvdWxkQmUoJ2dsLmdl
dFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpJywgJ3RydWUn
KTsKIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJB
WV9TSVpFKScsICc0Jyk7Ci1zaG91bGRCZSgnKGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJU
RVhfQVRUUklCX0FSUkFZX1NUUklERSkgPT0gMCkgfHwgKGdsLmdldFZlcnRleEF0dHJpYigxLCBn
bC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSkgPT0gNCAqIHNpemVJbkJ5dGVzKGdsLkZMT0FU
KSknLCAndHJ1ZScpOworLy8gU3RyaWRlIE1VU1QgYmUgdGhlIHZhbHVlIHRoZSB1c2VyIHB1dCBp
bi4KK3Nob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJB
WV9TVFJJREUpJywgJzAnKTsKIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9UWVBFKScsICdnbC5GTE9BVCcpOwogc2hvdWxkQmUoJ2dsLmdldFZl
cnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQpJywgJ2ZhbHNl
Jyk7CitnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQsIGdsLkZMT0FULCBmYWxzZSwgMzYsIDEy
KTsKK3Nob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJB
WV9TVFJJREUpJywgJzM2Jyk7CitzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KDEs
IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUiknLCAnMTInKTsKIGdsLmRpc2FibGVWZXJ0
ZXhBdHRyaWJBcnJheSgxKTsKIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKScsICdmYWxzZScpOwogZ2wudmVydGV4QXR0cmliNGYo
MSwgNSwgNiwgNywgOCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxs
LW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDY1NDcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1vYmpl
Y3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTQsMTAgKzE0LDEw
IEBAIFBBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIodW5kZWZpbmVkLCBzaGEKIFBBU1MgY29udGV4
dC5zaGFkZXJTb3VyY2UoKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNT
IGNvbnRleHQuc2hhZGVyU291cmNlKHVuZGVmaW5lZCwgJ2ZvbycpIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5iaW5kQXR0cmliTG9jYXRpb24odW5kZWZp
bmVkLCAwLCAnZm9vJykgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFLgotUEFTUyBj
b250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIDApIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IuCi1QQVNTIGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJB
TUVCVUZGRVIsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCi1QQVNTIGNvbnRleHQu
YmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCkgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KLVBBU1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVf
MkQsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGNvbnRleHQuYmluZEJ1
ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJV
RkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29u
dGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNv
bnRleHQuVEVYVFVSRV8yRCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KIFBBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBudWxsKSB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZl
cihjb250ZXh0LkZSQU1FQlVGRkVSLCBudWxsKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgogUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIG51
bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCkBAIC0yNiwxNCArMjYsMTQgQEAgUEFT
UyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVQogUEFTUyBjb250ZXh0LmJpbmRG
cmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCB1bmRlZmluZWQpIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IuCiBQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJF
TkRFUkJVRkZFUiwgdW5kZWZpbmVkKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFT
UyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgdW5kZWZpbmVkKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgotUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29u
dGV4dC5SRU5ERVJCVUZGRVIsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJ
T04uCi1QQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZF
UiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCAwLCAwKSB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBjb250ZXh0LmZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRU
QUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIG51bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29u
dGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhU
VVJFXzJELCBudWxsLCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OLgog
UEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIodW5kZWZpbmVkLCAwKSB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2co
dW5kZWZpbmVkLCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNv
bnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCkgd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2codW5kZWZpbmVk
LCAwKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCiBQQVNTIGNvbnRleHQuZ2V0
U2hhZGVyU291cmNlKHVuZGVmaW5lZCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVF
LgotUEFTUyBjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVkLCAwKSB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfVkFMVUUuCitQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybSh1bmRlZmluZWQsIG51
bGwpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5nZXRV
bmlmb3JtTG9jYXRpb24odW5kZWZpbmVkLCAnZm9vJykgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX1ZBTFVFLgogCiBjaGVjayB3aXRoIGJpbmRpbmdzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXIuaHRtbAko
cmV2aXNpb24gNjU0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9i
amVjdC1iZWhhdmlvdXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDEwIEBAIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LkkKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LnNoYWRlclNvdXJj
ZSgpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZB
TFVFLCAiY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVkLCAnZm9vJykiKTsKIHNob3VsZEdl
bmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmJp
bmRBdHRyaWJMb2NhdGlvbih1bmRlZmluZWQsIDAsICdmb28nKSIpOwotc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJST1IsICJjb250ZXh0LmJpbmRCdWZmZXIoY29u
dGV4dC5BUlJBWV9CVUZGRVIsIDApIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwg
Y29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVC
VUZGRVIsIDApIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19F
UlJPUiwgImNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgMCki
KTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29u
dGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIDApIik7CitzaG91bGRUaHJvdygi
Y29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCAwKSIpOworc2hvdWxkVGhy
b3coImNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIDApIik7Citz
aG91bGRUaHJvdygiY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVS
LCAwKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJF
XzJELCAwKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuTk9fRVJS
T1IsICJjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIG51bGwpIik7CiBz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQu
YmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIG51bGwpIik7CiBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZFJlbmRl
cmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgbnVsbCkiKTsKQEAgLTQyLDE0ICs0MiwxNCBA
QCBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OCiBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZEZyYW1lYnVm
ZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIHVuZGVmaW5lZCkiKTsKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SLCAiY29udGV4dC5iaW5kUmVuZGVyYnVmZmVy
KGNvbnRleHQuUkVOREVSQlVGRkVSLCB1bmRlZmluZWQpIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJy
b3IoY29udGV4dCwgY29udGV4dC5OT19FUlJPUiwgImNvbnRleHQuYmluZFRleHR1cmUoY29udGV4
dC5URVhUVVJFXzJELCB1bmRlZmluZWQpIik7Ci1zaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4
dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250
ZXh0LlJFTkRFUkJVRkZFUiwgMCkiKTsKLXNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBj
b250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChj
b250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIDApIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4
dC5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29u
dGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRF
UkJVRkZFUiwgbnVsbCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0
LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0
LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVf
MkQsIG51bGwsIDApIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5J
TlZBTElEX1ZBTFVFLCAiY29udGV4dC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCki
KTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUs
ICJjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKHVuZGVmaW5lZCwgMCkiKTsKIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmdldFNo
YWRlclBhcmFtZXRlcih1bmRlZmluZWQsIDApIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29u
dGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKHVu
ZGVmaW5lZCwgMCkiKTsKIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjb250ZXh0LCBjb250ZXh0LklO
VkFMSURfVkFMVUUsICJjb250ZXh0LmdldFNoYWRlclNvdXJjZSh1bmRlZmluZWQpIik7Ci1zaG91
bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFLCAiY29udGV4
dC5nZXRVbmlmb3JtKHVuZGVmaW5lZCwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihjb250
ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUsICJjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVk
LCBudWxsKSIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJ
RF9WQUxVRSwgImNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuZGVmaW5lZCwgJ2ZvbycpIik7
CiAKIGRlYnVnKCIiKTsKQEAgLTY0LDggKzY0LDggQEAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGNv
bnRleHQsIGNvbnRleHQuTgogCiBkZWJ1ZygiIik7CiBkZWJ1ZygiY2hlY2sgd2l0aG91dCBiaW5k
aW5ncyIpOwotY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCAwKTsKLWNv
bnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCAwKTsKK2NvbnRleHQuYmluZEJ1
ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgbnVsbCk7Citjb250ZXh0LmJpbmRUZXh0dXJlKGNv
bnRleHQuVEVYVFVSRV8yRCwgbnVsbCk7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwg
Y29udGV4dC5JTlZBTElEX09QRVJBVElPTiwgImNvbnRleHQuYnVmZmVyRGF0YShjb250ZXh0LkFS
UkFZX0JVRkZFUiwgMSwgY29udGV4dC5TVEFUSUNfRFJBVykiKTsKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihjb250ZXh0LCBjb250ZXh0LklOVkFMSURfT1BFUkFUSU9OLCAiY29udGV4dC5nZXRCdWZm
ZXJQYXJhbWV0ZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIGNvbnRleHQuQlVGRkVSX1NJWkUpIik7
CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoY29udGV4dCwgY29udGV4dC5JTlZBTElEX09QRVJBVElP
TiwgImNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIGNvbnRleHQuUkdC
QSwgMSwgMSwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIG5ldyBVaW50
OEFycmF5KFswLDAsMCwwXSkpIik7Cg==
</data>
<flag name="review"
          id="53517"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="53518"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>