<?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>98212</bug_id>
          
          <creation_ts>2012-10-02 16:41:53 -0700</creation_ts>
          <short_desc>[WK2] Support all attributes of GeolocationPosition</short_desc>
          <delta_ts>2013-04-17 14:39:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>beidson</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>733216</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-10-02 16:41:53 -0700</bug_when>
    <thetext>We only support the 3 basic attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733229</commentid>
    <comment_count>1</comment_count>
      <attachid>166779</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-10-02 16:59:01 -0700</bug_when>
    <thetext>Created attachment 166779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733233</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 17:03:07 -0700</bug_when>
    <thetext>Attachment 166779 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
LayoutTests/platform/qt/TestExpectations:2739:  Path does not exist.  [test/expectations] [5]
LayoutTests/platform/qt/TestExpectations:2740:  Path does not exist.  [test/expectations] [5]
Total errors found: 2 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733303</commentid>
    <comment_count>3</comment_count>
      <attachid>166795</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-10-02 18:35:42 -0700</bug_when>
    <thetext>Created attachment 166795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733306</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 18:38:02 -0700</bug_when>
    <thetext>Attachment 166795 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
LayoutTests/platform/qt/TestExpectations:2739:  Path does not exist.  [test/expectations] [5]
LayoutTests/platform/qt/TestExpectations:2740:  Path does not exist.  [test/expectations] [5]
Total errors found: 2 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734081</commentid>
    <comment_count>5</comment_count>
      <attachid>166795</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-03 15:23:24 -0700</bug_when>
    <thetext>Comment on attachment 166795
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166795&amp;action=review

&gt; Source/WebKit2/Shared/WebGeolocationPosition.cpp:56
&gt; +    encoder-&gt;encode(CoreIPC::In(timestamp, latitude, longitude, accuracy, canProvideAltitude, altitude, canProvideAltitudeAccuracy, altitudeAccuracy, canProvideHeading, heading, canProvideSpeed, speed));

Instead of adding the overload of CoreIPC::In(), can you just call encoder-&gt;encode multiple times.  That has become more idiomatic in our code.

&gt; Source/WebKit2/Shared/WebGeolocationPosition.cpp:61
&gt; +    return decoder-&gt;decode(CoreIPC::Out(data.timestamp, data.latitude, data.longitude, data.accuracy, data.canProvideAltitude, data.altitude, data.canProvideAltitudeAccuracy, data.altitudeAccuracy, data.canProvideHeading, data.heading, data.canProvideSpeed, data.speed));

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734103</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-10-03 15:40:32 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Instead of adding the overload of CoreIPC::In(), can you just call encoder-&gt;encode multiple times.  That has become more idiomatic in our code.

I know, I just find it a little silly to have to limit ourself to 10 args :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734917</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-10-04 12:10:06 -0700</bug_when>
    <thetext>Committed r130416: &lt;http://trac.webkit.org/changeset/130416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877501</commentid>
    <comment_count>8</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-04-17 14:39:00 -0700</bug_when>
    <thetext>*** Bug 94554 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166779</attachid>
            <date>2012-10-02 16:59:01 -0700</date>
            <delta_ts>2012-10-02 18:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98212-20121002165814.patch</filename>
            <type>text/plain</type>
            <size>58138</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjZlMjljOTE3
