<?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>90861</bug_id>
          
          <creation_ts>2012-07-10 02:02:42 -0700</creation_ts>
          <short_desc>Shadow DOM for &lt;canvas&gt;</short_desc>
          <delta_ts>2019-10-04 22:14:28 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82313</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Web Components Team">webcomponents-bugzilla</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>morrita</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665578</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-07-10 02:02:42 -0700</bug_when>
    <thetext>According to the spec, &lt;canvas&gt; should behave like having a Shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705102</commentid>
    <comment_count>1</comment_count>
      <attachid>160679</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-27 02:26:32 -0700</bug_when>
    <thetext>Created attachment 160679
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706126</commentid>
    <comment_count>2</comment_count>
      <attachid>160917</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-27 23:58:24 -0700</bug_when>
    <thetext>Created attachment 160917
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706138</commentid>
    <comment_count>3</comment_count>
      <attachid>160917</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 00:18:03 -0700</bug_when>
    <thetext>Comment on attachment 160917
WIP

Attachment 160917 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13663086</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706147</commentid>
    <comment_count>4</comment_count>
      <attachid>160917</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-28 00:45:09 -0700</bug_when>
    <thetext>Comment on attachment 160917
WIP

Attachment 160917 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13663093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706153</commentid>
    <comment_count>5</comment_count>
      <attachid>160917</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-28 00:54:06 -0700</bug_when>
    <thetext>Comment on attachment 160917
WIP

Attachment 160917 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13655128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706161</commentid>
    <comment_count>6</comment_count>
      <attachid>160917</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-28 01:01:33 -0700</bug_when>
    <thetext>Comment on attachment 160917
WIP

Attachment 160917 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13654121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706164</commentid>
    <comment_count>7</comment_count>
      <attachid>160926</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-28 01:06:50 -0700</bug_when>
    <thetext>Created attachment 160926
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706175</commentid>
    <comment_count>8</comment_count>
      <attachid>160926</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-28 01:42:40 -0700</bug_when>
    <thetext>Comment on attachment 160926
WIP

Attachment 160926 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13658143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707134</commentid>
    <comment_count>9</comment_count>
      <attachid>161145</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-28 23:36:56 -0700</bug_when>
    <thetext>Created attachment 161145
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708278</commentid>
    <comment_count>10</comment_count>
      <attachid>161395</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-29 21:22:17 -0700</bug_when>
    <thetext>Created attachment 161395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714776</commentid>
    <comment_count>11</comment_count>
      <attachid>161395</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-09-07 11:18:53 -0700</bug_when>
    <thetext>Comment on attachment 161395
Patch

Let&apos;s hold off on this approach until we discuss the strategy in person next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722504</commentid>
    <comment_count>12</comment_count>
      <attachid>161395</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-17 23:04:40 -0700</bug_when>
    <thetext>Comment on attachment 161395
Patch

According to https://bugs.webkit.org/show_bug.cgi?id=96978, shadow dom for &lt;canvas&gt; will be disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577137</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-04 22:14:28 -0700</bug_when>
    <thetext>Not need to have the actual shadow root for canvas.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160679</attachid>
            <date>2012-08-27 02:26:32 -0700</date>
            <delta_ts>2012-08-27 23:58:19 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-90861-20120827182624.patch</filename>
            <type>text/plain</type>
            <size>52680</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU2ZGE5YTBhMjk2YmUz
NmQ1ODU1YjRjNmMwNmUyODYwNWYzYjYwMi4uY2JjZDY0ZWIzMGExY2I1YjMwYzA4M2Y0YmVlYzIx
MjRjNjEzOGU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTA4LTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3cgRE9NIGZv
ciA8Y2FudmFzPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTA4NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgU2hhZG93IERPTSBzdXBwb3J0IGZvciBjYW52YXMgZWxlbWVudC4K
KyAgICAgICAgQWNjb3JkaW5nIHRvIHRoZSBTaGFkb3cgRE9NIHNwZWMsIGNhbnZhcyBlbGVtZW50
IHNob3VsZCB3b3JrIGFzIGlmIGl0CisgICAgICAgIGhhcyBhIHVzZXIgYWdlbnQgc2hhZG93IGRv
bS4gSG93ZXZlciwgaXQgd2lsbCBjYXVzZSBwZXJmb3JtYW5jZQorICAgICAgICByZWdyZXNzaW9u
IGFuZCBtZW1vcnkgYmxvYXQgdG8gYWRkIHN1Y2ggYSB1c2VyIGFnZW50IHNoYWRvdyBkb20gdG8K
KyAgICAgICAgY2FudmFzIGVsZW1lbnQgYnkgZGVmYXVsdC4gU28gd2Ugd291bGQgbGlrZSB0byBw
b3N0cG9uZSBhZGRpbmcgYSB1c2VyCisgICAgICAgIGFnZW50IFNoYWRvdyBET00gdW50aWwgd2Ug
bmVlZCBpdCwgaS5lLiB1c2VycyBhZGQgYW4gYXV0aG9yIHNoYWRvdyBET00KKyAgICAgICAgdG8g
Y2FudmFzIGVsZW1lbnQuIFRoZSB1c2VyIGFnZW50IFNoYWRvdyBET00gZm9yIGNhbnZhcyBlbGVt
ZW50IGhhcworICAgICAgICBvbmx5IG9uZSBlbGVtZW50LCB3aGljaCBkaXNwbGF5cyBvbmUgY2Fu
dmFzLiBUaGUgZWxlbWVudCBpcyBpbXBsZW1lbnRlZAorICAgICAgICBieSBDYW52YXNJbm5lckVs
ZW1lbnQuY3BwIGFuZCAuaC4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLWNvbnRlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRo
LW11bHRpcGxlLXNoYWRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLXdpdGgtd2lkdGgtaGVpZ2h0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpIVE1MQ2FudmFzRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6OndpbGxBZGRBdXRob3JTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDYW52YXNFbGVtZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aGFzQXV0aG9yU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6cmVuZGVyZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXJGb3JDYW52YXMpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2FudmFzRWxlbWVudCk6Cisg
ICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxDYW52
YXNFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTENhbnZhc0VsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOgorICAgICAgICAqIGh0bWwvc2hhZG93L0NhbnZh
c0lubmVyRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6OkNhbnZhc0lubmVyRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6Omhvc3RDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzSW5uZXJFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzSW5uZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9D
YW52YXNJbm5lckVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KENhbnZhc0lubmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNJbm5lckVsZW1l
bnQ6OmNhbnZhc1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0lubmVyRWxlbWVu
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2FudmFzSW5uZXJFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvQ2FudmFzSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Omhvc3RDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENhbnZh
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2Fu
dmFzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OnJlcXVpcmVzTGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoUmVuZGVySFRNTENhbnZhcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0FjY2VsZXJhdGVkQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdy
YXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JDYW52YXMpOgorCiAyMDEyLTA4LTI3ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJF
R1JFU1NJT04ocjEyNjY5NCk6IEl0IGJyb2tlIHRoZSBkZWJ1ZyBidWlsZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyYWUzNmRiNWZmMDVmZjgwMzY1M2U0OGIyZTIxODZhNzkzODAyZDVkLi40ZWMx
OGRiZTI5NDg2YzdiOTNlZjBlZTcyZjg3MzY3MjEyZWM2MjUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTQ5OCw2ICsxNDk4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvcGFy
c2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3Iu
Y3BwCiAKKyAgICBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwCiAgICAgaHRtbC9z
aGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcAogICAgIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDYwYTI0N2I5NTYyZGVhNGQ1ZDYxODlm
MzAyMDZjOWIzMDU1MGM1Yy4uMjMwNTU1MzM0ZmE0NThkOGY0MjIzMWEyZDc4NjdlNzljMDhkZWEw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNDgxLDYgKzM0ODEsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50
LmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5j
cHAgXAorICAgIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCmluZGV4IDdiZjMyMWRlNjA1Y2E3NDVmYjA1NDE0MTRmOWIwZGM2N2IwYzQ1OTUuLmU2ZTM5
YmU0ZTc2ZGQ3NTkwNjIzOTdjYjIzMDQ0YWMyY2EwMmU4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNzEw
LDYgKzcxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL1RleHREb2N1bWVudFBh
cnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcCBcCiAg
ICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgXAorICAgIGh0bWwvc2hhZG93L0NhbnZhc0lu
bmVyRWxlbWVudC5jcHAgXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHAg
XAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAgaHRtbC9z
aGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkODMw
YzUyMzEyYmI4YTNjZTY4ODc4YjVhYTY0NWUxMTY0YzI3Njk4Li44MDM1YmU5ZTk0YTRlZDI2YWU1
NGVjNThlMjU1NzBmM2JiNjVkNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NzY0LDYgKzU3NjQs
OCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAn
aHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwv
c2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93
L0NhbnZhc0lubmVyRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50
RGlzdHJpYnV0b3IuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50RGlzdHJp
YnV0b3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnku
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwNTg1MDgyZGVlN2Y2OTViOGE4OTcyZDkwYTA5YzA0ZTBiMGE0ZjdhLi5hNWJj
NTVhYWZjY2ZmZGVjMGVlZDM2OWZkMGFiNzI2Y2NiMDE0YjczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzAwLDYgKzYzMDAs
OCBAQAogCQlGQUJFNzJGOTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MTWF0aEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkYyMTA1
OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxNYXRoRWxlbWVudC5oICovOyB9OwogCQlGQUJFNzJGRDEw
NTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkFCRTcyRkIxMDU5QzIxMTAwRDk5OURE
IC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJRkFCRTcyRkUxMDU5QzIxMTAw
RDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5j
cHAgKi87IH07CisJCUZCMjBCMzExMTVFQjRCOEYwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkIy
MEIyREIxNUVCNDFFNDAwMjc4Q0NEIC8qIENhbnZhc0lubmVyRWxlbWVudC5jcHAgKi87IH07CisJ
CUZCMjBCMzEzMTVFQjRCOTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCMjBCMkRDMTVFQjQxRTQw
MDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCAqLzsgfTsKIAkJRkI3OEFEMkUxNTFCRjVF
NjAwRkU1NEQzIC8qIENTU1BhcnNlck1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZCNzhBRDJDMTUxQkY1RDIwMEZFNTREMyAvKiBDU1NQYXJzZXJN
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RkJDMjIwREYxMjM3RkJFQjAwQkNGNzg4IC8qIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCQzIyMERFMTIz
N0ZCRUIwMEJDRjc4OCAvKiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgKi87IH07CiAJCUZE
MDBEN0E0MTRBM0Y2MTkwMDczNDAxMSAvKiBTaW5jUmVzYW1wbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDBEN0EyMTRBM0Y2MTkwMDczNDAx
MSAvKiBTaW5jUmVzYW1wbGVyLmNwcCAqLzsgfTsKQEAgLTEzNjkyLDYgKzEzNjk0LDggQEAKIAkJ
RkFCRTcyRjMxMDU5QzFFQjAwRDk5OUREIC8qIG1hdGh0YWdzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IG1hdGh0YWdzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQUJFNzJG
QjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQUJFNzJGQzEwNTlDMjExMDBEOTk5REQgLyogTWF0
aE1MTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1M
TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGQjIwQjJEQjE1RUI0MUU0
MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENhbnZhc0lubmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUZCMjBCMkRDMTVFQjQxRTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FudmFzSW5uZXJFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZCNzhBRDJDMTUxQkY1RDIwMEZFNTRE
MyAvKiBDU1NQYXJzZXJNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U1BhcnNlck1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkJDMjIwREUxMjM3
RkJFQjAwQkNGNzg4IC8qIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQwMEQ3QTIxNEEzRjYxOTAwNzM0MDExIC8qIFNp
bmNSZXNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2lu
Y1Jlc2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDk0MSw2ICsx
NDk0NSw4IEBACiAJCTQxNTBGOUVEMTJCNkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUZCMjBCMkRCMTVFQjQxRTQw
MDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuY3BwICovLAorCQkJCUZCMjBCMkRDMTVFQjQx
RTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCAqLywKIAkJCQk1N0I3OTE5RjE0QzZB
NjI5MDBGMjAyRDEgLyogQ29udGVudERpc3RyaWJ1dG9yLmNwcCAqLywKIAkJCQk1N0I3OTFBMDE0
QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudERpc3RyaWJ1dG9yLmggKi8sCiAJCQkJNTdCNzkxQTEx
NEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKQEAgLTI1NDgz
LDYgKzI1NDg5LDcgQEAKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNzdBQkEwMTVERUZFRUYwMDMxRkQwNCAvKiBQYWdpbmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ3NkFBODE1REM0QkIxMDAzMDVEQjIgLyogV3Jp
dGluZ01vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUZCMjBCMzEzMTVFQjRCOTQwMDI3OENDRCAv
KiBDYW52YXNJbm5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg1NzIsNiArMjg1Nzks
NyBAQAogCQkJCTUyQjZDOUM1MTVFM0Y0REYwMDY5MEIwNSAvKiBOYW1lZEZsb3dDb2xsZWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0NBOUUyMTVFM0Y2MkMwMDUzQzc3RiAvKiBKU0RP
TU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJDQ0E5RTkxNUUz
RjY0QzAwNTNDNzdGIC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKKwkJCQlGQjIwQjMxMTE1RUI0QjhGMDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAppbmRleCBlMWI5ZjQ4YTE5ZTljZTYyMDYxNmFjNzUzN2NhYjY0N2Q2MTI0N2IzLi5lZDIyMThi
MzJlNGE2YWRjMjQ3YmU0OTA5YmI4NzRhODE2MWYxOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkF0dHJp
YnV0ZS5oIgogI2luY2x1ZGUgIkNhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAi
Q2FudmFzR3JhZGllbnQuaCIKKyNpbmNsdWRlICJDYW52YXNJbm5lckVsZW1lbnQuaCIKICNpbmNs
dWRlICJDYW52YXNQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgiCiAjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNs
dWRlIDxzdGRpby5oPgogCkBAIC04MSw3ICs4Myw2IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhT
a2lhRGltID0gMzI3NjcuMEY7IC8vIE1heGltdW0gd2lkdGgvaGVpZ2h0IGluIENTUyBwaXhlbHMu
CiBIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCiAgICAgLCBtX3NpemUoRGVmYXVsdFdpZHRoLCBEZWZhdWx0SGVpZ2h0KQot
ICAgICwgbV9yZW5kZXJlcklzQ2FudmFzKGZhbHNlKQogICAgICwgbV9pZ25vcmVSZXNldChmYWxz
ZSkKICNpZiBFTkFCTEUoSElHSF9EUElfQ0FOVkFTKQogICAgICAgLy8gTk9URTogSGlnaC1EUEkg
Y2FudmFzIHJlcXVpcmVzIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBJbWFnZUJ1ZmZlciBpbXBsZW1l
bnRhdGlvbiB0byByZXNwZWN0CkBAIC0xMTYsMjMgKzExNyw1NyBAQCBIVE1MQ2FudmFzRWxlbWVu
dDo6fkhUTUxDYW52YXNFbGVtZW50KCkKICAgICBtX2NvbnRleHQuY2xlYXIoKTsgLy8gRW5zdXJl
IHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCiB9CiAKK2Jvb2wgSFRNTENh
bnZhc0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0Cit7CisgICAgaWYgKGhhc0F1dGhvclNoYWRvd1Jvb3QoKSAmJiAobmFtZSA9
PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsK
K30KKwordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yQXR0cmlidXRlKGNv
bnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlLCBTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3sKKyAg
ICBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSB3aWR0aEF0dHIpCisgICAgICAgIGFkZEhUTUxMZW5n
dGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRoLCBhdHRyaWJ1dGUudmFsdWUoKSk7Cisg
ICAgZWxzZSBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBoZWlnaHRBdHRyKQorICAgICAgICBhZGRI
VE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQsIGF0dHJpYnV0ZS52YWx1
ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRy
aWJ1dGUoYXR0cmlidXRlLCBzdHlsZSk7Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQogewogICAgIGlmIChhdHRy
aWJ1dGUubmFtZSgpID09IHdpZHRoQXR0ciB8fCBhdHRyaWJ1dGUubmFtZSgpID09IGhlaWdodEF0
dHIpCi0gICAgICAgIHJlc2V0KCk7CisgICAgICAgIGlmICghaGFzQXV0aG9yU2hhZG93Um9vdCgp
KQorICAgICAgICAgICAgcmVzZXQoKTsKICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
YXR0cmlidXRlKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7CisgICAg
aWYgKHN0eWxlLT5oYXNDb250ZW50KCkgfHwgc2hhZG93KCkpCisgICAgICAgIHJldHVybiBSZW5k
ZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisKICAgICBGcmFtZSogZnJhbWUg
PSBkb2N1bWVudCgpLT5mcmFtZSgpOwotICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2NyaXB0KCkt
PmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkgewotICAgICAgICBt
X3JlbmRlcmVySXNDYW52YXMgPSB0cnVlOwotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVu
ZGVySFRNTENhbnZhcyh0aGlzKTsKLSAgICB9CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnNj
cmlwdCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCisgICAg
ICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisKKyAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXJGb3JDYW52YXModGhpcywgYXJlbmEsIHNpemUoKSk7Cit9
CisKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OndpbGxBZGRBdXRob3JTaGFkb3dSb290KCkKK3sK
KyAgICBpZiAodXNlckFnZW50U2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBt
X3JlbmRlcmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKGFyZW5hLCBzdHlsZSk7CisgICAgY3JlYXRlU2hhZG93U3VidHJlZSgpOworfQor
Cit2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3sKKyAgICBS
ZWZQdHI8Q2FudmFzSW5uZXJFbGVtZW50PiBpbm5lckVsZW1lbnQgPSBDYW52YXNJbm5lckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAKKyAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9v
dCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpVc2VyQWdlbnRTaGFkb3dS
b290KTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lckVsZW1lbnQpOwogfQogCiB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjphdHRhY2goKQpAQCAtMjgwLDcgKzMxNSw3IEBAIHZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KCkKICNlbmRpZgogCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIGlmIChtX3JlbmRlcmVySXNDYW52
YXMpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc0NhbnZhcygpKSB7CiAgICAgICAgICAgICBp
ZiAob2xkU2l6ZSAhPSBzaXplKCkpIHsKICAgICAgICAgICAgICAgICB0b1JlbmRlckhUTUxDYW52
YXMocmVuZGVyZXIpLT5jYW52YXNTaXplQ2hhbmdlZCgpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKQEAgLTYzMiw0ICs2NjcsMjcgQEAgQWZmaW5lVHJhbnNmb3JtIEhUTUxDYW52
YXNFbGVtZW50OjpiYXNlVHJhbnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4gbV9pbWFnZUJ1ZmZl
ci0+YmFzZVRyYW5zZm9ybSgpICogdHJhbnNmb3JtOwogfQogCitib29sIEhUTUxDYW52YXNFbGVt
ZW50OjpoYXNBdXRob3JTaGFkb3dSb290KCkgY29uc3QKK3sKKyAgICBpZiAoU2hhZG93Um9vdCog
cm9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkgeworICAgICAgICBBU1NFUlQocm9vdC0+Zmly
c3RDaGlsZCgpLT5oYXNUYWdOYW1lKHdlYmtpdElubmVyQ2FudmFzVGFnKSk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlbmRlck9iamVjdCog
SFRNTENhbnZhc0VsZW1lbnQ6OnJlbmRlcmVyQ2FudmFzKCkKK3sKKyAgICBpZiAoU2hhZG93Um9v
dCogcm9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkgeworICAgICAgICBBU1NFUlQocm9vdC0+
Zmlyc3RDaGlsZCgpLT5oYXNUYWdOYW1lKHdlYmtpdElubmVyQ2FudmFzVGFnKSk7CisgICAgICAg
IHJldHVybiB0b0VsZW1lbnQocm9vdC0+Zmlyc3RDaGlsZCgpKS0+cmVuZGVyZXIoKTsKKyAgICB9
CisgICAgcmV0dXJuIHJlbmRlcmVyKCk7Cit9CisKK1JlbmRlck9iamVjdCogQ2FudmFzRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXJGb3JDYW52YXMoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckFy
ZW5hKiBhcmVuYSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICByZXR1cm4gbmV3IChhcmVu
YSkgUmVuZGVySFRNTENhbnZhcyhlbGVtZW50LCBzaXplKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDJkZGU4MGZkNGUwMmJjNDU4MjQ2ZTI5MDg2
ZDllNGQ3MzNlYjQyMTUuLjA4MjQ1OTYyMGJiNGEzNGE0NDk0YjNkNjY1OWI2M2ZhOTg5NmU3OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTQzLDYgKzQzLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXM7
CitjbGFzcyBDYW52YXNJbm5lckVsZW1lbnQ7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0
OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
cjsKQEAgLTYxLDEyICs2MiwxOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbnZhc0Rl
c3Ryb3llZChIVE1MQ2FudmFzRWxlbWVudCopID0gMDsKIH07CiAKLWNsYXNzIEhUTUxDYW52YXNF
bGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK2NsYXNzIENhbnZhc0VsZW1lbnQgeworcHJv
dGVjdGVkOgorICAgIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXJGb3JDYW52YXMoSFRNTEVs
ZW1lbnQqLCBSZW5kZXJBcmVuYSosIGNvbnN0IEludFNpemUmKTsKK307CisKK2NsYXNzIEhUTUxD
YW52YXNFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgQ2FudmFzRWxlbWVudCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SFRN
TENhbnZhc0VsZW1lbnQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsQWRkQXV0aG9yU2hhZG93
Um9vdCgpIE9WRVJSSURFOworCiAgICAgdm9pZCBhZGRPYnNlcnZlcihDYW52YXNPYnNlcnZlciop
OwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoQ2FudmFzT2JzZXJ2ZXIqKTsKIApAQCAtMTQwLDEw
ICsxNDgsMTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CisKKyAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lkIGNvbGxlY3RTdHlsZUZv
ckF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmLCBTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwogCisgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlckNhbnZhcygpOworICAgIGJvb2wgaGFzQXV0aG9yU2hhZG93Um9v
dCgpIGNvbnN0OwogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdDsKQEAgLTE2MSw4ICsxNzUsNiBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPENh
bnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsKIAotICAgIGJvb2wgbV9yZW5kZXJlcklz
Q2FudmFzOwotCiAgICAgYm9vbCBtX2lnbm9yZVJlc2V0OwogICAgIEZsb2F0UmVjdCBtX2RpcnR5
UmVjdDsKIApAQCAtMTc5LDYgKzE5MSwxNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRy
PEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhpcyBpcyB0ZW1wb3JhcnkgZm9yIHBs
YXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2UgYnVmZmVyIHRvIHJlbmRlciAoYW5k
IGZvciBDU1NDYW52YXNWYWx1ZSkuCiB9OwogCitpbmxpbmUgYm9vbCBpc0hUTUxDYW52YXNFbGVt
ZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVz
OjpjYW52YXNUYWcpOworfQorCitpbmxpbmUgSFRNTENhbnZhc0VsZW1lbnQqIHRvSFRNTENhbnZh
c0VsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgaXNIVE1MQ2FudmFz
RWxlbWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50
Kj4obm9kZSk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhZ05hbWVzLmluCmluZGV4IDM2NjBhYjk0OGUwNzg3ODk3NDdiY2FlYmVlNWQwYjY5OGNmMzVh
ZmUuLmQwMmFkNjA1YzI3YjM5ZGYxMjRiZGNiODJiNjE1MDJmZDRkOThjZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMzksMyArMTM5LDQgQEAgdmlkZW8gd3JhcHBlck9u
bHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rvck5lZWRz
Q3JlYXRlZEIKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB4bXAgaW50ZXJmYWNlTmFt
ZT1IVE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAord2Vi
a2l0SW5uZXJDYW52YXMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1Y3Rvcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTcxNmQwZTJkMjBiYjJlNjhlNjgwZDA2YjNhZDlhY2I0ZjU3YzkxZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxl
bWVudC5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
YW52YXNJbm5lckVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJJbWFnZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworQ2FudmFzSW5u
ZXJFbGVtZW50OjpDYW52YXNJbm5lckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDog
SFRNTEVsZW1lbnQoSFRNTE5hbWVzOjp3ZWJraXRJbm5lckNhbnZhc1RhZywgZG9jdW1lbnQpCit7
Cit9CisKK2lubGluZSBIVE1MQ2FudmFzRWxlbWVudCogQ2FudmFzSW5uZXJFbGVtZW50Ojpob3N0
Q2FudmFzKCkKK3sKKyAgICByZXR1cm4gdG9IVE1MQ2FudmFzRWxlbWVudChzaGFkb3dBbmNlc3Rv
ck5vZGUoKSk7Cit9CisKK3ZvaWQgQ2FudmFzSW5uZXJFbGVtZW50OjphdHRhY2goKQoreworICAg
IEhUTUxFbGVtZW50OjphdHRhY2goKTsKK30KKworUmVuZGVyT2JqZWN0KiBDYW52YXNJbm5lckVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0
eWxlKQoreworICAgIGlmIChzdHlsZS0+aGFzQ29udGVudCgpKQorICAgICAgICByZXR1cm4gUmVu
ZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOworICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlckZvckNhbnZhcyh0aGlzLCBhcmVuYSwgaG9zdENhbnZhcygpLT5zaXplKCkpOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIENhbnZhc0lubmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9J
ZCwgKCItd2Via2l0LWNhbnZhcy1pbm5lci1lbGVtZW50IikpOworICAgIHJldHVybiBwc2V1ZG9J
ZDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFz
SW5uZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYW52YXNJbm5lckVs
ZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ODVjM2RkODkyNDE0MWZlNzJjZmZhMDQzMzYzNTc1NzlhNzc5
YWZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFz
SW5uZXJFbGVtZW50LmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2FudmFzSW5uZXJFbGVtZW50
X2gKKyNkZWZpbmUgQ2FudmFzSW5uZXJFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxDYW52YXNF
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTENhbnZhc0VsZW1l
bnQ7CitjbGFzcyBSZW5kZXJPYmplY3Q7CisKK2NsYXNzIENhbnZhc0lubmVyRWxlbWVudCA6IHB1
YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIENhbnZhc0VsZW1lbnQgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhbnZhc0lubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Cisg
ICAgSFRNTENhbnZhc0VsZW1lbnQqIGhvc3RDYW52YXMoKTsKKworcHJpdmF0ZToKKyAgICBDYW52
YXNJbm5lckVsZW1lbnQoRG9jdW1lbnQqKTsKKworICAgIFJlbmRlck9iamVjdCogY2FudmFzUmVu
ZGVyZXIoKSBjb25zdCB7IHJldHVybiBIVE1MRWxlbWVudDo6cmVuZGVyZXIoKTsgfQorCisgICAg
dmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZF
UlJJREU7Cit9OworCitpbmxpbmUgUGFzc1JlZlB0cjxDYW52YXNJbm5lckVsZW1lbnQ+IENhbnZh
c0lubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IENhbnZhc0lubmVyRWxlbWVudChkb2N1bWVudCkpOworfQorCitpbmxpbmUg
Ym9vbCBpc0NhbnZhc0lubmVyRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIHJldHVybiAhbm9k
ZSB8fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6d2Via2l0SW5uZXJDYW52YXNUYWcpOwor
fQorCitpbmxpbmUgQ2FudmFzSW5uZXJFbGVtZW50KiB0b0NhbnZhc0lubmVyRWxlbWVudChOb2Rl
KiBub2RlKQoreworICAgIEFTU0VSVChpc0NhbnZhc0lubmVyRWxlbWVudChub2RlKSk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhbnZhc0lubmVyRWxlbWVudCo+KG5vZGUpOworfQorCitpbmxp
bmUgSFRNTENhbnZhc0VsZW1lbnQqIGhvc3RDYW52YXNFbGVtZW50KE5vZGUqIG5vZGUpCit7Cisg
ICAgaWYgKGlzSFRNTENhbnZhc0VsZW1lbnQobm9kZSkpCisgICAgICAgIHJldHVybiB0b0hUTUxD
YW52YXNFbGVtZW50KG5vZGUpOworICAgIHJldHVybiBpc0NhbnZhc0lubmVyRWxlbWVudChub2Rl
KT8gdG9DYW52YXNJbm5lckVsZW1lbnQobm9kZSktPmhvc3RDYW52YXMoKSA6IDA7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRN
TENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5j
cHAKaW5kZXggMzMxMTY5ODllNDFjNTMwZWI2MzIzMDkyMDBlM2YyNTFiNThlN2ZiMy4uMjFlYjY4
NTNjYmU3YjFjOGEzNTE2NzZiM2NjNTk4ODg1NzFiYzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlckhUTUxDYW52YXMuaCIKIAorI2luY2x1ZGUg
IkNhbnZhc0lubmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC00MSw5ICs0
MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKLVJlbmRlckhUTUxDYW52YXM6OlJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQq
IGVsZW1lbnQpCi0gICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBlbGVtZW50LT5zaXplKCkp
CitSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKEhUTUxFbGVtZW50KiBlbGVtZW50
LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgc2l6
ZSkKIHsKKyAgICBBU1NFUlQoaXNDYW52YXNJbm5lckVsZW1lbnQoZWxlbWVudCkgfHwgaXNIVE1M
Q2FudmFzRWxlbWVudChlbGVtZW50KSk7CiAgICAgdmlldygpLT5mcmFtZVZpZXcoKS0+c2V0SXNW
aXN1YWxseU5vbkVtcHR5KCk7CiB9CiAKQEAgLTUyLDcgKzU0LDcgQEAgYm9vbCBSZW5kZXJIVE1M
Q2FudmFzOjpyZXF1aXJlc0xheWVyKCkgY29uc3QKICAgICBpZiAoUmVuZGVyUmVwbGFjZWQ6OnJl
cXVpcmVzTGF5ZXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAgSFRNTENhbnZh
c0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSgp
KTsKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gaG9zdENhbnZhc0VsZW1lbnQobm9k
ZSgpKTsKICAgICByZXR1cm4gY2FudmFzICYmIGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpICYm
IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpLT5pc0FjY2VsZXJhdGVkKCk7CiB9CiAKQEAgLTY5
LDE0ICs3MSwxNCBAQCB2b2lkIFJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYQogICAgIH0KIAogICAgIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlID0gc3R5bGUoKS0+aW1hZ2VSZW5kZXJpbmcoKSA9PSBJbWFnZVJl
bmRlcmluZ09wdGltaXplQ29udHJhc3Q7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1l
bnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVjdCwgdXNlTG93UXVhbGl0
eVNjYWxlKTsKKyAgICBob3N0Q2FudmFzRWxlbWVudChub2RlKCkpLT5wYWludChwYWludEluZm8u
Y29udGV4dCwgcmVjdCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBSZW5kZXJIVE1M
Q2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCgpCiB7Ci0gICAgSW50U2l6ZSBjYW52YXNTaXplID0g
c3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkpLT5zaXplKCk7CisgICAgSW50
U2l6ZSBjYW52YXNTaXplID0gaG9zdENhbnZhc0VsZW1lbnQobm9kZSgpKS0+c2l6ZSgpOwogICAg
IEludFNpemUgem9vbWVkU2l6ZShjYW52YXNTaXplLndpZHRoKCkgKiBzdHlsZSgpLT5lZmZlY3Rp
dmVab29tKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkgKiBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkp
OwotCisgICAgCiAgICAgaWYgKHpvb21lZFNpemUgPT0gaW50cmluc2ljU2l6ZSgpKQogICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJI
VE1MQ2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5o
CmluZGV4IDViZWQyN2Y0ZjJlYjNkZTNiMWEwODE1Y2E1MWExNWYxNjczMTQxMDYuLjExNjFlMGJm
ZTRlZTNkYTQ0MDY3YmI5YWMzMWUwNmZiMmY1YzgyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaApAQCAtMzAsMTEgKzMwLDExIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CitjbGFzcyBDYW52YXNFbGVt
ZW50OwogCiBjbGFzcyBSZW5kZXJIVE1MQ2FudmFzIDogcHVibGljIFJlbmRlclJlcGxhY2VkIHsK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW5kZXJIVE1MQ2FudmFzKEhUTUxDYW52YXNFbGVtZW50
Kik7CisgICAgZXhwbGljaXQgUmVuZGVySFRNTENhbnZhcyhIVE1MRWxlbWVudCosIGNvbnN0IElu
dFNpemUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhbnZhcygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBkMjZlZWYx
ZTM0ZThlNDU1ZjI0YmNhYjRkMmFjMjJjZjI5ZWMzZGY1Li4yODkwMGY5MzQ2YWU5NTMyOGU0Y2Zh
NTFjNjUzMjA1ZTVhZjVlZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxh
eWVyQmFja2luZy5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1
ZGUgIkNhbnZhc0lubmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CkBAIC04MSw3ICs4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FjY2VsZXJhdGVkQ2FudmFz
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlmIChyZW5kZXJlci0+aXNDYW52YXMoKSkgewot
ICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZh
c0VsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQq
IGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwogICAgICAgICBp
ZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29u
dGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKTsKICAg
ICB9CkBAIC0xOTQsNyArMTk1LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVBy
aW1hcnlHcmFwaGljc0xheWVyKCkKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKQogICAg
IGlmICghY29tcG9zaXRvcigpLT5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgJiYgcmVuZGVy
ZXIoKS0+aXNDYW52YXMoKSkgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0g
c3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5kZXJlcigpLT5ub2RlKCkpOworICAg
ICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gaG9zdENhbnZhc0VsZW1lbnQocmVuZGVy
ZXIoKS0+bm9kZSgpKTsKICAgICAgICAgaWYgKGNhbnZhcy0+c2hvdWxkQWNjZWxlcmF0ZShjYW52
YXMtPnNpemUoKSkpCiAgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFjY2VsZXJhdGVz
RHJhd2luZyh0cnVlKTsKICAgICB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICNlbmRpZgogI2lm
IEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBlbHNl
IGlmIChpc0FjY2VsZXJhdGVkQ2FudmFzKHJlbmRlcmVyKSkgewotICAgICAgICBIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5kZXJl
ci0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52
YXNFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwogICAgICAgICBpZiAoQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpKQogICAgICAgICAg
ICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvQ2FudmFzKGNvbnRleHQtPnBsYXRmb3Jt
TGF5ZXIoKSk7CiAgICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDQ1
MGI0ZmM4N2MxNmI2ZjA0Zjk1ZDk1YWFiYTkwZjU4ZjVjOTNiN2EuLjFlYWMzZTk2MGZlNDJiMDI2
ZjViNDlmZTE5OTMwZjhkODRjOTg2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9s
bGVyLmgiCisjaW5jbHVkZSAiQ2FudmFzSW5uZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNs
dWRlICJDaHJvbWUuaCIKQEAgLTE2OTUsNyArMTY5Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZW5kZXJlci0+aXNDYW52YXMo
KSkgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRN
TENhbnZhc0VsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0Vs
ZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwogICAg
ICAgICByZXR1cm4gY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkgJiYgY2FudmFzLT5yZW5kZXJp
bmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWQoKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDg3ZWU2MGFmYTVmODdmMTAyOGMxNDRhYjQ2NjhmM2IyYmYzNTZlNmYuLmFiYzEyNmM0
N2I4OTBlNzE5N2I1NGZhZjc1Y2Q0ZGU2OTA5MTFjODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAor
MjAxMi0wOC0yNyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgU2hhZG93IERPTSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMt
Y29udGVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHlu
YW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLXN0eWxlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3ctZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1j
YW52YXMtd2l0aC1wc2V1ZG8taWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDgt
MjcgIEJhbGF6cyBBbmtlcyAgPGJhbmtAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0g
TmV3IHRlc3QgaW50cm9kdWNlZCBpbiByMTI2NjExIGZhaWxzOiBmYXN0L2Nzcy9pbWFnZS1zZXQt
c2V0dGluZy5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1jb250ZW50LWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYThiYWZmM2EyNTljOWQ2YTg5NWFjYjQ2Mjc5YWJkNjg0YzcxZmQwOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsK
KyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0
LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVj
dCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhv
c3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmUtYmxvY2siPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PHNwYW4+ZmFsbGJhY2s8
L3NwYW4+PC9jYW52YXM+KGFmdGVyKTxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZmExODE5YzgzMmQzZWViNDk1MjBkYjc2ZDFmZDJkMzcwNjI3ZGFkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBj
b250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxl
ID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEy
MCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFk
b3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcik8Y29udGVudD48L2NvbnRl
bnQ+IjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICdmYWxsYmFjayc7
CisKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAg
dXBkYXRlQ2FudmFzKGhvc3QpOworICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgYWRk
U2hhZG93RE9NKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52
YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtZHluYW1pYy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZWZjYTZjOWY5NDAzZTZkYjczMTEyNmVkMDc0ZDhiYTQ0Y2U5YzQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5
bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsK
KyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0
LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVj
dCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhv
c3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmU7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OjIwMHB4Ij4oYmVmb3JlKTxjYW52YXMgaWQ9
Imhvc3QiPjwvY2FudmFzPihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M3NGVjMTU4
ZjdiOGYxYzgxZDEzZWM4OTY3NjY2ZWFmOWQ1ZmNlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwK
QEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5j
dGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5n
ZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1
NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5j
dGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8
c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
IHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBhZGRTaGFk
b3dET00oaG9zdCk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBob3N0
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAxMDApOworICAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgi
aGVpZ2h0IiwgMjAwKTsKKyAgICAgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworCisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMg
aWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1j
YW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNzQxNzk4NWQwMmU2ZTRl
NGU5ZGNlZDJlMTUzYjBmYmM1NDBkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQu
Z2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwy
NTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxk
aXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+KGJlZm9yZSk8
Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29udGV4dC1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4YmFmZjNhMjU5YzlkNmE4OTVhY2I0NjI3OWFiZDY4
NGM3MWZkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29udGV4dC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNh
bnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJk
Jyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAg
IGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAg
IHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgPGRp
diBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3Qi
PjxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvY2FudmFzPihhZnRlcik8c3Bhbj5mYWxsYmFjazwvc3Bh
bj48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNv
bnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNh
bnZhcy1nZXRjb250ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViYzhjOTgxYjY4YTIxZDBiNWQxNTMy
ZTg5NGVmYmRlZDUxMmIyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKQEAgLTAsMCArMSwz
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2Fu
dmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQn
KTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAg
Y29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93
RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhv
c3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRv
dz4oYWZ0ZXIpPGNvbnRlbnQ+PC9jb250ZW50PiI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bh
bi5pbm5lckhUTUwgPSAnZmFsbGJhY2snOworCisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaG9zdCcpOworICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgYWRk
U2hhZG93RE9NKGhvc3QpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4K
KyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmM4ZDAzYzBlNTJlMmEwMmM3ZGM4ZTE5OGViMzg2YTM0
ZjZkNWRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0
ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQo
JzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOwor
ICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGRvQXBw
bHkobm9kZWlkKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChub2Rl
aWQpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICBkb0FwcGx5KCdob3N0MScpOworICAgIGRvQXBwbHkoJ2hvc3QyJyk7CisgICAgZG9BcHBs
eSgnaG9zdDMnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IHN0eWxl
PSJkaXNwbGF5OiBub25lOyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7Ij4oYmVmb3JlKTxj
YW52YXMgaWQ9Imhvc3QxIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+KGFmdGVy
KTwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3Bs
YXk6IGlubGluZTsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDEyMHB4OyI+KGJlZm9yZSk8Y2FudmFz
IGlkPSJob3N0MiIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjwvY2FudmFzPihhZnRlcik8L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBp
bmxpbmU7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiAxMjBweDsiPihiZWZvcmUpPGNhbnZhcyBpZD0i
aG9zdDMiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+Cisg
ICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTMzMmRlMDU2NTg0NDRjYzY4ZTJkZmVhZWM1NzA2Y2VjYjExNTE2YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy1zdHlsZS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNv
bnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUg
PSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIw
LCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRv
d1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVy
SFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisKK2Z1bmN0aW9u
IGRvQXBwbHkobm9kZWlkKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChub2RlaWQpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKKyAgICBhZGRTaGFkb3dET00oaG9z
dCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgZG9BcHBseSgnaG9zdDEnKTsKKyAg
ICBkb0FwcGx5KCdob3N0MicpOworICAgIGRvQXBwbHkoJ2hvc3QzJyk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+
CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdDEiIHN0eWxlPSJkaXNwbGF5OiBu
b25lIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+CisgICAg
PGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdDIiIHN0eWxlPSJkaXNwbGF5OiBibG9jayIg
d2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjwvY2FudmFzPgorICAgIDwvZGl2PgorICAgIDxkaXY+
CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lIiB3aWR0
aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlw
bGUtc2hhZG93LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzliOWQyMTNmY2I1NWY4MDU1OTU5
ZGNlNTI5ZmE3MjdiOTQ2MTI3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBl
bGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgw
MCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4K
KyAgICA8ZGl2PgorICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVm
b3JlKShiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+KGFmdGVyKShhZnRlcik8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlw
bGUtc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTlkYWM0ZTVl
NmMwZDBmNWY4MTRlOTJmYmRiMjhmY2ZiNTkxODI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUt
c2hhZG93Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9
IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2Jh
KDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsK
K30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
IihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Cisg
ICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKKyAgICB1cGRh
dGVDYW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZh
cyBpZD0iaG9zdCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy13aXRoLXBzZXVkby1pZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2E2NmI2NjcyNTMyODRiYjcxNWY3MzlhYmI4NmMzNWNlZGRkNzQ1Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2hvc3QgeworICAgIHdpZHRoOiA1MDBw
eDsKKyAgICBoZWlnaHQ6IDUwMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1
cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250
ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUp
JzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDQ1MCwgMjUwKTsKK30KKworZnVuY3Rpb24g
YWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRv
dz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIg
aG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFz
KGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jayI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4o
YWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13
aXRoLXBzZXVkby1pZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZjN2YyOWI0MDFh
N2VmMGVmZWVkYjA2MjI5YjJiMjBhMzgzMDg4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC5o
dG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2hv
c3Q6Oi13ZWJraXQtY2FudmFzLWlubmVyLWVsZW1lbnQgeworICAgIHdpZHRoOiA1MDBweDsKKyAg
ICBoZWlnaHQ6IDUwMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVD
YW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcy
ZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAg
ICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDQ1MCwgMjUwKTsKK30KKworZnVuY3Rpb24gYWRkU2hh
ZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290
KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3No
YWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgYWRkU2hhZG93RE9NKGhvc3Qp
OworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAg
ICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRo
LXdpZHRoLWhlaWdodC1keW5hbWljLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM3NDE2MjQ2
ODRjN2EzM2M2MGI5ZmUxMDgyM2Q4Yzg0NjQzMmZhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhl
aWdodC1keW5hbWljLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVt
ZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAg
Y29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQu
ZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgx
MDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDcwLCAyNTAsIDIzMCk7
Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVy
Ij4KKyAgICA8ZGl2PgorICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7IHdp
ZHRoOjIwMHB4OyBoZWlnaHQ6MzAwcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSg4MCw4MCw4MCww
LjUpOyI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEyMCI+
PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFt
aWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iODI4ZTQ1NmQ1YzBlMTUxZTZjY2RiYjExZTc3YmEwN2QwYjk1
YmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbApAQCAtMCwwICsx
LDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHVwZGF0
ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQo
JzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwLDEwMCwyNTUsMC41KSc7Cisg
ICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKKyAgICBjb250ZXh0LmZpbGxTdHls
ZSA9ICdyZ2JhKDEwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgNzAs
IDI1MCwgMjMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIg
c2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdob3N0Jyk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgICAgaG9zdC5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CisgICAg
ICAgaG9zdC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSg4MCw4MCw4MCwwLjUpIjsKKyAg
ICAgICBob3N0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMjAwIik7CisgICAgICAgaG9zdC5zZXRB
dHRyaWJ1dGUoImhlaWdodCIsICIzMDAiKTsKKyAgICAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cisg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8
Y2FudmFzIGlkPSJob3N0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliNWJh
OWFmOGYyODgyMzMxNGY4MWI4ZTA5YzU1NGZmOTBiZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRo
LWhlaWdodC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkg
eworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRl
eHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxS
ZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBo
b3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMo
aG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiIHdpZHRoPSI4MCIg
aGVpZ2h0PSI2NSI+PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM0ZWM5OTIzYmVkYTg5Y2JlNjUzNjI1NDExZGYxNDk3MTc0YzA1MzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlm
aWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVu
dCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNv
bnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZp
bGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkg
eworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlciki
OworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7CisgICAgYWRkU2hh
ZG93RE9NKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMg
aWQ9Imhvc3QiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2NSI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2OTYyYTI2Mzg1
MDJlNTJjM2IzNzFlYjcxZDA4MWIyZjRhOWVhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNh
bnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJk
Jyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAg
IGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRv
d0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdCho
b3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFk
b3c+KGFmdGVyKSI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsK
KyAgICBhZGRTaGFkb3dET00oaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAg
ICAgPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160917</attachid>
            <date>2012-08-27 23:58:24 -0700</date>
            <delta_ts>2012-08-28 01:06:44 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-90861-20120828155815.patch</filename>
            <type>text/plain</type>
            <size>55080</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJhODZlZjY4OGQzMmE4
