<?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>7578</bug_id>
          
          <creation_ts>2006-03-03 14:55:14 -0800</creation_ts>
          <short_desc>TinyMCE: Implement execCommand CreateLink</short_desc>
          <delta_ts>2006-03-14 23:05:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6627</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>35013</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-03 14:55:14 -0800</bug_when>
    <thetext>Implement execCommand link and unlink</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35642</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-09 12:04:07 -0800</bug_when>
    <thetext>I&apos;m going to split UnLink off into it&apos;s own bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36339</commentid>
    <comment_count>2</comment_count>
      <attachid>7066</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-03-14 16:09:47 -0800</bug_when>
    <thetext>Created attachment 7066
patch

Another way to do this would be to pull out the parts of ApplyStyleCommand that apply style to text runs from the parts that do the setup, traversal and cleanup, and make two new classes, PushInlineChangeCommand and ApplyInlineStyleCommand, with CreateLink and ApplyinlineStyleCommand as subclasses of PushInlineChangeCommand.  That&apos;s more risky and probably not worth the effort unless we think we&apos;ll end up needing PushInlineChange in order to implement something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36365</commentid>
    <comment_count>3</comment_count>
      <attachid>7066</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-03-14 21:27:20 -0800</bug_when>
    <thetext>Comment on attachment 7066
patch

Slighly odd way to do it. r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7066</attachid>
            <date>2006-03-14 16:09:47 -0800</date>
            <delta_ts>2006-03-14 21:27:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>7578.txt</filename>
            <type>text/plain</type>
            <size>35441</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRlTGluay5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRlTGluay5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmVh
