<?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>110497</bug_id>
          
          <creation_ts>2013-02-21 12:11:37 -0800</creation_ts>
          <short_desc>WEBGL_compressed_texture_pvrtc needs implementation</short_desc>
          <delta_ts>2014-01-14 17:44:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127023</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Remi Arnaud">Remi.Arnaud</reporter>
          <assigned_to name="Brandon Jones">bajones</assigned_to>
          <cc>abarth</cc>
    
    <cc>bajones</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gman</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838673</commentid>
    <comment_count>0</comment_count>
    <who name="Remi Arnaud">Remi.Arnaud</who>
    <bug_when>2013-02-21 12:11:37 -0800</bug_when>
    <thetext>WEBGL_compressed_texture_pvrtc (see URL) is in Draft stage, and is awaiting implementation to enable the community to review the extension.

WEBGL_compressed_texture_pvrtc in necessary to take advantage of specific hardware texture compression, and is used to enable content to fit in the device GPU memory, as well as optimizing for speed (smaller transfer, zero decoding time). This extension is similar to WEBGL_compressed_texture_s3tc, already implemented, that covers a lot of devices, but unfortunately is not available on all devices.

See also bug https://bugs.webkit.org/show_bug.cgi?id=110496</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838854</commentid>
    <comment_count>1</comment_count>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-02-21 14:38:43 -0800</bug_when>
    <thetext>I&apos;ll take this one as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858541</commentid>
    <comment_count>2</comment_count>
      <attachid>193880</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-03-19 11:43:55 -0700</bug_when>
    <thetext>Created attachment 193880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861977</commentid>
    <comment_count>3</comment_count>
      <attachid>193880</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-22 16:51:51 -0700</bug_when>
    <thetext>Comment on attachment 193880
Patch

Nice work. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862009</commentid>
    <comment_count>4</comment_count>
      <attachid>193880</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-22 17:19:39 -0700</bug_when>
    <thetext>Comment on attachment 193880
Patch

I hope this still applies...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862018</commentid>
    <comment_count>5</comment_count>
      <attachid>193880</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 17:27:30 -0700</bug_when>
    <thetext>Comment on attachment 193880
Patch

Rejecting attachment 193880 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 193880, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
cceeded at 1 with fuzz 3.
patching file LayoutTests/webgl/conformance/extensions/webgl-compressed-texture-pvrtc-expected.txt
patching file LayoutTests/webgl/conformance/extensions/webgl-compressed-texture-pvrtc.html
patching file LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Kenneth Russell&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/17211665</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863024</commentid>
    <comment_count>6</comment_count>
      <attachid>194915</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-03-25 13:40:23 -0700</bug_when>
    <thetext>Created attachment 194915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863025</commentid>
    <comment_count>7</comment_count>
      <attachid>194915</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-03-25 13:41:06 -0700</bug_when>
    <thetext>Comment on attachment 194915
Patch

Patch rebased, should apply cleanly now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863117</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-25 15:46:27 -0700</bug_when>
    <thetext>OK, this looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863123</commentid>
    <comment_count>9</comment_count>
      <attachid>194915</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 15:54:05 -0700</bug_when>
    <thetext>Comment on attachment 194915
Patch

Clearing flags on attachment: 194915

Committed r146820: &lt;http://trac.webkit.org/changeset/146820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863124</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 15:54:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193880</attachid>
            <date>2013-03-19 11:43:55 -0700</date>
            <delta_ts>2013-03-25 13:40:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110497-20130319113946.patch</filename>
            <type>text/plain</type>
            <size>50827</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM1NWVkMGY4OTBmYWMx