ZTFjZmZlZGQ4YzY4ZGIzYTJiODU5Y2ExNy4uY2Y4ZTYzYTdmZWQyMGUxMGI4OTE2MDExNjE2MTM4
NDhiYjFhNzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMCBAQAorMjAxMi0wOC0yNyAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IERPTSBm
b3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIFNoYWRvdyBET00gc3VwcG9ydCBmb3IgY2FudmFzIGVsZW1lbnQu
CisgICAgICAgIEFjY29yZGluZyB0byB0aGUgU2hhZG93IERPTSBzcGVjLCBjYW52YXMgZWxlbWVu
dCBzaG91bGQgd29yayBhcyBpZiBpdAorICAgICAgICBoYXMgYSB1c2VyIGFnZW50IHNoYWRvdyBk
b20uIEhvd2V2ZXIsIGl0IHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UKKyAgICAgICAgcmVncmVzc2lv
biBhbmQgbWVtb3J5IGJsb2F0IHRvIGFkZCBzdWNoIGEgdXNlciBhZ2VudCBzaGFkb3cgZG9tIHRv
CisgICAgICAgIGNhbnZhcyBlbGVtZW50IGJ5IGRlZmF1bHQuIFNvIHdlIHdvdWxkIGxpa2UgdG8g
cG9zdHBvbmUgYWRkaW5nIGEgdXNlcgorICAgICAgICBhZ2VudCBTaGFkb3cgRE9NIHVudGlsIHdl
IG5lZWQgaXQsIGkuZS4gdXNlcnMgYWRkIGFuIGF1dGhvciBzaGFkb3cgRE9NCisgICAgICAgIHRv
IGNhbnZhcyBlbGVtZW50LiBUaGUgdXNlciBhZ2VudCBTaGFkb3cgRE9NIGZvciBjYW52YXMgZWxl
bWVudCBoYXMKKyAgICAgICAgb25seSBvbmUgZWxlbWVudCwgd2hpY2ggZGlzcGxheXMgb25lIGNh
bnZhcy4gVGhlIGVsZW1lbnQgaXMgaW1wbGVtZW50ZWQKKyAgICAgICAgYnkgQ2FudmFzSW5uZXJF
bGVtZW50LmNwcCBhbmQgLmguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0
aC1tdWx0aXBsZS1zaGFkb3cuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNh
bnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1jYW52YXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgIEFkZGVkIENhbnZhc0lubmVyRWxlbWVudC5jcHAgYW5kIENh
bnZhc0lubmVyRWxlbWVudC5oLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50
KToKKyAgICAgICAgQmVjYXVzZSBvZiByZW1vdmluZyBtX3JlbmRlcmVySXNDYW52YXMsIHJlbW92
ZWQgYSBjb2RlIGZvciBpbml0aWFsaXppbmcKKyAgICAgICAgbV9yZW5kZXJJc0NhbnZhcy4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZSk6CisgICAgICAgIEltcGxlbWVudGVkIHRvIHVwZGF0ZSBjYW52YXMgd2lkdGggb3IgaGVpZ2h0
IGJ5IHVzaW5nIHdpZHRoIG9yIGhlaWdodAorICAgICAgICBhdHRyaWJ1dGUgYWZ0ZXIgYWRkaW5n
IGFueSBhdXRob3Igc2hhZG93IHJvb3QuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUpOgorICAg
ICAgICBJbXBsZW1lbnRlZCB0byB1cGRhdGUgY2FudmFzIHN0eWxlIHdpZHRoIG9yIGhlaWdodCB3
aGVuIHdpZHRoIG9yIGhlaWdodAorICAgICAgICBhdHRyaWJ1dGUncyB2YWx1ZSBpcyBjaGFuZ2Vk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KyAgICAgICAgSWYgbm8gYXV0aG9yIHNoYWRvdyByb290cyBhcmUgYWRkZWQsIGludm9rZSByZXNl
dCgpLiBJZiBhZGRlZCwganVzdAorICAgICAgICB1cGRhdGUgc3R5bGUgd2lkdGggb3IgaGVpZ2h0
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToK
KyAgICAgICAgSWYgYW55IHNoYWRvdyBkb20gc3VidHJlZSBpcyBhZGRlZCBhbmQgc3R5bGUgaGFz
IGNvbnRlbnQsIGNyZWF0ZQorICAgICAgICBhIG5ldyBSZW5kZXJPYmplY3QsIG5vdCBSZW5kZXJI
VE1MQ2FudmFzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OndpbGxBZGRB
dXRob3JTaGFkb3dSb290KToKKyAgICAgICAgVGhpcyBtZXRob2QgaXMgaW52b2tlZCBmcm9tIEVs
ZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QuIElmIG5vIHVzZXIKKyAgICAgICAgYWdlbnQgc2hh
ZG93IHJvb3QgaXMgYWRkZWQgKD0gdGhlIGZpcnN0IHRpbWUgd2hlbiB0aGUKKyAgICAgICAgd2ls
bEFkZEF1dGhvclNoYWRvd1Jvb3QgaXMgaW52b2tlZCksIGNyZWF0ZSBhIHVzZXIgYWdlbnQgc2hh
ZG93IGRvbQorICAgICAgICB0cmVlIGFuZCBhZGQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIENyZWF0ZSBhIHVzZXIg
YWdlbnQgc2hhZG93IGRvbSB0cmVlLiBJdCBoYXMgb25seSBvbmUgZWxlbWVudCBmb3IKKyAgICAg
ICAgcmVuZGVyaW5nIDxjYW52YXM+LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgSW5zdGVhZCBvZiBtX3JlbmRlcmVySXNDYW52YXMsIHVzZSBy
ZW5kZXJlci0+aXNDYW52YXMoKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpoYXNBdXRob3JTaGFkb3dSb290KToKKyAgICAgICAgUmV0dXJuIHRydWUgd2hlbiBhbnkgYXV0
aG9yIHNoYWRvdyByb290IGlzIGFkZGVkLiBPdGhlcndpc2UsIGZhbHNlLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlbmRlcmVyQ2FudmFzKToKKyAgICAgICAgUmV0dXJu
IGFuIGluc3RhbmNlIG9mIGNsYXNzIHJlbmRlckhUTUxDYW52YXMsIGkuZS4gaWYgYW55IGF1dGhv
ciBzaGFkb3cKKyAgICAgICAgcm9vdCBpcyBhZGRlZCwgcmV0dXJucyBhIHJlbmRlcmVyIG9mIHRo
ZSBlbGVtZW50IGluIHRoZSB1c2VyIGFnZW50CisgICAgICAgIHNoYWRvdyBkb20gdHJlZS4gT3Ro
ZXJ3aXNlLCByZXR1cm5zIGEgcmVuZGVyZXIgb2YKKyAgICAgICAgdGhlIEhUTUxDYW52YXNFbGVt
ZW50LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXJGb3JD
YW52YXMpOgorICAgICAgICBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgcmVuZGVySFRNTENhbnZhcyBh
bmQgcmV0dXJuLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAg
UmVtb3ZlZCBtX3JlbmRlcmVySXNDYW52YXMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoSFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6aXNIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgIElmIHRoZSBnaXZlbiBub2Rl
IGlzIGFuIGluc3RhbmNlIG9mIEhUTUxDYW52YXNFbGVtZW50LCByZXR1cm5zIHRydWUuCisgICAg
ICAgIChXZWJDb3JlOjp0b0hUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxU
YWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5u
ZXJFbGVtZW50OjpDYW52YXNJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
SW5uZXJFbGVtZW50Ojpob3N0Q2FudmFzKToKKyAgICAgICAgUmV0dXJucyBpdHMgc2hhZG93IGhv
c3QsIGkuZS4gYW4gaW5zdGFuY2Ugb2YgSFRNTENhbnZhc0VsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgQ3JlYXRl
IGEgcmVuZGVyZXIgZm9yIENhbnZhc0lubmVyRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc0lubmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBUbyBhcHBseSBzdHls
ZXMgdG8gQ2FudmFzSW5uZXJFbGVtZW50LCBhZGRlZAorICAgICAgICAiLXdlYmtpdC1jYW52YXMt
aW5uZXItZWxlbWVudCIuCisgICAgICAgICogaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYW52YXNJbm5lckVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5uZXJFbGVtZW50OjpjYW52YXNSZW5kZXJl
cik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjppc0NhbnZhc0lubmVyRWxlbWVudCk6CisgICAgICAgIElmIHRoZSBnaXZl
biBub2RlIGlzIGFuIGluc3RhbmNlIG9mIENhbnZhc0lubmVyRWxlbWVudCwgcmV0dXJucyB0cnVl
LgorICAgICAgICAoV2ViQ29yZTo6dG9DYW52YXNJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6aG9zdENhbnZhc0VsZW1lbnQpOgorICAgICAgICBJZiB0aGUgZ2l2ZW4gbm9kZSBpcyBh
biBpbnN0YW5jZSBvZiBDYW52YXNJbm5lckVsZW1lbnQsIHJldHVybnMgaXRzCisgICAgICAgIHNo
YWRvdyBob3N0LiBJZiBhbiBpbnN0YW5jZSBvZiBIVE1MQ2FudmFzRWxlbWVudCwgcmV0dXJucyB0
aGUgZ2l2ZW4KKyAgICAgICAgbm9kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENh
bnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1M
Q2FudmFzKToKKyAgICAgICAgQ2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgYXJndW1lbnQg
ZnJvbSBIVE1MQ2FudmFzRWxlbWVudCogdG8KKyAgICAgICAgSFRNTEVsZW1lbnQqLiBUbyBvYnRh
aW4gc2l6ZSBvZiB0aGUgZWxlbWVudCwgdXNlIGhvc3RDYW52YXNFbGVtZW50IHRvCisgICAgICAg
IG9idGFpbiBIVE1MQ2FudmFzRWxlbWVudCogYW5kIGludm9rZSBzaXplKCkuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpyZXF1aXJlc0xheWVyKToKKyAgICAgICAgVXNlIGhv
c3RDYW52YXNFbGVtZW50IHRvIG9idGFpbiBIVE1MQ2FudmFzRWxlbWVudCogZnJvbSBub2RlKCks
CisgICAgICAgIGJlY2F1c2Ugbm9kZSgpIGNhbiBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MQ2FudmFz
RWxlbWVudCBvcgorICAgICAgICBDYW52YXNJbm5lckVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJIVE1MQ2FudmFzOjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgVXNlIGhvc3RDYW52
YXNFbGVtZW50IHRvIG9idGFpbiBIVE1MQ2FudmFzRWxlbWVudCogZnJvbSBub2RlKCkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCk6CisgICAg
ICAgIFVzZSBob3N0Q2FudmFzRWxlbWVudCB0byBvYnRhaW4gSFRNTENhbnZhc0VsZW1lbnQqIGZy
b20gbm9kZSgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlbmRlckhUTUxDYW52YXMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBY2Nl
bGVyYXRlZENhbnZhcyk6CisgICAgICAgIFVzZSBob3N0Q2FudmFzRWxlbWVudCB0byBvYnRhaW4g
SFRNTENhbnZhc0VsZW1lbnQqIGZyb20gbm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXllcik6CisgICAgICAgIGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xh
eWVyQ29uZmlndXJhdGlvbik6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKToKKyAgICAgICAgZGl0dG8u
CisKIDIwMTItMDgtMjcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDg0OApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBhYzhlMTNhYmNlYWZkMDg5NzMyNDIyYzg5Y2M5MDRmNTliNDcxOTdjLi5k
YmZhMmMyM2MzNmM4ZmZiY2UxMDlhYWQ0MGJjNmJhZjZhOTZjMDJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTQ5OCw2ICsxNDk4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwv
cGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCiAKKyAgICBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwCiAgICAgaHRt
bC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmNwcAogICAgIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMWEzOWQxYWJkYTZkNWI3YzMyOWJm
YWIzNDY0N2M2OWExNDNjYmY0My4uMzI3NDAxNTFiM2QwOWI1YzcxZmVmMGMzMGUxMTA4OWE0ZTIw
YTcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNDgxLDYgKzM0ODEsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1
ZGl0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVt
ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVt
ZW50LmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVu
dC5jcHAgXAorICAgIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVu
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IGQ0NDYzZWRmMjBjYTY2OWE0ZGEyYjRkMWJlZWMyNjEyMGZjMDQ1ZGUuLmM3
Y2RhNmU5YTljZjVjN2U5MzlhY2U5ODgyYjI0YmUwMjk0NWNlMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
NzEwLDYgKzcxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL1RleHREb2N1bWVu
dFBhcnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcCBc
CiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgXAorICAgIGh0bWwvc2hhZG93L0NhbnZh
c0lubmVyRWxlbWVudC5jcHAgXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5j
cHAgXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAgaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAz
N2U0Y2MyM2ZiNjIwZDA5M2Q5YTA0OGM3NGQ4YjJkOWNlMzNlZDZiLi4zZjgwNzY4Yjc3MmJkZTJk
ZDRmZGRkYWU2MWU2YmNmNDg0NWJmNjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NzY3LDYgKzU3
NjcsOCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAnaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0
bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvc2hh
ZG93L0NhbnZhc0lubmVyRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250
ZW50RGlzdHJpYnV0b3IuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50RGlz
dHJpYnV0b3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVl
cnkuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5ZDU0NTllM2JkN2EyYzcyZjE5YjA0YmQ2ZDc0ZTJhM2QyZTg0YzQ4Li5h
YTRmZDU5ZmVjYTEyYTI2MjRjM2RjMjY0NGNmMWJmZmNmYWExYjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzAxLDYgKzYz
MDEsOCBAQAogCQlGQUJFNzJGOTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MTWF0aEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkYy
MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxNYXRoRWxlbWVudC5oICovOyB9OwogCQlGQUJFNzJG
RDEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkFCRTcyRkIxMDU5QzIxMTAwRDk5
OUREIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJRkFCRTcyRkUxMDU5QzIx
MTAwRDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1l
cy5jcHAgKi87IH07CisJCUZCMjBCMzExMTVFQjRCOEYwMDI3OENDRCAvKiBDYW52YXNJbm5lckVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkIyMEIyREIxNUVCNDFFNDAwMjc4Q0NEIC8qIENhbnZhc0lubmVyRWxlbWVudC5jcHAgKi87IH07
CisJCUZCMjBCMzEzMTVFQjRCOTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCMjBCMkRDMTVFQjQx
RTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCAqLzsgfTsKIAkJRkI3OEFEMkUxNTFC
RjVFNjAwRkU1NEQzIC8qIENTU1BhcnNlck1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCNzhBRDJDMTUxQkY1RDIwMEZFNTREMyAvKiBDU1NQYXJz
ZXJNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkJDMjIwREYxMjM3RkJFQjAwQkNGNzg4IC8qIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCQzIyMERF
MTIzN0ZCRUIwMEJDRjc4OCAvKiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgKi87IH07CiAJ
CUZEMDBEN0E0MTRBM0Y2MTkwMDczNDAxMSAvKiBTaW5jUmVzYW1wbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDBEN0EyMTRBM0Y2MTkwMDcz
NDAxMSAvKiBTaW5jUmVzYW1wbGVyLmNwcCAqLzsgfTsKQEAgLTEzNjk0LDYgKzEzNjk2LDggQEAK
IAkJRkFCRTcyRjMxMDU5QzFFQjAwRDk5OUREIC8qIG1hdGh0YWdzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IG1hdGh0YWdzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQUJF
NzJGQjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQUJFNzJGQzEwNTlDMjExMDBEOTk5REQgLyog
TWF0aE1MTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0
aE1MTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGQjIwQjJEQjE1RUI0
MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZhc0lubmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUZCMjBCMkRDMTVFQjQxRTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FudmFzSW5uZXJFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZCNzhBRDJDMTUxQkY1RDIwMEZF
NTREMyAvKiBDU1NQYXJzZXJNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1BhcnNlck1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkJDMjIwREUx
MjM3RkJFQjAwQkNGNzg4IC8qIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQwMEQ3QTIxNEEzRjYxOTAwNzM0MDExIC8q
IFNpbmNSZXNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2luY1Jlc2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDk0Myw2
ICsxNDk0Nyw4IEBACiAJCTQxNTBGOUVEMTJCNkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUZCMjBCMkRCMTVFQjQx
RTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuY3BwICovLAorCQkJCUZCMjBCMkRDMTVF
QjQxRTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCAqLywKIAkJCQk1N0I3OTE5RjE0
QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudERpc3RyaWJ1dG9yLmNwcCAqLywKIAkJCQk1N0I3OTFB
MDE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudERpc3RyaWJ1dG9yLmggKi8sCiAJCQkJNTdCNzkx
QTExNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKQEAgLTI1
NDg2LDYgKzI1NDkyLDcgQEAKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1Bv
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNzdBQkEwMTVERUZFRUYwMDMxRkQwNCAvKiBQYWdp
bmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ3NkFBODE1REM0QkIxMDAzMDVEQjIgLyog
V3JpdGluZ01vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUZCMjBCMzEzMTVFQjRCOTQwMDI3OEND
RCAvKiBDYW52YXNJbm5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQjgwMUJCMTVF
QzU4QzcwMENFNjQzRCAvKiBMYXlvdXRUeXBlc0lubGluZU1ldGhvZHMuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
Mjg1NzYsNiArMjg1ODMsNyBAQAogCQkJCTUyQjZDOUM1MTVFM0Y0REYwMDY5MEIwNSAvKiBOYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0NBOUUyMTVFM0Y2MkMw
MDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTJDQ0E5RTkxNUUzRjY0QzAwNTNDNzdGIC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb24u
bW0gaW4gU291cmNlcyAqLywKKwkJCQlGQjIwQjMxMTE1RUI0QjhGMDAyNzhDQ0QgLyogQ2FudmFz
SW5uZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcAppbmRleCBlMWI5ZjQ4YTE5ZTljZTYyMDYxNmFjNzUzN2NhYjY0N2Q2
MTI0N2IzLi4yMzI1ZDgwZTEzZjc4NTU2NzZiZGIyMzY4Njk4NWZkNmYzY2E2NjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkNhbnZhc0NvbnRleHRBdHRyaWJ1dGVz
LmgiCiAjaW5jbHVkZSAiQ2FudmFzR3JhZGllbnQuaCIKKyNpbmNsdWRlICJDYW52YXNJbm5lckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIKQEAgLTQ2LDYgKzQ3
LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
PG1hdGguaD4KICNpbmNsdWRlIDxzdGRpby5oPgogCkBAIC04MSw3ICs4Myw2IEBAIHN0YXRpYyBj
b25zdCBmbG9hdCBNYXhTa2lhRGltID0gMzI3NjcuMEY7IC8vIE1heGltdW0gd2lkdGgvaGVpZ2h0
IGluIENTUyBwaXhlbHMuCiBIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3NpemUoRGVmYXVsdFdpZHRoLCBE
ZWZhdWx0SGVpZ2h0KQotICAgICwgbV9yZW5kZXJlcklzQ2FudmFzKGZhbHNlKQogICAgICwgbV9p
Z25vcmVSZXNldChmYWxzZSkKICNpZiBFTkFCTEUoSElHSF9EUElfQ0FOVkFTKQogICAgICAgLy8g
Tk9URTogSGlnaC1EUEkgY2FudmFzIHJlcXVpcmVzIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBJbWFn
ZUJ1ZmZlciBpbXBsZW1lbnRhdGlvbiB0byByZXNwZWN0CkBAIC0xMTYsMjMgKzExNyw1NyBAQCBI
VE1MQ2FudmFzRWxlbWVudDo6fkhUTUxDYW52YXNFbGVtZW50KCkKICAgICBtX2NvbnRleHQuY2xl
YXIoKTsgLy8gRW5zdXJlIHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCiB9
CiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgaWYgKGhhc0F1dGhvclNoYWRvd1Jv
b3QoKSAmJiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZShuYW1lKTsKK30KKwordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlLCBTdHlsZVByb3BlcnR5U2V0
KiBzdHlsZSkKK3sKKyAgICBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSB3aWR0aEF0dHIpCisgICAg
ICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRoLCBhdHRyaWJ1
dGUudmFsdWUoKSk7CisgICAgZWxzZSBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBoZWlnaHRBdHRy
KQorICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQs
IGF0dHJpYnV0ZS52YWx1ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JBdHRyaWJ1dGUoYXR0cmlidXRlLCBzdHlsZSk7Cit9CisKIHZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQog
ewogICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHdpZHRoQXR0ciB8fCBhdHRyaWJ1dGUubmFt
ZSgpID09IGhlaWdodEF0dHIpCi0gICAgICAgIHJlc2V0KCk7CisgICAgICAgIGlmICghaGFzQXV0
aG9yU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgcmVzZXQoKTsKICAgICBIVE1MRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSog
c3R5bGUpCiB7CisgICAgaWYgKHN0eWxlLT5oYXNDb250ZW50KCkgfHwgc2hhZG93KCkpCisgICAg
ICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisKICAg
ICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwotICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0
KSkgewotICAgICAgICBtX3JlbmRlcmVySXNDYW52YXMgPSB0cnVlOwotICAgICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVySFRNTENhbnZhcyh0aGlzKTsKLSAgICB9CisgICAgaWYgKCFmcmFt
ZSB8fCAhZnJhbWUtPnNjcmlwdCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0
ZVNjcmlwdCkpCisgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlz
LCBzdHlsZSk7CisKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXJGb3JDYW52YXModGhpcywgYXJl
bmEpOworfQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojp3aWxsQWRkQXV0aG9yU2hhZG93Um9v
dCgpCit7CisgICAgaWYgKHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9yZW5kZXJlcklzQ2FudmFzID0gZmFsc2U7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihhcmVuYSwgc3R5bGUpOworICAgIGNyZWF0ZVNoYWRvd1N1YnRyZWUo
KTsKK30KKwordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit7
CisgICAgUmVmUHRyPENhbnZhc0lubmVyRWxlbWVudD4gaW5uZXJFbGVtZW50ID0gQ2FudmFzSW5u
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgCisgICAgUmVmUHRyPFNoYWRvd1Jv
b3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6VXNlckFnZW50
U2hhZG93Um9vdCk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXJFbGVtZW50KTsKIH0KIAog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6YXR0YWNoKCkKQEAgLTI4MCw3ICszMTUsNyBAQCB2b2lk
IEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAjZW5kaWYKIAogICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewotICAgICAgICBpZiAobV9yZW5kZXJl
cklzQ2FudmFzKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+aXNDYW52YXMoKSkgewogICAgICAg
ICAgICAgaWYgKG9sZFNpemUgIT0gc2l6ZSgpKSB7CiAgICAgICAgICAgICAgICAgdG9SZW5kZXJI
VE1MQ2FudmFzKHJlbmRlcmVyKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCkBAIC02MzIsNCArNjY3LDI3IEBAIEFmZmluZVRyYW5zZm9ybSBI
VE1MQ2FudmFzRWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW1h
Z2VCdWZmZXItPmJhc2VUcmFuc2Zvcm0oKSAqIHRyYW5zZm9ybTsKIH0KIAorYm9vbCBIVE1MQ2Fu
dmFzRWxlbWVudDo6aGFzQXV0aG9yU2hhZG93Um9vdCgpIGNvbnN0Cit7CisgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCkpIHsKKyAgICAgICAgQVNTRVJUKHJv
b3QtPmZpcnN0Q2hpbGQoKS0+aGFzVGFnTmFtZSh3ZWJraXRJbm5lckNhbnZhc1RhZykpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZW5kZXJP
YmplY3QqIEhUTUxDYW52YXNFbGVtZW50OjpyZW5kZXJlckNhbnZhcygpCit7CisgICAgaWYgKFNo
YWRvd1Jvb3QqIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCkpIHsKKyAgICAgICAgQVNTRVJU
KHJvb3QtPmZpcnN0Q2hpbGQoKS0+aGFzVGFnTmFtZSh3ZWJraXRJbm5lckNhbnZhc1RhZykpOwor
ICAgICAgICByZXR1cm4gdG9FbGVtZW50KHJvb3QtPmZpcnN0Q2hpbGQoKSktPnJlbmRlcmVyKCk7
CisgICAgfQorICAgIHJldHVybiByZW5kZXJlcigpOworfQorCitSZW5kZXJPYmplY3QqIENhbnZh
c0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFzKEhUTUxFbGVtZW50KiBlbGVtZW50LCBS
ZW5kZXJBcmVuYSogYXJlbmEpCit7CisgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckhUTUxD
YW52YXMoZWxlbWVudCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaAppbmRleCAyZGRlODBmZDRlMDJiYzQ1ODI0NmUyOTA4NmQ5ZTRkNzMzZWI0MjE1Li44NzIz
NjdjZjljZWFhNWJkMjU0MzBmN2VjNmIwYTM5YjlhZmVlOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzOworY2xhc3MgQ2FudmFzSW5uZXJF
bGVtZW50OwogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXI7CkBAIC02MSwxMiArNjIsMTkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW52YXNEZXN0cm95ZWQoSFRNTENhbnZhc0Vs
ZW1lbnQqKSA9IDA7CiB9OwogCi1jbGFzcyBIVE1MQ2FudmFzRWxlbWVudCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CitjbGFzcyBDYW52YXNFbGVtZW50IHsKK3Byb3RlY3RlZDoKKyAgICBSZW5kZXJP
YmplY3QqIGNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFzKEhUTUxFbGVtZW50KiwgUmVuZGVyQXJlbmEq
KTsKK307CisKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50LCBw
dWJsaWMgQ2FudmFzRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TENhbnZhc0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhUTUxDYW52YXNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAgICAgdmlydHVhbCB+SFRNTENhbnZhc0VsZW1lbnQoKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQWRkQXV0aG9yU2hhZG93Um9vdCgpIE9WRVJSSURFOworCiAgICAgdm9pZCBhZGRPYnNl
cnZlcihDYW52YXNPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoQ2FudmFzT2Jz
ZXJ2ZXIqKTsKIApAQCAtMTQwLDEwICsxNDgsMTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBI
VE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAorICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisKKyAgICBib29sIGlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2b2lkIGNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmLCBTdHlsZVBy
b3BlcnR5U2V0KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lk
IGF0dGFjaCgpOwogCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlckNhbnZhcygpOworICAgIGJv
b2wgaGFzQXV0aG9yU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIHZvaWQgcmVzZXQoKTsKIAogICAg
IHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdDsKQEAgLTE2MSw4ICsxNzUsNiBAQCBwcml2
YXRlOgogCiAgICAgT3duUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsKIAot
ICAgIGJvb2wgbV9yZW5kZXJlcklzQ2FudmFzOwotCiAgICAgYm9vbCBtX2lnbm9yZVJlc2V0Owog
ICAgIEZsb2F0UmVjdCBtX2RpcnR5UmVjdDsKIApAQCAtMTc5LDYgKzE5MSwxNyBAQCBwcml2YXRl
OgogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhp
cyBpcyB0ZW1wb3JhcnkgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2Ug
YnVmZmVyIHRvIHJlbmRlciAoYW5kIGZvciBDU1NDYW52YXNWYWx1ZSkuCiB9OwogCitpbmxpbmUg
Ym9vbCBpc0hUTUxDYW52YXNFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpjYW52YXNUYWcpOworfQorCitpbmxpbmUgSFRNTENhbnZh
c0VsZW1lbnQqIHRvSFRNTENhbnZhc0VsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQo
IW5vZGUgfHwgaXNIVE1MQ2FudmFzRWxlbWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDM2NjBhYjk0OGUwNzg3ODk3
NDdiY2FlYmVlNWQwYjY5OGNmMzVhZmUuLmQwMmFkNjA1YzI3YjM5ZGYxMjRiZGNiODJiNjE1MDJm
ZDRkOThjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMzksMyArMTM5
LDQgQEAgdmlkZW8gd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJ
REVPLCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEIKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiB4bXAgaW50ZXJmYWNlTmFtZT1IVE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAord2Via2l0SW5uZXJDYW52YXMgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudCwgbm9Db25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvQ2FudmFzSW5uZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nh
bnZhc0lubmVyRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZhOWUwN2E4ODM4ZDgzNzI2YTU1Yjlj
MmIzNGI3Y2QyMmJmNTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDYW52YXNJbm5lckVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhU
TUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbWFnZUxvYWRlci5oIgorI2luY2x1ZGUgIlJl
bmRlckltYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKKworQ2FudmFzSW5uZXJFbGVtZW50OjpDYW52YXNJbm5lckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQoSFRNTE5hbWVzOjp3ZWJraXRJbm5lckNh
bnZhc1RhZywgZG9jdW1lbnQpCit7Cit9CisKK1JlbmRlck9iamVjdCogQ2FudmFzSW5uZXJFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHls
ZSkKK3sKKyAgICBpZiAoc3R5bGUtPmhhc0NvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRl
ck9iamVjdDo6Y3JlYXRlT2JqZWN0KHRoaXMsIHN0eWxlKTsKKyAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXJGb3JDYW52YXModGhpcywgYXJlbmEpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIENh
bnZhc0lubmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWNhbnZhcy1pbm5l
ci1lbGVtZW50IikpOworICAgIHJldHVybiBwc2V1ZG9JZDsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2I5
Y2I5ZGU3NTE3Y2QzNmNhNmE4YzhkODNlNjRjNjQxOTI4YzUxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50LmgKQEAgLTAsMCAr
MSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ2FudmFzSW5uZXJFbGVtZW50X2gKKyNkZWZpbmUgQ2FudmFzSW5uZXJF
bGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CitjbGFzcyBSZW5kZXJPYmplY3Q7
CisKK2NsYXNzIENhbnZhc0lubmVyRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGlj
IENhbnZhc0VsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc0lu
bmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGhv
c3RDYW52YXMoKSB7IHJldHVybiB0b0hUTUxDYW52YXNFbGVtZW50KHNoYWRvd0FuY2VzdG9yTm9k
ZSgpKTsgfQorCitwcml2YXRlOgorICAgIENhbnZhc0lubmVyRWxlbWVudChEb2N1bWVudCopOwor
CisgICAgUmVuZGVyT2JqZWN0KiBjYW52YXNSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIEhUTUxF
bGVtZW50OjpyZW5kZXJlcigpOyB9CisKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwor
fTsKKworaW5saW5lIFBhc3NSZWZQdHI8Q2FudmFzSW5uZXJFbGVtZW50PiBDYW52YXNJbm5lckVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDYW52YXNJbm5lckVsZW1lbnQoZG9jdW1lbnQpKTsKK30KKworaW5saW5lIGJvb2wgaXND
YW52YXNJbm5lckVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gIW5vZGUgfHwgbm9k
ZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OndlYmtpdElubmVyQ2FudmFzVGFnKTsKK30KKworaW5s
aW5lIENhbnZhc0lubmVyRWxlbWVudCogdG9DYW52YXNJbm5lckVsZW1lbnQoTm9kZSogbm9kZSkK
K3sKKyAgICBBU1NFUlQoaXNDYW52YXNJbm5lckVsZW1lbnQobm9kZSkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxDYW52YXNJbm5lckVsZW1lbnQqPihub2RlKTsKK30KKworaW5saW5lIEhUTUxD
YW52YXNFbGVtZW50KiBob3N0Q2FudmFzRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIGlmIChp
c0hUTUxDYW52YXNFbGVtZW50KG5vZGUpKQorICAgICAgICByZXR1cm4gdG9IVE1MQ2FudmFzRWxl
bWVudChub2RlKTsKKyAgICByZXR1cm4gaXNDYW52YXNJbm5lckVsZW1lbnQobm9kZSk/IHRvQ2Fu
dmFzSW5uZXJFbGVtZW50KG5vZGUpLT5ob3N0Q2FudmFzKCkgOiAwOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCmluZGV4
IDMzMTE2OTg5ZTQxYzUzMGViNjMyMzA5MjAwZTNmMjUxYjU4ZTdmYjMuLjdiNmNhNWMyMTYxNzgy
ZjlhZmRhYzI2ZTQyMmJiNDkyYTJjZTJlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySFRNTENhbnZhcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAKKyNpbmNsdWRlICJDYW52YXNJ
bm5lckVsZW1lbnQuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDEsOSArNDIsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1SZW5k
ZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKEhUTUxDYW52YXNFbGVtZW50KiBlbGVtZW50
KQotICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgZWxlbWVudC0+c2l6ZSgpKQorUmVuZGVy
SFRNTENhbnZhczo6UmVuZGVySFRNTENhbnZhcyhIVE1MRWxlbWVudCogZWxlbWVudCkKKyAgICA6
IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQsIGhvc3RDYW52YXNFbGVtZW50KGVsZW1lbnQpLT5zaXpl
KCkpCiB7CisgICAgQVNTRVJUKGlzQ2FudmFzSW5uZXJFbGVtZW50KGVsZW1lbnQpIHx8IGlzSFRN
TENhbnZhc0VsZW1lbnQoZWxlbWVudCkpOwogICAgIHZpZXcoKS0+ZnJhbWVWaWV3KCktPnNldElz
VmlzdWFsbHlOb25FbXB0eSgpOwogfQogCkBAIC01Miw3ICs1NCw3IEBAIGJvb2wgUmVuZGVySFRN
TENhbnZhczo6cmVxdWlyZXNMYXllcigpIGNvbnN0CiAgICAgaWYgKFJlbmRlclJlcGxhY2VkOjpy
ZXF1aXJlc0xheWVyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAotICAgIEhUTUxDYW52
YXNFbGVtZW50KiBjYW52YXMgPSBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUo
KSk7CisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KG5v
ZGUoKSk7CiAgICAgcmV0dXJuIGNhbnZhcyAmJiBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSAm
JiBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKS0+aXNBY2NlbGVyYXRlZCgpOwogfQogCkBAIC02
OSwxNCArNzEsMTQgQEAgdm9pZCBSZW5kZXJIVE1MQ2FudmFzOjpwYWludFJlcGxhY2VkKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGEKICAgICB9CiAKICAgICBib29s
IHVzZUxvd1F1YWxpdHlTY2FsZSA9IHN0eWxlKCktPmltYWdlUmVuZGVyaW5nKCkgPT0gSW1hZ2VS
ZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0OwotICAgIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVt
ZW50Kj4obm9kZSgpKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHVzZUxvd1F1YWxp
dHlTY2FsZSk7CisgICAgaG9zdENhbnZhc0VsZW1lbnQobm9kZSgpKS0+cGFpbnQocGFpbnRJbmZv
LmNvbnRleHQsIHJlY3QsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgUmVuZGVySFRN
TENhbnZhczo6Y2FudmFzU2l6ZUNoYW5nZWQoKQogewotICAgIEludFNpemUgY2FudmFzU2l6ZSA9
IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSgpKS0+c2l6ZSgpOworICAgIElu
dFNpemUgY2FudmFzU2l6ZSA9IGhvc3RDYW52YXNFbGVtZW50KG5vZGUoKSktPnNpemUoKTsKICAg
ICBJbnRTaXplIHpvb21lZFNpemUoY2FudmFzU2l6ZS53aWR0aCgpICogc3R5bGUoKS0+ZWZmZWN0
aXZlWm9vbSgpLCBjYW52YXNTaXplLmhlaWdodCgpICogc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgp
KTsKLQorICAgIAogICAgIGlmICh6b29tZWRTaXplID09IGludHJpbnNpY1NpemUoKSkKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SFRNTENhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMu
aAppbmRleCA1YmVkMjdmNGYyZWIzZGUzYjFhMDgxNWNhNTFhMTVmMTY3MzE0MTA2Li40Y2Y3ZjAw
OGI2NzE0YzZlNDU3ZDZjNGY0ZjM0NzIxNWM0NjlmMzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgKQEAgLTMwLDExICszMCwxMSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIEhUTUxDYW52YXNFbGVtZW50OworY2xhc3MgQ2FudmFzRWxl
bWVudDsKIAogY2xhc3MgUmVuZGVySFRNTENhbnZhcyA6IHB1YmxpYyBSZW5kZXJSZXBsYWNlZCB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFzRWxlbWVu
dCopOworICAgIGV4cGxpY2l0IFJlbmRlckhUTUxDYW52YXMoSFRNTEVsZW1lbnQqKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc0NhbnZhcygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBkMjZlZWYxZTM0ZThlNDU1ZjI0YmNh
YjRkMmFjMjJjZjI5ZWMzZGY1Li4yODkwMGY5MzQ2YWU5NTMyOGU0Y2ZhNTFjNjUzMjA1ZTVhZjVl
ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgog
CiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkNhbnZhc0lubmVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC04MSw3ICs4Miw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FjY2VsZXJhdGVkQ2FudmFzKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiB7CiAjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQogICAgIGlmIChyZW5kZXJlci0+aXNDYW52YXMoKSkgewotICAgICAgICBIVE1MQ2Fu
dmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5k
ZXJlci0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RD
YW52YXNFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwogICAgICAgICBpZiAoQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpKQogICAgICAg
ICAgICAgcmV0dXJuIGNvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKTsKICAgICB9CkBAIC0xOTQsNyAr
MTk1LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xh
eWVyKCkKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENBKQogICAgIGlmICghY29tcG9zaXRv
cigpLT5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgJiYgcmVuZGVyZXIoKS0+aXNDYW52YXMo
KSkgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRN
TENhbnZhc0VsZW1lbnQqPihyZW5kZXJlcigpLT5ub2RlKCkpOworICAgICAgICBIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzID0gaG9zdENhbnZhc0VsZW1lbnQocmVuZGVyZXIoKS0+bm9kZSgpKTsK
ICAgICAgICAgaWYgKGNhbnZhcy0+c2hvdWxkQWNjZWxlcmF0ZShjYW52YXMtPnNpemUoKSkpCiAg
ICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyh0cnVlKTsK
ICAgICB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHTCkg
fHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBlbHNlIGlmIChpc0FjY2VsZXJh
dGVkQ2FudmFzKHJlbmRlcmVyKSkgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
ID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKTsKKyAg
ICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRl
cmVyLT5ub2RlKCkpOwogICAgICAgICBpZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4
dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpKQogICAgICAgICAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRDb250ZW50c1RvQ2FudmFzKGNvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAg
ICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDQ1MGI0ZmM4N2MxNmI2ZjA0
Zjk1ZDk1YWFiYTkwZjU4ZjVjOTNiN2EuLjFlYWMzZTk2MGZlNDJiMDI2ZjViNDlmZTE5OTMwZjhk
ODRjOTg2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiQ2FudmFzSW5uZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIK
QEAgLTE2OTUsNyArMTY5Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJl
c0NvbXBvc2l0aW5nRm9yQ2FudmFzKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChyZW5kZXJlci0+aXNDYW52YXMoKSkgewotICAgICAgICBI
VE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQq
PihyZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9
IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwogICAgICAgICByZXR1cm4gY2Fu
dmFzLT5yZW5kZXJpbmdDb250ZXh0KCkgJiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCktPmlz
QWNjZWxlcmF0ZWQoKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNjNmU5OWVm
ZjIxNmUyM2RhMjEzYWYyNzBiN2M5MzcyMzFmMzE4MGMuLjRmZTQ5MmQzNzk2NzFkMDI4NTg0NDI5
ODA3YzZiODUzOWM0Yzc5ODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOC0yNyAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IERPTSBm
b3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1j
YW52YXMtY29udGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLWdldGNvbnRleHQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy1zdHlsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3ctZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgt
bXVsdGlwbGUtc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1
ZG8taWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lk
dGgtaGVpZ2h0LWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRo
LXdpZHRoLWhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMjcgIEJldGggRGFraW4g
IDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NDg0OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1jb250ZW50LWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYThiYWZmM2EyNTljOWQ2YTg5NWFjYjQ2Mjc5YWJkNjg0YzcxZmQw
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5
ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1l
bnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBj
b250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5m
aWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2Fu
dmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJk
aXNwbGF5OiBpbmxpbmUtYmxvY2siPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PHNwYW4+ZmFs
bGJhY2s8L3NwYW4+PC9jYW52YXM+KGFmdGVyKTxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvZGl2Pgor
ICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZmExODE5YzgzMmQzZWViNDk1MjBkYjc2ZDFmZDJkMzcwNjI3ZGFk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItY2FudmFzLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAg
IHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmls
bFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUs
IDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZh
ciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcik8Y29udGVudD48
L2NvbnRlbnQ+IjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgc3BhbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICdmYWxs
YmFjayc7CisKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7
CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7Cisg
ICAgYWRkU2hhZG93RE9NKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAg
IDxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1jYW52YXMtZHluYW1pYy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZWZjYTZjOWY5NDAzZTZkYjczMTEyNmVkMDc0ZDhiYTQ0Y2U5YzQ4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1l
bnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBj
b250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5m
aWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2Fu
dmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJk
aXNwbGF5OiBpbmxpbmU7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OjIwMHB4Ij4oYmVmb3JlKTxjYW52
YXMgaWQ9Imhvc3QiPjwvY2FudmFzPihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M3
NGVjMTU4ZjdiOGYxYzgxZDEzZWM4OTY3NjY2ZWFmOWQ1ZmNlNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWlj
Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxl
bWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAs
MTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQor
CitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3
IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJl
Zm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBh
ZGRTaGFkb3dET00oaG9zdCk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICBob3N0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAxMDApOworICAgICAgICBob3N0LnNldEF0dHJp
YnV0ZSgiaGVpZ2h0IiwgMjAwKTsKKyAgICAgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworCisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxj
YW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWNhbnZhcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNzQxNzk4NWQw
MmU2ZTRlNGU5ZGNlZDJlMTUzYjBmYmM1NDBkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVs
ZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAw
LDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30K
KworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgor
ICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+KGJl
Zm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29u
dGV4dC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4YmFmZjNhMjU5YzlkNmE4OTVhY2I0NjI3
OWFiZDY4NGM3MWZkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29udGV4dC1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVw
ZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRl
eHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSkn
OworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcp
OworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAg
ICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9
Imhvc3QiPjxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvY2FudmFzPihhZnRlcik8c3Bhbj5mYWxsYmFj
azwvc3Bhbj48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LWdldGNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViYzhjOTgxYjY4YTIxZDBi
NWQxNTMyZTg5NGVmYmRlZDUxMmIyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBk
YXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7
CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRk
U2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dS
b290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48
L3NoYWRvdz4oYWZ0ZXIpPGNvbnRlbnQ+PC9jb250ZW50PiI7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Cisg
ICAgc3Bhbi5pbm5lckhUTUwgPSAnZmFsbGJhY2snOworCisgICAgdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7Cisg
ICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFp
bmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5
bGUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmM4ZDAzYzBlNTJlMmEwMmM3ZGM4ZTE5OGVi
Mzg2YTM0ZjZkNWRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwz
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENv
bnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAu
NSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9u
IGRvQXBwbHkobm9kZWlkKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChub2RlaWQpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKworZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICBkb0FwcGx5KCdob3N0MScpOworICAgIGRvQXBwbHkoJ2hvc3QyJyk7CisgICAg
ZG9BcHBseSgnaG9zdDMnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2
IHN0eWxlPSJkaXNwbGF5OiBub25lOyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7Ij4oYmVm
b3JlKTxjYW52YXMgaWQ9Imhvc3QxIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+
KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9
ImRpc3BsYXk6IGlubGluZTsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDEyMHB4OyI+KGJlZm9yZSk8
Y2FudmFzIGlkPSJob3N0MiIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjwvY2FudmFzPihhZnRl
cik8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJkaXNw
bGF5OiBpbmxpbmU7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiAxMjBweDsiPihiZWZvcmUpPGNhbnZh
cyBpZD0iaG9zdDMiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4oYWZ0ZXIpPC9k
aXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTMzMmRlMDU2NTg0NDRjYzY4ZTJkZmVhZWM1NzA2Y2VjYjExNTE2
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy1zdHlsZS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAg
dmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxs
U3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwg
NSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFy
IHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290
LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisKK2Z1
bmN0aW9uIGRvQXBwbHkobm9kZWlkKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChub2RlaWQpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKKyAgICBhZGRTaGFkb3dE
T00oaG9zdCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgZG9BcHBseSgnaG9zdDEn
KTsKKyAgICBkb0FwcGx5KCdob3N0MicpOworICAgIGRvQXBwbHkoJ2hvc3QzJyk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRh
aW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdDEiIHN0eWxlPSJkaXNw
bGF5OiBub25lIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+
CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdDIiIHN0eWxlPSJkaXNwbGF5OiBi
bG9jayIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjwvY2FudmFzPgorICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QzIiBzdHlsZT0iZGlzcGxheTogaW5saW5l
IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgt
bXVsdGlwbGUtc2hhZG93LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzliOWQyMTNmY2I1NWY4
MDU1OTU5ZGNlNTI5ZmE3MjdiOTQ2MTI3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRv
dy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRl
eHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAn
cmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAz
MCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFp
bmVyIj4KKyAgICA8ZGl2PgorICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2Nr
Ij4oYmVmb3JlKShiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+KGFmdGVyKShhZnRl
cik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgt
bXVsdGlwbGUtc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTlk
YWM0ZTVlNmMwZDBmNWY4MTRlOTJmYmRiMjhmY2ZiNTkxODI4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVs
dGlwbGUtc2hhZG93Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29u
dGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9
ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAs
IDMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0
Jyk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKKyAg
ICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAg
PGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E2NmI2NjcyNTMyODRiYjcxNWY3MzlhYmI4NmMzNWNlZGRk
NzQ1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2hvc3QgeworICAgIHdpZHRo
OiA1MDBweDsKKyAgICBoZWlnaHQ6IDUwMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5n
ZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1
NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDQ1MCwgMjUwKTsKK30KKworZnVu
Y3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUp
PHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRl
Q2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5
bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48L2Nh
bnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNh
bnZhcy13aXRoLXBzZXVkby1pZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZjN2Yy
OWI0MDFhN2VmMGVmZWVkYjA2MjI5YjJiMjBhMzgzMDg4NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVk
by1pZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorI2hvc3Q6Oi13ZWJraXQtY2FudmFzLWlubmVyLWVsZW1lbnQgeworICAgIHdpZHRoOiA1MDBw
eDsKKyAgICBoZWlnaHQ6IDUwMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1
cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250
ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUp
JzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDQ1MCwgMjUwKTsKK30KKworZnVuY3Rpb24g
YWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRv
dz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIg
aG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgYWRkU2hhZG93RE9N
KGhvc3QpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2
PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZh
cy13aXRoLXdpZHRoLWhlaWdodC1keW5hbWljLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM3
NDE2MjQ2ODRjN2EzM2M2MGI5ZmUxMDgyM2Q4Yzg0NjQzMmZhZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdp
ZHRoLWhlaWdodC1keW5hbWljLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZh
cyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7
CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNv
bnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAn
cmdiYSgxMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDcwLCAyNTAs
IDIzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29u
dGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxv
Y2s7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MzAwcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSg4MCw4
MCw4MCwwLjUpOyI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEyMCI+PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0
LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODI4ZTQ1NmQ1YzBlMTUxZTZjY2RiYjExZTc3YmEw
N2QwYjk1YmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbApAQCAt
MCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9u
IHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENv
bnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwLDEwMCwyNTUsMC41
KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKKyAgICBjb250ZXh0LmZp
bGxTdHlsZSA9ICdyZ2JhKDEwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3Qo
MCwgNzAsIDI1MCwgMjMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAg
ICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30K
KworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdob3N0Jyk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgaG9zdC5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7
CisgICAgICAgaG9zdC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSg4MCw4MCw4MCwwLjUp
IjsKKyAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMjAwIik7CisgICAgICAgaG9z
dC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIzMDAiKTsKKyAgICAgICB1cGRhdGVDYW52YXMoaG9z
dCk7CisgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAg
ICAgICA8Y2FudmFzIGlkPSJob3N0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhl
aWdodC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTliNWJhOWFmOGYyODgyMzMxNGY4MWI4ZTA5YzU1NGZmOTBiZWQwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRo
LXdpZHRoLWhlaWdodC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxl
bWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAg
IGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0
LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
IHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVD
YW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiIHdpZHRo
PSI4MCIgaGVpZ2h0PSI2NSI+PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhl
aWdodC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZWM5OTIzYmVkYTg5Y2JlNjUzNjI1NDExZGYxNDk3MTc0
YzA1MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQuaHRtbApAQCAtMCwwICsxLDMxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMo
ZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOwor
ICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250
ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00o
aG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7
CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93Pihh
ZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7CisgICAg
YWRkU2hhZG93RE9NKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxj
YW52YXMgaWQ9Imhvc3QiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2NSI+PC9jYW52YXM+CisgICAgPC9k
aXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2OTYy
YTI2Mzg1MDJlNTJjM2IzNzFlYjcxZDA4MWIyZjRhOWVhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sCkBAIC0w
LDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVw
ZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRl
eHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSkn
OworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFk
ZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93
Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+
PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhv
c3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyho
b3N0KTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4K
KyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160926</attachid>
            <date>2012-08-28 01:06:50 -0700</date>
            <delta_ts>2012-08-28 23:36:50 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-90861-20120828170641.patch</filename>
            <type>text/plain</type>
            <size>54714</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJhODZlZjY4OGQzMmE4