dGVMaW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODUgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0
ZXh0L0phdmFTY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdl
KSB7CisgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
OworICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgdmFyIHRl
eHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKTsKKyAgICBsaS5hcHBlbmRDaGls
ZCh0ZXh0KTsKKyAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKworZnVuY3Rpb24gZWRp
dGluZ1Rlc3QoKSB7CisgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgdmFy
IGQ7CisgICAgCisgICAgLy8gRnVsbHkgc2VsZWN0IHRoZSBsaW5lIGluIHRoZSBmaXJzdCBkaXYu
CisgICAgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0MSIpOworICAgIHMuc2V0UG9z
aXRpb24oZCwgMCk7CisgICAgZXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5TGluZUNvbW1hbmQoKTsK
KyAgICBjcmVhdGVMaW5rQ29tbWFuZCgiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpOworICAgIAor
ICAgIGxvZyhkLmlubmVySFRNTCk7CisKKyAgICAvLyBQYXJ0aWFsbHkgc2VsZWN0IHRoZSBsaW5l
IGluIHRoZSBzZWNvbmQgZGl2LiAgICAKKyAgICBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QyIik7CisgICAgcy5zZXRQb3NpdGlvbihkLCAwKTsKKyAgICBtb3ZlU2VsZWN0aW9uRm9y
d2FyZEJ5V29yZENvbW1hbmQoKTsKKyAgICBleHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlXb3JkQ29t
bWFuZCgpOworICAgIGV4dGVuZFNlbGVjdGlvbkZvcndhcmRCeVdvcmRDb21tYW5kKCk7CisgICAg
ZXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5V29yZENvbW1hbmQoKTsKKyAgICBjcmVhdGVMaW5rQ29t
bWFuZCgiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpOworICAgIAorICAgIGxvZyhkLmlubmVySFRN
TCk7CisgICAgCisgICAgLy8gUGFydGlhbGx5IHNlbGVjdCB0aGUgbGluayBpbiB0aGUgdGhpcmQg
ZGl2CisgICAgdmFyIGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGluayIpOworICAgIHMu
c2V0UG9zaXRpb24obC5maXJzdENoaWxkLCAzKTsKKyAgICBleHRlbmRTZWxlY3Rpb25Gb3J3YXJk
QnlMaW5lQ29tbWFuZCgpOworICAgIGNyZWF0ZUxpbmtDb21tYW5kKCJodHRwOi8vd3d3Lmdvb2ds
ZS5jb20vIik7CisKKyAgICBsb2coZC5pbm5lckhUTUwpOworICAgIAorICAgIC8vIFNlbGVjdCBh
bGwgdGhlIGNvbnRlbnQgaW4gdGhlIGZvdXJ0aCBkaXYKKyAgICBkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3Q0Iik7CisgICAgcy5zZXRQb3NpdGlvbihkLCAwKTsKKyAgICBzZWxlY3RB
bGxDb21tYW5kKCk7CisgICAgY3JlYXRlTGlua0NvbW1hbmQoImh0dHA6Ly93d3cuZ29vZ2xlLmNv
bS8iKTsKKyAgICAKKyAgICBsb2coZC5pbm5lckhUTUwpOworICAgIAorfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+CisKKzxib2R5PgorPHA+VGhpcyBpcyBhIHRlc3Qgb2YgZXhlY0NvbW1hbmQoQ3JlYXRl
TGluaywgLi4uKS4gIEl0IHRlc3RzOjwvcD4KKzxvbD4KKzxsaT5DcmVhdGluZyBhIGxpbmsgZnJv
bSBhIGxpbmUgd2l0aCBubyBsaW5rcy48L2xpPgorPGxpPkNyZWF0aW5nIGEgbGluayBmcm9tIGEg
cG9ydGlvbiBvZiBhbiBleGlzdGluZyBsaW5rLjwvbGk+Cis8bGk+Q3JlYXRpbmcgYSBsaW5rIGZy
b20gYSBzZWxlY3Rpb24gdGhhdCBpcyBwYXJ0aWFsbHkgbGlua2VkLjwvbGk+Cis8bGk+Q3JlYXRp
bmcgYSBsaW5rIGZyb20gYSBzZWxlY3Rpb24gdGhhdCBjb250YWlucyBsaXN0cywgdGFibGVzLCBz
dHlsZWQgdGV4dCwgYW5kIGltYWdlcy48L2xpPgorPC9vbD4KKzxkaXYgaWQ9InRlc3QxIiBjb250
ZW50ZWRpdGFibGU9InRydWUiPlRoaXMgbGluZSBzdGFydHMgd2l0aG91dCBhbnkgbGlua3MuPC9k
aXY+Cis8ZGl2IGlkPSJ0ZXN0MiIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48YSBocmVmPSJodHRw
Oi8vd3d3LmFwcGxlLmNvbS8iPlRoaXMgZW50aXJlIGxpbmUgc3RhcnRzIG91dCBhcyBhIGxpbmsg
dG8gYXBwbGUuY29tPC9hPjwvZGl2PgorPGRpdiBpZD0idGVzdDMiIGNvbnRlbnRlZGl0YWJsZT0i
dHJ1ZSI+VGhpcyBsaW5lIHN0YXJ0cyBvdXQgd2l0aCA8YSBpZD0ibGluayIgaHJlZj0iaHR0cDov
L3d3dy5hcHBsZS5jb20iPmEgbGluazwvYT4gaW4gdGhlIG1pZGRsZS48L2Rpdj4KKworPGRpdiBp
ZD0idGVzdDQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+Cis8cD5UaGlzIDxpPmVkaXRhYmxlIHJl
Z2lvbjwvaT4gY29udGFpbnMgbGlzdHMsIHRhYmxlcywgc3R5bGVkIHRleHQsIGFuZCBpbWFnZXM6
PC9wPgorPHVsPgorPGxpPkl0ZW0gMTwvbGk+Cis8bGk+SXRlbSAyPC9saT4KKzwvdWw+Cis8dGFi
bGUgYm9yZGVyPTE+PHRyPjx0ZD4xPC90ZD48dGQ+MjwvdGQ+PHRkPjM8L3RkPjwvdHI+PC90YWJs
ZT4KKzxicj4KK1RoaXMgPGI+bGluZTwvYj4gY29udGFpbnMgPGltZyBzcmM9Ii4uL3Jlc291cmNl
cy9hYmUuanBnIj4gYW4gaW1hZ2UuCis8L2Rpdj4KKworPHVsIGlkPSJjb25zb2xlIj48L3VsPgor
PHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKworPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvY3JlYXRlTGluay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmVhdGVMaW5rLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRlTGluay1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTY1IEBACitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdp
bkVkaXRpbmdOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IEEgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gQSA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFt
IHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAw
IG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldl
YlZpZXdEaWRFbmRFZGl0aW5nTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRC
ZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byAxIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdO
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IEEgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byAyMyBvZiAjdGV4dCA+IEEgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IEEgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxOSBvZiAjdGV4dCA+IEEgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20g
MCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mIERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkRW5kRWRpdGluZzpX
ZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxk
QmVnaW5FZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5n
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToo
bnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBBID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTUgb2YgI3RleHQgPiBBID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRFbmRFZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudAorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0Rp
ZEVuZEVkaXRpbmdOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRp
dGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDExIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgUCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDAgb2YgUCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gUCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2Yg
I3RleHQgPiBBID4gUCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0
ZXh0ID4gQSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0Rp
ZENoYW5nZU5vdGlmaWNhdGlvbgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4Nzk0CisgIFJlbmRl
ckNhbnZhcyBhdCAoMCwwKSBzaXplIDc4NXg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDc5
NAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4Nzk0CisgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4NzcwCisgICAgICBSZW5kZXJCbG9jayB7UH0g
YXQgKDAsMCkgc2l6ZSA3Njl4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkg
c2l6ZSAzNDd4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDM6ICJUaGlz
IGlzIGEgdGVzdCBvZiBleGVjQ29tbWFuZChDcmVhdGVMaW5rLCAuLi4pLiAiCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDMwMywwKSB3aWR0aCA0NDogIkl0IHRlc3RzOiIKKyAgICAgIFJlbmRlckJs
b2NrIHtPTH0gYXQgKDAsMzQpIHNpemUgNzY5eDU0CisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtM
SX0gYXQgKDQwLDApIHNpemUgNzI5eDE4CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAo
MCwwKSBzaXplIDB4MTQKKyAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXpl
IDI1NXgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjU1OiAiQ3JlYXRp
bmcgYSBsaW5rIGZyb20gYSBsaW5lIHdpdGggbm8gbGlua3MuIgorICAgICAgICBSZW5kZXJMaXN0
SXRlbSB7TEl9IGF0ICg0MCwxOCkgc2l6ZSA3Mjl4MTgKKyAgICAgICAgICBSZW5kZXJMaXN0TWFy
a2VyIGF0ICgwLDApIHNpemUgMHgxNAorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgw
LDApIHNpemUgMzA4eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDg6
ICJDcmVhdGluZyBhIGxpbmsgZnJvbSBhIHBvcnRpb24gb2YgYW4gZXhpc3RpbmcgbGluay4iCisg
ICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDM2KSBzaXplIDcyOXgxOAorICAgICAg
ICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDE0CisgICAgICAgICAgUmVuZGVy
VGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAzNDB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDM0MDogIkNyZWF0aW5nIGEgbGluayBmcm9tIGEgc2VsZWN0aW9uIHRoYXQg
aXMgcGFydGlhbGx5IGxpbmtlZC4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMDQp
IHNpemUgNzY5eDEwNworICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTQ3
eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDg5
KSBzaXplIDE0N3gxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODkpIHdpZHRoIDE0Nzog
IlRoaXMgbGluZSBzdGFydHMgd2l0aG91dCAiCisgICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQg
KDAsMCkgc2l6ZSA4MHgxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICBSZW5kZXJJbWFnZSB7
SU1HfSBhdCAoMTQ3LDApIHNpemUgNzZ4MTAzCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0g
YXQgKDIyMyw4OSkgc2l6ZSA0eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjIzLDg5KSB3
aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDYxeDE4
CisgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDYxeDE4IFtjb2xvcj0j
MDAwMEVFXQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDIyNyw4OSkgc2l6ZSA2
MXgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI3LDg5KSB3aWR0aCA2MTogImFueSBs
aW5rcyIKKyAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDR4MTggW2NvbG9y
PSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDI4OCw4OSkgc2l6ZSA0
eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjg4LDg5KSB3aWR0aCA0OiAiLiIKKyAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIxMSkgc2l6ZSA3Njl4MTgKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDI4eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAg
IFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMjh4MTgKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDI4OiAiVGhpcyIKKyAgICAgICAgUmVuZGVySW5saW5lIHtBfSBh
dCAoMCwwKSBzaXplIDEwMngxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICBSZW5kZXJUZXh0
IHtURVhUfSBhdCAoMjgsMCkgc2l6ZSAxMDJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgy
OCwwKSB3aWR0aCAxMDI6ICIgZW50aXJlIGxpbmUgc3RhcnRzIgorICAgICAgICBSZW5kZXJJbmxp
bmUge0F9IGF0ICgwLDApIHNpemUgMTY1eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJl
bmRlclRleHQge1RFWFR9IGF0ICgxMzAsMCkgc2l6ZSAxNjV4MTgKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgxMzAsMCkgd2lkdGggMTY1OiAiIG91dCBhcyBhIGxpbmsgdG8gYXBwbGUuY29tIgor
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMjI5KSBzaXplIDc2OXgxOAorICAgICAgICBS
ZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDE1MXgxOAorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDE1MTogIlRoaXMgbGluZSBzdGFydHMgb3V0IHdpdGggIgorICAgICAg
ICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTV4MTggW2NvbG9yPSMwMDAwRUVdCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDE1MSwwKSBzaXplIDE1eDE4CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTUxLDApIHdpZHRoIDE1OiAiYSBsIgorICAgICAgICBSZW5kZXJJ
bmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTEweDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAg
IFJlbmRlclRleHQge1RFWFR9IGF0ICgxNjYsMCkgc2l6ZSAyMHgxOAorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDE2NiwwKSB3aWR0aCAyMDogImluayIKKyAgICAgICAgICBSZW5kZXJUZXh0IHtU
RVhUfSBhdCAoMTg2LDApIHNpemUgOTB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxODYs
MCkgd2lkdGggOTA6ICIgaW4gdGhlIG1pZGRsZS4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwyNjMpIHNpemUgNzY5eDIzOQorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkg
c2l6ZSA3Njl4MTgKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMzM2
eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAs
MCkgc2l6ZSAzMzZ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzM2
OiAiVGhpcyBlZGl0YWJsZSByZWdpb24gY29udGFpbnMgbGlzdHMsIHRhYmxlcywgYW5kIGltYWdl
czoiCisgICAgICAgIFJlbmRlckJsb2NrIHtVTH0gYXQgKDAsMzQpIHNpemUgNzY5eDM2CisgICAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3Mjl4MTgKKyAgICAgICAg
ICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDE0CisgICAgICAgICAgICBSZW5k
ZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgNDB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAg
ICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNDB4MTgKKyAgICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDogIkl0ZW0gMSIKKyAgICAgICAgICBSZW5k
ZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwxOCkgc2l6ZSA3Mjl4MTgKKyAgICAgICAgICAgIFJlbmRl
ckxpc3RNYXJrZXIgYXQgKDAsMCkgc2l6ZSAweDE0CisgICAgICAgICAgICBSZW5kZXJJbmxpbmUg
e0F9IGF0ICgwLDApIHNpemUgNDB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgICAgIFJl
bmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNDB4MTgKKyAgICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDogIkl0ZW0gMiIKKyAgICAgICAgUmVuZGVyVGFibGUge1RB
QkxFfSBhdCAoMCw4Nikgc2l6ZSA0NngyOCBbYm9yZGVyOiAoMXB4IG91dHNldCAjODA4MDgwKV0K
KyAgICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMSwxKSBzaXplIDB4MjYK
KyAgICAgICAgICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
ICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIsMikgc2l6ZSAxMngyMiBbYm9yZGVy
OiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MCBycz0xIGNzPTFdCisgICAgICAgICAgICAg
ICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDh4MTggW2NvbG9yPSMwMDAwRUVdCisg
ICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMiwyKSBzaXplIDh4MTgKKyAg
ICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggODogIjEiCisgICAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNiwyKSBzaXplIDEyeDIyIFtib3JkZXI6
ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz0xIHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAg
ICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgOHgxOCBbY29sb3I9IzAwMDBFRV0KKyAg
ICAgICAgICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgyLDIpIHNpemUgOHgxOAorICAg
ICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCA4OiAiMiIKKyAgICAgICAg
ICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDMwLDIpIHNpemUgMTJ4MjIgW2JvcmRlcjog
KDFweCBpbnNldCAjODA4MDgwKV0gW3I9MCBjPTIgcnM9MSBjcz0xXQorICAgICAgICAgICAgICAg
IFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSA4eDE4IFtjb2xvcj0jMDAwMEVFXQorICAg
ICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDIsMikgc2l6ZSA4eDE4CisgICAg
ICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDg6ICIzIgorICAgICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxMTQpIHNpemUgNzY5eDEyNQorICAgICAgICAg
IFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxMTV4MTI1IFtjb2xvcj0jMDAwMEVFXQor
ICAgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MTgKKyAgICAgICAgICAg
IFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDEwNykgc2l6ZSAxMTV4MTgKKyAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMTA3KSB3aWR0aCAxMTU6ICJUaGlzIGxpbmUgY29udGFpbnMgIgorICAg
ICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxNDF4MTggW2NvbG9yPSMwMDAw
RUVdCisgICAgICAgICAgICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMTE1LDE4KSBzaXplIDc2eDEw
MworICAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDE5MSwxMDcpIHNpemUgNjV4MTgK
KyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MSwxMDcpIHdpZHRoIDY1OiAiIGFuIGltYWdl
LiIKKyAgICAgIFJlbmRlckJsb2NrIHtVTH0gYXQgKDAsNTE4KSBzaXplIDc2OXgyNTIKKyAgICAg
ICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3Mjl4NTQKKyAgICAgICAgICBS
ZW5kZXJMaXN0TWFya2VyIGF0ICgwLDApIHNpemUgMHgxNAorICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICgwLDApIHNpemUgNjkzeDU0CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA2OTM6ICI8QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPlRoaXMgbGlu
ZSBzdGFydHMgd2l0aG91dCA8L0E+PEEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj48
SU1HIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDYxOTogInNyYz1cIi4u
L3Jlc291cmNlcy9hYmUuanBnXCI+IDwvQT48Qj48QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUu
Y29tL1wiPmFueSBsaW5rczwvQT48L0I+PEEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwz
Nikgd2lkdGggMjQ5OiAiaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj4uPC9BPiIKKyAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsNTQpIHNpemUgNzI5eDM2CisgICAgICAg
ICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTQKKyAgICAgICAgICBSZW5kZXJU
ZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDY4MngzNgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNjgyOiAiPEEgaHJlZj1cImh0dHA6Ly93d3cuYXBwbGUuY29tL1wiPlRoaXM8
L0E+PEEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj4gZW50aXJlIGxpbmUgc3RhcnRz
PC9BPjxBIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDQwMTogImhyZWY9
XCJodHRwOi8vd3d3LmFwcGxlLmNvbS9cIj4gb3V0IGFzIGEgbGluayB0byBhcHBsZS5jb208L0E+
IgorICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCw5MCkgc2l6ZSA3Mjl4MzYKKyAg
ICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgwLDApIHNpemUgMHgxNAorICAgICAgICAgIFJl
bmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNjgyeDM2CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA2ODI6ICI8QSBocmVmPVwiaHR0cDovL3d3dy5hcHBsZS5jb20vXCI+
VGhpczwvQT48QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPiBlbnRpcmUgbGluZSBz
dGFydHM8L0E+PEEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNDAxOiAi
aHJlZj1cImh0dHA6Ly93d3cuYXBwbGUuY29tL1wiPiBvdXQgYXMgYSBsaW5rIHRvIGFwcGxlLmNv
bTwvQT4iCisgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDEyNikgc2l6ZSA3Mjl4
MTI2CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoMCwwKSBzaXplIDB4MTQKKyAgICAg
ICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDcyMHgxMjYKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcwODogIjxQPjxBIGhyZWY9XCJodHRwOi8vd3d3Lmdv
b2dsZS5jb20vXCI+VGhpcyBlZGl0YWJsZSByZWdpb24gY29udGFpbnMgbGlzdHMsIHRhYmxlcywg
YW5kIGltYWdlczo8L0E+PC9QPiA8VUw+IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgp
IHdpZHRoIDY4MTogIjxMST48QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPkl0ZW0g
MTwvQT48L0xJPiA8TEk+PEEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj5JdGVtIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDQ1MzogIjI8L0E+PC9MST4gPC9V
TD4gPFRBQkxFIGJvcmRlcj1cIjFcIj48VEJPRFk+PFRSPjxURD48QSIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDU0KSB3aWR0aCA3MjA6ICJocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29t
L1wiPjE8L0E+PC9URD48VEQ+PEEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9cIj4yPC9B
PjwvVEQ+PFREPjxBIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNzIpIHdpZHRoIDUxOTog
ImhyZWY9XCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vXCI+MzwvQT48L1REPjwvVFI+PC9UQk9EWT48
L1RBQkxFPiA8QSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDkwKSB3aWR0aCA2ODA6ICJo
cmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPjxCUj4gVGhpcyBsaW5lIGNvbnRhaW5zIDwv
QT48QSBocmVmPVwiaHR0cDovL3d3dy5nb29nbGUuY29tL1wiPjxJTUciCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxMDgpIHdpZHRoIDI3NDogInNyYz1cIi4uL3Jlc291cmNlcy9hYmUuanBn
XCI+IGFuIGltYWdlLiA8L0E+Igorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxk
IDAge1RFWFR9IG9mIGNoaWxkIDAge0F9IG9mIGNoaWxkIDEge1B9IG9mIGNoaWxkIDExIHtESVZ9
IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDEwIG9mIGNoaWxkIDEge1RFWFR9IG9mIGNoaWxkIDgge0F9IG9m
IGNoaWxkIDExIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCShyZXZpc2lvbiAxMzIyNCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtNTU4LDYgKzU1
OCwyMSBAQAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAorZnVuY3Rpb24gZXhlY0NyZWF0ZUxpbmtDb21tYW5kKHVybCkgeworICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCJDcmVhdGVMaW5rIiwgZmFsc2UsIHVybCk7Cit9CitmdW5jdGlvbiBjcmVh
dGVMaW5rQ29tbWFuZCh1cmwpIHsKKyAgICBpZiAoY29tbWFuZERlbGF5ID4gMCkgeworICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dChleGVjQ3JlYXRlTGlua0NvbW1hbmQsIGNvbW1hbmRDb3VudCAq
IGNvbW1hbmREZWxheSwgdXJsKTsKKyAgICAgICAgY29tbWFuZENvdW50Kys7CisgICAgfQorICAg
IGVsc2UgeworICAgICAgICBleGVjQ3JlYXRlTGlua0NvbW1hbmQodXJsKTsKKyAgICB9Cit9CisK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBmdW5j
dGlvbiBleGVjUGFzdGVBbmRNYXRjaFN0eWxlQ29tbWFuZCgpIHsKICAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgiUGFzdGVBbmRNYXRjaFN0eWxlIik7CiB9CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTMyNTUpCisrKyBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTAyNSw2
ICsxMDI1LDggQEAKIAkJQkNGQjJGNzcwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZCMkY3NTA5N0EyRTFB
MDBCQTcwM0QgLyogQXJlbmEuaCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2Rp
ZnlTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kLmggKi87IH07CiAJCUM2RDc0QUU0MDlBQTI5MEEw
MDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUUzMDlBQTI5MEEwMDBC
MEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kLmNwcCAqLzsgfTsKKwkJRDBC
MDU1NjgwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMEIwNTU2NjA5QzY3MDAxMDAzMDdF
NDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLzsgfTsKKwkJRDBCMDU1NjkwOUM2NzAwMTAwMzA3
RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5r
Q29tbWFuZC5jcHAgKi87IH07CiAJCURENzYzQkIyMDk5MkMyQzkwMDc0MEI4RSAvKiBsaWJ4bWwy
LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
REQ3NjNCQjEwOTkyQzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgKi87IH07CiAJCUUxRUU3
NzM3MDhGMTA4NkMwMDE2Njg3MCAvKiBXZWJDb3JlVGV4dERlY29kZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU3NzM1MDhGMTA4NkMwMDE2Njg3
MCAvKiBXZWJDb3JlVGV4dERlY29kZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMUVFNzczODA4RjEwODZDMDAxNjY4NzAgLyogV2ViQ29yZVRl
eHREZWNvZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRTc3MzYwOEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5tbSAqLzsg
fTsKQEAgLTIxMjEsNiArMjEyMyw4IEBACiAJCUJFRjdFRUExMDVGRjhGMEQwMDk3MTdFRSAvKiBL
V1FFZGl0Q29tbWFuZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEtXUUVkaXRDb21tYW5kLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQzZENzRBRDMwOUFBMjgyRTAw
MEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyog
TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENy
ZWF0ZUxpbmtDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWF0
ZUxpbmtDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwQjA1NTY3MDlD
NjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDcmVhdGVMaW5rQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURENzYzQkIxMDk5MkMyQzkwMDc0MEI4RSAvKiBsaWJ4bWwyLmR5bGli
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBp
bGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJ4bWwyLmR5bGliOyBwYXRoID0gL3Vzci9saWIv
bGlieG1sMi5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJRTFFRTc3MzUw
OEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUZXh0RGVjb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RTFFRTc3MzYwOEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29y
ZVRleHREZWNvZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKQEAgLTI1MTMsNiArMjUxNyw4IEBACiAJCTkzMzA5RDg2MDk5RTY0OTEw
MDU2RTU4MSAvKiBlZGl0aW5nICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQu
aCAqLywKKwkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQu
Y3BwICovLAogCQkJCTkzMzA5RDg3MDk5RTY0OTEwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJOTMzMDlEODgwOTlFNjQ5MTAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21t
YW5kLmggKi8sCiAJCQkJOTMzMDlEODkwOTlFNjQ5MTAwNTZFNTgxIC8qIEFwcGx5U3R5bGVDb21t
YW5kLmNwcCAqLywKQEAgLTQzNjAsNiArNDM2Niw3IEBACiAJCQkJOTM1MjA3MUUwOUJEM0JCQjAw
RjIwMzhEIC8qIFdlYkNvcmVXaWRnZXRIb2xkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIw
N0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzUyMDg4MjA5QkQ0NUU5MDBGMjAzOEQgLyogQ29va2llSmFyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlEMEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtNTQ3NCw2ICs1NDgxLDcgQEAKIAkJCQk5MzUyMDdDMDA5QkQ0MTIx
MDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5nc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkz
NTIwODQ1MDlCRDQzQjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTkzNTIwODc3MDlCRDQ1MzQwMEYyMDM4RCAvKiBDb29raWVKYXIubW0gaW4gU291cmNlcyAqLywK
KwkJCQlEMEIwNTU2OTA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAJKHJldmlzaW9uIDEzMjU1KQorKysgV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDEzICsxMDMsMTMgQEAKIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCAqc3R5
bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKLSAgICBFZGl0Q29tbWFuZFB0ciBjbWQo
bmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIHN0eWxlLCBlZGl0aW5nQWN0aW9uKSk7
CisgICAgRWRpdENvbW1hbmRQdHIgY21kKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCgp
LCBzdHlsZSwgMCwgZWRpdGluZ0FjdGlvbikpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGNtZCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUoQ1NTU3R5
bGVEZWNsYXJhdGlvbkltcGwgKnN0eWxlLCBQb3NpdGlvbiBzdGFydCwgUG9zaXRpb24gZW5kLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7Ci0gICAgRWRpdENvbW1hbmRQdHIgY21kKG5ldyBB
cHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCgpLCBzdHlsZSwgc3RhcnQsIGVuZCwgZWRpdGluZ0Fj
dGlvbikpOworICAgIEVkaXRDb21tYW5kUHRyIGNtZChuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZG9j
dW1lbnQoKSwgc3R5bGUsIDAsIHN0YXJ0LCBlbmQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShjbWQpOwogfQogCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvanNl
ZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvanNlZGl0aW5nLmNwcAko
cmV2aXNpb24gMTMyNTUpCisrKyBXZWJDb3JlL2VkaXRpbmcvanNlZGl0aW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImpzZWRpdGluZy5oIgogCisjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlNlbGVjdGlv
bkNvbnRyb2xsZXIuaCIKQEAgLTIwMCw2ICsyMDEsMTkgQEAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBleGVjQ3JlYXRlTGluayhGcmFtZSogZnJhbWUsIGJvb2wgdXNlckludGVyZmFjZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBp
cyB0cnVlLCB3ZSBzaG91bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggdG8gbGV0IHRoZSB1c2VyIGVu
dGVyIGEgdXJsLgorICAgIGlmICh1c2VySW50ZXJmYWNlKQorICAgICAgICBMT0dfRVJST1IoIkEg
ZGlhbG9nIGJveCBmb3IgbGluayBjcmVhdGlvbiBpcyBub3QgeWV0IGltcGxlbWVudGVkLlxuIik7
CisgICAgCisgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIEVkaXRDb21tYW5kUHRyKG5ldyBDcmVhdGVMaW5rQ29tbWFuZChmcmFtZS0+ZG9j
dW1lbnQoKSwgdmFsdWUpKS5hcHBseSgpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIGV4
ZWNDdXQoRnJhbWUgKmZyYW1lLCBib29sIHVzZXJJbnRlcmZhY2UsIGNvbnN0IERPTVN0cmluZyAm
dmFsdWUpCiB7CiAgICAgZnJhbWUtPmN1dFRvUGFzdGVib2FyZCgpOwpAQCAtNTQyLDYgKzU1Niw3
IEBACiAgICAgICAgIHsgIkJhY2tDb2xvciIsIHsgZXhlY0JhY2tDb2xvciwgZW5hYmxlZCwgc3Rh
dGVOb25lLCB2YWx1ZUJhY2tDb2xvciB9IH0sCiAgICAgICAgIHsgIkJvbGQiLCB7IGV4ZWNCb2xk
LCBlbmFibGVkQW55U2VsZWN0aW9uLCBzdGF0ZUJvbGQsIHZhbHVlTnVsbCB9IH0sCiAgICAgICAg
IHsgIkNvcHkiLCB7IGV4ZWNDb3B5LCBlbmFibGVkUmFuZ2VTZWxlY3Rpb24sIHN0YXRlTm9uZSwg
dmFsdWVOdWxsIH0gfSwKKyAgICAgICAgeyAiQ3JlYXRlTGluayIsIHsgZXhlY0NyZWF0ZUxpbmss
IGVuYWJsZWRSYW5nZVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1ZU51bGwgfSB9LAogICAgICAg
ICB7ICJDdXQiLCB7IGV4ZWNDdXQsIGVuYWJsZWRSYW5nZVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2
YWx1ZU51bGwgfSB9LAogICAgICAgICB7ICJEZWxldGUiLCB7IGV4ZWNEZWxldGUsIGVuYWJsZWRB
bnlTZWxlY3Rpb24sIHN0YXRlTm9uZSwgdmFsdWVOdWxsIH0gfSwKICAgICAgICAgeyAiRm9udE5h
bWUiLCB7IGV4ZWNGb250TmFtZSwgZW5hYmxlZEFueVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1
ZUZvbnROYW1lIH0gfSwKQEAgLTU4OCw3ICs2MDMsNiBAQAogICAgICAgICAvLyBCcm93c2VNb2Rl
IChub3Qgc3VwcG9ydGVkKQogICAgICAgICAvLyBDbGVhckF1dGhlbnRpY2F0aW9uQ2FjaGUgKG5v
dCBzdXBwb3J0ZWQpCiAgICAgICAgIC8vIENyZWF0ZUJvb2ttYXJrIChub3Qgc3VwcG9ydGVkKQot
ICAgICAgICAvLyBDcmVhdGVMaW5rIChub3Qgc3VwcG9ydGVkKQogICAgICAgICAvLyBEaXJMVFIg
KG5vdCBzdXBwb3J0ZWQpCiAgICAgICAgIC8vIERpclJUTCAobm90IHN1cHBvcnRlZCkKICAgICAg
ICAgLy8gRWRpdE1vZGUgKG5vdCBzdXBwb3J0ZWQpCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuaAkocmV2aXNpb24gMTMyNTUpCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBAQAogcHVibGljOgogICAg
IGVudW0gRVByb3BlcnR5TGV2ZWwgeyBQcm9wZXJ0eURlZmF1bHQsIEZvcmNlQmxvY2tQcm9wZXJ0
aWVzIH07CiAKLSAgICBBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqLCBDU1NTdHlsZURl
Y2xhcmF0aW9uSW1wbCosIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywg
RVByb3BlcnR5TGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpOwotICAgIEFwcGx5U3R5bGVDb21tYW5k
KERvY3VtZW50SW1wbCosIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsKiwgY29uc3QgUG9zaXRpb24m
IHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkNoYW5n
ZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0eUxldmVsID0gUHJvcGVydHlEZWZhdWx0KTsKKyAgICBBcHBs
eVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqLCBDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCosIEVs
ZW1lbnRJbXBsKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzLCBFUHJv
cGVydHlMZXZlbCA9IFByb3BlcnR5RGVmYXVsdCk7CisgICAgQXBwbHlTdHlsZUNvbW1hbmQoRG9j
dW1lbnRJbXBsKiwgQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwqLCBFbGVtZW50SW1wbCosIGNvbnN0
IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiA9IEVkaXRB
Y3Rpb25DaGFuZ2VBdHRyaWJ1dGVzLCBFUHJvcGVydHlMZXZlbCA9IFByb3BlcnR5RGVmYXVsdCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKCkgY29uc3Q7CkBAIC04NCwxMiArODQsMTMgQEAKICAgICBQb3NpdGlvbiBz
dGFydFBvc2l0aW9uKCk7CiAgICAgUG9zaXRpb24gZW5kUG9zaXRpb24oKTsKIAotICAgIFBvc2l0
aW9uIG1fc3RhcnQ7Ci0gICAgUG9zaXRpb24gbV9lbmQ7CiAgICAgUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uSW1wbD4gbV9zdHlsZTsKICAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0Fj
dGlvbjsKICAgICBFUHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7CisgICAgUG9zaXRpb24g
bV9zdGFydDsKKyAgICBQb3NpdGlvbiBtX2VuZDsKICAgICBib29sIG1fdXNlRW5kaW5nU2VsZWN0
aW9uOworICAgIFJlZlB0cjxFbGVtZW50SW1wbD4gbV9zdHlsZWRJbmxpbmVFbGVtZW50OwogfTsK
IAogYm9vbCBpc1N0eWxlU3Bhbihjb25zdCBOb2RlSW1wbCopOwpJbmRleDogV2ViQ29yZS9lZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
Q3JlYXRlTGlua0NvbW1hbmQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9lZGl0aW5nL0Ny
ZWF0ZUxpbmtDb21tYW5kLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNyZWF0ZUxpbmtD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJjc3NfdmFsdWVpbXBsLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbXBsLmgiCisjaW5jbHVkZSAiaHRtbF9pbmxpbmVpbXBsLmgiCisjaW5jbHVkZSA8a3htbGNv
cmUvQXNzZXJ0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NyZWF0ZUxpbmtDb21t
YW5kOjpDcmVhdGVMaW5rQ29tbWFuZChEb2N1bWVudEltcGwqIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHVybCkgCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK3sKKyAgICBt
X3VybCA9IHVybDsKK30KKwordm9pZCBDcmVhdGVMaW5rQ29tbWFuZDo6ZG9BcHBseSgpCit7Cisg
ICAgSFRNTEFuY2hvckVsZW1lbnRJbXBsKiBhbmNob3JFbGVtZW50ID0gbmV3IEhUTUxBbmNob3JF
bGVtZW50SW1wbChkb2N1bWVudCgpKTsKKyAgICBhbmNob3JFbGVtZW50LT5zZXRIcmVmKG1fdXJs
KTsKKyAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50
KCksIG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkltcGwoKSwgc3RhdGljX2Nhc3Q8RWxl
bWVudEltcGwqPihhbmNob3JFbGVtZW50KSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGNtZCk7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAko
cmV2aXNpb24gMTMyNTUpCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTcsMjQgKzI1NywyOCBAQAogICAgIHJldHVybiBzdGF0aWNf
cG9pbnRlcl9jYXN0PEhUTUxFbGVtZW50SW1wbD4oc3R5bGVFbGVtZW50LnJlbGVhc2UoKSk7CiB9
CiAKLUFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudEltcGwqIGRv
Y3VtZW50LCBDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCogc3R5bGUsCi0gICAgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpLCBtX3N0eWxlKHN0eWxlLT5tYWtlTXV0YWJsZSgpKSwg
bV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlM
ZXZlbCkKLXsgICAKLSAgICBBU1NFUlQoc3R5bGUpOwotICAgIG1fc3RhcnQgPSBlbmRpbmdTZWxl
Y3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0oKTsKLSAgICBtX2VuZCA9IGVuZGluZ1NlbGVjdGlv
bigpLmVuZCgpLnVwc3RyZWFtKCk7Ci0gICAgbV91c2VFbmRpbmdTZWxlY3Rpb24gPSB0cnVlOwor
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCogZG9jdW1l
bnQsIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsKiBzdHlsZSwgRWxlbWVudEltcGwqIGVsZW1lbnQs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkK
KyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgICwgbV9zdHlsZShzdHls
ZS0+bWFrZU11dGFibGUoKSkKKyAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQor
ICAgICwgbV9wcm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCisgICAgLCBtX3N0YXJ0KGVuZGlu
Z1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQorICAgICwgbV9lbmQoZW5kaW5nU2Vs
ZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKKyAgICAsIG1fdXNlRW5kaW5nU2VsZWN0aW9uKHRy
dWUpCisgICAgLCBtX3N0eWxlZElubGluZUVsZW1lbnQoZWxlbWVudCkKK3sKIH0KIAotQXBwbHlT
dHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50SW1wbCogZG9jdW1lbnQsIENT
U1N0eWxlRGVjbGFyYXRpb25JbXBsKiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBQb3NpdGlvbiYgZW5kLAotICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5
TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50
KSwgbV9zdHlsZShzdHlsZS0+bWFrZU11dGFibGUoKSksIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5n
QWN0aW9uKSwgbV9wcm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCitBcHBseVN0eWxlQ29tbWFu
ZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnRJbXBsKiBkb2N1bWVudCwgQ1NTU3R5bGVEZWNs
YXJhdGlvbkltcGwqIHN0eWxlLCBFbGVtZW50SW1wbCogZWxlbWVudCwgY29uc3QgUG9zaXRpb24m
IHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQ
cm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKKyAgICAsIG1fc3R5bGUoc3R5bGUtPm1ha2VNdXRhYmxlKCkpCisgICAgLCBtX2Vk
aXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKKyAgICAsIG1fcHJvcGVydHlMZXZlbChwcm9wZXJ0
eUxldmVsKQorICAgICwgbV9zdGFydChzdGFydCkKKyAgICAsIG1fZW5kKGVuZCkKKyAgICAsIG1f
dXNlRW5kaW5nU2VsZWN0aW9uKGZhbHNlKQorICAgICwgbV9zdHlsZWRJbmxpbmVFbGVtZW50KGVs
ZW1lbnQpCiB7Ci0gICAgQVNTRVJUKHN0eWxlKTsKLSAgICBtX3N0YXJ0ID0gc3RhcnQ7Ci0gICAg
bV9lbmQgPSBlbmQ7Ci0gICAgbV91c2VFbmRpbmdTZWxlY3Rpb24gPSBmYWxzZTsKIH0KIAogdm9p
ZCBBcHBseVN0eWxlQ29tbWFuZDo6dXBkYXRlU3RhcnRFbmQoY29uc3QgUG9zaXRpb24mIG5ld1N0
YXJ0LCBjb25zdCBQb3NpdGlvbiYgbmV3RW5kKQpAQCAtMzE0LDcgKzMxOCw3IEBACiAgICAgICAg
ICAgICBhcHBseUJsb2NrU3R5bGUoYmxvY2tTdHlsZS5nZXQoKSk7CiAgICAgICAgICAgICAvLyBh
cHBseSBhbnkgcmVtYWluaW5nIHN0eWxlcyB0byB0aGUgaW5saW5lIGVsZW1lbnRzCiAgICAgICAg
ICAgICAvLyBOT1RFOiBob3BlZnVsbHksIHRoaXMgc3RyaW5nIGNvbXBhcmlzb24gaXMgdGhlIHNh
bWUgYXMgY2hlY2tpbmcgZm9yIGEgbm9uLW51bGwgZGlmZgotICAgICAgICAgICAgaWYgKGJsb2Nr
U3R5bGUtPmxlbmd0aCgpIDwgbV9zdHlsZS0+bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChi
bG9ja1N0eWxlLT5sZW5ndGgoKSA8IG1fc3R5bGUtPmxlbmd0aCgpIHx8IG1fc3R5bGVkSW5saW5l
RWxlbWVudCkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbkltcGw+IGlubGluZVN0eWxlID0gbV9zdHlsZS0+Y29weSgpOwogICAgICAgICAgICAgICAg
IGFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UoaW5saW5lU3R5bGUuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgIGJsb2NrU3R5bGUtPmRpZmYoaW5saW5lU3R5bGUuZ2V0KCkpOwpAQCAtODc5LDkg
Kzg4MywxMCBAQAogICAgICAgICAgICAgSFRNTEVsZW1lbnRJbXBsICplbGVtID0gc3RhdGljX2Nh
c3Q8SFRNTEVsZW1lbnRJbXBsICo+KG5vZGUpOwogICAgICAgICAgICAgTm9kZUltcGwgKnByZXYg
PSBlbGVtLT50cmF2ZXJzZVByZXZpb3VzTm9kZVBvc3RPcmRlcigpOwogICAgICAgICAgICAgTm9k
ZUltcGwgKm5leHQgPSBlbGVtLT50cmF2ZXJzZU5leHROb2RlKCk7Ci0gICAgICAgICAgICBpZiAo
aXNIVE1MU3R5bGVOb2RlKHN0eWxlLmdldCgpLCBlbGVtKSkgeworICAgICAgICAgICAgaWYgKG1f
c3R5bGVkSW5saW5lRWxlbWVudCAmJiBlbGVtLT5oYXNUYWdOYW1lKG1fc3R5bGVkSW5saW5lRWxl
bWVudC0+dGFnTmFtZSgpKSkKKyAgICAgICAgICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuKGVsZW0pOworICAgICAgICAgICAgaWYgKGlzSFRNTFN0eWxlTm9kZShzdHlsZS5nZXQo
KSwgZWxlbSkpCiAgICAgICAgICAgICAgICAgcmVtb3ZlSFRNTFN0eWxlTm9kZShlbGVtKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHJlbW92ZUhU
TUxGb250U3R5bGUoc3R5bGUuZ2V0KCksIGVsZW0pOwogICAgICAgICAgICAgICAgIHJlbW92ZUNT
U1N0eWxlKHN0eWxlLmdldCgpLCBlbGVtKTsKQEAgLTEyMzcsNiArMTI0MiwxMiBAQAogICAgICAg
ICBpbnNlcnROb2RlQmVmb3JlKGl0YWxpY0VsZW1lbnQuZ2V0KCksIHN0YXJ0Tm9kZSk7CiAgICAg
ICAgIHN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoc3RhcnROb2RlLCBlbmROb2RlLCBpdGFs
aWNFbGVtZW50LmdldCgpKTsKICAgICB9CisgICAgCisgICAgaWYgKG1fc3R5bGVkSW5saW5lRWxl
bWVudCkgeworICAgICAgICBSZWZQdHI8RWxlbWVudEltcGw+IGNsb25lZEVsZW1lbnQgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PEVsZW1lbnRJbXBsPihtX3N0eWxlZElubGluZUVsZW1lbnQtPmNsb25l
Tm9kZShmYWxzZSkpOworICAgICAgICBpbnNlcnROb2RlQmVmb3JlKGNsb25lZEVsZW1lbnQuZ2V0
KCksIHN0YXJ0Tm9kZSk7CisgICAgICAgIHN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoc3Rh
cnROb2RlLCBlbmROb2RlLCBjbG9uZWRFbGVtZW50LmdldCgpKTsKKyAgICB9CiB9CiAKIGZsb2F0
IEFwcGx5U3R5bGVDb21tYW5kOjpjb21wdXRlZEZvbnRTaXplKGNvbnN0IE5vZGVJbXBsICpub2Rl
KQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBfX2NyZWF0ZV9saW5rX2NvbW1h
bmRfaF9fCisjZGVmaW5lIF9fY3JlYXRlX2xpbmtfY29tbWFuZF9oX18KKworI2luY2x1ZGUgIkFw
cGx5U3R5bGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3JlYXRl
TGlua0NvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQKK3sKK3B1YmxpYzoKKyAg
ICBDcmVhdGVMaW5rQ29tbWFuZChET006OkRvY3VtZW50SW1wbCosIGNvbnN0IFN0cmluZyYpOwor
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CisgICAgCitwcml2YXRlOgorICAgIFN0cmluZyBt
X3VybDsKKworfTsKKworfSAvLyBuYW1lc3BhY2Uga2h0bWwKKworI2VuZGlmIC8vIF9fY3JlYXRl
X2xpbmtfY29tbWFuZF9oX18KSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTMyNTUpCisrKyBXZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMwLDcgKzIyMzAsNyBAQAogICAg
IFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkltcGw+IGJsb2NrU3R5bGUgPSBtdXRh
YmxlU3R5bGUtPmNvcHlCbG9ja1Byb3BlcnRpZXMoKTsKICAgICBibG9ja1N0eWxlLT5kaWZmKG11
dGFibGVTdHlsZS5nZXQoKSk7CiAgICAgaWYgKGRvY3VtZW50KCkgJiYgYmxvY2tTdHlsZS0+bGVu
Z3RoKCkgPiAwKSB7Ci0gICAgICAgIEVkaXRDb21tYW5kUHRyIGNtZChuZXcgQXBwbHlTdHlsZUNv
bW1hbmQoZG9jdW1lbnQoKSwgYmxvY2tTdHlsZS5nZXQoKSwgZWRpdGluZ0FjdGlvbikpOworICAg
ICAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCks
IGJsb2NrU3R5bGUuZ2V0KCksIDAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICAgICAgY21kLmFwcGx5
KCk7CiAgICAgfQogICAgIApAQCAtMjI1MCw3ICsyMjUwLDcgQEAKICAgICAgICAgfQogICAgICAg
ICBjYXNlIFNlbGVjdGlvbjo6UkFOR0U6CiAgICAgICAgICAgICBpZiAoZG9jdW1lbnQoKSAmJiBz
dHlsZSkgewotICAgICAgICAgICAgICAgIEVkaXRDb21tYW5kUHRyIGNtZChuZXcgQXBwbHlTdHls
ZUNvbW1hbmQoZG9jdW1lbnQoKSwgc3R5bGUsIGVkaXRpbmdBY3Rpb24pKTsKKyAgICAgICAgICAg
ICAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50KCks
IHN0eWxlLCAwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgICAgICAgICAgICAgY21kLmFwcGx5KCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTIyNjYsNyArMjI2Niw3IEBA
CiAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpDQVJFVDoKICAgICAgICAgY2FzZSBTZWxlY3Rpb246
OlJBTkdFOgogICAgICAgICAgICAgaWYgKGRvY3VtZW50KCkgJiYgc3R5bGUpIHsKLSAgICAgICAg
ICAgICAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50
KCksIHN0eWxlLCBlZGl0aW5nQWN0aW9uLCBBcHBseVN0eWxlQ29tbWFuZDo6Rm9yY2VCbG9ja1By
b3BlcnRpZXMpKTsKKyAgICAgICAgICAgICAgICBFZGl0Q29tbWFuZFB0ciBjbWQobmV3IEFwcGx5
U3R5bGVDb21tYW5kKGRvY3VtZW50KCksIHN0eWxlLCAwLCBlZGl0aW5nQWN0aW9uLCBBcHBseVN0
eWxlQ29tbWFuZDo6Rm9yY2VCbG9ja1Byb3BlcnRpZXMpKTsKICAgICAgICAgICAgICAgICBjbWQu
YXBwbHkoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwo=
</data>
<flag name="review"
          id="1841"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>