NTdhMzY1ZTczNDBmYTk1YTFkZDY4ODk1NTdjNmZkNC4uZGY0OWQ4YjY2ZGRlYTA0MzMzNWRkYmI4
Njg1ZjdiZTZjZjkxYWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtXSzJdIFN1cHBvcnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Qb3NpdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJu
YWwgY29uc3RydWN0b3IgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuCisgICAgICAgIEEgc2ltaWxh
ciBBUEkgaXMgdXNlZCBvbiBpT1MuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0aW9u
UG9zaXRpb24ubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gaW5pdFdpdGhH
ZW9sb2NhdGlvblBvc2l0aW9uOl0pOgorCiAyMDEyLTA5LTI4ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG1ldGhvZCBv
dmVybG9hZGluZyBmcm9tIGJyaWRnZSBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWMyNTczYmEzNWJiYWZk
ZmVkNTVhODY5MTUxODI0NDVjZDQ3N2JkMS4uMGU0OTBhMzg5Y2ZjNjAwYzAwM2ZkNjQ5YjA2ZDBj
OTRhMDVmZTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTEwLTAyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Qb3NpdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgY29tcGxldGUgc3VwcG9ydCBmb3Ig
R2VvbG9jYXRpb25Qb3NpdGlvbi4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1l
bnRzLmg6CisgICAgICAgIChBcmd1bWVudHMxMSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVu
dHMxMTo6QXJndW1lbnRzMTEpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMTE6OmVuY29k
ZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMxMTo6ZGVjb2RlKToKKyAgICAgICAgKENv
cmVJUEMpOgorICAgICAgICAoQ29yZUlQQzo6SW4pOgorICAgICAgICAoQ29yZUlQQzo6T3V0KToK
KyAgICAgICAgKEFyZ3VtZW50czEyKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czEyOjpB
cmd1bWVudHMxMik6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMxMjo6ZW5jb2RlKToKKyAg
ICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czEyOjpkZWNvZGUpOgorICAgICAgICBBZGQgY29kZXIv
ZGVjb2RlciBmb3IgMTEgYW5kIDEyIGFyZ3VtZW50cy4gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBo
YXMKKyAgICAgICAgMTIgYXJndW1lbnRzIHNvIGl0IGlzIHNpbXBsZXIgdG8gZXh0ZW5kIENvcmVJ
UEMuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xvY2F0aW9uUG9zaXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAg
IChEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y2FuUHJvdmlkZUFs
dGl0dWRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6YWx0aXR1
ZGUpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6YWx0aXR1ZGVBY2N1cmFjeSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNhblByb3ZpZGVIZWFk
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aGVhZGluZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNhblByb3ZpZGVTcGVl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OnNwZWVkKToKKyAg
ICAgICAgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBtaXJyb3IgdGhlIGF0dHJpYnV0ZXMgb2YgV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9u
Q3JlYXRlKToKKyAgICAgICAgKFdLR2VvbG9jYXRpb25Qb3NpdGlvbkNyZWF0ZV9iKToKKyAgICAg
ICAgQWRkIGEgbmV3IEFQSSBleHBvc2luZyBhbGwgdGhlIGFyZ3VtZW50cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24pOgorCiAyMDEy
LTEwLTAxICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV0syXSBTYXZlIHRoZSBkb3dubG9hZCB1cmkgYXMgZmlsZSBtZXRhZGF0YQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1t
CmluZGV4IDY0NjdjYWEyZWZiMzM4YTQ4YjIxNjQxYTFkNWRhZWIwMjI5NmJlZmYuLjc3MjUwNjI1
OWM4NTNjZjBlMmQ1YWM1ZWE1OWQ5ZTczZjMwNTA5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTcxLDYgKzcxLDE1
IEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9z
aXRpb24pCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Q
b3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Q
b3NpdGlvbgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOmNvcmVHZW9s
b2NhdGlvblBvc2l0aW9uXTsKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAodm9pZClkZWFsbG9j
CiB7CiAgICAgW19pbnRlcm5hbCByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50cy5oCmluZGV4IDViZDc1NTAyYzgzY2JlMzFlZjgxOTg1ZGNiMDhjYzc3
OTZmOTExODcuLmE0ODUzZTEwMjMzZjBiNWRhMzM2N2ExNTMyYmNiMDhlMmZiMzc2ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaApAQCAtNDQ3LDYgKzQ0
NywxMDMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICByZXR1cm4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4odDEsIHQy
LCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4LCB0OSwgdDEwKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTE+IHN0cnVjdCBBcmd1bWVudHMxMSA6IEFyZ3VtZW50czEw
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4geworICAgIHR5cGVkZWYg
QXJndW1lbnRzMTE8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92
ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29u
c3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKKyAgICB0
eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQz
Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBX
VEY6OlJlbW92ZVJlZmVyZW5jZTxUND46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdURjo6
UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDU+OjpUeXBlPjo6VHlw
ZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQ2Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0
eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUNz46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVu
YW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDg+OjpU
eXBlPjo6VHlwZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQ5Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1v
dmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMTA+OjpUeXBlPjo6VHlwZSwK
KyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJl
bmNlPFQxMT46OlR5cGU+OjpUeXBlPiBWYWx1ZVR5cGU7CisKKyAgICBBcmd1bWVudHMxMSgpIHsg
fQorCisgICAgQXJndW1lbnRzMTEoVDEgdDEsIFQyIHQyLCBUMyB0MywgVDQgdDQsIFQ1IHQ1LCBU
NiB0NiwgVDcgdDcsIFQ4IHQ4LCBUOSB0OSwgVDEwIHQxMCwgVDExIHQxMSkKKyAgICAgICAgOiBB
cmd1bWVudHMxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KHQxLCB0
MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCkKKyAgICAgICAgLCBhcmd1bWVudDEx
KHQxMSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgQXJndW1lbnRzMTA8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPjo6ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoYXJndW1lbnQxMSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzMTEmIHJlc3VsdCkKKyAgICB7Cisg
ICAgICAgIGlmICghQXJndW1lbnRzMTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwPjo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQxMSk7
CisgICAgfQorCisgICAgVDExIGFyZ3VtZW50MTE7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsIHR5cGVuYW1lIFQxMT4gQXJndW1lbnRzMTE8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJiwgY29uc3QgVDExJj4gSW4oY29uc3QgVDEmIHQx
LCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUs
IGNvbnN0IFQ2JiB0NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwg
Y29uc3QgVDEwJiB0MTAsIGNvbnN0IFQxMSYgdDExKQoreworICAgIHJldHVybiBBcmd1bWVudHMx
MTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jiwg
Y29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4JiwgY29uc3QgVDkmLCBjb25zdCBUMTAmLCBj
b25zdCBUMTEmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTAsIHQxMSk7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExPiBBcmd1bWVudHMx
MTxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmLCBUMTEm
PiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0LCBUNSYgdDUsIFQ2JiB0NiwgVDcm
IHQ3LCBUOCYgdDgsIFQ5JiB0OSwgVDEwJiB0MTAsIFQxMSYgdDExKQoreworICAgIHJldHVybiBB
cmd1bWVudHMxMTxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBU
MTAmLCBUMTEmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTAsIHQxMSk7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTI+IHN0cnVjdCBBcmd1bWVudHMxMiA6IEFyZ3VtZW50czExPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPiB7CisgICAgdHlwZWRlZiBBcmd1bWVudHMxMjx0eXBl
bmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQxPjo6
VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6
OlJlbW92ZVJlZmVyZW5jZTxUMj46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdURjo6UmVt
b3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDM+OjpUeXBlPjo6VHlwZSwK
KyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJl
bmNlPFQ0Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBl
bmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUNT46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1l
IFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDY+OjpUeXBl
Pjo6VHlwZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVt
b3ZlUmVmZXJlbmNlPFQ3Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUOD46OlR5cGU+OjpUeXBlLAorICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDk+OjpUeXBlPjo6VHlwZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1l
IFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQxMD46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdU
Rjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDExPjo6VHlwZT46
OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92
ZVJlZmVyZW5jZTxUMTI+OjpUeXBlPjo6VHlwZT4gVmFsdWVUeXBlOworCisgICAgQXJndW1lbnRz
MTIoKSB7IH0KKworICAgIEFyZ3VtZW50czEyKFQxIHQxLCBUMiB0MiwgVDMgdDMsIFQ0IHQ0LCBU
NSB0NSwgVDYgdDYsIFQ3IHQ3LCBUOCB0OCwgVDkgdDksIFQxMCB0MTAsIFQxMSB0MTEsIFQxMiB0
MTIpCisgICAgICAgIDogQXJndW1lbnRzMTE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTE+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCwg
dDExKQorICAgICAgICAsIGFyZ3VtZW50MTIodDEyKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBB
cmd1bWVudHMxMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT46
OmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50MTIpOwor
ICAgIH0KKworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czEyJiByZXN1bHQpCisgICAgeworICAgICAgICBpZiAoIUFyZ3VtZW50czExPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPjo6ZGVjb2RlKGRlY29k
ZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQxMik7CisgICAgfQorCisgICAgVDEyIGFy
Z3VtZW50MTI7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyPiBBcmd1bWVudHMxMjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMm
LCBjb25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4Jiwg
Y29uc3QgVDkmLCBjb25zdCBUMTAmLCBjb25zdCBUMTEmLCBjb25zdCBUMTImPiBJbihjb25zdCBU
MSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1
JiB0NSwgY29uc3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcsIGNvbnN0IFQ4JiB0OCwgY29uc3QgVDkm
IHQ5LCBjb25zdCBUMTAmIHQxMCwgY29uc3QgVDExJiB0MTEsIGNvbnN0IFQxMiYgdDEyKQorewor
ICAgIHJldHVybiBBcmd1bWVudHMxMjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4JiwgY29u
c3QgVDkmLCBjb25zdCBUMTAmLCBjb25zdCBUMTEmLCBjb25zdCBUMTImPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTAsIHQxMSwgdDEyKTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4gQXJndW1lbnRzMTI8VDEm
LCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJiwgVDExJiwgVDEy
Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3
JiB0NywgVDgmIHQ4LCBUOSYgdDksIFQxMCYgdDEwLCBUMTEmIHQxMSwgVDEyJiB0MTIpCit7Cisg
ICAgcmV0dXJuIEFyZ3VtZW50czEyPFQxJiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jiwg
VDgmLCBUOSYsIFQxMCYsIFQxMSYsIFQxMiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCwgdDExLCB0MTIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCiAKICNl
bmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwCmluZGV4IDAxZmRmYjg5MGUyNWUzZDhkMjY2OTExY2U1ZTM2OTUw
ODEzYzI3YjcuLjY1NmNjZGY4ZmJmNTJiNjFhYTlmMWRhYWFlMjViMWM1OTFlMjFhYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMx
LDEyICszMSwyMCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbjo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0
aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK1dlYkdlb2xvY2F0aW9u
UG9zaXRpb246OldlYkdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
IGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUg
aGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQpCiB7CiAgICAgbV9kYXRh
LnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICBtX2RhdGEubGF0aXR1ZGUgPSBsYXRpdHVkZTsK
ICAgICBtX2RhdGEubG9uZ2l0dWRlID0gbG9uZ2l0dWRlOwogICAgIG1fZGF0YS5hY2N1cmFjeSA9
IGFjY3VyYWN5OworICAgIG1fZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGUgPSBwcm92aWRlc0FsdGl0
dWRlOworICAgIG1fZGF0YS5hbHRpdHVkZSA9IGFsdGl0dWRlOworICAgIG1fZGF0YS5jYW5Qcm92
aWRlQWx0aXR1ZGVBY2N1cmFjeSA9IHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBtX2Rh
dGEuYWx0aXR1ZGVBY2N1cmFjeSA9IGFsdGl0dWRlQWNjdXJhY3k7CisgICAgbV9kYXRhLmNhblBy
b3ZpZGVIZWFkaW5nID0gcHJvdmlkZXNIZWFkaW5nOworICAgIG1fZGF0YS5oZWFkaW5nID0gaGVh
ZGluZzsKKyAgICBtX2RhdGEuY2FuUHJvdmlkZVNwZWVkID0gcHJvdmlkZXNTcGVlZDsKKyAgICBt
X2RhdGEuc3BlZWQgPSBzcGVlZDsKIH0KIAogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6fldlYkdl
b2xvY2F0aW9uUG9zaXRpb24oKQpAQCAtNDUsMTIgKzUzLDEyIEBAIFdlYkdlb2xvY2F0aW9uUG9z
aXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0aW1lc3RhbXAsIGxhdGl0
dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6
OkluKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVB
bHRpdHVkZSwgYWx0aXR1ZGUsIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFj
Y3VyYWN5LCBjYW5Qcm92aWRlSGVhZGluZywgaGVhZGluZywgY2FuUHJvdmlkZVNwZWVkLCBzcGVl
ZCkpOwogfQogCiBib29sIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGEmIGRhdGEpCiB7Ci0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1
ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5KSk7CisgICAgcmV0dXJuIGRlY29kZXIt
PmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1ZGUsIGRhdGEu
bG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRpdHVkZSwgZGF0YS5h
bHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0YS5hbHRpdHVkZUFj
Y3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcsIGRhdGEuY2FuUHJv
dmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggNmIy
NjhmYmJlZDY5MWMyYjExNTBhNTMxN2Q5NDJhOTZkMzAxMjE4OC4uYTg3YmIwNjJkMWNiMzUzYjlk
ZGVhNGQ3OGIxOWQxNTMzYTE3MDE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00NSwxMSArNDUsMjEgQEAgcHVibGljOgogICAgICAgICBk
b3VibGUgbGF0aXR1ZGU7CiAgICAgICAgIGRvdWJsZSBsb25naXR1ZGU7CiAgICAgICAgIGRvdWJs
ZSBhY2N1cmFjeTsKKworICAgICAgICBkb3VibGUgYWx0aXR1ZGU7CisgICAgICAgIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5OworICAgICAgICBkb3VibGUgaGVhZGluZzsKKyAgICAgICAgZG91Ymxl
IHNwZWVkOworCisgICAgICAgIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlOworICAgICAgICBib29s
IGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5OworICAgICAgICBib29sIGNhblByb3ZpZGVIZWFk
aW5nOworICAgICAgICBib29sIGNhblByb3ZpZGVTcGVlZDsKICAgICB9OwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKGRvdWJsZSB0aW1lc3Rh
bXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92
aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBz
cGVlZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbih0aW1lc3RhbXAs
IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRpdHVk
ZSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRlc0hl
YWRpbmcsIGhlYWRpbmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkKSk7CiAgICAgfQogCiAgICAgdmly
dHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOwpAQCAtNTksMTAgKzY5LDIyIEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmxvbmdpdHVk
ZTsgfQogICAgIGRvdWJsZSBhY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5hY2N1cmFj
eTsgfQogCisgICAgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuY2FuUHJvdmlkZUFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFsdGl0dWRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhLmFsdGl0dWRlOyB9CisKKyAgICBib29sIGNhblByb3ZpZGVBbHRpdHVkZUFj
Y3VyYWN5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5
OyB9CisgICAgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX2RhdGEu
YWx0aXR1ZGVBY2N1cmFjeTsgfQorCisgICAgYm9vbCBjYW5Qcm92aWRlSGVhZGluZygpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YS5jYW5Qcm92aWRlSGVhZGluZzsgfQorICAgIGRvdWJsZSBoZWFkaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmhlYWRpbmc7IH0KKworICAgIGJvb2wgY2FuUHJvdmlk
ZVNwZWVkKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmNhblByb3ZpZGVTcGVlZDsgfQorICAgIGRv
dWJsZSBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zcGVlZDsgfQorCiAgICAgY29uc3Qg
RGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCiBwcml2YXRlOgotICAgIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIFdlYkdlb2xvY2F0aW9uUG9z
aXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRl
LCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ks
IGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVk
LCBkb3VibGUgc3BlZWQpOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBBUElUeXBlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggOTkxOTVjNzljZWY5Nzc4NzFlNzE2
YmRiMGQ2NDA2ZWZkODI2MjkzMi4uNWQ5NGYzZTg2MmJhMjliOWNjY2ZmOWVlNTA2MGQxNjdlYTYw
MWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9j
YXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
R2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDYgKzM4LDExIEBAIFdLVHlwZUlEIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkdldFR5cGVJRCgpCiAKIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dl
b2xvY2F0aW9uUG9zaXRpb25DcmVhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0gICAgUmVmUHRyPFdlYkdl
b2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3Jl
YXRlKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIHJldHVy
biBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5LCBmYWxzZSwgMC4sIGZhbHNlLCAwLiwgZmFsc2UsIDAuLCBmYWxzZSwg
MC4pOworfQorCitXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYgV0tHZW9sb2NhdGlvblBvc2l0aW9u
Q3JlYXRlX2IoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0
dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0
dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1Nw
ZWVkLCBkb3VibGUgc3BlZWQpCit7CisgICAgUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+
IHBvc2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0
aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBw
cm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGlu
ZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3BlZWQpOwogICAgIHJldHVybiB0b0FQSShwb3Np
dGlvbi5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCA4NTE4M2ZkNjAw
MmRmMTU2ZTY1MzBjYmM1OGEzMDNhNDI5NzY1OTI0Li40NzI3ZTk3NjMzODhiMWZjODJkY2IxMzcw
MjNhZGMxNDBkOTNlNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0zNSw2ICszNSw3IEBAIGV4dGVybiAi
QyIgewogV0tfRVhQT1JUIFdLVHlwZUlEIFdLR2VvbG9jYXRpb25Qb3NpdGlvbkdldFR5cGVJRCgp
OwogCiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9jYXRpb25Qb3Np
dGlvbkNyZWF0ZShkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25n
aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CitXS19FWFBPUlQgV0tHZW9sb2NhdGlvblBvc2l0aW9u
UmVmIFdLR2VvbG9jYXRpb25Qb3NpdGlvbkNyZWF0ZV9iKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91Ymxl
IGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKTsKIAogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggZjA3YzQwNjBk
Y2Y2ODA3OTM3OGVkZjM5MzRkMmY2OTIzZjA5ZmJhYi4uMDM1ZWIxNzQyMTBmNDEwMTc1YjVkNGQw
NjU5ZThjZTg2Mjg4N2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNzQs
NyArNzQsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2Uo
V2ViUGFnZSogcGFnZSkKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQogewogI2lmIEVO
QUJMRShHRU9MT0NBVElPTikKLSAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gcG9zaXRp
b24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5KTsKKyAgICBSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4gcG9zaXRpb24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoZGF0
YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5
LCBkYXRhLmNhblByb3ZpZGVBbHRpdHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRl
QWx0aXR1ZGVBY2N1cmFjeSwgZGF0YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVI
ZWFkaW5nLCBkYXRhLmhlYWRpbmcsIGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKTsK
IAogICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZT4gPiB3ZWJQYWdlQ29weTsKICAgICBjb3B5VG9W
ZWN0b3IobV9wYWdlU2V0LCB3ZWJQYWdlQ29weSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2RhOWRkZDZlYzI5YzVhMDA4ZTc2YTQ3NDhmZTgy
ZjZiNjU0NmQ5My4uODM4YzE4YTVlYmY1ZDQ3OTgxMTIzNDIzZmZhZmJjMDQ4Yzk2NDk1MCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUzIEBACisyMDEyLTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIFN1cHBvcnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Q
b3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTgyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHBhbmQgV2ViS2l0VGVzdFJ1bm5lciBhbmQgRHVtcFJlbmRlclRyZWUgdG8gdGVzdCBhbGwgdGhl
IGF0dHJpYnV0ZXMKKyAgICAgICAgb2YgR2VvbG9jYXRpb25Qb3NpdGlvbi4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25DYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gv
VGVzdFJ1bm5lcld4LmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlk
ZXJNb2NrLmNwcDoKKyAgICAgICAgKFdUUjo6R2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBv
c2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJN
b2NrLmg6CisgICAgICAgIChHZW9sb2NhdGlvblByb3ZpZGVyTW9jayk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1
bm5lci5wbToKKyAgICAgICAgKF9wbGF0Zm9ybVR5cGVWYXJpYWJsZURlY2xhcmF0aW9uKToKKyAg
ICAgICAgVXNlIGEgcHJvcGVyIGNvbnN0cnVjdG9yIGZvciB0aGUgSlNWYWx1ZVJlZiwgaXQgaXMg
YW4gb3BhcXVlIHR5cGUsIHdlIGFyZSBub3Qgc3VwcG9zZWQKKyAgICAgICAgdG8gYnVpbGQgdGhl
IHBvaW50ZXIgb3V0c2VsZi4KKyAgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBv
cHRpb25hbCBKU1ZhbHVlUmVmIHByb3Blcmx5LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6Cisg
ICAgICAgIChJbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoVGVzdENvbnRyb2xsZXIp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUpOgorCiAyMDEyLTEwLTAxICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8u
ZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbHkgb24gdGhlIGdlbmVyYWwg
aW1wbGVtZW50YXRpb24gZm9yIGRldGVjdGluZyB0aGUgQXBhY2hlIHNlcnZlciBwYXRoLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCA5ZjdhN2MxYmVjYTBhYmE4NDM2OWU5N2Zl
ZTkxZWVjMmRjMjZjZDU3Li4xMmExOTRkM2U0NGY5MDBmOTY0YjdlMWUyNWY2YTY1ZDIwNmRlYzYy
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtMTA4NywxMCArMTA4Nyw0MCBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iagogICAgIGlmIChhcmd1bWVudENvdW50IDwgMykKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCisgICAgZG91Ymxl
IGxhdGl0dWRlID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgMCk7Cisg
ICAgZG91YmxlIGxvbmdpdHVkZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNb
MV0sIDApOworICAgIGRvdWJsZSBhY2N1cmFjeSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMl0sIDApOworCisgICAgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUgPSBmYWxzZTsK
KyAgICBkb3VibGUgYWx0aXR1ZGUgPSAwLjsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA+IDMgJiYg
IUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBhcmd1bWVudHNbM10pKSB7CisgICAgICAgIGNh
blByb3ZpZGVBbHRpdHVkZSA9IHRydWU7CisgICAgICAgIGFsdGl0dWRlID0gSlNWYWx1ZVRvTnVt
YmVyKGNvbnRleHQsIGFyZ3VtZW50c1szXSwgMCk7CisgICAgfQorCisgICAgYm9vbCBjYW5Qcm92
aWRlQWx0aXR1ZGVBY2N1cmFjeSA9IGZhbHNlOworICAgIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5
ID0gMC47CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPiA0ICYmICFKU1ZhbHVlSXNVbmRlZmluZWQo
Y29udGV4dCwgYXJndW1lbnRzWzRdKSkgeworICAgICAgICBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1
cmFjeSA9IHRydWU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJndW1lbnRzWzRdLCAwKTsKKyAgICB9CisKKyAgICBib29sIGNhblByb3ZpZGVI
ZWFkaW5nID0gZmFsc2U7CisgICAgZG91YmxlIGhlYWRpbmcgPSAwLjsKKyAgICBpZiAoYXJndW1l
bnRDb3VudCA+IDUgJiYgIUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBhcmd1bWVudHNbNV0p
KSB7CisgICAgICAgIGNhblByb3ZpZGVIZWFkaW5nID0gdHJ1ZTsKKyAgICAgICAgaGVhZGluZyA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNV0sIDApOworICAgIH0KKworICAg
IGJvb2wgY2FuUHJvdmlkZVNwZWVkID0gZmFsc2U7CisgICAgZG91YmxlIHNwZWVkID0gMC47Cisg
ICAgaWYgKGFyZ3VtZW50Q291bnQgPiA2ICYmICFKU1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwg
YXJndW1lbnRzWzZdKSkgeworICAgICAgICBjYW5Qcm92aWRlU3BlZWQgPSB0cnVlOworICAgICAg
ICBzcGVlZCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNl0sIDApOworICAg
IH0KKwogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSByZWludGVycHJldF9jYXN0PFRlc3RS
dW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXIt
PnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbMF0sIE5VTEwpLCAgLy8gbGF0aXR1ZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBO
VUxMKSwgIC8vIGxvbmdpdHVkZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMl0sIE5VTEwpKTsgIC8v
IGFjY3VyYWN5CisgICAgY29udHJvbGxlci0+c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0
aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVBbHRpdHVkZSwgYWx0aXR1ZGUs
IGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBjYW5Qcm92aWRl
SGVhZGluZywgaGVhZGluZywgY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCk7CiAKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmgKaW5kZXggZWRkMGRmZGE3NWI2MzE5NmFhOWMwMmJkMWJiZDdkYjFhNDQ1YjQyMC4uNzQ1Yzk2
OTA0ZDI4YmFkZmY0YjBhMjg2ZGQ3NjJhNzA2MDA3OTQ1MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNb2NrRGV2aWNlT3JpZW50
YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRl
QmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpOwot
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KEpTU3RyaW5nUmVmIG1lc3NhZ2UpOwogICAgIHZvaWQgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KEpTU3RyaW5nUmVmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVmIGxhbmd1
YWdlKTsKICAgICB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dER1bXBSZWN0KGJvb2wgZmxhZyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggY2ZiMzMwMjQ5
YjFjNmI1MzZkYjZhZmQ4MTJiMTI2NzhmNTBjZmNmNS4uOGZjOTI2YWViYzE4ZTQ5MzMwMzkzYjQw
ZGViYTdlNTg3MzdhNTJmNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rl
c3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVy
RWZsLmNwcApAQCAtMzcyLDcgKzM3Miw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uKGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3ViCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihkb3VibGUsIGRvdWJsZSwgZG91YmxlKQordm9pZCBUZXN0UnVubmVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBib29sLCBkb3Vi
bGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUpCiB7CiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgogICAgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggMWRjODE5OTM4NWVlY2Fh
MjU1MTFmMzdkOTEzNzdkYzI5YzgxM2ZhMS4uNmM5ZTExZmM4ZmRjNGE1YWRkN2M2ZTQwYTk4NDE2
MjM1NzNhNjJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5u
ZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvCiAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDMzNS4KIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3ksIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3Vi
bGUsIGJvb2wsIGRvdWJsZSkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKGdfc2xpc3RfbnRoX2RhdGEod2ViVmlld0xpc3QsIDApKTsKICAgICBpZiAoIXZpZXcp
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDFhMGEwNGRj
NzU2M2E1ZjJiOGNiMzU4MGYxNzc1MTNlMjVlZTgwY2YuLjgxYTE2NjVmODk4YzQ4ODQ0YWVjZTg1
ZjAyNDkwODY5OTc4MGY4OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9U
ZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1JldGFp
blB0ci5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KICNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9j
YXRpb25Qb3NpdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTURvY3VtZW50Lmg+CiAjaW1wb3J0
IDxXZWJLaXQvRE9NRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkFwcGxpY2F0aW9uQ2Fj
aGUuaD4KQEAgLTEwOCw2ICsxMDksMTAgQEAKIAogQGVuZAogCitAaW50ZXJmYWNlIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24gKEludGVybmFsKQorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0
aW9uOihQYXNzUmVmUHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+KWNvcmVHZW9sb2Nh
dGlvblBvc2l0aW9uOworQGVuZAorCiBUZXN0UnVubmVyOjp+VGVzdFJ1bm5lcigpCiB7CiB9CkBA
IC00NzIsOSArNDc3LDE2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0
aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvCiAgICAgW29yaWVudGF0
aW9uIHJlbGVhc2VdOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5
KQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0
aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0Fs
dGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBk
b3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFk
aW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkKIHsKLSAgICBXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uICpwb3NpdGlvbiA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10g
aW5pdFdpdGhUaW1lc3RhbXA6Y3VycmVudFRpbWUoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1
ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3VyYWN5XTsKKyAgICBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uICpwb3NpdGlvbiA9IG5pbDsKKyAgICBpZiAoIXByb3ZpZGVzQWx0aXR1ZGUgJiYgIXByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSAmJiAhcHJvdmlkZXNIZWFkaW5nICYmICFwcm92aWRlc1NwZWVk
KSB7CisgICAgICAgIC8vIFRlc3QgdGhlIGV4cG9zZWQgQVBJLgorICAgICAgICBwb3NpdGlvbiA9
IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10gaW5pdFdpdGhUaW1lc3RhbXA6Y3VycmVu
dFRpbWUoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFj
Y3VyYWN5XTsKKyAgICB9IGVsc2UgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY29yZUdlb2xvY2F0aW9uUG9zaXRpb24gPSBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNj
dXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywgcHJvdmlkZXNT
cGVlZCwgc3BlZWQpOworICAgICAgICBwb3NpdGlvbiA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biBhbGxvY10gaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihjb3JlR2VvbG9jYXRpb25Qb3Np
dGlvbi5yZWxlYXNlKCkpXTsKKyAgICB9CiAgICAgW1tNb2NrR2VvbG9jYXRpb25Qcm92aWRlciBz
aGFyZWRdIHNldFBvc2l0aW9uOnBvc2l0aW9uXTsKICAgICBbcG9zaXRpb24gcmVsZWFzZV07CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggYzQ0MDBm
ZGNiMWViYmVmNGY3N2JjODA0MGNlMTZhMmI2M2VmMzc0MC4uOTNlNjM3ZDA2MzAzNjliNWVkMDJk
MWVlYTc2ZTMwNDk2NGU3OWY4YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcApAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Rl
dmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvCiAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDMzNS4K
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUg
bG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91Ymxl
IGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRl
QWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92
aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Ig
R2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1
bm5lcld4LmNwcAppbmRleCBlNzgwY2ZlNTJiM2IwMTY5NGU2MmM3N2IzOGRmOWQwZTBiMTA5YmFh
Li44NzRhYTY3OTVmNmQwYTQwZjYzNGQ1MDVmYWFmZTU0NzkzMjYxODE0IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwg
ZG91YmxlIGFscGhhLCBibwogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzAzMzUuCiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3kpCit2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91Ymxl
IGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKQogewogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcAppbmRleCA1
ODc3YzY1ZjY5NTRhNDkwZTZiYzI2YTBmMzEzOWE4N2U1ZjlkYjg3Li4xNTI0MDA4ZWM4NmJlMDUw
ZTk1MDQ1OGFhYWU0MjNmZmU3ZTVmNDViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcApAQCAtNTgsOSArNTgsOSBAQCBHZW9sb2Nh
dGlvblByb3ZpZGVyTW9jazo6R2VvbG9jYXRpb25Qcm92aWRlck1vY2soV0tDb250ZXh0UmVmIGNv
bnRleHQpCiAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihtX2dlb2xvY2F0aW9u
TWFuYWdlciwgJnByb3ZpZGVyQ2FsbGJhY2spOwogfQogCi12b2lkIEdlb2xvY2F0aW9uUHJvdmlk
ZXJNb2NrOjpzZXRQb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSkKK3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBvc2l0aW9u
KGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29s
IHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRl
QWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywg
ZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAg
IG1fcG9zaXRpb24uYWRvcHQoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlKGN1cnJlbnRUaW1l
KCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgbV9wb3NpdGlvbi5hZG9w
dChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwg
bG9uZ2l0dWRlLCBhY2N1cmFjeSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFk
aW5nLCBwcm92aWRlc1NwZWVkLCBzcGVlZCkpOwogICAgIHNlbmRQb3NpdGlvbklmTmVlZGVkKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92
aWRlck1vY2suaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1v
Y2suaAppbmRleCA0YTA2ZjA4ZjliMjc2ZmZlOGY3NTliYjUzYWRkOTkzOWY5ZmMwZGQwLi4xZWJm
NjdkMWJmOWQ4OGE4NWYxYzJjZGVhYzNhODQzNDJhZmNkMDFjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oCkBAIC0zNCw3ICszNCw3IEBA
IGNsYXNzIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrIHsKIHB1YmxpYzoKICAgICBHZW9sb2NhdGlv
blByb3ZpZGVyTW9jayhXS0NvbnRleHRSZWYpOwogCi0gICAgdm9pZCBzZXRQb3NpdGlvbihkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CisgICAgdm9p
ZCBzZXRQb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92
aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBz
cGVlZCk7CiAgICAgdm9pZCBzZXRQb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYg
ZXJyb3JNZXNzYWdlKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXS0dlb2xvY2F0aW9uTWFu
YWdlclJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVubmVyLnBtIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5w
bQppbmRleCBmMmRhNjQwMzZmOThkZmNlNWI1MDdlODMxMDlmOWQzOTM0NDFlYTNkLi40NDI5Mjgz
ZThiOTc1Y2I5YjA1YmEyYmU5Mjg4YzIzMzFiZjc0OWVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVu
bmVyLnBtCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQ29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG0KQEAgLTQ2NSw3ICs0NjUsMTEgQEAgc3ViIF9w
bGF0Zm9ybVR5cGVWYXJpYWJsZURlY2xhcmF0aW9uCiAgICAgKTsKIAogICAgIG15ICRudWxsVmFs
dWUgPSAiMCI7Ci0gICAgJG51bGxWYWx1ZSA9ICIkcGxhdGZvcm1UeXBlKCkiIGlmIGRlZmluZWQg
JG5vblBvaW50ZXJUeXBlc3skcGxhdGZvcm1UeXBlfSAmJiAkcGxhdGZvcm1UeXBlIG5lICJkb3Vi
bGUiOworICAgIGlmICgkcGxhdGZvcm1UeXBlIGVxICJKU1ZhbHVlUmVmIikgeworICAgICAgICAk
bnVsbFZhbHVlID0gIkpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpIjsKKyAgICB9IGVsc2lm
IChkZWZpbmVkICRub25Qb2ludGVyVHlwZXN7JHBsYXRmb3JtVHlwZX0gJiYgJHBsYXRmb3JtVHlw
ZSBuZSAiZG91YmxlIikgeworICAgICAgICAkbnVsbFZhbHVlID0gIiRwbGF0Zm9ybVR5cGUoKSI7
CisgICAgfQogCiAgICAgJHBsYXRmb3JtVHlwZSAuPSAiKiIgdW5sZXNzIGRlZmluZWQgJG5vblBv
aW50ZXJUeXBlc3skcGxhdGZvcm1UeXBlfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5k
ZXggNmVmZDc4ZTMyMmNjYjBiYWYxNGI5MDlmNDc0NGVhODBiZWNhNjYyZi4uZWQ5ZDk3NTljYjAy
MDk0NDRiMmY4NzdkYjk3MDMwNzRiYzBjNzRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CkBAIC0xODAsNyArMTgwLDcgQEAgbW9kdWxlIFdUUiB7CiAKICAgICAgICAgLy8gR2VvbG9jYXRp
b24KICAgICAgICAgdm9pZCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oaW4gYm9vbGVhbiB2YWx1
ZSk7Ci0gICAgICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oaW4gZG91YmxlIGxh
dGl0dWRlLCBpbiBkb3VibGUgbG9uZ2l0dWRlLCBpbiBkb3VibGUgYWNjdXJhY3kpOworICAgICAg
ICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGluIGRvdWJsZSBsYXRpdHVkZSwgaW4g
ZG91YmxlIGxvbmdpdHVkZSwgaW4gZG91YmxlIGFjY3VyYWN5LCBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBvYmplY3QgYWx0aXR1ZGUsIGluIFtPcHRpb25hbF0gb2JqZWN0IGFsdGl0
dWRlQWNjdXJhY3ksIGluIFtPcHRpb25hbF0gb2JqZWN0IGhlYWRpbmcsIGluIFtPcHRpb25hbF0g
b2JqZWN0IHNwZWVkKTsKICAgICAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVu
YXZhaWxhYmxlRXJyb3IoaW4gRE9NU3RyaW5nIGVycm9yTWVzc2FnZSk7CiAKICAgICAgICAgYm9v
bGVhbiBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMTM3
NjVjMGZmMGFjNDUyMDcxYzI0YmZkNjZkNjk3YzljYzMyMTViNy4uMDIzNWM0YTdjN2MzZDdkMWZh
MWE0MjlkYTYxZWE0Y2Q2N2MzY2VmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTM2NSw3ICszNjUs
NyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBl
bmFibGVkKQogICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1lc3NhZ2VOYW1lLmdl
dCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwg
ZG91YmxlIGFjY3VyYWN5KQordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNI
ZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQp
CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIp
KTsKIApAQCAtMzgzLDYgKzM4MywzOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZAogICAgIFdL
UmV0YWluUHRyPFdLRG91YmxlUmVmPiBhY2N1cmFjeVdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KGFjY3VyYWN5KSk7CiAgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwg
YWNjdXJhY3lLZXlXSy5nZXQoKSwgYWNjdXJhY3lXSy5nZXQoKSk7CiAKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNBbHRpdHVkZUtleVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJwcm92aWRlc0FsdGl0dWRlIikpOworICAgIFdLUmV0YWluUHRy
PFdLQm9vbGVhblJlZj4gcHJvdmlkZXNBbHRpdHVkZVdLKEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0
ZShwcm92aWRlc0FsdGl0dWRlKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9k
eS5nZXQoKSwgcHJvdmlkZXNBbHRpdHVkZUtleVdLLmdldCgpLCBwcm92aWRlc0FsdGl0dWRlV0su
Z2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFsdGl0dWRlS2V5V0soQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFsdGl0dWRlIikpOworICAgIFdL
UmV0YWluUHRyPFdLRG91YmxlUmVmPiBhbHRpdHVkZVdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KGFsdGl0dWRlKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwg
YWx0aXR1ZGVLZXlXSy5nZXQoKSwgYWx0aXR1ZGVXSy5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5S2V5V0soQWRvcHRXSywgV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeVdL
KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kpKTsKKyAg
ICBXS0RpY3Rpb25hcnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBwcm92aWRlc0FsdGl0dWRl
QWNjdXJhY3lLZXlXSy5nZXQoKSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5V0suZ2V0KCkpOwor
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFsdGl0dWRlQWNjdXJhY3lLZXlXSyhBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWx0aXR1ZGVBY2N1cmFjeSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gYWx0aXR1ZGVBY2N1cmFjeVdLKEFkb3B0V0ss
IFdLRG91YmxlQ3JlYXRlKGFsdGl0dWRlQWNjdXJhY3kpKTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJ
dGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBhbHRpdHVkZUFjY3VyYWN5S2V5V0suZ2V0KCksIGFsdGl0
dWRlQWNjdXJhY3lXSy5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcHJv
dmlkZXNIZWFkaW5nS2V5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
InByb3ZpZGVzSGVhZGluZyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHByb3Zp
ZGVzSGVhZGluZ1dLKEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShwcm92aWRlc0hlYWRpbmcpKTsK
KyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBwcm92aWRlc0hlYWRp
bmdLZXlXSy5nZXQoKSwgcHJvdmlkZXNIZWFkaW5nV0suZ2V0KCkpOworCisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGhlYWRpbmdLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiaGVhZGluZyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gaGVh
ZGluZ1dLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKGhlYWRpbmcpKTsKKyAgICBXS0RpY3Rpb25h
cnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBoZWFkaW5nS2V5V0suZ2V0KCksIGhlYWRpbmdX
Sy5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNTcGVlZEtl
eVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJwcm92aWRlc1NwZWVk
IikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gcHJvdmlkZXNTcGVlZFdLKEFkb3B0
V0ssIFdLQm9vbGVhbkNyZWF0ZShwcm92aWRlc1NwZWVkKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRk
SXRlbShtZXNzYWdlQm9keS5nZXQoKSwgcHJvdmlkZXNTcGVlZEtleVdLLmdldCgpLCBwcm92aWRl
c1NwZWVkV0suZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNwZWVkS2V5
V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInNwZWVkIikpOworICAg
IFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiBzcGVlZFdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KHNwZWVkKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwgc3Bl
ZWRLZXlXSy5nZXQoKSwgc3BlZWRXSy5nZXQoKSk7CisKICAgICBXS0J1bmRsZVBvc3RNZXNzYWdl
KG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmgKaW5kZXggZTI5NjE0MmMxNGQ5YjM5OWJmMzU1Y2RiNjM0YjI0N2FlNjcxNjMyMi4u
NDRiYmNjMTM0YTczMjFmYzcxMDg2NjRlNGEwMGFlNmMzZDUwMDU3NiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApA
QCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW9sb2NhdGlvbi4KICAgICB2b2lk
IHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sKTsKLSAgICB2b2lkIHNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFj
Y3VyYWN5KTsKKyAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0
aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRv
dWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRp
bmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1lc3Nh
Z2UpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYzJmZDM0MmUxNjVmNDJhZjk2NzE5MWZjNzY2
NGY4ZTA4ZjViMTY4NS4uZGMyZjJlMjdkNDg4ODZmMGZhMmVkZTkyZjc0NzkwMDI5YWI0NDRmOSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC03ODAsOSArNzgwLDQwIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGVuYWJsZWQpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSwgSlNWYWx1ZVJlZiBqc0FsdGl0dWRlLCBKU1ZhbHVlUmVmIGpzQWx0aXR1ZGVBY2N1
cmFjeSwgSlNWYWx1ZVJlZiBqc0hlYWRpbmcsIEpTVmFsdWVSZWYganNTcGVlZCkKIHsKLSAgICBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1l
ID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdl
KCktPnBhZ2UoKSk7CisgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0
SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKKworICAgIGJvb2wgcHJvdmlkZXNBbHRpdHVk
ZSA9IGZhbHNlOworICAgIGRvdWJsZSBhbHRpdHVkZSA9IDAuOworICAgIGlmICghSlNWYWx1ZUlz
VW5kZWZpbmVkKGNvbnRleHQsIGpzQWx0aXR1ZGUpKSB7CisgICAgICAgIHByb3ZpZGVzQWx0aXR1
ZGUgPSB0cnVlOworICAgICAgICBhbHRpdHVkZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBq
c0FsdGl0dWRlLCAwKTsKKyAgICB9CisKKyAgICBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSA9IGZhbHNlOworICAgIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5ID0gMC47CisgICAgaWYgKCFK
U1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwganNBbHRpdHVkZUFjY3VyYWN5KSkgeworICAgICAg
ICBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kgPSB0cnVlOworICAgICAgICBhbHRpdHVkZUFjY3Vy
YWN5ID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGpzQWx0aXR1ZGVBY2N1cmFjeSwgMCk7Cisg
ICAgfQorCisgICAgYm9vbCBwcm92aWRlc0hlYWRpbmcgPSBmYWxzZTsKKyAgICBkb3VibGUgaGVh
ZGluZyA9IDAuOworICAgIGlmICghSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIGpzSGVhZGlu
ZykpIHsKKyAgICAgICAgcHJvdmlkZXNIZWFkaW5nID0gdHJ1ZTsKKyAgICAgICAgaGVhZGluZyA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBqc0hlYWRpbmcsIDApOworICAgIH0KKworICAgIGJv
b2wgcHJvdmlkZXNTcGVlZCA9IGZhbHNlOworICAgIGRvdWJsZSBzcGVlZCA9IDAuOworICAgIGlm
ICghSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIGpzU3BlZWQpKSB7CisgICAgICAgIHByb3Zp
ZGVzU3BlZWQgPSB0cnVlOworICAgICAgICBzcGVlZCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0
LCBqc1NwZWVkLCAwKTsKKyAgICB9CisKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIHBy
b3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0
dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3Bl
ZWQpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5h
dmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA4NDU4OTQzZmNhODk0
NTEzYmRlYjFiZGYyMjU3NGRhMTc1Mjc2ZDdkLi4wZDVlMzYwYmVlZTY2OWI3NzBlZmNkY2ZmOTY2
NDUyOTc3MTA2YWVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjUxLDcgKzI1MSw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IEdlb2xvY2F0aW9uLgogICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wpOwot
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIEpTVmFsdWVSZWYgYWx0aXR1ZGUsIEpTVmFsdWVSZWYgYWx0aXR1ZGVBY2N1cmFjeSwg
SlNWYWx1ZVJlZiBoZWFkaW5nLCBKU1ZhbHVlUmVmIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKTsK
IAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzNkOTEzZmRiNzU1Y2QyMGM1
MTI4NjljYWJjYzE0ZGExYzM3NDViZi4uMjc2NDUwMTViN2Q2MWVlNjEwMjM2MWY2ODM3YjJkZWZl
ZWJhNDExOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTEwMTEsOSArMTAxMSw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVy
bWlzc2lvbihib29sIGVuYWJsZWQpCiAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3kpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1
cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlk
ZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRl
c0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVl
ZCkKIHsKLSAgICBtX2dlb2xvY2F0aW9uUHJvdmlkZXItPnNldFBvc2l0aW9uKGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5KTsKKyAgICBtX2dlb2xvY2F0aW9uUHJvdmlkZXItPnNldFBvc2l0
aW9uKGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRp
dHVkZSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRl
c0hlYWRpbmcsIGhlYWRpbmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkKTsKIH0KIAogdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdL
U3RyaW5nUmVmIGVycm9yTWVzc2FnZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCBmNzg4ODkyM2JkMWZlODQxMmFlOWUxOWRhYWU3ZjE1M2MxYzExNTliLi43MmYx
ZGQyMjhjNzEzMWRjNTA4MmY4NDVjMDBhNTY1NzM4ZTQxZGQwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IEdlb2xvY2F0aW9uLgogICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wpOwot
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KFdLU3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBoYW5kbGVHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggOWNhNzVhZWY3OTNi
NTA2YmM1NTNhMjk5ZjEyYjg3MDIwYmZmODQxYy4uMTRiYTRkMzBhOWQ2N2IwZTBhMmZmMWMxNTJk
M2I1OWNmNjNiNDc3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKQEAgLTM3MSw3ICszNzEsMzkgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAg
V0tEb3VibGVSZWYgYWNjdXJhY3lXSyA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rp
b25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYWNjdXJhY3lLZXlXSy5n
ZXQoKSkpOwogICAgICAgICBkb3VibGUgYWNjdXJhY3kgPSBXS0RvdWJsZUdldFZhbHVlKGFjY3Vy
YWN5V0spOwogCi0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5zZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSk7CisgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwcm92aWRlc0FsdGl0dWRlS2V5V0soQWRvcHRXSywgV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInByb3ZpZGVzQWx0aXR1ZGUiKSk7CisgICAgICAg
IFdLQm9vbGVhblJlZiBwcm92aWRlc0FsdGl0dWRlV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwcm92
aWRlc0FsdGl0dWRlS2V5V0suZ2V0KCkpKTsKKyAgICAgICAgYm9vbCBwcm92aWRlc0FsdGl0dWRl
ID0gV0tCb29sZWFuR2V0VmFsdWUocHJvdmlkZXNBbHRpdHVkZVdLKTsKKworICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gYWx0aXR1ZGVLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiYWx0aXR1ZGUiKSk7CisgICAgICAgIFdLRG91YmxlUmVmIGFsdGl0
dWRlV0sgPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIGFsdGl0dWRlS2V5V0suZ2V0KCkpKTsKKyAgICAgICAg
ZG91YmxlIGFsdGl0dWRlID0gV0tEb3VibGVHZXRWYWx1ZShhbHRpdHVkZVdLKTsKKworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5S2V5V0so
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInByb3ZpZGVzQWx0aXR1ZGVB
Y2N1cmFjeSIpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eVdLID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5S2V5V0suZ2V0
KCkpKTsKKyAgICAgICAgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kgPSBXS0Jvb2xlYW5H
ZXRWYWx1ZShwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3lXSyk7CisKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGFsdGl0dWRlQWNjdXJhY3lLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWx0aXR1ZGVBY2N1cmFjeSIpKTsKKyAgICAgICAgV0tEb3Vi
bGVSZWYgYWx0aXR1ZGVBY2N1cmFjeVdLID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGlj
dGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBhbHRpdHVkZUFjY3Vy
YWN5S2V5V0suZ2V0KCkpKTsKKyAgICAgICAgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3kgPSBXS0Rv
dWJsZUdldFZhbHVlKGFsdGl0dWRlQWNjdXJhY3lXSyk7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHByb3ZpZGVzSGVhZGluZ0tleVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJwcm92aWRlc0hlYWRpbmciKSk7CisgICAgICAgIFdLQm9vbGVhblJl
ZiBwcm92aWRlc0hlYWRpbmdXSyA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9u
YXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHByb3ZpZGVzSGVhZGluZ0tl
eVdLLmdldCgpKSk7CisgICAgICAgIGJvb2wgcHJvdmlkZXNIZWFkaW5nID0gV0tCb29sZWFuR2V0
VmFsdWUocHJvdmlkZXNIZWFkaW5nV0spOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBoZWFkaW5nS2V5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
ImhlYWRpbmciKSk7CisgICAgICAgIFdLRG91YmxlUmVmIGhlYWRpbmdXSyA9IHN0YXRpY19jYXN0
PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSwgaGVhZGluZ0tleVdLLmdldCgpKSk7CisgICAgICAgIGRvdWJsZSBoZWFkaW5nID0gV0tE
b3VibGVHZXRWYWx1ZShoZWFkaW5nV0spOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBwcm92aWRlc1NwZWVkS2V5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoInByb3ZpZGVzU3BlZWQiKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBwcm92aWRlc1Nw
ZWVkV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JL
ZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwcm92aWRlc1NwZWVkS2V5V0suZ2V0KCkpKTsKKyAg
ICAgICAgYm9vbCBwcm92aWRlc1NwZWVkID0gV0tCb29sZWFuR2V0VmFsdWUocHJvdmlkZXNTcGVl
ZFdLKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3BlZWRLZXlXSyhBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygic3BlZWQiKSk7CisgICAgICAgIFdL
RG91YmxlUmVmIHNwZWVkV0sgPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHNwZWVkS2V5V0suZ2V0KCkpKTsK
KyAgICAgICAgZG91YmxlIHNwZWVkID0gV0tEb3VibGVHZXRWYWx1ZShzcGVlZFdLKTsKKworICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
bGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRl
LCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVh
ZGluZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3BlZWQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTNiOWQwZjFkNTA1YjM2MGZhZmYzNzAxYTJhZTU0ZTk1YTFkZDA0OC4u
MjVkMjZkOTY1ZDU2MTI3N2M2MWFhYTdjYTRkZjMzYmVmYjcxNGMzNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEyLTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIFN1cHBvcnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Q
b3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTgyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSBuZXcgdGVzdCBmb3IgdGhlIGV4cG9zZWQgYXR0cmlidXRlcy4gSXQgaXMgZGlzYWJsZWQg
ZXZlcnl3aGVyZSBlbHNlIHRoYW4KKyAgICAgICAgTWFjIGJlY2F1c2Ugb2YgdGhlIG1pc3Npbmcg
RFJUIGZlYXR1cmVzLgorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vY29vcmRpbmF0
ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9jb29yZGluYXRlcy1pbnRlcmZhY2UtYXR0cmlidXRlcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMDEgIEFycGl0YSBCYWh1Z3VuYSAg
PGFycGl0YWJhaHVndW5hQGdtYWlsLmNvbT4KIAogICAgICAgICBSZW5kZXJCbG9jayBpbmNvcnJl
Y3RseSBjYWxjdWxhdGVzIHByZWYgd2lkdGggd2hlbiBhIHJlcGxhY2VkIG9iamVjdCBmb2xsb3dz
IGEgUmVuZGVySW5saW5lIHdpdGggd2lkdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVy
ZmFjZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDBjMTNmNjA5ODY5Y2Rk
MThiMzAxZTc0NDBmMGFhYTcwZWExMzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vY29vcmRpbmF0ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDkgQEAKK1Rlc3QgdGhlIGF0dHJpYnV0ZSBoYW5kbGluZyBv
ZiB0aGUgQ29vcmRpbmF0ZXMgaW50ZXJmYWNlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRl
c3RJbmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RT
ZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJh
Y3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGlu
YXRlcy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGds
b2JhbENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdElu
ZGV4XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3Vy
cmVudFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVz
dFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxh
dGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29v
cmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BB
U1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4
XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJl
bnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJh
Y3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGlu
YXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xv
YmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQor
CitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJ
bmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRb
Y3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kg
aXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRl
cy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2Jh
bENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4
XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVu
dFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNl
dFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0
dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRp
bmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1Mg
Z2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsx
XVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRU
ZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kg
aXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRl
cy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFs
Q29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQ
QVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRl
eF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRbY3Vy
cmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kgaXMg
dGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5h
bHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2JhbENv
b3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsx
XVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVudFRl
c3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNldFtj
dXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vY29vcmRpbmF0ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmY0MDExM2Y2NDgyM2I0ZWU1ZWFhNGU1Y2FhMDY2ZTdlZjFiYWFi
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nv
b3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhlIGF0
dHJpYnV0ZSBoYW5kbGluZyBvZiB0aGUgQ29vcmRpbmF0ZXMgaW50ZXJmYWNlIik7Cit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIEZvcm1hdDogW0lucHV0XSwgW0V4cGVjdGVkXQor
Ly8gSW5wdXQ6IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRl
LCBhbHRpdHVkZSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBw
cm92aWRlc0hlYWRpbmcsIGhlYWRpbmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkLgorLy8gRXhwZWN0
ZWQ6IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBhbHRpdHVkZSwgYWx0aXR1ZGVBY2N1
cmFjeSwgaGVhZGluZywgc3BlZWQuCit2YXIgdGVzdFNldCA9IFsKKyAgICBbWzEsIDIsIDNdLCBb
MSwgMiwgMywgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF1dLAorICAgIFtbMiwgMywgNCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgNV0sIFsyLCAzLCA0LCBudWxsLCBudWxsLCBudWxs
LCA1XV0sCisgICAgW1szLCA0LCA1LCB1bmRlZmluZWQsIDYsIHVuZGVmaW5lZCwgN10sIFszLCA0
LCA1LCBudWxsLCA2LCBudWxsLCA3XV0sCisgICAgW1s0LCA1LCA2LCB1bmRlZmluZWQsIDcsIDgs
IDldLCBbNCwgNSwgNiwgbnVsbCwgNywgOCwgOV1dLAorICAgIFtbNSwgNiwgNywgOCwgOSwgMTAs
IDExXSwgWzUsIDYsIDcsIDgsIDksIDEwLCAxMV1dLAorXTsKKwordmFyIGN1cnJlbnRUZXN0SW5k
ZXggPSAtMTsKK3ZhciBnbG9iYWxDb29yZGluYXRlcyA9IG51bGw7CisKK2Z1bmN0aW9uIHJ1bk5l
eHRUZXN0KCkKK3sKKyAgICArK2N1cnJlbnRUZXN0SW5kZXg7CisgICAgdGVzdFJ1bm5lci5zZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbi5hcHBseSh0ZXN0UnVubmVyLCB0ZXN0U2V0W2N1cnJlbnRU
ZXN0SW5kZXhdWzBdKTsKK30KKworZnVuY3Rpb24gdmVyaWZ5UmVzdWx0cygpCit7CisgICAgc2hv
dWxkQmUoJ2dsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlJywgJ3Rlc3RTZXRbY3VycmVudFRlc3RJ
bmRleF1bMV1bMF0nKTsKKyAgICBzaG91bGRCZSgnZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRl
JywgJ3Rlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0nKTsKKyAgICBzaG91bGRCZSgnZ2xv
YmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3knLCAndGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsy
XScpOworICAgIHNob3VsZEJlKCdnbG9iYWxDb29yZGluYXRlcy5hbHRpdHVkZScsICd0ZXN0U2V0
W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdJyk7CisgICAgc2hvdWxkQmUoJ2dsb2JhbENvb3JkaW5h
dGVzLmFsdGl0dWRlQWNjdXJhY3knLCAndGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs0XScp
OworICAgIHNob3VsZEJlKCdnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nJywgJ3Rlc3RTZXRbY3Vy
cmVudFRlc3RJbmRleF1bMV1bNV0nKTsKKyAgICBzaG91bGRCZSgnZ2xvYmFsQ29vcmRpbmF0ZXMu
c3BlZWQnLCAndGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XScpOworICAgIGRlYnVnKCcn
KTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRHZW9s
b2NhdGlvblBlcm1pc3Npb24odHJ1ZSk7Cit9IGVsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNh
biBub3QgYmUgd2l0aG91dCBUZXN0UnVubmVyLicpOworCit2YXIgd2F0Y2hJZCA9IG5hdmlnYXRv
ci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKGZ1bmN0aW9uKHBvc2l0aW9uKSB7CisgICAgZ2xv
YmFsQ29vcmRpbmF0ZXMgPSBwb3NpdGlvbi5jb29yZHM7CisgICAgdmVyaWZ5UmVzdWx0cygpOwor
CisgICAgaWYgKGN1cnJlbnRUZXN0SW5kZXggKyAxID09PSB0ZXN0U2V0Lmxlbmd0aCkgeworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBydW5OZXh0
VGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIGRlYnVnKCJFcnJvciE6IHRoZSBlcnJvciBj
YWxsYmFjayB3YXMgY2FsbGVkLiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3J1bk5l
eHRUZXN0KCk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDNmMjA0M2E3ODY2
MjM1MDlmMTg3YWVlYTkwNGM0ZjU2ZDdmYzFiZS4uNGU2Yzg2ZWJiNTM2NTZkOTAwZmIyMDhlN2Zj
OTI5NzhlYWJhZjQ2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xOTIsNiArMTkyLDkgQEAgd2Via2l0Lm9yZy9iLzg4MTcyIGh0dHAv
dGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQuaHRtbAogd2Via2l0Lm9yZy9iLzkyOTQyIGZhc3Qv
ZG9tL1Byb3hpbWl0eQogd2Via2l0Lm9yZy9iLzkyOTQyIGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9y
cy9kZXZpY2UtcHJveGltaXR5LWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKIAorIyBNaXNzaW5nIHN1
cHBvcnQgaW4gRFJUIGZvciBHZW9sb2NhdGlvbidzIENvb3JkaW5hdGUgYXR0cmlidXRlcy4KK3dl
YmtpdC5vcmcvYi85ODIxMiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jb29yZGluYXRlcy1pbnRlcmZh
Y2UtYXR0cmlidXRlcy5odG1sIFsgRmFpbHVyZSBdCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgV09OVEZJWCBU
RVNUUwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA0ODY1MzBmZmNjZWEyYmM2ZGUwMmUwOGM0OTg2MDNmYzdmYWFjNjE5Li4yMGFmMzM5
NjhmNjY3Y2E5MmI1ZjE2ZTY3NjVhZmJhMGNlZDA3NDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM1OSw2ICsxMzU5LDkgQEAgd2Via2l0Lm9yZy9i
LzkxNDg5IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LW9ubHktc2hhZG93
Lmh0bWwgWyBJbWEKIAogd2Via2l0Lm9yZy9iLzQ5MTQyIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29w
ZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1tdWx0aXBsZS1yZWdpb25zLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBNaXNzaW5nIHN1cHBvcnQgaW4gRFJUIGZvciBHZW9s
b2NhdGlvbidzIENvb3JkaW5hdGUgYXR0cmlidXRlcy4KK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nv
b3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLmh0bWwgWyBGYWlsdXJlIF0KKwogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFRlc3RzIGZhaWxpbmcKICMvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAzYTI4YjMyYmMyYzIxMzExMTg5NDUxMGE3MTJjN2ZhODRiZDllOGFm
Li42NmNmMTA1Yjg5N2U3NTZjZDdkYTM1MTYwMDU5ODc4YmQ4NjNiMGZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU0Niw2ICs1NDYsOSBAQCBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEKIGZhc3QvZG9tL1Byb3hpbWl0
eQogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL2RldmljZS1wcm94aW1pdHktZXZlbnQtY29uc3Ry
dWN0b3IuaHRtbAogCisjIE1pc3Npbmcgc3VwcG9ydCBpbiBEUlQgZm9yIEdlb2xvY2F0aW9uJ3Mg
Q29vcmRpbmF0ZSBhdHRyaWJ1dGVzLgorZmFzdC9kb20vR2VvbG9jYXRpb24vY29vcmRpbmF0ZXMt
aW50ZXJmYWNlLWF0dHJpYnV0ZXMuaHRtbCBbIEZhaWx1cmUgXQorCiAjID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAjCiAjICAgICAgIERyYWcgYW5kIERyb3AgU3VwcG9ydCBpbiBEUlQuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166795</attachid>
            <date>2012-10-02 18:35:42 -0700</date>
            <delta_ts>2012-10-03 15:23:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98212-20121002183454.patch</filename>
            <type>text/plain</type>
            <size>58126</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjZlMjljOTE3