ZTFjZmZlZGQ4YzY4ZGIzYTJiODU5Y2ExNy4uODY1NmQ4MjIzNTBjMjZjMTc5MmVmNDMxMWVhNTRj
MjM4YWJmOWIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxMi0wOC0yNyAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IERPTSBm
b3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIFNoYWRvdyBET00gc3VwcG9ydCBmb3IgY2FudmFzIGVsZW1lbnQu
CisgICAgICAgIEFjY29yZGluZyB0byB0aGUgU2hhZG93IERPTSBzcGVjLCBjYW52YXMgZWxlbWVu
dCBzaG91bGQgd29yayBhcyBpZiBpdAorICAgICAgICBoYXMgYSB1c2VyIGFnZW50IHNoYWRvdyBk
b20uIEhvd2V2ZXIsIGl0IHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UKKyAgICAgICAgcmVncmVzc2lv
biBhbmQgbWVtb3J5IGJsb2F0IHRvIGFkZCBzdWNoIGEgdXNlciBhZ2VudCBzaGFkb3cgZG9tIHRv
CisgICAgICAgIGNhbnZhcyBlbGVtZW50IGJ5IGRlZmF1bHQuIFNvIHdlIHdvdWxkIGxpa2UgdG8g
cG9zdHBvbmUgYWRkaW5nIGEgdXNlcgorICAgICAgICBhZ2VudCBTaGFkb3cgRE9NIHVudGlsIHdl
IG5lZWQgaXQsIGkuZS4gdXNlcnMgYWRkIGFuIGF1dGhvciBzaGFkb3cgRE9NCisgICAgICAgIHRv
IGNhbnZhcyBlbGVtZW50LiBUaGUgdXNlciBhZ2VudCBTaGFkb3cgRE9NIGZvciBjYW52YXMgZWxl
bWVudCBoYXMKKyAgICAgICAgb25seSBvbmUgZWxlbWVudCwgd2hpY2ggZGlzcGxheXMgb25lIGNh
bnZhcy4gVGhlIGVsZW1lbnQgaXMgaW1wbGVtZW50ZWQKKyAgICAgICAgYnkgQ2FudmFzSW5uZXJF
bGVtZW50LmNwcCBhbmQgLmguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0
aC1tdWx0aXBsZS1zaGFkb3cuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNh
bnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1jYW52YXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgIEFkZGVkIENhbnZhc0lubmVyRWxlbWVudC5jcHAgYW5kIENh
bnZhc0lubmVyRWxlbWVudC5oLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50
KToKKyAgICAgICAgQmVjYXVzZSBvZiByZW1vdmluZyBtX3JlbmRlcmVySXNDYW52YXMsIHJlbW92
ZWQgYSBjb2RlIGZvciBpbml0aWFsaXppbmcKKyAgICAgICAgbV9yZW5kZXJJc0NhbnZhcy4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZSk6CisgICAgICAgIEltcGxlbWVudGVkIHRvIHVwZGF0ZSBjYW52YXMgd2lkdGggb3IgaGVpZ2h0
IGJ5IHVzaW5nIHdpZHRoIG9yIGhlaWdodAorICAgICAgICBhdHRyaWJ1dGUgYWZ0ZXIgYWRkaW5n
IGFueSBhdXRob3Igc2hhZG93IHJvb3QuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUpOgorICAg
ICAgICBJbXBsZW1lbnRlZCB0byB1cGRhdGUgY2FudmFzIHN0eWxlIHdpZHRoIG9yIGhlaWdodCB3
aGVuIHdpZHRoIG9yIGhlaWdodAorICAgICAgICBhdHRyaWJ1dGUncyB2YWx1ZSBpcyBjaGFuZ2Vk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KyAgICAgICAgSWYgbm8gYXV0aG9yIHNoYWRvdyByb290cyBhcmUgYWRkZWQsIGludm9rZSByZXNl
dCgpLiBJZiBhZGRlZCwganVzdAorICAgICAgICB1cGRhdGUgc3R5bGUgd2lkdGggb3IgaGVpZ2h0
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToK
KyAgICAgICAgSWYgYW55IHNoYWRvdyBkb20gc3VidHJlZSBpcyBhZGRlZCBhbmQgc3R5bGUgaGFz
IGNvbnRlbnQsIGNyZWF0ZQorICAgICAgICBhIG5ldyBSZW5kZXJPYmplY3QsIG5vdCBSZW5kZXJI
VE1MQ2FudmFzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OndpbGxBZGRB
dXRob3JTaGFkb3dSb290KToKKyAgICAgICAgVGhpcyBtZXRob2QgaXMgaW52b2tlZCBmcm9tIEVs
ZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QuIElmIG5vIHVzZXIKKyAgICAgICAgYWdlbnQgc2hh
ZG93IHJvb3QgaXMgYWRkZWQgKD0gdGhlIGZpcnN0IHRpbWUgd2hlbiB0aGUKKyAgICAgICAgd2ls
bEFkZEF1dGhvclNoYWRvd1Jvb3QgaXMgaW52b2tlZCksIGNyZWF0ZSBhIHVzZXIgYWdlbnQgc2hh
ZG93IGRvbQorICAgICAgICB0cmVlIGFuZCBhZGQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIENyZWF0ZSBhIHVzZXIg
YWdlbnQgc2hhZG93IGRvbSB0cmVlLiBJdCBoYXMgb25seSBvbmUgZWxlbWVudCBmb3IKKyAgICAg
ICAgcmVuZGVyaW5nIDxjYW52YXM+LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgSW5zdGVhZCBvZiBtX3JlbmRlcmVySXNDYW52YXMsIHVzZSBy
ZW5kZXJlci0+aXNDYW52YXMoKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpyZW5kZXJlckNhbnZhcyk6CisgICAgICAgIFJldHVybiBhbiBpbnN0YW5jZSBvZiBjbGFzcyBy
ZW5kZXJIVE1MQ2FudmFzLCBpLmUuIGlmIGFueSBhdXRob3Igc2hhZG93CisgICAgICAgIHJvb3Qg
aXMgYWRkZWQsIHJldHVybnMgYSByZW5kZXJlciBvZiB0aGUgZWxlbWVudCBpbiB0aGUgdXNlciBh
Z2VudAorICAgICAgICBzaGFkb3cgZG9tIHRyZWUuIE90aGVyd2lzZSwgcmV0dXJucyBhIHJlbmRl
cmVyIG9mCisgICAgICAgIHRoZSBIVE1MQ2FudmFzRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFzKToKKyAgICAgICAgQ3JlYXRl
IGFuIGluc3RhbmNlIG9mIHJlbmRlckhUTUxDYW52YXMgYW5kIHJldHVybi4KKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAgICAgIFJlbW92ZWQgbV9yZW5kZXJlcklzQ2Fu
dmFzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYW52YXNFbGVtZW50KToKKyAgICAg
ICAgKEhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICBJZiB0aGUgZ2l2ZW4gbm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBIVE1M
Q2FudmFzRWxlbWVudCwgcmV0dXJucyB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MQ2Fu
dmFzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICog
aHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0lubmVyRWxlbWVudDo6Q2FudmFzSW5uZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0lubmVyRWxlbWVudDo6aG9zdENhbnZh
cyk6CisgICAgICAgIFJldHVybnMgaXRzIHNoYWRvdyBob3N0LCBpLmUuIGFuIGluc3RhbmNlIG9m
IEhUTUxDYW52YXNFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5uZXJFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIENyZWF0ZSBhIHJlbmRlcmVyIGZvciBDYW52YXNJ
bm5lckVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKToKKyAgICAgICAgVG8gYXBwbHkgc3R5bGVzIHRvIENhbnZhc0lubmVyRWxlbWVu
dCwgYWRkZWQKKyAgICAgICAgIi13ZWJraXQtY2FudmFzLWlubmVyLWVsZW1lbnQiLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoQ2FudmFzSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc0lubmVyRWxlbWVudDo6Y2FudmFzUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzSW5uZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNDYW52YXNJ
bm5lckVsZW1lbnQpOgorICAgICAgICBJZiB0aGUgZ2l2ZW4gbm9kZSBpcyBhbiBpbnN0YW5jZSBv
ZiBDYW52YXNJbm5lckVsZW1lbnQsIHJldHVybnMgdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6OnRv
Q2FudmFzSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omhvc3RDYW52YXNFbGVtZW50
KToKKyAgICAgICAgSWYgdGhlIGdpdmVuIG5vZGUgaXMgYW4gaW5zdGFuY2Ugb2YgQ2FudmFzSW5u
ZXJFbGVtZW50LCByZXR1cm5zIGl0cworICAgICAgICBzaGFkb3cgaG9zdC4gSWYgYW4gaW5zdGFu
Y2Ugb2YgSFRNTENhbnZhc0VsZW1lbnQsIHJldHVybnMgdGhlIGdpdmVuCisgICAgICAgIG5vZGUu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVySFRNTENhbnZhczo6UmVuZGVySFRNTENhbnZhcyk6CisgICAgICAgIENoYW5n
ZWQgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IGZyb20gSFRNTENhbnZhc0VsZW1lbnQq
IHRvCisgICAgICAgIEhUTUxFbGVtZW50Ki4gVG8gb2J0YWluIHNpemUgb2YgdGhlIGVsZW1lbnQs
IHVzZSBob3N0Q2FudmFzRWxlbWVudCB0bworICAgICAgICBvYnRhaW4gSFRNTENhbnZhc0VsZW1l
bnQqIGFuZCBpbnZva2Ugc2l6ZSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZh
czo6cmVxdWlyZXNMYXllcik6CisgICAgICAgIFVzZSBob3N0Q2FudmFzRWxlbWVudCB0byBvYnRh
aW4gSFRNTENhbnZhc0VsZW1lbnQqIGZyb20gbm9kZSgpLAorICAgICAgICBiZWNhdXNlIG5vZGUo
KSBjYW4gYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTENhbnZhc0VsZW1lbnQgb3IKKyAgICAgICAgQ2Fu
dmFzSW5uZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6cGFp
bnRSZXBsYWNlZCk6CisgICAgICAgIFVzZSBob3N0Q2FudmFzRWxlbWVudCB0byBvYnRhaW4gSFRN
TENhbnZhc0VsZW1lbnQqIGZyb20gbm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRN
TENhbnZhczo6Y2FudmFzU2l6ZUNoYW5nZWQpOgorICAgICAgICBVc2UgaG9zdENhbnZhc0VsZW1l
bnQgdG8gb2J0YWluIEhUTUxDYW52YXNFbGVtZW50KiBmcm9tIG5vZGUoKS4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSZW5kZXJIVE1MQ2FudmFzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQWNjZWxlcmF0ZWRDYW52YXMpOgorICAgICAg
ICBVc2UgaG9zdENhbnZhc0VsZW1lbnQgdG8gb2J0YWluIEhUTUxDYW52YXNFbGVtZW50KiBmcm9t
IG5vZGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJp
bWFyeUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICBkaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21w
b3NpdGluZ0ZvckNhbnZhcyk6CisgICAgICAgIGRpdHRvLgorCiAyMDEyLTA4LTI3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQ4NDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWM4ZTEzYWJj
ZWFmZDA4OTczMjQyMmM4OWNjOTA0ZjU5YjQ3MTk3Yy4uZGJmYTJjMjNjMzZjOGZmYmNlMTA5YWFk
NDBiYzZiYWY2YTk2YzAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0OTgsNiArMTQ5OCw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL3BhcnNlci9UZXh0Vmlld1NvdXJjZVBh
cnNlci5jcHAKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAogCisgICAgaHRtbC9zaGFk
b3cvQ2FudmFzSW5uZXJFbGVtZW50LmNwcAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmli
dXRvci5jcHAKICAgICBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKICAgICBo
dG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDFhMzlkMWFiZGE2ZDViN2MzMjliZmFiMzQ2NDdjNjlhMTQzY2JmNDMuLjMy
NzQwMTUxYjNkMDliNWM3MWZlZjBjMzBlMTEwODlhNGUyMGE3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMzQ4MSw2ICszNDgxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5oIFwKKyAgICBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwIFwKKyAgICBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkNDQ2M2VkZjIw
Y2E2NjlhNGRhMmI0ZDFiZWVjMjYxMjBmYzA0NWRlLi5jN2NkYTZlOWE5Y2Y1YzdlOTM5YWNlOTg4
MmIyNGJlMDI5NDVjZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTcxMCw2ICs3MTAsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwIFwKICAgICBodG1s
L3BhcnNlci9UZXh0Vmlld1NvdXJjZVBhcnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL1hTU0F1
ZGl0b3IuY3BwIFwKKyAgICBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwIFwKICAgICBodG1sL3NoYWRvdy9D
b250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAogICAgIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMzdlNGNjMjNmYjYyMGQwOTNkOWEwNDhj
NzRkOGIyZDljZTMzZWQ2Yi4uM2Y4MDc2OGI3NzJiZGUyZGQ0ZmRkZGFlNjFlNmJjZjQ4NDViZjYx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTc2Nyw2ICs1NzY3LDggQEAKICAgICAgICAgICAgICdo
dG1sL3BhcnNlci9YU1NBdWRpdG9yLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NhbGVu
ZGFyUGlja2VyRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NhbGVuZGFy
UGlja2VyRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1sL3NoYWRvdy9DYW52YXNJbm5lckVs
ZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQu
aCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcCcsCiAg
ICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWQ1NDU5ZTNi
ZDdhMmM3MmYxOWIwNGJkNmQ3NGUyYTNkMmU4NGM0OC4uYWE0ZmQ1OWZlY2ExMmEyNjI0YzNkYzI2
NDRjZjFiZmZjZmFhMWI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMwMSw2ICs2MzAxLDggQEAKIAkJRkFCRTcyRjkxMDU5
QzFFQjAwRDk5OUREIC8qIE1hdGhNTE1hdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQUJFNzJGMjEwNTlDMUVCMDBEOTk5REQgLyogTWF0
aE1MTWF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJRkFCRTcyRkQxMDU5QzIxMTAwRDk5OUREIC8qIE1h
dGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZBQkU3MkZCMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50RmFj
dG9yeS5jcHAgKi87IH07CiAJCUZBQkU3MkZFMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1l
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQUJF
NzJGQzEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MTmFtZXMuY3BwICovOyB9OworCQlGQjIwQjMx
MTE1RUI0QjhGMDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCMjBCMkRCMTVFQjQxRTQwMDI3OEND
RCAvKiBDYW52YXNJbm5lckVsZW1lbnQuY3BwICovOyB9OworCQlGQjIwQjMxMzE1RUI0Qjk0MDAy
NzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGQjIwQjJEQzE1RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5u
ZXJFbGVtZW50LmggKi87IH07CiAJCUZCNzhBRDJFMTUxQkY1RTYwMEZFNTREMyAvKiBDU1NQYXJz
ZXJNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
Qjc4QUQyQzE1MUJGNUQyMDBGRTU0RDMgLyogQ1NTUGFyc2VyTW9kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZCQzIyMERGMTIzN0ZCRUIwMEJD
Rjc4OCAvKiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQkMyMjBERTEyMzdGQkVCMDBCQ0Y3ODggLyogR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwICovOyB9OwogCQlGRDAwRDdBNDE0QTNGNjE5MDA3MzQw
MTEgLyogU2luY1Jlc2FtcGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyogU2luY1Jlc2FtcGxlci5j
cHAgKi87IH07CkBAIC0xMzY5NCw2ICsxMzY5Niw4IEBACiAJCUZBQkU3MkYzMTA1OUMxRUIwMEQ5
OTlERCAvKiBtYXRodGFncy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRodGFncy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkFCRTcyRkIxMDU5QzIxMTAwRDk5OUREIC8q
IE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRkFCRTcyRkMxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE5hbWVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkIyMEIyREIxNUVCNDFFNDAwMjc4Q0NEIC8qIENhbnZhc0lu
bmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52
YXNJbm5lckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGQjIwQjJE
QzE1RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc0lubmVyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGQjc4QUQyQzE1MUJGNUQyMDBGRTU0RDMgLyogQ1NTUGFyc2VyTW9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQYXJzZXJNb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZCQzIyMERFMTIzN0ZCRUIwMEJDRjc4OCAvKiBHcmFw
aGljc0NvbnRleHQzRE9wZW5HTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZEMDBEN0EyMTRBM0Y2MTkwMDczNDAxMSAvKiBTaW5jUmVzYW1wbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbmNSZXNhbXBsZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5NDMsNiArMTQ5NDcsOCBAQAogCQk0MTUwRjlF
RDEyQjZFMDk5MDAwOEM4NjAgLyogc2hhZG93ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQlGQjIwQjJEQjE1RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5u
ZXJFbGVtZW50LmNwcCAqLywKKwkJCQlGQjIwQjJEQzE1RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFz
SW5uZXJFbGVtZW50LmggKi8sCiAJCQkJNTdCNzkxOUYxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRl
bnREaXN0cmlidXRvci5jcHAgKi8sCiAJCQkJNTdCNzkxQTAxNEM2QTYyOTAwRjIwMkQxIC8qIENv
bnRlbnREaXN0cmlidXRvci5oICovLAogCQkJCTU3Qjc5MUExMTRDNkE2MjkwMEYyMDJEMSAvKiBD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8sCkBAIC0yNTQ4Niw2ICsyNTQ5Miw3IEBACiAJCQkJ
RkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5Mzc3QUJBMDE1REVGRUVGMDAzMUZEMDQgLyogUGFnaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGQjIwQjMxMzE1RUI0Qjk0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUI4MDFCQjE1RUM1OEM3MDBDRTY0M0QgLyogTGF5b3V0
VHlwZXNJbmxpbmVNZXRob2RzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTI4NTc2LDYgKzI4NTgzLDcgQEAKIAkJ
CQk1MkI2QzlDNTE1RTNGNERGMDA2OTBCMDUgLyogTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MkNDQTlFMjE1RTNGNjJDMDA1M0M3N0YgLyogSlNET01OYW1lZEZs
b3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0NBOUU5MTVFM0Y2NEMwMDUz
Qzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
RkIyMEIzMTExNUVCNEI4RjAwMjc4Q0NEIC8qIENhbnZhc0lubmVyRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXgg
ZTFiOWY0OGExOWU5Y2U2MjA2MTZhYzc1MzdjYWI2NDdkNjEyNDdiMy4uM2RhOGY0NWRlMzUxZjU4
OTA0OWE5ZjFiODhlMTI5NmNkYzBkY2NlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIK
ICNpbmNsdWRlICJDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIkNhbnZhc0dy
YWRpZW50LmgiCisjaW5jbHVkZSAiQ2FudmFzSW5uZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiQ2Fu
dmFzUGF0dGVybi5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIgogI2lu
Y2x1ZGUgIkNhbnZhc1N0eWxlLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJlbmRlckhUTUxDYW52YXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgor
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3Rk
aW8uaD4KIApAQCAtODEsNyArODMsNiBAQCBzdGF0aWMgY29uc3QgZmxvYXQgTWF4U2tpYURpbSA9
IDMyNzY3LjBGOyAvLyBNYXhpbXVtIHdpZHRoL2hlaWdodCBpbiBDU1MgcGl4ZWxzLgogSFRNTENh
bnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQogICAgICwgbV9zaXplKERlZmF1bHRXaWR0aCwgRGVmYXVsdEhlaWdodCkKLSAgICAsIG1f
cmVuZGVyZXJJc0NhbnZhcyhmYWxzZSkKICAgICAsIG1faWdub3JlUmVzZXQoZmFsc2UpCiAjaWYg
RU5BQkxFKEhJR0hfRFBJX0NBTlZBUykKICAgICAgIC8vIE5PVEU6IEhpZ2gtRFBJIGNhbnZhcyBy
ZXF1aXJlcyB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgSW1hZ2VCdWZmZXIgaW1wbGVtZW50YXRpb24g
dG8gcmVzcGVjdApAQCAtMTE2LDIzICsxMTcsNTYgQEAgSFRNTENhbnZhc0VsZW1lbnQ6On5IVE1M
Q2FudmFzRWxlbWVudCgpCiAgICAgbV9jb250ZXh0LmNsZWFyKCk7IC8vIEVuc3VyZSB0aGlzIGdv
ZXMgYXdheSBiZWZvcmUgdGhlIEltYWdlQnVmZmVyLgogfQogCitib29sIEhUTUxDYW52YXNFbGVt
ZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBj
b25zdAoreworICAgIGlmICh1c2VyQWdlbnRTaGFkb3dSb290KCkgJiYgKG5hbWUgPT0gd2lkdGhB
dHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7Cit9CisKK3Zv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmIGF0dHJpYnV0ZSwgU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit7CisgICAgaWYgKGF0
dHJpYnV0ZS5uYW1lKCkgPT0gd2lkdGhBdHRyKQorICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgYXR0cmlidXRlLnZhbHVlKCkpOworICAgIGVsc2Ug
aWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gaGVpZ2h0QXR0cikKKyAgICAgICAgYWRkSFRNTExlbmd0
aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0LCBhdHRyaWJ1dGUudmFsdWUoKSk7Cisg
ICAgZWxzZQorICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yQXR0cmlidXRlKGF0
dHJpYnV0ZSwgc3R5bGUpOworfQorCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHsKLSAgICBpZiAoYXR0cmlidXRlLm5h
bWUoKSA9PSB3aWR0aEF0dHIgfHwgYXR0cmlidXRlLm5hbWUoKSA9PSBoZWlnaHRBdHRyKQorICAg
IGlmICgoYXR0cmlidXRlLm5hbWUoKSA9PSB3aWR0aEF0dHIgfHwgYXR0cmlidXRlLm5hbWUoKSA9
PSBoZWlnaHRBdHRyKSAmJiAhdXNlckFnZW50U2hhZG93Um9vdCgpKQogICAgICAgICByZXNldCgp
OwogICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiBSZW5k
ZXJPYmplY3QqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSog
YXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKKyAgICBpZiAoc3R5bGUtPmhhc0NvbnRlbnQo
KSB8fCBzaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0
KHRoaXMsIHN0eWxlKTsKKwogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7
Ci0gICAgaWYgKGZyYW1lICYmIGZyYW1lLT5zY3JpcHQoKS0+Y2FuRXhlY3V0ZVNjcmlwdHMoTm90
QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKSB7Ci0gICAgICAgIG1fcmVuZGVyZXJJc0NhbnZhcyA9IHRy
dWU7Ci0gICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJIVE1MQ2FudmFzKHRoaXMpOwot
ICAgIH0KKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3Jp
cHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKKyAgICAgICAgcmV0dXJuIFJlbmRlck9iamVj
dDo6Y3JlYXRlT2JqZWN0KHRoaXMsIHN0eWxlKTsKIAotICAgIG1fcmVuZGVyZXJJc0NhbnZhcyA9
IGZhbHNlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoYXJlbmEsIHN0
eWxlKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXJGb3JDYW52YXModGhpcywgYXJlbmEpOwor
fQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojp3aWxsQWRkQXV0aG9yU2hhZG93Um9vdCgpCit7
CisgICAgaWYgKHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y3JlYXRlU2hhZG93U3VidHJlZSgpOworfQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKK3sKKyAgICBSZWZQdHI8Q2FudmFzSW5uZXJFbGVtZW50PiBpbm5l
ckVsZW1lbnQgPSBDYW52YXNJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAK
KyAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBT
aGFkb3dSb290OjpVc2VyQWdlbnRTaGFkb3dSb290KTsKKyAgICByb290LT5hcHBlbmRDaGlsZChp
bm5lckVsZW1lbnQpOwogfQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjphdHRhY2goKQpAQCAt
MjgwLDcgKzMxNCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICNlbmRpZgog
CiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7Ci0g
ICAgICAgIGlmIChtX3JlbmRlcmVySXNDYW52YXMpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5p
c0NhbnZhcygpKSB7CiAgICAgICAgICAgICBpZiAob2xkU2l6ZSAhPSBzaXplKCkpIHsKICAgICAg
ICAgICAgICAgICB0b1JlbmRlckhUTUxDYW52YXMocmVuZGVyZXIpLT5jYW52YXNTaXplQ2hhbmdl
ZCgpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTYzMiw0ICs2NjYsMTgg
QEAgQWZmaW5lVHJhbnNmb3JtIEhUTUxDYW52YXNFbGVtZW50OjpiYXNlVHJhbnNmb3JtKCkgY29u
c3QKICAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlci0+YmFzZVRyYW5zZm9ybSgpICogdHJhbnNmb3Jt
OwogfQogCitSZW5kZXJPYmplY3QqIEhUTUxDYW52YXNFbGVtZW50OjpyZW5kZXJlckNhbnZhcygp
Cit7CisgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCkpIHsK
KyAgICAgICAgQVNTRVJUKHJvb3QtPmZpcnN0Q2hpbGQoKS0+aGFzVGFnTmFtZSh3ZWJraXRJbm5l
ckNhbnZhc1RhZykpOworICAgICAgICByZXR1cm4gdG9FbGVtZW50KHJvb3QtPmZpcnN0Q2hpbGQo
KSktPnJlbmRlcmVyKCk7CisgICAgfQorICAgIHJldHVybiByZW5kZXJlcigpOworfQorCitSZW5k
ZXJPYmplY3QqIENhbnZhc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFzKEhUTUxFbGVt
ZW50KiBlbGVtZW50LCBSZW5kZXJBcmVuYSogYXJlbmEpCit7CisgICAgcmV0dXJuIG5ldyAoYXJl
bmEpIFJlbmRlckhUTUxDYW52YXMoZWxlbWVudCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCAyZGRlODBmZDRlMDJiYzQ1ODI0NmUyOTA4NmQ5ZTRk
NzMzZWI0MjE1Li43MDJjMzE4NjIyNDdkZjdjODg3OWM3N2NmMDA2MDg1ZDc0NDU1NzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC00Myw2ICs0Myw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzOworY2xh
c3MgQ2FudmFzSW5uZXJFbGVtZW50OwogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXI7CkBA
IC02MSwxMiArNjIsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW52YXNEZXN0cm95
ZWQoSFRNTENhbnZhc0VsZW1lbnQqKSA9IDA7CiB9OwogCi1jbGFzcyBIVE1MQ2FudmFzRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitjbGFzcyBDYW52YXNFbGVtZW50IHsKK3Byb3RlY3Rl
ZDoKKyAgICBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFzKEhUTUxFbGVtZW50
KiwgUmVuZGVyQXJlbmEqKTsKK307CisKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50LCBwdWJsaWMgQ2FudmFzRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTENhbnZhc0VsZW1lbnQoKTsKIAor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQWRkQXV0aG9yU2hhZG93Um9vdCgpIE9WRVJSSURFOworCiAg
ICAgdm9pZCBhZGRPYnNlcnZlcihDYW52YXNPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlT2Jz
ZXJ2ZXIoQ2FudmFzT2JzZXJ2ZXIqKTsKIApAQCAtMTQwLDEwICsxNDgsMTUgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisKKyAg
ICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dCBPVkVSUklERTsKKyAgICB2b2lkIGNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmLCBTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwogCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlckNh
bnZhcygpOwogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIo
KSBjb25zdDsKQEAgLTE2MSw4ICsxNzQsNiBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPENhbnZh
c1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsKIAotICAgIGJvb2wgbV9yZW5kZXJlcklzQ2Fu
dmFzOwotCiAgICAgYm9vbCBtX2lnbm9yZVJlc2V0OwogICAgIEZsb2F0UmVjdCBtX2RpcnR5UmVj
dDsKIApAQCAtMTc5LDYgKzE5MCwxNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPElt
YWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhpcyBpcyB0ZW1wb3JhcnkgZm9yIHBsYXRm
b3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2UgYnVmZmVyIHRvIHJlbmRlciAoYW5kIGZv
ciBDU1NDYW52YXNWYWx1ZSkuCiB9OwogCitpbmxpbmUgYm9vbCBpc0hUTUxDYW52YXNFbGVtZW50
KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpj
YW52YXNUYWcpOworfQorCitpbmxpbmUgSFRNTENhbnZhc0VsZW1lbnQqIHRvSFRNTENhbnZhc0Vs
ZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgaXNIVE1MQ2FudmFzRWxl
bWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4o
bm9kZSk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
Z05hbWVzLmluCmluZGV4IDM2NjBhYjk0OGUwNzg3ODk3NDdiY2FlYmVlNWQwYjY5OGNmMzVhZmUu
LmQwMmFkNjA1YzI3YjM5ZGYxMjRiZGNiODJiNjE1MDJmZDRkOThjZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMzksMyArMTM5LDQgQEAgdmlkZW8gd3JhcHBlck9ubHlJ
Zk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rvck5lZWRzQ3Jl
YXRlZEIKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB4bXAgaW50ZXJmYWNlTmFtZT1I
VE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAord2Via2l0
SW5uZXJDYW52YXMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1Y3RvcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmZhOWUwN2E4ODM4ZDgzNzI2YTU1YjljMmIzNGI3Y2QyMmJmNTg2ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVu
dC5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDYW52
YXNJbm5lckVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJJbWFnZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworQ2FudmFzSW5uZXJF
bGVtZW50OjpDYW52YXNJbm5lckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRN
TEVsZW1lbnQoSFRNTE5hbWVzOjp3ZWJraXRJbm5lckNhbnZhc1RhZywgZG9jdW1lbnQpCit7Cit9
CisKK1JlbmRlck9iamVjdCogQ2FudmFzSW5uZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoc3R5bGUtPmhh
c0NvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KHRo
aXMsIHN0eWxlKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXJGb3JDYW52YXModGhpcywgYXJl
bmEpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIENhbnZhc0lubmVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBwc2V1ZG9JZCwgKCItd2Via2l0LWNhbnZhcy1pbm5lci1lbGVtZW50IikpOworICAgIHJldHVy
biBwc2V1ZG9JZDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvQ2FudmFzSW5uZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYW52
YXNJbm5lckVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2I5Y2I5ZGU3NTE3Y2QzNmNhNmE4YzhkODNl
NjRjNjQxOTI4YzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvQ2FudmFzSW5uZXJFbGVtZW50LmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2FudmFzSW5u
ZXJFbGVtZW50X2gKKyNkZWZpbmUgQ2FudmFzSW5uZXJFbGVtZW50X2gKKworI2luY2x1ZGUgIkhU
TUxDYW52YXNFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTENh
bnZhc0VsZW1lbnQ7CitjbGFzcyBSZW5kZXJPYmplY3Q7CisKK2NsYXNzIENhbnZhc0lubmVyRWxl
bWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIENhbnZhc0VsZW1lbnQgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc0lubmVyRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGhvc3RDYW52YXMoKSB7IHJldHVybiB0b0hU
TUxDYW52YXNFbGVtZW50KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsgfQorCitwcml2YXRlOgorICAg
IENhbnZhc0lubmVyRWxlbWVudChEb2N1bWVudCopOworCisgICAgUmVuZGVyT2JqZWN0KiBjYW52
YXNSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIEhUTUxFbGVtZW50OjpyZW5kZXJlcigpOyB9CisK
KyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBS
ZW5kZXJTdHlsZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOworfTsKKworaW5saW5lIFBhc3NSZWZQdHI8
Q2FudmFzSW5uZXJFbGVtZW50PiBDYW52YXNJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNJbm5lckVsZW1lbnQo
ZG9jdW1lbnQpKTsKK30KKworaW5saW5lIGJvb2wgaXNDYW52YXNJbm5lckVsZW1lbnQoTm9kZSog
bm9kZSkKK3sKKyAgICByZXR1cm4gIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
OndlYmtpdElubmVyQ2FudmFzVGFnKTsKK30KKworaW5saW5lIENhbnZhc0lubmVyRWxlbWVudCog
dG9DYW52YXNJbm5lckVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoaXNDYW52YXNJ
bm5lckVsZW1lbnQobm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYW52YXNJbm5lckVs
ZW1lbnQqPihub2RlKTsKK30KKworaW5saW5lIEhUTUxDYW52YXNFbGVtZW50KiBob3N0Q2FudmFz
RWxlbWVudChOb2RlKiBub2RlKQoreworICAgIGlmIChpc0hUTUxDYW52YXNFbGVtZW50KG5vZGUp
KQorICAgICAgICByZXR1cm4gdG9IVE1MQ2FudmFzRWxlbWVudChub2RlKTsKKyAgICByZXR1cm4g
aXNDYW52YXNJbm5lckVsZW1lbnQobm9kZSk/IHRvQ2FudmFzSW5uZXJFbGVtZW50KG5vZGUpLT5o
b3N0Q2FudmFzKCkgOiAwOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCmluZGV4IDMzMTE2OTg5ZTQxYzUzMGViNjMyMzA5
MjAwZTNmMjUxYjU4ZTdmYjMuLjdiNmNhNWMyMTYxNzgyZjlhZmRhYzI2ZTQyMmJiNDkyYTJjZTJl
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJI
VE1MQ2FudmFzLmgiCiAKKyNpbmNsdWRlICJDYW52YXNJbm5lckVsZW1lbnQuaCIKICNpbmNsdWRl
ICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgpAQCAtNDEsOSArNDIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1SZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1M
Q2FudmFzKEhUTUxDYW52YXNFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyUmVwbGFjZWQo
ZWxlbWVudCwgZWxlbWVudC0+c2l6ZSgpKQorUmVuZGVySFRNTENhbnZhczo6UmVuZGVySFRNTENh
bnZhcyhIVE1MRWxlbWVudCogZWxlbWVudCkKKyAgICA6IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQs
IGhvc3RDYW52YXNFbGVtZW50KGVsZW1lbnQpLT5zaXplKCkpCiB7CisgICAgQVNTRVJUKGlzQ2Fu
dmFzSW5uZXJFbGVtZW50KGVsZW1lbnQpIHx8IGlzSFRNTENhbnZhc0VsZW1lbnQoZWxlbWVudCkp
OwogICAgIHZpZXcoKS0+ZnJhbWVWaWV3KCktPnNldElzVmlzdWFsbHlOb25FbXB0eSgpOwogfQog
CkBAIC01Miw3ICs1NCw3IEBAIGJvb2wgUmVuZGVySFRNTENhbnZhczo6cmVxdWlyZXNMYXllcigp
IGNvbnN0CiAgICAgaWYgKFJlbmRlclJlcGxhY2VkOjpyZXF1aXJlc0xheWVyKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIAotICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBzdGF0
aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSk7CisgICAgSFRNTENhbnZhc0VsZW1l
bnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KG5vZGUoKSk7CiAgICAgcmV0dXJuIGNhbnZh
cyAmJiBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSAmJiBjYW52YXMtPnJlbmRlcmluZ0NvbnRl
eHQoKS0+aXNBY2NlbGVyYXRlZCgpOwogfQogCkBAIC02OSwxNCArNzEsMTQgQEAgdm9pZCBSZW5k
ZXJIVE1MQ2FudmFzOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGEKICAgICB9CiAKICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IHN0
eWxlKCktPmltYWdlUmVuZGVyaW5nKCkgPT0gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0
OwotICAgIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSgpKS0+cGFpbnQocGFp
bnRJbmZvLmNvbnRleHQsIHJlY3QsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgaG9zdENhbnZh
c0VsZW1lbnQobm9kZSgpKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHVzZUxvd1F1
YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgUmVuZGVySFRNTENhbnZhczo6Y2FudmFzU2l6ZUNoYW5n
ZWQoKQogewotICAgIEludFNpemUgY2FudmFzU2l6ZSA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNF
bGVtZW50Kj4obm9kZSgpKS0+c2l6ZSgpOworICAgIEludFNpemUgY2FudmFzU2l6ZSA9IGhvc3RD
YW52YXNFbGVtZW50KG5vZGUoKSktPnNpemUoKTsKICAgICBJbnRTaXplIHpvb21lZFNpemUoY2Fu
dmFzU2l6ZS53aWR0aCgpICogc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpLCBjYW52YXNTaXplLmhl
aWdodCgpICogc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKLQorICAgIAogICAgIGlmICh6b29t
ZWRTaXplID09IGludHJpbnNpY1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaAppbmRleCA1YmVkMjdmNGYyZWIzZGUz
YjFhMDgxNWNhNTFhMTVmMTY3MzE0MTA2Li40Y2Y3ZjAwOGI2NzE0YzZlNDU3ZDZjNGY0ZjM0NzIx
NWM0NjlmMzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRN
TENhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFz
LmgKQEAgLTMwLDExICszMCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEhU
TUxDYW52YXNFbGVtZW50OworY2xhc3MgQ2FudmFzRWxlbWVudDsKIAogY2xhc3MgUmVuZGVySFRN
TENhbnZhcyA6IHB1YmxpYyBSZW5kZXJSZXBsYWNlZCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQg
UmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCopOworICAgIGV4cGxpY2l0IFJlbmRl
ckhUTUxDYW52YXMoSFRNTEVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhbnZhcygp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAppbmRleCBkMjZlZWYxZTM0ZThlNDU1ZjI0YmNhYjRkMmFjMjJjZjI5ZWMzZGY1Li4yODkw
MGY5MzQ2YWU5NTMyOGU0Y2ZhNTFjNjUzMjA1ZTVhZjVlZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIkNhbnZhc0lubmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiQ2hyb21lLmgiCkBAIC04MSw3ICs4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c0FjY2VsZXJhdGVkQ2FudmFzKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAjaWYgRU5BQkxF
KFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlmIChyZW5kZXJl
ci0+aXNDYW52YXMoKSkgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3Rh
dGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAg
SFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyLT5u
b2RlKCkpOwogICAgICAgICBpZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IGNh
bnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQtPmlz
QWNjZWxlcmF0ZWQoKTsKICAgICB9CkBAIC0xOTQsNyArMTk1LDcgQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKIAogI2lmIFBMQVRGT1JNKE1B
QykgJiYgVVNFKENBKQogICAgIGlmICghY29tcG9zaXRvcigpLT5hY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkKCkgJiYgcmVuZGVyZXIoKS0+aXNDYW52YXMoKSkgewotICAgICAgICBIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5kZXJl
cigpLT5ub2RlKCkpOworICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gaG9zdENh
bnZhc0VsZW1lbnQocmVuZGVyZXIoKS0+bm9kZSgpKTsKICAgICAgICAgaWYgKGNhbnZhcy0+c2hv
dWxkQWNjZWxlcmF0ZShjYW52YXMtPnNpemUoKSkpCiAgICAgICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyh0cnVlKTsKICAgICB9CkBAIC00MTksNyArNDIwLDcg
QEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0
aW9uKCkKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKICAgICBlbHNlIGlmIChpc0FjY2VsZXJhdGVkQ2FudmFzKHJlbmRlcmVyKSkgewot
ICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZh
c0VsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQq
IGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpOwogICAgICAgICBp
ZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29u
dGV4dCgpKQogICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvQ2FudmFz
KGNvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDQ1MGI0ZmM4N2MxNmI2ZjA0Zjk1ZDk1YWFiYTkwZjU4ZjVjOTNiN2Eu
LjFlYWMzZTk2MGZlNDJiMDI2ZjViNDlmZTE5OTMwZjhkODRjOTg2NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAKICNpbmNsdWRl
ICJBbmltYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiQ2FudmFzSW5uZXJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKQEAgLTE2OTUsNyArMTY5Niw3IEBAIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKFJl
bmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChy
ZW5kZXJlci0+aXNDYW52YXMoKSkgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
ID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihyZW5kZXJlci0+bm9kZSgpKTsKKyAg
ICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRl
cmVyLT5ub2RlKCkpOwogICAgICAgICByZXR1cm4gY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkg
JiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWQoKTsKICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNjNmU5OWVmZjIxNmUyM2RhMjEzYWYyNzBiN2M5Mzcy
MzFmMzE4MGMuLjRmZTQ5MmQzNzk2NzFkMDI4NTg0NDI5ODA3YzZiODUzOWM0Yzc5ODQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOC0yNyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IERPTSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODYxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtY29udGVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1p
Yy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1jYW52YXMtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLWdldGNvbnRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1t
dWx0aXBsZS1zaGFkb3ctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRo
LXBzZXVkby1pZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVp
Z2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMuaHRtbDog
QWRkZWQuCisKIDIwMTItMDgtMjcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDg0OApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThiYWZm
M2EyNTljOWQ2YTg5NWFjYjQ2Mjc5YWJkNjg0YzcxZmQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1jb250ZW50LWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9
IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2Jh
KDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsK
K30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIi
PgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPihi
ZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PHNwYW4+ZmFsbGJhY2s8L3NwYW4+PC9jYW52YXM+KGFm
dGVyKTxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmExODE5
YzgzMmQzZWViNDk1MjBkYjc2ZDFmZDJkMzcwNjI3ZGFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQuaHRt
bApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5n
ZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1
NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5j
dGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8
c2hhZG93Pjwvc2hhZG93PihhZnRlcik8Y29udGVudD48L2NvbnRlbnQ+IjsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICdmYWxsYmFjayc7CisKKyAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3Qp
OworICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlk
PSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiPjwvY2Fu
dmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZWZjYTZjOWY5NDAzZTZk
YjczMTEyNmVkMDc0ZDhiYTQ0Y2U5YzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9
IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2Jh
KDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsK
K30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIi
PgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OjIwMHB4Ij4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPihh
ZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5
bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNh
bnZhcy1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M3NGVjMTU4ZjdiOGYxYzgxZDEzZWM4OTY3
NjY2ZWFmOWQ1ZmNlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKQEAgLTAsMCArMSw0MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB1cGRhdGVDYW52YXMo
ZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOwor
ICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250
ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00o
aG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7
CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93Pihh
ZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7CisKKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgid2lk
dGgiLCAxMDApOworICAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgMjAwKTsKKyAg
ICAgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJj
b250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFz
PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNzQxNzk4NWQwMmU2ZTRlNGU5ZGNlZDJlMTUzYjBmYmM1
NDBkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFz
KGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsK
KyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29u
dGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBk
YXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48
L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29udGV4dC1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE4YmFmZjNhMjU5YzlkNmE4OTVhY2I0NjI3OWFiZDY4NGM3MWZkMDkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52
YXMtZ2V0Y29udGV4dC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7Cisg
ICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5m
aWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3Qo
NSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRp
diBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTog
aW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiPjxzcGFuPmZhbGxiYWNrPC9z
cGFuPjwvY2FudmFzPihhZnRlcik8c3Bhbj5mYWxsYmFjazwvc3Bhbj48L2Rpdj4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzViYzhjOTgxYjY4YTIxZDBiNWQxNTMyZTg5NGVmYmRlZDUxMmIyYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAg
ICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZp
bGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1
LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2
YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpPGNvbnRlbnQ+
PC9jb250ZW50PiI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIHNwYW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bhbi5pbm5lckhUTUwgPSAnZmFs
bGJhY2snOworCisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcp
OworICAgIGhvc3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOwor
ICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAg
ICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLXN0eWxlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNmM4ZDAzYzBlNTJlMmEwMmM3ZGM4ZTE5OGViMzg2YTM0ZjZkNWRjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LXN0eWxlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7
CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4
dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJl
Y3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGRvQXBwbHkobm9kZWlkKSB7CisgICAg
dmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChub2RlaWQpOworICAgIHVwZGF0ZUNh
bnZhcyhob3N0KTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBkb0FwcGx5KCdob3N0
MScpOworICAgIGRvQXBwbHkoJ2hvc3QyJyk7CisgICAgZG9BcHBseSgnaG9zdDMnKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29u
dGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyB3
aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7Ij4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QxIiB3
aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgd2lkdGg6
IDEyMHB4OyBoZWlnaHQ6IDEyMHB4OyI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0MiIgd2lkdGg9
IjEyMCIgaGVpZ2h0PSIxMjAiPjwvY2FudmFzPihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IHdpZHRoOiAxMjBw
eDsgaGVpZ2h0OiAxMjBweDsiPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdDMiIHdpZHRoPSIxMjAi
IGhlaWdodD0iMTIwIj48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTMzMmRl
MDU2NTg0NDRjYzY4ZTJkZmVhZWM1NzA2Y2VjYjExNTE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS5odG1s
CkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50Lmdl
dENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1
LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0
aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0
U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxz
aGFkb3c+PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisKK2Z1bmN0aW9uIGRvQXBwbHkobm9kZWlkKSB7
CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChub2RlaWQpOworICAgIHVw
ZGF0ZUNhbnZhcyhob3N0KTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7Cit9CisKK2Z1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgZG9BcHBseSgnaG9zdDEnKTsKKyAgICBkb0FwcGx5KCdob3N0Micp
OworICAgIGRvQXBwbHkoJ2hvc3QzJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAg
ICAgPGNhbnZhcyBpZD0iaG9zdDEiIHN0eWxlPSJkaXNwbGF5OiBub25lIiB3aWR0aD0iMTIwIiBo
ZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGNh
bnZhcyBpZD0iaG9zdDIiIHN0eWxlPSJkaXNwbGF5OiBibG9jayIgd2lkdGg9IjEyMCIgaGVpZ2h0
PSIxMjAiPjwvY2FudmFzPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMg
aWQ9Imhvc3QzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEy
MCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13
aXRoLW11bHRpcGxlLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93LWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzliOWQyMTNmY2I1NWY4MDU1OTU5ZGNlNTI5ZmE3MjdiOTQ2MTI3
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0
ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQo
JzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOwor
ICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwor
ICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAg
PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKShiZWZvcmUpPGNhbnZh
cyBpZD0iaG9zdCI+PC9jYW52YXM+KGFmdGVyKShhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0
aXBsZS1zaGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTlkYWM0ZTVlNmMwZDBmNWY4MTRlOTJmYmRi
MjhmY2ZiNTkxODI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93Lmh0bWwKQEAgLTAs
MCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBk
YXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7
CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRk
U2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dS
b290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48
L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgYWRkU2hhZG93RE9NKGhv
c3QpOworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9
ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52
YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVk
by1pZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E2
NmI2NjcyNTMyODRiYjcxNWY3MzlhYmI4NmMzNWNlZGRkNzQ1NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBz
ZXVkby1pZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorI2hvc3QgeworICAgIHdpZHRoOiA1MDBweDsKKyAgICBoZWlnaHQ6IDUw
MHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVu
dCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNv
bnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZp
bGxSZWN0KDUsIDUsIDQ1MCwgMjUwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3Qp
IHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAg
IHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIp
IjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWlu
ZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9j
ayI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgt
cHNldWRvLWlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZjN2YyOWI0MDFhN2VmMGVmZWVkYjA2MjI5YjJi
MjBhMzgzMDg4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC5odG1sCkBAIC0wLDAgKzEsMzcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI2hvc3Q6Oi13ZWJraXQtY2FudmFz
LWlubmVyLWVsZW1lbnQgeworICAgIHdpZHRoOiA1MDBweDsKKyAgICBoZWlnaHQ6IDUwMHB4Owor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgewor
ICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQu
ZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0
KDUsIDUsIDQ1MCwgMjUwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAg
ICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30K
KworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdob3N0Jyk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIHVwZGF0ZUNhbnZh
cyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJo
b3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1keW5h
bWljLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM3NDE2MjQ2ODRjN2EzM2M2MGI5ZmUxMDgy
M2Q4Yzg0NjQzMmZhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1keW5hbWljLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNv
bnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUg
PSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIw
LCAzMCk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgxMDAsMTAwLDI1NSwwLjUpJzsK
KyAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDcwLCAyNTAsIDIzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcp
OworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAg
ICAgPGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6
MzAwcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSg4MCw4MCw4MCwwLjUpOyI+KGJlZm9yZSk8Y2Fu
dmFzIGlkPSJob3N0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+KGFmdGVyKTwv
ZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0
aC1oZWlnaHQtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iODI4ZTQ1NmQ1YzBlMTUxZTZjY2RiYjExZTc3YmEwN2QwYjk1YmI0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7
CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4
dC5maWxsU3R5bGUgPSAncmdiYSgwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVj
dCg1LCA1LCAxMjAsIDMwKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDEwMCwxMDAs
MjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgNzAsIDI1MCwgMjMwKTsKK30KKwor
ZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBX
ZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZv
cmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgYWRk
U2hhZG93RE9NKGhvc3QpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgaG9z
dC5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CisgICAgICAgaG9zdC5zdHlsZS5iYWNr
Z3JvdW5kQ29sb3IgPSAicmdiYSg4MCw4MCw4MCwwLjUpIjsKKyAgICAgICBob3N0LnNldEF0dHJp
YnV0ZSgid2lkdGgiLCAiMjAwIik7CisgICAgICAgaG9zdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIs
ICIzMDAiKTsKKyAgICAgICB1cGRhdGVDYW52YXMoaG9zdCk7CisgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9LCAw
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRp
diBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0IiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgt
aGVpZ2h0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliNWJhOWFmOGYyODgyMzMxNGY4MWI4
ZTA5YzU1NGZmOTBiZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0
ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3Jn
YmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzAp
OworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5l
ciI+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2Nr
Ij4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2NSI+PC9jYW52
YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52
YXMtd2l0aC13aWR0aC1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0
ZWM5OTIzYmVkYTg5Y2JlNjUzNjI1NDExZGYxNDk3MTc0YzA1MzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13
aWR0aC1oZWlnaHQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250
ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0g
J3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwg
MzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dS
b290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qn
KTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJj
b250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiIHdpZHRoPSI4
MCIgaGVpZ2h0PSI2NSI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2OTYyYTI2Mzg1MDJlNTJjM2IzNzFlYjcxZDA4
MWIyZjRhOWVhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7Cisg
ICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5m
aWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3Qo
NSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAg
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKKyAgICBhZGRTaGFkb3dET00o
aG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9z
dCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161145</attachid>
            <date>2012-08-28 23:36:56 -0700</date>
            <delta_ts>2012-08-29 21:22:10 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-90861-20120829153646.patch</filename>
            <type>text/plain</type>
            <size>57206</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc3NTNlNGZkM2VjNjFk