YTFmNDY3OGYxNGY3NzA5N2RmMmFmODdlZi4uMTk0ZDdmZDI0ODNkM2M3OWM3NjdiYzk1ZjA2ZDNl
NDBkYzNlMzE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTE5ICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIFdFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyBuZWVkcyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNDk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ2wvY29uZm9ybWFuY2UvZXh0
ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtcHZydGMuaHRtbAorCisgICAgICAgIEV4
cG9zZXMgdGhlIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBleHRlbnNpb24sIGJ1dCBp
cyB1bnZlcmlmaWVkIHNpbmNlIG5vIGRlc2t0b3AgaGFyZHdhcmUgc3VwcG9ydHMKKyAgICAgICAg
dGhlIGZvcm1hdCB0aGF0IEkgYW0gYXdhcmUgb2YuIFNob3VsZCBlbmFibGUgbW9iaWxlIHBvcnRz
IHRvIGV4cG9zZSB0aGUgZm9ybWF0LCBob3dldmVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJn
ZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQ
VlJUQzo6fldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5pZGw6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmguCisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5z
aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
Q29tcHJlc3NlZFRleEZ1bmNEYXRhKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5kZXJp
bmdDb250ZXh0KToKKwogMjAxMy0wMy0xOSAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IG1lbnUgaXRlbXMgY2FwaXRhbGl6
YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNlMjVlZTY5MmE2NzRkNmRlNjE5NDY5MzQx
YWQ1ZmRmYzE5ZWI2MzUuLjQ5MDJiYTJlMzU4NmY0NTU1ZmEwNDIxY2Y3M2MxMTQyNzBiYzQwOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MjcsNiArNTI3LDcgQEAgc2V0KFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAogICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuaWRsCisgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlk
bAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbAogICAgIGh0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0RXZlbnQuaWRsCkBAIC0xNTE0LDYgKzE1MTUsNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKICAgICBodG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDLmNwcAorICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5j
cHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAKICAgICBo
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcAogICAgIGh0bWwvY2FudmFzL1dl
YkdMQ29udGV4dEV2ZW50LmNwcApAQCAtMjYzNyw2ICsyNjM5LDcgQEAgaWYgKEVOQUJMRV9XRUJH
TCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVBVEMuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcApAQCAtMjY3OCw2
ICsyNjgxLDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xB
Y3RpdmVJbmZvLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGwKKyAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlkbAogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0RXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3NTliNGYwOGRm
MjBlNTA0ODdmODVkNzI2NDJmMjNhY2JlMTRiMjliLi4wNjFiNWRmZjU3YTA3OTc3YTM4NGFjMjFi
MWNiNzkwZTU1OWU1ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQxMyw2
ICs0MTMsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9X
ZWJHTEFjdGl2ZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQnVm
ZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDQyMTJiODU1
ODk4YzA4YzQ2MmU0OGM5MTcwOGJiODJjMDViYjU0MDUuLmMwMGEyMzM0OTZhNDM5OGRlMTk4NDM1
Y2M1NmUyMDVkMGMxZGIxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTMyMyw2
ICszMjMsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdM
QWN0aXZlSW5mby5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCBc
CiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGwgXAor
ICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5pZGwgXAog
ICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCiAg
ICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwgXAogICAgICQk
UFdEL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCBmZjM4YzQzODQwY2E1N2Y4MzkwNjk2ODdkZWJhMjg5M2RkMWI0MWI5
Li44NTA5Y2ExYTdlYjY5NDEyNTM0YWJkOTI5YzJmMzQwNjkzYzRiMmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc4Nyw2ICs3ODcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTEJ1ZmZlci5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5j
cHAgXApAQCAtMTU2NSw2ICsxNTY3LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5pZGwgXApAQCAtMzMyMSw2ICszMzI0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRB
dHRyaWJ1dGVzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5NjcyOWFmYzhlNzY0NzgwY2ZlMTc1MGUz
NjAxZjAxMWE4Y2RhYTM3Li4xNzE4N2I5Yjg0YmM2N2Q3NGQ3NmJmNDliNTdiNTQ2MmFkODVmYWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKQEAgLTQwNDMsNiArNDA0Myw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmggXAogICAgICAgICBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5oIFwKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5o
IFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCBcCkBAIC00MDgwLDYgKzQwODEsNyBA
QCBlbmFibGU/KFdFQkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBcCiAgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIFwKKyAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
RXZlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzNWE1MTY1NDZhNmUzNmEwY2YyOTNiNzJh
ZTM5Y2MwN2Q5NmRmMzc0Li4yM2UyNjc2ZTRmNTFmNTAyMzAyNTU2ZDIxNmNmZDNjMTc5NTk0ZTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NzgsNiArNDc4LDcgQEAKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRl
eHRFdmVudC5pZGwnLApAQCAtMzQ2MCw2ICszNDYxLDggQEAKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQy5oJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmNwcCcsCkBAIC03MzA0LDYgKzczMDcsOCBAQAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTEJ1ZmZlci5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmgn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2MTRkZTEyM2IzZjM0NWY5ZWYz
ZjhhMjZmNGE2MzRmYTliOTQzMDMuLmRlY2ZhMGM0MGIzMDBmNWFjNzgwYjBhYjVmZmNmM2Y2YWRj
NzA0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIwNzYsNiArMjA3NiwxMCBAQAogCQk3RTk5QUY1MzBCMTM4NDY0NjhGQjAx
QTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2lu
ZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VBMzBGNjkxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RUEzMEY2NzE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcCAqLzsgfTsKIAkJN0VBMzBGNkExNkRGRkU3NTAwMjU3RDBCIC8qIEpT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0VBMzBGNjgxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQy5oICovOyB9OworCQk3RTY2RTIzMzE3RTZFQjZDMDBGN0U3RkYgLyog
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMxMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwICovOyB9OworCQk3RTY2RTIzNDE3RTZFQjZDMDBGN0U3
RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYgLyogV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi87IH07CisJCTdFQTMwRjY5MTdFRkZFNzUwMDI1
N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUEzMEY2NzE3RUZGRTc1MDAyNTdEMEIg
LyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwICovOyB9OworCQk3RUEzMEY2QTE3
RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFQTMwRjY4MTdFRkZFNzUw
MDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oICovOyB9OwogCQk3RUU2
ODQ1RjEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0
MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAgKi87IH07CiAJCTdFRTY4NDYwMTJEMjZFMzgwMEU3
OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ0RDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRp
b25DRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NEUxMkQy
NkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk1OTUsNiArOTU5OSwxMSBAQAog
CQk3RUEzMEY2MjE2REZENjI3MDAyNTdEMEIgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGw7
IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdFQTMwRjY3MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVBVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0VBMzBGNjgxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U2NkUyMzEx
N0U2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEMuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNjZFMjMyMTdFNkVCNkMwMEY3RTdGRiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmg7IHBhdGggPSBjYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdF
QTMwRjYyMTdFRkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5pZGw7
IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0VBMzBGNjcxN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0VBMzBGNjgxN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFRTY4NDRDMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ0YuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ0RDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0
aGVudGljYXRpb25DRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50
aWNhdGlvbkNGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDRFMTJEMjZF
MzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTU4NTYsNiArMTU4NjUsOSBAQAogCQkJCTdFNjZFMjMxMTZENkVC
NkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCAqLywKIAkJCQk3RTY2
RTIzMjE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oICovLAog
CQkJCTdFQTMwRjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
LmlkbCAqLywKKwkJCQk3RTY2RTIzMTE3RTZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDLmNwcCAqLywKKwkJCQk3RTY2RTIzMjE3RTZFQjZDMDBGN0U3RkYgLyogV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi8sCisJCQkJN0VBMzBGNjIxN0VGRDYyNzAwMjU3
RDBCIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5pZGwgKi8sCiAJCQkJNkUzRkFFOEMx
NDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLywKIAkJ
CQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aCAqLywKIAkJCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuaWRsICovLApAQCAtMTkzMTksNiArMTkzMzEsOCBAQAogCQkJCTQ5QzdCOTgxMTA0
MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggKi8sCiAJCQkJN0VBMzBGNjcxNkRGRkU3
NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgKi8sCiAJCQkJN0VB
MzBGNjgxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oICov
LAorCQkJCTdFQTMwRjY3MTdFRkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVQVlJUQy5jcHAgKi8sCisJCQkJN0VBMzBGNjgxN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi8sCiAJCQkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2
IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovLAogCQkJCTZFM0ZBRDM3MTQ3
MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggKi8sCiAJCQkJ
NkVFOEE3NzAxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAg
Ki8sCkBAIC0yNTQ1OSw2ICsyNTQ3Myw3IEBACiAJCQkJQTdEMjBGNjMxMDdGNDA2OTAwQTgwMzky
IC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3Qjk5NDEwNDJE
MkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VBMzBG
NkExNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJN0VBMzBGNkExN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTNGQUQzOTE0NzMzRjQwMDBF
NDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkVFOEE3NzMxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQ0JGNEUxNDBGMUFCRDAwMzg3OUJFIC8qIEpTV2ViR0xD
b250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY2MjksNiArMjY2NDQsNyBAQAogCQkJ
CUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUM5MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0U2NkUyMzQxNkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFNjZFMjM0MTdFNkVCNkMwMEY3RTdG
RiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZF
M0ZBRThGMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0Iw
NiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODg3NSw2ICsyODg5
MSw3IEBACiAJCQkJQTdEMjBGNjIxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZv
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOTkzMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dl
YkdMQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0Qw
QiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
N0VBMzBGNjkxN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFM0ZBRDM4MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFRThBNzcy
MTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkMyQ0JGN0IxNDBGMUQ1ODAwMzg3OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg0OCw2ICsyOTg2NSw3IEBACiAJCQkJQkM2REFE
RkEwQTE5NjAyQjAwRTVDRDE0IC8qIFdlYkZvbnRDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QzdCOUM4MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3RTY2RTIzMzE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RTY2RTIzMzE3RTZFQjZDMDBGN0U3RkYgLyog
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFM0ZB
RThFMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk2RTRFOTFBRTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Y2RjFFRDEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAKaW5kZXggOTM4MGY3N2NkNTBmMDVjYTNmZTM0MTI1ODgwNjgzNmM2ODUwMDJiZS4u
YzkxMGEyZGQxMmJlMWI0NTljZjY3Y2QyOWY2ZTIzYTEyNmZhMjM1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgog
I2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBVEMuaCIKKyNpbmNsdWRlICJKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oIgog
I2luY2x1ZGUgIkpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCIKICNpbmNsdWRlICJKU1dl
YkdMRGVwdGhUZXh0dXJlLmgiCiAjaW5jbHVkZSAiSlNXZWJHTEZyYW1lYnVmZmVyLmgiCkBAIC02
OSw2ICs3MCw3IEBACiAjaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKICNpbmNsdWRl
ICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCIK
KyNpbmNsdWRlICJXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCIKICNpbmNsdWRlICJXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCIKICNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgpAQCAtMjIwLDYgKzIyMiw4IEBA
IHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBXZWJHTEV4dGVuCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pKTsKICAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDTmFtZToKICAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDTmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQ05hbWU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsK
ICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlcHRoVGV4dHVyZU5hbWU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCAxMjQ3OWMwZGI0ODIwZTRhOGY1MWJl
NjBiMmY1MDRhY2M2YjZkOTA1Li5kYWE4NDA5ODhhMWNmZmY0ZTg3MThkYzc3N2I2ZjI2MWJhMDRk
ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTU4LDYgKzU4
LDcgQEAKICNpbmNsdWRlICJWOFVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFdlYkdMQnVmZmVy
LmgiCiAjaW5jbHVkZSAiVjhXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmgiCisjaW5jbHVkZSAi
VjhXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCIKICNpbmNsdWRlICJWOFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgi
CiAjaW5jbHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5oIgpAQCAtMjE4LDYgKzIxOSw5IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0
ZW5zaW9uLCB2ODo6SGFuZGxlPHY4CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQ05hbWU6CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3Rh
dGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbiksIGNvbnRleHRP
YmplY3QsIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVENOYW1lIjsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVENOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRp
Y19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbiksIGNvbnRleHRP
YmplY3QsIGlzb2xhdGUpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQ05hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWU6CiAgICAgICAgIGV4dGVuc2lvbk9i
amVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMqPihleHRl
bnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ0NTkyMGU3ZjE1ODU4MTdmYzdkYmNjYzZiNzQyODg0OWFlZWQ1OTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVEMuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEMuaCIKKworI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgorI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQzo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKFdlYkdMUmVuZGVyaW5n
Q29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7CisgICAg
Y29udGV4dC0+YWRkQ29tcHJlc3NlZFRleHR1cmVGb3JtYXQoRXh0ZW5zaW9uczNEOjpDT01QUkVT
U0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HKTsKKyAgICBjb250ZXh0LT5hZGRDb21wcmVzc2VkVGV4
dHVyZUZvcm1hdChFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUcp
OworICAgIGNvbnRleHQtPmFkZENvbXByZXNzZWRUZXh0dXJlRm9ybWF0KEV4dGVuc2lvbnMzRDo6
Q09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUcpOworICAgIGNvbnRleHQtPmFkZENvbXBy
ZXNzZWRUZXh0dXJlRm9ybWF0KEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JBX1BWUlRDXzJC
UFBWMV9JTUcpOworfQorCitXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6On5XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFt
ZSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOworfQorCitQYXNzT3duUHRyPFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKGNvbnRleHQpKTsKK30KKworYm9v
bCBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQpCit7CisgICAgRXh0ZW5zaW9uczNEKiBleHRlbnNpb25zID0gY29udGV4
dC0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpOworICAgIHJldHVybiBleHRl
bnNpb25zLT5zdXBwb3J0cygiR0xfSU1HX3RleHR1cmVfY29tcHJlc3Npb25fcHZydGMiKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVEMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2U0ZTJlZGE2YWM3MDAzMDlmZmJlMWQ0OGNiODlmNDZl
NjQ0NGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDX2gKKyNkZWZpbmUgV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDX2gKKworI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24geworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4gY3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVkKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xDb21wcmVzc2VkVGV4
dHVyZVBWUlRDKCk7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzQ5NDg3NzhhNTVjZDI5NWFkZDU1YTA2Mzk4NTI2MjgyZDliOWRlNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQ
VlJUQy5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJH
TCwKKyAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgT21pdENvbnN0
cnVjdG9yLAorICAgIERvTm90Q2hlY2tDb25zdGFudHMKK10gaW50ZXJmYWNlIFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQyB7CisgICAgLyogQ29tcHJlc3NlZCBUZXh0dXJlIEZvcm1hdHMgKi8K
KyAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRyAg
PSAweDhDMDA7CisgICAgY29uc3QgdW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdCX1BWUlRDXzJC
UFBWMV9JTUcgID0gMHg4QzAxOworICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VEX1JH
QkFfUFZSVENfNEJQUFYxX0lNRyA9IDB4OEMwMjsKKyAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09N
UFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUcgPSAweDhDMDM7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKaW5kZXggMjRhMWU2MTQyZGE0ZmY2ZGY4
MDgzYzZhOTNkYTIwNDIzMzZiMjY2ZS4uZjA1ZTM5ZTk4NzYzOTk0MTEwZWNiODlkOWNiOGQ3MGFl
ZjE4MWFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRl
bnNpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5o
CkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViR0xEZXB0aFRleHR1cmVOYW1l
LAogICAgICAgICBPRVNFbGVtZW50SW5kZXhVaW50TmFtZSwKICAgICAgICAgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQ05hbWUsCisgICAgICAgIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQ05h
bWUsCiAgICAgfTsKIAogICAgIHZvaWQgcmVmKCkgeyBtX2NvbnRleHQtPnJlZigpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAppbmRleCBhOGIzZGJjYTI4ZTkwZjJhNzc5NGI4ZGZmODg4ODFhOTM2ZTcyOWJmLi4xNTc2ZGIw
NzRkYTRlYjllZjk4ZDM2NGE3ZGZlNTkzZTMzNjRhYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTU4LDYgKzU4
LDcgQEAKICNpbmNsdWRlICJXZWJHTEFjdGl2ZUluZm8uaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCIKKyNpbmNsdWRlICJX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCIKICNpbmNsdWRlICJXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKICNpbmNs
dWRlICJXZWJHTENvbnRleHRFdmVudC5oIgpAQCAtNzYzLDEwICs3NjQsMTAgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICAg
ICAgaWYgKG1fZHJhd2luZ0J1ZmZlcikKICAgICAgICAgICAgIG1fZHJhd2luZ0J1ZmZlci0+cGFp
bnRDb21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKGNhbnZhcygpLT5idWZmZXIoKSk7CiAjZW5kaWYK
KwogICAgICAgICBjYW52YXMoKS0+bWFrZVByZXNlbnRhdGlvbkNvcHkoKTsKICAgICB9IGVsc2UK
ICAgICAgICAgY2FudmFzKCktPmNsZWFyUHJlc2VudGF0aW9uQ29weSgpOwotCiAgICAgY2xlYXJJ
ZkNvbXBvc2l0ZWQoKTsKIAogICAgIGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSAmJiAhbV9sYXll
ckNsZWFyZWQpCkBAIC0yNDM3LDYgKzI0MzgsMTEgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAg
ICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEM6OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5nZXQoKTsKICAgICB9CisgICAgaWYgKChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VC
S0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKQorICAgICAgICAmJiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCh0aGlzKSkgeworICAgICAgICBpZiAoIW1f
d2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKQorICAgICAgICAgICAgbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OmNyZWF0ZSh0aGlz
KTsKKyAgICB9CiAgICAgaWYgKChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMiKQogICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIGFmdGVy
IGEgY2VydGFpbiBncmFjZSBwZXJpb2QuCiAgICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpCkBAIC0yOTkxLDYg
KzI5OTcsOCBAQCBWZWN0b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBv
cnRlZEV4dGVuc2lvbnMoKQogICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIp
OwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQodGhpcykpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRj
Iik7CisgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKHRoaXMp
KQorICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJl
X3B2cnRjIik7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQo
dGhpcykpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfczN0YyIpOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKGdyYXBo
aWNzQ29udGV4dDNEKCkpKQpAQCAtNTQwMyw2ICs1NDExLDE3IEBAIGJvb2wgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZUNvbXByZXNzZWRUZXhGdW5jRGF0YShjb25zdCBjaGFyKiBmdW5j
dGlvbk5hCiAgICAgICAgIHsKICAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBmbG9vcihzdGF0
aWNfY2FzdDxkb3VibGU+KCh3aWR0aCArIDMpIC8gNCkpICogZmxvb3Ioc3RhdGljX2Nhc3Q8ZG91
YmxlPigoaGVpZ2h0ICsgMykgLyA0KSkgKiAxNjsKICAgICAgICAgfQorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRzoKKyAgICAgICAgeworICAg
ICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IG1heCh3aWR0aCwgOCkgKiBtYXgoaGVpZ2h0LCA4KSAv
IDI7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HOgorICAgICAgICB7CisgICAgICAgICAgICBi
eXRlc1JlcXVpcmVkID0gbWF4KHdpZHRoLCA4KSAqIG1heChoZWlnaHQsIDgpIC8gNDsKKyAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZh
bGlkIGZvcm1hdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAppbmRleCBhYjY0MmI0YmUyMmJmODJlNTY0YzZkMDg2NzBmMTIxNDYx
OTUyNGNiLi5jMzRiZTJkNDk5NWU0YWJjYTI4MTY5MDAxMDM4ZWQ2ZTc4OWM5NzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApA
QCAtNTksNiArNTksNyBAQCBjbGFzcyBXZWJHTEJ1ZmZlcjsKIGNsYXNzIFdlYkdMQ29udGV4dEdy
b3VwOwogY2xhc3MgV2ViR0xDb250ZXh0T2JqZWN0OwogY2xhc3MgV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQzsKK2NsYXNzIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzsKIGNsYXNzIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDOwogY2xhc3MgV2ViR0xDb250ZXh0QXR0cmlidXRlczsKIGNs
YXNzIFdlYkdMRGVidWdSZW5kZXJlckluZm87CkBAIC0zMzIsNiArMzMzLDcgQEAgcHVibGljOgog
ICAgIGZyaWVuZCBjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBmcmllbmQgY2xhc3Mg
V2ViR0xEZWJ1Z1NoYWRlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEM7CisgICAgZnJpZW5kIGNsYXNzIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzsKICAg
ICBmcmllbmQgY2xhc3MgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM7CiAgICAgZnJpZW5kIGNs
YXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrOwogICAgIGZyaWVu
ZCBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOwpAQCAtNTI4LDYgKzUzMCw3IEBAIHB1
YmxpYzoKICAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVnUmVu
ZGVyZXJJbmZvOwogICAgIE93blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVnU2hh
ZGVyczsKICAgICBPd25QdHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4gbV93ZWJnbENvbXBy
ZXNzZWRUZXh0dXJlQVRDOworICAgIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+
IG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOwogICAgIE93blB0cjxXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQz4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQzsKICAgICBPd25QdHI8
V2ViR0xEZXB0aFRleHR1cmU+IG1fd2ViZ2xEZXB0aFRleHR1cmU7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMWIxY2Ni
NTlkYTY4Njg2ZDAzYzZiN2IwNjAxZDkxOWE3M2M4YThkLi42NWRhMzhjYWY0Zjg5OTEwYmU5ZGZh
YmYzNjJlODAyMzc2Yzc1ZDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDMtMTkgIEJy
YW5kb24gSm9uZXMgIDxiYWpvbmVzQGdvb2dsZS5jb20+CisKKyAgICAgICAgV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3B2cnRjIG5lZWRzIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA0OTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVu
c2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtcHZydGMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRl
eHR1cmUtcHZydGMuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMTkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0aW9uIGluIExlZ2FjeVdlYkFy
Y2hpdmU6OmNyZWF0ZSgpIGluIGVkaXRpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2
cnRjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lv
bnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41OTE3ZWE4NmE3YmE5MDgzMzg4ZDFhZjJkMGEwMWEzNjdmM2Y4NTI2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21w
cmVzc2VkLXRleHR1cmUtcHZydGMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRj
Lmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
ZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtcHZydGMuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJl
LXB2cnRjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y0YmU5Yjg2N2YwMzIyOWRjOWNkYThkMDQ3ODY3NDQ3
N2RmM2JlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2Vi
Z2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3Igd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1wdnJ0Yy5odG1s
Ij4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1wdnJ0Yy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtcHZydGMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNv
bXByZXNzZWQtdGV4dHVyZS1wdnJ0Yy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtcHZydGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzFkM2NlZmRmYTYzMWEwN2Q5YzI0NWEz
MGE3NTc2OGZkN2EwYjMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21w
cmVzc2VkLXRleHR1cmUtcHZydGMuaHRtbApAQCAtMCwwICsxLDM2NSBAQAor77u/PCEtLQorCisv
KgorKiogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
CisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
CisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzx0aXRsZT5XZWJHTCBXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfcHZydGMgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPHN0eWxl
PgoraW1nIHsKKyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyBtYXJnaW4tcmlnaHQ6IDFlbTsK
K30KKy50ZXN0aW1hZ2VzIHsKK30KKworLnRlc3RpbWFnZXMgYnIgeworICBjbGVhcjogYm90aDsK
K30KKworLnRlc3RpbWFnZXMgPiBkaXYgeworICBmbG9hdDogbGVmdDsKKyAgbWFyZ2luOiAxZW07
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHN0eWxlPSJ3aWR0
aDogOHB4OyBoZWlnaHQ6IDhweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmll
cyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRj
IGV4dGVuc2lvbiwgaWYgaXQgaXMgYXZhaWxhYmxlLiIpOworCitkZWJ1ZygiIik7CisKKy8vIENv
bXByZXNzZWQgdGV4dHVyZXMgZ2VuZXJhdGVkIHdpdGggdGh3IFBvd2VyVlIgU0RLCisvLyBodHRw
Oi8vd3d3LmltZ3RlYy5jb20vcG93ZXJ2ci9pbnNpZGVyL3Nka2Rvd25sb2Fkcy9pbmRleC5hc3AK
K3ZhciBwdnJ0Y180eDRfcmdiYV8yYnBwID0gbmV3IFVpbnQ4QXJyYXkoWworICAweDc3LCAweDIy
LCAweDc3LCAweDIyLCAweGJiLCAweDJiLCAweDAwLCAweDgwLCAweDc3LCAweDIyLCAweDc3LCAw
eDIyLCAweGJiLCAweDJiLCAweDAwLCAweDgwLAorICAweDc3LCAweDIyLCAweDc3LCAweDIyLCAw
eGJiLCAweDJiLCAweDAwLCAweDgwLCAweDc3LCAweDIyLCAweDc3LCAweDIyLCAweGJiLCAweDJi
LCAweDAwLCAweDgwLAorXSk7CisKK3ZhciBwdnJ0Y180eDRfcmdiYV8yYnBwX2RlY29kZWQgPSBu
ZXcgVWludDhBcnJheShbCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4MzUsIDB4MzUsIDB4
MzIsIDB4Y2EsIDB4NzYsIDB4NzYsIDB4NzEsIDB4OGEsIDB4NzAsIDB4NzAsIDB4NmIsIDB4OGYs
CisgIDB4MzUsIDB4MzUsIDB4MzIsIDB4Y2EsIDB4NDYsIDB4NDYsIDB4NDMsIDB4YjgsIDB4NzAs
IDB4NzAsIDB4NmIsIDB4OGYsIDB4YmQsIDB4YmQsIDB4YjUsIDB4NDQsCisgIDB4MDAsIDB4MDAs
IDB4MDAsIDB4ZmYsIDB4MzUsIDB4MzUsIDB4MzIsIDB4Y2EsIDB4NzYsIDB4NzYsIDB4NzEsIDB4
OGEsIDB4NzAsIDB4NzAsIDB4NmIsIDB4OGYsCisgIDB4MzUsIDB4MzUsIDB4MzIsIDB4Y2EsIDB4
NDYsIDB4NDYsIDB4NDMsIDB4YjgsIDB4NzAsIDB4NzAsIDB4NmIsIDB4OGYsIDB4YmQsIDB4YmQs
IDB4YjUsIDB4NDQsCitdKTsKKwordmFyIHB2cnRjXzR4NF9yZ2JhXzRicHAgPSBuZXcgVWludDhB
cnJheShbCisgIDB4MWIsIDB4MWIsIDB4MWIsIDB4MWIsIDB4YmEsIDB4MmIsIDB4MDAsIDB4ODAs
IDB4MWIsIDB4MWIsIDB4MWIsIDB4MWIsIDB4YmEsIDB4MmIsIDB4MDAsIDB4ODAsCisgIDB4MWIs
IDB4MWIsIDB4MWIsIDB4MWIsIDB4YmEsIDB4MmIsIDB4MDAsIDB4ODAsIDB4MWIsIDB4MWIsIDB4
MWIsIDB4MWIsIDB4YmMsIDB4MmIsIDB4MDAsIDB4ODAsCitdKTsKKwordmFyIHB2cnRjXzR4NF9y
Z2JhXzRicHBfZGVjb2RlZCA9IG5ldyBVaW50OEFycmF5KFsKKyAgMHgwMCwgMHgwMCwgMHgwMCwg
MHhmZiwgMHg0NiwgMHg0NiwgMHg0OSwgMHhiOCwgMHg3NiwgMHg3NiwgMHg3MSwgMHg4YSwgMHhi
ZCwgMHhiZCwgMHhiYSwgMHg0NCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHhmZiwgMHg0NiwgMHg0
NiwgMHg0YywgMHhiOCwgMHg3NiwgMHg3NiwgMHg3MSwgMHg4YSwgMHhiZCwgMHhiZCwgMHhiYywg
MHg0NCwKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHhmZiwgMHg0NiwgMHg0NiwgMHg0MywgMHhiOCwg
MHg3NiwgMHg3NiwgMHg3MSwgMHg4YSwgMHhiZCwgMHhiZCwgMHhiNSwgMHg0NCwKKyAgMHgwMCwg
MHgwMCwgMHgwMCwgMHhmZiwgMHg0NiwgMHg0NiwgMHg0NiwgMHhiOCwgMHg3NiwgMHg3NiwgMHg3
MSwgMHg4YSwgMHhiZCwgMHhiZCwgMHhiNywgMHg0NCwKK10pOworCisvLyBGSVhNRTogVGhlIFBv
d2VyVlIgU0RLIHRvb2xzIGRvIG5vdCBnZW5lcmF0ZSBSR0Igb25seSB0ZXh0dXJlcywgc28gd2Ug
Y3VycmVudGx5IGRvIG5vdCBoYXZlCisvLyBzYW1wbGUgZGF0YSBmb3IgQ09NUFJFU1NFRF9SR0Jf
UFZSVENfNEJQUFYxX0lNRyBhbmQgQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRworCit2
YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNhbnZhcyIpOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHth
bnRpYWxpYXM6IGZhbHNlfSk7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChn
bCk7Cit2YXIgZXh0ID0gbnVsbDsKK3ZhciB2YW8gPSBudWxsOwordmFyIHZhbGlkRm9ybWF0cyA9
IHsKKyAgICBDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HICAgICAgOiAweDhDMDAsCisg
ICAgQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRyAgICAgIDogMHg4QzAxLAorICAgIENP
TVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HICAgICA6IDB4OEMwMiwKKyAgICBDT01QUkVT
U0VEX1JHQkFfUFZSVENfMkJQUFYxX0lNRyAgICAgOiAweDhDMDMsCit9OwordmFyIG5hbWU7Cit2
YXIgc3VwcG9ydGVkRm9ybWF0czsKKworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdM
IGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiV2Vi
R0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIFJ1biB0ZXN0cyB3aXRoIGV4dGVuc2lvbiBk
aXNhYmxlZAorICAgIHJ1blRlc3REaXNhYmxlZCgpOworCisgICAgLy8gUXVlcnkgdGhlIGV4dGVu
c2lvbiBhbmQgc3RvcmUgZ2xvYmFsbHkgc28gc2hvdWxkQmUgY2FuIGFjY2VzcyBpdAorICAgIGV4
dCA9IHd0dS5nZXRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcyhnbCwgIldFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyIpOworICAgIGlmICghZXh0KSB7CisgICAgICAgIHRlc3RQYXNzZWQo
Ik5vIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBzdXBwb3J0IC0tIHRoaXMgaXMgbGVn
YWwiKTsKKyAgICAgICAgcnVuU3VwcG9ydGVkVGVzdChmYWxzZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGVuYWJsZWQgV0VCR0xfY29tcHJlc3NlZF90
ZXh0dXJlX3B2cnRjIGV4dGVuc2lvbiIpOworCisgICAgICAgIHJ1blN1cHBvcnRlZFRlc3QodHJ1
ZSk7CisgICAgICAgIHJ1blRlc3RFeHRlbnNpb24oKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1
blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgIHZhciBuYW1lID0gd3R1Lmdl
dFN1cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzKGdsLCAiV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX3B2cnRjIik7CisgICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCkgeworICAgICAg
ICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiV0VCR0xf
Y29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIGxpc3RlZCBhcyBzdXBwb3J0ZWQgYW5kIGdldEV4dGVu
c2lvbiBzdWNjZWVkZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBsaXN0ZWQgYXMgc3VwcG9ydGVkIGJ1
dCBnZXRFeHRlbnNpb24gZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAg
ICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiV0VCR0xf
Y29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRF
eHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMgbm90IGxpc3RlZCBhcyBzdXBw
b3J0ZWQgYW5kIGdldEV4dGVuc2lvbiBmYWlsZWQgLS0gdGhpcyBpcyBsZWdhbCIpOworICAgICAg
ICB9CisgICAgfQorfQorCisKK2Z1bmN0aW9uIHJ1blRlc3REaXNhYmxlZCgpIHsKKyAgICBkZWJ1
ZygiVGVzdGluZyBiaW5kaW5nIGVudW0gd2l0aCBleHRlbnNpb24gZGlzYWJsZWQiKTsKKworICAg
IHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMp
JywgJ1tdJyk7Cit9CisKK2Z1bmN0aW9uIGZvcm1hdEV4aXN0cyhmb3JtYXQsIHN1cHBvcnRlZEZv
cm1hdHMpIHsKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc3VwcG9ydGVkRm9ybWF0cy5sZW5n
dGg7ICsraWkpIHsKKyAgICAgICAgaWYgKGZvcm1hdCA9PSBzdXBwb3J0ZWRGb3JtYXRzW2lpXSkg
eworICAgICAgICAgICAgdGVzdFBhc3NlZCgic3VwcG9ydGVkIGZvcm1hdCAiICsgZm9ybWF0VG9T
dHJpbmcoZm9ybWF0KSArICIgaXMgZXhpc3RzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisgICAgdGVzdEZhaWxlZCgic3VwcG9ydGVkIGZvcm1hdCAiICsgZm9ybWF0
VG9TdHJpbmcoZm9ybWF0KSArICIgZG9lcyBub3QgZXhpc3QiKTsKK30KKworZnVuY3Rpb24gZm9y
bWF0VG9TdHJpbmcoZm9ybWF0KSB7CisgICAgZm9yICh2YXIgcCBpbiBleHQpIHsKKyAgICAgICAg
aWYgKGV4dFtwXSA9PSBmb3JtYXQpIHsKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiAiMHgiICsgZm9ybWF0LnRvU3RyaW5nKDE2KTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBXRUJHTF9jb21w
cmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKworICAgIC8vIGNoZWNrIHRoYXQgYWxsIGZvcm1hdCBl
bnVtcyBleGlzdC4KKyAgICBmb3IgKG5hbWUgaW4gdmFsaWRGb3JtYXRzKSB7CisgICAgICAgIHZh
ciBleHBlY3RlZCA9ICIweCIgKyB2YWxpZEZvcm1hdHNbbmFtZV0udG9TdHJpbmcoMTYpOworICAg
ICAgICB2YXIgYWN0dWFsID0gImV4dFsnIiArIG5hbWUgKyAiJ10iOworICAgICAgICBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBzdXBwb3J0ZWRGb3JtYXRzID0gZ2wu
Z2V0UGFyYW1ldGVyKGdsLkNPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTKTsKKyAgICAvLyBUaGVy
ZSBzaG91bGQgYmUgZXhhY3RseSAzIGZvcm1hdHMKKyAgICBzaG91bGRCZSgic3VwcG9ydGVkRm9y
bWF0cy5sZW5ndGgiLCAiMyIpOworCisgICAgLy8gY2hlY2sgdGhhdCBhbGwgMyBmb3JtYXRzIGV4
aXN0CisgICAgZm9yICh2YXIgbmFtZSBpbiB2YWxpZEZvcm1hdHMubGVuZ3RoKSB7CisgICAgICAg
IGZvcm1hdEV4aXN0cyh2YWxpZEZvcm1hdHNbbmFtZV0sIHN1cHBvcnRlZEZvcm1hdHMpOworICAg
IH0KKworICAgIC8vIFRlc3QgZWFjaCBmb3JtYXQKKyAgICB0ZXN0UFZSVENfUkdCQV8yQlBQKCk7
CisgICAgdGVzdFBWUlRDX1JHQkFfNEJQUCgpOworfQorCitmdW5jdGlvbiB0ZXN0UFZSVENfUkdC
QV8yQlBQKCkgeworICAgIHZhciB0ZXN0cyA9IFsKKyAgICAgICAgeyAgIHdpZHRoOiA0LAorICAg
ICAgICAgICAgaGVpZ2h0OiA0LAorICAgICAgICAgICAgY2hhbm5lbHM6IDQsCisgICAgICAgICAg
ICBkYXRhOiBwdnJ0Y180eDRfcmdiYV8yYnBwLAorICAgICAgICAgICAgcmF3OiBwdnJ0Y180eDRf
cmdiYV8yYnBwX2RlY29kZWQsCisgICAgICAgICAgICBmb3JtYXQ6IGV4dC5DT01QUkVTU0VEX1JH
QkFfUFZSVENfMkJQUFYxX0lNRworICAgICAgICB9CisgICAgXTsKKyAgICB0ZXN0UFZSVENUZXh0
dXJlcyh0ZXN0cyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RQVlJUQ19SR0JBXzRCUFAoKSB7CisgICAg
dmFyIHRlc3RzID0gWworICAgICAgICB7ICAgd2lkdGg6IDQsCisgICAgICAgICAgICBoZWlnaHQ6
IDQsCisgICAgICAgICAgICBjaGFubmVsczogNCwKKyAgICAgICAgICAgIGRhdGE6IHB2cnRjXzR4
NF9yZ2JhXzRicHAsCisgICAgICAgICAgICByYXc6IHB2cnRjXzR4NF9yZ2JhXzRicHBfZGVjb2Rl
ZCwKKyAgICAgICAgICAgIGZvcm1hdDogZXh0LkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFf
SU1HCisgICAgICAgIH0KKyAgICBdOworICAgIHRlc3RQVlJUQ1RleHR1cmVzKHRlc3RzKTsKK30K
KworZnVuY3Rpb24gdGVzdFBWUlRDVGV4dHVyZXModGVzdHMpIHsKKyAgICBkZWJ1ZygiPGhyLz4i
KTsKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVuZ3RoOyArK2lpKSB7CisgICAg
ICAgIHRlc3RQVlJUQ1RleHR1cmUodGVzdHNbaWldKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRl
c3RQVlJUQ1RleHR1cmUodGVzdCkgeworICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkodGVz
dC5kYXRhKTsKKyAgICB2YXIgd2lkdGggPSB0ZXN0LndpZHRoOworICAgIHZhciBoZWlnaHQgPSB0
ZXN0LmhlaWdodDsKKyAgICB2YXIgZm9ybWF0ID0gdGVzdC5mb3JtYXQ7CisgICAgdmFyIHVuY29t
cHJlc3NlZERhdGEgPSB0ZXN0LnJhdzsKKworICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoOworICAg
IGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7CisgICAgZ2wudmlld3BvcnQoMCwgMCwgd2lkdGgsIGhl
aWdodCk7CisgICAgZGVidWcoInRlc3RpbmcgIiArIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgKyAi
ICIgKyB3aWR0aCArICJ4IiArIGhlaWdodCk7CisKKyAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNU
KTsKKyAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBmb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIDAsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsICJ1cGxvYWRpbmcgY29tcHJlc3NlZCB0ZXh0dXJlIik7CisgICAgZ2wuZ2VuZXJhdGVN
aXBtYXAoZ2wuVEVYVFVSRV8yRCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X09QRVJBVElPTiwgInRyeWluZyB0byBnZW5lcmF0ZSBtaXBtYXBzIGZyb20gY29tcHJlc3NlZCB0
ZXh0dXJlIik7CisgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKKyAgICBjb21wYXJl
UmVjdCh3aWR0aCwgaGVpZ2h0LCB0ZXN0LmNoYW5uZWxzLCB3aWR0aCwgaGVpZ2h0LCB1bmNvbXBy
ZXNzZWREYXRhLCBkYXRhLCBmb3JtYXQpOworCisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAxLCBkYXRhKTsKKyAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJub24gMCBib3JkZXIiKTsKKwor
ICAgIGdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwgd2lk
dGggLSAxLCBoZWlnaHQsIDAsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMiKTsKKyAgICBnbC5jb21wcmVzc2Vk
VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBmb3JtYXQsIHdpZHRoIC0gMiwgaGVpZ2h0LCAw
LCBkYXRhKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAi
aW52YWxpZCBkaW1lbnNpb25zIik7CisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZm9ybWF0LCB3aWR0aCwgaGVpZ2h0IC0gMSwgMCwgZGF0YSk7CisgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9u
cyIpOworICAgIGdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGZvcm1h
dCwgd2lkdGgsIGhlaWdodCAtIDIsIDAsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMiKTsKKworICAgIGdsLmNv
bXByZXNzZWRUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHdpZHRoLCBoZWln
aHQsIGZvcm1hdCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
ImNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIGFsbG93ZWQgZm9yIHJlbG9hZGluZyBvZiBjb21wbGV0
ZSB0ZXh0dXJlcyIpOworCisgICAgZ2wuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwgMCwgd2lkdGggLSAyLCBoZWlnaHQsIGZvcm1hdCwgZGF0YSk7CisgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImNvbXByZXNzZWRUZXhTdWJJ
bWFnZTJEIG5vdCBhbGxvd2VkIGZvciBwYXJ0aWFsIHRleHR1cmUgdXBkYXRlcyIpOworICAgIGds
LmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHdpZHRoLCBo
ZWlnaHQgLSAyLCBmb3JtYXQsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sICJjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCBub3QgYWxsb3dlZCBmb3Ig
cGFydGlhbCB0ZXh0dXJlIHVwZGF0ZXMiKTsKKyAgICBnbC5jb21wcmVzc2VkVGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCAyLCAwLCB3aWR0aCAtIDIsIGhlaWdodCwgZm9ybWF0LCBkYXRh
KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiY29tcHJl
c3NlZFRleFN1YkltYWdlMkQgbm90IGFsbG93ZWQgZm9yIHBhcnRpYWwgdGV4dHVyZSB1cGRhdGVz
Iik7CisgICAgZ2wuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwg
Miwgd2lkdGgsIGhlaWdodCAtIDIsIGZvcm1hdCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIG5vdCBh
bGxvd2VkIGZvciBwYXJ0aWFsIHRleHR1cmUgdXBkYXRlcyIpOworfQorCitmdW5jdGlvbiBpbnNl
cnRJbWcoZWxlbWVudCwgY2FwdGlvbiwgaW1nKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5hcHBlbmRDaGlsZChpbWcpOworICAgIHZhciBs
YWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGxhYmVsLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNhcHRpb24pKTsKKyAgICBkaXYuYXBwZW5kQ2hp
bGQobGFiZWwpOworICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKworZnVuY3Rpb24g
bWFrZUltYWdlKGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0LCBkYXRhV2lkdGgsIGRhdGEsIGFscGhh
KSB7CisgICAgdmFyIHNjYWxlID0gODsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImNhbnZhcyIpOworICAgIGMud2lkdGggPSBpbWFnZVdpZHRoICogc2NhbGU7CisgICAgYy5o
ZWlnaHQgPSBpbWFnZUhlaWdodCAqIHNjYWxlOworICAgIHZhciBjdHggPSBjLmdldENvbnRleHQo
IjJkIik7CisgICAgZm9yICh2YXIgeXkgPSAwOyB5eSA8IGltYWdlSGVpZ2h0OyArK3l5KSB7Cisg
ICAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCBpbWFnZVdpZHRoOyArK3h4KSB7CisgICAgICAg
ICAgICB2YXIgb2Zmc2V0ID0gKHl5ICogZGF0YVdpZHRoICsgeHgpICogNDsKKyAgICAgICAgICAg
IGN0eC5maWxsU3R5bGUgPSAicmdiYSgiICsKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtvZmZz
ZXQgKyAwXSArICIsIiArCisgICAgICAgICAgICAgICAgICAgIGRhdGFbb2Zmc2V0ICsgMV0gKyAi
LCIgKworICAgICAgICAgICAgICAgICAgICBkYXRhW29mZnNldCArIDJdICsgIiwiICsKKyAgICAg
ICAgICAgICAgICAgICAgKGFscGhhID8gZGF0YVtvZmZzZXQgKyAzXSAvIDI1NSA6IDEpICsgIiki
OworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KHh4ICogc2NhbGUsIHl5ICogc2NhbGUsIHNjYWxl
LCBzY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOworICAgIGltZy5zcmMgPSBjLnRvRGF0YVVSTCgpOworICAgIHJldHVy
biBpbWc7Cit9CitmdW5jdGlvbiBjb21wYXJlUmVjdCgKKyAgICAgICAgYWN0dWFsV2lkdGgsIGFj
dHVhbEhlaWdodCwgYWN0dWFsQ2hhbm5lbHMsCisgICAgICAgIGRhdGFXaWR0aCwgZGF0YUhlaWdo
dCwgZXhwZWN0ZWREYXRhLAorICAgICAgICB0ZXN0RGF0YSwgdGVzdEZvcm1hdCwgdG9sZXJhbmNl
KSB7CisgICAgaWYodHlwZW9mKHRvbGVyYW5jZSkgPT0gJ3VuZGVmaW5lZCcpIHsgdG9sZXJhbmNl
ID0gNTsgfQorICAgIHZhciBhY3R1YWwgPSBuZXcgVWludDhBcnJheShhY3R1YWxXaWR0aCAqIGFj
dHVhbEhlaWdodCAqIDQpOworICAgIGdsLnJlYWRQaXhlbHMoCisgICAgICAgICAgICAwLCAwLCBh
Y3R1YWxXaWR0aCwgYWN0dWFsSGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBhY3R1
YWwpOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
IGRpdi5jbGFzc05hbWUgPSAidGVzdGltYWdlcyI7CisgICAgaW5zZXJ0SW1nKGRpdiwgImV4cGVj
dGVkIiwgbWFrZUltYWdlKAorICAgICAgICAgICAgYWN0dWFsV2lkdGgsIGFjdHVhbEhlaWdodCwg
ZGF0YVdpZHRoLCBleHBlY3RlZERhdGEsCisgICAgICAgICAgICBhY3R1YWxDaGFubmVscyA9PSA0
KSk7CisgICAgaW5zZXJ0SW1nKGRpdiwgImFjdHVhbCIsIG1ha2VJbWFnZSgKKyAgICAgICAgICAg
IGFjdHVhbFdpZHRoLCBhY3R1YWxIZWlnaHQsIGFjdHVhbFdpZHRoLCBhY3R1YWwsCisgICAgICAg
ICAgICBhY3R1YWxDaGFubmVscyA9PSA0KSk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICBm
b3IgKHZhciB5eSA9IDA7IHl5IDwgYWN0dWFsSGVpZ2h0OyArK3l5KSB7CisgICAgICAgIGZvciAo
dmFyIHh4ID0gMDsgeHggPCBhY3R1YWxXaWR0aDsgKyt4eCkgeworICAgICAgICAgICAgdmFyIGFj
dHVhbE9mZnNldCA9ICh5eSAqIGFjdHVhbFdpZHRoICsgeHgpICogNDsKKyAgICAgICAgICAgIHZh
ciBleHBlY3RlZE9mZnNldCA9ICh5eSAqIGRhdGFXaWR0aCArIHh4KSAqIDQ7CisgICAgICAgICAg
ICB2YXIgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkRGF0YVtleHBl
Y3RlZE9mZnNldCArIDBdLAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZERhdGFbZXhwZWN0
ZWRPZmZzZXQgKyAxXSwKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWREYXRhW2V4cGVjdGVk
T2Zmc2V0ICsgMl0sCisgICAgICAgICAgICAgICAgICAgIChhY3R1YWxDaGFubmVscyA9PSAzID8g
MjU1IDogZXhwZWN0ZWREYXRhW2V4cGVjdGVkT2Zmc2V0ICsgM10pCisgICAgICAgICAgICBdOwor
ICAgICAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDQ7ICsramopIHsKKyAgICAgICAgICAg
ICAgICBpZiAoTWF0aC5hYnMoYWN0dWFsW2FjdHVhbE9mZnNldCArIGpqXSAtIGV4cGVjdGVkW2pq
XSkgPiB0b2xlcmFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgdmFyIHdhcyA9IGFjdHVhbFthY3R1YWxPZmZzZXQgKyAwXS50b1N0
cmluZygpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAxOyBqIDwgNDsgKytqKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3YXMgKz0gIiwiICsgYWN0dWFsW2FjdHVhbE9mZnNldCAr
IGpdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoJ2F0ICgnICsgeHggKyAnLCAnICsgeXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKSBleHBlY3RlZDogJyArIGV4cGVjdGVkICsgJyB3YXMgJyArIHdhcyk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAg
IGlmICghZmFpbGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoInRleHR1cmUgcmVuZGVyZWQgY29y
cmVjdGx5Iik7CisgICAgfQorfQorCitkZWJ1ZygiIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194915</attachid>
            <date>2013-03-25 13:40:23 -0700</date>
            <delta_ts>2013-03-25 15:54:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110497-20130325133607.patch</filename>
            <type>text/plain</type>
            <size>50915</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFjZWUwNGZiOTgyNTc1
