<?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>109120</bug_id>
          
          <creation_ts>2013-02-06 18:09:24 -0800</creation_ts>
          <short_desc>Add WebGL Conformance Tests programs folder.</short_desc>
          <delta_ts>2013-02-07 05:07:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>94643</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gregg Tavares">gman</reporter>
          <assigned_to name="Gregg Tavares">gman</assigned_to>
          <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826950</commentid>
    <comment_count>0</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 18:09:24 -0800</bug_when>
    <thetext>Add WebGL Conformance Tests programs folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826951</commentid>
    <comment_count>1</comment_count>
      <attachid>186966</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 18:09:37 -0800</bug_when>
    <thetext>Created attachment 186966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826988</commentid>
    <comment_count>2</comment_count>
      <attachid>186966</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-06 18:50:45 -0800</bug_when>
    <thetext>Comment on attachment 186966
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827344</commentid>
    <comment_count>3</comment_count>
      <attachid>186966</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 05:07:10 -0800</bug_when>
    <thetext>Comment on attachment 186966
Patch

Clearing flags on attachment: 186966

Committed r142100: &lt;http://trac.webkit.org/changeset/142100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827345</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 05:07:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186966</attachid>
            <date>2013-02-06 18:09:37 -0800</date>
            <delta_ts>2013-02-07 05:07:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109120-20130206180614.patch</filename>
            <type>text/plain</type>
            <size>57146</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg1YzNmODI2ZjFlY2EwZDY4NmNl
