<?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>38609</bug_id>
          
          <creation_ts>2010-05-05 14:43:07 -0700</creation_ts>
          <short_desc>Expose FileReader interface</short_desc>
          <delta_ts>2010-05-11 16:12:57 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>38615</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dimich</cc>
    
    <cc>kinuko</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221289</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-05 14:43:07 -0700</bug_when>
    <thetext>Need to add FileReader.idl to expose FileReader interface as defined in File API spec (http://www.w3.org/TR/file-upload/#dfn-filereader).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221373</commentid>
    <comment_count>1</comment_count>
      <attachid>55178</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-05 17:32:40 -0700</bug_when>
    <thetext>Created attachment 55178
Proposed Patch

This patch contains changes to JSC bindings only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221385</commentid>
    <comment_count>2</comment_count>
      <attachid>55181</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-05 17:42:32 -0700</bug_when>
    <thetext>Created attachment 55181
Proposed Patch

Updated the patch with &quot;--binary&quot; being used for the binary files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221955</commentid>
    <comment_count>3</comment_count>
      <attachid>55181</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 13:59:37 -0700</bug_when>
    <thetext>Comment on attachment 55181
Proposed Patch

Will resubmit after the code generator change (38687) is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222101</commentid>
    <comment_count>4</comment_count>
      <attachid>55329</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 18:15:05 -0700</bug_when>
    <thetext>Created attachment 55329
Proposed Patch

Updated the patch since we do not need any custom binding codes now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222104</commentid>
    <comment_count>5</comment_count>
      <attachid>55331</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 18:17:07 -0700</bug_when>
    <thetext>Created attachment 55331
Proposed Patch

Forgot to update WebCore/ChangeLog to remove unneeded files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222120</commentid>
    <comment_count>6</comment_count>
      <attachid>55331</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-05-06 19:20:39 -0700</bug_when>
    <thetext>Comment on attachment 55331
Proposed Patch

Looks great.

One thing - could you please organize the output of the test in such a way as to avoid the file-reader-expected.txt to be a binary file? If it is binary, it will be harder to see in various tools what will change in subsequent changes.
Also, it&apos;d be cool if the patch could pass EWS, less potential troubles this way.

r- to consider the expected file format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222506</commentid>
    <comment_count>7</comment_count>
      <attachid>55398</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-07 11:31:30 -0700</bug_when>
    <thetext>Created attachment 55398
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222510</commentid>
    <comment_count>8</comment_count>
      <attachid>55398</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-05-07 11:39:28 -0700</bug_when>
    <thetext>Comment on attachment 55398
Proposed Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224229</commentid>
    <comment_count>9</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-11 16:12:57 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/59162.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55178</attachid>
            <date>2010-05-05 17:32:40 -0700</date>
            <delta_ts>2010-05-05 17:42:32 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38609_2</filename>
            <type>text/plain</type>
            <size>42961</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2M2FiZWZmLi5kNzNjYzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDUt
MDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisK
KyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdGVzdCBiYXNpYyBGaWxlUmVhZGVyIG9wZXJh
dGlvbnMuCisgICAgICAgIEFsc28gdXBkYXRlIGxheW91dCB0ZXN0cyBhZmZlY3RlZCBieSBhZGRp
bmcgdGhlIGNvbnN0cnVjdG9ycyB0byBET01XaW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlcy9yZXNvdXJjZXMvVVRGMTZMRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL3Jlc291cmNlcy9VVEY4LUJPTS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXMv
cmVzb3VyY2VzL1VURjgudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNl
cy9lbXB0eS1maWxlOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBTa2lwIHRo
ZSBuZXcgdGVzdCBiZWNhdXNlIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyBpcyBub3Qg
c3VwcG9ydGVkIGluIGd0ayBwbGF0Zm9ybS4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OiBTa2lwIHRoZSBuZXcgdGVzdCBiZWNhdXNlIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxl
cyBpcyBub3Qgc3VwcG9ydGVkIGluIHF0IHBsYXRmb3JtLgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Ta2lwcGVkOiBTa2lwIHRoZSBuZXcgdGVzdCBiZWNhdXNlIGV2ZW50U2VuZGVyLmJlZ2luRHJh
Z1dpdGhGaWxlcyBpcyBub3Qgc3VwcG9ydGVkIGluIHdpbiBwbGF0Zm9ybS4KKwogMjAxMC0wNS0w
NSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSb2xsIG91
dCByNTg4MzAgZm9yIGJyZWFraW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggMWU5
MmQ0OS4uNzU1NzYyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC05MDAsOSArOTAwLDMyIEBA
IHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudCBbZnVuY3Rpb25dCiB3
aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgW2Z1bmN0aW9u
XQogd2luZG93LkZpbGUgW29iamVjdCBGaWxlQ29uc3RydWN0b3JdCiB3aW5kb3cuRmlsZS5wcm90
b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkJsb2IucHJvdG90eXBlXQord2luZG93LkZp
bGVFcnJvciBbb2JqZWN0IEZpbGVFcnJvckNvbnN0cnVjdG9yXQord2luZG93LkZpbGVFcnJvci5B
Qk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IuRU5DT0RJTkdfRVJSIFtudW1iZXJd
Cit3aW5kb3cuRmlsZUVycm9yLk5PVF9GT1VORF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJy
b3IuTk9UX1JFQURBQkxFX0VSUiBbbnVtYmVyXQord2luZG93LkZpbGVFcnJvci5OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IuU0VDVVJJVFlfRVJS
IFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZSBbb2JqZWN0IEZpbGVFcnJvclBy
b3RvdHlwZV0KK3dpbmRvdy5GaWxlRXJyb3IucHJvdG90eXBlLkFCT1JUX0VSUiBbbnVtYmVyXQor
d2luZG93LkZpbGVFcnJvci5wcm90b3R5cGUuRU5DT0RJTkdfRVJSIFtudW1iZXJdCit3aW5kb3cu
RmlsZUVycm9yLnByb3RvdHlwZS5OT1RfRk9VTkRfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVy
cm9yLnByb3RvdHlwZS5OT1RfUkVBREFCTEVfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9y
LnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KK3dpbmRvdy5G
aWxlRXJyb3IucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkZpbGVMaXN0
IFtvYmplY3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUg
W29iamVjdCBGaWxlTGlzdFByb3RvdHlwZV0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUuaXRl
bSBbZnVuY3Rpb25dCit3aW5kb3cuRmlsZVJlYWRlciBbb2JqZWN0IEZpbGVSZWFkZXJDb25zdHJ1
Y3Rvcl0KK3dpbmRvdy5GaWxlUmVhZGVyLnByb3RvdHlwZSBbb2JqZWN0IEZpbGVSZWFkZXJQcm90
b3R5cGVdCit3aW5kb3cuRmlsZVJlYWRlci5wcm90b3R5cGUuRE9ORSBbbnVtYmVyXQord2luZG93
LkZpbGVSZWFkZXIucHJvdG90eXBlLkVNUFRZIFtudW1iZXJdCit3aW5kb3cuRmlsZVJlYWRlci5w
cm90b3R5cGUuTE9BRElORyBbbnVtYmVyXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLmFi
b3J0IFtmdW5jdGlvbl0KK3dpbmRvdy5GaWxlUmVhZGVyLnByb3RvdHlwZS5yZWFkQXNCaW5hcnlT
dHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLnJlYWRBc0RhdGFV
UkwgW2Z1bmN0aW9uXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLnJlYWRBc1RleHQgW2Z1
bmN0aW9uXQogd2luZG93LkZvcm1EYXRhIFtvYmplY3QgRm9ybURhdGFDb25zdHJ1Y3Rvcl0KIHdp
bmRvdy5Gb3JtRGF0YS5wcm90b3R5cGUgW29iamVjdCBGb3JtRGF0YVByb3RvdHlwZV0KIHdpbmRv
dy5Gb3JtRGF0YS5wcm90b3R5cGUuYXBwZW5kIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNGI3YTYyZC4uMjk4MDVhYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTQ4LDcgKzQ4LDkgQEAgUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdFdmVudCcpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ0V2ZW50RXhjZXB0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRXZlbnRTb3VyY2UnKSBpcyAnb2JqZWN0Jwog
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxl
JykgaXMgJ29iamVjdCcKK1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnRmlsZUVycm9yJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRmlsZUxpc3QnKSBpcyAnb2JqZWN0Jwor
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxl
UmVhZGVyJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnRm9ybURhdGEnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdGdW5jdGlvbicpIGlzICdvYmpl
Y3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywg
J0hUTUxBbGxDb2xsZWN0aW9uJykgaXMgJ29iamVjdCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0
ZWQudHh0CmluZGV4IDY1MDlmMzcuLjA1NjNkNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLWV4cGVj
dGVkLnR4dApAQCAtNyw2ICs3LDggQEAgUEFTUyAobmV3IGlubmVyLkF1ZGlvKCkpLmlzSW5uZXIg
aXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkF1ZGlvKCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyAobmV3IGlubmVyLkRPTVBhcnNlcigpKS5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
KG5ldyBpbm5lci5ET01QYXJzZXIoKSkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNT
IChuZXcgaW5uZXIuRmlsZVJlYWRlcigpKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5l
ci5GaWxlUmVhZGVyKCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlu
bmVyLkZvcm1EYXRhKCkpLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkZvcm1EYXRh
KCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkltYWdlKCkp
LmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJv
dG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4IDc0MjVmOTguLjMxNzBjODYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyMyw2ICsyMjMsNyBAQCBOZXZlciBmb3VuZCBFbnRp
dHkKIE5ldmVyIGZvdW5kIEVudGl0eVJlZmVyZW5jZQogTmV2ZXIgZm91bmQgRmlsZQogTmV2ZXIg
Zm91bmQgRmlsZUxpc3QKK05ldmVyIGZvdW5kIEZpbGVSZWFkZXIKIE5ldmVyIGZvdW5kIEZvcm1E
YXRhCiBOZXZlciBmb3VuZCBIVE1MQWxsQ29sbGVjdGlvbgogTmV2ZXIgZm91bmQgSFRNTEJhc2VF
bGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCBiNDRiOWIyLi4zZmVlMGRmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQKQEAgLTg1LDggKzg1LDEyIEBAIFBBU1MgaW5uZXIuRXZlbnRTb3VyY2UuaXNJbm5lciBpcyB0
cnVlCiBQQVNTIGlubmVyLkV2ZW50U291cmNlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5GaWxlLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5GaWxlLmNvbnN0cnVj
dG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlRXJyb3IuaXNJbm5lciBpcyB0cnVl
CitQQVNTIGlubmVyLkZpbGVFcnJvci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
aW5uZXIuRmlsZUxpc3QuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkZpbGVMaXN0LmNvbnN0
cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlUmVhZGVyLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5GaWxlUmVhZGVyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5Gb3JtRGF0YS5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRm9ybURhdGEu
Y29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkhUTUxBbGxDb2xsZWN0aW9u
LmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxl
LXJlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTA0YzY4
CkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxl
LXJlYWRlci1leHBlY3RlZC50eHQgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVh
ZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VjMTYzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbApA
QCAtMCwwICsxLDIxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGlucHV0
IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGUiIGlkPSJmaWxlIiBvbmNoYW5nZT0ib25JbnB1dEZpbGVD
aGFuZ2UoKSIgbXVsdGlwbGU+Cis8cHJlIGlkPSdjb25zb2xlJz48L3ByZT4KKworPHNjcmlwdD4K
K3ZhciB0ZXN0Q2FzZXMgPSBbCisgICAgInRlc3RSZWFkaW5nTm9uRXhpc3RlbnRGaWxlIiwKKyAg
ICAidGVzdFJlYWRpbmdFbXB0eUZpbGVBc0JpbmFyeVN0cmluZyIsCisgICAgInRlc3RSZWFkaW5n
RW1wdHlGaWxlQXNUZXh0IiwKKyAgICAidGVzdFJlYWRpbmdFbXB0eUZpbGVBc0RhdGFVUkwiLAor
ICAgICJ0ZXN0UmVhZGluZ1VURjhFbmNvZGVkRmlsZUFzQmluYXJ5U3RyaW5nIiwKKyAgICAidGVz
dFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc1RleHQiLAorICAgICJ0ZXN0UmVhZGluZ1VURjE2QkVC
T01FbmNvZGVkRmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFkaW5nVVRGMTZMRUJPTUVuY29kZWRG
aWxlQXNUZXh0IiwKKyAgICAidGVzdFJlYWRpbmdVVEY4Qk9NRW5jb2RlZEZpbGVBc1RleHQiLAor
ICAgICJ0ZXN0UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFk
aW5nVVRGMTZCRUVuY29kZWRGaWxlQXNUZXh0V2l0aFVURjE2RW5jb2RpbmciLAorICAgICJ0ZXN0
UmVhZGluZ1VURjhFbmNvZGVkRmlsZUFzRGF0YVVSTCIsCisgICAgInRlc3RNdWx0aXBsZVJlYWRz
IiwKK107Cit2YXIgdGVzdEluZGV4ID0gMDsKKwordmFyIHRlc3RGaWxlSW5mb0xpc3QgPSBbCisg
ICAgeyAnbmFtZSc6ICdub24tZXhpc3RlbnQnLCAncGF0aCc6ICdyZXNvdXJjZXMvbm9uLWV4aXN0
ZW50JyB9LAorICAgIHsgJ25hbWUnOiAnZW1wdHktZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9l
bXB0eS1maWxlJyB9LAorICAgIHsgJ25hbWUnOiAnVVRGOC1maWxlJywgJ3BhdGgnOiAncmVzb3Vy
Y2VzL1VURjgudHh0JyB9LAorICAgIHsgJ25hbWUnOiAnVVRGMTZCRS1CT00tZmlsZScsICdwYXRo
JzogJ3Jlc291cmNlcy9VVEYxNkJFLUJPTS50eHQnIH0sCisgICAgeyAnbmFtZSc6ICdVVEYxNkxF
LUJPTS1maWxlJywgJ3BhdGgnOiAncmVzb3VyY2VzL1VURjE2TEUtQk9NLnR4dCcgfSwKKyAgICB7
ICduYW1lJzogJ1VURjgtQk9NLWZpbGUnLCAncGF0aCc6ICdyZXNvdXJjZXMvVVRGOC1CT00udHh0
JyB9LAorICAgIHsgJ25hbWUnOiAnVVRGMTZCRS1maWxlJywgJ3BhdGgnOiAncmVzb3VyY2VzL1VU
RjE2QkUudHh0JyB9LAorXTsKK3ZhciB0ZXN0RmlsZXMgPSB7IH07CisKK2Z1bmN0aW9uIGxvZyht
ZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKK30KKworZnVu
Y3Rpb24gY3JlYXRlRmlsZVJlYWRlcigpCit7CisgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVh
ZGVyKCk7CisKKyAgICByZWFkZXIub25sb2Fkc3RhcnQgPSBsb2FkU3RhcnRlZDsKKyAgICByZWFk
ZXIub25sb2FkID0gbG9hZGVkOworICAgIHJlYWRlci5vbmFib3J0ID0gbG9nRXZlbnQ7CisgICAg
cmVhZGVyLm9ubG9hZGVuZCA9IGxvYWRFbmRlZDsKKyAgICByZWFkZXIub25lcnJvciA9IGxvYWRG
YWlsZWQ7CisKKyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyByZWFkZXIucmVhZHlTdGF0ZSk7Cisg
ICAgcmV0dXJuIHJlYWRlcjsKK30KKworZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpCit7CisgICAg
bG9nKCJSZWNlaXZlZCAiICsgZXZlbnQudHlwZSArICIgZXZlbnQiKTsKK30KKworZnVuY3Rpb24g
bG9hZFN0YXJ0ZWQoZXZlbnQpCit7CisgICAgbG9nRXZlbnQoZXZlbnQpOworICAgIGxvZygicmVh
ZHlTdGF0ZTogIiArIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlKTsKK30KKworZnVuY3Rpb24gbG9h
ZGVkKGV2ZW50KQoreworICAgIGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBsb2coInJlYWR5U3RhdGU6
ICIgKyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSk7CisgICAgbG9nKCJyZXN1bHQgc2l6ZTogIiAr
IGV2ZW50LnRhcmdldC5yZXN1bHQubGVuZ3RoKTsKKyAgICBsb2coInJlc3VsdDogIiArIGV2ZW50
LnRhcmdldC5yZXN1bHQpOworfQorCitmdW5jdGlvbiBsb2FkRmFpbGVkKGV2ZW50KQoreworICAg
IGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSk7CisgICAgbG9nKCJlcnJvciBjb2RlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9y
LmNvZGUpOworfQorCitmdW5jdGlvbiBsb2FkRW5kZWQoZXZlbnQpCit7CisgICAgbG9nRXZlbnQo
ZXZlbnQpOworICAgIHJ1bk5leHRUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9uSW5wdXRGaWxlQ2hh
bmdlKCkKK3sKKyAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZSIp
LmZpbGVzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspCisgICAg
ICAgIHRlc3RGaWxlc1t0ZXN0RmlsZUluZm9MaXN0W2ldWyduYW1lJ11dID0gZmlsZXNbaV07CisK
KyAgICBydW5OZXh0VGVzdCgpOworfQorCitmdW5jdGlvbiBydW5OZXh0VGVzdCgpCit7CisgICAg
aWYgKHRlc3RJbmRleCA8IHRlc3RDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgdGVzdEluZGV4Kys7
CisgICAgICAgIHdpbmRvd1t0ZXN0Q2FzZXNbdGVzdEluZGV4IC0gMV1dKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ05vbkV4aXN0ZW50RmlsZSgpCit7Cisg
ICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBub24tZXhpc3RlbnQgZmlsZSIpOworICAgIHZhciByZWFk
ZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0
ZXN0RmlsZXNbJ25vbi1leGlzdGVudCddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdFbXB0
eUZpbGVBc0JpbmFyeVN0cmluZygpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYW4gZW1wdHkg
ZmlsZSBhcyBiaW5hcnkgc3RyaW5nIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFk
ZXIoKTsKKyAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlc1snZW1wdHktZmls
ZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdFbXB0eUZpbGVBc1RleHQoKQoreworICAg
IGxvZygiVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFk
ZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVz
WydlbXB0eS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ0VtcHR5RmlsZUFzRGF0
YVVSTCgpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBhcyBkYXRhIFVS
TCIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJl
YWRBc0RhdGFVUkwodGVzdEZpbGVzWydlbXB0eS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0
UmVhZGluZ1VURjhFbmNvZGVkRmlsZUFzQmluYXJ5U3RyaW5nKCkKK3sKKyAgICBsb2coIlRlc3Qg
cmVhZGluZyBhIFVURi04IGZpbGUgYXMgYmluYXJ5IHN0cmluZyIpOworICAgIHZhciByZWFkZXIg
PSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0ZXN0
RmlsZXNbJ1VURjgtZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEY4RW5jb2Rl
ZEZpbGVBc1RleHQoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTggZmlsZSBhcyB0
ZXh0Iik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIu
cmVhZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjgtZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJl
YWRpbmdVVEYxNkJFQk9NRW5jb2RlZEZpbGVBc1RleHQoKQoreworICAgIGxvZygiVGVzdCByZWFk
aW5nIGEgVVRGLTE2QkUgQk9NIGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBjcmVh
dGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEYxNkJF
LUJPTS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjE2TEVCT01FbmNvZGVk
RmlsZUFzVGV4dCgpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtMTZMRSBCT00gZmls
ZSBhcyB0ZXh0Iik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICBy
ZWFkZXIucmVhZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjE2TEUtQk9NLWZpbGUnXSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RSZWFkaW5nVVRGOEJPTUVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2co
IlRlc3QgcmVhZGluZyBhIFVURi04IEJPTSBmaWxlIGFzIHRleHQiKTsKKyAgICB2YXIgcmVhZGVy
ID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1sn
VVRGOC1CT00tZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEYxNkJFRW5jb2Rl
ZEZpbGVBc1RleHQoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTE2QkUgZmlsZSBh
cyB0ZXh0IHdpdGggZGVmYXVsdCBlbmNvZGluZyIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVG
aWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEYxNkJFLWZp
bGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGMTZCRUVuY29kZWRGaWxlQXNUZXh0
V2l0aFVURjE2RW5jb2RpbmcoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTE2QkUg
ZmlsZSBhcyB0ZXh0IHdpdGggVVRGLTE2QkUgZW5jb2RpbmciKTsKKyAgICB2YXIgcmVhZGVyID0g
Y3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRG
MTZCRS1maWxlJ10sICJVVEYtMTZCRSIpOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjhF
bmNvZGVkRmlsZUFzRGF0YVVSTCgpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtOCBm
aWxlIGFzIGRhdGEgVVJMIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsK
KyAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0ZXN0RmlsZXNbJ1VURjgtZmlsZSddKTsKK30KKwor
ZnVuY3Rpb24gdGVzdE11bHRpcGxlUmVhZHMoKQoreworICAgIGxvZygiVGVzdCBjYWxsaW5nIG11
bHRpcGxlIHJlYWQgbWV0aG9kcyBhbmQgb25seSBsYXN0IG9uZSBpcyBwcm9jZXNzZWQiKTsKKyAg
ICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNCaW5h
cnlTdHJpbmcodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQo
dGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7CisgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwodGVzdEZp
bGVzWydVVEY4LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkKK3sKKyAgICB2YXIg
cGF0aHNPbmx5ID0gdGVzdEZpbGVJbmZvTGlzdC5tYXAoZnVuY3Rpb24oZmlsZVNwZWMpIHsgcmV0
dXJuIGZpbGVTcGVjWydwYXRoJ107IH0pOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhG
aWxlcyhwYXRoc09ubHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwLCAxMCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdHM7
Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjE2QkUtQk9NLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXMvcmVzb3VyY2VzL1VURjE2QkUtQk9NLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NWJjN2YzCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0IGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wYzgxNDQ2CkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS50eHQgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRhYjU5ZQpCaW5hcnkgZmlsZXMgL2Rldi9udWxs
IGFuZCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjE2TEUtQk9NLnR4dCBk
aWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgt
Qk9NLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgtQk9NLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTczMjNmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC1CT00udHh0CkBAIC0w
LDAgKzEgQEAKK++7v0hlbGxvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEY4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41YWIyZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlcy9yZXNvdXJjZXMvVVRGOC50eHQKQEAgLTAsMCArMSBAQAorSGVsbG8KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291
cmNlcy9lbXB0eS1maWxlIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvZW1wdHkt
ZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApp
bmRleCA0OTg3YzY0Li5jNTI3ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMv
Z2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTQyLDcgKzQyLDkgQEAgUEFTUyBF
bnRpdHlSZWZlcmVuY2UudG9TdHJpbmcoKSBpcyAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25z
dHJ1Y3Rvcl0nCiBQQVNTIEV2ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRXZlbnRDb25zdHJ1
Y3Rvcl0nCiBQQVNTIEV2ZW50RXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRXZlbnRF
eGNlcHRpb25Db25zdHJ1Y3Rvcl0nCiBQQVNTIEZpbGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBG
aWxlQ29uc3RydWN0b3JdJworUEFTUyBGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAnW29iamVjdCBG
aWxlRXJyb3JDb25zdHJ1Y3Rvcl0nCiBQQVNTIEZpbGVMaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0nCitQQVNTIEZpbGVSZWFkZXIudG9TdHJpbmcoKSBpcyAn
W29iamVjdCBGaWxlUmVhZGVyQ29uc3RydWN0b3JdJwogUEFTUyBGb3JtRGF0YS50b1N0cmluZygp
IGlzICdbb2JqZWN0IEZvcm1EYXRhQ29uc3RydWN0b3JdJwogUEFTUyBIVE1MQWxsQ29sbGVjdGlv
bi50b1N0cmluZygpIGlzICdbb2JqZWN0IEhUTUxBbGxDb2xsZWN0aW9uQ29uc3RydWN0b3JdJwog
UEFTUyBIVE1MQW5jaG9yRWxlbWVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IEhUTUxBbmNob3JF
bGVtZW50Q29uc3RydWN0b3JdJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBiMDg0NzY0
Li4yY2E1NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMzQyOSw2ICszNDI5LDcg
QEAgaHR0cC90ZXN0cy9sb2NhbC9zZW5kLWRyYWdnZWQtZmlsZS5odG1sCiBodHRwL3Rlc3RzL2xv
Y2FsL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1k
YXRhL3NlbmQtZm9ybS1kYXRhLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1m
b3JtLWRhdGEtd2l0aC1zbGljZWQtZmlsZS5odG1sCitmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0
bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1zZWVrLmh0bWwKIGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNl
ZWthYmxlLXN0YWxsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDllYzM5MDkuLjhi
NTMxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMzUyLDYgKzM1Miw3IEBAIGZhc3Qv
Zm9ybXMvZ2V0LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQtZmlsZS1yZS1yZW5k
ZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1maWxlLWNyYXNoLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5odG1sCitmYXN0L2ZpbGVzL2Zp
bGUtcmVhZGVyLmh0bWwKIAogIyBNaXNzaW5nIGRyYWcgJiBkcm9wIGZ1bmN0aW9uYWxpdHkgaW4g
RFJUCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1pbnB1dHRleHQtYWNxdWlyZXMtc3R5bGUuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAwYWZkOTY4Li4xNDJjNmY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMjAwLDYgKzIwMCw3IEBAIGZhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJv
YXJkLWZpbGUtYWNjZXNzLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctZmlsZS1jcmFzaC5odG1sCiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKK2Zhc3QvZmlsZXMv
ZmlsZS1yZWFkZXIuaHRtbAogCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJl
bmRlclRyZWUgdG8gdGVzdCBJRE4gPHJkYXI6Ly9wcm9ibGVtLzUzMDE5NTQ+CiBmYXN0L2VuY29k
aW5nL2lkbi1zZWN1cml0eS5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMzMzlhMmQuLjkxNmY1YTQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MTAtMDUtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVy
ZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
NjA5CisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3c6OmZpbGVSZWFkZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0ZpbGVF
cnJvci5pZGw6CisgICAgICAgICogaHRtbC9GaWxlUmVhZGVyLmlkbDogQWRkZWQuCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEwLTA1LTA1ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGwgb3V0IHI1ODgzMCBmb3IgYnJlYWtpbmcg
dGVzdHMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwppbmRleCA4ODFjNzg4Li4wNzUwZmI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTUwLDggKzUwLDggQEAgRU5BQkxFX0RBVEFMSVNU
ID0gRU5BQkxFX0RBVEFMSVNUOwogRU5BQkxFX0RPTV9TVE9SQUdFID0gRU5BQkxFX0RPTV9TVE9S
QUdFOwogRU5BQkxFX0VWRU5UU09VUkNFID0gRU5BQkxFX0VWRU5UU09VUkNFOwogRU5BQkxFX0ZJ
TFRFUlMgPSBFTkFCTEVfRklMVEVSUzsKLUVOQUJMRV9GSUxFX1JFQURFUiA9IDsKLUVOQUJMRV9G
SUxFX1dSSVRFUiA9IDsKK0VOQUJMRV9GSUxFX1JFQURFUiA9IEVOQUJMRV9GSUxFX1JFQURFUjsK
K0VOQUJMRV9GSUxFX1dSSVRFUiA9IEVOQUJMRV9GSUxFX1dSSVRFUjsKIEVOQUJMRV9HRU9MT0NB
VElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0UgPSBFTkFCTEVf
SUNPTkRBVEFCQVNFOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmlu
ZGV4IGM4YmUzM2YuLmY2NmM4NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAj
aW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFcnJvci5jcHAiCiAjaW5jbHVk
ZSAiSlNGaWxlTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNGaWxlUmVhZGVyLmNwcCIKICNpbmNsdWRl
ICJKU0dlb2xvY2F0aW9uLmNwcCIKICNpbmNsdWRlICJKU0dlb3Bvc2l0aW9uLmNwcCIKICNpbmNs
dWRlICJKU0hpc3RvcnkuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDc2ZDYyMmEuLmY0MTYzNTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAg
ICBGaWxlIFwKICAgICBGaWxlRXJyb3IgXAogICAgIEZpbGVMaXN0IFwKKyAgICBGaWxlUmVhZGVy
IFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2VvcG9zaXRpb24gXAogICAgIEhUTUxBbGxDb2xs
ZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCmluZGV4IDA1ODFkYWUuLjNiMWYyZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMzMwLDYgKzMzMCw3IEBAIElETF9C
SU5ESU5HUyArPSBcCiAgICAgaHRtbC9GaWxlLmlkbCBcCiAgICAgaHRtbC9GaWxlRXJyb3IuaWRs
IFwKICAgICBodG1sL0ZpbGVMaXN0LmlkbCBcCisgICAgaHRtbC9GaWxlUmVhZGVyLmlkbCBcCiAg
ICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRNTEF1ZGlvRWxlbWVu
dC5pZGwgXAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI5YmM4MjMuLmNhMTA3MDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzc1Nyw2ICszNzU3LDE0IEBACiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlUmVhZGVyLmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlUmVhZGVy
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2Vv
bG9jYXRpb24uY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTM2NjM5
LDYgKzM2NjQ3LDE4IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5jcHAi
DQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcanNcSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U0ZpbGVSZWFkZXJDdXN0b20uY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxl
DQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTR2VvbG9jYXRpb25DdXN0b20u
Y3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA0NTBjM2ZkLi5kMzQ4MmNjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjU3LDYgKzY1NywxMyBAQAogCQkyRTQzNDY1
NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU2MEY1
NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi87IH07CiAJCTJFNDM0NjU5
MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJBIC8q
IENyb3NzVGhyZWFkQ29waWVyLmggKi87IH07CisJCTJFOTRGNDMwMTE5MjA2MUIwMEI3Rjc1RCAv
KiBKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQyRDExOTIwNjFCMDBCN0Y3NUQgLyogSlNGaWxlUmVh
ZGVyQ29uc3RydWN0b3IuY3BwICovOyB9OworCQkyRTk0RjQzMTExOTIwNjFCMDBCN0Y3NUQgLyog
SlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFOTRGNDJFMTE5MjA2MUIwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXJD
b25zdHJ1Y3Rvci5oICovOyB9OworCQkyRTk0RjQzMjExOTIwNjFCMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFOTRGNDJGMTE5MjA2MUIwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXJDdXN0b20uY3Bw
ICovOyB9OworCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDM5MTE5
MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovOyB9OworCQkyRTk0RjQzQzExOTIw
N0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVh
ZGVyLmggKi87IH07CisJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGM0NC
MTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCAqLzsgfTsKKwkJMkU5NEY0NTExMTky
MDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGM0NDMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVy
LmggKi87IH07CiAJCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAq
LzsgfTsKIAkJMkVBRkFGMEUxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBRkFGMEIxMEUyQUYyRDAwN0VE
M0Q2IC8qIEJsb2IuY3BwICovOyB9OwogCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYgLyogQmxv
Yi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBRkFG
MEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLzsgfTsKQEAgLTYwOTgsNiArNjEwNSwxMiBA
QAogCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU5NEYzQ0IxMThCOTA4RTAwQjdGNzVEIC8qIEZpbGVS
ZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVJlYWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGM0NDMTE4QjkwOEUwMEI3
Rjc1RCAvKiBGaWxlUmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5NEY0MjcxMTkyMDVC
MzAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZpbGVS
ZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQyRDExOTIwNjFC
MDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQyRTExOTIwNjFCMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyQ29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNG
aWxlUmVhZGVyQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5
NEY0MkYxMTkyMDYxQjAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVSZWFkZXJDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQzOTExOTIwN0RBMDBCN0Y3NUQgLyogSlNG
aWxlUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmls
ZVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTRGNDNBMTE5MjA3
REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNGaWxlUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2
ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBh
dGggPSB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMwODEsNiArMTMwOTQsNyBAQAogCQkJCUJDMTg4MURDMEUwOEM1NDMwMDA0OEMx
MyAvKiBGaWxlTGlzdC5pZGwgKi8sCiAJCQkJMkU5NEYzQ0IxMThCOTA4RTAwQjdGNzVEIC8qIEZp
bGVSZWFkZXIuY3BwICovLAogCQkJCTJFOTRGM0NDMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVh
ZGVyLmggKi8sCisJCQkJMkU5NEY0MjcxMTkyMDVCMzAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaWRs
ICovLAogCQkJCTg5NTI1M0Q0MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtLmNwcCAqLywK
IAkJCQk4OTUyNTNENTExNkM0QzY4MDBDQUJGMDAgLyogRmlsZVN0cmVhbS5oICovLAogCQkJCTg5
NTI1M0Q2MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi8sCkBAIC0xMzQz
MSw2ICsxMzQ0NSw4IEBACiAJCQkJMkUzQkMwQzkxMTdEM0UwODAwQjk0MDlBIC8qIEpTRmlsZUVy
cm9yLmggKi8sCiAJCQkJQkMwMEYwMTIwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZUxpc3QuY3Bw
ICovLAogCQkJCUJDMDBGMDEzMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmggKi8sCisJ
CQkJMkU5NEY0MzkxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi8sCisJCQkJ
MkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovLAogCQkJCUJDOTdF
NDEwMTA5MTU0RkEwMDEwRDM2MSAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmNwcCAqLywKIAkJCQlC
Qzk3RTQxMTEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oICovLAogCQkJ
CTFBNEEyREVCMEExQjg1MkEwMEM4MDdGOCAvKiBKU0hUTUxBbmNob3JFbGVtZW50LmNwcCAqLywK
QEAgLTE1MDcxLDYgKzE1MDg3LDkgQEAKIAkJCQk2NTJGQkJCQjBERTI3Q0I2MDAwMUQzODYgLyog
SlNET01XaW5kb3dDdXN0b20uaCAqLywKIAkJCQlCQzJFRDU1NDBDNkI5QkQzMDA5MjBCRkYgLyog
SlNFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGQUY0RDBDMzE3RTY5MDBGQTgxRjYgLyog
SlNFdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJMkU5NEY0MkQxMTkyMDYxQjAwQjdGNzVEIC8qIEpT
RmlsZVJlYWRlckNvbnN0cnVjdG9yLmNwcCAqLywKKwkJCQkyRTk0RjQyRTExOTIwNjFCMDBCN0Y3
NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCAqLywKKwkJCQkyRTk0RjQyRjExOTIwNjFC
MDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcCAqLywKIAkJCQlGRTgwRDdBNjBFOUMx
RUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFN0IxOTIw
RDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM5N0U0MkIx
MDkxNUIwNjAwMTBEMzYxIC8qIEpTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwICovLApAQCAt
MTg5NTMsNiArMTg5NzIsOSBAQAogCQkJCUI1OURENkExMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTUx
MTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTJFOTRGNDMxMTE5MjA2MUIwMEI3Rjc1RCAvKiBK
U0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkU5NEY0M0MxMTky
MDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkU5NEY0
NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjEx
OTUsNiArMjEyMTcsMTAgQEAKIAkJCQlCNTlERDZBMjExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2QTYx
MTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjU5REQ2QUExMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk0RjQzMDExOTIwNjFCMDBCN0Y3NUQg
LyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU5NEY0
MzIxMTkyMDYxQjAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAppbmRleCAwNWVhOWIxLi5mMDVlNDk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNp
bmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50U291cmNlQ29uc3Ry
dWN0b3IuaCIKKyNpbmNsdWRlICJKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUg
IkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJKU0hpc3RvcnkuaCIKICNpbmNsdWRlICJK
U0ltYWdlQ29uc3RydWN0b3IuaCIKQEAgLTY2MCw2ICs2NjEsMTMgQEAgSlNWYWx1ZSBKU0RPTVdp
bmRvdzo6d2ViU29ja2V0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKEZJTEVfUkVBREVSKQorSlNWYWx1ZSBKU0RPTVdpbmRvdzo6ZmlsZVJlYWRlcihFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRmls
ZVJlYWRlckNvbnN0cnVjdG9yPihleGVjLCB0aGlzKTsKK30KKyNlbmRpZgorCiAvLyBDdXN0b20g
ZnVuY3Rpb25zCiAKIC8vIEhlbHBlciBmb3Igd2luZG93Lm9wZW4oKSBhbmQgd2luZG93LnNob3dN
b2RhbERpYWxvZygpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJn
ZXQuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAppbmRleCA2ZWEx
MTM1Li45NDg4ODliIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJn
ZXQuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKQEAgLTgz
LDYgKzgzLDExIEBACiAjaW5jbHVkZSAiV2ViU29ja2V0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShGSUxFX1JFQURFUikKKyNpbmNsdWRlICJKU0ZpbGVSZWFkZXIuaCIKKyNpbmNsdWRlICJGaWxl
UmVhZGVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTQ5LDYgKzE1NCwxMSBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFyZwogICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCB3ZWJTb2NrZXQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
RklMRV9SRUFERVIpCisgICAgaWYgKEZpbGVSZWFkZXIqIGZpbGVSZWFkZXIgPSB0YXJnZXQtPnRv
RmlsZVJlYWRlcigpKQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGZp
bGVSZWFkZXIpOworI2VuZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4ganNOdWxsKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJl
YWRlckNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ29u
c3RydWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMDc0ODUK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckNvbnN0
cnVjdG9yLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKEZJTEVfUkVBREVSKQorCisjaW5jbHVkZSAiSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCIK
KworI2luY2x1ZGUgIkZpbGVSZWFkZXIuaCIKKyNpbmNsdWRlICJKU0ZpbGVSZWFkZXIuaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IpOworCitjb25z
dCBDbGFzc0luZm8gSlNGaWxlUmVhZGVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZpbGVSZWFk
ZXJDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKKworSlNGaWxlUmVhZGVyQ29uc3RydWN0b3I6OkpT
RmlsZVJlYWRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKKyAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpTRmlsZVJlYWRlckNv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUo
KSksIGdsb2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgSlNGaWxlUmVhZGVyUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVj
dCksIE5vbmUpOworfQorCitzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdEZpbGVSZWFkZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmKQorewor
ICAgIEpTRmlsZVJlYWRlckNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8
SlNGaWxlUmVhZGVyQ29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7CisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMs
IFJlZmVyZW5jZUVycm9yLCAiRmlsZVJlYWRlciBjb25zdHJ1Y3RvciBhc3NvY2lhdGVkIGRvY3Vt
ZW50IGlzIHVuYXZhaWxhYmxlIik7CisKKyAgICBSZWZQdHI8RmlsZVJlYWRlcj4gZmlsZVJlYWRl
ciA9IEZpbGVSZWFkZXI6OmNyZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9P
QkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgRmlsZVJl
YWRlciwgZmlsZVJlYWRlci5nZXQoKSk7Cit9CisKK0NvbnN0cnVjdFR5cGUgSlNGaWxlUmVhZGVy
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKK3sKKyAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEZpbGVS
ZWFkZXI7CisgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9SRUFERVIpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckNvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRmlsZVJlYWRlckNvbnN0cnVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYjZmZTc5MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKyNpZm5kZWYg
SlNGaWxlUmVhZGVyQ29uc3RydWN0b3JfaAorI2RlZmluZSBKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rv
cl9oCisKKyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CisgIHB1YmxpYzoKKyAgICBKU0ZpbGVS
ZWFkZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Cisg
ICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKworICBwcml2YXRlOgorICAg
IHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1
Y3REYXRhJik7CisgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkg
Y29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfUkVBREVSKQorCisjZW5kaWYgLy8gSlNGaWxlUmVhZGVy
Q29uc3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVSZWFk
ZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMGM4ZmEKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3RvbS5jcHAKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShGSUxFX1JFQURFUikK
KworI2luY2x1ZGUgIkpTRmlsZVJlYWRlci5oIgorCisjaW5jbHVkZSAiRmlsZVJlYWRlci5oIgor
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgor
Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUg
SlNGaWxlUmVhZGVyOjpyZXN1bHQoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJldHVy
biBqc093bmVkU3RyaW5nT3JOdWxsKGV4ZWMsIGltcGwoKS0+cmVzdWx0KCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9SRUFERVIpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZUVycm9yLmlkbCBiL1dlYkNvcmUvaHRtbC9GaWxlRXJy
b3IuaWRsCmluZGV4IDZjMmIwOGMuLmFkYzI1ZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9G
aWxlRXJyb3IuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlRXJyb3IuaWRsCkBAIC0zMiw4ICsz
MiwxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9RklMRV9SRUFERVJ8RklMRV9XUklURVIKICAgICBdIEZpbGVFcnJvciB7CisjaWYgIWRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUiA9IDc7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IE5PVF9GT1VORF9FUlIgPSA4OworI2VuZGlmCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFNFQ1VSSVRZX0VSUiA9IDE4OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBQk9S
VF9FUlIgPSAyMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX1JFQURBQkxFX0VS
UiA9IDI0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIuaWRsIGIvV2ViQ29y
ZS9odG1sL0ZpbGVSZWFkZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjAzZDg1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZVJlYWRlci5pZGwK
QEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
Q29uZGl0aW9uYWw9RklMRV9SRUFERVIsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAorICAg
ICAgICBFdmVudFRhcmdldCwKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMKKyAgICBdIEZpbGVSZWFk
ZXIgeworICAgICAgICAvLyByZWFkeSBzdGF0ZXMKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgRU1QVFkgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMT0FESU5HID0gMTsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRE9ORSA9IDI7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOworCisgICAgICAgIC8vIGFzeW5j
IHJlYWQgbWV0aG9kcworICAgICAgICB2b2lkIHJlYWRBc0JpbmFyeVN0cmluZyhpbiBCbG9iIGZp
bGVCbG9iKTsKKyAgICAgICAgdm9pZCByZWFkQXNUZXh0KGluIEJsb2IgZmlsZUJsb2IsIGluIFtP
cHRpb25hbF0gRE9NU3RyaW5nIGVuY29kaW5nKTsKKyAgICAgICAgdm9pZCByZWFkQXNEYXRhVVJM
KGluIEZpbGUgZmlsZSk7CisKKyAgICAgICAgdm9pZCBhYm9ydCgpOworCisgICAgICAgIC8vIGZp
bGUgZGF0YQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gRE9NU3Ry
aW5nIHJlc3VsdDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmlsZUVycm9yIGVycm9y
OworCisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OworICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOworICAgICAgICBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
YWJvcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CisgICAgICAg
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVuZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAppbmRleCA3ZGNjN2JlLi45YjcwYTJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNzE1LDYgKzcxNSw3
IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRE9NRm9ybURhdGFDb25zdHJ1
Y3RvciBGb3JtRGF0YTsKIAogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUZJTEVfUkVB
REVSfEZJTEVfV1JJVEVSXSBGaWxlRXJyb3JDb25zdHJ1Y3RvciBGaWxlRXJyb3I7CisgICAgICAg
IGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPUZJTEVfUkVBREVSXSBGaWxl
UmVhZGVyQ29uc3RydWN0b3IgRmlsZVJlYWRlcjsKIAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBjZTI1MzUuLjEyNDM5OTAgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMC0wNS0wNSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIEZpbGVS
ZWFkZXIgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzg2MDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiB0dXJuIG9u
IGJ1aWxkaW5nIEZpbGVSZWFkZXIgZm9yIGFwcGxlJ3MgV2ViS2l0LgorCiAyMDEwLTA1LTA0ICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGlu
aWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggM2EzZWRiOS4uNGQw
MDFmNCAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTE3OCw3ICsxNzgsNyBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9YU0xUIiwgZGVmYXVsdCA9PiAx
LCB2YWx1ZSA9PiBcJHhzbHRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZmlsZS1yZWFk
ZXIiLCBkZXNjID0+ICJUb2dnbGUgRmlsZVJlYWRlciBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0ZJTEVfUkVBREVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZpbGVSZWFk
ZXJTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GSUxFX1JFQURFUiIsIGRlZmF1
bHQgPT4gaXNBcHBsZVdlYktpdCgpLCB2YWx1ZSA9PiBcJGZpbGVSZWFkZXJTdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAiZmlsZS13cml0ZXIiLCBkZXNjID0+ICJUb2dnbGUgRmlsZVdyaXRl
ciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZJTEVfV1JJVEVSIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJGZpbGVXcml0ZXJTdXBwb3J0IH0sCg==
</data>
<flag name="commit-queue"
          id="39301"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55181</attachid>
            <date>2010-05-05 17:42:32 -0700</date>
            <delta_ts>2010-05-06 18:15:05 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38609_3</filename>
            <type>text/plain</type>
            <size>43657</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2M2FiZWZmLi5kNzNjYzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDUt
MDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisK
KyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdGVzdCBiYXNpYyBGaWxlUmVhZGVyIG9wZXJh
dGlvbnMuCisgICAgICAgIEFsc28gdXBkYXRlIGxheW91dCB0ZXN0cyBhZmZlY3RlZCBieSBhZGRp
bmcgdGhlIGNvbnN0cnVjdG9ycyB0byBET01XaW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlcy9yZXNvdXJjZXMvVVRGMTZMRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL3Jlc291cmNlcy9VVEY4LUJPTS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXMv
cmVzb3VyY2VzL1VURjgudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNl
cy9lbXB0eS1maWxlOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBTa2lwIHRo
ZSBuZXcgdGVzdCBiZWNhdXNlIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyBpcyBub3Qg
c3VwcG9ydGVkIGluIGd0ayBwbGF0Zm9ybS4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OiBTa2lwIHRoZSBuZXcgdGVzdCBiZWNhdXNlIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxl
cyBpcyBub3Qgc3VwcG9ydGVkIGluIHF0IHBsYXRmb3JtLgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Ta2lwcGVkOiBTa2lwIHRoZSBuZXcgdGVzdCBiZWNhdXNlIGV2ZW50U2VuZGVyLmJlZ2luRHJh
Z1dpdGhGaWxlcyBpcyBub3Qgc3VwcG9ydGVkIGluIHdpbiBwbGF0Zm9ybS4KKwogMjAxMC0wNS0w
NSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSb2xsIG91
dCByNTg4MzAgZm9yIGJyZWFraW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggMWU5
MmQ0OS4uNzU1NzYyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC05MDAsOSArOTAwLDMyIEBA
IHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudCBbZnVuY3Rpb25dCiB3
aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgW2Z1bmN0aW9u
XQogd2luZG93LkZpbGUgW29iamVjdCBGaWxlQ29uc3RydWN0b3JdCiB3aW5kb3cuRmlsZS5wcm90
b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkJsb2IucHJvdG90eXBlXQord2luZG93LkZp
bGVFcnJvciBbb2JqZWN0IEZpbGVFcnJvckNvbnN0cnVjdG9yXQord2luZG93LkZpbGVFcnJvci5B
Qk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IuRU5DT0RJTkdfRVJSIFtudW1iZXJd
Cit3aW5kb3cuRmlsZUVycm9yLk5PVF9GT1VORF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJy
b3IuTk9UX1JFQURBQkxFX0VSUiBbbnVtYmVyXQord2luZG93LkZpbGVFcnJvci5OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IuU0VDVVJJVFlfRVJS
IFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZSBbb2JqZWN0IEZpbGVFcnJvclBy
b3RvdHlwZV0KK3dpbmRvdy5GaWxlRXJyb3IucHJvdG90eXBlLkFCT1JUX0VSUiBbbnVtYmVyXQor
d2luZG93LkZpbGVFcnJvci5wcm90b3R5cGUuRU5DT0RJTkdfRVJSIFtudW1iZXJdCit3aW5kb3cu
RmlsZUVycm9yLnByb3RvdHlwZS5OT1RfRk9VTkRfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVy
cm9yLnByb3RvdHlwZS5OT1RfUkVBREFCTEVfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9y
LnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KK3dpbmRvdy5G
aWxlRXJyb3IucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkZpbGVMaXN0
IFtvYmplY3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUg
W29iamVjdCBGaWxlTGlzdFByb3RvdHlwZV0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUuaXRl
bSBbZnVuY3Rpb25dCit3aW5kb3cuRmlsZVJlYWRlciBbb2JqZWN0IEZpbGVSZWFkZXJDb25zdHJ1
Y3Rvcl0KK3dpbmRvdy5GaWxlUmVhZGVyLnByb3RvdHlwZSBbb2JqZWN0IEZpbGVSZWFkZXJQcm90
b3R5cGVdCit3aW5kb3cuRmlsZVJlYWRlci5wcm90b3R5cGUuRE9ORSBbbnVtYmVyXQord2luZG93
LkZpbGVSZWFkZXIucHJvdG90eXBlLkVNUFRZIFtudW1iZXJdCit3aW5kb3cuRmlsZVJlYWRlci5w
cm90b3R5cGUuTE9BRElORyBbbnVtYmVyXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLmFi
b3J0IFtmdW5jdGlvbl0KK3dpbmRvdy5GaWxlUmVhZGVyLnByb3RvdHlwZS5yZWFkQXNCaW5hcnlT
dHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLnJlYWRBc0RhdGFV
UkwgW2Z1bmN0aW9uXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLnJlYWRBc1RleHQgW2Z1
bmN0aW9uXQogd2luZG93LkZvcm1EYXRhIFtvYmplY3QgRm9ybURhdGFDb25zdHJ1Y3Rvcl0KIHdp
bmRvdy5Gb3JtRGF0YS5wcm90b3R5cGUgW29iamVjdCBGb3JtRGF0YVByb3RvdHlwZV0KIHdpbmRv
dy5Gb3JtRGF0YS5wcm90b3R5cGUuYXBwZW5kIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNj
cmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNGI3YTYyZC4uMjk4MDVhYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTQ4LDcgKzQ4LDkgQEAgUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdFdmVudCcpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ0V2ZW50RXhjZXB0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRXZlbnRTb3VyY2UnKSBpcyAnb2JqZWN0Jwog
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxl
JykgaXMgJ29iamVjdCcKK1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnRmlsZUVycm9yJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRmlsZUxpc3QnKSBpcyAnb2JqZWN0Jwor
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxl
UmVhZGVyJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnRm9ybURhdGEnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdGdW5jdGlvbicpIGlzICdvYmpl
Y3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywg
J0hUTUxBbGxDb2xsZWN0aW9uJykgaXMgJ29iamVjdCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0
ZWQudHh0CmluZGV4IDY1MDlmMzcuLjA1NjNkNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLWV4cGVj
dGVkLnR4dApAQCAtNyw2ICs3LDggQEAgUEFTUyAobmV3IGlubmVyLkF1ZGlvKCkpLmlzSW5uZXIg
aXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkF1ZGlvKCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyAobmV3IGlubmVyLkRPTVBhcnNlcigpKS5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
KG5ldyBpbm5lci5ET01QYXJzZXIoKSkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNT
IChuZXcgaW5uZXIuRmlsZVJlYWRlcigpKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5l
ci5GaWxlUmVhZGVyKCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlu
bmVyLkZvcm1EYXRhKCkpLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkZvcm1EYXRh
KCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkltYWdlKCkp
LmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJv
dG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4IDc0MjVmOTguLjMxNzBjODYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyMyw2ICsyMjMsNyBAQCBOZXZlciBmb3VuZCBFbnRp
dHkKIE5ldmVyIGZvdW5kIEVudGl0eVJlZmVyZW5jZQogTmV2ZXIgZm91bmQgRmlsZQogTmV2ZXIg
Zm91bmQgRmlsZUxpc3QKK05ldmVyIGZvdW5kIEZpbGVSZWFkZXIKIE5ldmVyIGZvdW5kIEZvcm1E
YXRhCiBOZXZlciBmb3VuZCBIVE1MQWxsQ29sbGVjdGlvbgogTmV2ZXIgZm91bmQgSFRNTEJhc2VF
bGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCBiNDRiOWIyLi4zZmVlMGRmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQKQEAgLTg1LDggKzg1LDEyIEBAIFBBU1MgaW5uZXIuRXZlbnRTb3VyY2UuaXNJbm5lciBpcyB0
cnVlCiBQQVNTIGlubmVyLkV2ZW50U291cmNlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5GaWxlLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5GaWxlLmNvbnN0cnVj
dG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlRXJyb3IuaXNJbm5lciBpcyB0cnVl
CitQQVNTIGlubmVyLkZpbGVFcnJvci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
aW5uZXIuRmlsZUxpc3QuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkZpbGVMaXN0LmNvbnN0
cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlUmVhZGVyLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5GaWxlUmVhZGVyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5Gb3JtRGF0YS5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRm9ybURhdGEu
Y29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkhUTUxBbGxDb2xsZWN0aW9u
LmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxl
LXJlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTA0YzY4YzZmYjAwYWQxNDQ3ZDk4YjhiNmVhMWNi
NjRjZTg5NTAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyMzgyCnpjbWRUYCtmRCo4NWFvSGxW
bT81a2klSz9ZZD82d3twZD8mO0FHVSl1RGVhfm1rQGYzczdYeGwyMX5GTUJgX3l6VQp6WEhISmZQ
QmJDTVU8cmxQJnchd2ZacWl5aENlMUxIaWxUNT1qMlczeXhRSXJTa3pBMWd2ZXNDam01LX4wdzQl
KlQKeldgc3tqYl92UiRBbmc7Jmx4a1pJdzlMNkU4djs2Kk5zWUR1JEpWMiZsPmRZdjZtKlExX24/
VFllZkxEUGR8Q0lSCno3QFR9N0MpKnJUc0FlOURtfXk8KjtsQmJFJE96TlhwY1lvSUtTKWo/dmBy
N0E3TihRP1g3WXp4KnJEIXxRc3lZcwp6d2R2dF91eU1RN2gwZ0Z7JWspV0w5LUpLSjxuJjFQIVUq
MFV0VD4xUVVMYEw7Jj5Wd2RsSj8kU21vTFdgVE1LRlEKejhgTXojYF5rJGVNZ0RiYFVAXyVZdC1+
RHVSKEV6LXRBQWd7VGxQeD40YE1qYTYtcz9HTHIza2F2dktkcSYzZWkwCnp3PGVqUFFlbk1WZGls
dVE+bmlMTnVxMGo+O1E7K29WNi1ZZ3A8aExlQ1hmenRZY2dfPExAb2NSLV9MbkJlQyRUaQpFSjJX
OVhqc080dgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxl
LXJlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYzE2MzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0
bWwKQEAgLTAsMCArMSwyMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxp
bnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBpZD0iZmlsZSIgb25jaGFuZ2U9Im9uSW5wdXRG
aWxlQ2hhbmdlKCkiIG11bHRpcGxlPgorPHByZSBpZD0nY29uc29sZSc+PC9wcmU+CisKKzxzY3Jp
cHQ+Cit2YXIgdGVzdENhc2VzID0gWworICAgICJ0ZXN0UmVhZGluZ05vbkV4aXN0ZW50RmlsZSIs
CisgICAgInRlc3RSZWFkaW5nRW1wdHlGaWxlQXNCaW5hcnlTdHJpbmciLAorICAgICJ0ZXN0UmVh
ZGluZ0VtcHR5RmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFkaW5nRW1wdHlGaWxlQXNEYXRhVVJM
IiwKKyAgICAidGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0JpbmFyeVN0cmluZyIsCisgICAg
InRlc3RSZWFkaW5nVVRGOEVuY29kZWRGaWxlQXNUZXh0IiwKKyAgICAidGVzdFJlYWRpbmdVVEYx
NkJFQk9NRW5jb2RlZEZpbGVBc1RleHQiLAorICAgICJ0ZXN0UmVhZGluZ1VURjE2TEVCT01FbmNv
ZGVkRmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFkaW5nVVRGOEJPTUVuY29kZWRGaWxlQXNUZXh0
IiwKKyAgICAidGVzdFJlYWRpbmdVVEYxNkJFRW5jb2RlZEZpbGVBc1RleHQiLAorICAgICJ0ZXN0
UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFzVGV4dFdpdGhVVEYxNkVuY29kaW5nIiwKKyAgICAi
dGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0RhdGFVUkwiLAorICAgICJ0ZXN0TXVsdGlwbGVS
ZWFkcyIsCitdOwordmFyIHRlc3RJbmRleCA9IDA7CisKK3ZhciB0ZXN0RmlsZUluZm9MaXN0ID0g
WworICAgIHsgJ25hbWUnOiAnbm9uLWV4aXN0ZW50JywgJ3BhdGgnOiAncmVzb3VyY2VzL25vbi1l
eGlzdGVudCcgfSwKKyAgICB7ICduYW1lJzogJ2VtcHR5LWZpbGUnLCAncGF0aCc6ICdyZXNvdXJj
ZXMvZW1wdHktZmlsZScgfSwKKyAgICB7ICduYW1lJzogJ1VURjgtZmlsZScsICdwYXRoJzogJ3Jl
c291cmNlcy9VVEY4LnR4dCcgfSwKKyAgICB7ICduYW1lJzogJ1VURjE2QkUtQk9NLWZpbGUnLCAn
cGF0aCc6ICdyZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0JyB9LAorICAgIHsgJ25hbWUnOiAnVVRG
MTZMRS1CT00tZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQnIH0sCisg
ICAgeyAnbmFtZSc6ICdVVEY4LUJPTS1maWxlJywgJ3BhdGgnOiAncmVzb3VyY2VzL1VURjgtQk9N
LnR4dCcgfSwKKyAgICB7ICduYW1lJzogJ1VURjE2QkUtZmlsZScsICdwYXRoJzogJ3Jlc291cmNl
cy9VVEYxNkJFLnR4dCcgfSwKK107Cit2YXIgdGVzdEZpbGVzID0geyB9OworCitmdW5jdGlvbiBs
b2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisK
K2Z1bmN0aW9uIGNyZWF0ZUZpbGVSZWFkZXIoKQoreworICAgIHZhciByZWFkZXIgPSBuZXcgRmls
ZVJlYWRlcigpOworCisgICAgcmVhZGVyLm9ubG9hZHN0YXJ0ID0gbG9hZFN0YXJ0ZWQ7CisgICAg
cmVhZGVyLm9ubG9hZCA9IGxvYWRlZDsKKyAgICByZWFkZXIub25hYm9ydCA9IGxvZ0V2ZW50Owor
ICAgIHJlYWRlci5vbmxvYWRlbmQgPSBsb2FkRW5kZWQ7CisgICAgcmVhZGVyLm9uZXJyb3IgPSBs
b2FkRmFpbGVkOworCisgICAgbG9nKCJyZWFkeVN0YXRlOiAiICsgcmVhZGVyLnJlYWR5U3RhdGUp
OworICAgIHJldHVybiByZWFkZXI7Cit9CisKK2Z1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KQorewor
ICAgIGxvZygiUmVjZWl2ZWQgIiArIGV2ZW50LnR5cGUgKyAiIGV2ZW50Iik7Cit9CisKK2Z1bmN0
aW9uIGxvYWRTdGFydGVkKGV2ZW50KQoreworICAgIGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBsb2co
InJlYWR5U3RhdGU6ICIgKyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSk7Cit9CisKK2Z1bmN0aW9u
IGxvYWRlZChldmVudCkKK3sKKyAgICBsb2dFdmVudChldmVudCk7CisgICAgbG9nKCJyZWFkeVN0
YXRlOiAiICsgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUpOworICAgIGxvZygicmVzdWx0IHNpemU6
ICIgKyBldmVudC50YXJnZXQucmVzdWx0Lmxlbmd0aCk7CisgICAgbG9nKCJyZXN1bHQ6ICIgKyBl
dmVudC50YXJnZXQucmVzdWx0KTsKK30KKworZnVuY3Rpb24gbG9hZEZhaWxlZChldmVudCkKK3sK
KyAgICBsb2dFdmVudChldmVudCk7CisgICAgbG9nKCJyZWFkeVN0YXRlOiAiICsgZXZlbnQudGFy
Z2V0LnJlYWR5U3RhdGUpOworICAgIGxvZygiZXJyb3IgY29kZTogIiArIGV2ZW50LnRhcmdldC5l
cnJvci5jb2RlKTsKK30KKworZnVuY3Rpb24gbG9hZEVuZGVkKGV2ZW50KQoreworICAgIGxvZ0V2
ZW50KGV2ZW50KTsKKyAgICBydW5OZXh0VGVzdCgpOworfQorCitmdW5jdGlvbiBvbklucHV0Rmls
ZUNoYW5nZSgpCit7CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZp
bGUiKS5maWxlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKQor
ICAgICAgICB0ZXN0RmlsZXNbdGVzdEZpbGVJbmZvTGlzdFtpXVsnbmFtZSddXSA9IGZpbGVzW2ld
OworCisgICAgcnVuTmV4dFRlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQorewor
ICAgIGlmICh0ZXN0SW5kZXggPCB0ZXN0Q2FzZXMubGVuZ3RoKSB7CisgICAgICAgIHRlc3RJbmRl
eCsrOworICAgICAgICB3aW5kb3dbdGVzdENhc2VzW3Rlc3RJbmRleCAtIDFdXSgpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGxvZygiRE9ORSIpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdOb25FeGlzdGVudEZpbGUoKQor
eworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgbm9uLWV4aXN0ZW50IGZpbGUiKTsKKyAgICB2YXIg
cmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJp
bmcodGVzdEZpbGVzWydub24tZXhpc3RlbnQnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5n
RW1wdHlGaWxlQXNCaW5hcnlTdHJpbmcoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGFuIGVt
cHR5IGZpbGUgYXMgYmluYXJ5IHN0cmluZyIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxl
UmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0ZXN0RmlsZXNbJ2VtcHR5
LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nRW1wdHlGaWxlQXNUZXh0KCkKK3sK
KyAgICBsb2coIlRlc3QgcmVhZGluZyBhbiBlbXB0eSBmaWxlIGFzIHRleHQiKTsKKyAgICB2YXIg
cmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RG
aWxlc1snZW1wdHktZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdFbXB0eUZpbGVB
c0RhdGFVUkwoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgZGF0
YSBVUkwiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRl
ci5yZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snZW1wdHktZmlsZSddKTsKK30KKworZnVuY3Rpb24g
dGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0JpbmFyeVN0cmluZygpCit7CisgICAgbG9nKCJU
ZXN0IHJlYWRpbmcgYSBVVEYtOCBmaWxlIGFzIGJpbmFyeSBzdHJpbmciKTsKKyAgICB2YXIgcmVh
ZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmco
dGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGOEVu
Y29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi04IGZpbGUg
YXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVh
ZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RSZWFkaW5nVVRGMTZCRUJPTUVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3Qg
cmVhZGluZyBhIFVURi0xNkJFIEJPTSBmaWxlIGFzIHRleHQiKTsKKyAgICB2YXIgcmVhZGVyID0g
Y3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRG
MTZCRS1CT00tZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEYxNkxFQk9NRW5j
b2RlZEZpbGVBc1RleHQoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTE2TEUgQk9N
IGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7Cisg
ICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEYxNkxFLUJPTS1maWxlJ10pOworfQor
CitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjhCT01FbmNvZGVkRmlsZUFzVGV4dCgpCit7CisgICAg
bG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtOCBCT00gZmlsZSBhcyB0ZXh0Iik7CisgICAgdmFyIHJl
YWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEFzVGV4dCh0ZXN0Rmls
ZXNbJ1VURjgtQk9NLWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGMTZCRUVu
Y29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIGZp
bGUgYXMgdGV4dCB3aXRoIGRlZmF1bHQgZW5jb2RpbmciKTsKKyAgICB2YXIgcmVhZGVyID0gY3Jl
YXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGMTZC
RS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFz
VGV4dFdpdGhVVEYxNkVuY29kaW5nKCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi0x
NkJFIGZpbGUgYXMgdGV4dCB3aXRoIFVURi0xNkJFIGVuY29kaW5nIik7CisgICAgdmFyIHJlYWRl
ciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEFzVGV4dCh0ZXN0RmlsZXNb
J1VURjE2QkUtZmlsZSddLCAiVVRGLTE2QkUiKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdV
VEY4RW5jb2RlZEZpbGVBc0RhdGFVUkwoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRG
LTggZmlsZSBhcyBkYXRhIFVSTCIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVy
KCk7CisgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RNdWx0aXBsZVJlYWRzKCkKK3sKKyAgICBsb2coIlRlc3QgY2FsbGlu
ZyBtdWx0aXBsZSByZWFkIG1ldGhvZHMgYW5kIG9ubHkgbGFzdCBvbmUgaXMgcHJvY2Vzc2VkIik7
CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEFz
QmluYXJ5U3RyaW5nKHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOworICAgIHJlYWRlci5yZWFkQXNU
ZXh0KHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOworICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRl
c3RGaWxlc1snVVRGOC1maWxlJ10pOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpCit7CisgICAg
dmFyIHBhdGhzT25seSA9IHRlc3RGaWxlSW5mb0xpc3QubWFwKGZ1bmN0aW9uKGZpbGVTcGVjKSB7
IHJldHVybiBmaWxlU3BlY1sncGF0aCddOyB9KTsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdX
aXRoRmlsZXMocGF0aHNPbmx5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTAp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRl
c3RzOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLUJPTS50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLUJPTS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjViYzdmMzBi
ZjdiYzZkYjRmZTY4YjI3ZTY0MTFlM2QxNDNkYjJiMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTIKUmNtZXpPcFRVRDZsXzNXUl44cHxPMU0mYT4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjE2QkUudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGM4MTQ0Njg4ZTM1MDRjODYzM2UwYWY1Y2YxMDM3MTRkZjY5MDQzNgpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMTAKUGNtWlNaVWBTPWkwbTZJJDJfeW1hCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkxFLUJP
TS50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODRhYjU5ZTU2MTc1NTYzMDUzZmUyNGNhNjFhZmEyNzEwNjJmODMyNwpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIKUmNtZXpXJngwWUFBcU5RYTgyfTtwMU0mYT4KCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVz
b3VyY2VzL1VURjgtQk9NLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VU
RjgtQk9NLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTczMjNmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC1C
T00udHh0CkBAIC0wLDAgKzEgQEAKK++7v0hlbGxvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEY4LnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWIyZjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC50eHQKQEAgLTAsMCArMSBAQAorSGVsbG8K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL3Jlc291cmNlcy9lbXB0eS1maWxlIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNv
dXJjZXMvZW1wdHktZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlk
ZTI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4
cGVjdGVkLnR4dAppbmRleCA0OTg3YzY0Li5jNTI3ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTQyLDcgKzQy
LDkgQEAgUEFTUyBFbnRpdHlSZWZlcmVuY2UudG9TdHJpbmcoKSBpcyAnW29iamVjdCBFbnRpdHlS
ZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nCiBQQVNTIEV2ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3Qg
RXZlbnRDb25zdHJ1Y3Rvcl0nCiBQQVNTIEV2ZW50RXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tv
YmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nCiBQQVNTIEZpbGUudG9TdHJpbmcoKSBp
cyAnW29iamVjdCBGaWxlQ29uc3RydWN0b3JdJworUEFTUyBGaWxlRXJyb3IudG9TdHJpbmcoKSBp
cyAnW29iamVjdCBGaWxlRXJyb3JDb25zdHJ1Y3Rvcl0nCiBQQVNTIEZpbGVMaXN0LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0nCitQQVNTIEZpbGVSZWFkZXIudG9T
dHJpbmcoKSBpcyAnW29iamVjdCBGaWxlUmVhZGVyQ29uc3RydWN0b3JdJwogUEFTUyBGb3JtRGF0
YS50b1N0cmluZygpIGlzICdbb2JqZWN0IEZvcm1EYXRhQ29uc3RydWN0b3JdJwogUEFTUyBIVE1M
QWxsQ29sbGVjdGlvbi50b1N0cmluZygpIGlzICdbb2JqZWN0IEhUTUxBbGxDb2xsZWN0aW9uQ29u
c3RydWN0b3JdJwogUEFTUyBIVE1MQW5jaG9yRWxlbWVudC50b1N0cmluZygpIGlzICdbb2JqZWN0
IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApp
bmRleCBiMDg0NzY0Li4yY2E1NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMzQy
OSw2ICszNDI5LDcgQEAgaHR0cC90ZXN0cy9sb2NhbC9zZW5kLWRyYWdnZWQtZmlsZS5odG1sCiBo
dHRwL3Rlc3RzL2xvY2FsL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5odG1sCiBodHRwL3Rlc3Rz
L2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9y
bWRhdGEvc2VuZC1mb3JtLWRhdGEtd2l0aC1zbGljZWQtZmlsZS5odG1sCitmYXN0L2ZpbGVzL2Zp
bGUtcmVhZGVyLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1zZWVrLmh0
bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCiBodHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDllYzM5MDkuLjhiNTMxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMzUyLDYgKzM1
Miw3IEBAIGZhc3QvZm9ybXMvZ2V0LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1maWxlLWNyYXNoLmh0bWwKIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5odG1sCitm
YXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKIAogIyBNaXNzaW5nIGRyYWcgJiBkcm9wIGZ1bmN0
aW9uYWxpdHkgaW4gRFJUCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1pbnB1dHRleHQtYWNxdWly
ZXMtc3R5bGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAwYWZkOTY4Li4xNDJj
NmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMjAwLDYgKzIwMCw3IEBAIGZhc3Qv
Zm9ybXMvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlw
Ym9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctZmlsZS1j
cmFzaC5odG1sCiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwK
K2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbAogCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gdGVzdCBJRE4gPHJkYXI6Ly9wcm9ibGVtLzUzMDE5NTQ+
CiBmYXN0L2VuY29kaW5nL2lkbi1zZWN1cml0eS5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMzMzlhMmQuLjkxNmY1YTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMTAtMDUtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxl
UmVhZGVyIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4NjA5CisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlcy9maWxlLXJlYWRlci5o
dG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmZpbGVSZWFkZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBodG1sL0ZpbGVFcnJvci5pZGw6CisgICAgICAgICogaHRtbC9GaWxlUmVhZGVyLmlkbDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEwLTA1LTA1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGwgb3V0IHI1ODgzMCBm
b3IgYnJlYWtpbmcgdGVzdHMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwppbmRleCA4ODFjNzg4Li4wNzUwZmI2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTUwLDggKzUwLDggQEAgRU5B
QkxFX0RBVEFMSVNUID0gRU5BQkxFX0RBVEFMSVNUOwogRU5BQkxFX0RPTV9TVE9SQUdFID0gRU5B
QkxFX0RPTV9TVE9SQUdFOwogRU5BQkxFX0VWRU5UU09VUkNFID0gRU5BQkxFX0VWRU5UU09VUkNF
OwogRU5BQkxFX0ZJTFRFUlMgPSBFTkFCTEVfRklMVEVSUzsKLUVOQUJMRV9GSUxFX1JFQURFUiA9
IDsKLUVOQUJMRV9GSUxFX1dSSVRFUiA9IDsKK0VOQUJMRV9GSUxFX1JFQURFUiA9IEVOQUJMRV9G
SUxFX1JFQURFUjsKK0VOQUJMRV9GSUxFX1dSSVRFUiA9IEVOQUJMRV9GSUxFX1dSSVRFUjsKIEVO
QUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJB
U0UgPSBFTkFCTEVfSUNPTkRBVEFCQVNFOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCmluZGV4IGM4YmUzM2YuLmY2NmM4NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC04OCw2
ICs4OCw3IEBACiAjaW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFcnJvci5j
cHAiCiAjaW5jbHVkZSAiSlNGaWxlTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNGaWxlUmVhZGVyLmNw
cCIKICNpbmNsdWRlICJKU0dlb2xvY2F0aW9uLmNwcCIKICNpbmNsdWRlICJKU0dlb3Bvc2l0aW9u
LmNwcCIKICNpbmNsdWRlICJKU0hpc3RvcnkuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDc2ZDYy
MmEuLmY0MTYzNTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBET01fQ0xB
U1NFUyA9IFwKICAgICBGaWxlIFwKICAgICBGaWxlRXJyb3IgXAogICAgIEZpbGVMaXN0IFwKKyAg
ICBGaWxlUmVhZGVyIFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2VvcG9zaXRpb24gXAogICAg
IEhUTUxBbGxDb2xsZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9X
ZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDA1ODFkYWUuLjNiMWYyZmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMzMwLDYgKzMz
MCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9GaWxlLmlkbCBcCiAgICAgaHRtbC9G
aWxlRXJyb3IuaWRsIFwKICAgICBodG1sL0ZpbGVMaXN0LmlkbCBcCisgICAgaHRtbC9GaWxlUmVh
ZGVyLmlkbCBcCiAgICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRN
TEF1ZGlvRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI5YmM4MjMuLmNhMTA3MDMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzc1Nyw2ICszNzU3LDE0IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlUmVh
ZGVyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNGaWxlUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTR2VvbG9jYXRpb24uY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KQEAgLTM2NjM5LDYgKzM2NjQ3LDE4IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0ZpbGVSZWFkZXJDb25z
dHJ1Y3Rvci5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCINCisJ
CQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU0ZpbGVSZWFkZXJDdXN0b20uY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+
DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTR2VvbG9j
YXRpb25DdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NTBjM2ZkLi5kMzQ4MmNjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjU3LDYgKzY1NywxMyBA
QAogCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MzBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFk
Q29waWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNDM0NjU2MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi87IH07
CiAJCTJFNDM0NjU5MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NTcwRjU0NkE5
OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmggKi87IH07CisJCTJFOTRGNDMwMTE5MjA2
MUIwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQyRDExOTIwNjFCMDBCN0Y3NUQg
LyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwICovOyB9OworCQkyRTk0RjQzMTExOTIwNjFC
MDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDJFMTE5MjA2MUIwMEI3Rjc1RCAvKiBK
U0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oICovOyB9OworCQkyRTk0RjQzMjExOTIwNjFCMDBCN0Y3
NUQgLyogSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDJGMTE5MjA2MUIwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFk
ZXJDdXN0b20uY3BwICovOyB9OworCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFOTRGNDM5MTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovOyB9OworCQky
RTk0RjQzQzExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQg
LyogSlNGaWxlUmVhZGVyLmggKi87IH07CisJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBG
aWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFOTRGM0NCMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCAqLzsgfTsKKwkJ
MkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGM0NDMTE4QjkwOEUwMEI3Rjc1RCAv
KiBGaWxlUmVhZGVyLmggKi87IH07CiAJCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuaCAqLzsgfTsKIAkJMkVBRkFGMEUxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBRkFGMEIx
MEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovOyB9OwogCQkyRUFGQUYwRjEwRTJBRjJEMDA3
RUQzRDYgLyogQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLzsgfTsKQEAgLTYwOTgs
NiArNjEwNSwxMiBAQAogCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU5NEYzQ0IxMThCOTA4RTAwQjdG
NzVEIC8qIEZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRmlsZVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGM0ND
MTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5
NEY0MjcxMTkyMDVCMzAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEZpbGVSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0
RjQyRDExOTIwNjFCMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyQ29uc3RydWN0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQyRTExOTIwNjFCMDBCN0Y3
NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkU5NEY0MkYxMTkyMDYxQjAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVSZWFkZXJDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQzOTExOTIwN0RBMDBC
N0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRmlsZVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJF
OTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50Lmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyogQmxv
Yi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJs
b2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTMwODEsNiArMTMwOTQsNyBAQAogCQkJCUJDMTg4MURDMEUw
OEM1NDMwMDA0OEMxMyAvKiBGaWxlTGlzdC5pZGwgKi8sCiAJCQkJMkU5NEYzQ0IxMThCOTA4RTAw
QjdGNzVEIC8qIEZpbGVSZWFkZXIuY3BwICovLAogCQkJCTJFOTRGM0NDMTE4QjkwOEUwMEI3Rjc1
RCAvKiBGaWxlUmVhZGVyLmggKi8sCisJCQkJMkU5NEY0MjcxMTkyMDVCMzAwQjdGNzVEIC8qIEZp
bGVSZWFkZXIuaWRsICovLAogCQkJCTg5NTI1M0Q0MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3Ry
ZWFtLmNwcCAqLywKIAkJCQk4OTUyNTNENTExNkM0QzY4MDBDQUJGMDAgLyogRmlsZVN0cmVhbS5o
ICovLAogCQkJCTg5NTI1M0Q2MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtQ2xpZW50Lmgg
Ki8sCkBAIC0xMzQzMSw2ICsxMzQ0NSw4IEBACiAJCQkJMkUzQkMwQzkxMTdEM0UwODAwQjk0MDlB
IC8qIEpTRmlsZUVycm9yLmggKi8sCiAJCQkJQkMwMEYwMTIwRTBBMTg5NTAwRkQwNEUzIC8qIEpT
RmlsZUxpc3QuY3BwICovLAogCQkJCUJDMDBGMDEzMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVM
aXN0LmggKi8sCisJCQkJMkU5NEY0MzkxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5j
cHAgKi8sCisJCQkJMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICov
LAogCQkJCUJDOTdFNDEwMTA5MTU0RkEwMDEwRDM2MSAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmNw
cCAqLywKIAkJCQlCQzk3RTQxMTEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlv
bi5oICovLAogCQkJCTFBNEEyREVCMEExQjg1MkEwMEM4MDdGOCAvKiBKU0hUTUxBbmNob3JFbGVt
ZW50LmNwcCAqLywKQEAgLTE1MDcxLDYgKzE1MDg3LDkgQEAKIAkJCQk2NTJGQkJCQjBERTI3Q0I2
MDAwMUQzODYgLyogSlNET01XaW5kb3dDdXN0b20uaCAqLywKIAkJCQlCQzJFRDU1NDBDNkI5QkQz
MDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGQUY0RDBDMzE3RTY5
MDBGQTgxRjYgLyogSlNFdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJMkU5NEY0MkQxMTkyMDYxQjAw
QjdGNzVEIC8qIEpTRmlsZVJlYWRlckNvbnN0cnVjdG9yLmNwcCAqLywKKwkJCQkyRTk0RjQyRTEx
OTIwNjFCMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaCAqLywKKwkJCQkyRTk0
RjQyRjExOTIwNjFCMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcCAqLywKIAkJCQlG
RTgwRDdBNjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgKi8sCiAJ
CQkJQkNFN0IxOTIwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgKi8sCiAJ
CQkJQkM5N0U0MkIxMDkxNUIwNjAwMTBEMzYxIC8qIEpTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20u
Y3BwICovLApAQCAtMTg5NTMsNiArMTg5NzIsOSBAQAogCQkJCUI1OURENkExMTE5MDJBNTIwMDdF
OTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTJFOTRGNDMxMTE5MjA2MUIw
MEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkU5NEY0M0MxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjExOTUsNiArMjEyMTcsMTAgQEAKIAkJCQlCNTlERDZBMjExOTAyQTUyMDA3RTk2
ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjU5REQ2QTYxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2QUExMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3Rh
dGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk0RjQzMDExOTIw
NjFCMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMkU5NEY0MzIxMTkyMDYxQjAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVh
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBG
aWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAppbmRleCAwNWVhOWIxLi5mMDVlNDk3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkpT
RXZlbnQuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50
U291cmNlQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJKU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5o
IgogI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJKU0hpc3RvcnkuaCIK
ICNpbmNsdWRlICJKU0ltYWdlQ29uc3RydWN0b3IuaCIKQEAgLTY2MCw2ICs2NjEsMTMgQEAgSlNW
YWx1ZSBKU0RPTVdpbmRvdzo6d2ViU29ja2V0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKEZJTEVfUkVBREVSKQorSlNWYWx1ZSBKU0RPTVdpbmRvdzo6Zmls
ZVJlYWRlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERPTUNvbnN0
cnVjdG9yPEpTRmlsZVJlYWRlckNvbnN0cnVjdG9yPihleGVjLCB0aGlzKTsKK30KKyNlbmRpZgor
CiAvLyBDdXN0b20gZnVuY3Rpb25zCiAKIC8vIEhlbHBlciBmb3Igd2luZG93Lm9wZW4oKSBhbmQg
d2luZG93LnNob3dNb2RhbERpYWxvZygpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXQuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNw
cAppbmRleCA2ZWExMTM1Li45NDg4ODliIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdl
dC5jcHAKQEAgLTgzLDYgKzgzLDExIEBACiAjaW5jbHVkZSAiV2ViU29ja2V0LmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGSUxFX1JFQURFUikKKyNpbmNsdWRlICJKU0ZpbGVSZWFkZXIuaCIKKyNp
bmNsdWRlICJGaWxlUmVhZGVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ5LDYgKzE1NCwxMSBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdl
dCogdGFyZwogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCB3ZWJTb2NrZXQpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisgICAgaWYgKEZpbGVSZWFkZXIqIGZpbGVSZWFkZXIg
PSB0YXJnZXQtPnRvRmlsZVJlYWRlcigpKQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIGZpbGVSZWFkZXIpOworI2VuZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRmlsZVJlYWRlckNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNG
aWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjlhMDc0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmls
ZVJlYWRlckNvbnN0cnVjdG9yLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKEZJTEVfUkVBREVSKQorCisjaW5jbHVkZSAiSlNGaWxlUmVhZGVyQ29u
c3RydWN0b3IuaCIKKworI2luY2x1ZGUgIkZpbGVSZWFkZXIuaCIKKyNpbmNsdWRlICJKU0ZpbGVS
ZWFkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8
cnVudGltZS9FcnJvci5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0FTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNGaWxlUmVhZGVyQ29uc3RydWN0
b3IpOworCitjb25zdCBDbGFzc0luZm8gSlNGaWxlUmVhZGVyQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZpbGVSZWFkZXJDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKKworSlNGaWxlUmVhZGVyQ29u
c3RydWN0b3I6OkpTRmlsZVJlYWRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpT
RmlsZVJlYWRlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3QoZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNGaWxlUmVhZGVyUHJvdG90eXBlOjpzZWxmKGV4ZWMs
IGdsb2JhbE9iamVjdCksIE5vbmUpOworfQorCitzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdEZp
bGVSZWFkZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFy
Z0xpc3QmKQoreworICAgIEpTRmlsZVJlYWRlckNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0g
c3RhdGljX2Nhc3Q8SlNGaWxlUmVhZGVyQ29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7CisgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKGV4ZWMsIFJlZmVyZW5jZUVycm9yLCAiRmlsZVJlYWRlciBjb25zdHJ1Y3RvciBhc3Nv
Y2lhdGVkIGRvY3VtZW50IGlzIHVuYXZhaWxhYmxlIik7CisKKyAgICBSZWZQdHI8RmlsZVJlYWRl
cj4gZmlsZVJlYWRlciA9IEZpbGVSZWFkZXI6OmNyZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4g
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmpl
Y3QoKSwgRmlsZVJlYWRlciwgZmlsZVJlYWRlci5nZXQoKSk7Cit9CisKK0NvbnN0cnVjdFR5cGUg
SlNGaWxlUmVhZGVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYg
Y29uc3RydWN0RGF0YSkKK3sKKyAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNv
bnN0cnVjdEZpbGVSZWFkZXI7CisgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9SRUFERVIpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckNvbnN0cnVjdG9yLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckNvbnN0cnVjdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZmZTc5MwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuaApAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KyAKKyNpZm5kZWYgSlNGaWxlUmVhZGVyQ29uc3RydWN0b3JfaAorI2RlZmluZSBKU0ZpbGVSZWFk
ZXJDb25zdHJ1Y3Rvcl9oCisKKyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisKKyNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU0ZpbGVSZWFk
ZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CisgIHB1YmxpYzoK
KyAgICBKU0ZpbGVSZWFkZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKworICBw
cml2YXRlOgorICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDOjpDb25zdHJ1Y3REYXRhJik7CisgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyog
Y2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfUkVBREVSKQorCisjZW5kaWYgLy8g
SlNGaWxlUmVhZGVyQ29uc3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVSZWFk
ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMGM4ZmEK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3Rv
bS5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShG
SUxFX1JFQURFUikKKworI2luY2x1ZGUgIkpTRmlsZVJlYWRlci5oIgorCisjaW5jbHVkZSAiRmls
ZVJlYWRlci5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNWYWx1ZS5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0pTVmFsdWUgSlNGaWxlUmVhZGVyOjpyZXN1bHQoRXhlY1N0YXRlKiBleGVjKSBjb25zdAor
eworICAgIHJldHVybiBqc093bmVkU3RyaW5nT3JOdWxsKGV4ZWMsIGltcGwoKS0+cmVzdWx0KCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9S
RUFERVIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZUVycm9yLmlkbCBiL1dlYkNvcmUv
aHRtbC9GaWxlRXJyb3IuaWRsCmluZGV4IDZjMmIwOGMuLmFkYzI1ZTggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9GaWxlRXJyb3IuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlRXJyb3IuaWRs
CkBAIC0zMiw4ICszMiwxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9RklMRV9SRUFERVJ8RklMRV9XUklURVIKICAgICBdIEZpbGVFcnJvciB7
CisjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiA9IDc7CiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IE5PVF9GT1VORF9FUlIgPSA4OworI2VuZGlmCiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFNFQ1VSSVRZX0VSUiA9IDE4OwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBBQk9SVF9FUlIgPSAyMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9U
X1JFQURBQkxFX0VSUiA9IDI0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIu
aWRsIGIvV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAzZDg1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvRmls
ZVJlYWRlci5pZGwKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNl
IFsKKyAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9SRUFERVIsCisgICAgICAgIEN1c3RvbUNvbnN0
cnVjdG9yLAorICAgICAgICBFdmVudFRhcmdldCwKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMKKyAg
ICBdIEZpbGVSZWFkZXIgeworICAgICAgICAvLyByZWFkeSBzdGF0ZXMKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgRU1QVFkgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBM
T0FESU5HID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRE9ORSA9IDI7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOworCisgICAg
ICAgIC8vIGFzeW5jIHJlYWQgbWV0aG9kcworICAgICAgICB2b2lkIHJlYWRBc0JpbmFyeVN0cmlu
ZyhpbiBCbG9iIGZpbGVCbG9iKTsKKyAgICAgICAgdm9pZCByZWFkQXNUZXh0KGluIEJsb2IgZmls
ZUJsb2IsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGVuY29kaW5nKTsKKyAgICAgICAgdm9pZCBy
ZWFkQXNEYXRhVVJMKGluIEZpbGUgZmlsZSk7CisKKyAgICAgICAgdm9pZCBhYm9ydCgpOworCisg
ICAgICAgIC8vIGZpbGUgZGF0YQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdl
dHRlcl0gRE9NU3RyaW5nIHJlc3VsdDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmls
ZUVycm9yIGVycm9yOworCisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0
YXJ0OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOworICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9uYWJvcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJy
b3I7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVuZDsKKyAgICB9Owor
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAppbmRleCA3ZGNjN2JlLi45YjcwYTJlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAt
NzE1LDYgKzcxNSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRE9NRm9y
bURhdGFDb25zdHJ1Y3RvciBGb3JtRGF0YTsKIAogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPUZJTEVfUkVBREVSfEZJTEVfV1JJVEVSXSBGaWxlRXJyb3JDb25zdHJ1Y3RvciBGaWxlRXJy
b3I7CisgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPUZJTEVf
UkVBREVSXSBGaWxlUmVhZGVyQ29uc3RydWN0b3IgRmlsZVJlYWRlcjsKIAogI2VuZGlmIC8vIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBjZTI1MzUuLjEyNDM5OTAgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNS0wNSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RXhwb3NlIEZpbGVSZWFkZXIgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Vi
a2l0OiB0dXJuIG9uIGJ1aWxkaW5nIEZpbGVSZWFkZXIgZm9yIGFwcGxlJ3MgV2ViS2l0LgorCiAy
MDEwLTA1LTA0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXgg
M2EzZWRiOS4uNGQwMDFmNCAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTE3OCw3ICsx
NzgsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9YU0xUIiwg
ZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHhzbHRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAiZmlsZS1yZWFkZXIiLCBkZXNjID0+ICJUb2dnbGUgRmlsZVJlYWRlciBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZJTEVfUkVBREVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9
PiBcJGZpbGVSZWFkZXJTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GSUxFX1JF
QURFUiIsIGRlZmF1bHQgPT4gaXNBcHBsZVdlYktpdCgpLCB2YWx1ZSA9PiBcJGZpbGVSZWFkZXJT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZmlsZS13cml0ZXIiLCBkZXNjID0+ICJUb2dn
bGUgRmlsZVdyaXRlciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZJTEVfV1JJ
VEVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZpbGVXcml0ZXJTdXBwb3J0IH0sCg==
</data>
<flag name="commit-queue"
          id="39306"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55329</attachid>
            <date>2010-05-06 18:15:05 -0700</date>
            <delta_ts>2010-05-06 18:17:07 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38609_4</filename>
            <type>text/plain</type>
            <size>35458</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZTRiMzZmLi45NzljMDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDUt
MDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisK
KyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdGVzdCBiYXNpYyBGaWxlUmVhZGVyIG9wZXJh
dGlvbnMuCisgICAgICAgIEFsc28gdXBkYXRlIGxheW91dCB0ZXN0cyBhZmZlY3RlZCBieSBhZGRp
bmcgdGhlIGNvbnN0cnVjdG9ycyB0byBET01XaW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlcy9yZXNvdXJjZXMvVVRGMTZMRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL3Jlc291cmNlcy9VVEY4LUJPTS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXMv
cmVzb3VyY2VzL1VURjgudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNl
cy9lbXB0eS1maWxlOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1NraXBwZWQ6IFNraXAgdGhlIG5ldyB0ZXN0IGJlY2F1c2UgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZ3RrIHBsYXRmb3JtLgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6IFNraXAgdGhlIG5ldyB0ZXN0IGJlY2F1c2UgZXZlbnRTZW5kZXIu
YmVnaW5EcmFnV2l0aEZpbGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcXQgcGxhdGZvcm0uCisgICAg
ICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IFNraXAgdGhlIG5ldyB0ZXN0IGJlY2F1c2UgZXZl
bnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gd2luIHBsYXRm
b3JtLgorCiAyMDEwLTA1LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIERhbiBCZXJuc3RlaW4uLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKaW5kZXggMWU5MmQ0OS4uNzU1NzYyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CkBAIC05MDAsOSArOTAwLDMyIEBAIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUu
ZGlzcGF0Y2hFdmVudCBbZnVuY3Rpb25dCiB3aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLnJl
bW92ZUV2ZW50TGlzdGVuZXIgW2Z1bmN0aW9uXQogd2luZG93LkZpbGUgW29iamVjdCBGaWxlQ29u
c3RydWN0b3JdCiB3aW5kb3cuRmlsZS5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93
LkJsb2IucHJvdG90eXBlXQord2luZG93LkZpbGVFcnJvciBbb2JqZWN0IEZpbGVFcnJvckNvbnN0
cnVjdG9yXQord2luZG93LkZpbGVFcnJvci5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxl
RXJyb3IuRU5DT0RJTkdfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLk5PVF9GT1VORF9F
UlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IuTk9UX1JFQURBQkxFX0VSUiBbbnVtYmVyXQor
d2luZG93LkZpbGVFcnJvci5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KK3dp
bmRvdy5GaWxlRXJyb3IuU0VDVVJJVFlfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnBy
b3RvdHlwZSBbb2JqZWN0IEZpbGVFcnJvclByb3RvdHlwZV0KK3dpbmRvdy5GaWxlRXJyb3IucHJv
dG90eXBlLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkZpbGVFcnJvci5wcm90b3R5cGUuRU5D
T0RJTkdfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZS5OT1RfRk9VTkRf
RVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZS5OT1RfUkVBREFCTEVfRVJS
IFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IucHJvdG90eXBlLlNFQ1VSSVRZX0VS
UiBbbnVtYmVyXQogd2luZG93LkZpbGVMaXN0IFtvYmplY3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0K
IHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUgW29iamVjdCBGaWxlTGlzdFByb3RvdHlwZV0KIHdp
bmRvdy5GaWxlTGlzdC5wcm90b3R5cGUuaXRlbSBbZnVuY3Rpb25dCit3aW5kb3cuRmlsZVJlYWRl
ciBbb2JqZWN0IEZpbGVSZWFkZXJDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5GaWxlUmVhZGVyLnByb3Rv
dHlwZSBbb2JqZWN0IEZpbGVSZWFkZXJQcm90b3R5cGVdCit3aW5kb3cuRmlsZVJlYWRlci5wcm90
b3R5cGUuRE9ORSBbbnVtYmVyXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLkVNUFRZIFtu
dW1iZXJdCit3aW5kb3cuRmlsZVJlYWRlci5wcm90b3R5cGUuTE9BRElORyBbbnVtYmVyXQord2lu
ZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLmFib3J0IFtmdW5jdGlvbl0KK3dpbmRvdy5GaWxlUmVh
ZGVyLnByb3RvdHlwZS5yZWFkQXNCaW5hcnlTdHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkZpbGVS
ZWFkZXIucHJvdG90eXBlLnJlYWRBc0RhdGFVUkwgW2Z1bmN0aW9uXQord2luZG93LkZpbGVSZWFk
ZXIucHJvdG90eXBlLnJlYWRBc1RleHQgW2Z1bmN0aW9uXQogd2luZG93LkZvcm1EYXRhIFtvYmpl
Y3QgRm9ybURhdGFDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Gb3JtRGF0YS5wcm90b3R5cGUgW29iamVj
dCBGb3JtRGF0YVByb3RvdHlwZV0KIHdpbmRvdy5Gb3JtRGF0YS5wcm90b3R5cGUuYXBwZW5kIFtm
dW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNGI3
YTYyZC4uMjk4MDVhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQK
QEAgLTQ4LDcgKzQ4LDkgQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih3aW5kb3csICdFdmVudCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0V2ZW50RXhjZXB0aW9uJykgaXMgJ29iamVj
dCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
RXZlbnRTb3VyY2UnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxlJykgaXMgJ29iamVjdCcKK1BBU1MgdHlwZW9mIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRmlsZUVycm9yJykgaXMgJ29i
amVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93
LCAnRmlsZUxpc3QnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxlUmVhZGVyJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRm9ybURhdGEnKSBp
cyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdGdW5jdGlvbicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0hUTUxBbGxDb2xsZWN0aW9uJykgaXMgJ29iamVj
dCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMt
cHJvdG90eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3Rl
ZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0CmluZGV4IDY1MDlmMzcuLjA1NjNkNGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJv
dG90eXBlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RydWN0
ZWQtb2JqZWN0cy1wcm90b3R5cGVzLWV4cGVjdGVkLnR4dApAQCAtNyw2ICs3LDggQEAgUEFTUyAo
bmV3IGlubmVyLkF1ZGlvKCkpLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkF1ZGlv
KCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkRPTVBhcnNl
cigpKS5pc0lubmVyIGlzIHRydWUKIFBBU1MgKG5ldyBpbm5lci5ET01QYXJzZXIoKSkuY29uc3Ry
dWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuRmlsZVJlYWRlcigpKS5pc0lu
bmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5GaWxlUmVhZGVyKCkpLmNvbnN0cnVjdG9yLmlz
SW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkZvcm1EYXRhKCkpLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyAobmV3IGlubmVyLkZvcm1EYXRhKCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyAobmV3IGlubmVyLkltYWdlKCkpLmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQu
dHh0CmluZGV4IDc0MjVmOTguLjMxNzBjODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyMyw2
ICsyMjMsNyBAQCBOZXZlciBmb3VuZCBFbnRpdHkKIE5ldmVyIGZvdW5kIEVudGl0eVJlZmVyZW5j
ZQogTmV2ZXIgZm91bmQgRmlsZQogTmV2ZXIgZm91bmQgRmlsZUxpc3QKK05ldmVyIGZvdW5kIEZp
bGVSZWFkZXIKIE5ldmVyIGZvdW5kIEZvcm1EYXRhCiBOZXZlciBmb3VuZCBIVE1MQWxsQ29sbGVj
dGlvbgogTmV2ZXIgZm91bmQgSFRNTEJhc2VFbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCBiNDRi
OWIyLi4zZmVlMGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUt
aW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTg1LDggKzg1LDEyIEBAIFBBU1MgaW5u
ZXIuRXZlbnRTb3VyY2UuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkV2ZW50U291cmNlLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5GaWxlLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyBpbm5lci5GaWxlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5l
ci5GaWxlRXJyb3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLkZpbGVFcnJvci5jb25zdHJ1
Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRmlsZUxpc3QuaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLkZpbGVMaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBp
bm5lci5GaWxlUmVhZGVyLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlUmVhZGVyLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5Gb3JtRGF0YS5pc0lubmVyIGlz
IHRydWUKIFBBU1MgaW5uZXIuRm9ybURhdGEuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLkhUTUxBbGxDb2xsZWN0aW9uLmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTA0
YzY4YzZmYjAwYWQxNDQ3ZDk4YjhiNmVhMWNiNjRjZTg5NTAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAyMzgyCnpjbWRUYCtmRCo4NWFvSGxWbT81a2klSz9ZZD82d3twZD8mO0FHVSl1RGVhfm1r
QGYzczdYeGwyMX5GTUJgX3l6VQp6WEhISmZQQmJDTVU8cmxQJnchd2ZacWl5aENlMUxIaWxUNT1q
MlczeXhRSXJTa3pBMWd2ZXNDam01LX4wdzQlKlQKeldgc3tqYl92UiRBbmc7Jmx4a1pJdzlMNkU4
djs2Kk5zWUR1JEpWMiZsPmRZdjZtKlExX24/VFllZkxEUGR8Q0lSCno3QFR9N0MpKnJUc0FlOURt
fXk8KjtsQmJFJE96TlhwY1lvSUtTKWo/dmByN0E3TihRP1g3WXp4KnJEIXxRc3lZcwp6d2R2dF91
eU1RN2gwZ0Z7JWspV0w5LUpLSjxuJjFQIVUqMFV0VD4xUVVMYEw7Jj5Wd2RsSj8kU21vTFdgVE1L
RlEKejhgTXojYF5rJGVNZ0RiYFVAXyVZdC1+RHVSKEV6LXRBQWd7VGxQeD40YE1qYTYtcz9HTHIz
a2F2dktkcSYzZWkwCnp3PGVqUFFlbk1WZGlsdVE+bmlMTnVxMGo+O1E7K29WNi1ZZ3A8aExlQ1hm
enRZY2dfPExAb2NSLV9MbkJlQyRUaQpFSjJXOVhqc080dgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjNlYzE2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKQEAgLTAsMCArMSwyMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBp
ZD0iZmlsZSIgb25jaGFuZ2U9Im9uSW5wdXRGaWxlQ2hhbmdlKCkiIG11bHRpcGxlPgorPHByZSBp
ZD0nY29uc29sZSc+PC9wcmU+CisKKzxzY3JpcHQ+Cit2YXIgdGVzdENhc2VzID0gWworICAgICJ0
ZXN0UmVhZGluZ05vbkV4aXN0ZW50RmlsZSIsCisgICAgInRlc3RSZWFkaW5nRW1wdHlGaWxlQXNC
aW5hcnlTdHJpbmciLAorICAgICJ0ZXN0UmVhZGluZ0VtcHR5RmlsZUFzVGV4dCIsCisgICAgInRl
c3RSZWFkaW5nRW1wdHlGaWxlQXNEYXRhVVJMIiwKKyAgICAidGVzdFJlYWRpbmdVVEY4RW5jb2Rl
ZEZpbGVBc0JpbmFyeVN0cmluZyIsCisgICAgInRlc3RSZWFkaW5nVVRGOEVuY29kZWRGaWxlQXNU
ZXh0IiwKKyAgICAidGVzdFJlYWRpbmdVVEYxNkJFQk9NRW5jb2RlZEZpbGVBc1RleHQiLAorICAg
ICJ0ZXN0UmVhZGluZ1VURjE2TEVCT01FbmNvZGVkRmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFk
aW5nVVRGOEJPTUVuY29kZWRGaWxlQXNUZXh0IiwKKyAgICAidGVzdFJlYWRpbmdVVEYxNkJFRW5j
b2RlZEZpbGVBc1RleHQiLAorICAgICJ0ZXN0UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFzVGV4
dFdpdGhVVEYxNkVuY29kaW5nIiwKKyAgICAidGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0Rh
dGFVUkwiLAorICAgICJ0ZXN0TXVsdGlwbGVSZWFkcyIsCitdOwordmFyIHRlc3RJbmRleCA9IDA7
CisKK3ZhciB0ZXN0RmlsZUluZm9MaXN0ID0gWworICAgIHsgJ25hbWUnOiAnbm9uLWV4aXN0ZW50
JywgJ3BhdGgnOiAncmVzb3VyY2VzL25vbi1leGlzdGVudCcgfSwKKyAgICB7ICduYW1lJzogJ2Vt
cHR5LWZpbGUnLCAncGF0aCc6ICdyZXNvdXJjZXMvZW1wdHktZmlsZScgfSwKKyAgICB7ICduYW1l
JzogJ1VURjgtZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9VVEY4LnR4dCcgfSwKKyAgICB7ICdu
YW1lJzogJ1VURjE2QkUtQk9NLWZpbGUnLCAncGF0aCc6ICdyZXNvdXJjZXMvVVRGMTZCRS1CT00u
dHh0JyB9LAorICAgIHsgJ25hbWUnOiAnVVRGMTZMRS1CT00tZmlsZScsICdwYXRoJzogJ3Jlc291
cmNlcy9VVEYxNkxFLUJPTS50eHQnIH0sCisgICAgeyAnbmFtZSc6ICdVVEY4LUJPTS1maWxlJywg
J3BhdGgnOiAncmVzb3VyY2VzL1VURjgtQk9NLnR4dCcgfSwKKyAgICB7ICduYW1lJzogJ1VURjE2
QkUtZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9VVEYxNkJFLnR4dCcgfSwKK107Cit2YXIgdGVz
dEZpbGVzID0geyB9OworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUZpbGVSZWFkZXIoKQor
eworICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworCisgICAgcmVhZGVyLm9ubG9h
ZHN0YXJ0ID0gbG9hZFN0YXJ0ZWQ7CisgICAgcmVhZGVyLm9ubG9hZCA9IGxvYWRlZDsKKyAgICBy
ZWFkZXIub25hYm9ydCA9IGxvZ0V2ZW50OworICAgIHJlYWRlci5vbmxvYWRlbmQgPSBsb2FkRW5k
ZWQ7CisgICAgcmVhZGVyLm9uZXJyb3IgPSBsb2FkRmFpbGVkOworCisgICAgbG9nKCJyZWFkeVN0
YXRlOiAiICsgcmVhZGVyLnJlYWR5U3RhdGUpOworICAgIHJldHVybiByZWFkZXI7Cit9CisKK2Z1
bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KQoreworICAgIGxvZygiUmVjZWl2ZWQgIiArIGV2ZW50LnR5
cGUgKyAiIGV2ZW50Iik7Cit9CisKK2Z1bmN0aW9uIGxvYWRTdGFydGVkKGV2ZW50KQoreworICAg
IGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZChldmVudCkKK3sKKyAgICBsb2dFdmVu
dChldmVudCk7CisgICAgbG9nKCJyZWFkeVN0YXRlOiAiICsgZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUpOworICAgIGxvZygicmVzdWx0IHNpemU6ICIgKyBldmVudC50YXJnZXQucmVzdWx0Lmxlbmd0
aCk7CisgICAgbG9nKCJyZXN1bHQ6ICIgKyBldmVudC50YXJnZXQucmVzdWx0KTsKK30KKworZnVu
Y3Rpb24gbG9hZEZhaWxlZChldmVudCkKK3sKKyAgICBsb2dFdmVudChldmVudCk7CisgICAgbG9n
KCJyZWFkeVN0YXRlOiAiICsgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUpOworICAgIGxvZygiZXJy
b3IgY29kZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5jb2RlKTsKK30KKworZnVuY3Rpb24gbG9h
ZEVuZGVkKGV2ZW50KQoreworICAgIGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBydW5OZXh0VGVzdCgp
OworfQorCitmdW5jdGlvbiBvbklucHV0RmlsZUNoYW5nZSgpCit7CisgICAgdmFyIGZpbGVzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUiKS5maWxlczsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKQorICAgICAgICB0ZXN0RmlsZXNbdGVzdEZpbGVJbmZv
TGlzdFtpXVsnbmFtZSddXSA9IGZpbGVzW2ldOworCisgICAgcnVuTmV4dFRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQoreworICAgIGlmICh0ZXN0SW5kZXggPCB0ZXN0Q2FzZXMu
bGVuZ3RoKSB7CisgICAgICAgIHRlc3RJbmRleCsrOworICAgICAgICB3aW5kb3dbdGVzdENhc2Vz
W3Rlc3RJbmRleCAtIDFdXSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGxvZygiRE9ORSIpOwor
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gdGVz
dFJlYWRpbmdOb25FeGlzdGVudEZpbGUoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgbm9u
LWV4aXN0ZW50IGZpbGUiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOwor
ICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzWydub24tZXhpc3RlbnQnXSk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nRW1wdHlGaWxlQXNCaW5hcnlTdHJpbmcoKQorewor
ICAgIGxvZygiVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgYmluYXJ5IHN0cmluZyIpOwor
ICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0Jp
bmFyeVN0cmluZyh0ZXN0RmlsZXNbJ2VtcHR5LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RS
ZWFkaW5nRW1wdHlGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhbiBlbXB0
eSBmaWxlIGFzIHRleHQiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOwor
ICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snZW1wdHktZmlsZSddKTsKK30KKworZnVu
Y3Rpb24gdGVzdFJlYWRpbmdFbXB0eUZpbGVBc0RhdGFVUkwoKQoreworICAgIGxvZygiVGVzdCBy
ZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgZGF0YSBVUkwiKTsKKyAgICB2YXIgcmVhZGVyID0gY3Jl
YXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snZW1w
dHktZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0Jp
bmFyeVN0cmluZygpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtOCBmaWxlIGFzIGJp
bmFyeSBzdHJpbmciKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAg
IHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGOEVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2co
IlRlc3QgcmVhZGluZyBhIFVURi04IGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBj
cmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEY4
LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGMTZCRUJPTUVuY29kZWRGaWxl
QXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIEJPTSBmaWxlIGFz
IHRleHQiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRl
ci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGMTZCRS1CT00tZmlsZSddKTsKK30KKworZnVuY3Rp
b24gdGVzdFJlYWRpbmdVVEYxNkxFQk9NRW5jb2RlZEZpbGVBc1RleHQoKQoreworICAgIGxvZygi
VGVzdCByZWFkaW5nIGEgVVRGLTE2TEUgQk9NIGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFk
ZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVz
WydVVEYxNkxFLUJPTS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjhCT01F
bmNvZGVkRmlsZUFzVGV4dCgpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtOCBCT00g
ZmlsZSBhcyB0ZXh0Iik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAg
ICByZWFkZXIucmVhZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjgtQk9NLWZpbGUnXSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RSZWFkaW5nVVRGMTZCRUVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2co
IlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIGZpbGUgYXMgdGV4dCB3aXRoIGRlZmF1bHQgZW5jb2Rp
bmciKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5y
ZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGMTZCRS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0
UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFzVGV4dFdpdGhVVEYxNkVuY29kaW5nKCkKK3sKKyAg
ICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIGZpbGUgYXMgdGV4dCB3aXRoIFVURi0xNkJF
IGVuY29kaW5nIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICBy
ZWFkZXIucmVhZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjE2QkUtZmlsZSddLCAiVVRGLTE2QkUiKTsK
K30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0RhdGFVUkwoKQorewor
ICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTggZmlsZSBhcyBkYXRhIFVSTCIpOworICAgIHZh
ciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwo
dGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RNdWx0aXBsZVJlYWRz
KCkKK3sKKyAgICBsb2coIlRlc3QgY2FsbGluZyBtdWx0aXBsZSByZWFkIG1ldGhvZHMgYW5kIG9u
bHkgbGFzdCBvbmUgaXMgcHJvY2Vzc2VkIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVS
ZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlc1snVVRGOC1m
aWxlJ10pOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOwor
ICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOworfQorCitm
dW5jdGlvbiBydW5UZXN0cygpCit7CisgICAgdmFyIHBhdGhzT25seSA9IHRlc3RGaWxlSW5mb0xp
c3QubWFwKGZ1bmN0aW9uKGZpbGVTcGVjKSB7IHJldHVybiBmaWxlU3BlY1sncGF0aCddOyB9KTsK
KyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMocGF0aHNPbmx5KTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3RzOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYx
NkJFLUJPTS50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLUJP
TS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjViYzdmMzBiZjdiYzZkYjRmZTY4YjI3ZTY0MTFlM2QxNDNkYjJi
MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIKUmNtZXpPcFRVRDZsXzNXUl44cHxPMU0mYT4K
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXMvcmVzb3VyY2VzL1VURjE2QkUudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJj
ZXMvVVRGMTZCRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM4MTQ0Njg4ZTM1MDRjODYzM2UwYWY1Y2YxMDM3
MTRkZjY5MDQzNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAKUGNtWlNaVWBTPWkwbTZJJDJf
eW1hCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
L3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRhYjU5ZTU2MTc1NTYzMDUz
ZmUyNGNhNjFhZmEyNzEwNjJmODMyNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIKUmNtZXpX
JngwWUFBcU5RYTgyfTtwMU0mYT4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgtQk9NLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgtQk9NLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zNTczMjNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC1CT00udHh0CkBAIC0wLDAgKzEgQEAKK++7v0hlbGxv
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9yZXNvdXJjZXMvVVRGOC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291
cmNlcy9VVEY4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWIyZjhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRG
OC50eHQKQEAgLTAsMCArMSBAQAorSGVsbG8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9lbXB0eS1maWxlIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvZW1wdHktZmlsZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0OTg3YzY0Li5jNTI3
ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9y
cy1leHBlY3RlZC50eHQKQEAgLTQyLDcgKzQyLDkgQEAgUEFTUyBFbnRpdHlSZWZlcmVuY2UudG9T
dHJpbmcoKSBpcyAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nCiBQQVNTIEV2
ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nCiBQQVNTIEV2ZW50
RXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rv
cl0nCiBQQVNTIEZpbGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBGaWxlQ29uc3RydWN0b3JdJwor
UEFTUyBGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAnW29iamVjdCBGaWxlRXJyb3JDb25zdHJ1Y3Rv
cl0nCiBQQVNTIEZpbGVMaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRmlsZUxpc3RDb25zdHJ1
Y3Rvcl0nCitQQVNTIEZpbGVSZWFkZXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBGaWxlUmVhZGVy
Q29uc3RydWN0b3JdJwogUEFTUyBGb3JtRGF0YS50b1N0cmluZygpIGlzICdbb2JqZWN0IEZvcm1E
YXRhQ29uc3RydWN0b3JdJwogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbi50b1N0cmluZygpIGlzICdb
b2JqZWN0IEhUTUxBbGxDb2xsZWN0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBIVE1MQW5jaG9yRWxl
bWVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3Jd
JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vcHJv
dG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXgg
N2RjZGEwZS4uMjExODg0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CkBAIC04Myw4ICs4MywxMiBAQCBQQVNTIGlubmVyLkV2ZW50U291cmNlLmlz
SW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5FdmVudFNvdXJjZS5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1MgaW5uZXIuRmlsZS5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRmls
ZS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRmlsZUVycm9yLmlzSW5u
ZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlRXJyb3IuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0
cnVlCiBQQVNTIGlubmVyLkZpbGVMaXN0LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5GaWxl
TGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRmlsZVJlYWRlci5p
c0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRmlsZVJlYWRlci5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1MgaW5uZXIuRm9ybURhdGEuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVy
LkZvcm1EYXRhLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5IVE1MQWxs
Q29sbGVjdGlvbi5pc0lubmVyIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXgg
NWExNTk5NS4uZDFmM2ExZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTM0MzAsNiAr
MzQzMCw3IEBAIGh0dHAvdGVzdHMvbG9jYWwvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwK
IGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEuaHRtbAogaHR0cC90ZXN0
cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS13aXRoLXNsaWNlZC1maWxlLmh0bWwKIGh0
dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvdXBsb2FkLWV2ZW50cy5odG1sCitmYXN0L2ZpbGVzL2Zp
bGUtcmVhZGVyLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1zZWVrLmh0
bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCiBodHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDIzZjE4MjEuLmVlYjgwODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMzUzLDYgKzM1
Myw3IEBAIGZhc3QvZm9ybXMvZ2V0LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1maWxlLWNyYXNoLmh0bWwKIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5odG1sCitm
YXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKIAogIyBNaXNzaW5nIGRyYWcgJiBkcm9wIGZ1bmN0
aW9uYWxpdHkgaW4gRFJUCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1pbnB1dHRleHQtYWNxdWly
ZXMtc3R5bGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlYmRmY2FkLi4zYjZk
NDdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMjAwLDYgKzIwMCw3IEBAIGZhc3Qv
Zm9ybXMvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlw
Ym9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctZmlsZS1j
cmFzaC5odG1sCiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwK
K2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbAogCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gdGVzdCBJRE4gPHJkYXI6Ly9wcm9ibGVtLzUzMDE5NTQ+
CiBmYXN0L2VuY29kaW5nL2lkbi1zZWN1cml0eS5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAyOGJjZjAuLjFjMDcwYTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMzIgQEAKIDIwMTAtMDUtMDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxl
UmVhZGVyIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4NjA5CisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlcy9maWxlLXJlYWRlci5o
dG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmZpbGVSZWFkZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ29uc3RydWN0b3IuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDb25zdHJ1Y3Rvci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAqIGh0bWwvRmlsZUVycm9y
LmlkbDoKKyAgICAgICAgKiBodG1sL0ZpbGVSZWFkZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5pZGw6CisKKzIwMTAtMDUtMDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCiAKICAgICAgICAgSW1w
cm92ZSBjb2RlIGdlbmVyYXRvciBzY3JpcHRzIHRvIHN1cHBvcnQgY29udmVydGluZyBTY3JpcHRT
dHJpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwppbmRleCA4ODFjNzg4Li4wNzUwZmI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTUwLDggKzUwLDggQEAgRU5BQkxFX0RBVEFMSVNU
ID0gRU5BQkxFX0RBVEFMSVNUOwogRU5BQkxFX0RPTV9TVE9SQUdFID0gRU5BQkxFX0RPTV9TVE9S
QUdFOwogRU5BQkxFX0VWRU5UU09VUkNFID0gRU5BQkxFX0VWRU5UU09VUkNFOwogRU5BQkxFX0ZJ
TFRFUlMgPSBFTkFCTEVfRklMVEVSUzsKLUVOQUJMRV9GSUxFX1JFQURFUiA9IDsKLUVOQUJMRV9G
SUxFX1dSSVRFUiA9IDsKK0VOQUJMRV9GSUxFX1JFQURFUiA9IEVOQUJMRV9GSUxFX1JFQURFUjsK
K0VOQUJMRV9GSUxFX1dSSVRFUiA9IEVOQUJMRV9GSUxFX1dSSVRFUjsKIEVOQUJMRV9HRU9MT0NB
VElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0UgPSBFTkFCTEVf
SUNPTkRBVEFCQVNFOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmlu
ZGV4IGM4YmUzM2YuLmY2NmM4NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC04OCw2ICs4OCw3IEBACiAj
aW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFcnJvci5jcHAiCiAjaW5jbHVk
ZSAiSlNGaWxlTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNGaWxlUmVhZGVyLmNwcCIKICNpbmNsdWRl
ICJKU0dlb2xvY2F0aW9uLmNwcCIKICNpbmNsdWRlICJKU0dlb3Bvc2l0aW9uLmNwcCIKICNpbmNs
dWRlICJKU0hpc3RvcnkuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGI0MTIwZjkuLjU4NWU0ZDAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAg
ICBGaWxlIFwKICAgICBGaWxlRXJyb3IgXAogICAgIEZpbGVMaXN0IFwKKyAgICBGaWxlUmVhZGVy
IFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2VvcG9zaXRpb24gXAogICAgIEhUTUxBbGxDb2xs
ZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCmluZGV4IDA1ODFkYWUuLjNiMWYyZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMzMwLDYgKzMzMCw3IEBAIElETF9C
SU5ESU5HUyArPSBcCiAgICAgaHRtbC9GaWxlLmlkbCBcCiAgICAgaHRtbC9GaWxlRXJyb3IuaWRs
IFwKICAgICBodG1sL0ZpbGVMaXN0LmlkbCBcCisgICAgaHRtbC9GaWxlUmVhZGVyLmlkbCBcCiAg
ICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRNTEF1ZGlvRWxlbWVu
dC5pZGwgXAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI5YmM4MjMuLjZhNTNlYzEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzc1Nyw2ICszNzU3LDE0IEBACiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlUmVhZGVyLmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlUmVhZGVy
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2Vv
bG9jYXRpb24uY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDUwYzNmZC4uZmE4NjM5YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY1Nyw2ICs2
NTcsMTAgQEAKIAkJMkU0MzQ2NTUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDMwRjU0
NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFNDM0NjU4MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9z
c1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
ICovOyB9OwogCQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU3
MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oICovOyB9OworCQkyRTk0RjQz
QjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDM5MTE5MjA3REEwMEI3Rjc1RCAvKiBK
U0ZpbGVSZWFkZXIuY3BwICovOyB9OworCQkyRTk0RjQzQzExOTIwN0RBMDBCN0Y3NUQgLyogSlNG
aWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggKi87IH07CisJCTJF
OTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGM0NCMTE4QjkwOEUwMEI3Rjc1RCAv
KiBGaWxlUmVhZGVyLmNwcCAqLzsgfTsKKwkJMkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZp
bGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFOTRGM0NDMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmggKi87IH07CiAJCTJFQTc2
ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTc2ODAzMEZFNzEyNjQw
MEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgfTsKIAkJMkVBRkFGMEUx
MEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkVBRkFGMEIxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwICov
OyB9OwogCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2
IC8qIEJsb2IuaCAqLzsgfTsKQEAgLTYwOTgsNiArNjEwMiw5IEBACiAJCTJFNDM0NjU3MEY1NDZB
OTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcm9zc1RocmVhZENvcGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRTk0RjNDQjExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkU5NEYzQ0MxMThCOTA4RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVJlYWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQyNzExOTIwNUIzMDBCN0Y3NUQgLyogRmlsZVJl
YWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmlsZVJlYWRlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTRGNDM5MTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVS
ZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlUmVh
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5NEY0M0ExMTkyMDdEQTAw
QjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBNzY4MDMw
RkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgcGF0aCA9
IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMzA4MSw2ICsxMzA4OCw3IEBACiAJCQkJQkMxODgxREMwRTA4QzU0MzAwMDQ4QzEzIC8q
IEZpbGVMaXN0LmlkbCAqLywKIAkJCQkyRTk0RjNDQjExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJl
YWRlci5jcHAgKi8sCiAJCQkJMkU5NEYzQ0MxMThCOTA4RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIu
aCAqLywKKwkJCQkyRTk0RjQyNzExOTIwNUIzMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5pZGwgKi8s
CiAJCQkJODk1MjUzRDQxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW0uY3BwICovLAogCQkJ
CTg5NTI1M0Q1MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtLmggKi8sCiAJCQkJODk1MjUz
RDYxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLywKQEAgLTEzNDMxLDYg
KzEzNDM5LDggQEAKIAkJCQkyRTNCQzBDOTExN0QzRTA4MDBCOTQwOUEgLyogSlNGaWxlRXJyb3Iu
aCAqLywKIAkJCQlCQzAwRjAxMjBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlTGlzdC5jcHAgKi8s
CiAJCQkJQkMwMEYwMTMwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZUxpc3QuaCAqLywKKwkJCQky
RTk0RjQzOTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCAqLywKKwkJCQkyRTk0
RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggKi8sCiAJCQkJQkM5N0U0MTAx
MDkxNTRGQTAwMTBEMzYxIC8qIEpTSFRNTEFsbENvbGxlY3Rpb24uY3BwICovLAogCQkJCUJDOTdF
NDExMTA5MTU0RkEwMDEwRDM2MSAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmggKi8sCiAJCQkJMUE0
QTJERUIwQTFCODUyQTAwQzgwN0Y4IC8qIEpTSFRNTEFuY2hvckVsZW1lbnQuY3BwICovLApAQCAt
MTg5NTMsNiArMTg5NjMsOCBAQAogCQkJCUI1OURENkExMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTUx
MTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTJFOTRGNDNDMTE5MjA3REEwMEI3Rjc1RCAvKiBK
U0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTJFOTRGNDUxMTE5MjA5NkEwMEI3Rjc1
RCAvKiBGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxMTk1LDYgKzIxMjA3LDggQEAK
IAkJCQlCNTlERDZBMjExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2QTYxMTkwMkE2MjAwN0U5Njg0IC8q
IEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2QUEx
MTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBGaWxlUmVh
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50VGFyZ2V0LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAK
aW5kZXggNmVhMTEzNS4uOTQ4ODg5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50VGFyZ2V0LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQu
Y3BwCkBAIC04Myw2ICs4MywxMSBAQAogI2luY2x1ZGUgIldlYlNvY2tldC5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisjaW5jbHVkZSAiSlNGaWxlUmVhZGVyLmgiCisjaW5j
bHVkZSAiRmlsZVJlYWRlci5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0OSw2ICsxNTQsMTEgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnRUYXJnZXQq
IHRhcmcKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgd2ViU29ja2V0KTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEZJTEVfUkVBREVSKQorICAgIGlmIChGaWxlUmVhZGVyKiBmaWxlUmVhZGVyID0g
dGFyZ2V0LT50b0ZpbGVSZWFkZXIoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBmaWxlUmVhZGVyKTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIGpzTnVsbCgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
CmluZGV4IGIyZWVlYjQuLjRhOTI1OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5j
cHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2luY2x1ZGUg
IlY4RXZlbnRMaXN0ZW5lckxpc3QuaCIKICNpbmNsdWRlICJWOEV2ZW50U291cmNlLmgiCisjaW5j
bHVkZSAiVjhGaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSAiVjhIVE1MQ29sbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlY4SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIK
QEAgLTQxOCw2ICs0MTksMTEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NV3JhcHBlcjo6
Y29udmVydEV2ZW50VGFyZ2V0VG9WOE9iamVjdChFdmVudFRhcmdldCogdGEKICAgICAgICAgcmV0
dXJuIHRvVjgoZXZlbnRTb3VyY2UpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRklMRV9SRUFERVIp
CisgICAgaWYgKEZpbGVSZWFkZXIqIGZpbGVSZWFkZXIgPSB0YXJnZXQtPnRvRmlsZVJlYWRlcigp
KQorICAgICAgICByZXR1cm4gdG9WOChmaWxlUmVhZGVyKTsKKyNlbmRpZgorCiAgICAgQVNTRVJU
KDApOwogICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0ZpbGVFcnJvci5pZGwgYi9XZWJDb3JlL2h0bWwvRmlsZUVycm9yLmlk
bAppbmRleCA2YzJiMDhjLi5hZGMyNWU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRmlsZUVy
cm9yLmlkbAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZUVycm9yLmlkbApAQCAtMzIsOCArMzIsMTAg
QEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJ
TEVfUkVBREVSfEZJTEVfV1JJVEVSCiAgICAgXSBGaWxlRXJyb3IgeworI2lmICFkZWZpbmVkKExB
TkdVQUdFX09CSkVDVElWRV9DKQogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgPSA3OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBO
T1RfRk9VTkRfRVJSID0gODsKKyNlbmRpZgogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
RUNVUklUWV9FUlIgPSAxODsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQUJPUlRfRVJS
ID0gMjA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PVF9SRUFEQUJMRV9FUlIgPSAy
NDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmlkbCBiL1dlYkNvcmUvaHRt
bC9GaWxlUmVhZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTMz
ZjUxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIuaWRsCkBAIC0w
LDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPUZJTEVfUkVBREVSLAorICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAorICAgICAgICBD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAorICAgICAgICBFdmVudFRhcmdldCwKKyAg
ICAgICAgTm9TdGF0aWNUYWJsZXMKKyAgICBdIEZpbGVSZWFkZXIgeworICAgICAgICAvLyByZWFk
eSBzdGF0ZXMKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRU1QVFkgPSAwOworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMT0FESU5HID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgRE9ORSA9IDI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCByZWFkeVN0YXRlOworCisgICAgICAgIC8vIGFzeW5jIHJlYWQgbWV0aG9kcworICAgICAg
ICB2b2lkIHJlYWRBc0JpbmFyeVN0cmluZyhpbiBCbG9iIGZpbGVCbG9iKTsKKyAgICAgICAgdm9p
ZCByZWFkQXNUZXh0KGluIEJsb2IgZmlsZUJsb2IsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGVu
Y29kaW5nKTsKKyAgICAgICAgdm9pZCByZWFkQXNEYXRhVVJMKGluIEZpbGUgZmlsZSk7CisKKyAg
ICAgICAgdm9pZCBhYm9ydCgpOworCisgICAgICAgIC8vIGZpbGUgZGF0YQorICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0NvbnZlcnRTY3JpcHRTdHJpbmddIERPTVN0cmluZyByZXN1bHQ7CisK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVFcnJvciBlcnJvcjsKKworICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKKyAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25wcm9ncmVzczsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25sb2FkOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFib3J0OworICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9yOworICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmxvYWRlbmQ7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNTk3NTVh
YS4uMTFmMDU1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTcxNiw2ICs3MTYsNyBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgYXR0cmlidXRlIERPTUZvcm1EYXRhQ29uc3RydWN0b3IgRm9ybURhdGE7
CiAKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1GSUxFX1JFQURFUnxGSUxFX1dSSVRF
Ul0gRmlsZUVycm9yQ29uc3RydWN0b3IgRmlsZUVycm9yOworICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPUZJTEVfUkVBREVSXSBGaWxlUmVhZGVyQ29uc3RydWN0b3IgRmlsZVJlYWRlcjsK
IAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggMDM5Y2Q2Yy4uZGJjYjE2YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAt
MDUtMDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFj
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5
CisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBUdXJuIG9uIEZpbGVSZWFkZXIgc3VwcG9ydCBm
b3IgQ2hyb21pdW0uCisKIDIwMTAtMDUtMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQppbmRleCA3MTQ2Njg1Li44N2E2ZTA5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpA
QCAtNDcsNyArNDcsNyBAQAogICAgICAgICAnRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
Uz0xJywKICAgICAgICAgJ0VOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVD0wJywKICAgICAgICAgJ0VO
QUJMRV9ET01fU1RPUkFHRT0xJywKLSAgICAgICAgJ0VOQUJMRV9GSUxFX1JFQURFUj0wJywKKyAg
ICAgICAgJ0VOQUJMRV9GSUxFX1JFQURFUj0xJywKICAgICAgICAgJ0VOQUJMRV9GSUxFX1dSSVRF
Uj0wJywKICAgICAgICAgJ0VOQUJMRV9HRU9MT0NBVElPTj0xJywKICAgICAgICAgJ0VOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSPTEnLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
IGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY1YmI4NTkuLjNjMTRjZWQgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMC0wNS0wNiAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3Nl
IEZpbGVSZWFkZXIgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzg2MDkKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiB0
dXJuIG9uIGJ1aWxkaW5nIEZpbGVSZWFkZXIgZm9yIGFwcGxlJ3MgV2ViS2l0LgorCiAyMDEwLTA1
LTA2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0
XSBVbnJldmlld2VkIGJ1aWxkZml4IGFmdGVyIHI1ODkxNy4KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXQKaW5kZXggM2EzZWRiOS4uNGQwMDFmNCAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAg
LTE3OCw3ICsxNzgsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9YU0xUIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHhzbHRTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAiZmlsZS1yZWFkZXIiLCBkZXNjID0+ICJUb2dnbGUgRmlsZVJlYWRlciBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZJTEVfUkVBREVSIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJGZpbGVSZWFkZXJTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9GSUxFX1JFQURFUiIsIGRlZmF1bHQgPT4gaXNBcHBsZVdlYktpdCgpLCB2YWx1ZSA9PiBcJGZp
bGVSZWFkZXJTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZmlsZS13cml0ZXIiLCBkZXNj
ID0+ICJUb2dnbGUgRmlsZVdyaXRlciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0ZJTEVfV1JJVEVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZpbGVXcml0ZXJTdXBwb3J0
IH0sCg==
</data>
<flag name="commit-queue"
          id="39490"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55331</attachid>
            <date>2010-05-06 18:17:07 -0700</date>
            <delta_ts>2010-05-07 11:31:30 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38609_5</filename>
            <type>text/plain</type>
            <size>35197</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZTRiMzZmLi45NzljMDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDUt
MDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisK
KyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdGVzdCBiYXNpYyBGaWxlUmVhZGVyIG9wZXJh
dGlvbnMuCisgICAgICAgIEFsc28gdXBkYXRlIGxheW91dCB0ZXN0cyBhZmZlY3RlZCBieSBhZGRp
bmcgdGhlIGNvbnN0cnVjdG9ycyB0byBET01XaW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlcy9yZXNvdXJjZXMvVVRGMTZMRS1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL3Jlc291cmNlcy9VVEY4LUJPTS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXMv
cmVzb3VyY2VzL1VURjgudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNl
cy9lbXB0eS1maWxlOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1NraXBwZWQ6IFNraXAgdGhlIG5ldyB0ZXN0IGJlY2F1c2UgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gZ3RrIHBsYXRmb3JtLgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6IFNraXAgdGhlIG5ldyB0ZXN0IGJlY2F1c2UgZXZlbnRTZW5kZXIu
YmVnaW5EcmFnV2l0aEZpbGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcXQgcGxhdGZvcm0uCisgICAg
ICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IFNraXAgdGhlIG5ldyB0ZXN0IGJlY2F1c2UgZXZl
bnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gd2luIHBsYXRm
b3JtLgorCiAyMDEwLTA1LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIERhbiBCZXJuc3RlaW4uLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKaW5kZXggMWU5MmQ0OS4uNzU1NzYyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CkBAIC05MDAsOSArOTAwLDMyIEBAIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUu
ZGlzcGF0Y2hFdmVudCBbZnVuY3Rpb25dCiB3aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLnJl
bW92ZUV2ZW50TGlzdGVuZXIgW2Z1bmN0aW9uXQogd2luZG93LkZpbGUgW29iamVjdCBGaWxlQ29u
c3RydWN0b3JdCiB3aW5kb3cuRmlsZS5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93
LkJsb2IucHJvdG90eXBlXQord2luZG93LkZpbGVFcnJvciBbb2JqZWN0IEZpbGVFcnJvckNvbnN0
cnVjdG9yXQord2luZG93LkZpbGVFcnJvci5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxl
RXJyb3IuRU5DT0RJTkdfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLk5PVF9GT1VORF9F
UlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IuTk9UX1JFQURBQkxFX0VSUiBbbnVtYmVyXQor
d2luZG93LkZpbGVFcnJvci5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KK3dp
bmRvdy5GaWxlRXJyb3IuU0VDVVJJVFlfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnBy
b3RvdHlwZSBbb2JqZWN0IEZpbGVFcnJvclByb3RvdHlwZV0KK3dpbmRvdy5GaWxlRXJyb3IucHJv
dG90eXBlLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkZpbGVFcnJvci5wcm90b3R5cGUuRU5D
T0RJTkdfRVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZS5OT1RfRk9VTkRf
RVJSIFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZS5OT1RfUkVBREFCTEVfRVJS
IFtudW1iZXJdCit3aW5kb3cuRmlsZUVycm9yLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgW251bWJlcl0KK3dpbmRvdy5GaWxlRXJyb3IucHJvdG90eXBlLlNFQ1VSSVRZX0VS
UiBbbnVtYmVyXQogd2luZG93LkZpbGVMaXN0IFtvYmplY3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0K
IHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUgW29iamVjdCBGaWxlTGlzdFByb3RvdHlwZV0KIHdp
bmRvdy5GaWxlTGlzdC5wcm90b3R5cGUuaXRlbSBbZnVuY3Rpb25dCit3aW5kb3cuRmlsZVJlYWRl
ciBbb2JqZWN0IEZpbGVSZWFkZXJDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5GaWxlUmVhZGVyLnByb3Rv
dHlwZSBbb2JqZWN0IEZpbGVSZWFkZXJQcm90b3R5cGVdCit3aW5kb3cuRmlsZVJlYWRlci5wcm90
b3R5cGUuRE9ORSBbbnVtYmVyXQord2luZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLkVNUFRZIFtu
dW1iZXJdCit3aW5kb3cuRmlsZVJlYWRlci5wcm90b3R5cGUuTE9BRElORyBbbnVtYmVyXQord2lu
ZG93LkZpbGVSZWFkZXIucHJvdG90eXBlLmFib3J0IFtmdW5jdGlvbl0KK3dpbmRvdy5GaWxlUmVh
ZGVyLnByb3RvdHlwZS5yZWFkQXNCaW5hcnlTdHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkZpbGVS
ZWFkZXIucHJvdG90eXBlLnJlYWRBc0RhdGFVUkwgW2Z1bmN0aW9uXQord2luZG93LkZpbGVSZWFk
ZXIucHJvdG90eXBlLnJlYWRBc1RleHQgW2Z1bmN0aW9uXQogd2luZG93LkZvcm1EYXRhIFtvYmpl
Y3QgRm9ybURhdGFDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Gb3JtRGF0YS5wcm90b3R5cGUgW29iamVj
dCBGb3JtRGF0YVByb3RvdHlwZV0KIHdpbmRvdy5Gb3JtRGF0YS5wcm90b3R5cGUuYXBwZW5kIFtm
dW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNGI3
YTYyZC4uMjk4MDVhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQK
QEAgLTQ4LDcgKzQ4LDkgQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih3aW5kb3csICdFdmVudCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0V2ZW50RXhjZXB0aW9uJykgaXMgJ29iamVj
dCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
RXZlbnRTb3VyY2UnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxlJykgaXMgJ29iamVjdCcKK1BBU1MgdHlwZW9mIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRmlsZUVycm9yJykgaXMgJ29i
amVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93
LCAnRmlsZUxpc3QnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdGaWxlUmVhZGVyJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRm9ybURhdGEnKSBp
cyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdGdW5jdGlvbicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0hUTUxBbGxDb2xsZWN0aW9uJykgaXMgJ29iamVj
dCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMt
cHJvdG90eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3Rl
ZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0CmluZGV4IDY1MDlmMzcuLjA1NjNkNGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJv
dG90eXBlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RydWN0
ZWQtb2JqZWN0cy1wcm90b3R5cGVzLWV4cGVjdGVkLnR4dApAQCAtNyw2ICs3LDggQEAgUEFTUyAo
bmV3IGlubmVyLkF1ZGlvKCkpLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkF1ZGlv
KCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkRPTVBhcnNl
cigpKS5pc0lubmVyIGlzIHRydWUKIFBBU1MgKG5ldyBpbm5lci5ET01QYXJzZXIoKSkuY29uc3Ry
dWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuRmlsZVJlYWRlcigpKS5pc0lu
bmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5GaWxlUmVhZGVyKCkpLmNvbnN0cnVjdG9yLmlz
SW5uZXIgaXMgdHJ1ZQogUEFTUyAobmV3IGlubmVyLkZvcm1EYXRhKCkpLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyAobmV3IGlubmVyLkZvcm1EYXRhKCkpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyAobmV3IGlubmVyLkltYWdlKCkpLmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQu
dHh0CmluZGV4IDc0MjVmOTguLjMxNzBjODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyMyw2
ICsyMjMsNyBAQCBOZXZlciBmb3VuZCBFbnRpdHkKIE5ldmVyIGZvdW5kIEVudGl0eVJlZmVyZW5j
ZQogTmV2ZXIgZm91bmQgRmlsZQogTmV2ZXIgZm91bmQgRmlsZUxpc3QKK05ldmVyIGZvdW5kIEZp
bGVSZWFkZXIKIE5ldmVyIGZvdW5kIEZvcm1EYXRhCiBOZXZlciBmb3VuZCBIVE1MQWxsQ29sbGVj
dGlvbgogTmV2ZXIgZm91bmQgSFRNTEJhc2VFbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCBiNDRi
OWIyLi4zZmVlMGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUt
aW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTg1LDggKzg1LDEyIEBAIFBBU1MgaW5u
ZXIuRXZlbnRTb3VyY2UuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkV2ZW50U291cmNlLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5GaWxlLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyBpbm5lci5GaWxlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5l
ci5GaWxlRXJyb3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLkZpbGVFcnJvci5jb25zdHJ1
Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRmlsZUxpc3QuaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLkZpbGVMaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBp
bm5lci5GaWxlUmVhZGVyLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlUmVhZGVyLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5Gb3JtRGF0YS5pc0lubmVyIGlz
IHRydWUKIFBBU1MgaW5uZXIuRm9ybURhdGEuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLkhUTUxBbGxDb2xsZWN0aW9uLmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTA0
YzY4YzZmYjAwYWQxNDQ3ZDk4YjhiNmVhMWNiNjRjZTg5NTAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAyMzgyCnpjbWRUYCtmRCo4NWFvSGxWbT81a2klSz9ZZD82d3twZD8mO0FHVSl1RGVhfm1r
QGYzczdYeGwyMX5GTUJgX3l6VQp6WEhISmZQQmJDTVU8cmxQJnchd2ZacWl5aENlMUxIaWxUNT1q
MlczeXhRSXJTa3pBMWd2ZXNDam01LX4wdzQlKlQKeldgc3tqYl92UiRBbmc7Jmx4a1pJdzlMNkU4
djs2Kk5zWUR1JEpWMiZsPmRZdjZtKlExX24/VFllZkxEUGR8Q0lSCno3QFR9N0MpKnJUc0FlOURt
fXk8KjtsQmJFJE96TlhwY1lvSUtTKWo/dmByN0E3TihRP1g3WXp4KnJEIXxRc3lZcwp6d2R2dF91
eU1RN2gwZ0Z7JWspV0w5LUpLSjxuJjFQIVUqMFV0VD4xUVVMYEw7Jj5Wd2RsSj8kU21vTFdgVE1L
RlEKejhgTXojYF5rJGVNZ0RiYFVAXyVZdC1+RHVSKEV6LXRBQWd7VGxQeD40YE1qYTYtcz9HTHIz
a2F2dktkcSYzZWkwCnp3PGVqUFFlbk1WZGlsdVE+bmlMTnVxMGo+O1E7K29WNi1ZZ3A8aExlQ1hm
enRZY2dfPExAb2NSLV9MbkJlQyRUaQpFSjJXOVhqc080dgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjNlYzE2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKQEAgLTAsMCArMSwyMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBp
ZD0iZmlsZSIgb25jaGFuZ2U9Im9uSW5wdXRGaWxlQ2hhbmdlKCkiIG11bHRpcGxlPgorPHByZSBp
ZD0nY29uc29sZSc+PC9wcmU+CisKKzxzY3JpcHQ+Cit2YXIgdGVzdENhc2VzID0gWworICAgICJ0
ZXN0UmVhZGluZ05vbkV4aXN0ZW50RmlsZSIsCisgICAgInRlc3RSZWFkaW5nRW1wdHlGaWxlQXNC
aW5hcnlTdHJpbmciLAorICAgICJ0ZXN0UmVhZGluZ0VtcHR5RmlsZUFzVGV4dCIsCisgICAgInRl
c3RSZWFkaW5nRW1wdHlGaWxlQXNEYXRhVVJMIiwKKyAgICAidGVzdFJlYWRpbmdVVEY4RW5jb2Rl
ZEZpbGVBc0JpbmFyeVN0cmluZyIsCisgICAgInRlc3RSZWFkaW5nVVRGOEVuY29kZWRGaWxlQXNU
ZXh0IiwKKyAgICAidGVzdFJlYWRpbmdVVEYxNkJFQk9NRW5jb2RlZEZpbGVBc1RleHQiLAorICAg
ICJ0ZXN0UmVhZGluZ1VURjE2TEVCT01FbmNvZGVkRmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFk
aW5nVVRGOEJPTUVuY29kZWRGaWxlQXNUZXh0IiwKKyAgICAidGVzdFJlYWRpbmdVVEYxNkJFRW5j
b2RlZEZpbGVBc1RleHQiLAorICAgICJ0ZXN0UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFzVGV4
dFdpdGhVVEYxNkVuY29kaW5nIiwKKyAgICAidGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0Rh
dGFVUkwiLAorICAgICJ0ZXN0TXVsdGlwbGVSZWFkcyIsCitdOwordmFyIHRlc3RJbmRleCA9IDA7
CisKK3ZhciB0ZXN0RmlsZUluZm9MaXN0ID0gWworICAgIHsgJ25hbWUnOiAnbm9uLWV4aXN0ZW50
JywgJ3BhdGgnOiAncmVzb3VyY2VzL25vbi1leGlzdGVudCcgfSwKKyAgICB7ICduYW1lJzogJ2Vt
cHR5LWZpbGUnLCAncGF0aCc6ICdyZXNvdXJjZXMvZW1wdHktZmlsZScgfSwKKyAgICB7ICduYW1l
JzogJ1VURjgtZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9VVEY4LnR4dCcgfSwKKyAgICB7ICdu
YW1lJzogJ1VURjE2QkUtQk9NLWZpbGUnLCAncGF0aCc6ICdyZXNvdXJjZXMvVVRGMTZCRS1CT00u
dHh0JyB9LAorICAgIHsgJ25hbWUnOiAnVVRGMTZMRS1CT00tZmlsZScsICdwYXRoJzogJ3Jlc291
cmNlcy9VVEYxNkxFLUJPTS50eHQnIH0sCisgICAgeyAnbmFtZSc6ICdVVEY4LUJPTS1maWxlJywg
J3BhdGgnOiAncmVzb3VyY2VzL1VURjgtQk9NLnR4dCcgfSwKKyAgICB7ICduYW1lJzogJ1VURjE2
QkUtZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9VVEYxNkJFLnR4dCcgfSwKK107Cit2YXIgdGVz
dEZpbGVzID0geyB9OworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUZpbGVSZWFkZXIoKQor
eworICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworCisgICAgcmVhZGVyLm9ubG9h
ZHN0YXJ0ID0gbG9hZFN0YXJ0ZWQ7CisgICAgcmVhZGVyLm9ubG9hZCA9IGxvYWRlZDsKKyAgICBy
ZWFkZXIub25hYm9ydCA9IGxvZ0V2ZW50OworICAgIHJlYWRlci5vbmxvYWRlbmQgPSBsb2FkRW5k
ZWQ7CisgICAgcmVhZGVyLm9uZXJyb3IgPSBsb2FkRmFpbGVkOworCisgICAgbG9nKCJyZWFkeVN0
YXRlOiAiICsgcmVhZGVyLnJlYWR5U3RhdGUpOworICAgIHJldHVybiByZWFkZXI7Cit9CisKK2Z1
bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KQoreworICAgIGxvZygiUmVjZWl2ZWQgIiArIGV2ZW50LnR5
cGUgKyAiIGV2ZW50Iik7Cit9CisKK2Z1bmN0aW9uIGxvYWRTdGFydGVkKGV2ZW50KQoreworICAg
IGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZChldmVudCkKK3sKKyAgICBsb2dFdmVu
dChldmVudCk7CisgICAgbG9nKCJyZWFkeVN0YXRlOiAiICsgZXZlbnQudGFyZ2V0LnJlYWR5U3Rh
dGUpOworICAgIGxvZygicmVzdWx0IHNpemU6ICIgKyBldmVudC50YXJnZXQucmVzdWx0Lmxlbmd0
aCk7CisgICAgbG9nKCJyZXN1bHQ6ICIgKyBldmVudC50YXJnZXQucmVzdWx0KTsKK30KKworZnVu
Y3Rpb24gbG9hZEZhaWxlZChldmVudCkKK3sKKyAgICBsb2dFdmVudChldmVudCk7CisgICAgbG9n
KCJyZWFkeVN0YXRlOiAiICsgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUpOworICAgIGxvZygiZXJy
b3IgY29kZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5jb2RlKTsKK30KKworZnVuY3Rpb24gbG9h
ZEVuZGVkKGV2ZW50KQoreworICAgIGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBydW5OZXh0VGVzdCgp
OworfQorCitmdW5jdGlvbiBvbklucHV0RmlsZUNoYW5nZSgpCit7CisgICAgdmFyIGZpbGVzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUiKS5maWxlczsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKQorICAgICAgICB0ZXN0RmlsZXNbdGVzdEZpbGVJbmZv
TGlzdFtpXVsnbmFtZSddXSA9IGZpbGVzW2ldOworCisgICAgcnVuTmV4dFRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQoreworICAgIGlmICh0ZXN0SW5kZXggPCB0ZXN0Q2FzZXMu
bGVuZ3RoKSB7CisgICAgICAgIHRlc3RJbmRleCsrOworICAgICAgICB3aW5kb3dbdGVzdENhc2Vz
W3Rlc3RJbmRleCAtIDFdXSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGxvZygiRE9ORSIpOwor
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gdGVz
dFJlYWRpbmdOb25FeGlzdGVudEZpbGUoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgbm9u
LWV4aXN0ZW50IGZpbGUiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOwor
ICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzWydub24tZXhpc3RlbnQnXSk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nRW1wdHlGaWxlQXNCaW5hcnlTdHJpbmcoKQorewor
ICAgIGxvZygiVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgYmluYXJ5IHN0cmluZyIpOwor
ICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0Jp
bmFyeVN0cmluZyh0ZXN0RmlsZXNbJ2VtcHR5LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RS
ZWFkaW5nRW1wdHlGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhbiBlbXB0
eSBmaWxlIGFzIHRleHQiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOwor
ICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snZW1wdHktZmlsZSddKTsKK30KKworZnVu
Y3Rpb24gdGVzdFJlYWRpbmdFbXB0eUZpbGVBc0RhdGFVUkwoKQoreworICAgIGxvZygiVGVzdCBy
ZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgZGF0YSBVUkwiKTsKKyAgICB2YXIgcmVhZGVyID0gY3Jl
YXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snZW1w
dHktZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0Jp
bmFyeVN0cmluZygpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtOCBmaWxlIGFzIGJp
bmFyeSBzdHJpbmciKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAg
IHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGOEVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2co
IlRlc3QgcmVhZGluZyBhIFVURi04IGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBj
cmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEY4
LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRGMTZCRUJPTUVuY29kZWRGaWxl
QXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIEJPTSBmaWxlIGFz
IHRleHQiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRl
ci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGMTZCRS1CT00tZmlsZSddKTsKK30KKworZnVuY3Rp
b24gdGVzdFJlYWRpbmdVVEYxNkxFQk9NRW5jb2RlZEZpbGVBc1RleHQoKQoreworICAgIGxvZygi
VGVzdCByZWFkaW5nIGEgVVRGLTE2TEUgQk9NIGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFk
ZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVz
WydVVEYxNkxFLUJPTS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjhCT01F
bmNvZGVkRmlsZUFzVGV4dCgpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtOCBCT00g
ZmlsZSBhcyB0ZXh0Iik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAg
ICByZWFkZXIucmVhZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjgtQk9NLWZpbGUnXSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RSZWFkaW5nVVRGMTZCRUVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2co
IlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIGZpbGUgYXMgdGV4dCB3aXRoIGRlZmF1bHQgZW5jb2Rp
bmciKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5y
ZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGMTZCRS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0
UmVhZGluZ1VURjE2QkVFbmNvZGVkRmlsZUFzVGV4dFdpdGhVVEYxNkVuY29kaW5nKCkKK3sKKyAg
ICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi0xNkJFIGZpbGUgYXMgdGV4dCB3aXRoIFVURi0xNkJF
IGVuY29kaW5nIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICBy
ZWFkZXIucmVhZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjE2QkUtZmlsZSddLCAiVVRGLTE2QkUiKTsK
K30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc0RhdGFVUkwoKQorewor
ICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTggZmlsZSBhcyBkYXRhIFVSTCIpOworICAgIHZh
ciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwo
dGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RNdWx0aXBsZVJlYWRz
KCkKK3sKKyAgICBsb2coIlRlc3QgY2FsbGluZyBtdWx0aXBsZSByZWFkIG1ldGhvZHMgYW5kIG9u
bHkgbGFzdCBvbmUgaXMgcHJvY2Vzc2VkIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVS
ZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlc1snVVRGOC1m
aWxlJ10pOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOwor
ICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOworfQorCitm
dW5jdGlvbiBydW5UZXN0cygpCit7CisgICAgdmFyIHBhdGhzT25seSA9IHRlc3RGaWxlSW5mb0xp
c3QubWFwKGZ1bmN0aW9uKGZpbGVTcGVjKSB7IHJldHVybiBmaWxlU3BlY1sncGF0aCddOyB9KTsK
KyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMocGF0aHNPbmx5KTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3RzOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYx
NkJFLUJPTS50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLUJP
TS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjViYzdmMzBiZjdiYzZkYjRmZTY4YjI3ZTY0MTFlM2QxNDNkYjJi
MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIKUmNtZXpPcFRVRDZsXzNXUl44cHxPMU0mYT4K
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXMvcmVzb3VyY2VzL1VURjE2QkUudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJj
ZXMvVVRGMTZCRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM4MTQ0Njg4ZTM1MDRjODYzM2UwYWY1Y2YxMDM3
MTRkZjY5MDQzNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAKUGNtWlNaVWBTPWkwbTZJJDJf
eW1hCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
L3Jlc291cmNlcy9VVEYxNkxFLUJPTS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRhYjU5ZTU2MTc1NTYzMDUz
ZmUyNGNhNjFhZmEyNzEwNjJmODMyNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIKUmNtZXpX
JngwWUFBcU5RYTgyfTtwMU0mYT4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgtQk9NLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgtQk9NLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zNTczMjNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC1CT00udHh0CkBAIC0wLDAgKzEgQEAKK++7v0hlbGxv
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9yZXNvdXJjZXMvVVRGOC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291
cmNlcy9VVEY4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWIyZjhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRG
OC50eHQKQEAgLTAsMCArMSBAQAorSGVsbG8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9lbXB0eS1maWxlIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvZW1wdHktZmlsZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0OTg3YzY0Li5jNTI3
ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9y
cy1leHBlY3RlZC50eHQKQEAgLTQyLDcgKzQyLDkgQEAgUEFTUyBFbnRpdHlSZWZlcmVuY2UudG9T
dHJpbmcoKSBpcyAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nCiBQQVNTIEV2
ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nCiBQQVNTIEV2ZW50
RXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rv
cl0nCiBQQVNTIEZpbGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBGaWxlQ29uc3RydWN0b3JdJwor
UEFTUyBGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAnW29iamVjdCBGaWxlRXJyb3JDb25zdHJ1Y3Rv
cl0nCiBQQVNTIEZpbGVMaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRmlsZUxpc3RDb25zdHJ1
Y3Rvcl0nCitQQVNTIEZpbGVSZWFkZXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBGaWxlUmVhZGVy
Q29uc3RydWN0b3JdJwogUEFTUyBGb3JtRGF0YS50b1N0cmluZygpIGlzICdbb2JqZWN0IEZvcm1E
YXRhQ29uc3RydWN0b3JdJwogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbi50b1N0cmluZygpIGlzICdb
b2JqZWN0IEhUTUxBbGxDb2xsZWN0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBIVE1MQW5jaG9yRWxl
bWVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3Jd
JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vcHJv
dG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXgg
N2RjZGEwZS4uMjExODg0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CkBAIC04Myw4ICs4MywxMiBAQCBQQVNTIGlubmVyLkV2ZW50U291cmNlLmlz
SW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5FdmVudFNvdXJjZS5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1MgaW5uZXIuRmlsZS5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRmls
ZS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRmlsZUVycm9yLmlzSW5u
ZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5GaWxlRXJyb3IuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0
cnVlCiBQQVNTIGlubmVyLkZpbGVMaXN0LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5GaWxl
TGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRmlsZVJlYWRlci5p
c0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRmlsZVJlYWRlci5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1MgaW5uZXIuRm9ybURhdGEuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVy
LkZvcm1EYXRhLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5IVE1MQWxs
Q29sbGVjdGlvbi5pc0lubmVyIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXgg
NWExNTk5NS4uZDFmM2ExZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTM0MzAsNiAr
MzQzMCw3IEBAIGh0dHAvdGVzdHMvbG9jYWwvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwK
IGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEuaHRtbAogaHR0cC90ZXN0
cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS13aXRoLXNsaWNlZC1maWxlLmh0bWwKIGh0
dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvdXBsb2FkLWV2ZW50cy5odG1sCitmYXN0L2ZpbGVzL2Zp
bGUtcmVhZGVyLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1zZWVrLmh0
bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCiBodHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDIzZjE4MjEuLmVlYjgwODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMzUzLDYgKzM1
Myw3IEBAIGZhc3QvZm9ybXMvZ2V0LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1maWxlLWNyYXNoLmh0bWwKIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5odG1sCitm
YXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKIAogIyBNaXNzaW5nIGRyYWcgJiBkcm9wIGZ1bmN0
aW9uYWxpdHkgaW4gRFJUCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1pbnB1dHRleHQtYWNxdWly
ZXMtc3R5bGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBlYmRmY2FkLi4zYjZk
NDdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMjAwLDYgKzIwMCw3IEBAIGZhc3Qv
Zm9ybXMvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlw
Ym9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctZmlsZS1j
cmFzaC5odG1sCiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwK
K2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbAogCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gdGVzdCBJRE4gPHJkYXI6Ly9wcm9ibGVtLzUzMDE5NTQ+
CiBmYXN0L2VuY29kaW5nL2lkbi1zZWN1cml0eS5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAyOGJjZjAuLmI4M2EyZjkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMjcgQEAKIDIwMTAtMDUtMDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxl
UmVhZGVyIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4NjA5CisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlcy9maWxlLXJlYWRlci5o
dG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgor
ICAgICAgICAqIGh0bWwvRmlsZUVycm9yLmlkbDoKKyAgICAgICAgKiBodG1sL0ZpbGVSZWFkZXIu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKzIwMTAtMDUtMDYg
IEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCiAKICAgICAgICAgSW1wcm92ZSBjb2RlIGdlbmVyYXRvciBzY3JpcHRzIHRvIHN1
cHBvcnQgY29udmVydGluZyBTY3JpcHRTdHJpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4ODFjNzg4Li4wNzUwZmI2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBi
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTUwLDgg
KzUwLDggQEAgRU5BQkxFX0RBVEFMSVNUID0gRU5BQkxFX0RBVEFMSVNUOwogRU5BQkxFX0RPTV9T
VE9SQUdFID0gRU5BQkxFX0RPTV9TVE9SQUdFOwogRU5BQkxFX0VWRU5UU09VUkNFID0gRU5BQkxF
X0VWRU5UU09VUkNFOwogRU5BQkxFX0ZJTFRFUlMgPSBFTkFCTEVfRklMVEVSUzsKLUVOQUJMRV9G
SUxFX1JFQURFUiA9IDsKLUVOQUJMRV9GSUxFX1dSSVRFUiA9IDsKK0VOQUJMRV9GSUxFX1JFQURF
UiA9IEVOQUJMRV9GSUxFX1JFQURFUjsKK0VOQUJMRV9GSUxFX1dSSVRFUiA9IEVOQUJMRV9GSUxF
X1dSSVRFUjsKIEVOQUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJM
RV9JQ09OREFUQUJBU0UgPSBFTkFCTEVfSUNPTkRBVEFCQVNFOwogRU5BQkxFX0lOREVYRURfREFU
QUJBU0UgPSA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGM4YmUzM2YuLmY2NmM4NjYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJK
U0ZpbGVFcnJvci5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNG
aWxlUmVhZGVyLmNwcCIKICNpbmNsdWRlICJKU0dlb2xvY2F0aW9uLmNwcCIKICNpbmNsdWRlICJK
U0dlb3Bvc2l0aW9uLmNwcCIKICNpbmNsdWRlICJKU0hpc3RvcnkuY3BwIgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGI0MTIwZjkuLjU4NWU0ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzMiw2ICsxMzIs
NyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBGaWxlIFwKICAgICBGaWxlRXJyb3IgXAogICAgIEZp
bGVMaXN0IFwKKyAgICBGaWxlUmVhZGVyIFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2VvcG9z
aXRpb24gXAogICAgIEhUTUxBbGxDb2xsZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDA1ODFkYWUuLjNiMWYyZmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpA
QCAtMzMwLDYgKzMzMCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9GaWxlLmlkbCBc
CiAgICAgaHRtbC9GaWxlRXJyb3IuaWRsIFwKICAgICBodG1sL0ZpbGVMaXN0LmlkbCBcCisgICAg
aHRtbC9GaWxlUmVhZGVyLmlkbCBcCiAgICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwgXAog
ICAgIGh0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI5YmM4MjMu
LjZhNTNlYzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzc1Nyw2
ICszNzU3LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNGaWxlUmVhZGVyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNGaWxlUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNDUwYzNmZC4uZmE4NjM5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY1Nyw2ICs2NTcsMTAgQEAKIAkJMkU0MzQ2NTUwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkU0MzQ2NDMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRocmVhZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFNDM0NjU4
MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEg
LyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9OwogCQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYx
QkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU3MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENv
cGllci5oICovOyB9OworCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRG
NDM5MTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovOyB9OworCQkyRTk0RjQz
QzExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNG
aWxlUmVhZGVyLmggKi87IH07CisJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAvKiBGaWxlUmVh
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
OTRGM0NCMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCAqLzsgfTsKKwkJMkU5NEY0
NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGM0NDMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxl
UmVhZGVyLmggKi87IH07CiAJCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3Jp
cHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQuaCAqLzsgfTsKIAkJMkVBRkFGMEUxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBRkFGMEIxMEUyQUYy
RDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovOyB9OwogCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYg
LyogQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLzsgfTsKQEAgLTYwOTgsNiArNjEw
Miw5IEBACiAJCTJFNDM0NjU3MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZENvcGllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTk0RjNDQjExOEI5MDhFMDBCN0Y3NUQgLyog
RmlsZVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxl
UmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU5NEYzQ0MxMThCOTA4
RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmlsZVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk0RjQyNzEx
OTIwNUIzMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RmlsZVJlYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTRGNDM5MTE5
MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExv
YWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3Jp
cHRMb2FkZXJDbGllbnQuaDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNE
NiAvKiBCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQz
RDYgLyogQmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzA4MSw2ICsxMzA4OCw3IEBACiAJCQkJQkMx
ODgxREMwRTA4QzU0MzAwMDQ4QzEzIC8qIEZpbGVMaXN0LmlkbCAqLywKIAkJCQkyRTk0RjNDQjEx
OEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5jcHAgKi8sCiAJCQkJMkU5NEYzQ0MxMThCOTA4
RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCAqLywKKwkJCQkyRTk0RjQyNzExOTIwNUIzMDBCN0Y3
NUQgLyogRmlsZVJlYWRlci5pZGwgKi8sCiAJCQkJODk1MjUzRDQxMTZDNEM2ODAwQ0FCRjAwIC8q
IEZpbGVTdHJlYW0uY3BwICovLAogCQkJCTg5NTI1M0Q1MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxl
U3RyZWFtLmggKi8sCiAJCQkJODk1MjUzRDYxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1D
bGllbnQuaCAqLywKQEAgLTEzNDMxLDYgKzEzNDM5LDggQEAKIAkJCQkyRTNCQzBDOTExN0QzRTA4
MDBCOTQwOUEgLyogSlNGaWxlRXJyb3IuaCAqLywKIAkJCQlCQzAwRjAxMjBFMEExODk1MDBGRDA0
RTMgLyogSlNGaWxlTGlzdC5jcHAgKi8sCiAJCQkJQkMwMEYwMTMwRTBBMTg5NTAwRkQwNEUzIC8q
IEpTRmlsZUxpc3QuaCAqLywKKwkJCQkyRTk0RjQzOTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyLmNwcCAqLywKKwkJCQkyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVh
ZGVyLmggKi8sCiAJCQkJQkM5N0U0MTAxMDkxNTRGQTAwMTBEMzYxIC8qIEpTSFRNTEFsbENvbGxl
Y3Rpb24uY3BwICovLAogCQkJCUJDOTdFNDExMTA5MTU0RkEwMDEwRDM2MSAvKiBKU0hUTUxBbGxD
b2xsZWN0aW9uLmggKi8sCiAJCQkJMUE0QTJERUIwQTFCODUyQTAwQzgwN0Y4IC8qIEpTSFRNTEFu
Y2hvckVsZW1lbnQuY3BwICovLApAQCAtMTg5NTMsNiArMTg5NjMsOCBAQAogCQkJCUI1OURENkEx
MTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAv
KiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTJFOTRG
NDNDMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJFOTRGNDUxMTE5MjA5NkEwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTIxMTk1LDYgKzIxMjA3LDggQEAKIAkJCQlCNTlERDZBMjExOTAyQTUyMDA3RTk2ODQgLyog
SlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5
REQ2QTYxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjU5REQ2QUExMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk0RjQzQjExOTIwN0RBMDBC
N0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTRGNDUwMTE5
MjA5NjQwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5kZXggNmVhMTEzNS4uOTQ4ODg5YiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCkBAIC04Myw2ICs4MywxMSBAQAogI2luY2x1ZGUg
IldlYlNvY2tldC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisjaW5jbHVk
ZSAiSlNGaWxlUmVhZGVyLmgiCisjaW5jbHVkZSAiRmlsZVJlYWRlci5oIgorI2VuZGlmCisKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0OSw2ICsxNTQs
MTEgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRXZlbnRUYXJnZXQqIHRhcmcKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
d2ViU29ja2V0KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZJTEVfUkVBREVSKQorICAgIGlmIChG
aWxlUmVhZGVyKiBmaWxlUmVhZGVyID0gdGFyZ2V0LT50b0ZpbGVSZWFkZXIoKSkKKyAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBmaWxlUmVhZGVyKTsKKyNlbmRpZgorCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgpOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IGIyZWVlYjQuLjRhOTI1OGIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJW
OERPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lckxpc3QuaCIKICNpbmNsdWRl
ICJWOEV2ZW50U291cmNlLmgiCisjaW5jbHVkZSAiVjhGaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSAi
VjhIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlY4SFRNTERvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiVjhJc29sYXRlZENvbnRleHQuaCIKQEAgLTQxOCw2ICs0MTksMTEgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4RE9NV3JhcHBlcjo6Y29udmVydEV2ZW50VGFyZ2V0VG9WOE9iamVjdChFdmVu
dFRhcmdldCogdGEKICAgICAgICAgcmV0dXJuIHRvVjgoZXZlbnRTb3VyY2UpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisgICAgaWYgKEZpbGVSZWFkZXIqIGZpbGVSZWFkZXIg
PSB0YXJnZXQtPnRvRmlsZVJlYWRlcigpKQorICAgICAgICByZXR1cm4gdG9WOChmaWxlUmVhZGVy
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUKDApOwogICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVFcnJvci5pZGwgYi9X
ZWJDb3JlL2h0bWwvRmlsZUVycm9yLmlkbAppbmRleCA2YzJiMDhjLi5hZGMyNWU4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvRmlsZUVycm9yLmlkbAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZUVy
cm9yLmlkbApAQCAtMzIsOCArMzIsMTAgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBb
CiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfUkVBREVSfEZJTEVfV1JJVEVSCiAgICAgXSBGaWxl
RXJyb3IgeworI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgPSA3OwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT1RfRk9VTkRfRVJSID0gODsKKyNlbmRpZgogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTRUNVUklUWV9FUlIgPSAxODsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQUJPUlRfRVJSID0gMjA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IE5PVF9SRUFEQUJMRV9FUlIgPSAyNDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxl
UmVhZGVyLmlkbCBiL1dlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iOTMzZjUxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9o
dG1sL0ZpbGVSZWFkZXIuaWRsCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfUkVBREVSLAorICAgICAgICBDYW5C
ZUNvbnN0cnVjdGVkLAorICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAor
ICAgICAgICBFdmVudFRhcmdldCwKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMKKyAgICBdIEZpbGVS
ZWFkZXIgeworICAgICAgICAvLyByZWFkeSBzdGF0ZXMKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgRU1QVFkgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMT0FESU5HID0g
MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRE9ORSA9IDI7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOworCisgICAgICAgIC8vIGFz
eW5jIHJlYWQgbWV0aG9kcworICAgICAgICB2b2lkIHJlYWRBc0JpbmFyeVN0cmluZyhpbiBCbG9i
IGZpbGVCbG9iKTsKKyAgICAgICAgdm9pZCByZWFkQXNUZXh0KGluIEJsb2IgZmlsZUJsb2IsIGlu
IFtPcHRpb25hbF0gRE9NU3RyaW5nIGVuY29kaW5nKTsKKyAgICAgICAgdm9pZCByZWFkQXNEYXRh
VVJMKGluIEZpbGUgZmlsZSk7CisKKyAgICAgICAgdm9pZCBhYm9ydCgpOworCisgICAgICAgIC8v
IGZpbGUgZGF0YQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnRTY3JpcHRTdHJp
bmddIERPTVN0cmluZyByZXN1bHQ7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVF
cnJvciBlcnJvcjsKKworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFy
dDsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wcm9ncmVzczsKKyAgICAgICAg
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmFib3J0OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9y
OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRlbmQ7CisgICAgfTsKK30K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKaW5kZXggNTk3NTVhYS4uMTFmMDU1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTcx
Niw2ICs3MTYsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIERPTUZvcm1E
YXRhQ29uc3RydWN0b3IgRm9ybURhdGE7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1GSUxFX1JFQURFUnxGSUxFX1dSSVRFUl0gRmlsZUVycm9yQ29uc3RydWN0b3IgRmlsZUVycm9y
OworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUZJTEVfUkVBREVSXSBGaWxlUmVhZGVy
Q29uc3RydWN0b3IgRmlsZVJlYWRlcjsKIAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDM5Y2Q2Yy4uZGJjYjE2YiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDUtMDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4
cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBUdXJu
IG9uIEZpbGVSZWFkZXIgc3VwcG9ydCBmb3IgQ2hyb21pdW0uCisKIDIwMTAtMDUtMDYgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
VGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkgYi9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA3MTQ2Njg1Li44N2E2ZTA5
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtNDcsNyArNDcsNyBAQAogICAgICAgICAnRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xJywKICAgICAgICAgJ0VOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVD0wJywKICAgICAgICAgJ0VOQUJMRV9ET01fU1RPUkFHRT0xJywKLSAgICAgICAgJ0VO
QUJMRV9GSUxFX1JFQURFUj0wJywKKyAgICAgICAgJ0VOQUJMRV9GSUxFX1JFQURFUj0xJywKICAg
ICAgICAgJ0VOQUJMRV9GSUxFX1dSSVRFUj0wJywKICAgICAgICAgJ0VOQUJMRV9HRU9MT0NBVElP
Tj0xJywKICAgICAgICAgJ0VOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEnLApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY1
YmI4NTkuLjNjMTRjZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNS0wNiAgSmlhbiBM
aSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3NlIEZpbGVSZWFkZXIgaW50ZXJmYWNlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDkKKworICAgICAgICAq
IFNjcmlwdHMvYnVpbGQtd2Via2l0OiB0dXJuIG9uIGJ1aWxkaW5nIEZpbGVSZWFkZXIgZm9yIGFw
cGxlJ3MgV2ViS2l0LgorCiAyMDEwLTA1LTA2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGJ1aWxkZml4IGFmdGVyIHI1ODkx
Ny4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggM2EzZWRiOS4uNGQwMDFmNCAxMDA3NTUK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTE3OCw3ICsxNzgsNyBAQCBteSBAZmVhdHVyZXMgPSAo
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9YU0xUIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBc
JHhzbHRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZmlsZS1yZWFkZXIiLCBkZXNjID0+
ICJUb2dnbGUgRmlsZVJlYWRlciBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZJ
TEVfUkVBREVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZpbGVSZWFkZXJTdXBwb3J0IH0s
CisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GSUxFX1JFQURFUiIsIGRlZmF1bHQgPT4gaXNBcHBs
ZVdlYktpdCgpLCB2YWx1ZSA9PiBcJGZpbGVSZWFkZXJTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlv
biA9PiAiZmlsZS13cml0ZXIiLCBkZXNjID0+ICJUb2dnbGUgRmlsZVdyaXRlciBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZJTEVfV1JJVEVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJGZpbGVXcml0ZXJTdXBwb3J0IH0sCg==
</data>
<flag name="review"
          id="39492"
          type_id="1"
          status="-"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="39493"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55398</attachid>
            <date>2010-05-07 11:31:30 -0700</date>
            <delta_ts>2010-05-07 11:39:28 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38609_7</filename>
            <type>text/plain</type>
            <size>33821</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YTg0YTc2Li40NDg2NGIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDUt
MDcgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisK
KyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gdGVzdCBiYXNpYyBGaWxlUmVhZGVyIG9wZXJh
dGlvbnMuCisgICAgICAgIEFsc28gdXBkYXRlIGxheW91dCB0ZXN0cyBhZmZlY3RlZCBieSBhZGRp
bmcgdGhlIGNvbnN0cnVjdG9ycyB0byBET01XaW5kb3cuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qczoKKyAgICAg
ICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9zY3JpcHQtdGVzdHMvY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmpzOgor
ICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5q
czoKKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNl
LmpzOgorICAgICAgICAqIGZhc3QvZmlsZXMvZmlsZS1yZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjE2QkUtQk9NLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZmlsZXMvcmVzb3VyY2VzL1VURjE2TEUtQk9NLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9maWxlcy9yZXNvdXJjZXMvVVRGOC1CT00udHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzL3Jlc291cmNlcy9VVEY4LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlcy9yZXNv
dXJjZXMvZW1wdHktZmlsZTogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMv
Z2xvYmFsLWNvbnN0cnVjdG9ycy5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDog
U2tpcCB0aGUgbmV3IHRlc3QgYmVjYXVzZSBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMg
aXMgbm90IHN1cHBvcnRlZCBpbiBndGsgcGxhdGZvcm0uCisgICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDogU2tpcCB0aGUgbmV3IHRlc3QgYmVjYXVzZSBldmVudFNlbmRlci5iZWdpbkRyYWdX
aXRoRmlsZXMgaXMgbm90IHN1cHBvcnRlZCBpbiBxdCBwbGF0Zm9ybS4KKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDogU2tpcCB0aGUgbmV3IHRlc3QgYmVjYXVzZSBldmVudFNlbmRlci5i
ZWdpbkRyYWdXaXRoRmlsZXMgaXMgbm90IHN1cHBvcnRlZCBpbiB3aW4gcGxhdGZvcm0uCisKIDIw
MTAtMDUtMDcgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmViYXNlbGluZSBmb3IgY2hyb21pdW0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXBy
b3BlcnR5LWRlc2NyaXB0b3JzLmpzCmluZGV4IDg2YzJiOWUuLmExNjhjYWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5
LWRlc2NyaXB0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzCkBAIC0yNyw2ICsyNyw4IEBAIHZh
ciBfX3NraXBfXyA9IHsKICAgICAiV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSIgOiAxLAogICAgICJX
ZWJHTFVuc2lnbmVkSW50QXJyYXkiIDogMSwKICAgICAiV2ViR0xVbnNpZ25lZFNob3J0QXJyYXki
IDogMSwKKyAgICAiRmlsZUVycm9yIiA6IDEsCisgICAgIkZpbGVSZWFkZXIiIDogMSwKICAgICAv
LyBJZ25vcmUgdGhpcyBwcm9wZXJ0eSBiZWNhdXNlIGl0IG9ubHkgYXBwZWFycyBpbiBkZWJ1ZyBi
dWlsZHMgYW5kIG5vdCBpbiByZWxlYXNlLgogICAgICJqc2NwcmludCIgOiAxCiB9OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAppbmRl
eCBhNWUwMGI2Li4wNzA3OTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMuaHRtbApAQCAtNzIsNyArNzIsOSBAQCB2YXIgX19za2lwX18g
PSB7CiAgICAgIndpbmRvdy5XZWJHTFVuc2lnbmVkSW50QXJyYXkiIDogMSwgCiAgICAgIndpbmRv
dy5XZWJHTFVuc2lnbmVkU2hvcnRBcnJheSIgOiAxLAogICAgICJ3aW5kb3cuY2xpZW50SW5mb3Jt
YXRpb24uZ2VvbG9jYXRpb24iIDogMSwKLSAgICAid2luZG93LkJsb2IucHJvdG90eXBlLnNsaWNl
IiA6IDEKKyAgICAid2luZG93LkJsb2IucHJvdG90eXBlLnNsaWNlIiA6IDEsCisgICAgIndpbmRv
dy5GaWxlRXJyb3IiIDogMSwKKyAgICAid2luZG93LkZpbGVSZWFkZXIiIDogMQogfTsKIAogZnVu
Y3Rpb24gbG9nVmFsdWUodmFsdWVOYW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlw
ZXMuanMKaW5kZXggMjRhM2Y0OS4uMmI1ZmY2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvY29uc3RydWN0ZWQtb2JqZWN0cy1w
cm90b3R5cGVzLmpzCkBAIC0zNSw3ICszNSw5IEBAIGZ1bmN0aW9uIGNvbnN0cnVjdG9yUHJvcGVy
dGllc09uV2luZG93KGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgIHR5cGUgPT0iV2ViR0xTaG9y
dEFycmF5Q29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09IldlYkdMVW5zaWduZWRC
eXRlQXJyYXlDb25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iV2ViR0xVbnNpZ25l
ZEludEFycmF5Q29uc3RydWN0b3IiIHx8Ci0gICAgICAgICAgICB0eXBlID09IldlYkdMVW5zaWdu
ZWRTaG9ydEFycmF5Q29uc3RydWN0b3IiKQorICAgICAgICAgICAgdHlwZSA9PSJXZWJHTFVuc2ln
bmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiRmlsZUVy
cm9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiRmlsZVJlYWRlciIpCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgaWYgKCF0eXBlLm1hdGNoKCdDb25zdHJ1Y3RvciQnKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzCmluZGV4IGZmZjkyZGQuLjY4
ZjQ5MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90
b3R5cGUtaW5oZXJpdGFuY2UtMi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMKQEAgLTY3LDcgKzY3LDkgQEAgZnVuY3Rp
b24gY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyhnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICB0
eXBlID09IldlYkdMU2hvcnRBcnJheUNvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9
PSJXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBl
ID09IldlYkdMVW5zaWduZWRJbnRBcnJheUNvbnN0cnVjdG9yIiB8fAotICAgICAgICAgICAgdHlw
ZSA9PSJXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yIikKKyAgICAgICAgICAgIHR5
cGUgPT0iV2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAg
IHR5cGUgPT0gIkZpbGVFcnJvckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAi
RmlsZVJlYWRlckNvbnN0cnVjdG9yIikKICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBXZSBpZ25v
cmUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGFuZCB0ZXN0IGl0IGVsc2V3aGVyZSwgc2luY2UgaXQg
aXMgbm90IGluIGFsbCBidWlsZHMKICAgICAgICAgaWYgKCF0eXBlLm1hdGNoKCdDb25zdHJ1Y3Rv
ciQnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMKaW5kZXggZGIy
NTg1Mi4uYWNkZjEzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRl
c3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzCkBAIC0xNiw2ICsxNiw3IEBAIHZh
ciBza2lwcGVkUHJvcGVydGllcyA9IFsKICAgICAid2Via2l0Tm90aWZpY2F0aW9ucyIsCiAgICAg
IldlYkdMUmVuZGVyaW5nQ29udGV4dCIsICJXZWJHTEFycmF5QnVmZmVyIiwgCiAgICAgIldlYkdM
Qnl0ZUFycmF5IiwgIldlYkdMRmxvYXRBcnJheSIsICJXZWJHTEludEFycmF5IiwgIldlYkdMU2hv
cnRBcnJheSIsICJXZWJHTFVuc2lnbmVkQnl0ZUFycmF5IiwgIldlYkdMVW5zaWduZWRJbnRBcnJh
eSIsICJXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSIsIAorICAgICJGaWxlRXJyb3IiLCAiRmlsZVJl
YWRlciIKIF07CiAKIHZhciBza2lwcGVkUHJvcGVydGllc1NldCA9IHt9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45Y2Q1M2U1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDggQEAK
KworVGVzdCByZWFkaW5nIGEgbm9uLWV4aXN0ZW50IGZpbGUKK3JlYWR5U3RhdGU6IDAKK1JlY2Vp
dmVkIGVycm9yIGV2ZW50CityZWFkeVN0YXRlOiAyCitlcnJvciBjb2RlOiA4CitSZWNlaXZlZCBs
b2FkZW5kIGV2ZW50CitUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBhcyBiaW5hcnkgc3RyaW5n
CityZWFkeVN0YXRlOiAwCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKK3JlYWR5U3RhdGU6IDEK
K1JlY2VpdmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3VsdCBzaXplOiAwCityZXN1
bHQ6IAorUmVjZWl2ZWQgbG9hZGVuZCBldmVudAorVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUg
YXMgdGV4dAorcmVhZHlTdGF0ZTogMAorUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CityZWFkeVN0
YXRlOiAxCitSZWNlaXZlZCBsb2FkIGV2ZW50CityZWFkeVN0YXRlOiAyCityZXN1bHQgc2l6ZTog
MAorcmVzdWx0OiAKK1JlY2VpdmVkIGxvYWRlbmQgZXZlbnQKK1Rlc3QgcmVhZGluZyBhbiBlbXB0
eSBmaWxlIGFzIGRhdGEgVVJMCityZWFkeVN0YXRlOiAwCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZl
bnQKK3JlYWR5U3RhdGU6IDEKK1JlY2VpdmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jl
c3VsdCBzaXplOiA1CityZXN1bHQ6IGRhdGE6CitSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CitUZXN0
IHJlYWRpbmcgYSBVVEYtOCBmaWxlIGFzIGJpbmFyeSBzdHJpbmcKK3JlYWR5U3RhdGU6IDAKK1Jl
Y2VpdmVkIGxvYWRzdGFydCBldmVudAorcmVhZHlTdGF0ZTogMQorUmVjZWl2ZWQgbG9hZCBldmVu
dAorcmVhZHlTdGF0ZTogMgorcmVzdWx0IHNpemU6IDUKK3Jlc3VsdDogSGVsbG8KK1JlY2VpdmVk
IGxvYWRlbmQgZXZlbnQKK1Rlc3QgcmVhZGluZyBhIFVURi04IGZpbGUgYXMgdGV4dAorcmVhZHlT
dGF0ZTogMAorUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CityZWFkeVN0YXRlOiAxCitSZWNlaXZl
ZCBsb2FkIGV2ZW50CityZWFkeVN0YXRlOiAyCityZXN1bHQgc2l6ZTogNQorcmVzdWx0OiBIZWxs
bworUmVjZWl2ZWQgbG9hZGVuZCBldmVudAorVGVzdCByZWFkaW5nIGEgVVRGLTE2QkUgQk9NIGZp
bGUgYXMgdGV4dAorcmVhZHlTdGF0ZTogMAorUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CityZWFk
eVN0YXRlOiAxCitSZWNlaXZlZCBsb2FkIGV2ZW50CityZWFkeVN0YXRlOiAyCityZXN1bHQgc2l6
ZTogNQorcmVzdWx0OiBIZWxsbworUmVjZWl2ZWQgbG9hZGVuZCBldmVudAorVGVzdCByZWFkaW5n
IGEgVVRGLTE2TEUgQk9NIGZpbGUgYXMgdGV4dAorcmVhZHlTdGF0ZTogMAorUmVjZWl2ZWQgbG9h
ZHN0YXJ0IGV2ZW50CityZWFkeVN0YXRlOiAxCitSZWNlaXZlZCBsb2FkIGV2ZW50CityZWFkeVN0
YXRlOiAyCityZXN1bHQgc2l6ZTogNQorcmVzdWx0OiBIZWxsbworUmVjZWl2ZWQgbG9hZGVuZCBl
dmVudAorVGVzdCByZWFkaW5nIGEgVVRGLTggQk9NIGZpbGUgYXMgdGV4dAorcmVhZHlTdGF0ZTog
MAorUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CityZWFkeVN0YXRlOiAxCitSZWNlaXZlZCBsb2Fk
IGV2ZW50CityZWFkeVN0YXRlOiAyCityZXN1bHQgc2l6ZTogNQorcmVzdWx0OiBIZWxsbworUmVj
ZWl2ZWQgbG9hZGVuZCBldmVudAorVGVzdCByZWFkaW5nIGEgVVRGLTE2QkUgZmlsZSBhcyB0ZXh0
IHdpdGggVVRGLTE2QkUgZW5jb2RpbmcKK3JlYWR5U3RhdGU6IDAKK1JlY2VpdmVkIGxvYWRzdGFy
dCBldmVudAorcmVhZHlTdGF0ZTogMQorUmVjZWl2ZWQgbG9hZCBldmVudAorcmVhZHlTdGF0ZTog
MgorcmVzdWx0IHNpemU6IDUKK3Jlc3VsdDogSGVsbG8KK1JlY2VpdmVkIGxvYWRlbmQgZXZlbnQK
K1Rlc3QgcmVhZGluZyBhIFVURi04IGZpbGUgYXMgZGF0YSBVUkwKK3JlYWR5U3RhdGU6IDAKK1Jl
Y2VpdmVkIGxvYWRzdGFydCBldmVudAorcmVhZHlTdGF0ZTogMQorUmVjZWl2ZWQgbG9hZCBldmVu
dAorcmVhZHlTdGF0ZTogMgorcmVzdWx0IHNpemU6IDMxCityZXN1bHQ6IGRhdGE6dGV4dC9wbGFp
bjtiYXNlNjQsU0dWc2JHOD0KK1JlY2VpdmVkIGxvYWRlbmQgZXZlbnQKK1Rlc3QgY2FsbGluZyBt
dWx0aXBsZSByZWFkIG1ldGhvZHMgYW5kIG9ubHkgbGFzdCBvbmUgaXMgcHJvY2Vzc2VkCityZWFk
eVN0YXRlOiAwCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKK3JlYWR5U3RhdGU6IDEKK1JlY2Vp
dmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3VsdCBzaXplOiAzMQorcmVzdWx0OiBk
YXRhOnRleHQvcGxhaW47YmFzZTY0LFNHVnNiRzg9CitSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CitE
T05FCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWY1ZDA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlcy9maWxlLXJlYWRlci5odG1sCkBAIC0wLDAgKzEsMjA4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmls
ZSIgaWQ9ImZpbGUiIG9uY2hhbmdlPSJvbklucHV0RmlsZUNoYW5nZSgpIiBtdWx0aXBsZT4KKzxw
cmUgaWQ9J2NvbnNvbGUnPjwvcHJlPgorCis8c2NyaXB0PgordmFyIHRlc3RDYXNlcyA9IFsKKyAg
ICAidGVzdFJlYWRpbmdOb25FeGlzdGVudEZpbGUiLAorICAgICJ0ZXN0UmVhZGluZ0VtcHR5Rmls
ZUFzQmluYXJ5U3RyaW5nIiwKKyAgICAidGVzdFJlYWRpbmdFbXB0eUZpbGVBc1RleHQiLAorICAg
ICJ0ZXN0UmVhZGluZ0VtcHR5RmlsZUFzRGF0YVVSTCIsCisgICAgInRlc3RSZWFkaW5nVVRGOEVu
Y29kZWRGaWxlQXNCaW5hcnlTdHJpbmciLAorICAgICJ0ZXN0UmVhZGluZ1VURjhFbmNvZGVkRmls
ZUFzVGV4dCIsCisgICAgInRlc3RSZWFkaW5nVVRGMTZCRUJPTUVuY29kZWRGaWxlQXNUZXh0IiwK
KyAgICAidGVzdFJlYWRpbmdVVEYxNkxFQk9NRW5jb2RlZEZpbGVBc1RleHQiLAorICAgICJ0ZXN0
UmVhZGluZ1VURjhCT01FbmNvZGVkRmlsZUFzVGV4dCIsCisgICAgInRlc3RSZWFkaW5nVVRGMTZC
RUVuY29kZWRGaWxlQXNUZXh0V2l0aFVURjE2RW5jb2RpbmciLAorICAgICJ0ZXN0UmVhZGluZ1VU
RjhFbmNvZGVkRmlsZUFzRGF0YVVSTCIsCisgICAgInRlc3RNdWx0aXBsZVJlYWRzIiwKK107Cit2
YXIgdGVzdEluZGV4ID0gMDsKKwordmFyIHRlc3RGaWxlSW5mb0xpc3QgPSBbCisgICAgeyAnbmFt
ZSc6ICdub24tZXhpc3RlbnQnLCAncGF0aCc6ICdyZXNvdXJjZXMvbm9uLWV4aXN0ZW50JyB9LAor
ICAgIHsgJ25hbWUnOiAnZW1wdHktZmlsZScsICdwYXRoJzogJ3Jlc291cmNlcy9lbXB0eS1maWxl
JyB9LAorICAgIHsgJ25hbWUnOiAnVVRGOC1maWxlJywgJ3BhdGgnOiAncmVzb3VyY2VzL1VURjgu
dHh0JyB9LAorICAgIHsgJ25hbWUnOiAnVVRGMTZCRS1CT00tZmlsZScsICdwYXRoJzogJ3Jlc291
cmNlcy9VVEYxNkJFLUJPTS50eHQnIH0sCisgICAgeyAnbmFtZSc6ICdVVEYxNkxFLUJPTS1maWxl
JywgJ3BhdGgnOiAncmVzb3VyY2VzL1VURjE2TEUtQk9NLnR4dCcgfSwKKyAgICB7ICduYW1lJzog
J1VURjgtQk9NLWZpbGUnLCAncGF0aCc6ICdyZXNvdXJjZXMvVVRGOC1CT00udHh0JyB9LAorICAg
IHsgJ25hbWUnOiAnVVRGMTZCRS1maWxlJywgJ3BhdGgnOiAncmVzb3VyY2VzL1VURjE2QkUudHh0
JyB9LAorXTsKK3ZhciB0ZXN0RmlsZXMgPSB7IH07CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQor
eworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gY3Jl
YXRlRmlsZVJlYWRlcigpCit7CisgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisK
KyAgICByZWFkZXIub25sb2Fkc3RhcnQgPSBsb2FkU3RhcnRlZDsKKyAgICByZWFkZXIub25sb2Fk
ID0gbG9hZGVkOworICAgIHJlYWRlci5vbmFib3J0ID0gbG9nRXZlbnQ7CisgICAgcmVhZGVyLm9u
bG9hZGVuZCA9IGxvYWRFbmRlZDsKKyAgICByZWFkZXIub25lcnJvciA9IGxvYWRGYWlsZWQ7CisK
KyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyByZWFkZXIucmVhZHlTdGF0ZSk7CisgICAgcmV0dXJu
IHJlYWRlcjsKK30KKworZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpCit7CisgICAgbG9nKCJSZWNl
aXZlZCAiICsgZXZlbnQudHlwZSArICIgZXZlbnQiKTsKK30KKworZnVuY3Rpb24gbG9hZFN0YXJ0
ZWQoZXZlbnQpCit7CisgICAgbG9nRXZlbnQoZXZlbnQpOworICAgIGxvZygicmVhZHlTdGF0ZTog
IiArIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlKTsKK30KKworZnVuY3Rpb24gbG9hZGVkKGV2ZW50
KQoreworICAgIGxvZ0V2ZW50KGV2ZW50KTsKKyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyBldmVu
dC50YXJnZXQucmVhZHlTdGF0ZSk7CisgICAgbG9nKCJyZXN1bHQgc2l6ZTogIiArIGV2ZW50LnRh
cmdldC5yZXN1bHQubGVuZ3RoKTsKKyAgICBsb2coInJlc3VsdDogIiArIGV2ZW50LnRhcmdldC5y
ZXN1bHQpOworfQorCitmdW5jdGlvbiBsb2FkRmFpbGVkKGV2ZW50KQoreworICAgIGxvZ0V2ZW50
KGV2ZW50KTsKKyAgICBsb2coInJlYWR5U3RhdGU6ICIgKyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSk7CisgICAgbG9nKCJlcnJvciBjb2RlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLmNvZGUpOwor
fQorCitmdW5jdGlvbiBsb2FkRW5kZWQoZXZlbnQpCit7CisgICAgbG9nRXZlbnQoZXZlbnQpOwor
ICAgIHJ1bk5leHRUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9uSW5wdXRGaWxlQ2hhbmdlKCkKK3sK
KyAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZSIpLmZpbGVzOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHRlc3RG
aWxlc1t0ZXN0RmlsZUluZm9MaXN0W2ldWyduYW1lJ11dID0gZmlsZXNbaV07CisKKyAgICBydW5O
ZXh0VGVzdCgpOworfQorCitmdW5jdGlvbiBydW5OZXh0VGVzdCgpCit7CisgICAgaWYgKHRlc3RJ
bmRleCA8IHRlc3RDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgdGVzdEluZGV4Kys7CisgICAgICAg
IHdpbmRvd1t0ZXN0Q2FzZXNbdGVzdEluZGV4IC0gMV1dKCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgbG9nKCJET05FIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQor
fQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ05vbkV4aXN0ZW50RmlsZSgpCit7CisgICAgbG9nKCJU
ZXN0IHJlYWRpbmcgYSBub24tZXhpc3RlbnQgZmlsZSIpOworICAgIHZhciByZWFkZXIgPSBjcmVh
dGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0ZXN0RmlsZXNb
J25vbi1leGlzdGVudCddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdFbXB0eUZpbGVBc0Jp
bmFyeVN0cmluZygpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBhcyBi
aW5hcnkgc3RyaW5nIik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAg
ICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlc1snZW1wdHktZmlsZSddKTsKK30K
KworZnVuY3Rpb24gdGVzdFJlYWRpbmdFbXB0eUZpbGVBc1RleHQoKQoreworICAgIGxvZygiVGVz
dCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBjcmVh
dGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydlbXB0eS1m
aWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ0VtcHR5RmlsZUFzRGF0YVVSTCgpCit7
CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBhcyBkYXRhIFVSTCIpOworICAg
IHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0RhdGFV
UkwodGVzdEZpbGVzWydlbXB0eS1maWxlJ10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VU
RjhFbmNvZGVkRmlsZUFzQmluYXJ5U3RyaW5nKCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBh
IFVURi04IGZpbGUgYXMgYmluYXJ5IHN0cmluZyIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVG
aWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0ZXN0RmlsZXNbJ1VU
RjgtZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEY4RW5jb2RlZEZpbGVBc1Rl
eHQoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRGLTggZmlsZSBhcyB0ZXh0Iik7Cisg
ICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEFzVGV4
dCh0ZXN0RmlsZXNbJ1VURjgtZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEYx
NkJFQk9NRW5jb2RlZEZpbGVBc1RleHQoKQoreworICAgIGxvZygiVGVzdCByZWFkaW5nIGEgVVRG
LTE2QkUgQk9NIGZpbGUgYXMgdGV4dCIpOworICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVh
ZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEYxNkJFLUJPTS1maWxl
J10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjE2TEVCT01FbmNvZGVkRmlsZUFzVGV4
dCgpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtMTZMRSBCT00gZmlsZSBhcyB0ZXh0
Iik7CisgICAgdmFyIHJlYWRlciA9IGNyZWF0ZUZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVh
ZEFzVGV4dCh0ZXN0RmlsZXNbJ1VURjE2TEUtQk9NLWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RSZWFkaW5nVVRGOEJPTUVuY29kZWRGaWxlQXNUZXh0KCkKK3sKKyAgICBsb2coIlRlc3QgcmVh
ZGluZyBhIFVURi04IEJPTSBmaWxlIGFzIHRleHQiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRl
RmlsZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRGOC1CT00t
ZmlsZSddKTsKK30KKworZnVuY3Rpb24gdGVzdFJlYWRpbmdVVEYxNkJFRW5jb2RlZEZpbGVBc1Rl
eHRXaXRoVVRGMTZFbmNvZGluZygpCit7CisgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBVVEYtMTZC
RSBmaWxlIGFzIHRleHQgd2l0aCBVVEYtMTZCRSBlbmNvZGluZyIpOworICAgIHZhciByZWFkZXIg
PSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydV
VEYxNkJFLWZpbGUnXSwgIlVURi0xNkJFIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkaW5nVVRG
OEVuY29kZWRGaWxlQXNEYXRhVVJMKCkKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhIFVURi04
IGZpbGUgYXMgZGF0YSBVUkwiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlRmlsZVJlYWRlcigp
OworICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOworfQor
CitmdW5jdGlvbiB0ZXN0TXVsdGlwbGVSZWFkcygpCit7CisgICAgbG9nKCJUZXN0IGNhbGxpbmcg
bXVsdGlwbGUgcmVhZCBtZXRob2RzIGFuZCBvbmx5IGxhc3Qgb25lIGlzIHByb2Nlc3NlZCIpOwor
ICAgIHZhciByZWFkZXIgPSBjcmVhdGVGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLnJlYWRBc0Jp
bmFyeVN0cmluZyh0ZXN0RmlsZXNbJ1VURjgtZmlsZSddKTsKKyAgICByZWFkZXIucmVhZEFzVGV4
dCh0ZXN0RmlsZXNbJ1VURjgtZmlsZSddKTsKKyAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0ZXN0
RmlsZXNbJ1VURjgtZmlsZSddKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKQoreworICAgIHZh
ciBwYXRoc09ubHkgPSB0ZXN0RmlsZUluZm9MaXN0Lm1hcChmdW5jdGlvbihmaWxlU3BlYykgeyBy
ZXR1cm4gZmlsZVNwZWNbJ3BhdGgnXTsgfSk7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0
aEZpbGVzKHBhdGhzT25seSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0
czsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9yZXNvdXJjZXMvVVRGMTZCRS1CT00udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YmM3ZjMwYmY3
YmM2ZGI0ZmU2OGIyN2U2NDExZTNkMTQzZGIyYjIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEy
ClJjbWV6T3BUVUQ2bF8zV1JeOHB8TzFNJmE+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEYxNkJFLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjE2QkUudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBj
ODE0NDY4OGUzNTA0Yzg2MzNlMGFmNWNmMTAzNzE0ZGY2OTA0MzYKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDEwClBjbVpTWlVgUz1pMG02SSQyX3ltYQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZMRS1CT00u
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGMTZMRS1CT00udHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg0YWI1OWU1NjE3NTU2MzA1M2ZlMjRjYTYxYWZhMjcxMDYyZjgzMjcKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDEyClJjbWV6VyZ4MFlBQXFOUWE4Mn07cDFNJmE+CgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291
cmNlcy9VVEY4LUJPTS50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9VVEY4
LUJPTS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU3MzIzZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgtQk9N
LnR4dApAQCAtMCwwICsxIEBACivvu79IZWxsbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvVVRGOC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNWFiMmY4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgudHh0CkBAIC0wLDAgKzEgQEAKK0hlbGxvClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlcy9yZXNvdXJjZXMvZW1wdHktZmlsZSBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3Vy
Y2VzL2VtcHR5LWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUy
OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNv
bnN0cnVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dsb2JhbC1j
b25zdHJ1Y3RvcnMuanMKaW5kZXggOTBhYjg0Ni4uOTdmMzAxNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzCkBA
IC0yNSw3ICsyNSw5IEBAIGZvciAodmFyIHggaW4gY29uc3RydWN0b3JOYW1lcykgewogICAgICAg
ICBuYW1lID09IldlYkdMU2hvcnRBcnJheSIgfHwKICAgICAgICAgbmFtZSA9PSJXZWJHTFVuc2ln
bmVkQnl0ZUFycmF5IiB8fAogICAgICAgICBuYW1lID09IldlYkdMVW5zaWduZWRJbnRBcnJheSIg
fHwKLSAgICAgICAgbmFtZSA9PSJXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSIpCisgICAgICAgIG5h
bWUgPT0iV2ViR0xVbnNpZ25lZFNob3J0QXJyYXkiIHx8CisgICAgICAgIG5hbWUgPT0gIkZpbGVF
cnJvciIgfHwKKyAgICAgICAgbmFtZSA9PSAiRmlsZVJlYWRlciIpCiAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgaWYgKG5hbWUgPT0gIlhNTERvY3VtZW50IikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKaW5kZXggNWExNTk5NS4uZDFmM2ExZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAg
LTM0MzAsNiArMzQzMCw3IEBAIGh0dHAvdGVzdHMvbG9jYWwvc2VuZC1zbGljZWQtZHJhZ2dlZC1m
aWxlLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEuaHRtbAog
aHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS13aXRoLXNsaWNlZC1maWxl
Lmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvdXBsb2FkLWV2ZW50cy5odG1sCitmYXN0
L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFs
bC1zZWVrLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC5odG1sCiBodHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCmluZGV4IDIzZjE4MjEuLmVlYjgwODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
MzUzLDYgKzM1Myw3IEBAIGZhc3QvZm9ybXMvZ2V0LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9y
bXMvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1maWxlLWNyYXNo
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vz
cy5odG1sCitmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLmh0bWwKIAogIyBNaXNzaW5nIGRyYWcgJiBk
cm9wIGZ1bmN0aW9uYWxpdHkgaW4gRFJUCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC1pbnB1dHRl
eHQtYWNxdWlyZXMtc3R5bGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA3ZDdm
OTllLi4zN2M4MTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMjAwLDYgKzIwMCw3
IEBAIGZhc3QvZm9ybXMvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmh0bWwKIGZhc3QvZXZlbnRzL2Ry
YWctZmlsZS1jcmFzaC5odG1sCiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLmh0bWwKK2Zhc3QvZmlsZXMvZmlsZS1yZWFkZXIuaHRtbAogCiAjIE5lZWQgdG8gYWRkIGZ1
bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gdGVzdCBJRE4gPHJkYXI6Ly9wcm9ibGVt
LzUzMDE5NTQ+CiBmYXN0L2VuY29kaW5nL2lkbi1zZWN1cml0eS5odG1sCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg3ODYyOGQuLmQ2NWVk
MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDUtMDcgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4
cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlcy9maWxl
LXJlYWRlci5odG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJn
ZXRUb1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1sL0ZpbGVFcnJvci5pZGw6CisgICAgICAgICog
aHRtbC9GaWxlUmVhZGVyLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRs
OgorCiAyMDEwLTA1LTA3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9XZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg4MWM3ODguLjA3NTBmYjYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtNTAsOCArNTAsOCBAQCBFTkFCTEVfREFUQUxJU1QgPSBFTkFCTEVfREFUQUxJU1Q7CiBFTkFC
TEVfRE9NX1NUT1JBR0UgPSBFTkFCTEVfRE9NX1NUT1JBR0U7CiBFTkFCTEVfRVZFTlRTT1VSQ0Ug
PSBFTkFCTEVfRVZFTlRTT1VSQ0U7CiBFTkFCTEVfRklMVEVSUyA9IEVOQUJMRV9GSUxURVJTOwot
RU5BQkxFX0ZJTEVfUkVBREVSID0gOwotRU5BQkxFX0ZJTEVfV1JJVEVSID0gOworRU5BQkxFX0ZJ
TEVfUkVBREVSID0gRU5BQkxFX0ZJTEVfUkVBREVSOworRU5BQkxFX0ZJTEVfV1JJVEVSID0gRU5B
QkxFX0ZJTEVfV1JJVEVSOwogRU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxFX0dFT0xPQ0FUSU9O
OwogRU5BQkxFX0lDT05EQVRBQkFTRSA9IEVOQUJMRV9JQ09OREFUQUJBU0U7CiBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSA9IDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
IGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggYzhiZTMzZi4uZjY2Yzg2NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKQEAgLTg4LDYgKzg4LDcgQEAKICNpbmNsdWRlICJKU0ZpbGUuY3BwIgogI2lu
Y2x1ZGUgIkpTRmlsZUVycm9yLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVMaXN0LmNwcCIKKyNpbmNs
dWRlICJKU0ZpbGVSZWFkZXIuY3BwIgogI2luY2x1ZGUgIkpTR2VvbG9jYXRpb24uY3BwIgogI2lu
Y2x1ZGUgIkpTR2VvcG9zaXRpb24uY3BwIgogI2luY2x1ZGUgIkpTSGlzdG9yeS5jcHAiCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggYjQxMjBmOS4uNTg1ZTRkMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTMy
LDYgKzEzMiw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEZpbGUgXAogICAgIEZpbGVFcnJvciBc
CiAgICAgRmlsZUxpc3QgXAorICAgIEZpbGVSZWFkZXIgXAogICAgIEdlb2xvY2F0aW9uIFwKICAg
ICBHZW9wb3NpdGlvbiBcCiAgICAgSFRNTEFsbENvbGxlY3Rpb24gXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMDU4MWRhZS4uM2Ix
ZjJmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCkBAIC0zMzAsNiArMzMwLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBodG1sL0Zp
bGUuaWRsIFwKICAgICBodG1sL0ZpbGVFcnJvci5pZGwgXAogICAgIGh0bWwvRmlsZUxpc3QuaWRs
IFwKKyAgICBodG1sL0ZpbGVSZWFkZXIuaWRsIFwKICAgICBodG1sL0hUTUxBbGxDb2xsZWN0aW9u
LmlkbCBcCiAgICAgaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
YjliYzgyMy4uNmE1M2VjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0zNzU3LDYgKzM3NTcsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0ZpbGVSZWFkZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0ZpbGVSZWFkZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNHZW9sb2NhdGlvbi5jcHAiDQogCQkJCT4NCiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NTBjM2ZkLi5mYTg2MzljIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjU3LDYgKzY1NywxMCBAQAogCQkyRTQzNDY1NTBGNTQ2
QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhy
ZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MkU0MzQ2NTgwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU2MEY1NDZBOTkw
MEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi87IH07CiAJCTJFNDM0NjU5MEY1NDZB
OTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3Nz
VGhyZWFkQ29waWVyLmggKi87IH07CisJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0Zp
bGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU5NEY0MzkxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CisJ
CTJFOTRGNDNDMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1
RCAvKiBKU0ZpbGVSZWFkZXIuaCAqLzsgfTsKKwkJMkU5NEY0NTAxMTkyMDk2NDAwQjdGNzVEIC8q
IEZpbGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkU5NEYzQ0IxMThCOTA4RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuY3BwICovOyB9Owor
CQkyRTk0RjQ1MTExOTIwOTZBMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEYzQ0MxMThCOTA4RTAwQjdGNzVE
IC8qIEZpbGVSZWFkZXIuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExv
YWRlckNsaWVudC5oICovOyB9OwogCQkyRUFGQUYwRTEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFGQUYw
QjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgKi87IH07CiAJCTJFQUZBRjBGMTBFMkFGMkQw
MDdFRDNENiAvKiBCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovOyB9OwpAQCAtNjA5
OCw2ICs2MTAyLDkgQEAKIAkJMkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFk
Q29waWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzVGhyZWFkQ29w
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGM0NCMTE4QjkwOEUwMEI3
Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZpbGVSZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTk0RjND
QzExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJF
OTRGNDI3MTE5MjA1QjMwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBGaWxlUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5
NEY0MzkxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVSZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVJlYWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRUE3NjgwMzBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBRkFGMEIxMEUyQUYy
RDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQUZBRjBDMTBFMkFG
MkQwMDdFRDNENiAvKiBCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJs
b2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDgxLDYgKzEzMDg4LDcgQEAK
IAkJCQlCQzE4ODFEQzBFMDhDNTQzMDAwNDhDMTMgLyogRmlsZUxpc3QuaWRsICovLAogCQkJCTJF
OTRGM0NCMTE4QjkwOEUwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmNwcCAqLywKIAkJCQkyRTk0RjND
QzExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5oICovLAorCQkJCTJFOTRGNDI3MTE5MjA1
QjMwMEI3Rjc1RCAvKiBGaWxlUmVhZGVyLmlkbCAqLywKIAkJCQk4OTUyNTNENDExNkM0QzY4MDBD
QUJGMDAgLyogRmlsZVN0cmVhbS5jcHAgKi8sCiAJCQkJODk1MjUzRDUxMTZDNEM2ODAwQ0FCRjAw
IC8qIEZpbGVTdHJlYW0uaCAqLywKIAkJCQk4OTUyNTNENjExNkM0QzY4MDBDQUJGMDAgLyogRmls
ZVN0cmVhbUNsaWVudC5oICovLApAQCAtMTM0MzEsNiArMTM0MzksOCBAQAogCQkJCTJFM0JDMEM5
MTE3RDNFMDgwMEI5NDA5QSAvKiBKU0ZpbGVFcnJvci5oICovLAogCQkJCUJDMDBGMDEyMEUwQTE4
OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmNwcCAqLywKIAkJCQlCQzAwRjAxMzBFMEExODk1MDBG
RDA0RTMgLyogSlNGaWxlTGlzdC5oICovLAorCQkJCTJFOTRGNDM5MTE5MjA3REEwMEI3Rjc1RCAv
KiBKU0ZpbGVSZWFkZXIuY3BwICovLAorCQkJCTJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBK
U0ZpbGVSZWFkZXIuaCAqLywKIAkJCQlCQzk3RTQxMDEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1M
QWxsQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJQkM5N0U0MTExMDkxNTRGQTAwMTBEMzYxIC8qIEpT
SFRNTEFsbENvbGxlY3Rpb24uaCAqLywKIAkJCQkxQTRBMkRFQjBBMUI4NTJBMDBDODA3RjggLyog
SlNIVE1MQW5jaG9yRWxlbWVudC5jcHAgKi8sCkBAIC0xODk1Myw2ICsxODk2Myw4IEBACiAJCQkJ
QjU5REQ2QTExMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlERDZBNTExOTAyQTYyMDA3RTk2ODQgLyogSlNTUUxT
dGF0ZW1lbnRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTkxMTkwMkE3MTAw
N0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMkU5NEY0M0MxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjExOTUsNiArMjEyMDcsOCBAQAogCQkJCUI1OURENkEyMTE5MDJBNTIwMDdF
OTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCNTlERDZBNjExOTAyQTYyMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTlERDZBQTExOTAyQTcxMDA3RTk2ODQgLyogSlNTUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTRGNDNCMTE5
MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU5
NEY0NTAxMTkyMDk2NDAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAppbmRleCA2ZWExMTM1Li45NDg4ODliIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKQEAgLTgzLDYgKzgzLDExIEBACiAj
aW5jbHVkZSAiV2ViU29ja2V0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1JFQURFUikK
KyNpbmNsdWRlICJKU0ZpbGVSZWFkZXIuaCIKKyNpbmNsdWRlICJGaWxlUmVhZGVyLmgiCisjZW5k
aWYKKwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ5
LDYgKzE1NCwxMSBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFyZwogICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCB3ZWJTb2NrZXQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRklMRV9SRUFERVIpCisg
ICAgaWYgKEZpbGVSZWFkZXIqIGZpbGVSZWFkZXIgPSB0YXJnZXQtPnRvRmlsZVJlYWRlcigpKQor
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGZpbGVSZWFkZXIpOworI2Vu
ZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggYjJlZWViNC4uNGE5MjU4YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2lu
Y2x1ZGUgIlY4RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiVjhFdmVudExpc3RlbmVyTGlzdC5oIgog
I2luY2x1ZGUgIlY4RXZlbnRTb3VyY2UuaCIKKyNpbmNsdWRlICJWOEZpbGVSZWFkZXIuaCIKICNp
bmNsdWRlICJWOEhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVjhIVE1MRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgpAQCAtNDE4LDYgKzQxOSwxMSBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2Jq
ZWN0KEV2ZW50VGFyZ2V0KiB0YQogICAgICAgICByZXR1cm4gdG9WOChldmVudFNvdXJjZSk7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1JFQURFUikKKyAgICBpZiAoRmlsZVJlYWRlciogZmls
ZVJlYWRlciA9IHRhcmdldC0+dG9GaWxlUmVhZGVyKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGZp
bGVSZWFkZXIpOworI2VuZGlmCisKICAgICBBU1NFUlQoMCk7CiAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZUVycm9y
LmlkbCBiL1dlYkNvcmUvaHRtbC9GaWxlRXJyb3IuaWRsCmluZGV4IDZjMmIwOGMuLmFkYzI1ZTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxlRXJyb3IuaWRsCisrKyBiL1dlYkNvcmUvaHRt
bC9GaWxlRXJyb3IuaWRsCkBAIC0zMiw4ICszMiwxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgaW50
ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9SRUFERVJ8RklMRV9XUklURVIKICAg
ICBdIEZpbGVFcnJvciB7CisjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiA9IDc7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PVF9GT1VORF9FUlIgPSA4OworI2VuZGlm
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNFQ1VSSVRZX0VSUiA9IDE4OwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBQk9SVF9FUlIgPSAyMDsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgTk9UX1JFQURBQkxFX0VSUiA9IDI0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0ZpbGVSZWFkZXIuaWRsIGIvV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MzNmNTEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2h0bWwvRmlsZVJlYWRlci5pZGwKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9SRUFERVIsCisgICAg
ICAgIENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsCisgICAgICAgIEV2ZW50VGFyZ2V0LAorICAgICAgICBOb1N0YXRpY1RhYmxlcworICAg
IF0gRmlsZVJlYWRlciB7CisgICAgICAgIC8vIHJlYWR5IHN0YXRlcworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBFTVBUWSA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExP
QURJTkcgPSAxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBET05FID0gMjsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7CisKKyAgICAg
ICAgLy8gYXN5bmMgcmVhZCBtZXRob2RzCisgICAgICAgIHZvaWQgcmVhZEFzQmluYXJ5U3RyaW5n
KGluIEJsb2IgZmlsZUJsb2IpOworICAgICAgICB2b2lkIHJlYWRBc1RleHQoaW4gQmxvYiBmaWxl
QmxvYiwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZW5jb2RpbmcpOworICAgICAgICB2b2lkIHJl
YWRBc0RhdGFVUkwoaW4gRmlsZSBmaWxlKTsKKworICAgICAgICB2b2lkIGFib3J0KCk7CisKKyAg
ICAgICAgLy8gZmlsZSBkYXRhCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydFNj
cmlwdFN0cmluZ10gRE9NU3RyaW5nIHJlc3VsdDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRmlsZUVycm9yIGVycm9yOworCisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
bG9hZHN0YXJ0OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOwor
ICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uZXJyb3I7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVuZDsKKyAg
ICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA1OTc1NWFhLi4xMWYwNTVjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bApAQCAtNzE2LDYgKzcxNiw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUg
RE9NRm9ybURhdGFDb25zdHJ1Y3RvciBGb3JtRGF0YTsKIAogICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPUZJTEVfUkVBREVSfEZJTEVfV1JJVEVSXSBGaWxlRXJyb3JDb25zdHJ1Y3RvciBG
aWxlRXJyb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9RklMRV9SRUFERVJdIEZp
bGVSZWFkZXJDb25zdHJ1Y3RvciBGaWxlUmVhZGVyOwogCiAjZW5kaWYgLy8gZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2ODEyOWIwLi4zZDVmMzAyIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNS0wNyAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRXhwb3NlIEZpbGVSZWFkZXIgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDkKKworICAgICAgICAqIGZlYXR1cmVzLmd5
cGk6IHR1cm4gb24gYnVpbGRpbmcgRmlsZVJlYWRlciBmb3IgQ2hyb21pdW0uCisKIDIwMTAtMDUt
MDYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpIGIvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggNzE0NjY4NS4uODdh
NmUwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgICAgJ0VO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MScsCiAgICAgICAgICdFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQ9MCcsCiAgICAgICAgICdFTkFCTEVfRE9NX1NUT1JBR0U9MScsCi0gICAgICAg
ICdFTkFCTEVfRklMRV9SRUFERVI9MCcsCisgICAgICAgICdFTkFCTEVfRklMRV9SRUFERVI9MScs
CiAgICAgICAgICdFTkFCTEVfRklMRV9XUklURVI9MCcsCiAgICAgICAgICdFTkFCTEVfR0VPTE9D
QVRJT049MScsCiAgICAgICAgICdFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUj0xJywKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRl
eCA3MGIxMGYwLi4zNDQ1ZTAxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDUtMDcgIEpp
YW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBGaWxlUmVhZGVyIGludGVyZmFjZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjA5CisKKyAgICAg
ICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDogdHVybiBvbiBidWlsZGluZyBGaWxlUmVhZGVyIGZv
ciBBcHBsZSdzIFdlYktpdC4KKwogMjAxMC0wNS0wNyAgQ2hyaXMgSmVyZG9uZWsgIDxjamVyZG9u
ZWtAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDNhM2VkYjkuLjRkMDAxZjQgMTAwNzU1Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CkBAIC0xNzgsNyArMTc4LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfWFNMVCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR4c2x0U3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImZpbGUtcmVhZGVyIiwgZGVzYyA9PiAiVG9nZ2xl
IEZpbGVSZWFkZXIgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GSUxFX1JFQURF
UiIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRmaWxlUmVhZGVyU3VwcG9ydCB9LAorICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfRklMRV9SRUFERVIiLCBkZWZhdWx0ID0+IGlzQXBwbGVXZWJLaXQo
KSwgdmFsdWUgPT4gXCRmaWxlUmVhZGVyU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImZp
bGUtd3JpdGVyIiwgZGVzYyA9PiAiVG9nZ2xlIEZpbGVXcml0ZXIgc3VwcG9ydCIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9GSUxFX1dSSVRFUiIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRm
aWxlV3JpdGVyU3VwcG9ydCB9LAo=
</data>
<flag name="review"
          id="39571"
          type_id="1"
          status="+"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="39572"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>