MWEwOTg3M2RjMWI4NGUzYTlkMDZkMDI5My4uOWY2NjlkMTBhOWYyNWJjOTk3NmQyN2M1M2EyMDRk
YTY2ODQyZTNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTI1ICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIFdFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyBuZWVkcyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNDk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSdXNzZWxsLgorCisgICAgICAgIFRlc3Q6IHdlYmdsL2NvbmZvcm1hbmNlL2V4
dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLmh0bWwKKworICAgICAgICBF
eHBvc2VzIHRoZSBXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMgZXh0ZW5zaW9uLCBidXQg
aXMgdW52ZXJpZmllZCBzaW5jZSBubyBkZXNrdG9wIGhhcmR3YXJlIHN1cHBvcnRzCisgICAgICAg
IHRoZSBmb3JtYXQgdGhhdCBJIGFtIGF3YXJlIG9mLiBTaG91bGQgZW5hYmxlIG1vYmlsZSBwb3J0
cyB0byBleHBvc2UgdGhlIGZvcm1hdCwgaG93ZXZlci4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OldlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEM6On5XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpnZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0
ZUNvbXByZXNzZWRUZXhGdW5jRGF0YSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCk6CisKIDIwMTMtMDMtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtneXBdIEFkZCBzdXBwb3J0IGZvciBidWlsZGlu
ZyB0aGUgcGxhdGZvcm0gZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkyYWE3ZDgw
NGE2YTYwNjI3OTdhYzU4ODcxNjcwNjZkMjkyYmY3OWUuLjA2OTE3ZjhhMGM2YzY3ZmZiMzQwMGEy
OWFmMTk5YzI0NmI3MGM2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MjgsNiArNTI4LDcg
QEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZv
LmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbAogICAgIGh0bWwvY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaWRsCisgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsCkBAIC0xNTE2LDYgKzE1MTcsNyBA
QCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWlu
dC5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcAorICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQy5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcAog
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcApAQCAtMjYzOCw2ICsyNjQwLDcg
QEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4
VWludC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCisgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmNwcApAQCAtMjY3OSw2ICsyNjgyLDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TEJ1ZmZlci5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFU
Qy5pZGwKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlk
bAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwKICAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3ODExNTMxZDNjNTM2NzM3YTI0ODA1NjBhN2EzNjBjMTg3ZWE3Mzk5Li4wZDdhNjVk
MjdlOTNiNjhkNzAwYmU4YmU2OTMwYzE5MjI2NmJkMTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTQxNCw2ICs0MTQsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpCmluZGV4IDE5YTNiYWU4ZDliNGUyOGUxZjY0ODZhZGVmZWVjYjRjYWI3MzY0MDQuLmRiZWNh
NDcxYTdjNjFjNzZjZjQyMDE1MTA4Njg1ODVmOTc3MjcyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTMyNCw2ICszMjQsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdE
L2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFz
L1dlYkdMQnVmZmVyLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQy5pZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQy5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyY2RkNTU4NWQwYWNkZjZjOTRkYzYz
YTk4NzlhZDM4NWE3MGYzNWFlLi5kYjYxZTljNGJmNWZhMjhhZjhiOWQwMmQ2Y2ZkZTExN2VkYjk5
OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc4Nyw2ICs3ODcsOCBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TEJ1ZmZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENv
bXByZXNzZWRUZXh0dXJlUzNUQy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5jcHAgXApAQCAtMTU2Nyw2ICsxNTY5LDcgQEAgZG9tX2JpbmRpbmdf
aWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbCBcCisJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsIFwKIAkkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCiAJJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwgXApAQCAtMzMyNiw2ICszMzI5LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1
ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1ZmE0MzIx
MGJkMjQxNTA3N2MwYTk2NGQ0ZDdiM2JmODM1ZWVlOTgwLi5mYjA5NWJmNWM0YTFlYjZiYmU1MmJk
ZGFmMDYwZWQ0NWJhYTE4ZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQwNTAsNiArNDA1MCw3IEBAIGVu
YWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmggXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIFwKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCBcCkBA
IC00MDg3LDYgKzQwODgsNyBAQCBlbmFibGU/KFdFQkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMT2JqZWN0LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIFwKKyAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBcCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0RXZlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3MGQ2YmI5
MjQ3MmNlNmU5OGQ1ZmY4MzcyZTFkNWI0NWM4YzNmNDg2Li4wZGQ1OTg1MDljMTRjNThjNjAzY2Q0
ZTE4MWExOTg4M2FhOWRiMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00ODAsNiArNDgwLDcgQEAK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaWRsJywKKyAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwnLApAQCAtMzQ2Myw2ICszNDY0LDggQEAKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCcsCiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwJywKKyAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCcsCkBAIC02NTk1LDYgKzY1
OTgsOCBAQAogICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS9XZWJDb3JlL2Jp
bmRpbmdzL0pTV2ViR0xCdWZmZXIuaCcsCiAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFU
RV9ESVIpL1dlYkNvcmUvYmluZGluZ3MvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCcs
CiAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL1dlYkNvcmUvYmluZGluZ3Mv
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmgnLAorICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS9XZWJDb3JlL2JpbmRpbmdzL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDLmNwcCcsCisgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL1dlYkNvcmUv
YmluZGluZ3MvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCcsCiAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL1dlYkNvcmUvYmluZGluZ3MvSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQy5jcHAnLAogICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElS
KS9XZWJDb3JlL2JpbmRpbmdzL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCcsCiAgICAg
ICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL1dlYkNvcmUvYmluZGluZ3MvSlNXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2QxMzQ2MmI4ZWVhMjNiMzhhZmMwNDk4Mjhj
YTk2Y2E2NjRlZTgyOC4uYWM5YjFjOTMzNmMwZmRjOTU4MzlmZTlhODg3NmE1ZTkxNzI0YTljMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjA3OSw2ICsyMDc5LDEwIEBACiAJCTdFOTlBRjUzMEIxMzg0NjQ2OEZCMDFBNSAvKiBX
aW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1
c0FsbG93ZWRJbmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3RUEzMEY2OTE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFQTMwRjY3MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuY3BwICovOyB9OwogCQk3RUEzMEY2QTE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3RUEzMEY2ODE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDLmggKi87IH07CisJCTdFNjZFMjMzMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U2NkUyMzExN0U2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQy5jcHAgKi87IH07CisJCTdFNjZFMjM0MTdFNkVCNkMwMEY3RTdGRiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFNjZFMjMyMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaCAqLzsgfTsKKwkJN0VBMzBGNjkxN0VGRkU3NTAwMjU3RDBCIC8q
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFQTMwRjY3MTdFRkZFNzUwMDI1N0QwQiAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAgKi87IH07CisJCTdFQTMwRjZBMTdFRkZFNzUw
MDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VBMzBGNjgxN0VGRkU3NTAwMjU3RDBC
IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmggKi87IH07CiAJCTdFRTY4NDVGMTJE
MjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDRDMTJEMjZFMzgwMEU3OTQxNSAvKiBB
dXRoZW50aWNhdGlvbkNGLmNwcCAqLzsgfTsKIAkJN0VFNjg0NjAxMkQyNkUzODAwRTc5NDE1IC8q
IEF1dGhlbnRpY2F0aW9uQ0YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdFRTY4NDREMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VFNjg0
NjExMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ0RTEyRDI2RTM4MDBF
Nzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTYwMyw2ICs5NjA3LDExIEBACiAJCTdFQTMw
RjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgcGF0aCA9
IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RUEzMEY2ODE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTY2RTIzMTE3RTZFQjZD
MDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHA7
IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U2NkUyMzIxN0U2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0VBMzBGNjIx
N0VGRDYyNzAwMjU3RDBCIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlkbDsgcGF0aCA9
IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3RUEzMEY2NzE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3RUEzMEY2ODE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0
NEMxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DRi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDREMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNh
dGlvbkNGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9u
Q0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NEUxMkQyNkUzODAwRTc5
NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNTg2NCw2ICsxNTg3Myw5IEBACiAJCQkJN0U2NkUyMzExNkQ2RUI2QzAwRjdF
N0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwICovLAogCQkJCTdFNjZFMjMyMTZE
NkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggKi8sCiAJCQkJN0VB
MzBGNjIxNkRGRDYyNzAwMjU3RDBCIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaWRsICov
LAorCQkJCTdFNjZFMjMxMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEMuY3BwICovLAorCQkJCTdFNjZFMjMyMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaCAqLywKKwkJCQk3RUEzMEY2MjE3RUZENjI3MDAyNTdEMEIgLyog
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlkbCAqLywKIAkJCQk2RTNGQUU4QzE0NzMzRkRC
MDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovLAogCQkJCTZFM0ZB
RThEMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovLAog
CQkJCTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5pZGwgKi8sCkBAIC0xOTMzMyw2ICsxOTM0NSw4IEBACiAJCQkJNDlDN0I5ODExMDQyRDJEMzAw
MDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuaCAqLywKIAkJCQk3RUEzMEY2NzE2REZGRTc1MDAyNTdE
MEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCAqLywKIAkJCQk3RUEzMEY2ODE2
REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggKi8sCisJCQkJ
N0VBMzBGNjcxN0VGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
LmNwcCAqLywKKwkJCQk3RUEzMEY2ODE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuaCAqLywKIAkJCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8sCiAJCQkJNkUzRkFEMzcxNDczM0Y0MDAw
RTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLywKIAkJCQk2RUU4QTc3
MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKQEAg
LTI1NDY5LDYgKzI1NDgzLDcgQEAKIAkJCQlBN0QyMEY2MzEwN0Y0MDY5MDBBODAzOTIgLyogSlNX
ZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOTk0MTA0MkQyRDMwMDA5
RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RUEzMEY2QTE2REZG
RTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggaW4gSGVhZGVycyAq
LywKKwkJCQk3RUEzMEY2QTE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFM0ZBRDM5MTQ3MzNGNDAwMEU0MjMwNiAv
KiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUU4
QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzJDQkY0RTE0MEYxQUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjYzOCw2ICsyNjY1Myw3IEBACiAJCQkJQTdEMjBG
NkQxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDlDN0I5QzkxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3RTY2RTIzNDE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U2NkUyMzQxN0U2RUI2QzAwRjdFN0ZGIC8qIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFFOEYx
NDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdl
YkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI4ODg3LDYgKzI4OTAzLDcgQEAK
IAkJCQlBN0QyMEY2MjEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5OTMxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0VBMzBGNjkxNkRGRkU3NTAwMjU3RDBCIC8qIEpT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3RUEzMEY2
OTE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVFOEE3NzIxMEY4MDNG
MzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzJDQkY3QjE0MEYxRDU4MDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI5ODU4LDYgKzI5ODc1LDcgQEAKIAkJCQlCQzZEQURGQTBBMTk2
MDJCMDBFNUNEMTQgLyogV2ViRm9udENhY2hlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5
QzgxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTdFNjZFMjMzMTdFNkVCNkMwMEY3RTdGRiAvKiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUzRkFFOEUxNDcz
M0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTZFNEU5MUFFMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjZGMUVEMTI3RjcwQjEwMDU1Q0IwNiAvKiBX
ZWJHTENvbnRleHRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAppbmRleCA5MzgwZjc3Y2Q1MGYwNWNhM2ZlMzQxMjU4ODA2ODM2YzY4NTAwMmJlLi5jOTEwYTJk
ZDEyYmUxYjQ1OWNmNjdjZDI5ZjZlMjNhMTI2ZmEyMzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAjaW5jbHVk
ZSAiSlNXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFU
Qy5oIgorI2luY2x1ZGUgIkpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmgiCiAjaW5jbHVk
ZSAiSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIkpTV2ViR0xEZXB0
aFRleHR1cmUuaCIKICNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKQEAgLTY5LDYgKzcw
LDcgQEAKICNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgogI2luY2x1ZGUgIldlYkdM
QnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIgorI2luY2x1
ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgog
I2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCkBAIC0yMjAsNiArMjIyLDggQEAgc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFdlYkdMRXh0ZW4KICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENOYW1lOgogICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJH
TENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDTmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVwdGhUZXh0dXJlTmFtZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDEyNDc5YzBkYjQ4MjBlNGE4ZjUxYmU2MGIyZjUw
NGFjYzZiNmQ5MDUuLmRhYTg0MDk4OGExY2ZmZjRlODcxOGRjNzc3YjZmMjYxYmEwNGQ4NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgIlY4VWludDhBcnJheS5oIgogI2luY2x1ZGUgIlY4V2ViR0xCdWZmZXIuaCIKICNp
bmNsdWRlICJWOFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCIKKyNpbmNsdWRlICJWOFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVQVlJUQy5oIgogI2luY2x1ZGUgIlY4V2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuaCIKICNpbmNsdWRlICJWOFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKICNpbmNs
dWRlICJWOFdlYkdMRGVidWdTaGFkZXJzLmgiCkBAIC0yMTgsNiArMjE5LDkgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24s
IHY4OjpIYW5kbGU8djgKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDTmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2Fz
dDxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwg
aXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQ05hbWUiOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1
cmVQVlJUQ05hbWU6CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwg
aXNvbGF0ZSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDTmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0g
dG9WOChzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbiks
IGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDQ1OTIwZTdmMTU4NTgxN2ZjN2RiY2NjNmI3NDI4ODQ5YWVlZDU5NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJU
Qy5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5o
IgorCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMoV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKK3sKKyAgICBjb250ZXh0
LT5hZGRDb21wcmVzc2VkVGV4dHVyZUZvcm1hdChFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdC
X1BWUlRDXzRCUFBWMV9JTUcpOworICAgIGNvbnRleHQtPmFkZENvbXByZXNzZWRUZXh0dXJlRm9y
bWF0KEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRyk7CisgICAg
Y29udGV4dC0+YWRkQ29tcHJlc3NlZFRleHR1cmVGb3JtYXQoRXh0ZW5zaW9uczNEOjpDT01QUkVT
U0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRyk7CisgICAgY29udGV4dC0+YWRkQ29tcHJlc3NlZFRl
eHR1cmVGb3JtYXQoRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX1JHQkFfUFZSVENfMkJQUFYxX0lN
Ryk7Cit9CisKK1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6fldlYkdMQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQygpCit7Cit9CisKK1dlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVQVlJUQzo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQ05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDPiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMoY29udGV4dCkpOworfQorCitib29sIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICBFeHRlbnNpb25zM0QqIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5ncmFw
aGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7CisgICAgcmV0dXJuIGV4dGVuc2lvbnMt
PnN1cHBvcnRzKCJHTF9JTUdfdGV4dHVyZV9jb21wcmVzc2lvbl9wdnJ0YyIpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJU
Qy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3ZTRlMmVkYTZhYzcwMDMwOWZmYmUxZDQ4Y2I4OWY0NmU2NDQ0YmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUFZSVENfaAorI2RlZmluZSBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVENfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPiBjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0ZWQoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCitwcml2
YXRlOgorICAgIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDk0
ODc3OGE1NWNkMjk1YWRkNTVhMDYzOTg1MjYyODJkOWI5ZGU3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmlk
bApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAg
IEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICBPbWl0Q29uc3RydWN0b3Is
CisgICAgRG9Ob3RDaGVja0NvbnN0YW50cworXSBpbnRlcmZhY2UgV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVBWUlRDIHsKKyAgICAvKiBDb21wcmVzc2VkIFRleHR1cmUgRm9ybWF0cyAqLworICAgIGNv
bnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HICA9IDB4OEMw
MDsKKyAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lN
RyAgPSAweDhDMDE7CisgICAgY29uc3QgdW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdCQV9QVlJU
Q180QlBQVjFfSU1HID0gMHg4QzAyOworICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VE
X1JHQkFfUFZSVENfMkJQUFYxX0lNRyA9IDB4OEMwMzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAppbmRleCAyNGExZTYxNDJkYTRmZjZkZjgwODNjNmE5
M2RhMjA0MjMzNmIyNjZlLi5mMDVlMzllOTg3NjM5OTQxMTBlY2I4OWQ5Y2I4ZDcwYWVmMTgxYWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKQEAgLTQ4
LDYgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICBXZWJHTERlcHRoVGV4dHVyZU5hbWUsCiAgICAg
ICAgIE9FU0VsZW1lbnRJbmRleFVpbnROYW1lLAogICAgICAgICBXZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDTmFtZSwKKyAgICAgICAgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDTmFtZSwKICAg
ICB9OwogCiAgICAgdm9pZCByZWYoKSB7IG1fY29udGV4dC0+cmVmKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4
IDZjZDNjNThmNjIzYTZhZjA5NWViZTdjNjZiNjljZTFhNTM3ZTI2MzguLjhlMmViMzNkNTExOTEy
ZDg1OTY3N2VhZGEzN2I4NjUxOTc2YTYyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgIldlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAj
aW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIgorI2luY2x1ZGUgIldlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIldl
YkdMQ29udGV4dEV2ZW50LmgiCkBAIC03NjcsMTAgKzc2OCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogICAgICAgICBpZiAo
bV9kcmF3aW5nQnVmZmVyKQogICAgICAgICAgICAgbV9kcmF3aW5nQnVmZmVyLT5wYWludENvbXBv
c2l0ZWRSZXN1bHRzVG9DYW52YXMoY2FudmFzKCktPmJ1ZmZlcigpKTsKICNlbmRpZgorCiAgICAg
ICAgIGNhbnZhcygpLT5tYWtlUHJlc2VudGF0aW9uQ29weSgpOwogICAgIH0gZWxzZQogICAgICAg
ICBjYW52YXMoKS0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7Ci0KICAgICBjbGVhcklmQ29tcG9z
aXRlZCgpOwogCiAgICAgaWYgKCFtX21hcmtlZENhbnZhc0RpcnR5ICYmICFtX2xheWVyQ2xlYXJl
ZCkKQEAgLTI0NDEsNiArMjQ0MiwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6Y3Jl
YXRlKHRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdl
dCgpOwogICAgIH0KKyAgICBpZiAoKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfV0VC
R0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpCisgICAgICAgICYmIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKHRoaXMpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENv
bXByZXNzZWRUZXh0dXJlUFZSVEMpCisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1
cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6Y3JlYXRlKHRoaXMpOworICAg
IH0KICAgICBpZiAoKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfczN0YyIpCiAgICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgYWZ0ZXIgYSBjZXJ0
YWluIGdyYWNlIHBlcmlvZC4KICAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSkKQEAgLTI5NzEsNiArMjk3Nyw4
IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0
ZW5zaW9ucygpCiAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7CiAgICAg
aWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCh0aGlzKSkKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsKKyAg
ICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQodGhpcykpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCh0aGlzKSkK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9z
M3RjIik7CiAgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoZ3JhcGhpY3NDb250
ZXh0M0QoKSkpCkBAIC01MzgzLDYgKzUzOTEsMTcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnZhbGlkYXRlQ29tcHJlc3NlZFRleEZ1bmNEYXRhKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmEK
ICAgICAgICAgewogICAgICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IGZsb29yKHN0YXRpY19jYXN0
PGRvdWJsZT4oKHdpZHRoICsgMykgLyA0KSkgKiBmbG9vcihzdGF0aWNfY2FzdDxkb3VibGU+KCho
ZWlnaHQgKyAzKSAvIDQpKSAqIDE2OwogICAgICAgICB9CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUc6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HOgorICAgICAgICB7CisgICAgICAgICAg
ICBieXRlc1JlcXVpcmVkID0gbWF4KHdpZHRoLCA4KSAqIG1heChoZWlnaHQsIDgpIC8gMjsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NF
RF9SR0JfUFZSVENfMkJQUFYxX0lNRzoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NF
RF9SR0JBX1BWUlRDXzJCUFBWMV9JTUc6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUmVx
dWlyZWQgPSBtYXgod2lkdGgsIDgpICogbWF4KGhlaWdodCwgOCkgLyA0OworICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgZm9y
bWF0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oCmluZGV4IDU1YTMwYTdmYmY4MGYxZmY3OGRjMzVkMGVkYzQ5ODEzZDBmZGZiZTcu
LjM0NTYxZjAwOGJkZTAyYjVjOTA0ZGQ5ODk5MTMxZGVmY2FiNzhlMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC01OSw2
ICs1OSw3IEBAIGNsYXNzIFdlYkdMQnVmZmVyOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CiBj
bGFzcyBXZWJHTENvbnRleHRPYmplY3Q7CiBjbGFzcyBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
OworY2xhc3MgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOwogY2xhc3MgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEM7CiBjbGFzcyBXZWJHTENvbnRleHRBdHRyaWJ1dGVzOwogY2xhc3MgV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbzsKQEAgLTMzMiw2ICszMzMsNyBAQCBwdWJsaWM6CiAgICAgZnJp
ZW5kIGNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTERl
YnVnU2hhZGVyczsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzsK
KyAgICBmcmllbmQgY2xhc3MgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOwogICAgIGZyaWVu
ZCBjbGFzcyBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzsKICAgICBmcmllbmQgY2xhc3MgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2FsbGJhY2s7CiAgICAgZnJpZW5kIGNsYXNz
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM7CkBAIC01MzEsNiArNTMzLDcgQEAgcHVibGljOgog
ICAgIE93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBtX3dlYmdsRGVidWdSZW5kZXJlcklu
Zm87CiAgICAgT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBtX3dlYmdsRGVidWdTaGFkZXJzOwog
ICAgIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPiBtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVBVEM7CisgICAgT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4gbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUFZSVEM7CiAgICAgT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDPiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDOwogICAgIE93blB0cjxXZWJHTERl
cHRoVGV4dHVyZT4gbV93ZWJnbERlcHRoVGV4dHVyZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0OTQzOGY2MjEzMTVj
NjI4ODBhNDI3NjczNGEyMDljNmUwNTg3OTIuLmJmZDA2ZGNlZDlmYTg4MmZkM2QwZDg2ZjlkYmY5
MDE4NjJmODNiZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0yNSAgQnJhbmRvbiBK
b25lcyAgPGJham9uZXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBXRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfcHZydGMgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ5NworCisgICAgICAgIFJldmlld2VkIGJ5IEtl
bm5ldGggUnVzc2VsbC4KKworICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
d2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1
cmUtcHZydGMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUt
cHZydGMuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTWFjIHJlYmFzZWxpbmVzIGFmdGVyIHIxNDY3NzkuIEFsc28g
YWRkIGZhaWxpbmcgZXhwZWN0YXRpb25zIGZvciA0IHRyYW5zaXRpb24gdGVzdHMgcGVyIGJ1ZyAx
MTMyMjMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNp
b25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1wdnJ0Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVy
ZS1wdnJ0Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkxN2VhODZhN2JhOTA4MzM4OGQxYWYy
ZDBhMDFhMzY3ZjNmODUyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1wdnJ0Yy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3Nl
ZC10ZXh0dXJlLXB2cnRjLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRl
bnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1wdnJ0Yy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdm
NGJlOWI4NjdmMDMyMjlkYzljZGE4ZDA0Nzg2NzQ0NzdkZjNiZTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNz
ZWQtdGV4dHVyZS1wdnJ0Yy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHdlYmdsLWNvbXBy
ZXNzZWQtdGV4dHVyZS1wdnJ0Yy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJn
bC1jb21wcmVzc2VkLXRleHR1cmUtcHZydGMuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUt
cHZydGMuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtcHZydGMuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTMxZDNjZWZkZmE2MzFhMDdkOWMyNDVhMzBhNzU3NjhmZDdhMGIzMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXB2cnRjLmh0bWwK
QEAgLTAsMCArMSwzNjUgQEAKK++7vzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMyBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
KyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
KyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCist
LT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8dGl0bGU+V2ViR0wgV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIENv
bmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxzdHlsZT4KK2ltZyB7CisgYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7CisgbWFyZ2luLXJpZ2h0OiAxZW07Cit9CisudGVzdGltYWdlcyB7Cit9CisKKy50
ZXN0aW1hZ2VzIGJyIHsKKyAgY2xlYXI6IGJvdGg7Cit9CisKKy50ZXN0aW1hZ2VzID4gZGl2IHsK
KyAgZmxvYXQ6IGxlZnQ7CisgIG1hcmdpbjogMWVtOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iOCIgaGVpZ2h0PSI4IiBzdHlsZT0id2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7Ij48L2Nh
bnZhcz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhl
IFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBleHRlbnNpb24sIGlmIGl0IGlzIGF2YWls
YWJsZS4iKTsKKworZGVidWcoIiIpOworCisvLyBDb21wcmVzc2VkIHRleHR1cmVzIGdlbmVyYXRl
ZCB3aXRoIHRodyBQb3dlclZSIFNESworLy8gaHR0cDovL3d3dy5pbWd0ZWMuY29tL3Bvd2VydnIv
aW5zaWRlci9zZGtkb3dubG9hZHMvaW5kZXguYXNwCit2YXIgcHZydGNfNHg0X3JnYmFfMmJwcCA9
IG5ldyBVaW50OEFycmF5KFsKKyAgMHg3NywgMHgyMiwgMHg3NywgMHgyMiwgMHhiYiwgMHgyYiwg
MHgwMCwgMHg4MCwgMHg3NywgMHgyMiwgMHg3NywgMHgyMiwgMHhiYiwgMHgyYiwgMHgwMCwgMHg4
MCwKKyAgMHg3NywgMHgyMiwgMHg3NywgMHgyMiwgMHhiYiwgMHgyYiwgMHgwMCwgMHg4MCwgMHg3
NywgMHgyMiwgMHg3NywgMHgyMiwgMHhiYiwgMHgyYiwgMHgwMCwgMHg4MCwKK10pOworCit2YXIg
cHZydGNfNHg0X3JnYmFfMmJwcF9kZWNvZGVkID0gbmV3IFVpbnQ4QXJyYXkoWworICAweDAwLCAw
eDAwLCAweDAwLCAweGZmLCAweDM1LCAweDM1LCAweDMyLCAweGNhLCAweDc2LCAweDc2LCAweDcx
LCAweDhhLCAweDcwLCAweDcwLCAweDZiLCAweDhmLAorICAweDM1LCAweDM1LCAweDMyLCAweGNh
LCAweDQ2LCAweDQ2LCAweDQzLCAweGI4LCAweDcwLCAweDcwLCAweDZiLCAweDhmLCAweGJkLCAw
eGJkLCAweGI1LCAweDQ0LAorICAweDAwLCAweDAwLCAweDAwLCAweGZmLCAweDM1LCAweDM1LCAw
eDMyLCAweGNhLCAweDc2LCAweDc2LCAweDcxLCAweDhhLCAweDcwLCAweDcwLCAweDZiLCAweDhm
LAorICAweDM1LCAweDM1LCAweDMyLCAweGNhLCAweDQ2LCAweDQ2LCAweDQzLCAweGI4LCAweDcw
LCAweDcwLCAweDZiLCAweDhmLCAweGJkLCAweGJkLCAweGI1LCAweDQ0LAorXSk7CisKK3ZhciBw
dnJ0Y180eDRfcmdiYV80YnBwID0gbmV3IFVpbnQ4QXJyYXkoWworICAweDFiLCAweDFiLCAweDFi
LCAweDFiLCAweGJhLCAweDJiLCAweDAwLCAweDgwLCAweDFiLCAweDFiLCAweDFiLCAweDFiLCAw
eGJhLCAweDJiLCAweDAwLCAweDgwLAorICAweDFiLCAweDFiLCAweDFiLCAweDFiLCAweGJhLCAw
eDJiLCAweDAwLCAweDgwLCAweDFiLCAweDFiLCAweDFiLCAweDFiLCAweGJjLCAweDJiLCAweDAw
LCAweDgwLAorXSk7CisKK3ZhciBwdnJ0Y180eDRfcmdiYV80YnBwX2RlY29kZWQgPSBuZXcgVWlu
dDhBcnJheShbCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4NDYsIDB4NDYsIDB4NDksIDB4
YjgsIDB4NzYsIDB4NzYsIDB4NzEsIDB4OGEsIDB4YmQsIDB4YmQsIDB4YmEsIDB4NDQsCisgIDB4
MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4NDYsIDB4NDYsIDB4NGMsIDB4YjgsIDB4NzYsIDB4NzYs
IDB4NzEsIDB4OGEsIDB4YmQsIDB4YmQsIDB4YmMsIDB4NDQsCisgIDB4MDAsIDB4MDAsIDB4MDAs
IDB4ZmYsIDB4NDYsIDB4NDYsIDB4NDMsIDB4YjgsIDB4NzYsIDB4NzYsIDB4NzEsIDB4OGEsIDB4
YmQsIDB4YmQsIDB4YjUsIDB4NDQsCisgIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4NDYsIDB4
NDYsIDB4NDYsIDB4YjgsIDB4NzYsIDB4NzYsIDB4NzEsIDB4OGEsIDB4YmQsIDB4YmQsIDB4Yjcs
IDB4NDQsCitdKTsKKworLy8gRklYTUU6IFRoZSBQb3dlclZSIFNESyB0b29scyBkbyBub3QgZ2Vu
ZXJhdGUgUkdCIG9ubHkgdGV4dHVyZXMsIHNvIHdlIGN1cnJlbnRseSBkbyBub3QgaGF2ZQorLy8g
c2FtcGxlIGRhdGEgZm9yIENPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUcgYW5kIENPTVBS
RVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUcKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwor
dmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK3ZhciBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCB7YW50aWFsaWFzOiBmYWxzZX0pOwordmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwordmFyIGV4dCA9IG51bGw7Cit2YXIg
dmFvID0gbnVsbDsKK3ZhciB2YWxpZEZvcm1hdHMgPSB7CisgICAgQ09NUFJFU1NFRF9SR0JfUFZS
VENfNEJQUFYxX0lNRyAgICAgIDogMHg4QzAwLAorICAgIENPTVBSRVNTRURfUkdCX1BWUlRDXzJC
UFBWMV9JTUcgICAgICA6IDB4OEMwMSwKKyAgICBDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYx
X0lNRyAgICAgOiAweDhDMDIsCisgICAgQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUcg
ICAgIDogMHg4QzAzLAorfTsKK3ZhciBuYW1lOwordmFyIHN1cHBvcnRlZEZvcm1hdHM7CisKK2lm
ICghZ2wpIHsKKyAgICB0ZXN0RmFpbGVkKCJXZWJHTCBjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7
Cit9IGVsc2UgeworICAgIHRlc3RQYXNzZWQoIldlYkdMIGNvbnRleHQgZXhpc3RzIik7CisKKyAg
ICAvLyBSdW4gdGVzdHMgd2l0aCBleHRlbnNpb24gZGlzYWJsZWQKKyAgICBydW5UZXN0RGlzYWJs
ZWQoKTsKKworICAgIC8vIFF1ZXJ5IHRoZSBleHRlbnNpb24gYW5kIHN0b3JlIGdsb2JhbGx5IHNv
IHNob3VsZEJlIGNhbiBhY2Nlc3MgaXQKKyAgICBleHQgPSB3dHUuZ2V0RXh0ZW5zaW9uV2l0aEtu
b3duUHJlZml4ZXMoZ2wsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKyAgICBp
ZiAoIWV4dCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfcHZydGMgc3VwcG9ydCAtLSB0aGlzIGlzIGxlZ2FsIik7CisgICAgICAgIHJ1blN1cHBvcnRl
ZFRlc3QoZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3Nm
dWxseSBlbmFibGVkIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBleHRlbnNpb24iKTsK
KworICAgICAgICBydW5TdXBwb3J0ZWRUZXN0KHRydWUpOworICAgICAgICBydW5UZXN0RXh0ZW5z
aW9uKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBydW5TdXBwb3J0ZWRUZXN0KGV4dGVuc2lvbkVu
YWJsZWQpIHsKKyAgICB2YXIgbmFtZSA9IHd0dS5nZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25v
d25QcmVmaXhlcyhnbCwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpOworICAgIGlm
IChuYW1lICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKGV4dGVuc2lvbkVuYWJsZWQpIHsK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBs
aXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfcHZydGMgbGlzdGVkIGFzIHN1cHBvcnRlZCBidXQgZ2V0RXh0ZW5zaW9uIGZhaWxlZCIpOwor
ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGV4dGVuc2lvbkVuYWJsZWQpIHsK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyBu
b3QgbGlzdGVkIGFzIHN1cHBvcnRlZCBidXQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZCIpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiV0VCR0xfY29tcHJlc3NlZF90
ZXh0dXJlX3B2cnRjIG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gZmFp
bGVkIC0tIHRoaXMgaXMgbGVnYWwiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworCitmdW5jdGlv
biBydW5UZXN0RGlzYWJsZWQoKSB7CisgICAgZGVidWcoIlRlc3RpbmcgYmluZGluZyBlbnVtIHdp
dGggZXh0ZW5zaW9uIGRpc2FibGVkIik7CisKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVy
KGdsLkNPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTKScsICdbXScpOworfQorCitmdW5jdGlvbiBm
b3JtYXRFeGlzdHMoZm9ybWF0LCBzdXBwb3J0ZWRGb3JtYXRzKSB7CisgICAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IHN1cHBvcnRlZEZvcm1hdHMubGVuZ3RoOyArK2lpKSB7CisgICAgICAgIGlmIChm
b3JtYXQgPT0gc3VwcG9ydGVkRm9ybWF0c1tpaV0pIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
InN1cHBvcnRlZCBmb3JtYXQgIiArIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgKyAiIGlzIGV4aXN0
cyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIHRlc3RGYWls
ZWQoInN1cHBvcnRlZCBmb3JtYXQgIiArIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgKyAiIGRvZXMg
bm90IGV4aXN0Iik7Cit9CisKK2Z1bmN0aW9uIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgeworICAg
IGZvciAodmFyIHAgaW4gZXh0KSB7CisgICAgICAgIGlmIChleHRbcF0gPT0gZm9ybWF0KSB7Cisg
ICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIjB4IiAr
IGZvcm1hdC50b1N0cmluZygxNik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7
CisgICAgZGVidWcoIlRlc3RpbmcgV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisK
KyAgICAvLyBjaGVjayB0aGF0IGFsbCBmb3JtYXQgZW51bXMgZXhpc3QuCisgICAgZm9yIChuYW1l
IGluIHZhbGlkRm9ybWF0cykgeworICAgICAgICB2YXIgZXhwZWN0ZWQgPSAiMHgiICsgdmFsaWRG
b3JtYXRzW25hbWVdLnRvU3RyaW5nKDE2KTsKKyAgICAgICAgdmFyIGFjdHVhbCA9ICJleHRbJyIg
KyBuYW1lICsgIiddIjsKKyAgICAgICAgc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCk7CisgICAg
fQorCisgICAgc3VwcG9ydGVkRm9ybWF0cyA9IGdsLmdldFBhcmFtZXRlcihnbC5DT01QUkVTU0VE
X1RFWFRVUkVfRk9STUFUUyk7CisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIGV4YWN0bHkgMyBmb3Jt
YXRzCisgICAgc2hvdWxkQmUoInN1cHBvcnRlZEZvcm1hdHMubGVuZ3RoIiwgIjMiKTsKKworICAg
IC8vIGNoZWNrIHRoYXQgYWxsIDMgZm9ybWF0cyBleGlzdAorICAgIGZvciAodmFyIG5hbWUgaW4g
dmFsaWRGb3JtYXRzLmxlbmd0aCkgeworICAgICAgICBmb3JtYXRFeGlzdHModmFsaWRGb3JtYXRz
W25hbWVdLCBzdXBwb3J0ZWRGb3JtYXRzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IGVhY2ggZm9y
bWF0CisgICAgdGVzdFBWUlRDX1JHQkFfMkJQUCgpOworICAgIHRlc3RQVlJUQ19SR0JBXzRCUFAo
KTsKK30KKworZnVuY3Rpb24gdGVzdFBWUlRDX1JHQkFfMkJQUCgpIHsKKyAgICB2YXIgdGVzdHMg
PSBbCisgICAgICAgIHsgICB3aWR0aDogNCwKKyAgICAgICAgICAgIGhlaWdodDogNCwKKyAgICAg
ICAgICAgIGNoYW5uZWxzOiA0LAorICAgICAgICAgICAgZGF0YTogcHZydGNfNHg0X3JnYmFfMmJw
cCwKKyAgICAgICAgICAgIHJhdzogcHZydGNfNHg0X3JnYmFfMmJwcF9kZWNvZGVkLAorICAgICAg
ICAgICAgZm9ybWF0OiBleHQuQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUcKKyAgICAg
ICAgfQorICAgIF07CisgICAgdGVzdFBWUlRDVGV4dHVyZXModGVzdHMpOworfQorCitmdW5jdGlv
biB0ZXN0UFZSVENfUkdCQV80QlBQKCkgeworICAgIHZhciB0ZXN0cyA9IFsKKyAgICAgICAgeyAg
IHdpZHRoOiA0LAorICAgICAgICAgICAgaGVpZ2h0OiA0LAorICAgICAgICAgICAgY2hhbm5lbHM6
IDQsCisgICAgICAgICAgICBkYXRhOiBwdnJ0Y180eDRfcmdiYV80YnBwLAorICAgICAgICAgICAg
cmF3OiBwdnJ0Y180eDRfcmdiYV80YnBwX2RlY29kZWQsCisgICAgICAgICAgICBmb3JtYXQ6IGV4
dC5DT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRworICAgICAgICB9CisgICAgXTsKKyAg
ICB0ZXN0UFZSVENUZXh0dXJlcyh0ZXN0cyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RQVlJUQ1RleHR1
cmVzKHRlc3RzKSB7CisgICAgZGVidWcoIjxoci8+Iik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBp
aSA8IHRlc3RzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB0ZXN0UFZSVENUZXh0dXJlKHRlc3Rz
W2lpXSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0UFZSVENUZXh0dXJlKHRlc3QpIHsKKyAg
ICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KHRlc3QuZGF0YSk7CisgICAgdmFyIHdpZHRoID0g
dGVzdC53aWR0aDsKKyAgICB2YXIgaGVpZ2h0ID0gdGVzdC5oZWlnaHQ7CisgICAgdmFyIGZvcm1h
dCA9IHRlc3QuZm9ybWF0OworICAgIHZhciB1bmNvbXByZXNzZWREYXRhID0gdGVzdC5yYXc7CisK
KyAgICBjYW52YXMud2lkdGggPSB3aWR0aDsKKyAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0Owor
ICAgIGdsLnZpZXdwb3J0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgIGRlYnVnKCJ0ZXN0aW5n
ICIgKyBmb3JtYXRUb1N0cmluZyhmb3JtYXQpICsgIiAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQp
OworCisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0Up
OworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wuY29tcHJlc3NlZFRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBkYXRhKTsK
KyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAidXBsb2FkaW5nIGNvbXByZXNz
ZWQgdGV4dHVyZSIpOworICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpOworICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJ0cnlpbmcgdG8gZ2Vu
ZXJhdGUgbWlwbWFwcyBmcm9tIGNvbXByZXNzZWQgdGV4dHVyZSIpOworICAgIHd0dS5jbGVhckFu
ZERyYXdVbml0UXVhZChnbCk7CisgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5j
aGFubmVscywgd2lkdGgsIGhlaWdodCwgdW5jb21wcmVzc2VkRGF0YSwgZGF0YSwgZm9ybWF0KTsK
KworICAgIGdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgMSwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX1ZBTFVFLCAibm9uIDAgYm9yZGVyIik7CisKKyAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBmb3JtYXQsIHdpZHRoIC0gMSwgaGVpZ2h0LCAwLCBkYXRhKTsK
KyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxpZCBk
aW1lbnNpb25zIik7CisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZm9ybWF0LCB3aWR0aCAtIDIsIGhlaWdodCwgMCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOworICAg
IGdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwgd2lkdGgs
IGhlaWdodCAtIDEsIDAsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJ
RF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMiKTsKKyAgICBnbC5jb21wcmVzc2VkVGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBmb3JtYXQsIHdpZHRoLCBoZWlnaHQgLSAyLCAwLCBk
YXRhKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52
YWxpZCBkaW1lbnNpb25zIik7CisKKyAgICBnbC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIGRhdGEpOworICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCBh
bGxvd2VkIGZvciByZWxvYWRpbmcgb2YgY29tcGxldGUgdGV4dHVyZXMiKTsKKworICAgIGdsLmNv
bXByZXNzZWRUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHdpZHRoIC0gMiwg
aGVpZ2h0LCBmb3JtYXQsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJ
RF9PUEVSQVRJT04sICJjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCBub3QgYWxsb3dlZCBmb3IgcGFy
dGlhbCB0ZXh0dXJlIHVwZGF0ZXMiKTsKKyAgICBnbC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0IC0gMiwgZm9ybWF0LCBkYXRhKTsK
KyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQgbm90IGFsbG93ZWQgZm9yIHBhcnRpYWwgdGV4dHVyZSB1cGRhdGVzIik7
CisgICAgZ2wuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMiwgMCwg
d2lkdGggLSAyLCBoZWlnaHQsIGZvcm1hdCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX09QRVJBVElPTiwgImNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIG5vdCBhbGxv
d2VkIGZvciBwYXJ0aWFsIHRleHR1cmUgdXBkYXRlcyIpOworICAgIGdsLmNvbXByZXNzZWRUZXhT
dWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDIsIHdpZHRoLCBoZWlnaHQgLSAyLCBmb3Jt
YXQsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCBub3QgYWxsb3dlZCBmb3IgcGFydGlhbCB0ZXh0dXJl
IHVwZGF0ZXMiKTsKK30KKworZnVuY3Rpb24gaW5zZXJ0SW1nKGVsZW1lbnQsIGNhcHRpb24sIGlt
ZykgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBk
aXYuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICBsYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShjYXB0aW9uKSk7CisgICAgZGl2LmFwcGVuZENoaWxkKGxhYmVsKTsKKyAgICBlbGVtZW50LmFw
cGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIG1ha2VJbWFnZShpbWFnZVdpZHRoLCBpbWFn
ZUhlaWdodCwgZGF0YVdpZHRoLCBkYXRhLCBhbHBoYSkgeworICAgIHZhciBzY2FsZSA9IDg7Cisg
ICAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICBjLndpZHRo
ID0gaW1hZ2VXaWR0aCAqIHNjYWxlOworICAgIGMuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQgKiBzY2Fs
ZTsKKyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCIyZCIpOworICAgIGZvciAodmFyIHl5ID0g
MDsgeXkgPCBpbWFnZUhlaWdodDsgKyt5eSkgeworICAgICAgICBmb3IgKHZhciB4eCA9IDA7IHh4
IDwgaW1hZ2VXaWR0aDsgKyt4eCkgeworICAgICAgICAgICAgdmFyIG9mZnNldCA9ICh5eSAqIGRh
dGFXaWR0aCArIHh4KSAqIDQ7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gInJnYmEoIiAr
CisgICAgICAgICAgICAgICAgICAgIGRhdGFbb2Zmc2V0ICsgMF0gKyAiLCIgKworICAgICAgICAg
ICAgICAgICAgICBkYXRhW29mZnNldCArIDFdICsgIiwiICsKKyAgICAgICAgICAgICAgICAgICAg
ZGF0YVtvZmZzZXQgKyAyXSArICIsIiArCisgICAgICAgICAgICAgICAgICAgIChhbHBoYSA/IGRh
dGFbb2Zmc2V0ICsgM10gLyAyNTUgOiAxKSArICIpIjsKKyAgICAgICAgICAgIGN0eC5maWxsUmVj
dCh4eCAqIHNjYWxlLCB5eSAqIHNjYWxlLCBzY2FsZSwgc2NhbGUpOworICAgICAgICB9CisgICAg
fQorICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICBpbWcu
c3JjID0gYy50b0RhdGFVUkwoKTsKKyAgICByZXR1cm4gaW1nOworfQorZnVuY3Rpb24gY29tcGFy
ZVJlY3QoCisgICAgICAgIGFjdHVhbFdpZHRoLCBhY3R1YWxIZWlnaHQsIGFjdHVhbENoYW5uZWxz
LAorICAgICAgICBkYXRhV2lkdGgsIGRhdGFIZWlnaHQsIGV4cGVjdGVkRGF0YSwKKyAgICAgICAg
dGVzdERhdGEsIHRlc3RGb3JtYXQsIHRvbGVyYW5jZSkgeworICAgIGlmKHR5cGVvZih0b2xlcmFu
Y2UpID09ICd1bmRlZmluZWQnKSB7IHRvbGVyYW5jZSA9IDU7IH0KKyAgICB2YXIgYWN0dWFsID0g
bmV3IFVpbnQ4QXJyYXkoYWN0dWFsV2lkdGggKiBhY3R1YWxIZWlnaHQgKiA0KTsKKyAgICBnbC5y
ZWFkUGl4ZWxzKAorICAgICAgICAgICAgMCwgMCwgYWN0dWFsV2lkdGgsIGFjdHVhbEhlaWdodCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYWN0dWFsKTsKKworICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuY2xhc3NOYW1lID0gInRlc3RpbWFn
ZXMiOworICAgIGluc2VydEltZyhkaXYsICJleHBlY3RlZCIsIG1ha2VJbWFnZSgKKyAgICAgICAg
ICAgIGFjdHVhbFdpZHRoLCBhY3R1YWxIZWlnaHQsIGRhdGFXaWR0aCwgZXhwZWN0ZWREYXRhLAor
ICAgICAgICAgICAgYWN0dWFsQ2hhbm5lbHMgPT0gNCkpOworICAgIGluc2VydEltZyhkaXYsICJh
Y3R1YWwiLCBtYWtlSW1hZ2UoCisgICAgICAgICAgICBhY3R1YWxXaWR0aCwgYWN0dWFsSGVpZ2h0
LCBhY3R1YWxXaWR0aCwgYWN0dWFsLAorICAgICAgICAgICAgYWN0dWFsQ2hhbm5lbHMgPT0gNCkp
OworICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicpKTsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRpdik7CisK
KyAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgZm9yICh2YXIgeXkgPSAwOyB5eSA8IGFjdHVh
bEhlaWdodDsgKyt5eSkgeworICAgICAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwgYWN0dWFsV2lk
dGg7ICsreHgpIHsKKyAgICAgICAgICAgIHZhciBhY3R1YWxPZmZzZXQgPSAoeXkgKiBhY3R1YWxX
aWR0aCArIHh4KSAqIDQ7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSAoeXkgKiBk
YXRhV2lkdGggKyB4eCkgKiA0OworICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gWworICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZERhdGFbZXhwZWN0ZWRPZmZzZXQgKyAwXSwKKyAgICAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWREYXRhW2V4cGVjdGVkT2Zmc2V0ICsgMV0sCisgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkRGF0YVtleHBlY3RlZE9mZnNldCArIDJdLAorICAgICAgICAgICAg
ICAgICAgICAoYWN0dWFsQ2hhbm5lbHMgPT0gMyA/IDI1NSA6IGV4cGVjdGVkRGF0YVtleHBlY3Rl
ZE9mZnNldCArIDNdKQorICAgICAgICAgICAgXTsKKyAgICAgICAgICAgIGZvciAodmFyIGpqID0g
MDsgamogPCA0OyArK2pqKSB7CisgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKGFjdHVhbFth
Y3R1YWxPZmZzZXQgKyBqal0gLSBleHBlY3RlZFtqal0pID4gdG9sZXJhbmNlKSB7CisgICAgICAg
ICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHZhciB3YXMg
PSBhY3R1YWxbYWN0dWFsT2Zmc2V0ICsgMF0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIChqID0gMTsgaiA8IDQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgd2Fz
ICs9ICIsIiArIGFjdHVhbFthY3R1YWxPZmZzZXQgKyBqXTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdhdCAoJyArIHh4ICsgJywgJyArIHl5
ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6
ICcgKyBleHBlY3RlZCArICcgd2FzICcgKyB3YXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWZhaWxlZCkgeworICAgICAgICB0
ZXN0UGFzc2VkKCJ0ZXh0dXJlIHJlbmRlcmVkIGNvcnJlY3RseSIpOworICAgIH0KK30KKworZGVi
dWcoIiIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>