OTY2MDM2ZmZkNjliMWMyYmQ4My4uYjE4ODMzYTcwNzJhZmIyNjRkNDlkMzJhZjA1OWJiMDUzOWIz
MzVjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEzLTAyLTA2ICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWRkIFdlYkdMIENvbmZvcm1hbmNlIFRlc3Rz
IHByb2dyYW1zIGZvbGRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTEyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2V0LWFjdGl2ZS10ZXN0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
Z2V0LWFjdGl2ZS10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNl
L3Byb2dyYW1zL2dsLWJpbmQtYXR0cmliLWxvY2F0aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1iaW5kLWF0dHJpYi1s
b2NhdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3By
b2dyYW1zL2dsLWdldC1hY3RpdmUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS1hdHRyaWJ1dGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0
LWFjdGl2ZS11bmlmb3JtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29u
Zm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS11bmlmb3JtLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldHNoYWRlcnNvdXJjZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2ds
LWdldHNoYWRlcnNvdXJjZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLXNoYWRlci10ZXN0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2ludmFsaWQtVVRGLTE2LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvaW52
YWxpZC1VVEYtMTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvcHJv
Z3JhbXMvdXNlLXByb2dyYW0tY3Jhc2gtd2l0aC1kaXNjYXJkLWluLWZyYWdtZW50LXNoYWRlci1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1z
L3VzZS1wcm9ncmFtLWNyYXNoLXdpdGgtZGlzY2FyZC1pbi1mcmFnbWVudC1zaGFkZXIuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcHJvZ3JhbXMvMDBfdGVzdF9saXN0LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2V0LWFjdGl2
ZS10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWJpbmQtYXR0cmliLWxvY2F0aW9uLXRlc3Qu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS1hdHRyaWJ1dGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS11bmlmb3JtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdl
dHNoYWRlcnNvdXJjZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9wcm9ncmFtcy9pbnZhbGlkLVVURi0xNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy91c2UtcHJv
Z3JhbS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJhZ21lbnQtc2hhZGVyLmh0bWw6IEFkZGVkLgor
CisyMDEzLTAyLTA2ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBjaHJvbWl1bS5vcmc+CisKICAgICAg
ICAgQWRkcyBmYWlsaW5nIFdlYkdMIENvbmZvcm1hbmNlIFRlc3RzLgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDc1CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dldC1hY3RpdmUtdGVzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nZXQtYWN0
aXZlLXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNWI2NDA5NmE3YmU5Y2JiODdhMjAy
NjlmYjlmOTdlZWI0N2I2MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9wcm9ncmFtcy9nZXQtYWN0aXZlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dldC1hY3RpdmUtdGVzdC5o
dG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3By
b2dyYW1zL2dldC1hY3RpdmUtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvcHJvZ3JhbXMvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRhNDU0NDUzNTFm
MmMzMWJiM2E4YjM0MDQ4ODQzZjc0ZTM2MGJlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dldC1hY3RpdmUtdGVzdC5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRl
LXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIGdldC1hY3RpdmUtdGVzdC5odG1sPC90aXRsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cHJvZ3JhbXMvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dldC1hY3RpdmUtdGVzdC5odG1sPC9hPgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2V0LWFj
dGl2ZS10ZXN0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvcHJvZ3JhbXMvZ2wtYmluZC1hdHRyaWItbG9jYXRpb24tdGVzdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1iaW5kLWF0dHJpYi1s
b2NhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2RmZDUyMzM1ZDJiMTI2N2Nh
ZGMwYzk1NTkzNDI2NzcwMWExNjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtYmluZC1hdHRyaWItbG9jYXRpb24tdGVzdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
Z2wtYmluZC1hdHRyaWItbG9jYXRpb24tdGVzdC5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWJpbmQtYXR0cmliLWxvY2F0
aW9uLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2ds
LWJpbmQtYXR0cmliLWxvY2F0aW9uLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmM2MTMxZGZhNThh
NmI3NmIxZjE1Njg0YjhkNjFlNjdlYmZiNjVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtYmluZC1hdHRyaWItbG9jYXRpb24tdGVz
dC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
IGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGdsLWJpbmQtYXR0cmliLWxvY2F0aW9uLXRl
c3QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWJpbmQtYXR0cmliLWxvY2F0aW9u
LXRlc3QuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cHJvZ3JhbXMvZ2wtYmluZC1hdHRyaWItbG9jYXRpb24tdGVzdC5odG1sPC9hPgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtYmluZC1hdHRy
aWItbG9jYXRpb24tdGVzdC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtYXR0cmlidXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUt
YXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTUxNzg2NTUwZTk5MjkyY2NlN2Qx
MmZmMWFlNWZlODI3N2YxMDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1h
Y3RpdmUtYXR0cmlidXRlLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS1hdHRyaWJ1dGUuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtYXR0cmli
dXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ2OWFhNzhlMjFlOGQ0ODA4ZTEwMjc4Mzk4Y2YzZTIyYjhl
M2YyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3By
b2dyYW1zL2dsLWdldC1hY3RpdmUtYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHku
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgZ2wtZ2V0LWFjdGl2ZS1hdHRyaWJ1dGUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1z
L2dsLWdldC1hY3RpdmUtYXR0cmlidXRlLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtYXR0cmlidXRlLmh0bWw8
L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFt
cy9nbC1nZXQtYWN0aXZlLWF0dHJpYnV0ZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+
PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtdW5pZm9ybS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1nZXQt
YWN0aXZlLXVuaWZvcm0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxMTRhYTkxYTA5NzM2YTYx
MTg2MjkwOTlmYTY2YzRkZWQxYjc4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1nZXQtYWN0aXZlLXVuaWZvcm0tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdl
dC1hY3RpdmUtdW5pZm9ybS5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtdW5pZm9ybS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS11bmlmb3Jt
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDZjYjU5MGIzNzA5NTUzOTQxMWU2MmNhMGFhZjdjNzZmOGQ1Y2Iw
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dy
YW1zL2dsLWdldC1hY3RpdmUtdW5pZm9ybS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGds
LWdldC1hY3RpdmUtdW5pZm9ybS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0
LWFjdGl2ZS11bmlmb3JtLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtdW5pZm9ybS5odG1sPC9hPgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFj
dGl2ZS11bmlmb3JtLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0c2hhZGVyc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldHNoYWRlcnNvdXJjZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVhZGVjMjhlM2VlODM1MDM1Y2M2OWFmZjg3NmRiMDcwYjNj
ODE5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3By
b2dyYW1zL2dsLWdldHNoYWRlcnNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0c2hhZGVyc291cmNlLmh0bWwKK1BB
U1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
Z2wtZ2V0c2hhZGVyc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9w
cm9ncmFtcy9nbC1nZXRzaGFkZXJzb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzFkOTNkN2U1MzUw
ZmE0YTQyNzQyYmQzNWE2MzA0MGI2ZDIyZWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0c2hhZGVyc291cmNlLmh0bWwKQEAg
LTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJh
dGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtZ2V0c2hhZGVyc291cmNlLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+
CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9wcm9ncmFtcy9nbC1nZXRzaGFkZXJzb3VyY2UuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0c2hhZGVyc291cmNlLmh0
bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJh
bWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9n
cmFtcy9nbC1nZXRzaGFkZXJzb3VyY2UuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEyZmQ5Yzc1N2EzY2FjYzYyNjUyNTQ0Y2I3ZTk3N2Vi
MWE5OTQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3Byb2dyYW1zL2dsLXNoYWRlci10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Ro
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC5odG1sCitQQVNTCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLXNo
YWRlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9n
bC1zaGFkZXItdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3OTNiNTE5Y2EzZTUxZmRiNzAyNmRhMDRm
ZTdiZDNjNTRlZGY1MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIGdsLXNoYWRlci10ZXN0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFk
ZXItdGVzdC5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtc2hhZGVyLXRlc3QuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9pbnZh
bGlkLVVURi0xNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9w
cm9ncmFtcy9pbnZhbGlkLVVURi0xNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg3OGQwNzFm
ODcwM2NjMGY1YWQyMjNhN2ZjN2I5YjdlZmEwYzQ3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2ludmFsaWQtVVRGLTE2LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAu
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9pbnZh
bGlkLVVURi0xNi5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3Byb2dyYW1zL2ludmFsaWQtVVRGLTE2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC9jb25mb3JtYW5jZS9wcm9ncmFtcy9pbnZhbGlkLVVURi0xNi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZk
OTRhYTEwMTJjNGM0ZmNhZDgxMWI4ZTRkMWE0Yzk1YzFlZWVlNmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy9pbnZhbGlkLVVURi0xNi5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBD
b25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGludmFsaWQtVVRGLTE2Lmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9wcm9ncmFtcy9pbnZhbGlkLVVURi0xNi5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9pbnZhbGlkLVVURi0xNi5odG1sPC9h
PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
aW52YWxpZC1VVEYtMTYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9wcm9ncmFtcy91c2UtcHJvZ3JhbS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJh
Z21lbnQtc2hhZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L3Byb2dyYW1zL3VzZS1wcm9ncmFtLWNyYXNoLXdpdGgtZGlzY2FyZC1pbi1mcmFnbWVudC1zaGFk
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NWFjZGEyYWYyNTY2Y2M1ZTExMzBjMTI0OWY5
NDdmMzA4MmNkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS9wcm9ncmFtcy91c2UtcHJvZ3JhbS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJhZ21lbnQt
c2hhZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9wcm9ncmFtcy91c2UtcHJvZ3JhbS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJhZ21lbnQtc2hh
ZGVyLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvcHJvZ3JhbXMvdXNlLXByb2dyYW0tY3Jhc2gtd2l0aC1kaXNjYXJkLWluLWZyYWdtZW50LXNo
YWRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvcHJvZ3JhbXMvdXNlLXBy
b2dyYW0tY3Jhc2gtd2l0aC1kaXNjYXJkLWluLWZyYWdtZW50LXNoYWRlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFmODM1OWY5ZjM3MTk2MzE4MDBlMTVkN2RlM2ZiMjQyMmE3ZDYyNTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9wcm9ncmFtcy91c2UtcHJvZ3Jh
bS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJhZ21lbnQtc2hhZGVyLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wt
dGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgdXNlLXByb2dyYW0tY3Jhc2gtd2l0aC1kaXNjYXJkLWluLWZyYWdtZW50LXNo
YWRlci5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvdXNlLXByb2dyYW0tY3Jhc2gtd2l0
aC1kaXNjYXJkLWluLWZyYWdtZW50LXNoYWRlci5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy91c2UtcHJvZ3JhbS1jcmFzaC13aXRoLWRp
c2NhcmQtaW4tZnJhZ21lbnQtc2hhZGVyLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy91c2UtcHJvZ3JhbS1jcmFzaC13aXRoLWRp
c2NhcmQtaW4tZnJhZ21lbnQtc2hhZGVyLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48
L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
MDBfdGVzdF9saXN0LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zLzAwX3Rlc3RfbGlzdC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmQ1ZWZjNzM2M2E0MjM2Y2NkYmNhOTc3MjhiZjYxYzkzYzJhNmU0YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Byb2dyYW1zLzAwX3Rlc3RfbGlzdC50eHQKQEAgLTAsMCArMSwxMCBAQAorZ2V0LWFjdGl2
ZS10ZXN0Lmh0bWwKK2dsLWJpbmQtYXR0cmliLWxvY2F0aW9uLXRlc3QuaHRtbAorLS1taW4tdmVy
c2lvbiAxLjAuMiBnbC1iaW5kLWF0dHJpYi1sb2NhdGlvbi1sb25nLW5hbWVzLXRlc3QuaHRtbAor
Z2wtZ2V0LWFjdGl2ZS1hdHRyaWJ1dGUuaHRtbAorZ2wtZ2V0LWFjdGl2ZS11bmlmb3JtLmh0bWwK
K2dsLWdldHNoYWRlcnNvdXJjZS5odG1sCitnbC1zaGFkZXItdGVzdC5odG1sCitpbnZhbGlkLVVU
Ri0xNi5odG1sCitwcm9ncmFtLXRlc3QuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiB1c2UtcHJv
Z3JhbS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJhZ21lbnQtc2hhZGVyLmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Byb2dyYW1zL2dldC1hY3RpdmUtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2V0LWFjdGl2ZS10
ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA4N2I2NjkzOTQxNDYxNTExMjQ5MWVlNGY0NzIwZTE5NGFi
ODhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dldC1hY3RpdmUtdGVzdC5odG1sCkBA
IC0wLDAgKzEsMTQxIEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
KyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0
aW9uKCJUZXN0IG9mIGdldEFjdGl2ZUF0dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9ybSIpOworCit2
YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgY29udGV4dCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoKTsKK3ZhciBjb250ZXh0MiA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsKK3ZhciBwcm9ncmFt
ID0gd3R1LmxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dCk7Cit2YXIgcHJvZ3JhbTIgPSB3dHUu
bG9hZFByb2dyYW1Gcm9tRmlsZShjb250ZXh0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIuLi9yZXNvdXJjZXMvaW50QXJyYXlVbmlmb3JtU2hhZGVyLnZlcnQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisK
K2dsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250ZXh0Lk5PX0VSUk9SKTsKK3Nob3VsZEJlKCJj
b250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkubmFtZSIsICIndV9tb2RlbFZpZXdQ
cm9qTWF0cml4JyIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFt
LCAwKS50eXBlIiwgImNvbnRleHQuRkxPQVRfTUFUNCIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0
QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5zaXplIiwgIjEiKTsKK3Nob3VsZEJlTnVsbCgiY29u
dGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDEpIik7CitnbEVycm9yU2hvdWxkQmUoY29u
dGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVFKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRB
Y3RpdmVVbmlmb3JtKHByb2dyYW0sIC0xKSIpOworZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNv
bnRleHQuSU5WQUxJRF9WQUxVRSk7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlVW5p
Zm9ybShudWxsLCAwKSIpOworZ2xFcnJvclNob3VsZEJlKGNvbnRleHQsIGNvbnRleHQuSU5WQUxJ
RF9WQUxVRSk7CisKKy8vIHdlIGRvbid0IGtub3cgdGhlIG9yZGVyIHRoZSBhdHRyaWJzIHdpbGwg
YXBwZWFyLgordmFyIGluZm8gPSBbCisgIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0s
IDApLAorICBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKQorXTsKK2ZvciAodmFy
IGlpID0gMDsgaWkgPCBpbmZvLmxlbmd0aDsgKytpaSkKKyAgICBzaG91bGRCZU5vbk51bGwoImlu
Zm9baWldIik7CisKK3ZhciBleHBlY3RlZCA9IFsKKyAgeyBuYW1lOiAnYV9ub3JtYWwnLCB0eXBl
OiBjb250ZXh0LkZMT0FUX1ZFQzMsIHNpemU6IDEgfSwKKyAgeyBuYW1lOiAnYV92ZXJ0ZXgnLCB0
eXBlOiBjb250ZXh0LkZMT0FUX1ZFQzQsIHNpemU6IDEgfQorXTsKKworaWYgKGluZm9bMF0ubmFt
ZSAhPSBleHBlY3RlZFswXS5uYW1lKSB7CisgIHZhciB0ID0gaW5mb1swXTsKKyAgaW5mb1swXSA9
IGluZm9bMV07CisgIGluZm9bMV0gPSB0OworfQorCitmb3IgKHZhciBpaSA9IDA7IGlpIDwgaW5m
by5sZW5ndGg7ICsraWkpIHsKKyAgc2hvdWxkQmUoImluZm9baWldLm5hbWUiLCAiZXhwZWN0ZWRb
aWldLm5hbWUiKTsKKyAgc2hvdWxkQmUoImluZm9baWldLnR5cGUiLCAiZXhwZWN0ZWRbaWldLnR5
cGUiKTsKKyAgc2hvdWxkQmUoImluZm9baWldLnNpemUiLCAiZXhwZWN0ZWRbaWldLnNpemUiKTsK
K30KKworLy8gd2UgZG9uJ3Qga25vdyB0aGUgb3JkZXIgdGhlIHVuaWZvcm1zIHdpbGwgYXBwZWFy
LgordmFyIGluZm8yID0gWworICAgIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbTIs
IDApLAorICAgIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbTIsIDEpCitdOworZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IGluZm8yLmxlbmd0aDsgKytpaSkKKyAgICBzaG91bGRCZU5vbk51
bGwoImluZm8yW2lpXSIpOworCit2YXIgZXhwZWN0ZWQyID0gWworICAgIHsgbmFtZTogJ2l2YWwn
LCB0eXBlOiBjb250ZXh0Mi5JTlQsIHNpemU6IDEgfSwKKyAgICB7IG5hbWU6ICdpdmFsMlswXScs
IHR5cGU6IGNvbnRleHQyLklOVCwgc2l6ZTogMiB9CitdOworCitpZiAoaW5mbzJbMF0ubmFtZSAh
PSBleHBlY3RlZDJbMF0ubmFtZSkgeworICAgIHQgPSBpbmZvMlswXTsKKyAgICBpbmZvMlswXSA9
IGluZm8yWzFdOworICAgIGluZm8yWzFdID0gdDsKK30KKworZm9yICh2YXIgaWkgPSAwOyBpaSA8
IGluZm8yLmxlbmd0aDsgKytpaSkgeworICAgIHNob3VsZEJlKCJpbmZvMltpaV0ubmFtZSIsICJl
eHBlY3RlZDJbaWldLm5hbWUiKTsKKyAgICBzaG91bGRCZSgiaW5mbzJbaWldLnR5cGUiLCAiZXhw
ZWN0ZWQyW2lpXS50eXBlIik7CisgICAgc2hvdWxkQmUoImluZm8yW2lpXS5zaXplIiwgImV4cGVj
dGVkMltpaV0uc2l6ZSIpOworfQorCitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlQXR0
cmliKHByb2dyYW0sIDIpIik7CitnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5JTlZB
TElEX1ZBTFVFKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgLTEpIik7CitnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5JTlZBTElEX1ZBTFVF
KTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCkiKTsKK2ds
RXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUpOworCitnbEVycm9y
U2hvdWxkQmUoY29udGV4dDIsIGNvbnRleHQuTk9fRVJST1IpOworCitkZWJ1ZygiQ2hlY2sgdHJ5
aW5nIHRvIGdldCBhdHRyaWJzIGZyb20gZGlmZmVyZW50IGNvbnRleHQiKTsKK3Nob3VsZEJlTnVs
bCgiY29udGV4dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIik7CitnbEVycm9yU2hvdWxk
QmUoY29udGV4dDIsIGNvbnRleHQyLklOVkFMSURfT1BFUkFUSU9OKTsKK3Nob3VsZEJlTnVsbCgi
Y29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIpOworZ2xFcnJvclNob3VsZEJl
KGNvbnRleHQyLCBjb250ZXh0Mi5JTlZBTElEX09QRVJBVElPTik7CisKK2RlYnVnKCJDaGVjayB0
cnlpbmcgdG8gZ2V0IGF0dHJpYnMgZnJvbSBkZWxldGVkIHByb2dyYW0iKTsKK2NvbnRleHQuZGVs
ZXRlUHJvZ3JhbShwcm9ncmFtKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlm
b3JtKHByb2dyYW0sIDApIik7CitnbEVycm9yU2hvdWxkQmUoY29udGV4dCwgY29udGV4dC5JTlZB
TElEX1ZBTFVFKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgMCkiKTsKK2dsRXJyb3JTaG91bGRCZShjb250ZXh0LCBjb250ZXh0LklOVkFMSURfVkFMVUUp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1iaW5kLWF0dHJpYi1sb2NhdGlvbi10
ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9wcm9ncmFtcy9nbC1iaW5kLWF0dHJpYi1sb2NhdGlvbi10ZXN0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTBlMDBhZjE4ZTc3YjdlZTI2MmRmNTU4NGMzMzUyMDhkMjFjYTJkOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWJpbmQtYXR0cmliLWxvY2F0aW9uLXRlc3QuaHRtbApA
QCAtMCwwICsxLDIyNiBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
CisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgor
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQmluZEF0dHJpYkxvY2F0aW9uIENvbmZvcm1hbmNlIFRlc3RzPC90aXRs
ZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOyIgaWQ9ImNhbnZhcyIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48L2NhbnZhcz4KKzxz
Y3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9InRleHQvc29tZXRoaW5nLW5vdC1qYXZhc2NyaXB0Ij4K
K2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKK2F0dHJpYnV0ZSB2ZWM0IHZDb2xvcjsKK3Zhcnlp
bmcgdmVjNCBjb2xvcjsKK3ZvaWQgbWFpbigpCit7CisgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9u
OworICBjb2xvciA9IHZDb2xvcjsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZnNoYWRlciIg
dHlwZT0idGV4dC9zb21ldGhpbmctbm90LWphdmFzY3JpcHQiPgorcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisKK3ZhcnlpbmcgdmVjNCBjb2xvcjsKK3ZvaWQgbWFpbigpCit7CisgIGdsX0ZyYWdD
b2xvciA9IGNvbG9yOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGltcGxlbWVudGF0aW9ucyBkb24ndCBh
bGxvdyBuYW1lcyB0aGF0IHN0YXJ0IHdpdGggJ2dsXycgd2hlbiBjYWxsaW5nIGJpbmRBdHRyaWJM
b2NhdGlvbi4iKTsKKworZGVidWcoIiIpOworZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CisK
K3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
ImNhbnZhcyIpOworc2hvdWxkQmVOb25OdWxsKCJnbCIpOworCitmdW5jdGlvbiBmYWlsKHgseSwg
YnVmLCBzaG91bGRCZSkKK3sKKyAgdmFyIGkgPSAoeSo1MCt4KSAqIDQ7CisgIHZhciByZWFzb24g
PSAicGl4ZWwgYXQgKCIreCsiLCIreSsiKSBpcyAoIitidWZbaV0rIiwiK2J1ZltpKzFdKyIsIiti
dWZbaSsyXSsiLCIrYnVmW2krM10rIiksIHNob3VsZCBiZSAiK3Nob3VsZEJlOworICB0ZXN0RmFp
bGVkKHJlYXNvbik7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKQoreworICB0ZXN0UGFzc2VkKCJkcmF3
aW5nIGlzIGNvcnJlY3QiKTsKK30KKworZnVuY3Rpb24gbG9hZFNoYWRlcihzaGFkZXJUeXBlLCBz
aGFkZXJJZCkgeworICAvLyBHZXQgdGhlIHNoYWRlciBzb3VyY2UuCisgIHZhciBzaGFkZXJTb3Vy
Y2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzaGFkZXJJZCkudGV4dDsKKworICAvLyBDcmVh
dGUgdGhlIHNoYWRlciBvYmplY3QKKyAgdmFyIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihzaGFk
ZXJUeXBlKTsKKyAgaWYgKHNoYWRlciA9PSBudWxsKSB7CisgICAgZGVidWcoIioqKiBFcnJvcjog
dW5hYmxlIHRvIGNyZWF0ZSBzaGFkZXIgJyIrc2hhZGVySWQrIiciKTsKKyAgICByZXR1cm4gbnVs
bDsKKyAgfQorCisgIC8vIExvYWQgdGhlIHNoYWRlciBzb3VyY2UKKyAgZ2wuc2hhZGVyU291cmNl
KHNoYWRlciwgc2hhZGVyU291cmNlKTsKKworICAvLyBDb21waWxlIHRoZSBzaGFkZXIKKyAgZ2wu
Y29tcGlsZVNoYWRlcihzaGFkZXIpOworCisgIC8vIENoZWNrIHRoZSBjb21waWxlIHN0YXR1cwor
ICB2YXIgY29tcGlsZWQgPSBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxF
X1NUQVRVUyk7CisgIGlmICghY29tcGlsZWQpIHsKKyAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9u
ZyBkdXJpbmcgY29tcGlsYXRpb247IGdldCB0aGUgZXJyb3IKKyAgICB2YXIgZXJyb3IgPSBnbC5n
ZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7CisgICAgZGVidWcoIioqKiBFcnJvciBjb21waWxpbmcg
c2hhZGVyICciK3NoYWRlcisiJzoiK2Vycm9yKTsKKyAgICBnbC5kZWxldGVTaGFkZXIoc2hhZGVy
KTsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorICByZXR1cm4gc2hhZGVyOworfQorCitkZWJ1Zygi
Iik7CitkZWJ1ZygiQ2hlY2tpbmcgZ2wuYmluZEF0dHJpYkxvY2F0aW9uLiIpOworCit2YXIgcHJv
Z3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKK2dsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFt
LCAwLCAiZ2xfZm9vIik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9O
LAorICAgICJiaW5kQXR0cmliTG9jYXRpb24gc2hvdWxkIHJldHVybiBJTlZBTElEX09QRVJBVElP
TiBpZiBuYW1lIHN0YXJ0cyB3aXRoICdnbF8nIik7CitnbC5iaW5kQXR0cmliTG9jYXRpb24ocHJv
Z3JhbSwgMCwgImdsX1RleENvb3JkMCIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X09QRVJBVElPTiwKKyAgICAiYmluZEF0dHJpYkxvY2F0aW9uIHNob3VsZCByZXR1cm4gSU5WQUxJ
RF9PUEVSQVRJT04gaWYgbmFtZSBzdGFydHMgd2l0aCAnZ2xfJyIpOworCit2YXIgdnMgPSBsb2Fk
U2hhZGVyKGdsLlZFUlRFWF9TSEFERVIsICJ2c2hhZGVyIik7Cit2YXIgZnMgPSBsb2FkU2hhZGVy
KGdsLkZSQUdNRU5UX1NIQURFUiwgImZzaGFkZXIiKTsKK2dsLmF0dGFjaFNoYWRlcihwcm9ncmFt
LCB2cyk7CitnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnMpOworCit2YXIgcG9zaXRpb25zID0g
Z2wuY3JlYXRlQnVmZmVyKCk7CitnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgcG9zaXRp
b25zKTsKK2dsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsg
MCwwLjUsMCwgLTAuNSwtMC41LDAsIDAuNSwtMC41LDAgXSksIGdsLlNUQVRJQ19EUkFXKTsKKwor
dmFyIGNvbG9ycyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9C
VUZGRVIsIGNvbG9ycyk7CitnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0
MzJBcnJheShbCisgICAgMCwxLDAsMSwKKyAgICAwLDEsMCwxLAorICAgIDAsMSwwLDFdKSwgZ2wu
U1RBVElDX0RSQVcpOworCitmdW5jdGlvbiBzZXRCaW5kTG9jYXRpb25zKGNvbG9yTG9jYXRpb24s
IHBvc2l0aW9uTG9jYXRpb24pIHsKKyAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIHBv
c2l0aW9uTG9jYXRpb24sICJ2UG9zaXRpb24iKTsKKyAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHBy
b2dyYW0sIGNvbG9yTG9jYXRpb24sICJ2Q29sb3IiKTsKKyAgZ2wubGlua1Byb2dyYW0ocHJvZ3Jh
bSk7CisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHZhciBsaW5rZWQgPSAoZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykgIT0gMCk7CisgIGFzc2VydE1z
ZyhsaW5rZWQsICJwcm9ncmFtIGxpbmtlZCBzdWNjZXNzZnVsbHkiKTsKKworICBkZWJ1ZygidlBv
c2l0aW9uOiIgKyBnbC5nZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAidlBvc2l0aW9uIikpCisg
IGRlYnVnKCJ2Q29sb3IgICA6IiArIGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJ2Q29s
b3IiKSkKKyAgYXNzZXJ0TXNnKGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJ2UG9zaXRp
b24iKSA9PSBwb3NpdGlvbkxvY2F0aW9uLAorICAgICAgICAgICAgImxvY2F0aW9uIG9mIHZQb3Np
dGlvbiBzaG91bGQgYmUgIiArIHBvc2l0aW9uTG9jYXRpb24pOworICBhc3NlcnRNc2coZ2wuZ2V0
QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgInZDb2xvciIpID09IGNvbG9yTG9jYXRpb24sCisgICAg
ICAgICAgICAibG9jYXRpb24gb2YgdkNvbG9yIHNob3VsZCBiZSAiICsgY29sb3JMb2NhdGlvbik7
CisKKyAgdmFyIHBsb2MgPSBnbC5nZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAidlBvc2l0aW9u
Iik7CisgIHZhciBjbG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgInZDb2xvciIp
OworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgcG9zaXRpb25zKTsKKyAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2NhdGlvbik7CisgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIocG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGNvbG9ycyk7CisgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KGNvbG9yTG9jYXRpb24pOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGNv
bG9yTG9jYXRpb24sIDQsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrRHJhdyhjb2xvckxvY2F0aW9uLCBwb3NpdGlvbkxvY2F0aW9uLCByLCBnLCBiLCBhKSB7Cisg
IGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMSk7CisgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9C
SVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMs
IDAsIDMpOworCisgIHZhciB3aWR0aCA9IDUwOworICB2YXIgaGVpZ2h0ID0gNTA7CisgIHZhciBi
dWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOworICBnbC5yZWFkUGl4ZWxz
KDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisK
KyAgZnVuY3Rpb24gY2hlY2tQaXhlbCh4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIG9mZnNl
dCA9ICh5ICogd2lkdGggKyB4KSAqIDQ7CisgICAgaWYgKGJ1ZltvZmZzZXQgKyAwXSAhPSByIHx8
CisgICAgICAgIGJ1ZltvZmZzZXQgKyAxXSAhPSBnIHx8CisgICAgICAgIGJ1ZltvZmZzZXQgKyAy
XSAhPSBiIHx8CisgICAgICAgIGJ1ZltvZmZzZXQgKyAzXSAhPSBhKSB7CisgICAgICAgIGZhaWwo
eCwgeSwgYnVmLCAiKCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiLCIgKyBhICsgIikiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisg
IC8vIFRlc3Qgc2V2ZXJhbCBsb2NhdGlvbnMKKyAgLy8gRmlyc3QgbGluZSBzaG91bGQgYmUgYWxs
IGJsYWNrCisgIHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsg
KytpKQorICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGNoZWNrUGl4ZWwoaSwgMCwgMCwgMCwgMCwg
MjU1KTsKKworICAvLyBMaW5lIDE1IHNob3VsZCBiZSByZWQgZm9yIGF0IGxlYXN0IDEwIHJnYmEg
cGl4ZWxzIHN0YXJ0aW5nIDIwIHBpeGVscyBpbgorICB2YXIgb2Zmc2V0ID0gKDE1ICogNTAgKyAy
MCkgKiA0OworICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyArK2kpCisgICAgc3VjY2VzcyA9IHN1
Y2Nlc3MgJiYgY2hlY2tQaXhlbCgyMCArIGksIDE1LCByLCBnLCBiLCBhKTsKKworICAvLyBMYXN0
IGxpbmUgc2hvdWxkIGJlIGFsbCBibGFjaworICBmb3IgKHZhciBpID0gMDsgaSA8IDUwOyArK2kp
CisgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY2hlY2tQaXhlbChpLCA0OSwgMCwgMCwgMCwgMjU1
KTsKKworICBpZiAoc3VjY2VzcykKKyAgICBwYXNzKCk7CisKKyAgZ2wuZGlzYWJsZVZlcnRleEF0
dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRpb24pOworICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJy
YXkoY29sb3JMb2NhdGlvbik7Cit9CisKK3NldEJpbmRMb2NhdGlvbnMoMiwgMyk7CitjaGVja0Ry
YXcoMiwgMywgMCwgMjU1LCAwLCAyNTUpOworCitzZXRCaW5kTG9jYXRpb25zKDAsIDMpOworZ2wu
ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworZ2wudmVydGV4QXR0cmliNGYoMCwgMSwgMCwg
MCwgMSk7CitjaGVja0RyYXcoMCwgMywgMjU1LCAwLCAwLCAyNTUpOworCitnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKKworZGVidWcoIiIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9w
cm9ncmFtcy9nbC1nZXQtYWN0aXZlLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFj
dGl2ZS1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTMxNDM3ODU2MDRlZThiNzM2OWRlNWVk
MDc4NjBiNmI0NzE1M2NiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2
ZS1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDEwNyBAQAorPCEtLQorCisvKgorKiogQ29weXJp
Z2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5k
IHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioK
KyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiog
TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVS
SUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgZ2V0QWN0aXZlQXR0cmliIGNvbmZvcm1h
bmNlIHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgaWQ9InZzaGFk
ZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSAkdHlwZSBhdHRyMDsKK3Zv
aWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsIDAsIDAsIGF0dHIwJGFjY2Vz
cyk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
ZnJhZ21lbnQiPgordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAsMSww
LDEpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24o
IlRlc3RzIGdldEFjdGl2ZUF0dHJpYiBmb3IgdmFyaW91cyB0eXBlcyIpOworCit2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7
CisKK3ZhciB0ZXN0cyA9IFsKK3sgZ2xUeXBlOiBnbC5GTE9BVCwgICAgICBzaXplOiAxLCB0eXBl
OiAnZmxvYXQnLCBhY2Nlc3M6ICcnfSwKK3sgZ2xUeXBlOiBnbC5GTE9BVF9WRUMyLCBzaXplOiAx
LCB0eXBlOiAndmVjMicsICBhY2Nlc3M6ICdbMV0nfSwKK3sgZ2xUeXBlOiBnbC5GTE9BVF9WRUMz
LCBzaXplOiAxLCB0eXBlOiAndmVjMycsICBhY2Nlc3M6ICdbMl0nfSwKK3sgZ2xUeXBlOiBnbC5G
TE9BVF9WRUM0LCBzaXplOiAxLCB0eXBlOiAndmVjNCcsICBhY2Nlc3M6ICdbM10nfSwKK3sgZ2xU
eXBlOiBnbC5GTE9BVF9NQVQyLCBzaXplOiAxLCB0eXBlOiAnbWF0MicsICBhY2Nlc3M6ICdbMV1b
MV0nfSwKK3sgZ2xUeXBlOiBnbC5GTE9BVF9NQVQzLCBzaXplOiAxLCB0eXBlOiAnbWF0MycsICBh
Y2Nlc3M6ICdbMl1bMl0nfSwKK3sgZ2xUeXBlOiBnbC5GTE9BVF9NQVQ0LCBzaXplOiAxLCB0eXBl
OiAnbWF0NCcsICBhY2Nlc3M6ICdbM11bM10nfSwKK107CisKK3ZhciBzb3VyY2UgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndnNoYWRlcicpLnRleHQ7Cit2YXIgZnMgPSB3dHUubG9hZFNoYWRl
ckZyb21TY3JpcHQoZ2wsICdmc2hhZGVyJywgZ2wuRlJBR01FTlRfU0hBREVSKTsKK2ZvciAodmFy
IHR0ID0gMDsgdHQgPCB0ZXN0cy5sZW5ndGg7ICsrdHQpIHsKKyAgdmFyIHQgPSB0ZXN0c1t0dF07
CisgIHZhciB2cyA9IHd0dS5sb2FkU2hhZGVyKAorICAgICAgZ2wsCisgICAgICBzb3VyY2UucmVw
bGFjZSgnJHR5cGUnLCB0LnR5cGUpLnJlcGxhY2UoJyRhY2Nlc3MnLCB0LmFjY2VzcyksCisgICAg
ICBnbC5WRVJURVhfU0hBREVSKTsKKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGds
LCBbdnMsIGZzXSk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJubyBlcnJv
cnMgZnJvbSBzZXR1cCIpOworICB2YXIgbnVtQXR0cmlicyA9IGdsLmdldFByb2dyYW1QYXJhbWV0
ZXIocHJvZ3JhbSwgZ2wuQUNUSVZFX0FUVFJJQlVURVMpOworICB2YXIgZm91bmQgPSBmYWxzZTsK
KyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bUF0dHJpYnM7ICsraWkpIHsKKyAgICB2YXIgaW5m
byA9IGdsLmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCBpaSk7CisgICAgaWYgKGluZm8ubmFtZSA9
PSAnYXR0cjAnKSB7CisgICAgICBmb3VuZCA9IHRydWU7CisgICAgICBhc3NlcnRNc2coaW5mby50
eXBlID09IHQuZ2xUeXBlLAorICAgICAgICAgICAgICAgICJ0eXBlIG11c3QgYmUgIiArIHd0dS5n
bEVudW1Ub1N0cmluZyhnbCwgdC5nbFR5cGUpICsgIiB3YXMgIiArCisgICAgICAgICAgICAgICAg
d3R1LmdsRW51bVRvU3RyaW5nKGdsLCBpbmZvLnR5cGUpKTsKKyAgICAgIGFzc2VydE1zZyhpbmZv
LnNpemUgPT0gdC5zaXplLAorICAgICAgICAgICAgICAgICJzaXplIG11c3QgYmUgIiArIHQuc2l6
ZSArICcgd2FzICcgKyBpbmZvLnNpemUpOworICAgIH0KKyAgfQorICBpZiAoIWZvdW5kKSB7Cisg
ICAgdGVzdEZhaWxlZCgiYXR0cmliICdhdHRyMCcgbm90IGZvdW5kIik7CisgIH0KK30KKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1s
PgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2dsLWdldC1hY3RpdmUtdW5pZm9ybS5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cHJvZ3JhbXMvZ2wtZ2V0LWFjdGl2ZS11bmlmb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc0NWZlZmQy
MGVlZjUwNWM3YWU3MWI4NWFhNDFkNzhiNGI5ODk2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dy
YW1zL2dsLWdldC1hY3RpdmUtdW5pZm9ybS5odG1sCkBAIC0wLDAgKzEsMTY2IEBACis8IS0tCisK
Ky8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBnZXRBY3RpdmVV
bmlmb3JtIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK3ZvaWQgbWFpbigp
Cit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsIDAsIDAsIDEpOworfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSAkdHlwZSB1bmlmb3JtMDsKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLCRhY2Nlc3MsMCwxKTsKK30KKzwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iZnNoYWRlckEiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7Cit1bmlmb3JtIGZsb2F0IHVuaWZvcm0wOwordm9pZCBtYWluKCkK
K3sKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAsdW5pZm9ybTAsMCwxKTsKK30KKzwvc2NyaXB0
PgorPHNjcmlwdCBpZD0iZnNoYWRlckIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit1bmlmb3JtIGZsb2F0IHVuaWZvcm0wOwordW5pZm9ybSBm
bG9hdCB1bmlmb3JtMTsKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgw
LHVuaWZvcm0wLHVuaWZvcm0xLDEpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJp
Y3QiOworZGVzY3JpcHRpb24oIlRlc3RzIGdldEFjdGl2ZVVuaWZvcm0gZm9yIHZhcmlvdXMgdHlw
ZXMiKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dCgiZXhhbXBsZSIpOworCit2YXIgdGVzdHMgPSBbCit7IGdsVHlwZTogZ2wuRkxPQVQs
ICAgICAgc2l6ZTogMSwgdHlwZTogJ2Zsb2F0JywgYWNjZXNzOiAndW5pZm9ybTAnfSwKK3sgZ2xU
eXBlOiBnbC5GTE9BVF9WRUMyLCBzaXplOiAxLCB0eXBlOiAndmVjMicsICBhY2Nlc3M6ICd1bmlm
b3JtMFsxXSd9LAoreyBnbFR5cGU6IGdsLkZMT0FUX1ZFQzMsIHNpemU6IDEsIHR5cGU6ICd2ZWMz
JywgIGFjY2VzczogJ3VuaWZvcm0wWzJdJ30sCit7IGdsVHlwZTogZ2wuRkxPQVRfVkVDNCwgc2l6
ZTogMSwgdHlwZTogJ3ZlYzQnLCAgYWNjZXNzOiAndW5pZm9ybTBbM10nfSwKK3sgZ2xUeXBlOiBn
bC5GTE9BVF9NQVQyLCBzaXplOiAxLCB0eXBlOiAnbWF0MicsICBhY2Nlc3M6ICd1bmlmb3JtMFsx
XVsxXSd9LAoreyBnbFR5cGU6IGdsLkZMT0FUX01BVDMsIHNpemU6IDEsIHR5cGU6ICdtYXQzJywg
IGFjY2VzczogJ3VuaWZvcm0wWzJdWzJdJ30sCit7IGdsVHlwZTogZ2wuRkxPQVRfTUFUMywgc2l6
ZTogMSwgdHlwZTogJ21hdDMnLCAgYWNjZXNzOiAndW5pZm9ybTBbMl1bMl0nfSwKK3sgZ2xUeXBl
OiBnbC5GTE9BVF9NQVQ0LCBzaXplOiAxLCB0eXBlOiAnbWF0NCcsICBhY2Nlc3M6ICd1bmlmb3Jt
MFszXVszXSd9LAoreyBnbFR5cGU6IGdsLklOVCwgICAgICAgIHNpemU6IDEsIHR5cGU6ICdpbnQn
LCAgIGFjY2VzczogJ2Zsb2F0KHVuaWZvcm0wKSd9LAoreyBnbFR5cGU6IGdsLklOVF9WRUMyLCAg
IHNpemU6IDEsIHR5cGU6ICdpdmVjMicsIGFjY2VzczogJ2Zsb2F0KHVuaWZvcm0wWzFdKSd9LAor
eyBnbFR5cGU6IGdsLklOVF9WRUMzLCAgIHNpemU6IDEsIHR5cGU6ICdpdmVjMycsIGFjY2Vzczog
J2Zsb2F0KHVuaWZvcm0wWzJdKSd9LAoreyBnbFR5cGU6IGdsLklOVF9WRUM0LCAgIHNpemU6IDEs
IHR5cGU6ICdpdmVjNCcsIGFjY2VzczogJ2Zsb2F0KHVuaWZvcm0wWzNdKSd9LAoreyBnbFR5cGU6
IGdsLkJPT0wsICAgICAgIHNpemU6IDEsIHR5cGU6ICdib29sJywgIGFjY2VzczogJ2Zsb2F0KHVu
aWZvcm0wKSd9LAoreyBnbFR5cGU6IGdsLkJPT0xfVkVDMiwgIHNpemU6IDEsIHR5cGU6ICdidmVj
MicsIGFjY2VzczogJ2Zsb2F0KHVuaWZvcm0wWzFdKSd9LAoreyBnbFR5cGU6IGdsLkJPT0xfVkVD
MywgIHNpemU6IDEsIHR5cGU6ICdidmVjMycsIGFjY2VzczogJ2Zsb2F0KHVuaWZvcm0wWzJdKSd9
LAoreyBnbFR5cGU6IGdsLkJPT0xfVkVDNCwgIHNpemU6IDEsIHR5cGU6ICdidmVjNCcsIGFjY2Vz
czogJ2Zsb2F0KHVuaWZvcm0wWzNdKSd9LAoreyBnbFR5cGU6IGdsLlNBTVBMRVJfMkQsCisgIHNp
emU6IDEsCisgIHR5cGU6ICdzYW1wbGVyMkQnLAorICBhY2Nlc3M6ICd0ZXh0dXJlMkQodW5pZm9y
bTAsIHZlYzIoMCwwKSkueCcKK30sCit7IGdsVHlwZTogZ2wuU0FNUExFUl9DVUJFLAorICBzaXpl
OiAxLAorICB0eXBlOiAnc2FtcGxlckN1YmUnLAorICBhY2Nlc3M6ICd0ZXh0dXJlQ3ViZSh1bmlm
b3JtMCwgdmVjMygwLDEsMCkpLngnCit9CitdOworCit2YXIgdnMgPSB3dHUubG9hZFNoYWRlckZy
b21TY3JpcHQoZ2wsICd2c2hhZGVyJywgZ2wuVkVSVEVYX1NIQURFUik7Cit2YXIgc291cmNlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZzaGFkZXInKS50ZXh0OworCitmdW5jdGlvbiBjcmVh
dGVQcm9ncmFtKHR5cGUsIGFjY2VzcykgeworICB2YXIgZnMgPSB3dHUubG9hZFNoYWRlcigKKyAg
ICAgIGdsLAorICAgICAgc291cmNlLnJlcGxhY2UoJyR0eXBlJywgdHlwZSkucmVwbGFjZSgnJGFj
Y2VzcycsIGFjY2VzcyksCisgICAgICBnbC5GUkFHTUVOVF9TSEFERVIpOworICB2YXIgcHJvZ3Jh
bSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFt2cywgZnNdKTsKKyAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIm5vIGVycm9ycyBmcm9tIHNldHVwIik7CisgIHJldHVybiBwcm9ncmFt
OworfQorCitmb3IgKHZhciB0dCA9IDA7IHR0IDwgdGVzdHMubGVuZ3RoOyArK3R0KSB7CisgIHZh
ciB0ID0gdGVzdHNbdHRdOworICB2YXIgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0odC50eXBlLCB0
LmFjY2Vzcyk7CisgIHZhciBudW1Vbmlmb3JtcyA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJv
Z3JhbSwgZ2wuQUNUSVZFX1VOSUZPUk1TKTsKKyAgdmFyIGZvdW5kID0gZmFsc2U7CisgIGZvciAo
dmFyIGlpID0gMDsgaWkgPCBudW1Vbmlmb3JtczsgKytpaSkgeworICAgIHZhciBpbmZvID0gZ2wu
Z2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCBpaSk7CisgICAgaWYgKGluZm8ubmFtZSA9PSAndW5p
Zm9ybTAnKSB7CisgICAgICBmb3VuZCA9IHRydWU7CisgICAgICBhc3NlcnRNc2coaW5mby50eXBl
ID09IHQuZ2xUeXBlLAorICAgICAgICAgICAgICAgICJ0eXBlIG11c3QgYmUgIiArIHd0dS5nbEVu
dW1Ub1N0cmluZyhnbCwgdC5nbFR5cGUpICsgIiB3YXMgIiArCisgICAgICAgICAgICAgICAgd3R1
LmdsRW51bVRvU3RyaW5nKGdsLCBpbmZvLnR5cGUpKTsKKyAgICAgIGFzc2VydE1zZyhpbmZvLnNp
emUgPT0gdC5zaXplLAorICAgICAgICAgICAgICAgICJzaXplIG11c3QgYmUgIiArIHQuc2l6ZSAr
ICcgd2FzICcgKyBpbmZvLnNpemUpOworICAgIH0KKyAgfQorICBpZiAoIWZvdW5kKSB7CisgICAg
dGVzdEZhaWxlZCgidW5pZm9ybSAndW5pZm9ybTAnIG5vdCBmb3VuZCIpOworICB9Cit9CisKK3Zh
ciBwMSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFt2cywgJ2ZzaGFkZXJBJ10pOworZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIm5vIGVycm9ycyBmcm9tIHByb2dyYW0gQSIpOwordmFy
IHAyID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgW3ZzLCAnZnNoYWRlckInXSk7CitnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAibm8gZXJyb3JzIGZyb20gcHJvZ3JhbSBCIik7Cit2YXIg
bDEgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocDEsICd1bmlmb3JtMCcpOworZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwgIm5vIGVycm9ycyBnZXR0aW5nIGxvY2F0aW9uIG9mIHVuaWZv
cm0wIHAxIik7Cit2YXIgbDIgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocDIsICd1bmlmb3JtMCcp
OworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIm5vIGVycm9ycyBnZXR0aW5nIGxv
Y2F0aW9uIG9mIHVuaWZvcm0wIHAyIik7CisKK2dsLnVzZVByb2dyYW0ocDIpOworZ2wudW5pZm9y
bTFmKGwyLCAxKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJubyBlcnJvcnMg
c2V0dGluZyB1bmlmb3JtIDAiKTsKK2dsLnVuaWZvcm0xZihsMSwgMik7CitnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAorICAgICAgICAgICAgICAgICJzZXR0aW5nIGEg
dW5pZm9ybSB1c2luZyBhIGxvY2F0aW9uIGZyb20gYW5vdGhlciBwcm9ncmFtIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1nZXRzaGFkZXJzb3VyY2UuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dy
YW1zL2dsLWdldHNoYWRlcnNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmYmUyMGVlZDBhZGIwMGUz
MmQ4MjM0YThmZTQ3ZDU4MDgzZWUzNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1n
ZXRzaGFkZXJzb3VyY2UuaHRtbApAQCAtMCwwICsxLDYxIEBACivvu788IS0tCisKKy8qCisqKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
CisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgIDx0aXRsZT5XZWJHTCBnZXRTaGFkZXJTb3VyY2Ug
Y29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQiIGhlaWdodD0iNCIgc3R5bGU9IndpZHRoOiA0MHB4OyBo
ZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC12ZXJ0ZXgiPmFiYy8vZGVm77yu77yv77y077yh77yz77yj77yp77ypPC9zY3JpcHQ+Cis8
c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNvdXJj
ZSB0aGF0IGdvZXMgaW50byBhIHNoYWRlciBpcyB3aGF0IGNvbWVzIG91dC4iKTsKK3ZhciB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUi
KTsKK3ZhciBvcmlnaW5hbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2c2hhZGVyIikudGV4
dDsKK3ZhciBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CitnbC5z
aGFkZXJTb3VyY2Uoc2hhZGVyLCBvcmlnaW5hbCk7Cit2YXIgc291cmNlID0gZ2wuZ2V0U2hhZGVy
U291cmNlKHNoYWRlcik7CitzaG91bGRCZSgic291cmNlIiwgIm9yaWdpbmFsIik7CitnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycy4iKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9nbC1zaGFkZXItdGVzdC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
Z2wtc2hhZGVyLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDJkZjk1OGQ2MTEzZjE0NThlMDgzZDRh
ZDg4ZWVkMmM2OTlmZWNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvZ2wtc2hhZGVyLXRl
c3QuaHRtbApAQCAtMCwwICsxLDExNiBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAy
MDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn
cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29w
eSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
IGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRB
QklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFU
RVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyov
CisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgU2hhZGVyTCBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kZXNrdG9wLWdsLWNvbnN0
YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQgaWQ9InZzIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK2F0dHJpYnV0ZSB2ZWM0
IHZQb3NpdGlvbjsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKK3ZvaWQgbWFpbigpIHsKKyAgICBn
bF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsKKyAgICB0ZXhDb29yZCA9IHZQb3NpdGlvbi54eSAqIDAu
NSArIDAuNTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZnMtZ3JlZW4iIHR5cGU9Ingtc2hh
ZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit2b2lkIG1haW4oKSB7
CisgICAgZ2xfRnJhZ0RhdGFbMF0gPSB2ZWM0KDAsIDEsIDAsIDEpOworfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJmcy1yZWQiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7Cit2b2lkIG1haW4oKSB7CisgICAgZ2xfRnJhZ0RhdGFbMF0gPSB2ZWM0
KDEsIDAsIDAsIDEpOworfQorPC9zY3JpcHQ+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIi
IGhlaWdodD0iMiI+IDwvY2FudmFzPgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGEgZmV3IHRoaW5ncyBhYm91dCBXZWJHTCBTaGFkZXJzLiIp
OworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2FudmFzLmdldENvbnRleHQiKTsKKwordmFyIHd0dSA9
IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiY2FudmFzIik7
CitpZiAoIWdsKSB7CisgIHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30g
ZWxzZSB7CisgIHRlc3RQYXNzZWQoImNvbnRleHQgZXhpc3RzIik7CisKKyAgZGVidWcoIiIpOwor
ICBkZWJ1ZygiQ2hlY2tpbmcgc2hhZGVycy4iKTsKKworICAvLyBDcmVhdGUgdGhlIHNoYWRlciBv
YmplY3QKKyAgdmFyIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihkZXNrdG9wR0xbJ0dFT01FVFJZ
X1NIQURFUl9BUkInXSk7CisgIGFzc2VydE1zZyhzaGFkZXIgPT0gbnVsbCwKKyAgICAgICAgICAg
ICJzaG91bGQgbm90IGJlIGFibGUgdG8gY3JlYXRlIEdFT01FVFJZIHNoYWRlciIpOworCisgIGNo
ZWNrRGVmZXJyZWRDb21wbGlhdGlvbigpCit9CisKK2Z1bmN0aW9uIGNoZWNrRGVmZXJyZWRDb21w
bGlhdGlvbigpIHsKKyAgdmFyIHZzID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIp
OworICBnbC5zaGFkZXJTb3VyY2UodnMsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2cyIpLnRl
eHQpOworICBnbC5jb21waWxlU2hhZGVyKHZzKTsKKyAgdmFyIGZzID0gZ2wuY3JlYXRlU2hhZGVy
KGdsLkZSQUdNRU5UX1NIQURFUik7CisgIC8vIENvbXBpbGUgdGhlIGdyZWVuIHNoYWRlcgorICBn
bC5zaGFkZXJTb3VyY2UoZnMsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcy1ncmVlbiIpLnRl
eHQpOworICBnbC5jb21waWxlU2hhZGVyKGZzKTsKKyAgLy8gTG9hZCB0aGUgcmVkIHNoYWRlciBz
b3VyY2UgYnV0IGRvIE5PVCBjb21waWxlIGl0CisgIGdsLnNoYWRlclNvdXJjZShmcywgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZzLXJlZCIpLnRleHQpOworICB2YXIgcCA9IGdsLmNyZWF0ZVBy
b2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHAsIHZzKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHAs
IGZzKTsKKyAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHAsIDAsICJ2UG9zaXRpb24iKTsKKyAgZ2wu
bGlua1Byb2dyYW0ocCk7CisgIGdsLnVzZVByb2dyYW0ocCk7CisgIHd0dS5zZXR1cFVuaXRRdWFk
KGdsLCAwLCAxKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgd3R1LmNoZWNrQ2FudmFzKGdsLCBb
MCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Cit9CisKK2RlYnVnKCIiKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvaW52YWxpZC1VVEYtMTYuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1z
L2ludmFsaWQtVVRGLTE2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJiNDU4M2E3YTFmOGMwNzFjMmM2MjQ4
ZWFlNTY5ZWFlY2I5NzIwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL2ludmFsaWQtVVRG
LTE2Lmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAy
MDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn
cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29w
eSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
IGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRB
QklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFU
RVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyov
CisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2Ny
aXB0aW9uKCdUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgaW50ZXJuYWwgY29udmVyc2lvbiBm
cm9tIFVURjE2IHRvIFVURjggaXMgcm9idXN0IHRvIGludmFsaWQgaW5wdXRzLiBBbnkgRE9NIGVu
dHJ5IHBvaW50IHdoaWNoIGNvbnZlcnRzIGFuIGluY29taW5nIHN0cmluZyB0byBVVEY4IGNvdWxk
IGJlIHVzZWQgZm9yIHRoaXMgdGVzdC4nKTsKKwordmFyIGFycmF5ID0gW107CithcnJheS5wdXNo
KFN0cmluZy5mcm9tQ2hhckNvZGUoMHg0OCkpOyAvLyBICithcnJheS5wdXNoKFN0cmluZy5mcm9t
Q2hhckNvZGUoMHg2OSkpOyAvLyBpCithcnJheS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMHhk
ODdlKSk7IC8vIEJvZ3VzCit2YXIgc3RyaW5nID0gYXJyYXkuam9pbignJyk7CisKKy8vIEluIG9y
ZGVyIHRvIG1ha2UgdGhpcyB0ZXN0IG5vdCBkZXBlbmQgb24gV2ViR0wsIHRoZSBmb2xsb3dpbmcg
d2VyZQorLy8gYXR0ZW1wdGVkOgorLy8gIC0gU2VuZCBhIHN0cmluZyB0byBjb25zb2xlLmxvZwor
Ly8gIC0gU3VibWl0IGEgbWFpbHRvOiBmb3JtIGNvbnRhaW5pbmcgYSB0ZXh0IGlucHV0IHdpdGgg
dGhlIGJvZ3VzCisvLyAgICBzdHJpbmcKKy8vIFRoZSBmaXJzdCBjb2RlIHBhdGggZG9lcyBub3Qg
cGVyZm9ybSBhIHV0ZjggY29udmVyc2lvbiBvZiB0aGUKKy8vIGluY29taW5nIHN0cmluZyB1bmxl
c3MgQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkgcmV0dXJucworLy8gdHJ1ZS4gVGhl
IHNlY29uZCBzZWVtcyB0byBzYW5pdGl6ZSB0aGUgZm9ybSdzIGlucHV0IGJlZm9yZQorLy8gY29u
dmVydGluZyBpdCB0byBhIFVURjggc3RyaW5nLgorCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0
ZVByb2dyYW0oKTsKK2dsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAwLCBzdHJpbmcpOwor
dGVzdFBhc3NlZCgiYmluZEF0dHJpYkxvY2F0aW9uIHdpdGggaW52YWxpZCBVVEYtMTYgZGlkIG5v
dCBjcmFzaCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvdXNlLXByb2dyYW0tY3Jhc2gt
d2l0aC1kaXNjYXJkLWluLWZyYWdtZW50LXNoYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvdXNlLXByb2dy
YW0tY3Jhc2gtd2l0aC1kaXNjYXJkLWluLWZyYWdtZW50LXNoYWRlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY4NDA5MDgwMTkxNTEzNzg0YjczMzdjOWI4OWJlOTk0OGZmYjA2MWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9wcm9ncmFtcy91c2UtcHJvZ3JhbS1jcmFzaC13aXRoLWRpc2NhcmQtaW4tZnJhZ21lbnQt
c2hhZGVyLmh0bWwKQEAgLTAsMCArMSwxMjYgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAo
YykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoq
IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwor
KiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoq
IE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMu
CisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIFByb2dyYW0gQ29uZm9ybWFuY2UgVGVzdHM8L3Rp
dGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3RvcC1nbC1j
b25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiI+IDwvY2FudmFzPgorPHNj
cmlwdCBpZD0idmVydGV4U2hhZGVyIiBsYW5ndWFnZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0
cmlidXRlIHZlYzQgQVRUUjA7Cit2b2lkIG1haW4oKQoreworICBnbF9Qb3NpdGlvbiA9IEFUVFIw
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFnbWVudFNoYWRlciIgbGFuZ3VhZ2U9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit2b2lkIG1haW4o
KQoreworICBmbG9hdCBfSW50ZW5zaXR5ID0gZXhwMihnbF9GcmFnQ29vcmQudyk7CisgIGlmIChf
SW50ZW5zaXR5IDwgMC41KSB7CisgICAgZGlzY2FyZDsKKyAgfQorICBnbF9GcmFnQ29sb3IgPSB2
ZWM0KDEuMCwgMC4wLCAwLjAsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0
cmljdCI7CitkZXNjcmlwdGlvbignUmVncmVzc2lvbiB0ZXN0IGZvciBjcmFzaCBpbiBNYWMgT1Mg
QU1EIE9wZW5HTCBkcml2ZXIgcmVsYXRlZCB0byB1c2Ugb2YgZGlzY2FyZCBpbiBmcmFnbWVudCBz
aGFkZXIuPGJyPjxicj5Nb3JlIHNwZWNpZmljYWxseSwgdHJpZ2dlcmluZyB0aGUgY3Jhc2ggc2Vl
bXMgdG8gcmVxdWlyZSBleGFtaW5hdGlvbiBvZiBnbF9GcmFnQ29vcmQudywgdXNlIG9mIGV4cDIs
IGFuZCBhIGNhbGwgdG8gZGlzY2FyZCBpbiB0aGUgZnJhZ21lbnQgc2hhZGVyLiBUaGFua3MgdG8g
U2hlaGVyeWFyIFpha2FyaWEgYW5kIE1pY2hhZWwgQnJhaXRod2FpdGUgYXQgVHVyYnVsZW56IGZv
ciB0aGUgb3JpZ2luYWwgdGVzdCBjYXNlLjxicj48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MzIiPldlYktpdCBidWcgNzM5MzI8L2E+PGJyPicpOwor
CitkZWJ1ZygiIik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoImNhbnZhcyIpOworaWYgKCFnbCkgeworICB0ZXN0RmFpbGVkKCJjb250
ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4
aXN0cyIpOworfQorCitkZWJ1ZygiIik7CisKK3ZhciB2ZXJ0ZXhTaGFkZXJTb3VyY2UgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidmVydGV4U2hhZGVyIikudGV4dDsKK3ZhciBmcmFnbWVudFNo
YWRlclNvdXJjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFnbWVudFNoYWRlciIpLnRl
eHQ7Cit2YXIgdmVydGV4U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIp
OworZ2wuc2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgdmVydGV4U2hhZGVyU291cmNlKTsKK2ds
LmNvbXBpbGVTaGFkZXIodmVydGV4U2hhZGVyKTsKK3ZhciBmcmFnbWVudFNoYWRlciA9IGdsLmNy
ZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOworZ2wuc2hhZGVyU291cmNlKGZyYWdtZW50
U2hhZGVyLCBmcmFnbWVudFNoYWRlclNvdXJjZSk7CitnbC5jb21waWxlU2hhZGVyKGZyYWdtZW50
U2hhZGVyKTsKK3ZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworZ2wuYXR0YWNoU2hh
ZGVyKHByb2dyYW0sIHZlcnRleFNoYWRlcik7CitnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJh
Z21lbnRTaGFkZXIpOworCitnbC5iaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgMCwgIkFUVFIw
Iik7CisKK2dsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworCit2YXIgbGlua2VkID0gZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyk7CitpZiAobGlua2VkKSB7Cisg
IHRlc3RQYXNzZWQoIlByb2dyYW0gbGlua2VkIHN1Y2Nlc3NmdWxseSIpOworfSBlbHNlIHsKKyAg
dGVzdEZhaWxlZCgiUHJvZ3JhbSBmYWlsZWQgdG8gbGluayIpOworfQorCisvLyBDcmFzaCBvY2N1
cnMgaGVyZSBvbiBhZmZlY3RlZCBtYWNoaW5lcworZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKKwor
Ly8gSW4gc29tZSBicm93c2Vycywgc3VjaCBhcyBDaHJvbWUsIHRoZSBhYm92ZSBjcmFzaCBvbmx5
IGNhdXNlcyBhCisvLyBsb3N0IGNvbnRleHQgZXZlbnQgdG8gYmUgZGlzcGF0Y2hlZCwgYW5kIG5v
dCBzeW5jaHJvbm91c2x5LiBUbyB2ZXJpZnkKKy8vIHRoYXQgZXZlcnl0aGluZyB3b3JrZWQsIGNs
ZWFyIGFuZCByZWFkIGJhY2sgdGhlIGZyYW1lIGJ1ZmZlci4KK2dsLmNsZWFyQ29sb3IoMS4wLCAw
LjAsIDAuMCwgMS4wKTsKK2dsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwordmFyIHBpeGVs
cyA9IG5ldyBVaW50OEFycmF5KDQpOworZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpOworaWYgKHBpeGVsc1swXSA9PSAyNTUgJiYKKyAg
ICBwaXhlbHNbMV0gPT0gMCAmJgorICAgIHBpeGVsc1syXSA9PSAwICYmCisgICAgcGl4ZWxzWzNd
ID09IDI1NSkgeworICB0ZXN0UGFzc2VkKCJ1c2VQcm9ncmFtLCBjbGVhciBhbmQgcmVhZGJhY2sg
ZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5Iik7Cit9IGVsc2UgeworICB0ZXN0RmFpbGVkKCJjb2xvciB3
YXMgKCIgKworICAgICAgICAgICBwaXhlbHNbMF0gKyAiLCAiICsgcGl4ZWxzWzFdICsgIiwgIiAr
IHBpeGVsc1syXSArICIsICIgKyBwaXhlbHNbM10gKworICAgICAgICAgICAiKSwgc2hvdWxkIGJl
ICgyNTUsIDAsIDAsIDI1NSkiKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>