ZGVmYWIyZjZmNjQ3MjQzMzgyODdiMThiZS4uNzFjYTc5ZGZhMTUzOTYwZjU3MmI2ZjBmNWRkZDc0
NDU5ZDc5OGIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMCBAQAorMjAxMi0wOC0yNyAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IERPTSBm
b3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIFNoYWRvdyBET00gc3VwcG9ydCBmb3IgY2FudmFzIGVsZW1lbnQu
CisgICAgICAgIEFjY29yZGluZyB0byB0aGUgU2hhZG93IERPTSBzcGVjLCBjYW52YXMgZWxlbWVu
dCBzaG91bGQgd29yayBhcyBpZiBpdAorICAgICAgICBoYXMgYSB1c2VyIGFnZW50IHNoYWRvdyBk
b20uIEhvd2V2ZXIsIGl0IHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UKKyAgICAgICAgcmVncmVzc2lv
biBhbmQgbWVtb3J5IGJsb2F0IHRvIGFkZCBzdWNoIGEgdXNlciBhZ2VudCBzaGFkb3cgZG9tIHRv
CisgICAgICAgIGNhbnZhcyBlbGVtZW50IGJ5IGRlZmF1bHQuIFNvIHdlIHdvdWxkIGxpa2UgdG8g
cG9zdHBvbmUgYWRkaW5nIGEgdXNlcgorICAgICAgICBhZ2VudCBTaGFkb3cgRE9NIHVudGlsIHdl
IG5lZWQgaXQsIGkuZS4gdXNlcnMgYWRkIGFuIGF1dGhvciBzaGFkb3cgRE9NCisgICAgICAgIHRv
IGNhbnZhcyBlbGVtZW50LiBUaGUgdXNlciBhZ2VudCBTaGFkb3cgRE9NIGZvciBjYW52YXMgZWxl
bWVudCBoYXMKKyAgICAgICAgb25seSBvbmUgZWxlbWVudCwgd2hpY2ggZGlzcGxheXMgb25lIGNh
bnZhcy4gVGhlIGVsZW1lbnQgaXMgaW1wbGVtZW50ZWQKKyAgICAgICAgYnkgQ2FudmFzSW5uZXJF
bGVtZW50LmNwcCBhbmQgLmguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRp
b24tcG9pbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXN0eWxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgQ2FudmFzSW5uZXJFbGVtZW50LmNwcCBh
bmQgQ2FudmFzSW5uZXJFbGVtZW50LmguCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICBCZWNhdXNlIG9mIHJlbW92aW5nIG1fcmVuZGVyZXJJc0NhbnZhcywg
cmVtb3ZlZCBhIGNvZGUgZm9yIGluaXRpYWxpemluZworICAgICAgICBtX3JlbmRlcklzQ2FudmFz
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKToKKyAgICAgICAgSW1wbGVtZW50ZWQgdG8gdXBkYXRlIGNhbnZhcyB3aWR0aCBvciBo
ZWlnaHQgYnkgdXNpbmcgd2lkdGggb3IgaGVpZ2h0CisgICAgICAgIGF0dHJpYnV0ZSBhZnRlciBh
ZGRpbmcgYW55IGF1dGhvciBzaGFkb3cgcm9vdC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZSk6
CisgICAgICAgIEltcGxlbWVudGVkIHRvIHVwZGF0ZSBjYW52YXMgc3R5bGUgd2lkdGggb3IgaGVp
Z2h0IHdoZW4gd2lkdGggb3IgaGVpZ2h0CisgICAgICAgIGF0dHJpYnV0ZSdzIHZhbHVlIGlzIGNo
YW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICBJZiBubyBhdXRob3Igc2hhZG93IHJvb3RzIGFyZSBhZGRlZCwgaW52b2tl
IHJlc2V0KCkuIElmIGFkZGVkLCBqdXN0CisgICAgICAgIHVwZGF0ZSBzdHlsZSB3aWR0aCBvciBo
ZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIpOgorICAgICAgICBJZiBhbnkgc2hhZG93IGRvbSBzdWJ0cmVlIGlzIGFkZGVkIGFuZCBzdHls
ZSBoYXMgY29udGVudCwgY3JlYXRlCisgICAgICAgIGEgbmV3IFJlbmRlck9iamVjdCwgbm90IFJl
bmRlckhUTUxDYW52YXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6d2ls
bEFkZEF1dGhvclNoYWRvd1Jvb3QpOgorICAgICAgICBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGZy
b20gRWxlbWVudFNoYWRvdzo6YWRkU2hhZG93Um9vdC4gSWYgbm8gdXNlcgorICAgICAgICBhZ2Vu
dCBzaGFkb3cgcm9vdCBpcyBhZGRlZCAoPSB0aGUgZmlyc3QgdGltZSB3aGVuIHRoZQorICAgICAg
ICB3aWxsQWRkQXV0aG9yU2hhZG93Um9vdCBpcyBpbnZva2VkKSwgY3JlYXRlIGEgdXNlciBhZ2Vu
dCBzaGFkb3cgZG9tCisgICAgICAgIHRyZWUgYW5kIGFkZC4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgQ3JlYXRlIGEg
dXNlciBhZ2VudCBzaGFkb3cgZG9tIHRyZWUuIEl0IGhhcyBvbmx5IG9uZSBlbGVtZW50IGZvcgor
ICAgICAgICByZW5kZXJpbmcgPGNhbnZhcz4uCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6cmVzZXQpOgorICAgICAgICBJbnN0ZWFkIG9mIG1fcmVuZGVyZXJJc0NhbnZhcywg
dXNlIHJlbmRlcmVyLT5pc0NhbnZhcygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6OnJlbmRlcmVyQ2FudmFzKToKKyAgICAgICAgUmV0dXJuIGFuIGluc3RhbmNlIG9mIGNs
YXNzIHJlbmRlckhUTUxDYW52YXMsIGkuZS4gaWYgYW55IGF1dGhvciBzaGFkb3cKKyAgICAgICAg
cm9vdCBpcyBhZGRlZCwgcmV0dXJucyBhIHJlbmRlcmVyIG9mIHRoZSBlbGVtZW50IGluIHRoZSB1
c2VyIGFnZW50CisgICAgICAgIHNoYWRvdyBkb20gdHJlZS4gT3RoZXJ3aXNlLCByZXR1cm5zIGEg
cmVuZGVyZXIgb2YKKyAgICAgICAgdGhlIEhUTUxDYW52YXNFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXJGb3JDYW52YXMpOgorICAgICAgICBD
cmVhdGUgYW4gaW5zdGFuY2Ugb2YgcmVuZGVySFRNTENhbnZhcyBhbmQgcmV0dXJuLgorICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgUmVtb3ZlZCBtX3JlbmRlcmVy
SXNDYW52YXMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENhbnZhc0VsZW1lbnQpOgor
ICAgICAgICAoSFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MQ2Fu
dmFzRWxlbWVudCk6CisgICAgICAgIElmIHRoZSBnaXZlbiBub2RlIGlzIGFuIGluc3RhbmNlIG9m
IEhUTUxDYW52YXNFbGVtZW50LCByZXR1cm5zIHRydWUuCisgICAgICAgIChXZWJDb3JlOjp0b0hU
TUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5uZXJFbGVtZW50OjpDYW52YXNJ
bm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5uZXJFbGVtZW50Ojpob3N0
Q2FudmFzKToKKyAgICAgICAgUmV0dXJucyBpdHMgc2hhZG93IGhvc3QsIGkuZS4gYW4gaW5zdGFu
Y2Ugb2YgSFRNTENhbnZhc0VsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNJbm5lckVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgQ3JlYXRlIGEgcmVuZGVyZXIgZm9yIENh
bnZhc0lubmVyRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0lubmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICBUbyBhcHBseSBzdHlsZXMgdG8gQ2FudmFzSW5uZXJF
bGVtZW50LCBhZGRlZAorICAgICAgICAiLXdlYmtpdC1jYW52YXMtaW5uZXItZWxlbWVudCIuCisg
ICAgICAgICogaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDYW52YXNJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzSW5uZXJFbGVtZW50OjpjYW52YXNSZW5kZXJlcik6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Nh
bnZhc0lubmVyRWxlbWVudCk6CisgICAgICAgIElmIHRoZSBnaXZlbiBub2RlIGlzIGFuIGluc3Rh
bmNlIG9mIENhbnZhc0lubmVyRWxlbWVudCwgcmV0dXJucyB0cnVlLgorICAgICAgICAoV2ViQ29y
ZTo6dG9DYW52YXNJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aG9zdENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICBJZiB0aGUgZ2l2ZW4gbm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBDYW52
YXNJbm5lckVsZW1lbnQsIHJldHVybnMgaXRzCisgICAgICAgIHNoYWRvdyBob3N0LiBJZiBhbiBp
bnN0YW5jZSBvZiBIVE1MQ2FudmFzRWxlbWVudCwgcmV0dXJucyB0aGUgZ2l2ZW4KKyAgICAgICAg
bm9kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKToKKyAgICAgICAg
Q2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgYXJndW1lbnQgZnJvbSBIVE1MQ2FudmFzRWxl
bWVudCogdG8KKyAgICAgICAgSFRNTEVsZW1lbnQqLiBUbyBvYnRhaW4gc2l6ZSBvZiB0aGUgZWxl
bWVudCwgdXNlIGhvc3RDYW52YXNFbGVtZW50IHRvCisgICAgICAgIG9idGFpbiBIVE1MQ2FudmFz
RWxlbWVudCogYW5kIGludm9rZSBzaXplKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1M
Q2FudmFzOjpyZXF1aXJlc0xheWVyKToKKyAgICAgICAgVXNlIGhvc3RDYW52YXNFbGVtZW50IHRv
IG9idGFpbiBIVE1MQ2FudmFzRWxlbWVudCogZnJvbSBub2RlKCksCisgICAgICAgIGJlY2F1c2Ug
bm9kZSgpIGNhbiBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MQ2FudmFzRWxlbWVudCBvcgorICAgICAg
ICBDYW52YXNJbm5lckVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFz
OjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgVXNlIGhvc3RDYW52YXNFbGVtZW50IHRvIG9idGFp
biBIVE1MQ2FudmFzRWxlbWVudCogZnJvbSBub2RlKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCk6CisgICAgICAgIFVzZSBob3N0Q2FudmFz
RWxlbWVudCB0byBvYnRhaW4gSFRNTENhbnZhc0VsZW1lbnQqIGZyb20gbm9kZSgpLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJlbmRlckhUTUxDYW52YXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBY2NlbGVyYXRlZENhbnZhcyk6Cisg
ICAgICAgIFVzZSBob3N0Q2FudmFzRWxlbWVudCB0byBvYnRhaW4gSFRNTENhbnZhc0VsZW1lbnQq
IGZyb20gbm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVh
dGVQcmltYXJ5R3JhcGhpY3NMYXllcik6CisgICAgICAgIGRpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbik6
CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJl
c0NvbXBvc2l0aW5nRm9yQ2FudmFzKToKKyAgICAgICAgZGl0dG8uCisKIDIwMTItMDgtMjggIFRv
bSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ1NQIGRvZXNuJ3QgdHVy
biBvZmYgZXZhbCwgZXRjLiBpbiBXZWIgV29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBh
ZTI4ZWE3NjAzOTliZTg2OTEwYmYxN2M0MjZmYWY0MzA1ZThhMmFkLi40OTljMzY4ODBhZWEyMjMx
MzgxMTc0MDA2OTQ1MjlhOThiMzBkMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5OCw2
ICsxNDk4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvcGFyc2VyL1RleHRWaWV3
U291cmNlUGFyc2VyLmNwcAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCiAKKyAgICBo
dG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwCiAgICAgaHRtbC9zaGFkb3cvQ29udGVu
dERpc3RyaWJ1dG9yLmNwcAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNw
cAogICAgIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggNzI4NzI5ZTEzYTEwMjkyODVkYWRjNmY0ZGE2Y2M4NTJhZWMx
YjhhNy4uODU4MGNhNGVmYzBlMjliNGVhMzY3NTYyYmFmYmZlYjMzMzI2MDIwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNDgyLDYgKzM0ODIsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmggXAorICAgIFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAgXAorICAgIFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQz
ZGJlZDgyNGFlN2E4MDYxYzM4YmEwNmM0NmIwYzg5NWVhOTQyOGMuLmM1YWZjMTkyNWY5ZTM4MThl
YTE5M2NmYWJhOTg0MzRlMDVlOWNlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNzExLDYgKzcxMSw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgXAog
ICAgIGh0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcCBcCiAgICAgaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvci5jcHAgXAorICAgIGh0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5j
cHAgXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHAgXAogICAgIGh0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAgaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1ZTcyZDQzNzQ1ZGM4YTU1
NGJhOWE0NzQ0YzY1NTFlMDhmY2IyM2U0Li44OGRhZWZkODA2Y2EyYzcwNTM5OGM0ZmY1MjU1MTZi
MDAxM2NjZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NzcwLDYgKzU3NzAsOCBAQAogICAgICAg
ICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFk
b3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cv
Q2FsZW5kYXJQaWNrZXJFbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NhbnZh
c0lubmVyRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NhbnZhc0lubmVy
RWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3Iu
Y3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNTJhYzk4OTcy
YmU3YjIzNWYwZGVjMTU4ZDM3MTkwYmZkOThhMGQzNi4uNDIwYzliYmI2MWQ1NWRiNDExZDY1Yjhj
OTc2NTU4ZDJlNTVjMjNkYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTYzOTQyLDYgKzYzOTQyLDE0IEBACiAJCQkJTmFtZT0ic2hhZG93Igog
CQkJCT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XENhbnZh
c0lubmVyRWxlbWVudC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xDYW52YXNJbm5lckVsZW1lbnQuaCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hh
ZG93XENvbnRlbnREaXN0cmlidXRvci5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjU0
MDg4MWU5NDQ2MDVmMGJlMTVhMjg0MzQxMTdhMjg5MWFhNjg0NS4uZDAyNDVjNTFiZjJlY2ZhZjVk
MTNlNjgyMjYzOWI3ZmVkMzU2NzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMwMSw2ICs2MzAxLDggQEAKIAkJRkFCRTcy
RjkxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTE1hdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQUJFNzJGMjEwNTlDMUVCMDBEOTk5REQg
LyogTWF0aE1MTWF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJRkFCRTcyRkQxMDU5QzIxMTAwRDk5OURE
IC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkZCMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxFbGVt
ZW50RmFjdG9yeS5jcHAgKi87IH07CiAJCUZBQkU3MkZFMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRo
TUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGQUJFNzJGQzEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MTmFtZXMuY3BwICovOyB9OworCQlG
QjIwQjMxMTE1RUI0QjhGMDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZCMjBCMkRCMTVFQjQxRTQw
MDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuY3BwICovOyB9OworCQlGQjIwQjMxMzE1RUI0
Qjk0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQjIwQjJEQzE1RUI0MUU0MDAyNzhDQ0QgLyogQ2Fu
dmFzSW5uZXJFbGVtZW50LmggKi87IH07CiAJCUZCNzhBRDJFMTUxQkY1RTYwMEZFNTREMyAvKiBD
U1NQYXJzZXJNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGQjc4QUQyQzE1MUJGNUQyMDBGRTU0RDMgLyogQ1NTUGFyc2VyTW9kZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZCQzIyMERGMTIzN0ZC
RUIwMEJDRjc4OCAvKiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQkMyMjBERTEyMzdGQkVCMDBCQ0Y3ODgg
LyogR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwICovOyB9OwogCQlGRDAwRDdBNDE0QTNGNjE5
MDA3MzQwMTEgLyogU2luY1Jlc2FtcGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDAwRDdBMjE0QTNGNjE5MDA3MzQwMTEgLyogU2luY1Jlc2Ft
cGxlci5jcHAgKi87IH07CkBAIC0xMzY5NSw2ICsxMzY5Nyw4IEBACiAJCUZBQkU3MkYzMTA1OUMx
RUIwMEQ5OTlERCAvKiBtYXRodGFncy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRodGFn
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkFCRTcyRkIxMDU5QzIxMTAwRDk5
OUREIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkFCRTcyRkMxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE5hbWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkIyMEIyREIxNUVCNDFFNDAwMjc4Q0NEIC8qIENh
bnZhc0lubmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYW52YXNJbm5lckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
QjIwQjJEQzE1RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc0lubmVyRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGQjc4QUQyQzE1MUJGNUQyMDBGRTU0RDMgLyogQ1NTUGFyc2Vy
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQYXJzZXJNb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZCQzIyMERFMTIzN0ZCRUIwMEJDRjc4OCAv
KiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZEMDBEN0EyMTRBM0Y2MTkwMDczNDAxMSAvKiBTaW5jUmVzYW1wbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbmNSZXNhbXBsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5NDUsNiArMTQ5NDksOCBAQAogCQk0
MTUwRjlFRDEyQjZFMDk5MDAwOEM4NjAgLyogc2hhZG93ICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGQjIwQjJEQjE1RUI0MUU0MDAyNzhDQ0QgLyogQ2Fu
dmFzSW5uZXJFbGVtZW50LmNwcCAqLywKKwkJCQlGQjIwQjJEQzE1RUI0MUU0MDAyNzhDQ0QgLyog
Q2FudmFzSW5uZXJFbGVtZW50LmggKi8sCiAJCQkJNTdCNzkxOUYxNEM2QTYyOTAwRjIwMkQxIC8q
IENvbnRlbnREaXN0cmlidXRvci5jcHAgKi8sCiAJCQkJNTdCNzkxQTAxNEM2QTYyOTAwRjIwMkQx
IC8qIENvbnRlbnREaXN0cmlidXRvci5oICovLAogCQkJCTU3Qjc5MUExMTRDNkE2MjkwMEYyMDJE
MSAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8sCkBAIC0yNTQ4OSw2ICsyNTQ5NSw3IEBA
CiAJCQkJOTM3N0FCQTAxNURFRkVFRjAwMzFGRDA0IC8qIFBhZ2luYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0NDc2QUE4MTVEQzRCQjEwMDMwNURCMiAvKiBXcml0aW5nTW9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzFCODAxQkIxNUVDNThDNzAwQ0U2NDNEIC8qIExheW91dFR5cGVzSW5s
aW5lTWV0aG9kcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkIyMEIzMTMxNUVCNEI5NDAwMjc4Q0NE
IC8qIENhbnZhc0lubmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODU3OCw2ICsyODU4
NSw3IEBACiAJCQkJNTJCNkM5QzUxNUUzRjRERjAwNjkwQjA1IC8qIE5hbWVkRmxvd0NvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJDQ0E5RTIxNUUzRjYyQzAwNTNDNzdGIC8qIEpT
RE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MkNDQTlFOTE1
RTNGNjRDMDA1M0M3N0YgLyogRE9NRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUZCMjBCMzExMTVFQjRCOEYwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCmluZGV4IGUxYjlmNDhhMTllOWNlNjIwNjE2YWM3NTM3Y2FiNjQ3ZDYxMjQ3YjMuLjNkYThm
NDVkZTM1MWY1ODkwNDlhOWYxYjg4ZTEyOTZjZGMwZGNjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQXR0
cmlidXRlLmgiCiAjaW5jbHVkZSAiQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCIKICNpbmNsdWRl
ICJDYW52YXNHcmFkaWVudC5oIgorI2luY2x1ZGUgIkNhbnZhc0lubmVyRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaCIKICNpbmNsdWRlICJDYW52YXNTdHlsZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAKQEAgLTgxLDcgKzgzLDYgQEAgc3RhdGljIGNvbnN0IGZsb2F0IE1h
eFNraWFEaW0gPSAzMjc2Ny4wRjsgLy8gTWF4aW11bSB3aWR0aC9oZWlnaHQgaW4gQ1NTIHBpeGVs
cy4KIEhUTUxDYW52YXNFbGVtZW50OjpIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKICAgICAsIG1fc2l6ZShEZWZhdWx0V2lkdGgsIERlZmF1bHRIZWlnaHQp
Ci0gICAgLCBtX3JlbmRlcmVySXNDYW52YXMoZmFsc2UpCiAgICAgLCBtX2lnbm9yZVJlc2V0KGZh
bHNlKQogI2lmIEVOQUJMRShISUdIX0RQSV9DQU5WQVMpCiAgICAgICAvLyBOT1RFOiBIaWdoLURQ
SSBjYW52YXMgcmVxdWlyZXMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIEltYWdlQnVmZmVyIGltcGxl
bWVudGF0aW9uIHRvIHJlc3BlY3QKQEAgLTExNiwyMyArMTE3LDU2IEBAIEhUTUxDYW52YXNFbGVt
ZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQogICAgIG1fY29udGV4dC5jbGVhcigpOyAvLyBFbnN1
cmUgdGhpcyBnb2VzIGF3YXkgYmVmb3JlIHRoZSBJbWFnZUJ1ZmZlci4KIH0KIAorYm9vbCBIVE1M
Q2FudmFzRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKK3sKKyAgICBpZiAodXNlckFnZW50U2hhZG93Um9vdCgpICYmIChuYW1l
ID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUp
OworfQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUo
Y29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUsIFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQorewor
ICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHdpZHRoQXR0cikKKyAgICAgICAgYWRkSFRNTExl
bmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2lkdGgsIGF0dHJpYnV0ZS52YWx1ZSgpKTsK
KyAgICBlbHNlIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IGhlaWdodEF0dHIpCisgICAgICAgIGFk
ZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUhlaWdodCwgYXR0cmlidXRlLnZh
bHVlKCkpOworICAgIGVsc2UKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0
dHJpYnV0ZShhdHRyaWJ1dGUsIHN0eWxlKTsKK30KKwogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiB7Ci0gICAgaWYgKGF0
dHJpYnV0ZS5uYW1lKCkgPT0gd2lkdGhBdHRyIHx8IGF0dHJpYnV0ZS5uYW1lKCkgPT0gaGVpZ2h0
QXR0cikKKyAgICBpZiAoKGF0dHJpYnV0ZS5uYW1lKCkgPT0gd2lkdGhBdHRyIHx8IGF0dHJpYnV0
ZS5uYW1lKCkgPT0gaGVpZ2h0QXR0cikgJiYgIXVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKICAgICAg
ICAgcmVzZXQoKTsKICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoYXR0cmlidXRlKTsK
IH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7CisgICAgaWYgKHN0eWxlLT5o
YXNDb250ZW50KCkgfHwgc2hhZG93KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNy
ZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgp
LT5mcmFtZSgpOwotICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVT
Y3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkgewotICAgICAgICBtX3JlbmRlcmVySXND
YW52YXMgPSB0cnVlOwotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVySFRNTENhbnZh
cyh0aGlzKTsKLSAgICB9CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnNjcmlwdCgpLT5jYW5F
eGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCisgICAgICAgIHJldHVybiBS
ZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CiAKLSAgICBtX3JlbmRlcmVy
SXNDYW52YXMgPSBmYWxzZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KGFyZW5hLCBzdHlsZSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFzKHRoaXMs
IGFyZW5hKTsKK30KKwordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6d2lsbEFkZEF1dGhvclNoYWRv
d1Jvb3QoKQoreworICAgIGlmICh1c2VyQWdlbnRTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKK30KKwordm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit7CisgICAgUmVmUHRyPENhbnZhc0lubmVyRWxl
bWVudD4gaW5uZXJFbGVtZW50ID0gQ2FudmFzSW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CisgICAgCisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVh
dGUodGhpcywgU2hhZG93Um9vdDo6VXNlckFnZW50U2hhZG93Um9vdCk7CisgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoaW5uZXJFbGVtZW50KTsKIH0KIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6YXR0
YWNoKCkKQEAgLTI4MCw3ICszMTQsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgp
CiAjZW5kaWYKIAogICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVy
ZXIoKSkgewotICAgICAgICBpZiAobV9yZW5kZXJlcklzQ2FudmFzKSB7CisgICAgICAgIGlmIChy
ZW5kZXJlci0+aXNDYW52YXMoKSkgewogICAgICAgICAgICAgaWYgKG9sZFNpemUgIT0gc2l6ZSgp
KSB7CiAgICAgICAgICAgICAgICAgdG9SZW5kZXJIVE1MQ2FudmFzKHJlbmRlcmVyKS0+Y2FudmFz
U2l6ZUNoYW5nZWQoKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC02MzIs
NCArNjY2LDE4IEBAIEFmZmluZVRyYW5zZm9ybSBIVE1MQ2FudmFzRWxlbWVudDo6YmFzZVRyYW5z
Zm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXItPmJhc2VUcmFuc2Zvcm0oKSAq
IHRyYW5zZm9ybTsKIH0KIAorUmVuZGVyT2JqZWN0KiBIVE1MQ2FudmFzRWxlbWVudDo6cmVuZGVy
ZXJDYW52YXMoKQoreworICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdXNlckFnZW50U2hhZG93
Um9vdCgpKSB7CisgICAgICAgIEFTU0VSVChyb290LT5maXJzdENoaWxkKCktPmhhc1RhZ05hbWUo
d2Via2l0SW5uZXJDYW52YXNUYWcpKTsKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChyb290LT5m
aXJzdENoaWxkKCkpLT5yZW5kZXJlcigpOworICAgIH0KKyAgICByZXR1cm4gcmVuZGVyZXIoKTsK
K30KKworUmVuZGVyT2JqZWN0KiBDYW52YXNFbGVtZW50OjpjcmVhdGVSZW5kZXJlckZvckNhbnZh
cyhIVE1MRWxlbWVudCogZWxlbWVudCwgUmVuZGVyQXJlbmEqIGFyZW5hKQoreworICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJIVE1MQ2FudmFzKGVsZW1lbnQpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggMmRkZTgwZmQ0ZTAyYmM0NTgyNDZl
MjkwODZkOWU0ZDczM2ViNDIxNS4uNzAyYzMxODYyMjQ3ZGY3Yzg4NzljNzdjZjAwNjA4NWQ3NDQ1
NTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtNDMsNiAr
NDMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYW52YXNDb250ZXh0QXR0cmli
dXRlczsKK2NsYXNzIENhbnZhc0lubmVyRWxlbWVudDsKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyOwpAQCAtNjEsMTIgKzYyLDE5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2Fu
dmFzRGVzdHJveWVkKEhUTUxDYW52YXNFbGVtZW50KikgPSAwOwogfTsKIAotY2xhc3MgSFRNTENh
bnZhc0VsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworY2xhc3MgQ2FudmFzRWxlbWVudCB7
Citwcm90ZWN0ZWQ6CisgICAgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlckZvckNhbnZhcyhI
VE1MRWxlbWVudCosIFJlbmRlckFyZW5hKik7Cit9OworCitjbGFzcyBIVE1MQ2FudmFzRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIENhbnZhc0VsZW1lbnQgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQq
KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfkhUTUxDYW52YXNFbGVt
ZW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZEF1dGhvclNoYWRvd1Jvb3QoKSBPVkVS
UklERTsKKwogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoQ2FudmFzT2JzZXJ2ZXIqKTsKICAgICB2b2lk
IHJlbW92ZU9ic2VydmVyKENhbnZhc09ic2VydmVyKik7CiAKQEAgLTE0MCwxMCArMTQ4LDE1IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpOworCisgICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUo
Y29uc3QgQXR0cmlidXRlJiwgU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJT
dHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKIAorICAgIFJlbmRlck9iamVjdCog
cmVuZGVyZXJDYW52YXMoKTsKICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lkIGNyZWF0ZUlt
YWdlQnVmZmVyKCkgY29uc3Q7CkBAIC0xNjEsOCArMTc0LDYgQEAgcHJpdmF0ZToKIAogICAgIE93
blB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAKLSAgICBib29sIG1fcmVu
ZGVyZXJJc0NhbnZhczsKLQogICAgIGJvb2wgbV9pZ25vcmVSZXNldDsKICAgICBGbG9hdFJlY3Qg
bV9kaXJ0eVJlY3Q7CiAKQEAgLTE3OSw2ICsxOTAsMTcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxl
IFJlZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsgLy8gRklYTUU6IFRoaXMgaXMgdGVtcG9yYXJ5
IGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNvcHkgdGhlIGltYWdlIGJ1ZmZlciB0byByZW5k
ZXIgKGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgogfTsKIAoraW5saW5lIGJvb2wgaXNIVE1MQ2Fu
dmFzRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6Y2FudmFzVGFnKTsKK30KKworaW5saW5lIEhUTUxDYW52YXNFbGVtZW50KiB0b0hU
TUxDYW52YXNFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2RlIHx8IGlzSFRN
TENhbnZhc0VsZW1lbnQobm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQ2FudmFz
RWxlbWVudCo+KG5vZGUpOworfQorCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCAzNjYwYWI5NDhlMDc4Nzg5NzQ3YmNhZWJlZTVkMGI2
OThjZjM1YWZlLi5kMDJhZDYwNWMyN2IzOWRmMTI0YmRjYjgyYjYxNTAyZmQ0ZDk4Y2ZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTM5LDMgKzEzOSw0IEBAIHZpZGVvIHdy
YXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29uc3RydWN0
b3JOZWVkc0NyZWF0ZWRCCiB3YnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogeG1wIGludGVy
ZmFjZU5hbWU9SFRNTFByZUVsZW1lbnQKIG5vc2NyaXB0IGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKK3dlYmtpdElubmVyQ2FudmFzIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIG5vQ29uc3Ry
dWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1l
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJmYTllMDdhODgzOGQ4MzcyNmE1NWI5YzJiMzRiN2NkMjJiZjU4
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYW52YXNJ
bm5lckVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ2FudmFzSW5uZXJFbGVtZW50LmgiCisKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50
LmgiCisjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK0Nh
bnZhc0lubmVyRWxlbWVudDo6Q2FudmFzSW5uZXJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkK
KyAgICA6IEhUTUxFbGVtZW50KEhUTUxOYW1lczo6d2Via2l0SW5uZXJDYW52YXNUYWcsIGRvY3Vt
ZW50KQoreworfQorCitSZW5kZXJPYmplY3QqIENhbnZhc0lubmVyRWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgaWYg
KHN0eWxlLT5oYXNDb250ZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0
ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyRm9yQ2FudmFz
KHRoaXMsIGFyZW5hKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBDYW52YXNJbm5lckVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1jYW52YXMtaW5uZXItZWxlbWVudCIpKTsK
KyAgICByZXR1cm4gcHNldWRvSWQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiOWNiOWRlNzUxN2NkMzZj
YTZhOGM4ZDgzZTY0YzY0MTkyOGM1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IENhbnZhc0lubmVyRWxlbWVudF9oCisjZGVmaW5lIENhbnZhc0lubmVyRWxlbWVudF9oCisKKyNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEhUTUxDYW52YXNFbGVtZW50OworY2xhc3MgUmVuZGVyT2JqZWN0OworCitjbGFzcyBDYW52
YXNJbm5lckVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBDYW52YXNFbGVtZW50
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYW52YXNJbm5lckVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCopOworICAgIEhUTUxDYW52YXNFbGVtZW50KiBob3N0Q2FudmFzKCkgeyBy
ZXR1cm4gdG9IVE1MQ2FudmFzRWxlbWVudChzaGFkb3dBbmNlc3Rvck5vZGUoKSk7IH0KKworcHJp
dmF0ZToKKyAgICBDYW52YXNJbm5lckVsZW1lbnQoRG9jdW1lbnQqKTsKKworICAgIFJlbmRlck9i
amVjdCogY2FudmFzUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBIVE1MRWxlbWVudDo6cmVuZGVy
ZXIoKTsgfQorCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKK307CisKK2lubGluZSBQ
YXNzUmVmUHRyPENhbnZhc0lubmVyRWxlbWVudD4gQ2FudmFzSW5uZXJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzSW5u
ZXJFbGVtZW50KGRvY3VtZW50KSk7Cit9CisKK2lubGluZSBib29sIGlzQ2FudmFzSW5uZXJFbGVt
ZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuICFub2RlIHx8IG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjp3ZWJraXRJbm5lckNhbnZhc1RhZyk7Cit9CisKK2lubGluZSBDYW52YXNJbm5l
ckVsZW1lbnQqIHRvQ2FudmFzSW5uZXJFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJU
KGlzQ2FudmFzSW5uZXJFbGVtZW50KG5vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fu
dmFzSW5uZXJFbGVtZW50Kj4obm9kZSk7Cit9CisKK2lubGluZSBIVE1MQ2FudmFzRWxlbWVudCog
aG9zdENhbnZhc0VsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoaXNIVE1MQ2FudmFzRWxl
bWVudChub2RlKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTENhbnZhc0VsZW1lbnQobm9kZSk7Cisg
ICAgcmV0dXJuIGlzQ2FudmFzSW5uZXJFbGVtZW50KG5vZGUpPyB0b0NhbnZhc0lubmVyRWxlbWVu
dChub2RlKS0+aG9zdENhbnZhcygpIDogMDsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcAppbmRleCAzMzExNjk4OWU0MWM1
MzBlYjYzMjMwOTIwMGUzZjI1MWI1OGU3ZmIzLi43YjZjYTVjMjE2MTc4MmY5YWZkYWMyNmU0MjJi
YjQ5MmEyY2UyZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SFRNTENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVuZGVySFRNTENhbnZhcy5oIgogCisjaW5jbHVkZSAiQ2FudmFzSW5uZXJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQxLDkgKzQyLDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUmVuZGVySFRNTENhbnZhczo6
UmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRl
clJlcGxhY2VkKGVsZW1lbnQsIGVsZW1lbnQtPnNpemUoKSkKK1JlbmRlckhUTUxDYW52YXM6OlJl
bmRlckhUTUxDYW52YXMoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBSZW5kZXJSZXBsYWNl
ZChlbGVtZW50LCBob3N0Q2FudmFzRWxlbWVudChlbGVtZW50KS0+c2l6ZSgpKQogeworICAgIEFT
U0VSVChpc0NhbnZhc0lubmVyRWxlbWVudChlbGVtZW50KSB8fCBpc0hUTUxDYW52YXNFbGVtZW50
KGVsZW1lbnQpKTsKICAgICB2aWV3KCktPmZyYW1lVmlldygpLT5zZXRJc1Zpc3VhbGx5Tm9uRW1w
dHkoKTsKIH0KIApAQCAtNTIsNyArNTQsNyBAQCBib29sIFJlbmRlckhUTUxDYW52YXM6OnJlcXVp
cmVzTGF5ZXIoKSBjb25zdAogICAgIGlmIChSZW5kZXJSZXBsYWNlZDo6cmVxdWlyZXNMYXllcigp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKLSAgICBIVE1MQ2FudmFzRWxlbWVudCogY2Fu
dmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkpOworICAgIEhUTUxD
YW52YXNFbGVtZW50KiBjYW52YXMgPSBob3N0Q2FudmFzRWxlbWVudChub2RlKCkpOwogICAgIHJl
dHVybiBjYW52YXMgJiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkgJiYgY2FudmFzLT5yZW5k
ZXJpbmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWQoKTsKIH0KIApAQCAtNjksMTQgKzcxLDE0IEBA
IHZvaWQgUmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhCiAgICAgfQogCiAgICAgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUgPSBzdHlsZSgpLT5pbWFnZVJlbmRlcmluZygpID09IEltYWdlUmVuZGVyaW5nT3B0aW1p
emVDb250cmFzdDsKLSAgICBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSkt
PnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAg
IGhvc3RDYW52YXNFbGVtZW50KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0
LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIFJlbmRlckhUTUxDYW52YXM6OmNhbnZh
c1NpemVDaGFuZ2VkKCkKIHsKLSAgICBJbnRTaXplIGNhbnZhc1NpemUgPSBzdGF0aWNfY2FzdDxI
VE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnNpemUoKTsKKyAgICBJbnRTaXplIGNhbnZhc1Np
emUgPSBob3N0Q2FudmFzRWxlbWVudChub2RlKCkpLT5zaXplKCk7CiAgICAgSW50U2l6ZSB6b29t
ZWRTaXplKGNhbnZhc1NpemUud2lkdGgoKSAqIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSwgY2Fu
dmFzU2l6ZS5oZWlnaHQoKSAqIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7Ci0KKyAgICAKICAg
ICBpZiAoem9vbWVkU2l6ZSA9PSBpbnRyaW5zaWNTaXplKCkpCiAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgKaW5kZXggNWJlZDI3
ZjRmMmViM2RlM2IxYTA4MTVjYTUxYTE1ZjE2NzMxNDEwNi4uNGNmN2YwMDhiNjcxNGM2ZTQ1N2Q2
YzRmNGYzNDcyMTVjNDY5ZjM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckhUTUxDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SFRNTENhbnZhcy5oCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKK2NsYXNzIENhbnZhc0VsZW1lbnQ7CiAKIGNsYXNz
IFJlbmRlckhUTUxDYW52YXMgOiBwdWJsaWMgUmVuZGVyUmVwbGFjZWQgewogcHVibGljOgotICAg
IGV4cGxpY2l0IFJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQqKTsKKyAgICBleHBs
aWNpdCBSZW5kZXJIVE1MQ2FudmFzKEhUTUxFbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNDYW52YXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVp
cmVzTGF5ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggZDI2ZWVmMWUzNGU4ZTQ1NWYyNGJjYWI0ZDJhYzIyY2YyOWVj
M2RmNS4uMjg5MDBmOTM0NmFlOTUzMjhlNGNmYTUxYzY1MzIwNWU1YWY1ZWZhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKIAogI2luY2x1ZGUgIkFu
aW1hdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYW52YXNJbm5lckVsZW1lbnQuaCIKICNp
bmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgpAQCAtODEsNyArODIsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNBY2NlbGVyYXRlZENhbnZhcyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewog
I2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBp
ZiAocmVuZGVyZXItPmlzQ2FudmFzKCkpIHsKLSAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNh
bnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSk7
CisgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBob3N0Q2FudmFzRWxlbWVudChy
ZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgaWYgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQgPSBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKICAgICAgICAgICAgIHJldHVybiBj
b250ZXh0LT5pc0FjY2VsZXJhdGVkKCk7CiAgICAgfQpAQCAtMTk0LDcgKzE5NSw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXllcigpCiAKICNpZiBQ
TEFURk9STShNQUMpICYmIFVTRShDQSkKICAgICBpZiAoIWNvbXBvc2l0b3IoKS0+YWNjZWxlcmF0
ZWREcmF3aW5nRW5hYmxlZCgpICYmIHJlbmRlcmVyKCktPmlzQ2FudmFzKCkpIHsKLSAgICAgICAg
SFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50
Kj4ocmVuZGVyZXIoKS0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZh
cyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyKCktPm5vZGUoKSk7CiAgICAgICAgIGlmIChj
YW52YXMtPnNob3VsZEFjY2VsZXJhdGUoY2FudmFzLT5zaXplKCkpKQogICAgICAgICAgICAgbV9n
cmFwaGljc0xheWVyLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcodHJ1ZSk7CiAgICAgfQpAQCAtNDE5
LDcgKzQyMCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVy
Q29uZmlndXJhdGlvbigpCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShBQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgZWxzZSBpZiAoaXNBY2NlbGVyYXRlZENhbnZhcyhyZW5k
ZXJlcikpIHsKLSAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0
PEhUTUxDYW52YXNFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSk7CisgICAgICAgIEhUTUxDYW52
YXNFbGVtZW50KiBjYW52YXMgPSBob3N0Q2FudmFzRWxlbWVudChyZW5kZXJlci0+bm9kZSgpKTsK
ICAgICAgICAgaWYgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMtPnJl
bmRlcmluZ0NvbnRleHQoKSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVu
dHNUb0NhbnZhcyhjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkpOwogICAgICAgICBsYXllckNvbmZp
Z0NoYW5nZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA0NTBiNGZjODdjMTZiNmYwNGY5NWQ5NWFhYmE5MGY1
OGY1YzkzYjdhLi4xZWFjM2U5NjBmZTQyYjAyNmY1YjQ5ZmUxOTkzMGY4ZDg0Yzk4NjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgog
CiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkNhbnZhc0lubmVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC0xNjk1LDcgKzE2
OTYsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0Zv
ckNhbnZhcyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAocmVuZGVyZXItPmlzQ2FudmFzKCkpIHsKLSAgICAgICAgSFRNTENhbnZhc0VsZW1l
bnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4ocmVuZGVyZXItPm5v
ZGUoKSk7CisgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBob3N0Q2FudmFzRWxl
bWVudChyZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgcmV0dXJuIGNhbnZhcy0+cmVuZGVyaW5n
Q29udGV4dCgpICYmIGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpLT5pc0FjY2VsZXJhdGVkKCk7
CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MTNmNTUzODE1NjhhNjVlOGEyNjRh
MDQ0YTM3NzhiZGUzY2JlMjQwLi41NGY0NWE5NzM0MjI2ZTU5OTk3ZWI3NjJmMzI2OGIxZGM1NGQy
MjUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDgtMjcgIFRha2FzaGkgU2FrYW1vdG8g
IDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBET00gZm9yIDxjYW52YXM+Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDg2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250
ZXh0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRpb24tcG9pbnQtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLW5vLWluc2VydGlvbi1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZh
cy13aXRoLW11bHRpcGxlLXNoYWRvdy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3cu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBzZXVkby1pZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13
aWR0aC1oZWlnaHQtZHluYW1pYy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHluYW1p
Yy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1j
YW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZh
cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0yOCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBDU1AgZG9lc24ndCB0dXJuIG9mZiBldmFsLCBldGMuIGluIFdlYiBX
b3JrZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtY29udGVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hOGJhZmYzYTI1OWM5ZDZhODk1YWNiNDYyNzlhYmQ2ODRjNzFmZDA5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LWNvbnRlbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZh
ciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0
eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUs
IDEyMCwgMzApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9
ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGlu
ZS1ibG9jayI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48c3Bhbj5mYWxsYmFjazwvc3Bhbj48
L2NhbnZhcz4oYWZ0ZXIpPHNwYW4+ZmFsbGJhY2s8L3NwYW4+PC9kaXY+CisgICAgPC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc1YmM4Yzk4MWI2OGEyMWQwYjVkMTUzMmU4OTRlZmJkZWQ1MTJiMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMt
Y29udGVudC5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQg
PSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdi
YSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7
Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9
ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFkb3c+KGFmdGVyKTxjb250ZW50PjwvY29udGVudD4iOwor
fQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpOworICAgIHNwYW4uaW5uZXJIVE1MID0gJ2ZhbGxiYWNrJzsKKworICAg
IHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBob3N0LmFw
cGVuZENoaWxkKHNwYW4pOworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKKyAgICB1cGRhdGVDYW52
YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0i
aG9zdCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZh
cy1keW5hbWljLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZmNh
NmM5Zjk0MDNlNmRiNzMxMTI2ZWQwNzRkOGJhNDRjZTljNDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZh
ciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0
eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUs
IDEyMCwgMzApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9
ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGlu
ZTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6MjAwcHgiPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+
PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzc0ZWMxNThmN2I4ZjFj
ODFkMTNlYzg5Njc2NjZlYWY5ZDVmY2U3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbApAQCAtMCww
ICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHVw
ZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRl
eHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSkn
OworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFk
ZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93
Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+
PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhv
c3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIGFkZFNoYWRvd0RPTSho
b3N0KTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGhvc3Quc2V0QXR0
cmlidXRlKCJ3aWR0aCIsIDEwMCk7CisgICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCJoZWlnaHQi
LCAyMDApOworICAgICAgICB1cGRhdGVDYW52YXMoaG9zdCk7CisKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
fSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9z
dCI+PC9jYW52YXM+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI3NDE3OTg1ZDAyZTZlNGU0ZTlkY2Vk
MmUxNTNiMGZiYzU0MGQwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1
cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250
ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUp
JzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qn
KTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAg
ICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMg
aWQ9Imhvc3QiPjwvY2FudmFzPihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYThiYWZmM2EyNTljOWQ2YTg5NWFjYjQ2Mjc5YWJkNjg0YzcxZmQw
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVs
ZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
ICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4
dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRl
Q2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PHNwYW4+
ZmFsbGJhY2s8L3NwYW4+PC9jYW52YXM+KGFmdGVyKTxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvZGl2
PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29udGV4dC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdl
dGNvbnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWJjOGM5ODFiNjhhMjFkMGI1ZDE1MzJlODk0ZWZi
ZGVkNTEyYjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQuaHRtbApAQCAtMCwwICsxLDM1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Bv
bHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxl
bWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAg
IGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0
LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9z
dCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7Cisg
ICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRl
cik8Y29udGVudD48L2NvbnRlbnQ+IjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2
YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzcGFuLmlubmVy
SFRNTCA9ICdmYWxsYmFjayc7CisKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdob3N0Jyk7CisgICAgaG9zdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBhZGRTaGFkb3dE
T00oaG9zdCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxk
aXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtbm8taW5zZXJ0aW9uLXBvaW50LWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtbm8t
aW5zZXJ0aW9uLXBvaW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk5NGUwY2U2ZWQ1NmFm
NzQ2YjVkM2VlMDRhMzQzMzY4Yjg0MTgwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRpb24tcG9pbnQt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXY+KE5l
aXRoZXIgc2hhZG93IG5vciBjYW52YXMpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRpb24tcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRpb24tcG9pbnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41Yjk1OTg0OTI2Y2VhZTQ4MjU1NmQ5YjM2NjY0OTFkYjdkODgwN2I1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLW5vLWluc2VydGlvbi1wb2ludC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50
KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29u
dGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmls
bFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7
CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBz
aGFkb3dSb290LmlubmVySFRNTCA9ICIoTmVpdGhlciBzaGFkb3cgbm9yIGNhbnZhcykiOworfQor
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7CisgICAgYWRkU2hhZG93RE9N
KGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhv
c3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMt
c3R5bGUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy1zdHlsZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzhkMDNjMGU1
MmUyYTAyYzdkYzhlMTk4ZWIzODZhMzRmNmQ1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4
dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdy
Z2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMw
KTsKK30KKworZnVuY3Rpb24gZG9BcHBseShub2RlaWQpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKG5vZGVpZCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQor
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGRvQXBwbHkoJ2hvc3QxJyk7CisgICAgZG9BcHBs
eSgnaG9zdDInKTsKKyAgICBkb0FwcGx5KCdob3N0MycpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxk
aXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IHdpZHRoOiAxMjBweDsgaGVp
Z2h0OiAxMjBweDsiPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdDEiIHdpZHRoPSIxMjAiIGhlaWdo
dD0iMTIwIj48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAg
ICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyB3aWR0aDogMTIwcHg7IGhlaWdodDog
MTIwcHg7Ij4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QyIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEy
MCI+PC9jYW52YXM+KGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAg
IDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDEyMHB4
OyI+KGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0MyIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjwv
Y2FudmFzPihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtc3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzMyZGUwNTY1ODQ0NGNjNjhlMmRm
ZWFlYzU3MDZjZWNiMTE1MTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLmh0bWwKQEAgLTAsMCArMSw0MyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFz
KGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsK
KyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29u
dGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9N
KGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3Qp
OworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4o
YWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gZG9BcHBseShub2RlaWQpIHsKKyAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5vZGVpZCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3Qp
OworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICBkb0FwcGx5KCdob3N0MScpOworICAgIGRvQXBwbHkoJ2hvc3QyJyk7CisgICAgZG9BcHBseSgn
aG9zdDMnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJo
b3N0MSIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2Nh
bnZhcz4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0MiIg
c3R5bGU9ImRpc3BsYXk6IGJsb2NrIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+
CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdDMiIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hh
ZG93LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43OWI5ZDIxM2ZjYjU1ZjgwNTU5NTlkY2U1MjlmYTcyN2I5NDYxMjc2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtbXVsdGlwbGUtc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQp
IHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250
ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxs
UmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIg
aG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFz
KGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNw
bGF5OiBpbmxpbmUtYmxvY2siPihiZWZvcmUpKGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48L2Nh
bnZhcz4oYWZ0ZXIpKGFmdGVyKTwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlOWRhYzRlNWU2YzBkMGY1ZjgxNGU5MmZiZGIyOGZjZmI1OTE4MjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtd2l0aC1tdWx0aXBsZS1zaGFkb3cuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlm
aWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVu
dCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNv
bnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZp
bGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkg
eworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlciki
OworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7CisgICAgYWRkU2hh
ZG93RE9NKGhvc3QpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAg
ICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0
aC1wc2V1ZG8taWQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTY2YjY2NzI1MzI4NGJiNzE1
ZjczOWFiYjg2YzM1Y2VkZGQ3NDU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisj
aG9zdCB7CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9Cis8L3N0eWxl
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNv
bnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUg
PSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgNDUw
LCAyNTApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFk
b3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlv
biBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hv
c3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4K
KyAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52
YXMgaWQ9Imhvc3QiPjwvY2FudmFzPihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZmM3ZjI5YjQwMWE3ZWYwZWZlZWRiMDYyMjliMmIyMGEzODMwODg3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLXdpdGgtcHNldWRvLWlkLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisjaG9zdDo6LXdlYmtpdC1jYW52YXMtaW5uZXItZWxlbWVudCB7
CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9Cis8L3N0eWxlPgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQg
PSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdi
YSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgNDUwLCAyNTAp
OworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsK
KyAgICBhZGRTaGFkb3dET00oaG9zdCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250
YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgor
ICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWln
aHQtZHluYW1pYy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44Yzc0MTYyNDY4NGM3YTMzYzYwYjlmZTEwODIzZDhjODQ2NDMyZmFmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQu
Z2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwy
NTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKKyAgICBjb250
ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDEwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmls
bFJlY3QoMCwgNzAsIDI1MCwgMjMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2Fu
dmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJk
aXNwbGF5OmlubGluZS1ibG9jazsgd2lkdGg6MjAwcHg7IGhlaWdodDozMDBweDsgYmFja2dyb3Vu
ZC1jb2xvcjpyZ2JhKDgwLDgwLDgwLDAuNSk7Ij4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiIHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1keW5hbWlj
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMt
d2l0aC13aWR0aC1oZWlnaHQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MjhlNDU2ZDVjMGUx
NTFlNmNjZGJiMTFlNzdiYTA3ZDBiOTViYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQt
ZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4
dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdy
Z2JhKDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzAp
OworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMTAwLDEwMCwyNTUsMC41KSc7CisgICAg
Y29udGV4dC5maWxsUmVjdCgwLCA3MCwgMjUwLCAyMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFk
b3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3Qo
aG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hh
ZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7
CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICBob3N0LnN0eWxlLmRpc3BsYXkg
PSAiaW5saW5lLWJsb2NrIjsKKyAgICAgICBob3N0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJy
Z2JhKDgwLDgwLDgwLDAuNSkiOworICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIy
MDAiKTsKKyAgICAgICBob3N0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjMwMCIpOworICAgICAg
IHVwZGF0ZUNhbnZhcyhob3N0KTsKKyAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIi
PgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiIHdpZHRoPSIxMDAiIGhlaWdo
dD0iMTIwIj48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xOWI1YmE5YWY4ZjI4ODIzMzE0ZjgxYjhlMDljNTU0ZmY5MGJlZDBl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwy
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENv
bnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAu
NSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9z
dCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2Pgor
ICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPihiZWZvcmUpPGNhbnZh
cyBpZD0iaG9zdCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjY1Ij48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhl
aWdodC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2Fu
dmFzLXdpdGgtd2lkdGgtaGVpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRlYzk5MjNiZWRhODljYmU2
NTM2MjU0MTFkZjE0OTcxNzRjMDUzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1s
CkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50Lmdl
dENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1
LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0
aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0
U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxz
aGFkb3c+PC9zaGFkb3c+KGFmdGVyKSI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
dmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNh
bnZhcyhob3N0KTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAg
PGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjY1Ij48
L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYjY5NjJhMjYzODUwMmU1MmMzYjM3MWViNzFkMDgxYjJmNGE5ZWExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9
IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2Jh
KDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsK
K30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
IihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Cisg
ICAgdXBkYXRlQ2FudmFzKGhvc3QpOworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFp
bmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161395</attachid>
            <date>2012-08-29 21:22:17 -0700</date>
            <delta_ts>2012-09-17 23:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90861-20120830132206.patch</filename>
            <type>text/plain</type>
            <size>57242</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI5NWU2MmU4OTZlNDE3