NTdhMzY1ZTczNDBmYTk1YTFkZDY4ODk1NTdjNmZkNC4uZGY0OWQ4YjY2ZGRlYTA0MzMzNWRkYmI4
Njg1ZjdiZTZjZjkxYWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtXSzJdIFN1cHBvcnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Qb3NpdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJu
YWwgY29uc3RydWN0b3IgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuCisgICAgICAgIEEgc2ltaWxh
ciBBUEkgaXMgdXNlZCBvbiBpT1MuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0aW9u
UG9zaXRpb24ubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gaW5pdFdpdGhH
ZW9sb2NhdGlvblBvc2l0aW9uOl0pOgorCiAyMDEyLTA5LTI4ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG1ldGhvZCBv
dmVybG9hZGluZyBmcm9tIGJyaWRnZSBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWMyNTczYmEzNWJiYWZk
ZmVkNTVhODY5MTUxODI0NDVjZDQ3N2JkMS4uMGU0OTBhMzg5Y2ZjNjAwYzAwM2ZkNjQ5YjA2ZDBj
OTRhMDVmZTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTEwLTAyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Qb3NpdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgY29tcGxldGUgc3VwcG9ydCBmb3Ig
R2VvbG9jYXRpb25Qb3NpdGlvbi4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1l
bnRzLmg6CisgICAgICAgIChBcmd1bWVudHMxMSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVu
dHMxMTo6QXJndW1lbnRzMTEpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMTE6OmVuY29k
ZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMxMTo6ZGVjb2RlKToKKyAgICAgICAgKENv
cmVJUEMpOgorICAgICAgICAoQ29yZUlQQzo6SW4pOgorICAgICAgICAoQ29yZUlQQzo6T3V0KToK
KyAgICAgICAgKEFyZ3VtZW50czEyKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czEyOjpB
cmd1bWVudHMxMik6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMxMjo6ZW5jb2RlKToKKyAg
ICAgICAgKENvcmVJUEM6OkFyZ3VtZW50czEyOjpkZWNvZGUpOgorICAgICAgICBBZGQgY29kZXIv
ZGVjb2RlciBmb3IgMTEgYW5kIDEyIGFyZ3VtZW50cy4gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBo
YXMKKyAgICAgICAgMTIgYXJndW1lbnRzIHNvIGl0IGlzIHNpbXBsZXIgdG8gZXh0ZW5kIENvcmVJ
UEMuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xvY2F0aW9uUG9zaXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAg
IChEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y2FuUHJvdmlkZUFs
dGl0dWRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6YWx0aXR1
ZGUpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6YWx0aXR1ZGVBY2N1cmFjeSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNhblByb3ZpZGVIZWFk
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aGVhZGluZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNhblByb3ZpZGVTcGVl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OnNwZWVkKToKKyAg
ICAgICAgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBtaXJyb3IgdGhlIGF0dHJpYnV0ZXMgb2YgV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9u
Q3JlYXRlKToKKyAgICAgICAgKFdLR2VvbG9jYXRpb25Qb3NpdGlvbkNyZWF0ZV9iKToKKyAgICAg
ICAgQWRkIGEgbmV3IEFQSSBleHBvc2luZyBhbGwgdGhlIGFyZ3VtZW50cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24pOgorCiAyMDEy
LTEwLTAxICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV0syXSBTYXZlIHRoZSBkb3dubG9hZCB1cmkgYXMgZmlsZSBtZXRhZGF0YQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1t
CmluZGV4IDY0NjdjYWEyZWZiMzM4YTQ4YjIxNjQxYTFkNWRhZWIwMjI5NmJlZmYuLjc3MjUwNjI1
OWM4NTNjZjBlMmQ1YWM1ZWE1OWQ5ZTczZjMwNTA5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTcxLDYgKzcxLDE1
IEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9z
aXRpb24pCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Q
b3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Q
b3NpdGlvbgoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOmNvcmVHZW9s
b2NhdGlvblBvc2l0aW9uXTsKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAodm9pZClkZWFsbG9j
CiB7CiAgICAgW19pbnRlcm5hbCByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50cy5oCmluZGV4IDViZDc1NTAyYzgzY2JlMzFlZjgxOTg1ZGNiMDhjYzc3
OTZmOTExODcuLmE0ODUzZTEwMjMzZjBiNWRhMzM2N2ExNTMyYmNiMDhlMmZiMzc2ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaApAQCAtNDQ3LDYgKzQ0
NywxMDMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICByZXR1cm4gQXJndW1lbnRzMTA8
VDEmLCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJj4odDEsIHQy
LCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4LCB0OSwgdDEwKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTE+IHN0cnVjdCBBcmd1bWVudHMxMSA6IEFyZ3VtZW50czEw
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4geworICAgIHR5cGVkZWYg
QXJndW1lbnRzMTE8dHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92
ZVJlZmVyZW5jZTxUMT46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29u
c3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDI+OjpUeXBlPjo6VHlwZSwKKyAgICB0
eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQz
Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBX
VEY6OlJlbW92ZVJlZmVyZW5jZTxUND46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdURjo6
UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDU+OjpUeXBlPjo6VHlw
ZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVm
ZXJlbmNlPFQ2Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0
eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUNz46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVu
YW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDg+OjpU
eXBlPjo6VHlwZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6
UmVtb3ZlUmVmZXJlbmNlPFQ5Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1v
dmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUMTA+OjpUeXBlPjo6VHlwZSwK
KyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJl
bmNlPFQxMT46OlR5cGU+OjpUeXBlPiBWYWx1ZVR5cGU7CisKKyAgICBBcmd1bWVudHMxMSgpIHsg
fQorCisgICAgQXJndW1lbnRzMTEoVDEgdDEsIFQyIHQyLCBUMyB0MywgVDQgdDQsIFQ1IHQ1LCBU
NiB0NiwgVDcgdDcsIFQ4IHQ4LCBUOSB0OSwgVDEwIHQxMCwgVDExIHQxMSkKKyAgICAgICAgOiBB
cmd1bWVudHMxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KHQxLCB0
MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCkKKyAgICAgICAgLCBhcmd1bWVudDEx
KHQxMSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgQXJndW1lbnRzMTA8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPjo6ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoYXJndW1lbnQxMSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzMTEmIHJlc3VsdCkKKyAgICB7Cisg
ICAgICAgIGlmICghQXJndW1lbnRzMTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwPjo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQxMSk7
CisgICAgfQorCisgICAgVDExIGFyZ3VtZW50MTE7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsIHR5cGVuYW1lIFQxMT4gQXJndW1lbnRzMTE8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNv
bnN0IFQzJiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2JiwgY29uc3QgVDcmLCBjb25z
dCBUOCYsIGNvbnN0IFQ5JiwgY29uc3QgVDEwJiwgY29uc3QgVDExJj4gSW4oY29uc3QgVDEmIHQx
LCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzICZ0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUs
IGNvbnN0IFQ2JiB0NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSwg
Y29uc3QgVDEwJiB0MTAsIGNvbnN0IFQxMSYgdDExKQoreworICAgIHJldHVybiBBcmd1bWVudHMx
MTxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBjb25zdCBUNCYsIGNvbnN0IFQ1Jiwg
Y29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4JiwgY29uc3QgVDkmLCBjb25zdCBUMTAmLCBj
b25zdCBUMTEmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTAsIHQxMSk7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExPiBBcmd1bWVudHMx
MTxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBUMTAmLCBUMTEm
PiBPdXQoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0LCBUNSYgdDUsIFQ2JiB0NiwgVDcm
IHQ3LCBUOCYgdDgsIFQ5JiB0OSwgVDEwJiB0MTAsIFQxMSYgdDExKQoreworICAgIHJldHVybiBB
cmd1bWVudHMxMTxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1JiwgVDYmLCBUNyYsIFQ4JiwgVDkmLCBU
MTAmLCBUMTEmPih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTAsIHQxMSk7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTI+IHN0cnVjdCBBcmd1bWVudHMxMiA6IEFyZ3VtZW50czExPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPiB7CisgICAgdHlwZWRlZiBBcmd1bWVudHMxMjx0eXBl
bmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQxPjo6
VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6
OlJlbW92ZVJlZmVyZW5jZTxUMj46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdURjo6UmVt
b3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDM+OjpUeXBlPjo6VHlwZSwK
KyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVtb3ZlUmVmZXJl
bmNlPFQ0Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBl
bmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUNT46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1l
IFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDY+OjpUeXBl
Pjo6VHlwZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1lIFdURjo6UmVt
b3ZlUmVmZXJlbmNlPFQ3Pjo6VHlwZT46OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVD
b25zdDx0eXBlbmFtZSBXVEY6OlJlbW92ZVJlZmVyZW5jZTxUOD46OlR5cGU+OjpUeXBlLAorICAg
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8
VDk+OjpUeXBlPjo6VHlwZSwKKyAgICB0eXBlbmFtZSBXVEY6OlJlbW92ZUNvbnN0PHR5cGVuYW1l
IFdURjo6UmVtb3ZlUmVmZXJlbmNlPFQxMD46OlR5cGU+OjpUeXBlLAorICAgIHR5cGVuYW1lIFdU
Rjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVSZWZlcmVuY2U8VDExPjo6VHlwZT46
OlR5cGUsCisgICAgdHlwZW5hbWUgV1RGOjpSZW1vdmVDb25zdDx0eXBlbmFtZSBXVEY6OlJlbW92
ZVJlZmVyZW5jZTxUMTI+OjpUeXBlPjo6VHlwZT4gVmFsdWVUeXBlOworCisgICAgQXJndW1lbnRz
MTIoKSB7IH0KKworICAgIEFyZ3VtZW50czEyKFQxIHQxLCBUMiB0MiwgVDMgdDMsIFQ0IHQ0LCBU
NSB0NSwgVDYgdDYsIFQ3IHQ3LCBUOCB0OCwgVDkgdDksIFQxMCB0MTAsIFQxMSB0MTEsIFQxMiB0
MTIpCisgICAgICAgIDogQXJndW1lbnRzMTE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTE+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCwg
dDExKQorICAgICAgICAsIGFyZ3VtZW50MTIodDEyKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBB
cmd1bWVudHMxMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT46
OmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50MTIpOwor
ICAgIH0KKworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czEyJiByZXN1bHQpCisgICAgeworICAgICAgICBpZiAoIUFyZ3VtZW50czExPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPjo6ZGVjb2RlKGRlY29k
ZXIsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShyZXN1bHQuYXJndW1lbnQxMik7CisgICAgfQorCisgICAgVDEyIGFy
Z3VtZW50MTI7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyPiBBcmd1bWVudHMxMjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMm
LCBjb25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4Jiwg
Y29uc3QgVDkmLCBjb25zdCBUMTAmLCBjb25zdCBUMTEmLCBjb25zdCBUMTImPiBJbihjb25zdCBU
MSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMgJnQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1
JiB0NSwgY29uc3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcsIGNvbnN0IFQ4JiB0OCwgY29uc3QgVDkm
IHQ5LCBjb25zdCBUMTAmIHQxMCwgY29uc3QgVDExJiB0MTEsIGNvbnN0IFQxMiYgdDEyKQorewor
ICAgIHJldHVybiBBcmd1bWVudHMxMjxjb25zdCBUMSYsIGNvbnN0IFQyJiwgY29uc3QgVDMmLCBj
b25zdCBUNCYsIGNvbnN0IFQ1JiwgY29uc3QgVDYmLCBjb25zdCBUNyYsIGNvbnN0IFQ4JiwgY29u
c3QgVDkmLCBjb25zdCBUMTAmLCBjb25zdCBUMTEmLCBjb25zdCBUMTImPih0MSwgdDIsIHQzLCB0
NCwgdDUsIHQ2LCB0NywgdDgsIHQ5LCB0MTAsIHQxMSwgdDEyKTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4gQXJndW1lbnRzMTI8VDEm
LCBUMiYsIFQzJiwgVDQmLCBUNSYsIFQ2JiwgVDcmLCBUOCYsIFQ5JiwgVDEwJiwgVDExJiwgVDEy
Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LCBUNiYgdDYsIFQ3
JiB0NywgVDgmIHQ4LCBUOSYgdDksIFQxMCYgdDEwLCBUMTEmIHQxMSwgVDEyJiB0MTIpCit7Cisg
ICAgcmV0dXJuIEFyZ3VtZW50czEyPFQxJiwgVDImLCBUMyYsIFQ0JiwgVDUmLCBUNiYsIFQ3Jiwg
VDgmLCBUOSYsIFQxMCYsIFQxMSYsIFQxMiY+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0
OCwgdDksIHQxMCwgdDExLCB0MTIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCiAKICNl
bmRpZiAvLyBBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwCmluZGV4IDAxZmRmYjg5MGUyNWUzZDhkMjY2OTExY2U1ZTM2OTUw
ODEzYzI3YjcuLjY1NmNjZGY4ZmJmNTJiNjFhYTlmMWRhYWFlMjViMWM1OTFlMjFhYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMx
LDEyICszMSwyMCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbjo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0
aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK1dlYkdlb2xvY2F0aW9u
UG9zaXRpb246OldlYkdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
IGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUg
aGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQpCiB7CiAgICAgbV9kYXRh
LnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICBtX2RhdGEubGF0aXR1ZGUgPSBsYXRpdHVkZTsK
ICAgICBtX2RhdGEubG9uZ2l0dWRlID0gbG9uZ2l0dWRlOwogICAgIG1fZGF0YS5hY2N1cmFjeSA9
IGFjY3VyYWN5OworICAgIG1fZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGUgPSBwcm92aWRlc0FsdGl0
dWRlOworICAgIG1fZGF0YS5hbHRpdHVkZSA9IGFsdGl0dWRlOworICAgIG1fZGF0YS5jYW5Qcm92
aWRlQWx0aXR1ZGVBY2N1cmFjeSA9IHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBtX2Rh
dGEuYWx0aXR1ZGVBY2N1cmFjeSA9IGFsdGl0dWRlQWNjdXJhY3k7CisgICAgbV9kYXRhLmNhblBy
b3ZpZGVIZWFkaW5nID0gcHJvdmlkZXNIZWFkaW5nOworICAgIG1fZGF0YS5oZWFkaW5nID0gaGVh
ZGluZzsKKyAgICBtX2RhdGEuY2FuUHJvdmlkZVNwZWVkID0gcHJvdmlkZXNTcGVlZDsKKyAgICBt
X2RhdGEuc3BlZWQgPSBzcGVlZDsKIH0KIAogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6fldlYkdl
b2xvY2F0aW9uUG9zaXRpb24oKQpAQCAtNDUsMTIgKzUzLDEyIEBAIFdlYkdlb2xvY2F0aW9uUG9z
aXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIAogdm9pZCBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbih0aW1lc3RhbXAsIGxhdGl0
dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6
OkluKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVB
bHRpdHVkZSwgYWx0aXR1ZGUsIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFj
Y3VyYWN5LCBjYW5Qcm92aWRlSGVhZGluZywgaGVhZGluZywgY2FuUHJvdmlkZVNwZWVkLCBzcGVl
ZCkpOwogfQogCiBib29sIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGEmIGRhdGEpCiB7Ci0gICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1
ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5KSk7CisgICAgcmV0dXJuIGRlY29kZXIt
PmRlY29kZShDb3JlSVBDOjpPdXQoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1ZGUsIGRhdGEu
bG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRpdHVkZSwgZGF0YS5h
bHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0YS5hbHRpdHVkZUFj
Y3VyYWN5LCBkYXRhLmNhblByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcsIGRhdGEuY2FuUHJv
dmlkZVNwZWVkLCBkYXRhLnNwZWVkKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggNmIy
NjhmYmJlZDY5MWMyYjExNTBhNTMxN2Q5NDJhOTZkMzAxMjE4OC4uYTg3YmIwNjJkMWNiMzUzYjlk
ZGVhNGQ3OGIxOWQxNTMzYTE3MDE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00NSwxMSArNDUsMjEgQEAgcHVibGljOgogICAgICAgICBk
b3VibGUgbGF0aXR1ZGU7CiAgICAgICAgIGRvdWJsZSBsb25naXR1ZGU7CiAgICAgICAgIGRvdWJs
ZSBhY2N1cmFjeTsKKworICAgICAgICBkb3VibGUgYWx0aXR1ZGU7CisgICAgICAgIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5OworICAgICAgICBkb3VibGUgaGVhZGluZzsKKyAgICAgICAgZG91Ymxl
IHNwZWVkOworCisgICAgICAgIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlOworICAgICAgICBib29s
IGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5OworICAgICAgICBib29sIGNhblByb3ZpZGVIZWFk
aW5nOworICAgICAgICBib29sIGNhblByb3ZpZGVTcGVlZDsKICAgICB9OwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKGRvdWJsZSB0aW1lc3Rh
bXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92
aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBz
cGVlZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbih0aW1lc3RhbXAs
IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRpdHVk
ZSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRlc0hl
YWRpbmcsIGhlYWRpbmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkKSk7CiAgICAgfQogCiAgICAgdmly
dHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOwpAQCAtNTksMTAgKzY5LDIyIEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmxvbmdpdHVk
ZTsgfQogICAgIGRvdWJsZSBhY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5hY2N1cmFj
eTsgfQogCisgICAgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuY2FuUHJvdmlkZUFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFsdGl0dWRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhLmFsdGl0dWRlOyB9CisKKyAgICBib29sIGNhblByb3ZpZGVBbHRpdHVkZUFj
Y3VyYWN5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5
OyB9CisgICAgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX2RhdGEu
YWx0aXR1ZGVBY2N1cmFjeTsgfQorCisgICAgYm9vbCBjYW5Qcm92aWRlSGVhZGluZygpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YS5jYW5Qcm92aWRlSGVhZGluZzsgfQorICAgIGRvdWJsZSBoZWFkaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmhlYWRpbmc7IH0KKworICAgIGJvb2wgY2FuUHJvdmlk
ZVNwZWVkKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmNhblByb3ZpZGVTcGVlZDsgfQorICAgIGRv
dWJsZSBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zcGVlZDsgfQorCiAgICAgY29uc3Qg
RGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCiBwcml2YXRlOgotICAgIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIFdlYkdlb2xvY2F0aW9uUG9z
aXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRl
LCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ks
IGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVk
LCBkb3VibGUgc3BlZWQpOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBBUElUeXBlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggOTkxOTVjNzljZWY5Nzc4NzFlNzE2
YmRiMGQ2NDA2ZWZkODI2MjkzMi4uNWQ5NGYzZTg2MmJhMjliOWNjY2ZmOWVlNTA2MGQxNjdlYTYw
MWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9j
YXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
R2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDYgKzM4LDExIEBAIFdLVHlwZUlEIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkdldFR5cGVJRCgpCiAKIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dl
b2xvY2F0aW9uUG9zaXRpb25DcmVhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0gICAgUmVmUHRyPFdlYkdl
b2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3Jl
YXRlKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIHJldHVy
biBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYih0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5LCBmYWxzZSwgMC4sIGZhbHNlLCAwLiwgZmFsc2UsIDAuLCBmYWxzZSwg
MC4pOworfQorCitXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYgV0tHZW9sb2NhdGlvblBvc2l0aW9u
Q3JlYXRlX2IoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0
dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0
dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1Nw
ZWVkLCBkb3VibGUgc3BlZWQpCit7CisgICAgUmVmUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+
IHBvc2l0aW9uID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0
aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBw
cm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGlu
ZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3BlZWQpOwogICAgIHJldHVybiB0b0FQSShwb3Np
dGlvbi5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCA4NTE4M2ZkNjAw
MmRmMTU2ZTY1MzBjYmM1OGEzMDNhNDI5NzY1OTI0Li40NzI3ZTk3NjMzODhiMWZjODJkY2IxMzcw
MjNhZGMxNDBkOTNlNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0zNSw2ICszNSw3IEBAIGV4dGVybiAi
QyIgewogV0tfRVhQT1JUIFdLVHlwZUlEIFdLR2VvbG9jYXRpb25Qb3NpdGlvbkdldFR5cGVJRCgp
OwogCiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9jYXRpb25Qb3Np
dGlvbkNyZWF0ZShkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25n
aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CitXS19FWFBPUlQgV0tHZW9sb2NhdGlvblBvc2l0aW9u
UmVmIFdLR2VvbG9jYXRpb25Qb3NpdGlvbkNyZWF0ZV9iKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91Ymxl
IGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKTsKIAogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggZjA3YzQwNjBk
Y2Y2ODA3OTM3OGVkZjM5MzRkMmY2OTIzZjA5ZmJhYi4uMDM1ZWIxNzQyMTBmNDEwMTc1YjVkNGQw
NjU5ZThjZTg2Mjg4N2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNzQs
NyArNzQsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2Uo
V2ViUGFnZSogcGFnZSkKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQogewogI2lmIEVO
QUJMRShHRU9MT0NBVElPTikKLSAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gcG9zaXRp
b24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0
aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5KTsKKyAgICBSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4gcG9zaXRpb24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoZGF0
YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5
LCBkYXRhLmNhblByb3ZpZGVBbHRpdHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5jYW5Qcm92aWRl
QWx0aXR1ZGVBY2N1cmFjeSwgZGF0YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVI
ZWFkaW5nLCBkYXRhLmhlYWRpbmcsIGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRhLnNwZWVkKTsK
IAogICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZT4gPiB3ZWJQYWdlQ29weTsKICAgICBjb3B5VG9W
ZWN0b3IobV9wYWdlU2V0LCB3ZWJQYWdlQ29weSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2RhOWRkZDZlYzI5YzVhMDA4ZTc2YTQ3NDhmZTgy
ZjZiNjU0NmQ5My4uODM4YzE4YTVlYmY1ZDQ3OTgxMTIzNDIzZmZhZmJjMDQ4Yzk2NDk1MCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUzIEBACisyMDEyLTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIFN1cHBvcnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Q
b3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTgyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHBhbmQgV2ViS2l0VGVzdFJ1bm5lciBhbmQgRHVtcFJlbmRlclRyZWUgdG8gdGVzdCBhbGwgdGhl
IGF0dHJpYnV0ZXMKKyAgICAgICAgb2YgR2VvbG9jYXRpb25Qb3NpdGlvbi4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25DYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gv
VGVzdFJ1bm5lcld4LmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlk
ZXJNb2NrLmNwcDoKKyAgICAgICAgKFdUUjo6R2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBv
c2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJN
b2NrLmg6CisgICAgICAgIChHZW9sb2NhdGlvblByb3ZpZGVyTW9jayk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1
bm5lci5wbToKKyAgICAgICAgKF9wbGF0Zm9ybVR5cGVWYXJpYWJsZURlY2xhcmF0aW9uKToKKyAg
ICAgICAgVXNlIGEgcHJvcGVyIGNvbnN0cnVjdG9yIGZvciB0aGUgSlNWYWx1ZVJlZiwgaXQgaXMg
YW4gb3BhcXVlIHR5cGUsIHdlIGFyZSBub3Qgc3VwcG9zZWQKKyAgICAgICAgdG8gYnVpbGQgdGhl
IHBvaW50ZXIgb3V0c2VsZi4KKyAgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBv
cHRpb25hbCBKU1ZhbHVlUmVmIHByb3Blcmx5LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6Cisg
ICAgICAgIChJbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoVGVzdENvbnRyb2xsZXIp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUpOgorCiAyMDEyLTEwLTAxICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8u
ZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbHkgb24gdGhlIGdlbmVyYWwg
aW1wbGVtZW50YXRpb24gZm9yIGRldGVjdGluZyB0aGUgQXBhY2hlIHNlcnZlciBwYXRoLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCA5ZjdhN2MxYmVjYTBhYmE4NDM2OWU5N2Zl
ZTkxZWVjMmRjMjZjZDU3Li4xMmExOTRkM2U0NGY5MDBmOTY0YjdlMWUyNWY2YTY1ZDIwNmRlYzYy
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtMTA4NywxMCArMTA4Nyw0MCBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iagogICAgIGlmIChhcmd1bWVudENvdW50IDwgMykKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCisgICAgZG91Ymxl
IGxhdGl0dWRlID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgMCk7Cisg
ICAgZG91YmxlIGxvbmdpdHVkZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNb
MV0sIDApOworICAgIGRvdWJsZSBhY2N1cmFjeSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMl0sIDApOworCisgICAgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUgPSBmYWxzZTsK
KyAgICBkb3VibGUgYWx0aXR1ZGUgPSAwLjsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA+IDMgJiYg
IUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBhcmd1bWVudHNbM10pKSB7CisgICAgICAgIGNh
blByb3ZpZGVBbHRpdHVkZSA9IHRydWU7CisgICAgICAgIGFsdGl0dWRlID0gSlNWYWx1ZVRvTnVt
YmVyKGNvbnRleHQsIGFyZ3VtZW50c1szXSwgMCk7CisgICAgfQorCisgICAgYm9vbCBjYW5Qcm92
aWRlQWx0aXR1ZGVBY2N1cmFjeSA9IGZhbHNlOworICAgIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5
ID0gMC47CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPiA0ICYmICFKU1ZhbHVlSXNVbmRlZmluZWQo
Y29udGV4dCwgYXJndW1lbnRzWzRdKSkgeworICAgICAgICBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1
cmFjeSA9IHRydWU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJndW1lbnRzWzRdLCAwKTsKKyAgICB9CisKKyAgICBib29sIGNhblByb3ZpZGVI
ZWFkaW5nID0gZmFsc2U7CisgICAgZG91YmxlIGhlYWRpbmcgPSAwLjsKKyAgICBpZiAoYXJndW1l
bnRDb3VudCA+IDUgJiYgIUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBhcmd1bWVudHNbNV0p
KSB7CisgICAgICAgIGNhblByb3ZpZGVIZWFkaW5nID0gdHJ1ZTsKKyAgICAgICAgaGVhZGluZyA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNV0sIDApOworICAgIH0KKworICAg
IGJvb2wgY2FuUHJvdmlkZVNwZWVkID0gZmFsc2U7CisgICAgZG91YmxlIHNwZWVkID0gMC47Cisg
ICAgaWYgKGFyZ3VtZW50Q291bnQgPiA2ICYmICFKU1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwg
YXJndW1lbnRzWzZdKSkgeworICAgICAgICBjYW5Qcm92aWRlU3BlZWQgPSB0cnVlOworICAgICAg
ICBzcGVlZCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNl0sIDApOworICAg
IH0KKwogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSByZWludGVycHJldF9jYXN0PFRlc3RS
dW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXIt
PnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbMF0sIE5VTEwpLCAgLy8gbGF0aXR1ZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBO
VUxMKSwgIC8vIGxvbmdpdHVkZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMl0sIE5VTEwpKTsgIC8v
IGFjY3VyYWN5CisgICAgY29udHJvbGxlci0+c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0
aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVBbHRpdHVkZSwgYWx0aXR1ZGUs
IGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBjYW5Qcm92aWRl
SGVhZGluZywgaGVhZGluZywgY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCk7CiAKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmgKaW5kZXggZWRkMGRmZGE3NWI2MzE5NmFhOWMwMmJkMWJiZDdkYjFhNDQ1YjQyMC4uNzQ1Yzk2
OTA0ZDI4YmFkZmY0YjBhMjg2ZGQ3NjJhNzA2MDA3OTQ1MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNb2NrRGV2aWNlT3JpZW50
YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRl
QmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpOwot
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KEpTU3RyaW5nUmVmIG1lc3NhZ2UpOwogICAgIHZvaWQgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KEpTU3RyaW5nUmVmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVmIGxhbmd1
YWdlKTsKICAgICB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dER1bXBSZWN0KGJvb2wgZmxhZyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggY2ZiMzMwMjQ5
YjFjNmI1MzZkYjZhZmQ4MTJiMTI2NzhmNTBjZmNmNS4uOGZjOTI2YWViYzE4ZTQ5MzMwMzkzYjQw
ZGViYTdlNTg3MzdhNTJmNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rl
c3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVy
RWZsLmNwcApAQCAtMzcyLDcgKzM3Miw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uKGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3ViCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihkb3VibGUsIGRvdWJsZSwgZG91YmxlKQordm9pZCBUZXN0UnVubmVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBib29sLCBkb3Vi
bGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUpCiB7CiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgogICAgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggMWRjODE5OTM4NWVlY2Fh
MjU1MTFmMzdkOTEzNzdkYzI5YzgxM2ZhMS4uNmM5ZTExZmM4ZmRjNGE1YWRkN2M2ZTQwYTk4NDE2
MjM1NzNhNjJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5u
ZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvCiAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDMzNS4KIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3ksIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3Vi
bGUsIGJvb2wsIGRvdWJsZSkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKGdfc2xpc3RfbnRoX2RhdGEod2ViVmlld0xpc3QsIDApKTsKICAgICBpZiAoIXZpZXcp
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDFhMGEwNGRj
NzU2M2E1ZjJiOGNiMzU4MGYxNzc1MTNlMjVlZTgwY2YuLjgxYTE2NjVmODk4YzQ4ODQ0YWVjZTg1
ZjAyNDkwODY5OTc4MGY4OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9U
ZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1JldGFp
blB0ci5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KICNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9j
YXRpb25Qb3NpdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTURvY3VtZW50Lmg+CiAjaW1wb3J0
IDxXZWJLaXQvRE9NRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkFwcGxpY2F0aW9uQ2Fj
aGUuaD4KQEAgLTEwOCw2ICsxMDksMTAgQEAKIAogQGVuZAogCitAaW50ZXJmYWNlIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24gKEludGVybmFsKQorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0
aW9uOihQYXNzUmVmUHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+KWNvcmVHZW9sb2Nh
dGlvblBvc2l0aW9uOworQGVuZAorCiBUZXN0UnVubmVyOjp+VGVzdFJ1bm5lcigpCiB7CiB9CkBA
IC00NzIsOSArNDc3LDE2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0
aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvCiAgICAgW29yaWVudGF0
aW9uIHJlbGVhc2VdOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5
KQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0
aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0Fs
dGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBk
b3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFk
aW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkKIHsKLSAgICBXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uICpwb3NpdGlvbiA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10g
aW5pdFdpdGhUaW1lc3RhbXA6Y3VycmVudFRpbWUoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1
ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3VyYWN5XTsKKyAgICBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uICpwb3NpdGlvbiA9IG5pbDsKKyAgICBpZiAoIXByb3ZpZGVzQWx0aXR1ZGUgJiYgIXByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSAmJiAhcHJvdmlkZXNIZWFkaW5nICYmICFwcm92aWRlc1NwZWVk
KSB7CisgICAgICAgIC8vIFRlc3QgdGhlIGV4cG9zZWQgQVBJLgorICAgICAgICBwb3NpdGlvbiA9
IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10gaW5pdFdpdGhUaW1lc3RhbXA6Y3VycmVu
dFRpbWUoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFj
Y3VyYWN5XTsKKyAgICB9IGVsc2UgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY29yZUdlb2xvY2F0aW9uUG9zaXRpb24gPSBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNj
dXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywgcHJvdmlkZXNT
cGVlZCwgc3BlZWQpOworICAgICAgICBwb3NpdGlvbiA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biBhbGxvY10gaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihjb3JlR2VvbG9jYXRpb25Qb3Np
dGlvbi5yZWxlYXNlKCkpXTsKKyAgICB9CiAgICAgW1tNb2NrR2VvbG9jYXRpb25Qcm92aWRlciBz
aGFyZWRdIHNldFBvc2l0aW9uOnBvc2l0aW9uXTsKICAgICBbcG9zaXRpb24gcmVsZWFzZV07CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggYzQ0MDBm
ZGNiMWViYmVmNGY3N2JjODA0MGNlMTZhMmI2M2VmMzc0MC4uOTNlNjM3ZDA2MzAzNjliNWVkMDJk
MWVlYTc2ZTMwNDk2NGU3OWY4YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcApAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Rl
dmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvCiAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDMzNS4K
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUg
bG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91Ymxl
IGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRl
QWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92
aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Ig
R2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1
bm5lcld4LmNwcAppbmRleCBlNzgwY2ZlNTJiM2IwMTY5NGU2MmM3N2IzOGRmOWQwZTBiMTA5YmFh
Li44NzRhYTY3OTVmNmQwYTQwZjYzNGQ1MDVmYWFmZTU0NzkzMjYxODE0IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwg
ZG91YmxlIGFscGhhLCBibwogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzAzMzUuCiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3kpCit2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91Ymxl
IGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKQogewogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcAppbmRleCA1
ODc3YzY1ZjY5NTRhNDkwZTZiYzI2YTBmMzEzOWE4N2U1ZjlkYjg3Li4xNTI0MDA4ZWM4NmJlMDUw
ZTk1MDQ1OGFhYWU0MjNmZmU3ZTVmNDViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcApAQCAtNTgsOSArNTgsOSBAQCBHZW9sb2Nh
dGlvblByb3ZpZGVyTW9jazo6R2VvbG9jYXRpb25Qcm92aWRlck1vY2soV0tDb250ZXh0UmVmIGNv
bnRleHQpCiAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihtX2dlb2xvY2F0aW9u
TWFuYWdlciwgJnByb3ZpZGVyQ2FsbGJhY2spOwogfQogCi12b2lkIEdlb2xvY2F0aW9uUHJvdmlk
ZXJNb2NrOjpzZXRQb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSkKK3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBvc2l0aW9u
KGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29s
IHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRl
QWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywg
ZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAg
IG1fcG9zaXRpb24uYWRvcHQoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlKGN1cnJlbnRUaW1l
KCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgbV9wb3NpdGlvbi5hZG9w
dChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwg
bG9uZ2l0dWRlLCBhY2N1cmFjeSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFk
aW5nLCBwcm92aWRlc1NwZWVkLCBzcGVlZCkpOwogICAgIHNlbmRQb3NpdGlvbklmTmVlZGVkKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92
aWRlck1vY2suaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1v
Y2suaAppbmRleCA0YTA2ZjA4ZjliMjc2ZmZlOGY3NTliYjUzYWRkOTkzOWY5ZmMwZGQwLi4xZWJm
NjdkMWJmOWQ4OGE4NWYxYzJjZGVhYzNhODQzNDJhZmNkMDFjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oCkBAIC0zNCw3ICszNCw3IEBA
IGNsYXNzIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrIHsKIHB1YmxpYzoKICAgICBHZW9sb2NhdGlv
blByb3ZpZGVyTW9jayhXS0NvbnRleHRSZWYpOwogCi0gICAgdm9pZCBzZXRQb3NpdGlvbihkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CisgICAgdm9p
ZCBzZXRQb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92
aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBz
cGVlZCk7CiAgICAgdm9pZCBzZXRQb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoV0tTdHJpbmdSZWYg
ZXJyb3JNZXNzYWdlKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXS0dlb2xvY2F0aW9uTWFu
YWdlclJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVubmVyLnBtIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5w
bQppbmRleCBmMmRhNjQwMzZmOThkZmNlNWI1MDdlODMxMDlmOWQzOTM0NDFlYTNkLi40NDI5Mjgz
ZThiOTc1Y2I5YjA1YmEyYmU5Mjg4YzIzMzFiZjc0OWVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVu
bmVyLnBtCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQ29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG0KQEAgLTQ2NSw3ICs0NjUsMTEgQEAgc3ViIF9w
bGF0Zm9ybVR5cGVWYXJpYWJsZURlY2xhcmF0aW9uCiAgICAgKTsKIAogICAgIG15ICRudWxsVmFs
dWUgPSAiMCI7Ci0gICAgJG51bGxWYWx1ZSA9ICIkcGxhdGZvcm1UeXBlKCkiIGlmIGRlZmluZWQg
JG5vblBvaW50ZXJUeXBlc3skcGxhdGZvcm1UeXBlfSAmJiAkcGxhdGZvcm1UeXBlIG5lICJkb3Vi
bGUiOworICAgIGlmICgkcGxhdGZvcm1UeXBlIGVxICJKU1ZhbHVlUmVmIikgeworICAgICAgICAk
bnVsbFZhbHVlID0gIkpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpIjsKKyAgICB9IGVsc2lm
IChkZWZpbmVkICRub25Qb2ludGVyVHlwZXN7JHBsYXRmb3JtVHlwZX0gJiYgJHBsYXRmb3JtVHlw
ZSBuZSAiZG91YmxlIikgeworICAgICAgICAkbnVsbFZhbHVlID0gIiRwbGF0Zm9ybVR5cGUoKSI7
CisgICAgfQogCiAgICAgJHBsYXRmb3JtVHlwZSAuPSAiKiIgdW5sZXNzIGRlZmluZWQgJG5vblBv
aW50ZXJUeXBlc3skcGxhdGZvcm1UeXBlfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5k
ZXggNmVmZDc4ZTMyMmNjYjBiYWYxNGI5MDlmNDc0NGVhODBiZWNhNjYyZi4uZWQ5ZDk3NTljYjAy
MDk0NDRiMmY4NzdkYjk3MDMwNzRiYzBjNzRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CkBAIC0xODAsNyArMTgwLDcgQEAgbW9kdWxlIFdUUiB7CiAKICAgICAgICAgLy8gR2VvbG9jYXRp
b24KICAgICAgICAgdm9pZCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oaW4gYm9vbGVhbiB2YWx1
ZSk7Ci0gICAgICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oaW4gZG91YmxlIGxh
dGl0dWRlLCBpbiBkb3VibGUgbG9uZ2l0dWRlLCBpbiBkb3VibGUgYWNjdXJhY3kpOworICAgICAg
ICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGluIGRvdWJsZSBsYXRpdHVkZSwgaW4g
ZG91YmxlIGxvbmdpdHVkZSwgaW4gZG91YmxlIGFjY3VyYWN5LCBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBvYmplY3QgYWx0aXR1ZGUsIGluIFtPcHRpb25hbF0gb2JqZWN0IGFsdGl0
dWRlQWNjdXJhY3ksIGluIFtPcHRpb25hbF0gb2JqZWN0IGhlYWRpbmcsIGluIFtPcHRpb25hbF0g
b2JqZWN0IHNwZWVkKTsKICAgICAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVu
YXZhaWxhYmxlRXJyb3IoaW4gRE9NU3RyaW5nIGVycm9yTWVzc2FnZSk7CiAKICAgICAgICAgYm9v
bGVhbiBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMTM3
NjVjMGZmMGFjNDUyMDcxYzI0YmZkNjZkNjk3YzljYzMyMTViNy4uMDIzNWM0YTdjN2MzZDdkMWZh
MWE0MjlkYTYxZWE0Y2Q2N2MzY2VmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTM2NSw3ICszNjUs
NyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBl
bmFibGVkKQogICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1lc3NhZ2VOYW1lLmdl
dCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwg
ZG91YmxlIGFjY3VyYWN5KQordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNI
ZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQp
CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIp
KTsKIApAQCAtMzgzLDYgKzM4MywzOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZAogICAgIFdL
UmV0YWluUHRyPFdLRG91YmxlUmVmPiBhY2N1cmFjeVdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KGFjY3VyYWN5KSk7CiAgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwg
YWNjdXJhY3lLZXlXSy5nZXQoKSwgYWNjdXJhY3lXSy5nZXQoKSk7CiAKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNBbHRpdHVkZUtleVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJwcm92aWRlc0FsdGl0dWRlIikpOworICAgIFdLUmV0YWluUHRy
PFdLQm9vbGVhblJlZj4gcHJvdmlkZXNBbHRpdHVkZVdLKEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0
ZShwcm92aWRlc0FsdGl0dWRlKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9k
eS5nZXQoKSwgcHJvdmlkZXNBbHRpdHVkZUtleVdLLmdldCgpLCBwcm92aWRlc0FsdGl0dWRlV0su
Z2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFsdGl0dWRlS2V5V0soQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFsdGl0dWRlIikpOworICAgIFdL
UmV0YWluUHRyPFdLRG91YmxlUmVmPiBhbHRpdHVkZVdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KGFsdGl0dWRlKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwg
YWx0aXR1ZGVLZXlXSy5nZXQoKSwgYWx0aXR1ZGVXSy5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5S2V5V0soQWRvcHRXSywgV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeVdL
KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kpKTsKKyAg
ICBXS0RpY3Rpb25hcnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBwcm92aWRlc0FsdGl0dWRl
QWNjdXJhY3lLZXlXSy5nZXQoKSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5V0suZ2V0KCkpOwor
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFsdGl0dWRlQWNjdXJhY3lLZXlXSyhBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWx0aXR1ZGVBY2N1cmFjeSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gYWx0aXR1ZGVBY2N1cmFjeVdLKEFkb3B0V0ss
IFdLRG91YmxlQ3JlYXRlKGFsdGl0dWRlQWNjdXJhY3kpKTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJ
dGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBhbHRpdHVkZUFjY3VyYWN5S2V5V0suZ2V0KCksIGFsdGl0
dWRlQWNjdXJhY3lXSy5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcHJv
dmlkZXNIZWFkaW5nS2V5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
InByb3ZpZGVzSGVhZGluZyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHByb3Zp
ZGVzSGVhZGluZ1dLKEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShwcm92aWRlc0hlYWRpbmcpKTsK
KyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBwcm92aWRlc0hlYWRp
bmdLZXlXSy5nZXQoKSwgcHJvdmlkZXNIZWFkaW5nV0suZ2V0KCkpOworCisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGhlYWRpbmdLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiaGVhZGluZyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gaGVh
ZGluZ1dLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKGhlYWRpbmcpKTsKKyAgICBXS0RpY3Rpb25h
cnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBoZWFkaW5nS2V5V0suZ2V0KCksIGhlYWRpbmdX
Sy5nZXQoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNTcGVlZEtl
eVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJwcm92aWRlc1NwZWVk
IikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gcHJvdmlkZXNTcGVlZFdLKEFkb3B0
V0ssIFdLQm9vbGVhbkNyZWF0ZShwcm92aWRlc1NwZWVkKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRk
SXRlbShtZXNzYWdlQm9keS5nZXQoKSwgcHJvdmlkZXNTcGVlZEtleVdLLmdldCgpLCBwcm92aWRl
c1NwZWVkV0suZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNwZWVkS2V5
V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInNwZWVkIikpOworICAg
IFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiBzcGVlZFdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRl
KHNwZWVkKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwgc3Bl
ZWRLZXlXSy5nZXQoKSwgc3BlZWRXSy5nZXQoKSk7CisKICAgICBXS0J1bmRsZVBvc3RNZXNzYWdl
KG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmgKaW5kZXggZTI5NjE0MmMxNGQ5YjM5OWJmMzU1Y2RiNjM0YjI0N2FlNjcxNjMyMi4u
NDRiYmNjMTM0YTczMjFmYzcxMDg2NjRlNGEwMGFlNmMzZDUwMDU3NiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApA
QCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW9sb2NhdGlvbi4KICAgICB2b2lk
IHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sKTsKLSAgICB2b2lkIHNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFj
Y3VyYWN5KTsKKyAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0
aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRv
dWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRp
bmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXS1N0cmluZ1JlZiBlcnJvck1lc3Nh
Z2UpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYzJmZDM0MmUxNjVmNDJhZjk2NzE5MWZjNzY2
NGY4ZTA4ZjViMTY4NS4uZGMyZjJlMjdkNDg4ODZmMGZhMmVkZTkyZjc0NzkwMDI5YWI0NDRmOSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC03ODAsOSArNzgwLDQwIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGVuYWJsZWQpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSwgSlNWYWx1ZVJlZiBqc0FsdGl0dWRlLCBKU1ZhbHVlUmVmIGpzQWx0aXR1ZGVBY2N1
cmFjeSwgSlNWYWx1ZVJlZiBqc0hlYWRpbmcsIEpTVmFsdWVSZWYganNTcGVlZCkKIHsKLSAgICBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOworICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1l
ID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdl
KCktPnBhZ2UoKSk7CisgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0
SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKKworICAgIGJvb2wgcHJvdmlkZXNBbHRpdHVk
ZSA9IGZhbHNlOworICAgIGRvdWJsZSBhbHRpdHVkZSA9IDAuOworICAgIGlmICghSlNWYWx1ZUlz
VW5kZWZpbmVkKGNvbnRleHQsIGpzQWx0aXR1ZGUpKSB7CisgICAgICAgIHByb3ZpZGVzQWx0aXR1
ZGUgPSB0cnVlOworICAgICAgICBhbHRpdHVkZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBq
c0FsdGl0dWRlLCAwKTsKKyAgICB9CisKKyAgICBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSA9IGZhbHNlOworICAgIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5ID0gMC47CisgICAgaWYgKCFK
U1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwganNBbHRpdHVkZUFjY3VyYWN5KSkgeworICAgICAg
ICBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kgPSB0cnVlOworICAgICAgICBhbHRpdHVkZUFjY3Vy
YWN5ID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGpzQWx0aXR1ZGVBY2N1cmFjeSwgMCk7Cisg
ICAgfQorCisgICAgYm9vbCBwcm92aWRlc0hlYWRpbmcgPSBmYWxzZTsKKyAgICBkb3VibGUgaGVh
ZGluZyA9IDAuOworICAgIGlmICghSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIGpzSGVhZGlu
ZykpIHsKKyAgICAgICAgcHJvdmlkZXNIZWFkaW5nID0gdHJ1ZTsKKyAgICAgICAgaGVhZGluZyA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBqc0hlYWRpbmcsIDApOworICAgIH0KKworICAgIGJv
b2wgcHJvdmlkZXNTcGVlZCA9IGZhbHNlOworICAgIGRvdWJsZSBzcGVlZCA9IDAuOworICAgIGlm
ICghSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIGpzU3BlZWQpKSB7CisgICAgICAgIHByb3Zp
ZGVzU3BlZWQgPSB0cnVlOworICAgICAgICBzcGVlZCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0
LCBqc1NwZWVkLCAwKTsKKyAgICB9CisKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIHBy
b3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0
dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3Bl
ZWQpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5h
dmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA4NDU4OTQzZmNhODk0
NTEzYmRlYjFiZGYyMjU3NGRhMTc1Mjc2ZDdkLi4wZDVlMzYwYmVlZTY2OWI3NzBlZmNkY2ZmOTY2
NDUyOTc3MTA2YWVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjUxLDcgKzI1MSw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IEdlb2xvY2F0aW9uLgogICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wpOwot
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIEpTVmFsdWVSZWYgYWx0aXR1ZGUsIEpTVmFsdWVSZWYgYWx0aXR1ZGVBY2N1cmFjeSwg
SlNWYWx1ZVJlZiBoZWFkaW5nLCBKU1ZhbHVlUmVmIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKTsK
IAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzNkOTEzZmRiNzU1Y2QyMGM1
MTI4NjljYWJjYzE0ZGExYzM3NDViZi4uMjc2NDUwMTViN2Q2MWVlNjEwMjM2MWY2ODM3YjJkZWZl
ZWJhNDExOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTEwMTEsOSArMTAxMSw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVy
bWlzc2lvbihib29sIGVuYWJsZWQpCiAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdElmUG9zc2libGUoKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3kpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1
cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlk
ZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRl
c0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVl
ZCkKIHsKLSAgICBtX2dlb2xvY2F0aW9uUHJvdmlkZXItPnNldFBvc2l0aW9uKGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5KTsKKyAgICBtX2dlb2xvY2F0aW9uUHJvdmlkZXItPnNldFBvc2l0
aW9uKGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRp
dHVkZSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRl
c0hlYWRpbmcsIGhlYWRpbmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkKTsKIH0KIAogdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKFdL
U3RyaW5nUmVmIGVycm9yTWVzc2FnZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCBmNzg4ODkyM2JkMWZlODQxMmFlOWUxOWRhYWU3ZjE1M2MxYzExNTliLi43MmYx
ZGQyMjhjNzEzMWRjNTA4MmY4NDVjMDBhNTY1NzM4ZTQxZGQwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IEdlb2xvY2F0aW9uLgogICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wpOwot
ICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KFdLU3RyaW5nUmVmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBoYW5kbGVHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggOWNhNzVhZWY3OTNi
NTA2YmM1NTNhMjk5ZjEyYjg3MDIwYmZmODQxYy4uMTRiYTRkMzBhOWQ2N2IwZTBhMmZmMWMxNTJk
M2I1OWNmNjNiNDc3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKQEAgLTM3MSw3ICszNzEsMzkgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAg
V0tEb3VibGVSZWYgYWNjdXJhY3lXSyA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rp
b25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYWNjdXJhY3lLZXlXSy5n
ZXQoKSkpOwogICAgICAgICBkb3VibGUgYWNjdXJhY3kgPSBXS0RvdWJsZUdldFZhbHVlKGFjY3Vy
YWN5V0spOwogCi0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5zZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSk7CisgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwcm92aWRlc0FsdGl0dWRlS2V5V0soQWRvcHRXSywgV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInByb3ZpZGVzQWx0aXR1ZGUiKSk7CisgICAgICAg
IFdLQm9vbGVhblJlZiBwcm92aWRlc0FsdGl0dWRlV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwcm92
aWRlc0FsdGl0dWRlS2V5V0suZ2V0KCkpKTsKKyAgICAgICAgYm9vbCBwcm92aWRlc0FsdGl0dWRl
ID0gV0tCb29sZWFuR2V0VmFsdWUocHJvdmlkZXNBbHRpdHVkZVdLKTsKKworICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gYWx0aXR1ZGVLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiYWx0aXR1ZGUiKSk7CisgICAgICAgIFdLRG91YmxlUmVmIGFsdGl0
dWRlV0sgPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIGFsdGl0dWRlS2V5V0suZ2V0KCkpKTsKKyAgICAgICAg
ZG91YmxlIGFsdGl0dWRlID0gV0tEb3VibGVHZXRWYWx1ZShhbHRpdHVkZVdLKTsKKworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5S2V5V0so
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInByb3ZpZGVzQWx0aXR1ZGVB
Y2N1cmFjeSIpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eVdLID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5S2V5V0suZ2V0
KCkpKTsKKyAgICAgICAgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kgPSBXS0Jvb2xlYW5H
ZXRWYWx1ZShwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3lXSyk7CisKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGFsdGl0dWRlQWNjdXJhY3lLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWx0aXR1ZGVBY2N1cmFjeSIpKTsKKyAgICAgICAgV0tEb3Vi
bGVSZWYgYWx0aXR1ZGVBY2N1cmFjeVdLID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGlj
dGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBhbHRpdHVkZUFjY3Vy
YWN5S2V5V0suZ2V0KCkpKTsKKyAgICAgICAgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3kgPSBXS0Rv
dWJsZUdldFZhbHVlKGFsdGl0dWRlQWNjdXJhY3lXSyk7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHByb3ZpZGVzSGVhZGluZ0tleVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJwcm92aWRlc0hlYWRpbmciKSk7CisgICAgICAgIFdLQm9vbGVhblJl
ZiBwcm92aWRlc0hlYWRpbmdXSyA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9u
YXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHByb3ZpZGVzSGVhZGluZ0tl
eVdLLmdldCgpKSk7CisgICAgICAgIGJvb2wgcHJvdmlkZXNIZWFkaW5nID0gV0tCb29sZWFuR2V0
VmFsdWUocHJvdmlkZXNIZWFkaW5nV0spOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBoZWFkaW5nS2V5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
ImhlYWRpbmciKSk7CisgICAgICAgIFdLRG91YmxlUmVmIGhlYWRpbmdXSyA9IHN0YXRpY19jYXN0
PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSwgaGVhZGluZ0tleVdLLmdldCgpKSk7CisgICAgICAgIGRvdWJsZSBoZWFkaW5nID0gV0tE
b3VibGVHZXRWYWx1ZShoZWFkaW5nV0spOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBwcm92aWRlc1NwZWVkS2V5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoInByb3ZpZGVzU3BlZWQiKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBwcm92aWRlc1Nw
ZWVkV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JL
ZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwcm92aWRlc1NwZWVkS2V5V0suZ2V0KCkpKTsKKyAg
ICAgICAgYm9vbCBwcm92aWRlc1NwZWVkID0gV0tCb29sZWFuR2V0VmFsdWUocHJvdmlkZXNTcGVl
ZFdLKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3BlZWRLZXlXSyhBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygic3BlZWQiKSk7CisgICAgICAgIFdL
RG91YmxlUmVmIHNwZWVkV0sgPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHNwZWVkS2V5V0suZ2V0KCkpKTsK
KyAgICAgICAgZG91YmxlIHNwZWVkID0gV0tEb3VibGVHZXRWYWx1ZShzcGVlZFdLKTsKKworICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
bGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRl
LCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVh
ZGluZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3BlZWQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTNiOWQwZjFkNTA1YjM2MGZhZmYzNzAxYTJhZTU0ZTk1YTFkZDA0OC4u
MjVkMjZkOTY1ZDU2MTI3N2M2MWFhYTdjYTRkZjMzYmVmYjcxNGMzNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEyLTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIFN1cHBvcnQgYWxsIGF0dHJpYnV0ZXMgb2YgR2VvbG9jYXRpb25Q
b3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTgyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSBuZXcgdGVzdCBmb3IgdGhlIGV4cG9zZWQgYXR0cmlidXRlcy4gSXQgaXMgZGlzYWJsZWQg
ZXZlcnl3aGVyZSBlbHNlIHRoYW4KKyAgICAgICAgTWFjIGJlY2F1c2Ugb2YgdGhlIG1pc3Npbmcg
RFJUIGZlYXR1cmVzLgorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vY29vcmRpbmF0
ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9jb29yZGluYXRlcy1pbnRlcmZhY2UtYXR0cmlidXRlcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMDEgIEFycGl0YSBCYWh1Z3VuYSAg
PGFycGl0YWJhaHVndW5hQGdtYWlsLmNvbT4KIAogICAgICAgICBSZW5kZXJCbG9jayBpbmNvcnJl
Y3RseSBjYWxjdWxhdGVzIHByZWYgd2lkdGggd2hlbiBhIHJlcGxhY2VkIG9iamVjdCBmb2xsb3dz
IGEgUmVuZGVySW5saW5lIHdpdGggd2lkdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVy
ZmFjZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDBjMTNmNjA5ODY5Y2Rk
MThiMzAxZTc0NDBmMGFhYTcwZWExMzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vY29vcmRpbmF0ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDkgQEAKK1Rlc3QgdGhlIGF0dHJpYnV0ZSBoYW5kbGluZyBv
ZiB0aGUgQ29vcmRpbmF0ZXMgaW50ZXJmYWNlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRl
c3RJbmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RT
ZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJh
Y3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGlu
YXRlcy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGds
b2JhbENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdElu
ZGV4XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3Vy
cmVudFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVz
dFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxh
dGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29v
cmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BB
U1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4
XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJl
bnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJh
Y3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGlu
YXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xv
YmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQor
CitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJ
bmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRb
Y3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kg
aXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRl
cy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2Jh
bENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4
XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVu
dFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNl
dFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0
dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRp
bmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1Mg
Z2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsx
XVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5hbHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRU
ZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2JhbENvb3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kg
aXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRl
cy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFs
Q29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQ
QVNTIGdsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlIGlzIHRlc3RTZXRbY3VycmVudFRlc3RJbmRl
eF1bMV1bMF0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRlIGlzIHRlc3RTZXRbY3Vy
cmVudFRlc3RJbmRleF1bMV1bMV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3kgaXMg
dGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsyXQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5h
bHRpdHVkZSBpcyB0ZXN0U2V0W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdCitQQVNTIGdsb2JhbENv
b3JkaW5hdGVzLmFsdGl0dWRlQWNjdXJhY3kgaXMgdGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsx
XVs0XQorUEFTUyBnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nIGlzIHRlc3RTZXRbY3VycmVudFRl
c3RJbmRleF1bMV1bNV0KK1BBU1MgZ2xvYmFsQ29vcmRpbmF0ZXMuc3BlZWQgaXMgdGVzdFNldFtj
dXJyZW50VGVzdEluZGV4XVsxXVs2XQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vY29vcmRpbmF0ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmY0MDExM2Y2NDgyM2I0ZWU1ZWFhNGU1Y2FhMDY2ZTdlZjFiYWFi
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nv
b3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhlIGF0
dHJpYnV0ZSBoYW5kbGluZyBvZiB0aGUgQ29vcmRpbmF0ZXMgaW50ZXJmYWNlIik7Cit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKy8vIEZvcm1hdDogW0lucHV0XSwgW0V4cGVjdGVkXQor
Ly8gSW5wdXQ6IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRl
LCBhbHRpdHVkZSwgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBw
cm92aWRlc0hlYWRpbmcsIGhlYWRpbmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkLgorLy8gRXhwZWN0
ZWQ6IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBhbHRpdHVkZSwgYWx0aXR1ZGVBY2N1
cmFjeSwgaGVhZGluZywgc3BlZWQuCit2YXIgdGVzdFNldCA9IFsKKyAgICBbWzEsIDIsIDNdLCBb
MSwgMiwgMywgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF1dLAorICAgIFtbMiwgMywgNCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgNV0sIFsyLCAzLCA0LCBudWxsLCBudWxsLCBudWxs
LCA1XV0sCisgICAgW1szLCA0LCA1LCB1bmRlZmluZWQsIDYsIHVuZGVmaW5lZCwgN10sIFszLCA0
LCA1LCBudWxsLCA2LCBudWxsLCA3XV0sCisgICAgW1s0LCA1LCA2LCB1bmRlZmluZWQsIDcsIDgs
IDldLCBbNCwgNSwgNiwgbnVsbCwgNywgOCwgOV1dLAorICAgIFtbNSwgNiwgNywgOCwgOSwgMTAs
IDExXSwgWzUsIDYsIDcsIDgsIDksIDEwLCAxMV1dLAorXTsKKwordmFyIGN1cnJlbnRUZXN0SW5k
ZXggPSAtMTsKK3ZhciBnbG9iYWxDb29yZGluYXRlcyA9IG51bGw7CisKK2Z1bmN0aW9uIHJ1bk5l
eHRUZXN0KCkKK3sKKyAgICArK2N1cnJlbnRUZXN0SW5kZXg7CisgICAgdGVzdFJ1bm5lci5zZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbi5hcHBseSh0ZXN0UnVubmVyLCB0ZXN0U2V0W2N1cnJlbnRU
ZXN0SW5kZXhdWzBdKTsKK30KKworZnVuY3Rpb24gdmVyaWZ5UmVzdWx0cygpCit7CisgICAgc2hv
dWxkQmUoJ2dsb2JhbENvb3JkaW5hdGVzLmxhdGl0dWRlJywgJ3Rlc3RTZXRbY3VycmVudFRlc3RJ
bmRleF1bMV1bMF0nKTsKKyAgICBzaG91bGRCZSgnZ2xvYmFsQ29vcmRpbmF0ZXMubG9uZ2l0dWRl
JywgJ3Rlc3RTZXRbY3VycmVudFRlc3RJbmRleF1bMV1bMV0nKTsKKyAgICBzaG91bGRCZSgnZ2xv
YmFsQ29vcmRpbmF0ZXMuYWNjdXJhY3knLCAndGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVsy
XScpOworICAgIHNob3VsZEJlKCdnbG9iYWxDb29yZGluYXRlcy5hbHRpdHVkZScsICd0ZXN0U2V0
W2N1cnJlbnRUZXN0SW5kZXhdWzFdWzNdJyk7CisgICAgc2hvdWxkQmUoJ2dsb2JhbENvb3JkaW5h
dGVzLmFsdGl0dWRlQWNjdXJhY3knLCAndGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs0XScp
OworICAgIHNob3VsZEJlKCdnbG9iYWxDb29yZGluYXRlcy5oZWFkaW5nJywgJ3Rlc3RTZXRbY3Vy
cmVudFRlc3RJbmRleF1bMV1bNV0nKTsKKyAgICBzaG91bGRCZSgnZ2xvYmFsQ29vcmRpbmF0ZXMu
c3BlZWQnLCAndGVzdFNldFtjdXJyZW50VGVzdEluZGV4XVsxXVs2XScpOworICAgIGRlYnVnKCcn
KTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRHZW9s
b2NhdGlvblBlcm1pc3Npb24odHJ1ZSk7Cit9IGVsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNh
biBub3QgYmUgd2l0aG91dCBUZXN0UnVubmVyLicpOworCit2YXIgd2F0Y2hJZCA9IG5hdmlnYXRv
ci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKGZ1bmN0aW9uKHBvc2l0aW9uKSB7CisgICAgZ2xv
YmFsQ29vcmRpbmF0ZXMgPSBwb3NpdGlvbi5jb29yZHM7CisgICAgdmVyaWZ5UmVzdWx0cygpOwor
CisgICAgaWYgKGN1cnJlbnRUZXN0SW5kZXggKyAxID09PSB0ZXN0U2V0Lmxlbmd0aCkgeworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBydW5OZXh0
VGVzdCgpOworfSwgZnVuY3Rpb24oZSkgeworICAgIGRlYnVnKCJFcnJvciE6IHRoZSBlcnJvciBj
YWxsYmFjayB3YXMgY2FsbGVkLiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK3J1bk5l
eHRUZXN0KCk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDNmMjA0M2E3ODY2
MjM1MDlmMTg3YWVlYTkwNGM0ZjU2ZDdmYzFiZS4uNGU2Yzg2ZWJiNTM2NTZkOTAwZmIyMDhlN2Zj
OTI5NzhlYWJhZjQ2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xOTIsNiArMTkyLDkgQEAgd2Via2l0Lm9yZy9iLzg4MTcyIGh0dHAv
dGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQuaHRtbAogd2Via2l0Lm9yZy9iLzkyOTQyIGZhc3Qv
ZG9tL1Byb3hpbWl0eQogd2Via2l0Lm9yZy9iLzkyOTQyIGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9y
cy9kZXZpY2UtcHJveGltaXR5LWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKIAorIyBNaXNzaW5nIHN1
cHBvcnQgaW4gRFJUIGZvciBHZW9sb2NhdGlvbidzIENvb3JkaW5hdGUgYXR0cmlidXRlcy4KK3dl
YmtpdC5vcmcvYi85ODIxMiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jb29yZGluYXRlcy1pbnRlcmZh
Y2UtYXR0cmlidXRlcy5odG1sIFsgRmFpbHVyZSBdCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgV09OVEZJWCBU
RVNUUwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA0ODY1MzBmZmNjZWEyYmM2ZGUwMmUwOGM0OTg2MDNmYzdmYWFjNjE5Li4yMGFmMzM5
NjhmNjY3Y2E5MmI1ZjE2ZTY3NjVhZmJhMGNlZDA3NDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM1OSw2ICsxMzU5LDkgQEAgd2Via2l0Lm9yZy9i
LzkxNDg5IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LW9ubHktc2hhZG93
Lmh0bWwgWyBJbWEKIAogd2Via2l0Lm9yZy9iLzQ5MTQyIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29w
ZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1tdWx0aXBsZS1yZWdpb25zLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBNaXNzaW5nIHN1cHBvcnQgaW4gRFJUIGZvciBHZW9s
b2NhdGlvbidzIENvb3JkaW5hdGUgYXR0cmlidXRlcy4KK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nv
b3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLmh0bWwgWyBGYWlsdXJlIF0KKwogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFRlc3RzIGZhaWxpbmcKICMvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAzYTI4YjMyYmMyYzIxMzExMTg5NDUxMGE3MTJjN2ZhODRiZDllOGFm
Li5kZjRkZmI3NzQ2MGVkNWUyOWE5ZjZmOTNiY2VjNGIwMjQ0ODBmZGU1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU0Niw2ICs1NDYsOSBAQCBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEKIGZhc3QvZG9tL1Byb3hpbWl0
eQogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL2RldmljZS1wcm94aW1pdHktZXZlbnQtY29uc3Ry
dWN0b3IuaHRtbAogCisjIE1pc3Npbmcgc3VwcG9ydCBpbiBEUlQgZm9yIEdlb2xvY2F0aW9uJ3Mg
Q29vcmRpbmF0ZSBhdHRyaWJ1dGVzLgorZmFzdC9kb20vR2VvbG9jYXRpb24vY29vcmRpbmF0ZXMt
aW50ZXJmYWNlLWF0dHJpYnV0ZXMuaHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjICAg
ICAgIERyYWcgYW5kIERyb3AgU3VwcG9ydCBpbiBEUlQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCg==
</data>
<flag name="review"
          id="179248"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>