NjM4OTRjNTg1OGVmYWJiN2EyYTY3MTRjZS4uMmRjZWRmNDE5NTMyZmUyZDg0OTk3NjZkMDdjYmE4
ODBiZjA1YWZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMCBAQAorMjAxMi0wOC0yNyAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93IERPTSBm
b3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIFNoYWRvdyBET00gc3VwcG9ydCBmb3IgY2FudmFzIGVsZW1lbnQu
CisgICAgICAgIEFjY29yZGluZyB0byB0aGUgU2hhZG93IERPTSBzcGVjLCBjYW52YXMgZWxlbWVu
dCBzaG91bGQgd29yayBhcyBpZiBpdAorICAgICAgICBoYXMgYSB1c2VyIGFnZW50IHNoYWRvdyBk
b20uIEhvd2V2ZXIsIGl0IHdpbGwgY2F1c2UgcGVyZm9ybWFuY2UKKyAgICAgICAgcmVncmVzc2lv
biBhbmQgbWVtb3J5IGJsb2F0IHRvIGFkZCBzdWNoIGEgdXNlciBhZ2VudCBzaGFkb3cgZG9tIHRv
CisgICAgICAgIGNhbnZhcyBlbGVtZW50IGJ5IGRlZmF1bHQuIFNvIHdlIHdvdWxkIGxpa2UgdG8g
cG9zdHBvbmUgYWRkaW5nIGEgdXNlcgorICAgICAgICBhZ2VudCBTaGFkb3cgRE9NIHVudGlsIHdl
IG5lZWQgaXQsIGkuZS4gdXNlcnMgYWRkIGFuIGF1dGhvciBzaGFkb3cgRE9NCisgICAgICAgIHRv
IGNhbnZhcyBlbGVtZW50LiBUaGUgdXNlciBhZ2VudCBTaGFkb3cgRE9NIGZvciBjYW52YXMgZWxl
bWVudCBoYXMKKyAgICAgICAgb25seSBvbmUgZWxlbWVudCwgd2hpY2ggZGlzcGxheXMgb25lIGNh
bnZhcy4gVGhlIGVsZW1lbnQgaXMgaW1wbGVtZW50ZWQKKyAgICAgICAgYnkgQ2FudmFzSW5uZXJF
bGVtZW50LmNwcCBhbmQgLmguCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRp
b24tcG9pbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXN0eWxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgQ2FudmFzSW5uZXJFbGVtZW50LmNwcCBh
bmQgQ2FudmFzSW5uZXJFbGVtZW50LmguCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICBCZWNhdXNlIG9mIHJlbW92aW5nIG1fcmVuZGVyZXJJc0NhbnZhcywg
cmVtb3ZlZCBhIGNvZGUgZm9yIGluaXRpYWxpemluZworICAgICAgICBtX3JlbmRlcklzQ2FudmFz
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKToKKyAgICAgICAgSW1wbGVtZW50ZWQgdG8gdXBkYXRlIGNhbnZhcyB3aWR0aCBvciBo
ZWlnaHQgYnkgdXNpbmcgd2lkdGggb3IgaGVpZ2h0CisgICAgICAgIGF0dHJpYnV0ZSBhZnRlciBh
ZGRpbmcgYW55IGF1dGhvciBzaGFkb3cgcm9vdC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZSk6
CisgICAgICAgIEltcGxlbWVudGVkIHRvIHVwZGF0ZSBjYW52YXMgc3R5bGUgd2lkdGggb3IgaGVp
Z2h0IHdoZW4gd2lkdGggb3IgaGVpZ2h0CisgICAgICAgIGF0dHJpYnV0ZSdzIHZhbHVlIGlzIGNo
YW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICBJZiBubyBhdXRob3Igc2hhZG93IHJvb3RzIGFyZSBhZGRlZCwgaW52b2tl
IHJlc2V0KCkuIElmIGFkZGVkLCBqdXN0CisgICAgICAgIHVwZGF0ZSBzdHlsZSB3aWR0aCBvciBo
ZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIpOgorICAgICAgICBJZiBhbnkgc2hhZG93IGRvbSBzdWJ0cmVlIGlzIGFkZGVkIGFuZCBzdHls
ZSBoYXMgY29udGVudCwgY3JlYXRlCisgICAgICAgIGEgbmV3IFJlbmRlck9iamVjdCwgbm90IFJl
bmRlckhUTUxDYW52YXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6d2ls
bEFkZEF1dGhvclNoYWRvd1Jvb3QpOgorICAgICAgICBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGZy
b20gRWxlbWVudFNoYWRvdzo6YWRkU2hhZG93Um9vdC4gSWYgbm8gdXNlcgorICAgICAgICBhZ2Vu
dCBzaGFkb3cgcm9vdCBpcyBhZGRlZCAoPSB0aGUgZmlyc3QgdGltZSB3aGVuIHRoZQorICAgICAg
ICB3aWxsQWRkQXV0aG9yU2hhZG93Um9vdCBpcyBpbnZva2VkKSwgY3JlYXRlIGEgdXNlciBhZ2Vu
dCBzaGFkb3cgZG9tCisgICAgICAgIHRyZWUgYW5kIGFkZC4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgQ3JlYXRlIGEg
dXNlciBhZ2VudCBzaGFkb3cgZG9tIHRyZWUuIEl0IGhhcyBvbmx5IG9uZSBlbGVtZW50IGZvcgor
ICAgICAgICByZW5kZXJpbmcgPGNhbnZhcz4uCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6cmVzZXQpOgorICAgICAgICBJbnN0ZWFkIG9mIG1fcmVuZGVyZXJJc0NhbnZhcywg
dXNlIHJlbmRlcmVyLT5pc0NhbnZhcygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6OnJlbmRlcmVyQ2FudmFzKToKKyAgICAgICAgUmV0dXJuIGFuIGluc3RhbmNlIG9mIGNs
YXNzIHJlbmRlckhUTUxDYW52YXMsIGkuZS4gaWYgYW55IGF1dGhvciBzaGFkb3cKKyAgICAgICAg
cm9vdCBpcyBhZGRlZCwgcmV0dXJucyBhIHJlbmRlcmVyIG9mIHRoZSBlbGVtZW50IGluIHRoZSB1
c2VyIGFnZW50CisgICAgICAgIHNoYWRvdyBkb20gdHJlZS4gT3RoZXJ3aXNlLCByZXR1cm5zIGEg
cmVuZGVyZXIgb2YKKyAgICAgICAgdGhlIEhUTUxDYW52YXNFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXJGb3JDYW52YXMpOgorICAgICAgICBD
cmVhdGUgYW4gaW5zdGFuY2Ugb2YgcmVuZGVySFRNTENhbnZhcyBhbmQgcmV0dXJuLgorICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgUmVtb3ZlZCBtX3JlbmRlcmVy
SXNDYW52YXMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENhbnZhc0VsZW1lbnQpOgor
ICAgICAgICAoSFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MQ2Fu
dmFzRWxlbWVudCk6CisgICAgICAgIElmIHRoZSBnaXZlbiBub2RlIGlzIGFuIGluc3RhbmNlIG9m
IEhUTUxDYW52YXNFbGVtZW50LCByZXR1cm5zIHRydWUuCisgICAgICAgIChXZWJDb3JlOjp0b0hU
TUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5uZXJFbGVtZW50OjpDYW52YXNJ
bm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzSW5uZXJFbGVtZW50Ojpob3N0
Q2FudmFzKToKKyAgICAgICAgUmV0dXJucyBpdHMgc2hhZG93IGhvc3QsIGkuZS4gYW4gaW5zdGFu
Y2Ugb2YgSFRNTENhbnZhc0VsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNJbm5lckVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgQ3JlYXRlIGEgcmVuZGVyZXIgZm9yIENh
bnZhc0lubmVyRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0lubmVyRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICBUbyBhcHBseSBzdHlsZXMgdG8gQ2FudmFzSW5uZXJF
bGVtZW50LCBhZGRlZAorICAgICAgICAiLXdlYmtpdC1jYW52YXMtaW5uZXItZWxlbWVudCIuCisg
ICAgICAgICogaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDYW52YXNJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzSW5uZXJFbGVtZW50OjpjYW52YXNSZW5kZXJlcik6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNJbm5lckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Nh
bnZhc0lubmVyRWxlbWVudCk6CisgICAgICAgIElmIHRoZSBnaXZlbiBub2RlIGlzIGFuIGluc3Rh
bmNlIG9mIENhbnZhc0lubmVyRWxlbWVudCwgcmV0dXJucyB0cnVlLgorICAgICAgICAoV2ViQ29y
ZTo6dG9DYW52YXNJbm5lckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aG9zdENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICBJZiB0aGUgZ2l2ZW4gbm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBDYW52
YXNJbm5lckVsZW1lbnQsIHJldHVybnMgaXRzCisgICAgICAgIHNoYWRvdyBob3N0LiBJZiBhbiBp
bnN0YW5jZSBvZiBIVE1MQ2FudmFzRWxlbWVudCwgcmV0dXJucyB0aGUgZ2l2ZW4KKyAgICAgICAg
bm9kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2FudmFzKToKKyAgICAgICAg
Q2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgYXJndW1lbnQgZnJvbSBIVE1MQ2FudmFzRWxl
bWVudCogdG8KKyAgICAgICAgSFRNTEVsZW1lbnQqLiBUbyBvYnRhaW4gc2l6ZSBvZiB0aGUgZWxl
bWVudCwgdXNlIGhvc3RDYW52YXNFbGVtZW50IHRvCisgICAgICAgIG9idGFpbiBIVE1MQ2FudmFz
RWxlbWVudCogYW5kIGludm9rZSBzaXplKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1M
Q2FudmFzOjpyZXF1aXJlc0xheWVyKToKKyAgICAgICAgVXNlIGhvc3RDYW52YXNFbGVtZW50IHRv
IG9idGFpbiBIVE1MQ2FudmFzRWxlbWVudCogZnJvbSBub2RlKCksCisgICAgICAgIGJlY2F1c2Ug
bm9kZSgpIGNhbiBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MQ2FudmFzRWxlbWVudCBvcgorICAgICAg
ICBDYW52YXNJbm5lckVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFz
OjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgVXNlIGhvc3RDYW52YXNFbGVtZW50IHRvIG9idGFp
biBIVE1MQ2FudmFzRWxlbWVudCogZnJvbSBub2RlKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCk6CisgICAgICAgIFVzZSBob3N0Q2FudmFz
RWxlbWVudCB0byBvYnRhaW4gSFRNTENhbnZhc0VsZW1lbnQqIGZyb20gbm9kZSgpLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJlbmRlckhUTUxDYW52YXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBY2NlbGVyYXRlZENhbnZhcyk6Cisg
ICAgICAgIFVzZSBob3N0Q2FudmFzRWxlbWVudCB0byBvYnRhaW4gSFRNTENhbnZhc0VsZW1lbnQq
IGZyb20gbm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVh
dGVQcmltYXJ5R3JhcGhpY3NMYXllcik6CisgICAgICAgIGRpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbik6
CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJl
c0NvbXBvc2l0aW5nRm9yQ2FudmFzKToKKyAgICAgICAgZGl0dG8uCisKIDIwMTItMDgtMjkgIFJh
ZmFlbCBCcmFuZGFvICA8cmFmYWVsLmxvYm9Ab3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbVGV4
bWFwXSBDU1MgVHJhbnNmb3JtIGZsaWNrcyBhdCB0aGUgZW5kIG9mIGFuaW1hdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA0MjQ5YjNkNjMxMTUzMDQ3NTBiNWIwNmE1MmFkZGNlNjcyYWI2YzNm
Li5jZmY4OTUyYWJjNzI3MWIyZmM4NmZlZDJjYWM3YjI5YWY2NTc5ZDZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTQ5OCw2ICsxNDk4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcAogICAgIGh0bWwvcGFyc2VyL1hTU0F1
ZGl0b3IuY3BwCiAKKyAgICBodG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwCiAgICAg
aHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAogICAgIGh0bWwvc2hhZG93L0NvbnRl
bnRTZWxlY3RvclF1ZXJ5LmNwcAogICAgIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9s
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzdiYjkyMGU2ZTJkZGZhY2Qz
MWJlODUxNDA5ZmQ0YWU5ZWQxMGU1MC4uNDBlYjEyYzQ2Y2JmNDg5YzY0YTU4NTIxYzBiYmU2YjBj
NGFkNGEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNDgyLDYgKzM0ODIs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJF
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJF
bGVtZW50LmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxl
bWVudC5jcHAgXAorICAgIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxl
bWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3Iu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDk4ZmViNTIwY2FmZjg3MjUwMDZmZTUzZGNjMmU0Mjc2MGY3NDAwOWEu
LmFkY2FkZGE2OTY5NThlODk3ODUxMmYyODY5OTIzM2Q0NTFmNmIwMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtNzExLDYgKzcxMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL1RleHREb2N1
bWVudFBhcnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNw
cCBcCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgXAorICAgIGh0bWwvc2hhZG93L0Nh
bnZhc0lubmVyRWxlbWVudC5jcHAgXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRv
ci5jcHAgXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAg
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA5NDZhN2EwYWE4OTc0YTUzZDMwYjY3NDQyNWQ1OTcyNjFkMzE1MDMzLi5iZDBkOWY2YWUxZTUy
ODgzYmFhNzc3YzIxMDdlMWM3M2ZkNzQ3NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NzY0LDYg
KzU3NjQsOCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgnLAorICAgICAgICAgICAg
J2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwv
c2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9D
b250ZW50RGlzdHJpYnV0b3IuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50
RGlzdHJpYnV0b3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9y
UXVlcnkuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggZmJkOGE1YmE1NjIxZTI3MmY0MzgwYjUzNzdiZGQzNjNhODVkMmFmMy4uY2U1NjVi
MjZiMjZhNTAzZTQ1ZjhhYTRjMjUyNzIxNzVkNGIwMDBmMiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTYzOTM4LDYgKzYzOTM4LDE0IEBACiAJ
CQkJTmFtZT0ic2hhZG93IgogCQkJCT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcc2hhZG93XENhbnZhc0lubmVyRWxlbWVudC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xDYW52YXNJbm5l
ckVsZW1lbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnREaXN0cmlidXRvci5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggY2Y1MjczNWZiNzE2N2Y0YTIxODA0ZmJmMDBkOTg0NjJjYjA2ZDViMS4u
M2NjMGJjMjAwOTYzYjViYmI0ZDA1ODE2NjRlNjVjMDRmNTFjMjMwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjI5OSw2ICs2
Mjk5LDggQEAKIAkJRkFCRTcyRjkxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTE1hdGhFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQUJFNzJG
MjEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MTWF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJRkFCRTcy
RkQxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkZCMTA1OUMyMTEwMEQ5
OTlERCAvKiBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgKi87IH07CiAJCUZBQkU3MkZFMTA1OUMy
MTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGQUJFNzJGQzEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MTmFt
ZXMuY3BwICovOyB9OworCQlGQjIwQjMxMTE1RUI0QjhGMDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZCMjBCMkRCMTVFQjQxRTQwMDI3OENDRCAvKiBDYW52YXNJbm5lckVsZW1lbnQuY3BwICovOyB9
OworCQlGQjIwQjMxMzE1RUI0Qjk0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQjIwQjJEQzE1RUI0
MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggKi87IH07CiAJCUZCNzhBRDJFMTUx
QkY1RTYwMEZFNTREMyAvKiBDU1NQYXJzZXJNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQjc4QUQyQzE1MUJGNUQyMDBGRTU0RDMgLyogQ1NTUGFy
c2VyTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZCQzIyMERGMTIzN0ZCRUIwMEJDRjc4OCAvKiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQkMyMjBE
RTEyMzdGQkVCMDBCQ0Y3ODggLyogR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwICovOyB9Owog
CQlGRDAwRDdBNDE0QTNGNjE5MDA3MzQwMTEgLyogU2luY1Jlc2FtcGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDAwRDdBMjE0QTNGNjE5MDA3
MzQwMTEgLyogU2luY1Jlc2FtcGxlci5jcHAgKi87IH07CkBAIC0xMzY5Miw2ICsxMzY5NCw4IEBA
CiAJCUZBQkU3MkYzMTA1OUMxRUIwMEQ5OTlERCAvKiBtYXRodGFncy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBtYXRodGFncy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkFC
RTcyRkIxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkFCRTcyRkMxMDU5QzIxMTAwRDk5OUREIC8q
IE1hdGhNTE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1h
dGhNTE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkIyMEIyREIxNUVC
NDFFNDAwMjc4Q0NEIC8qIENhbnZhc0lubmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNJbm5lckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGQjIwQjJEQzE1RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc0lubmVyRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQjc4QUQyQzE1MUJGNUQyMDBG
RTU0RDMgLyogQ1NTUGFyc2VyTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NQYXJzZXJNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZCQzIyMERF
MTIzN0ZCRUIwMEJDRjc4OCAvKiBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEMDBEN0EyMTRBM0Y2MTkwMDczNDAxMSAv
KiBTaW5jUmVzYW1wbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNpbmNSZXNhbXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5NDIs
NiArMTQ5NDYsOCBAQAogCQk0MTUwRjlFRDEyQjZFMDk5MDAwOEM4NjAgLyogc2hhZG93ICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGQjIwQjJEQjE1RUI0
MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmNwcCAqLywKKwkJCQlGQjIwQjJEQzE1
RUI0MUU0MDAyNzhDQ0QgLyogQ2FudmFzSW5uZXJFbGVtZW50LmggKi8sCiAJCQkJNTdCNzkxOUYx
NEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnREaXN0cmlidXRvci5jcHAgKi8sCiAJCQkJNTdCNzkx
QTAxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnREaXN0cmlidXRvci5oICovLAogCQkJCTU3Qjc5
MUExMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8sCkBAIC0y
NTQ4NCw2ICsyNTQ5MCw3IEBACiAJCQkJOTM3N0FCQTAxNURFRkVFRjAwMzFGRDA0IC8qIFBhZ2lu
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NDc2QUE4MTVEQzRCQjEwMDMwNURCMiAvKiBX
cml0aW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCODAxQkIxNUVDNThDNzAwQ0U2NDNE
IC8qIExheW91dFR5cGVzSW5saW5lTWV0aG9kcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkIyMEIz
MTMxNUVCNEI5NDAwMjc4Q0NEIC8qIENhbnZhc0lubmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yODU3Miw2ICsyODU3OSw3IEBACiAJCQkJNTJCNkM5QzUxNUUzRjRERjAwNjkwQjA1IC8q
IE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJDQ0E5RTIxNUUz
RjYyQzAwNTNDNzdGIC8qIEpTRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MkNDQTlFOTE1RTNGNjRDMDA1M0M3N0YgLyogRE9NRE9NTmFtZWRGbG93Q29sbGVj
dGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUZCMjBCMzExMTVFQjRCOEYwMDI3OENDRCAvKiBD
YW52YXNJbm5lckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGUxYjlmNDhhMTllOWNlNjIwNjE2YWM3NTM3Y2Fi
NjQ3ZDYxMjQ3YjMuLjNkYThmNDVkZTM1MWY1ODkwNDlhOWYxYjg4ZTEyOTZjZGMwZGNjZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuaCIKICNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIgorI2luY2x1ZGUgIkNhbnZhc0lu
bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKICNpbmNsdWRlICJDYW52YXNTdHlsZS5oIgpAQCAtNDYs
NiArNDcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFz
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5j
bHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKQEAgLTgxLDcgKzgzLDYgQEAgc3Rh
dGljIGNvbnN0IGZsb2F0IE1heFNraWFEaW0gPSAzMjc2Ny4wRjsgLy8gTWF4aW11bSB3aWR0aC9o
ZWlnaHQgaW4gQ1NTIHBpeGVscy4KIEhUTUxDYW52YXNFbGVtZW50OjpIVE1MQ2FudmFzRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAg
OiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fc2l6ZShEZWZhdWx0V2lk
dGgsIERlZmF1bHRIZWlnaHQpCi0gICAgLCBtX3JlbmRlcmVySXNDYW52YXMoZmFsc2UpCiAgICAg
LCBtX2lnbm9yZVJlc2V0KGZhbHNlKQogI2lmIEVOQUJMRShISUdIX0RQSV9DQU5WQVMpCiAgICAg
ICAvLyBOT1RFOiBIaWdoLURQSSBjYW52YXMgcmVxdWlyZXMgdGhlIHBsYXRmb3JtLXNwZWNpZmlj
IEltYWdlQnVmZmVyIGltcGxlbWVudGF0aW9uIHRvIHJlc3BlY3QKQEAgLTExNiwyMyArMTE3LDU2
IEBAIEhUTUxDYW52YXNFbGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQogICAgIG1fY29udGV4
dC5jbGVhcigpOyAvLyBFbnN1cmUgdGhpcyBnb2VzIGF3YXkgYmVmb3JlIHRoZSBJbWFnZUJ1ZmZl
ci4KIH0KIAorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK3sKKyAgICBpZiAodXNlckFnZW50U2hh
ZG93Um9vdCgpICYmIChuYW1lID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKG5hbWUpOworfQorCit2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpjb2xsZWN0
U3R5bGVGb3JBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUsIFN0eWxlUHJvcGVy
dHlTZXQqIHN0eWxlKQoreworICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHdpZHRoQXR0cikK
KyAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2lkdGgsIGF0
dHJpYnV0ZS52YWx1ZSgpKTsKKyAgICBlbHNlIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IGhlaWdo
dEF0dHIpCisgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUhl
aWdodCwgYXR0cmlidXRlLnZhbHVlKCkpOworICAgIGVsc2UKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShhdHRyaWJ1dGUsIHN0eWxlKTsKK30KKwogdm9pZCBI
VE1MQ2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1
dGUpCiB7Ci0gICAgaWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gd2lkdGhBdHRyIHx8IGF0dHJpYnV0
ZS5uYW1lKCkgPT0gaGVpZ2h0QXR0cikKKyAgICBpZiAoKGF0dHJpYnV0ZS5uYW1lKCkgPT0gd2lk
dGhBdHRyIHx8IGF0dHJpYnV0ZS5uYW1lKCkgPT0gaGVpZ2h0QXR0cikgJiYgIXVzZXJBZ2VudFNo
YWRvd1Jvb3QoKSkKICAgICAgICAgcmVzZXQoKTsKICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MQ2FudmFzRWxlbWVudDo6
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7
CisgICAgaWYgKHN0eWxlLT5oYXNDb250ZW50KCkgfHwgc2hhZG93KCkpCisgICAgICAgIHJldHVy
biBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisKICAgICBGcmFtZSog
ZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwotICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2Ny
aXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkgewotICAg
ICAgICBtX3JlbmRlcmVySXNDYW52YXMgPSB0cnVlOwotICAgICAgICByZXR1cm4gbmV3IChhcmVu
YSkgUmVuZGVySFRNTENhbnZhcyh0aGlzKTsKLSAgICB9CisgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPnNjcmlwdCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCkp
CisgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7
CiAKLSAgICBtX3JlbmRlcmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICByZXR1cm4gSFRNTEVsZW1l
bnQ6OmNyZWF0ZVJlbmRlcmVyKGFyZW5hLCBzdHlsZSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyRm9yQ2FudmFzKHRoaXMsIGFyZW5hKTsKK30KKwordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6
d2lsbEFkZEF1dGhvclNoYWRvd1Jvb3QoKQoreworICAgIGlmICh1c2VyQWdlbnRTaGFkb3dSb290
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKK30KKwor
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit7CisgICAgUmVm
UHRyPENhbnZhc0lubmVyRWxlbWVudD4gaW5uZXJFbGVtZW50ID0gQ2FudmFzSW5uZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgCisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3Qg
PSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6VXNlckFnZW50U2hhZG93Um9v
dCk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXJFbGVtZW50KTsKIH0KIAogdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6YXR0YWNoKCkKQEAgLTI4MCw3ICszMTQsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpyZXNldCgpCiAjZW5kaWYKIAogICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewotICAgICAgICBpZiAobV9yZW5kZXJlcklzQ2FudmFz
KSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+aXNDYW52YXMoKSkgewogICAgICAgICAgICAgaWYg
KG9sZFNpemUgIT0gc2l6ZSgpKSB7CiAgICAgICAgICAgICAgICAgdG9SZW5kZXJIVE1MQ2FudmFz
KHJlbmRlcmVyKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCkBAIC02MzIsNCArNjY2LDE4IEBAIEFmZmluZVRyYW5zZm9ybSBIVE1MQ2FudmFz
RWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIt
PmJhc2VUcmFuc2Zvcm0oKSAqIHRyYW5zZm9ybTsKIH0KIAorUmVuZGVyT2JqZWN0KiBIVE1MQ2Fu
dmFzRWxlbWVudDo6cmVuZGVyZXJDYW52YXMoKQoreworICAgIGlmIChTaGFkb3dSb290KiByb290
ID0gdXNlckFnZW50U2hhZG93Um9vdCgpKSB7CisgICAgICAgIEFTU0VSVChyb290LT5maXJzdENo
aWxkKCktPmhhc1RhZ05hbWUod2Via2l0SW5uZXJDYW52YXNUYWcpKTsKKyAgICAgICAgcmV0dXJu
IHRvRWxlbWVudChyb290LT5maXJzdENoaWxkKCkpLT5yZW5kZXJlcigpOworICAgIH0KKyAgICBy
ZXR1cm4gcmVuZGVyZXIoKTsKK30KKworUmVuZGVyT2JqZWN0KiBDYW52YXNFbGVtZW50OjpjcmVh
dGVSZW5kZXJlckZvckNhbnZhcyhIVE1MRWxlbWVudCogZWxlbWVudCwgUmVuZGVyQXJlbmEqIGFy
ZW5hKQoreworICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJIVE1MQ2FudmFzKGVsZW1lbnQp
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggMmRk
ZTgwZmQ0ZTAyYmM0NTgyNDZlMjkwODZkOWU0ZDczM2ViNDIxNS4uNzAyYzMxODYyMjQ3ZGY3Yzg4
NzljNzdjZjAwNjA4NWQ3NDQ1NTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaApAQCAtNDMsNiArNDMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
YW52YXNDb250ZXh0QXR0cmlidXRlczsKK2NsYXNzIENhbnZhc0lubmVyRWxlbWVudDsKIGNsYXNz
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyOwpAQCAtNjEsMTIgKzYyLDE5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgY2FudmFzRGVzdHJveWVkKEhUTUxDYW52YXNFbGVtZW50KikgPSAwOwog
fTsKIAotY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworY2xh
c3MgQ2FudmFzRWxlbWVudCB7Citwcm90ZWN0ZWQ6CisgICAgUmVuZGVyT2JqZWN0KiBjcmVhdGVS
ZW5kZXJlckZvckNhbnZhcyhIVE1MRWxlbWVudCosIFJlbmRlckFyZW5hKik7Cit9OworCitjbGFz
cyBIVE1MQ2FudmFzRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIENhbnZhc0Vs
ZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ2FudmFzRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1
YWwgfkhUTUxDYW52YXNFbGVtZW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZEF1dGhv
clNoYWRvd1Jvb3QoKSBPVkVSUklERTsKKwogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoQ2FudmFzT2Jz
ZXJ2ZXIqKTsKICAgICB2b2lkIHJlbW92ZU9ic2VydmVyKENhbnZhc09ic2VydmVyKik7CiAKQEAg
LTE0MCwxMCArMTQ4LDE1IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlU2hhZG93U3VidHJlZSgpOworCisgICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCBjb2xsZWN0
U3R5bGVGb3JBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiwgU3R5bGVQcm9wZXJ0eVNldCopIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKIAor
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXJDYW52YXMoKTsKICAgICB2b2lkIHJlc2V0KCk7CiAK
ICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3Q7CkBAIC0xNjEsOCArMTc0LDYgQEAg
cHJpdmF0ZToKIAogICAgIE93blB0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0PiBtX2NvbnRleHQ7
CiAKLSAgICBib29sIG1fcmVuZGVyZXJJc0NhbnZhczsKLQogICAgIGJvb2wgbV9pZ25vcmVSZXNl
dDsKICAgICBGbG9hdFJlY3QgbV9kaXJ0eVJlY3Q7CiAKQEAgLTE3OSw2ICsxOTAsMTcgQEAgcHJp
dmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsgLy8gRklYTUU6
IFRoaXMgaXMgdGVtcG9yYXJ5IGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNvcHkgdGhlIGlt
YWdlIGJ1ZmZlciB0byByZW5kZXIgKGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgogfTsKIAoraW5s
aW5lIGJvb2wgaXNIVE1MQ2FudmFzRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIHJldHVybiBu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Y2FudmFzVGFnKTsKK30KKworaW5saW5lIEhUTUxD
YW52YXNFbGVtZW50KiB0b0hUTUxDYW52YXNFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNT
RVJUKCFub2RlIHx8IGlzSFRNTENhbnZhc0VsZW1lbnQobm9kZSkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUpOworfQorCiB9IC8vbmFtZXNwYWNlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCAzNjYwYWI5NDhlMDc4
Nzg5NzQ3YmNhZWJlZTVkMGI2OThjZjM1YWZlLi5kMDJhZDYwNWMyN2IzOWRmMTI0YmRjYjgyYjYx
NTAyZmQ0ZDk4Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTM5LDMg
KzEzOSw0IEBAIHZpZGVvIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25h
bD1WSURFTywgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCCiB3YnIgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAogeG1wIGludGVyZmFjZU5hbWU9SFRNTFByZUVsZW1lbnQKIG5vc2NyaXB0IGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKK3dlYmtpdElubmVyQ2FudmFzIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQsIG5vQ29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9DYW52YXNJbm5lckVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYTllMDdhODgzOGQ4MzcyNmE1
NWI5YzJiMzRiN2NkMjJiZjU4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9DYW52YXNJbm5lckVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2FudmFzSW5uZXJFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJSZW5kZXJJbWFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CisKK0NhbnZhc0lubmVyRWxlbWVudDo6Q2FudmFzSW5uZXJFbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KEhUTUxOYW1lczo6d2Via2l0SW5u
ZXJDYW52YXNUYWcsIGRvY3VtZW50KQoreworfQorCitSZW5kZXJPYmplY3QqIENhbnZhc0lubmVy
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSog
c3R5bGUpCit7CisgICAgaWYgKHN0eWxlLT5oYXNDb250ZW50KCkpCisgICAgICAgIHJldHVybiBS
ZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyRm9yQ2FudmFzKHRoaXMsIGFyZW5hKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5n
JiBDYW52YXNJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1jYW52YXMt
aW5uZXItZWxlbWVudCIpKTsKKyAgICByZXR1cm4gcHNldWRvSWQ7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FudmFzSW5uZXJFbGVtZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2NiOWNiOWRlNzUxN2NkMzZjYTZhOGM4ZDgzZTY0YzY0MTkyOGM1MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbnZhc0lubmVyRWxlbWVudC5oCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIENhbnZhc0lubmVyRWxlbWVudF9oCisjZGVmaW5lIENhbnZhc0lu
bmVyRWxlbWVudF9oCisKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OworY2xhc3MgUmVuZGVyT2Jq
ZWN0OworCitjbGFzcyBDYW52YXNJbm5lckVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1
YmxpYyBDYW52YXNFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYW52
YXNJbm5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIEhUTUxDYW52YXNFbGVtZW50
KiBob3N0Q2FudmFzKCkgeyByZXR1cm4gdG9IVE1MQ2FudmFzRWxlbWVudChzaGFkb3dBbmNlc3Rv
ck5vZGUoKSk7IH0KKworcHJpdmF0ZToKKyAgICBDYW52YXNJbm5lckVsZW1lbnQoRG9jdW1lbnQq
KTsKKworICAgIFJlbmRlck9iamVjdCogY2FudmFzUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBI
VE1MRWxlbWVudDo6cmVuZGVyZXIoKTsgfQorCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklE
RTsKK307CisKK2lubGluZSBQYXNzUmVmUHRyPENhbnZhc0lubmVyRWxlbWVudD4gQ2FudmFzSW5u
ZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQ2FudmFzSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7Cit9CisKK2lubGluZSBib29s
IGlzQ2FudmFzSW5uZXJFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuICFub2RlIHx8
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp3ZWJraXRJbm5lckNhbnZhc1RhZyk7Cit9CisK
K2lubGluZSBDYW52YXNJbm5lckVsZW1lbnQqIHRvQ2FudmFzSW5uZXJFbGVtZW50KE5vZGUqIG5v
ZGUpCit7CisgICAgQVNTRVJUKGlzQ2FudmFzSW5uZXJFbGVtZW50KG5vZGUpKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q2FudmFzSW5uZXJFbGVtZW50Kj4obm9kZSk7Cit9CisKK2lubGluZSBI
VE1MQ2FudmFzRWxlbWVudCogaG9zdENhbnZhc0VsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBp
ZiAoaXNIVE1MQ2FudmFzRWxlbWVudChub2RlKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTENhbnZh
c0VsZW1lbnQobm9kZSk7CisgICAgcmV0dXJuIGlzQ2FudmFzSW5uZXJFbGVtZW50KG5vZGUpPyB0
b0NhbnZhc0lubmVyRWxlbWVudChub2RlKS0+aG9zdENhbnZhcygpIDogMDsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApp
bmRleCAzMzExNjk4OWU0MWM1MzBlYjYzMjMwOTIwMGUzZjI1MWI1OGU3ZmIzLi43YjZjYTVjMjE2
MTc4MmY5YWZkYWMyNmU0MjJiYjQ5MmEyY2UyZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogCisjaW5jbHVkZSAiQ2Fu
dmFzSW5uZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQxLDkgKzQyLDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
UmVuZGVySFRNTENhbnZhczo6UmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCogZWxl
bWVudCkKLSAgICA6IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQsIGVsZW1lbnQtPnNpemUoKSkKK1Jl
bmRlckhUTUxDYW52YXM6OlJlbmRlckhUTUxDYW52YXMoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCisg
ICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBob3N0Q2FudmFzRWxlbWVudChlbGVtZW50KS0+
c2l6ZSgpKQogeworICAgIEFTU0VSVChpc0NhbnZhc0lubmVyRWxlbWVudChlbGVtZW50KSB8fCBp
c0hUTUxDYW52YXNFbGVtZW50KGVsZW1lbnQpKTsKICAgICB2aWV3KCktPmZyYW1lVmlldygpLT5z
ZXRJc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKIH0KIApAQCAtNTIsNyArNTQsNyBAQCBib29sIFJlbmRl
ckhUTUxDYW52YXM6OnJlcXVpcmVzTGF5ZXIoKSBjb25zdAogICAgIGlmIChSZW5kZXJSZXBsYWNl
ZDo6cmVxdWlyZXNMYXllcigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKLSAgICBIVE1M
Q2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihu
b2RlKCkpOworICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBob3N0Q2FudmFzRWxlbWVu
dChub2RlKCkpOwogICAgIHJldHVybiBjYW52YXMgJiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0
KCkgJiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWQoKTsKIH0KIApA
QCAtNjksMTQgKzcxLDE0IEBAIHZvaWQgUmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhCiAgICAgfQogCiAgICAg
Ym9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBzdHlsZSgpLT5pbWFnZVJlbmRlcmluZygpID09IElt
YWdlUmVuZGVyaW5nT3B0aW1pemVDb250cmFzdDsKLSAgICBzdGF0aWNfY2FzdDxIVE1MQ2FudmFz
RWxlbWVudCo+KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCB1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgIGhvc3RDYW52YXNFbGVtZW50KG5vZGUoKSktPnBhaW50KHBhaW50
SW5mby5jb250ZXh0LCByZWN0LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIFJlbmRl
ckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKCkKIHsKLSAgICBJbnRTaXplIGNhbnZhc1Np
emUgPSBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnNpemUoKTsKKyAg
ICBJbnRTaXplIGNhbnZhc1NpemUgPSBob3N0Q2FudmFzRWxlbWVudChub2RlKCkpLT5zaXplKCk7
CiAgICAgSW50U2l6ZSB6b29tZWRTaXplKGNhbnZhc1NpemUud2lkdGgoKSAqIHN0eWxlKCktPmVm
ZmVjdGl2ZVpvb20oKSwgY2FudmFzU2l6ZS5oZWlnaHQoKSAqIHN0eWxlKCktPmVmZmVjdGl2ZVpv
b20oKSk7Ci0KKyAgICAKICAgICBpZiAoem9vbWVkU2l6ZSA9PSBpbnRyaW5zaWNTaXplKCkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckhUTUxDYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmgKaW5kZXggNWJlZDI3ZjRmMmViM2RlM2IxYTA4MTVjYTUxYTE1ZjE2NzMxNDEwNi4uNGNm
N2YwMDhiNjcxNGM2ZTQ1N2Q2YzRmNGYzNDcyMTVjNDY5ZjM3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKK2NsYXNzIENhbnZh
c0VsZW1lbnQ7CiAKIGNsYXNzIFJlbmRlckhUTUxDYW52YXMgOiBwdWJsaWMgUmVuZGVyUmVwbGFj
ZWQgewogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0Vs
ZW1lbnQqKTsKKyAgICBleHBsaWNpdCBSZW5kZXJIVE1MQ2FudmFzKEhUTUxFbGVtZW50Kik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggZDI2ZWVmMWUzNGU4ZTQ1NWYy
NGJjYWI0ZDJhYzIyY2YyOWVjM2RmNS4uMjg5MDBmOTM0NmFlOTUzMjhlNGNmYTUxYzY1MzIwNWU1
YWY1ZWZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcu
aCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYW52YXNJ
bm5lckVsZW1lbnQuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgpAQCAtODEsNyAr
ODIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBY2NlbGVyYXRlZENhbnZhcyhSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogewogI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKICAgICBpZiAocmVuZGVyZXItPmlzQ2FudmFzKCkpIHsKLSAgICAgICAgSFRN
TENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4o
cmVuZGVyZXItPm5vZGUoKSk7CisgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBo
b3N0Q2FudmFzRWxlbWVudChyZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgaWYgKENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKICAg
ICAgICAgICAgIHJldHVybiBjb250ZXh0LT5pc0FjY2VsZXJhdGVkKCk7CiAgICAgfQpAQCAtMTk0
LDcgKzE5NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhp
Y3NMYXllcigpCiAKICNpZiBQTEFURk9STShNQUMpICYmIFVTRShDQSkKICAgICBpZiAoIWNvbXBv
c2l0b3IoKS0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpICYmIHJlbmRlcmVyKCktPmlzQ2Fu
dmFzKCkpIHsKLSAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0
PEhUTUxDYW52YXNFbGVtZW50Kj4ocmVuZGVyZXIoKS0+bm9kZSgpKTsKKyAgICAgICAgSFRNTENh
bnZhc0VsZW1lbnQqIGNhbnZhcyA9IGhvc3RDYW52YXNFbGVtZW50KHJlbmRlcmVyKCktPm5vZGUo
KSk7CiAgICAgICAgIGlmIChjYW52YXMtPnNob3VsZEFjY2VsZXJhdGUoY2FudmFzLT5zaXplKCkp
KQogICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcodHJ1
ZSk7CiAgICAgfQpAQCAtNDE5LDcgKzQyMCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAjZW5kaWYKICNpZiBFTkFCTEUoV0VC
R0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgZWxzZSBpZiAoaXNBY2Nl
bGVyYXRlZENhbnZhcyhyZW5kZXJlcikpIHsKLSAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNh
bnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSk7
CisgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBob3N0Q2FudmFzRWxlbWVudChy
ZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgaWYgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQgPSBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKICAgICAgICAgICAgIG1fZ3JhcGhp
Y3NMYXllci0+c2V0Q29udGVudHNUb0NhbnZhcyhjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkpOwog
ICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA0NTBiNGZjODdjMTZi
NmYwNGY5NWQ5NWFhYmE5MGY1OGY1YzkzYjdhLi4xZWFjM2U5NjBmZTQyYjAyNmY1YjQ5ZmUxOTkz
MGY4ZDg0Yzk4NjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlJlbmRlckxh
eWVyQ29tcG9zaXRvci5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkNhbnZhc0lubmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2hyb21l
LmgiCkBAIC0xNjk1LDcgKzE2OTYsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVx
dWlyZXNDb21wb3NpdGluZ0ZvckNhbnZhcyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVuZGVyZXItPmlzQ2FudmFzKCkpIHsKLSAgICAg
ICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVt
ZW50Kj4ocmVuZGVyZXItPm5vZGUoKSk7CisgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52
YXMgPSBob3N0Q2FudmFzRWxlbWVudChyZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgcmV0dXJu
IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpICYmIGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgp
LT5pc0FjY2VsZXJhdGVkKCk7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzODJl
MDkzMWI4ODc5ZmU3YTAwNzczMjZlMzI3N2Q4N2IxYzQ4NjBjLi41MGZlZTJjM2NkZmMzNmYxNzkw
OTY1NjYzN2RkODM2NDMxZDQxODc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDgtMjcg
IFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNoYWRvdyBE
T00gZm9yIDxjYW52YXM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MDg2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQtZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1pbnNl
cnRpb24tcG9pbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLW5vLWluc2VydGlvbi1wb2ludC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXN0eWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0
aC1tdWx0aXBsZS1zaGFkb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXBz
ZXVkby1pZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHluYW1pYy1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13
aWR0aC1oZWlnaHQtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtd2lkdGgtaGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWNhbnZhcy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0yOSAgUGhpbGlwIFJv
Z2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdXBkYXRlIG9mIGNp
cmNsZS1pbi1tYXNrLXdpdGgtc2hhZG93IHRlc3QgZXhwZWN0YXRpb24uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
Y2FudmFzLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGJhZmYzYTI1OWM5ZDZh
ODk1YWNiNDYyNzlhYmQ2ODRjNzFmZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWNvbnRlbnQtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5n
ZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1
NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRp
dj4KKyAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+KGJlZm9yZSk8Y2Fu
dmFzIGlkPSJob3N0Ij48c3Bhbj5mYWxsYmFjazwvc3Bhbj48L2NhbnZhcz4oYWZ0ZXIpPHNwYW4+
ZmFsbGJhY2s8L3NwYW4+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YmM4Yzk4MWI2OGEyMWQw
YjVkMTUzMmU4OTRlZmJkZWQ1MTJiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtY29udGVudC5odG1sCkBAIC0wLDAg
KzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0
ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQo
JzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOwor
ICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNo
YWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9v
dChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9z
aGFkb3c+KGFmdGVyKTxjb250ZW50PjwvY29udGVudD4iOworfQorCitmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAg
IHNwYW4uaW5uZXJIVE1MID0gJ2ZhbGxiYWNrJzsKKworICAgIHZhciBob3N0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBob3N0LmFwcGVuZENoaWxkKHNwYW4pOworICAg
IGFkZFNoYWRvd0RPTShob3N0KTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5l
ciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1keW5hbWljLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHlu
YW1pYy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZmNhNmM5Zjk0MDNlNmRiNzMxMTI2ZWQw
NzRkOGJhNDRjZTljNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5n
ZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1
NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRp
dj4KKyAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6MjAwcHgiPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+KGFmdGVyKTwvZGl2
PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZHluYW1pYy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWR5bmFt
aWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYzc0ZWMxNThmN2I4ZjFjODFkMTNlYzg5Njc2NjZlYWY5ZDVm
Y2U3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItY2FudmFzLWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7
CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4
dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJl
Y3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7Cisg
ICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFkb3c+KGFmdGVyKSI7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaG9zdCcpOworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKKworICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIDEwMCk7
CisgICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAyMDApOworICAgICAgICB1cGRh
dGVDYW52YXMoaG9zdCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+
CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdCI+PC9jYW52YXM+CisgICAgPC9k
aXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDI3NDE3OTg1ZDAyZTZlNGU0ZTlkY2VkMmUxNTNiMGZiYzU0MGQwZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWNhbnZhcy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkg
eworICAgIHZhciBjb250ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRl
eHQuZmlsbFN0eWxlID0gJ3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxS
ZWN0KDUsIDUsIDEyMCwgMzApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBo
b3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52YXMo
aG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPihh
ZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdl
dGNvbnRleHQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1nZXRjb250ZXh0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThi
YWZmM2EyNTljOWQ2YTg5NWFjYjQ2Mjc5YWJkNjg0YzcxZmQwOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1nZXRjb250
ZXh0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29u
dGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9
ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAs
IDMwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250
YWluZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2siPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCI+PHNwYW4+ZmFsbGJhY2s8L3NwYW4+PC9jYW52
YXM+KGFmdGVyKTxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1jYW52YXMtZ2V0Y29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLWdldGNvbnRleHQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NWJjOGM5ODFiNjhhMjFkMGI1ZDE1MzJlODk0ZWZiZGVkNTEyYjJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LWdldGNvbnRleHQuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250
ZXh0ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0g
J3JnYmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwg
MzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dS
b290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcik8Y29udGVudD48L2NvbnRlbnQ+
IjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICdmYWxsYmFjayc7CisK
KyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgaG9z
dC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7CisgICAgdXBkYXRl
Q2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMg
aWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1j
YW52YXMtbm8taW5zZXJ0aW9uLXBvaW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtbm8taW5zZXJ0aW9uLXBvaW50LWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk5NGUwY2U2ZWQ1NmFmNzQ2YjVkM2VlMDRhMzQzMzY4Yjg0
MTgwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWNhbnZhcy1uby1pbnNlcnRpb24tcG9pbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250
YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXY+KE5laXRoZXIgc2hhZG93IG5vciBjYW52
YXMpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1uby1p
bnNlcnRpb24tcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy1uby1pbnNlcnRpb24tcG9pbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Yjk1OTg0
OTI2Y2VhZTQ4MjU1NmQ5YjM2NjY0OTFkYjdkODgwN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLW5vLWluc2VydGlv
bi1wb2ludC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQg
PSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdi
YSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7
Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7CisgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9
ICIoTmVpdGhlciBzaGFkb3cgbm9yIGNhbnZhcykiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1
cGRhdGVDYW52YXMoaG9zdCk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIi
PgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWNhbnZhcy1zdHlsZS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzhkMDNjMGU1MmUyYTAyYzdkYzhlMTk4ZWIzODZh
MzRmNmQ1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBk
YXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7
CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gZG9B
cHBseShub2RlaWQpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5v
ZGVpZCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIGRvQXBwbHkoJ2hvc3QxJyk7CisgICAgZG9BcHBseSgnaG9zdDInKTsKKyAgICBkb0Fw
cGx5KCdob3N0MycpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5
bGU9ImRpc3BsYXk6IG5vbmU7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiAxMjBweDsiPihiZWZvcmUp
PGNhbnZhcyBpZD0iaG9zdDEiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4oYWZ0
ZXIpPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlz
cGxheTogaW5saW5lOyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7Ij4oYmVmb3JlKTxjYW52
YXMgaWQ9Imhvc3QyIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+KGFmdGVyKTwv
ZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6
IGlubGluZTsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDEyMHB4OyI+KGJlZm9yZSk8Y2FudmFzIGlk
PSJob3N0MyIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjwvY2FudmFzPihhZnRlcik8L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXN0eWxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtc3R5bGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MzMyZGUwNTY1ODQ0NGNjNjhlMmRmZWFlYzU3MDZjZWNiMTE1MTZhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXN0eWxlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIg
Y29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHls
ZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAx
MjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hhZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hh
ZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3NoYWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rp
b24gZG9BcHBseShub2RlaWQpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKG5vZGVpZCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworICAgIGFkZFNoYWRvd0RPTSho
b3N0KTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBkb0FwcGx5KCdob3N0MScpOwor
ICAgIGRvQXBwbHkoJ2hvc3QyJyk7CisgICAgZG9BcHBseSgnaG9zdDMnKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVy
Ij4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0MSIgc3R5bGU9ImRpc3BsYXk6
IG5vbmUiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGlkPSJob3N0MiIgc3R5bGU9ImRpc3BsYXk6IGJsb2Nr
IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PC9jYW52YXM+CisgICAgPC9kaXY+CisgICAgPGRp
dj4KKyAgICAgICAgPGNhbnZhcyBpZD0iaG9zdDMiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUiIHdp
ZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0
aXBsZS1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWI5ZDIxM2ZjYjU1ZjgwNTU5
NTlkY2U1MjlmYTcyN2I5NDYxMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtbXVsdGlwbGUtc2hhZG93LWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9
IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2Jh
KDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsK
K30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIi
PgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPihi
ZWZvcmUpKGJlZm9yZSk8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4oYWZ0ZXIpKGFmdGVyKTwv
ZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0
aXBsZS1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy13aXRoLW11bHRpcGxlLXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlOWRhYzRl
NWU2YzBkMGY1ZjgxNGU5MmZiZGIyOGZjZmI1OTE4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1tdWx0aXBs
ZS1zaGFkb3cuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVDYW52YXMoZWxlbWVudCkgeworICAgIHZhciBjb250ZXh0
ID0gZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ3Jn
YmEoMDAsMTAwLDI1NSwwLjUpJzsKKyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzAp
OworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsK
KyAgICBhZGRTaGFkb3dET00oaG9zdCk7CisgICAgYWRkU2hhZG93RE9NKGhvc3QpOworICAgIHVw
ZGF0ZUNhbnZhcyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2Fu
dmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYTY2YjY2NzI1MzI4NGJiNzE1ZjczOWFiYjg2YzM1Y2VkZGQ3NDU2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlkLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjaG9zdCB7CisgICAgd2lkdGg6IDUw
MHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHVwZGF0ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENv
bnRleHQoJzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAu
NSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgNDUwLCAyNTApOworfQorCitmdW5jdGlv
biBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNo
YWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hh
ZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZh
ciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICB1cGRhdGVDYW52
YXMoaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0i
ZGlzcGxheTogaW5saW5lLWJsb2NrIj4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFz
PihhZnRlcik8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFz
LXdpdGgtcHNldWRvLWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1jYW52YXMtd2l0aC1wc2V1ZG8taWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmM3ZjI5YjQw
MWE3ZWYwZWZlZWRiMDYyMjliMmIyMGEzODMwODg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtcHNldWRvLWlk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisj
aG9zdDo6LXdlYmtpdC1jYW52YXMtaW5uZXItZWxlbWVudCB7CisgICAgd2lkdGg6IDUwMHB4Owor
ICAgIGhlaWdodDogNTAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0
ZUNhbnZhcyhlbGVtZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQo
JzJkJyk7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOwor
ICAgIGNvbnRleHQuZmlsbFJlY3QoNSwgNSwgNDUwLCAyNTApOworfQorCitmdW5jdGlvbiBhZGRT
aGFkb3dET00oaG9zdCkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jv
b3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwv
c2hhZG93PihhZnRlcikiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKKyAgICBhZGRTaGFkb3dET00oaG9z
dCk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+Cisg
ICAgICAgIDxjYW52YXMgaWQ9Imhvc3QiPjwvY2FudmFzPgorICAgIDwvZGl2PgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHluYW1pYy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdp
dGgtd2lkdGgtaGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Yzc0MTYy
NDY4NGM3YTMzYzYwYjlmZTEwODIzZDhjODQ2NDMyZmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgt
aGVpZ2h0LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRlQ2FudmFzKGVs
ZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
ICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4
dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2Jh
KDEwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgNzAsIDI1MCwgMjMw
KTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3QpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWlu
ZXIiPgorICAgIDxkaXY+CisgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazsg
d2lkdGg6MjAwcHg7IGhlaWdodDozMDBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDgwLDgwLDgw
LDAuNSk7Ij4oYmVmb3JlKTxjYW52YXMgaWQ9Imhvc3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTIw
Ij48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHlu
YW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MjhlNDU2ZDVjMGUxNTFlNmNjZGJiMTFlNzdiYTA3ZDBi
OTViYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZHluYW1pYy5odG1sCkBAIC0wLDAg
KzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gdXBk
YXRlQ2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAsMTAwLDI1NSwwLjUpJzsK
KyAgICBjb250ZXh0LmZpbGxSZWN0KDUsIDUsIDEyMCwgMzApOworICAgIGNvbnRleHQuZmlsbFN0
eWxlID0gJ3JnYmEoMTAwLDEwMCwyNTUsMC41KSc7CisgICAgY29udGV4dC5maWxsUmVjdCgwLCA3
MCwgMjUwLCAyMzApOworfQorCitmdW5jdGlvbiBhZGRTaGFkb3dET00oaG9zdCkgeworICAgIHZh
ciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOworfQorCitm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2hvc3QnKTsKKyAgICBhZGRTaGFkb3dET00oaG9zdCk7CisgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICBob3N0LnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKKyAg
ICAgICBob3N0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJyZ2JhKDgwLDgwLDgwLDAuNSkiOwor
ICAgICAgIGhvc3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIyMDAiKTsKKyAgICAgICBob3N0LnNl
dEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjMwMCIpOworICAgICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsK
KyAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxkaXY+CisgICAgICAg
IDxjYW52YXMgaWQ9Imhvc3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTIwIj48L2NhbnZhcz4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1jYW52YXMtd2l0aC13aWR0aC1oZWlnaHQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWI1
YmE5YWY4ZjI4ODIzMzE0ZjgxYjhlMDljNTU0ZmY5MGJlZDBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lk
dGgtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVtZW50
KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgY29u
dGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQuZmls
bFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFy
IGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZh
cyhob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJk
aXNwbGF5OiBpbmxpbmUtYmxvY2siPihiZWZvcmUpPGNhbnZhcyBpZD0iaG9zdCIgd2lkdGg9Ijgw
IiBoZWlnaHQ9IjY1Ij48L2NhbnZhcz4oYWZ0ZXIpPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLXdpdGgtd2lkdGgtaGVpZ2h0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzRlYzk5MjNiZWRhODljYmU2NTM2MjU0MTFkZjE0OTcxNzRjMDUz
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWNhbnZhcy13aXRoLXdpZHRoLWhlaWdodC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVwZGF0ZUNhbnZhcyhlbGVt
ZW50KSB7CisgICAgdmFyIGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAg
Y29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwMCwxMDAsMjU1LDAuNSknOworICAgIGNvbnRleHQu
ZmlsbFJlY3QoNSwgNSwgMTIwLCAzMCk7Cit9CisKK2Z1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0
KSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAg
ICBzaGFkb3dSb290LmlubmVySFRNTCA9ICIoYmVmb3JlKTxzaGFkb3c+PC9zaGFkb3c+KGFmdGVy
KSI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgIHVwZGF0ZUNhbnZhcyhob3N0KTsKKyAgICBhZGRT
aGFkb3dET00oaG9zdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZh
cyBpZD0iaG9zdCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjY1Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjY5NjJhMjYz
ODUwMmU1MmMzYjM3MWViNzFkMDgxYjJmNGE5ZWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItY2FudmFzLmh0bWwKQEAgLTAsMCAr
MSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdXBkYXRl
Q2FudmFzKGVsZW1lbnQpIHsKKyAgICB2YXIgY29udGV4dCA9IGVsZW1lbnQuZ2V0Q29udGV4dCgn
MmQnKTsKKyAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAwLDEwMCwyNTUsMC41KSc7Cisg
ICAgY29udGV4dC5maWxsUmVjdCg1LCA1LCAxMjAsIDMwKTsKK30KKworZnVuY3Rpb24gYWRkU2hh
ZG93RE9NKGhvc3QpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290
KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIihiZWZvcmUpPHNoYWRvdz48L3No
YWRvdz4oYWZ0ZXIpIjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7CisgICAgdXBkYXRlQ2FudmFzKGhvc3Qp
OworICAgIGFkZFNoYWRvd0RPTShob3N0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2PgorICAg
ICAgICA8Y2FudmFzIGlkPSJob3N0Ij48L2NhbnZhcz4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>