<?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>8298</bug_id>
          
          <creation_ts>2006-04-10 10:29:27 -0700</creation_ts>
          <short_desc>REGRESSION: Crash occurs when attempting to drag selection into Depart/Return input fields at http://www.travelocity.com/</short_desc>
          <delta_ts>2021-09-30 15:03:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Petersen">c.petersen87</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>backlink788</cc>
    
    <cc>justin.garcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38877</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2006-04-10 10:29:27 -0700</bug_when>
    <thetext>When I attempt to drag a selection into one of the page&apos;s field ( Depart/Return), a crash will occur.

0   com.apple.WebCore        	0x0117727b WebCore::CSSStyleDeclaration::copyPropertiesInSet(int const*, unsigned) const + 169

STEPS TO REPRODUCE
1. With TOT WebKit, go to http://www.travelocity.com/?Service=TRAVELOCITY
2. The best way to reproduce this issue is click travelocity logo image (at the top of the page) and drag it so that it hovers directly over Depart or Return fields.  Mouse up when you see the caret appear in this field.
3. Crash occurs.

* RESULTS
No crash should occur when attempting to drag into a field. However, the application does crash.

* REGRESSION
Yes, this occurs with native text fields .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38878</commentid>
    <comment_count>1</comment_count>
      <attachid>7620</attachid>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2006-04-10 10:32:12 -0700</bug_when>
    <thetext>Created attachment 7620
back_trace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38879</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2006-04-10 10:33:19 -0700</bug_when>
    <thetext>This issue has been filed as &lt;rdar://problem/4507874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39268</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-14 09:08:00 -0700</bug_when>
    <thetext>The cause of this is that the drag is targeted at the text node, and when the text field is emptied the text node is gone. So this has the same type of cause that bug 8111 did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39305</commentid>
    <comment_count>4</comment_count>
      <attachid>7721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-14 19:30:57 -0700</bug_when>
    <thetext>Created attachment 7721
preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39306</commentid>
    <comment_count>5</comment_count>
      <attachid>7722</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-14 19:31:24 -0700</bug_when>
    <thetext>Created attachment 7722
reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39398</commentid>
    <comment_count>6</comment_count>
      <attachid>7738</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-15 19:16:19 -0700</bug_when>
    <thetext>Created attachment 7738
patch with detailed change log, manual test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39448</commentid>
    <comment_count>7</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2006-04-16 18:21:42 -0700</bug_when>
    <thetext>Is replaceChild really an optimization?
You could make the SelectionController&amp; returned by dragCaret() non-const, like selection().
Typo in the changelog entry:
+        So this change along fixes the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39452</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-16 19:37:48 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Is replaceChild really an optimization?

Only a slight one, I guess. It sends fewer mutation events.

&gt; You could make the SelectionController&amp; returned by dragCaret() non-const, like
&gt; selection().

That&apos;s probably better than what I did. In general, I think we&apos;re still mixed up about SelectionController. If it&apos;s really a controller, then we should change selections by calling SelectionController functions. And we should not have setSelection or setDragCaret functions that take a SelectionController.

&gt; Typo in the changelog entry:
&gt; +        So this change along fixes the crash.

I&apos;ll fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39996</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2006-04-20 22:56:25 -0700</bug_when>
    <thetext>Verified with latest TOT Webkit build (r13990).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7620</attachid>
            <date>2006-04-10 10:32:12 -0700</date>
            <delta_ts>2006-04-10 10:32:12 -0700</delta_ts>
            <desc>back_trace</desc>
            <filename>full_ back_trace.txt</filename>
            <type>text/plain</type>
            <size>21248</size>
            <attacher name="Chris Petersen">c.petersen87</attacher>
            
              <data encoding="base64">RGF0ZS9UaW1lOiAgICAgIDIwMDYtMDQtMTAgMTA6MzA6NDAuMTE0IC0wNzAwCk9TIFZlcnNpb246
ICAgICAxMC40LjYgKEJ1aWxkIDhJMTI2KQpSZXBvcnQgVmVyc2lvbjogNAoKQ29tbWFuZDogU2Fm
YXJpClBhdGg6ICAgIC9BcHBsaWNhdGlvbnMvU2FmYXJpLmFwcC9Db250ZW50cy9NYWNPUy9TYWZh
cmkKUGFyZW50OiAgV2luZG93U2VydmVyIFszMjNdCgpWZXJzaW9uOiA/Pz8gKDEzNzIxKQoKUElE
OiAgICAxOTk5ClRocmVhZDogMAoKRXhjZXB0aW9uOiAgRVhDX0JBRF9BQ0NFU1MgKDB4MDAwMSkK
Q29kZXM6ICAgICAgS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgKDB4MDAwMikgYXQgMHgwMDAwMDAw
MAoKVGhyZWFkIDAgQ3Jhc2hlZDoKMCAgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAJMHgwMTFh
ZDBkMCBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpjb3B5UHJvcGVydGllc0luU2V0KGlu
dCBjb25zdCosIHVuc2lnbmVkKSBjb25zdCArIDExMgoxICAgY29tLmFwcGxlLldlYkNvcmUgICAg
ICAgIAkweDAxMTllMjM0IFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29w
eUluaGVyaXRhYmxlUHJvcGVydGllcygpIGNvbnN0ICsgNTIKMiAgIGNvbS5hcHBsZS5XZWJDb3Jl
ICAgICAgICAJMHgwMTI2YThhMCBXZWJDb3JlOjpFZGl0Q29tbWFuZDo6c3R5bGVBdFBvc2l0aW9u
KFdlYkNvcmU6OlBvc2l0aW9uIGNvbnN0JikgKyA2NAozICAgY29tLmFwcGxlLldlYkNvcmUgICAg
ICAgIAkweDAxMjdlNzQ4IFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5
KCkgKyA3NDQKNCAgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAJMHgwMTI2YzEwOCBXZWJDb3Jl
OjpFZGl0Q29tbWFuZDo6YXBwbHkoKSArIDcyOAo1ICAgY29tLmFwcGxlLldlYkNvcmUgICAgICAg
IAkweDAxMTY0ZmFjIC1bV2ViQ29yZUZyYW1lQnJpZGdlIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJh
Z21lbnQ6c2VsZWN0UmVwbGFjZW1lbnQ6c21hcnRSZXBsYWNlOm1hdGNoU3R5bGU6XSArIDE3Mgo2
ICAgY29tLmFwcGxlLldlYktpdCAgICAgICAgIAkweDAwMzQ1MjMwIC1bV2ViSFRNTFZpZXcgY29u
Y2x1ZGVEcmFnRm9yRHJhZ2dpbmdJbmZvOmFjdGlvbk1hc2s6XSArIDg2NAo3ICAgY29tLmFwcGxl
LldlYktpdCAgICAgICAgIAkweDAwMzY0ZTVjIC1bV2ViVmlldyBwZXJmb3JtRHJhZ09wZXJhdGlv
bjpdICsgNjAKOCAgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAgICAJMHg5Mzk2MDcxMCBOU0NvcmVE
cmFnUmVjZWl2ZVByb2MgKyA4NjQKOSAgIGNvbS5hcHBsZS5ISVNlcnZpY2VzICAgICAJMHg5MTg0
YWRlOCBEb0Ryb3BNZXNzYWdlICsgOTYKMTAgIGNvbS5hcHBsZS5ISVNlcnZpY2VzICAgICAJMHg5
MTg0YWQ1OCBTZW5kRHJvcE1lc3NhZ2UgKyA1MgoxMSAgY29tLmFwcGxlLkhJU2VydmljZXMgICAg
IAkweDkxODQ5NDU0IERyYWdJbkFwcGxpY2F0aW9uICsgNDg0CjEyICBjb20uYXBwbGUuSElTZXJ2
aWNlcyAgICAgCTB4OTE4NDhkYjggRHJhZ0xvb3AgKyAxMzIKMTMgIGNvbS5hcHBsZS5ISVNlcnZp
Y2VzICAgICAJMHg5MTg0N2ViYyBDb3JlRHJhZ1N0YXJ0RHJhZ2dpbmcgKyAyMDAKMTQgIGNvbS5h
cHBsZS5BcHBLaXQgICAgICAgICAJMHg5Mzk2NjRkMCAtW05TQ29yZURyYWdNYW5hZ2VyIF9kcmFn
VW50aWxNb3VzZVVwOmFjY2VwdGVkOl0gKyA1NTIKMTUgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAg
ICAJMHg5Mzk2NWQ0YyAtW05TQ29yZURyYWdNYW5hZ2VyIGRyYWdJbWFnZTpmcm9tV2luZG93OmF0
Om9mZnNldDpldmVudDpwYXN0ZWJvYXJkOnNvdXJjZTpzbGlkZUJhY2s6XSArIDExMjAKMTYgIGNv
bS5hcHBsZS5BcHBLaXQgICAgICAgICAJMHg5Mzk2NThkOCAtW05TV2luZG93KE5TRHJhZykgZHJh
Z0ltYWdlOmF0Om9mZnNldDpldmVudDpwYXN0ZWJvYXJkOnNvdXJjZTpzbGlkZUJhY2s6XSArIDEz
NgoxNyAgY29tLmFwcGxlLkFwcEtpdCAgICAgICAgIAkweDkzOTY1ODNjIC1bTlNWaWV3KE5TRHJh
ZykgZHJhZ0ltYWdlOmF0Om9mZnNldDpldmVudDpwYXN0ZWJvYXJkOnNvdXJjZTpzbGlkZUJhY2s6
XSArIDE2NAoxOCAgY29tLmFwcGxlLldlYktpdCAgICAgICAgIAkweDAwMzQ0NmQ4IC1bV2ViSFRN
TFZpZXcgZHJhZ0ltYWdlOmF0Om9mZnNldDpldmVudDpwYXN0ZWJvYXJkOnNvdXJjZTpzbGlkZUJh
Y2s6XSArIDMyOAoxOSAgY29tLmFwcGxlLldlYktpdCAgICAgICAgIAkweDAwMzRjODc0IC1bV2Vi
SFRNTFZpZXcoV2ViUHJpdmF0ZSkgX3N0YXJ0RHJhZ2dpbmdJbWFnZTphdDpvcGVyYXRpb246ZXZl
bnQ6c291cmNlSXNESFRNTDpESFRNTFdyb3RlRGF0YTpdICsgMTA5MgoyMCAgY29tLmFwcGxlLldl
YkNvcmUgICAgICAgIAkweDAxMTQwMjE4IFdlYkNvcmU6OkZyYW1lTWFjOjpoYW5kbGVNb3VzZU1v
dmVFdmVudChXZWJDb3JlOjpNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIGNvbnN0JikgKyAx
ODMyCjIxICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgCTB4MDExNGM5YmMgV2ViQ29yZTo6RnJh
bWVWaWV3OjpoYW5kbGVNb3VzZU1vdmVFdmVudChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQg
Y29uc3QmKSArIDQ0NAoyMiAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgIAkweDAxMTNlNDJjIFdl
YkNvcmU6OkZyYW1lTWFjOjptb3VzZURyYWdnZWQoTlNFdmVudCopICsgMzE2CjIzICBjb20uYXBw
bGUuV2ViS2l0ICAgICAgICAgCTB4MDAzNDQ3OTQgLVtXZWJIVE1MVmlldyBtb3VzZURyYWdnZWQ6
XSArIDE2NAoyNCAgY29tLmFwcGxlLkFwcEtpdCAgICAgICAgIAkweDkzNzVlNWMwIC1bTlNXaW5k
b3cgc2VuZEV2ZW50Ol0gKyA2NDI0CjI1ICBjb20uYXBwbGUuU2FmYXJpICAgICAgICAgCTB4MDAw
YWNjNzggMHgxMDAwICsgNzAzNjA4CjI2ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgCTB4OTM3
MDZlZjQgLVtOU0FwcGxpY2F0aW9uIHNlbmRFdmVudDpdICsgNDE3MgoyNyAgY29tLmFwcGxlLlNh
ZmFyaSAgICAgICAgIAkweDAwMDFiNGY4IDB4MTAwMCArIDEwNzc2OAoyOCAgY29tLmFwcGxlLkFw
cEtpdCAgICAgICAgIAkweDkzNmZlMzMwIC1bTlNBcHBsaWNhdGlvbiBydW5dICsgNTA4CjI5ICBj
b20uYXBwbGUuQXBwS2l0ICAgICAgICAgCTB4OTM3ZWVlNjggTlNBcHBsaWNhdGlvbk1haW4gKyA0
NTIKMzAgIGNvbS5hcHBsZS5TYWZhcmkgICAgICAgICAJMHgwMDAwNGViNCAweDEwMDAgKyAxNjA1
MgozMSAgY29tLmFwcGxlLlNhZmFyaSAgICAgICAgIAkweDAwMDU4MWRjIDB4MTAwMCArIDM1Njgy
OAoKVGhyZWFkIDE6CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgCTB4OTAwMGIwYTggbWFj
aF9tc2dfdHJhcCArIDgKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAJMHg5MDAwYWZmYyBt
YWNoX21zZyArIDYwCjIgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gCTB4OTA3ZGMxMTQgX19D
RlJ1bkxvb3BSdW4gKyA4MzIKMyAgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAJMHg5MDdkYmEx
OCBDRlJ1bkxvb3BSdW5TcGVjaWZpYyArIDI2OAo0ICAgY29tLmFwcGxlLkZvdW5kYXRpb24gICAg
IAkweDkyOTQxMTY0IC1bTlNSdW5Mb29wIHJ1bk1vZGU6YmVmb3JlRGF0ZTpdICsgMTcyCjUgICBj
b20uYXBwbGUuRm91bmRhdGlvbiAgICAgCTB4OTI5NDEwOWMgLVtOU1J1bkxvb3AgcnVuXSArIDc2
CjYgICBjb20uYXBwbGUuV2ViS2l0ICAgICAgICAgCTB4MDAzNmNhMjQgK1tXZWJGaWxlRGF0YWJh
c2UgX3N5bmNMb29wOl0gKyAxODAKNyAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAJMHg5Mjkz
MjE5NCBmb3JrVGhyZWFkRm9yRnVuY3Rpb24gKyAxMDgKOCAgIGxpYlN5c3RlbS5CLmR5bGliICAg
ICAgICAJMHg5MDAyYmE2OCBfcHRocmVhZF9ib2R5ICsgOTYKClRocmVhZCAyOgowICAgbGliU3lz
dGVtLkIuZHlsaWIgICAgICAgIAkweDkwMDBiMGE4IG1hY2hfbXNnX3RyYXAgKyA4CjEgICBsaWJT
eXN0ZW0uQi5keWxpYiAgICAgICAgCTB4OTAwMGFmZmMgbWFjaF9tc2cgKyA2MAoyICAgY29tLmFw
cGxlLkNvcmVGb3VuZGF0aW9uIAkweDkwN2RjMTE0IF9fQ0ZSdW5Mb29wUnVuICsgODMyCjMgICBj
b20uYXBwbGUuQ29yZUZvdW5kYXRpb24gCTB4OTA3ZGJhMTggQ0ZSdW5Mb29wUnVuU3BlY2lmaWMg
KyAyNjgKNCAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAJMHg5Mjk1OTY5YyArW05TVVJMQ29u
bmVjdGlvbihOU1VSTENvbm5lY3Rpb25JbnRlcm5hbCkgX3Jlc291cmNlTG9hZExvb3A6XSArIDI2
NAo1ICAgY29tLmFwcGxlLkZvdW5kYXRpb24gICAgIAkweDkyOTMyMTk0IGZvcmtUaHJlYWRGb3JG
dW5jdGlvbiArIDEwOAo2ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgIAkweDkwMDJiYTY4IF9w
dGhyZWFkX2JvZHkgKyA5NgoKVGhyZWFkIDM6CjAgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAg
CTB4OTAwMGIwYTggbWFjaF9tc2dfdHJhcCArIDgKMSAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAg
ICAJMHg5MDAwYWZmYyBtYWNoX21zZyArIDYwCjIgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24g
CTB4OTA3ZGMxMTQgX19DRlJ1bkxvb3BSdW4gKyA4MzIKMyAgIGNvbS5hcHBsZS5Db3JlRm91bmRh
dGlvbiAJMHg5MDdkYmExOCBDRlJ1bkxvb3BSdW5TcGVjaWZpYyArIDI2OAo0ICAgY29tLmFwcGxl
LkZvdW5kYXRpb24gICAgIAkweDkyOTVhN2RjICtbTlNVUkxDYWNoZSBfZGlza0NhY2hlU3luY0xv
b3A6XSArIDE1Mgo1ICAgY29tLmFwcGxlLkZvdW5kYXRpb24gICAgIAkweDkyOTMyMTk0IGZvcmtU
aHJlYWRGb3JGdW5jdGlvbiArIDEwOAo2ICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgIAkweDkw
MDJiYTY4IF9wdGhyZWFkX2JvZHkgKyA5NgoKVGhyZWFkIDQ6CjAgICBsaWJTeXN0ZW0uQi5keWxp
YiAgICAgICAgCTB4OTAwMmMxMjggc2VtYXBob3JlX3dhaXRfc2lnbmFsX3RyYXAgKyA4CjEgICBs
aWJTeXN0ZW0uQi5keWxpYiAgICAgICAgCTB4OTAwMzBiZWMgcHRocmVhZF9jb25kX3dhaXQgKyA0
ODAKMiAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAJMHg5MjkzOTMwMCAtW05TQ29uZGl0aW9u
TG9jayBsb2NrV2hlbkNvbmRpdGlvbjpdICsgNjgKMyAgIGNvbS5hcHBsZS5TeW5kaWNhdGlvbiAg
ICAJMHg5YjUzMjUwYyAtW0FzeW5jREIgX3J1bjpdICsgMTkyCjQgICBjb20uYXBwbGUuRm91bmRh
dGlvbiAgICAgCTB4OTI5MzIxOTQgZm9ya1RocmVhZEZvckZ1bmN0aW9uICsgMTA4CjUgICBsaWJT
eXN0ZW0uQi5keWxpYiAgICAgICAgCTB4OTAwMmJhNjggX3B0aHJlYWRfYm9keSArIDk2CgpUaHJl
YWQgNToKMCAgIGxpYlN5c3RlbS5CLmR5bGliICAgICAgICAJMHg5MDAxZjVlYyBzZWxlY3QgKyAx
MgoxICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uIAkweDkwN2VlOWE4IF9fQ0ZTb2NrZXRNYW5h
Z2VyICsgNDcyCjIgICBsaWJTeXN0ZW0uQi5keWxpYiAgICAgICAgCTB4OTAwMmJhNjggX3B0aHJl
YWRfYm9keSArIDk2CgpUaHJlYWQgMCBjcmFzaGVkIHdpdGggUFBDIFRocmVhZCBTdGF0ZSA2NDoK
ICBzcnIwOiAweDAwMDAwMDAwMDExYWQwZDAgc3JyMTogMHgxMDAwMDAwMDAyMDBmMDMwICAgICAg
ICAgICAgICAgICAgICAgICAgdnJzYXZlOiAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNyOiAweDQ4
NDQ0NDQ0ICAgICAgICAgIHhlcjogMHgwMDAwMDAwMDIwMDAwMDAwICAgbHI6IDB4MDAwMDAwMDAw
MTFhZDBhYyAgY3RyOiAweDAwMDAwMDAwMDA0OTcyZTAKICAgIHIwOiAweDAwMDAwMDAwMDExYWQw
YWMgICByMTogMHgwMDAwMDAwMGJmZmZkM2QwICAgcjI6IDB4MDAwMDAwMDAwMTMxOTlkMCAgIHIz
OiAweDAwMDAwMDAwMDU1YmI5MTgKICAgIHI0OiAweDAwMDAwMDAwMDEzNGEzMDAgICByNTogMHgw
MDAwMDAwMDAxMzRhMjcwICAgcjY6IDB4MDAwMDAwMDAwMDAwMDAxMyAgIHI3OiAweDAwMDAwMDAw
MDAwMDAwMDEKICAgIHI4OiAweDAwMDAwMDAwMDE1MGJjOGMgICByOTogMHgwMDAwMDAwMDA1NWJi
YTIwICByMTA6IDB4MDAwMDAwMDAwMTUwYmM4OCAgcjExOiAweDAwMDAwMDAwMDAwMDAwMDAKICAg
cjEyOiAweDAwMDAwMDAwMDA0OTcyZTAgIHIxMzogMHgwMDAwMDAwMDAwMDAwMDAxICByMTQ6IDB4
MDAwMDAwMDBiZmZmZDcyOCAgcjE1OiAweDAwMDAwMDAwMDE1OWQ1YTAKICAgcjE2OiAweDAwMDAw
MDAwMDE1OWQ1YTAgIHIxNzogMHgwMDAwMDAwMDA1NThmZWIwICByMTg6IDB4MDAwMDAwMDAwMDAw
MDAwNyAgcjE5OiAweDAwMDAwMDAwYTM3MzYyYTgKICAgcjIwOiAweDAwMDAwMDAwNDAwMDAwMDAg
IHIyMTogMHgwMDAwMDAwMGJmZmZkNGRjICByMjI6IDB4MDAwMDAwMDAwMDAwMDAxMyAgcjIzOiAw
eDAwMDAwMDAwMDAwMDAwMDAKICAgcjI0OiAweDAwMDAwMDAwYmZmZmQ0MGMgIHIyNTogMHgwMDAw
MDAwMDAxNTlkNWEwICByMjY6IDB4MDAwMDAwMDAwMDAwMDAwMCAgcjI3OiAweDAwMDAwMDAwMDAw
MDAwMDAKICAgcjI4OiAweDAwMDAwMDAwMDEzMTEyNDAgIHIyOTogMHgwMDAwMDAwMDAxMzExMjQw
ICByMzA6IDB4MDAwMDAwMDAwNTU4ZmU2MCAgcjMxOiAweDAwMDAwMDAwMDExYWQwNzQKCkJpbmFy
eSBJbWFnZXMgRGVzY3JpcHRpb246CiAgICAweDEwMDAgLSAgIDB4MTFlZmZmIGNvbS5hcHBsZS5T
YWZhcmkgMy4wICg1MjEuOSkJL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBwL0NvbnRlbnRzL01hY09T
L1NhZmFyaQogIDB4MTUwMDAwIC0gICAweDE1MGZmZiBXZWJLaXROaWdodGx5RW5hYmxlci5keWxp
YiAJL1VzZXJzL2NwL0Rlc2t0b3AvV2ViS2l0LmFwcC9Db250ZW50cy9SZXNvdXJjZXMvV2ViS2l0
TmlnaHRseUVuYWJsZXIuZHlsaWIKICAweDMwNTAwMCAtICAgMHgzYjBmZmYgY29tLmFwcGxlLldl
YktpdCA0MjArCS9Vc2Vycy9jcC9EZXNrdG9wL1dlYktpdC5hcHAvQ29udGVudHMvUmVzb3VyY2Vz
L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9XZWJLaXQKICAweDQyYjAwMCAtICAgMHg0Yjdm
ZmYgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlIDQyMCsJL1VzZXJzL2NwL0Rlc2t0b3AvV2ViS2l0
LmFwcC9Db250ZW50cy9SZXNvdXJjZXMvSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvSmF2YVNjcmlwdENvcmUKIDB4MTAwODAwMCAtICAweDEzNjZmZmYgY29tLmFwcGxlLldlYkNv
cmUgNDIwKwkvVXNlcnMvY3AvRGVza3RvcC9XZWJLaXQuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9X
ZWJDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL1dlYkNvcmUKMHg4ZmUwMDAwMCAtIDB4OGZlNTFm
ZmYgZHlsZCA0NC40CS91c3IvbGliL2R5bGQKMHg5MDAwMDAwMCAtIDB4OTAxYmJmZmYgbGliU3lz
dGVtLkIuZHlsaWIgCS91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliCjB4OTAyMTMwMDAgLSAweDkw
MjE4ZmZmIGxpYm1hdGhDb21tb24uQS5keWxpYiAJL3Vzci9saWIvc3lzdGVtL2xpYm1hdGhDb21t
b24uQS5keWxpYgoweDkwMjFhMDAwIC0gMHg5MDI2N2ZmZiBjb20uYXBwbGUuQ29yZVRleHQgMS4w
LjEgKD8/PykJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NvcmVUZXh0LmZyYW1ld29yay9WZXJzaW9u
cy9BL0NvcmVUZXh0CjB4OTAyOTIwMDAgLSAweDkwMzQzZmZmIEFUUyAJL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFt
ZXdvcmtzL0FUUy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BVFMKMHg5MDM3MjAwMCAtIDB4OTA3MmNm
ZmYgY29tLmFwcGxlLkNvcmVHcmFwaGljcyAxLjI1OC4yNyAoPz8/KQkvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVHcmFwaGljcwoweDkw
N2I5MDAwIC0gMHg5MDg5MmZmZiBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gNi40LjQgKDM2OC4y
NSkJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrL1Zl
cnNpb25zL0EvQ29yZUZvdW5kYXRpb24KMHg5MDhkYjAwMCAtIDB4OTA4ZGJmZmYgY29tLmFwcGxl
LkNvcmVTZXJ2aWNlcyAxMC40ICg/Pz8pCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVT
ZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlU2VydmljZXMKMHg5MDhkZDAwMCAtIDB4
OTA5ZGZmZmYgbGliaWN1Y29yZS5BLmR5bGliIAkvdXNyL2xpYi9saWJpY3Vjb3JlLkEuZHlsaWIK
MHg5MGEzOTAwMCAtIDB4OTBhYmRmZmYgbGlib2JqYy5BLmR5bGliIAkvdXNyL2xpYi9saWJvYmpj
LkEuZHlsaWIKMHg5MGFlNzAwMCAtIDB4OTBiNTdmZmYgSU9LaXQgCS9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL0lPS2l0CjB4OTBiNmQwMDAgLSAw
eDkwYjdmZmZmIGxpYmF1dG8uZHlsaWIgCS91c3IvbGliL2xpYmF1dG8uZHlsaWIKMHg5MGI4NjAw
MCAtIDB4OTBlNWRmZmYgY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5DYXJib25Db3JlIDY4MS4zICg2
NzEuMikJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJi
b25Db3JlCjB4OTBlYzMwMDAgLSAweDkwZjQzZmZmIGNvbS5hcHBsZS5Db3JlU2VydmljZXMuT1NT
ZXJ2aWNlcyA0LjEJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvT1NTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9PU1NlcnZpY2VzCjB4OTBmOGQwMDAgLSAweDkwZmNlZmZmIGNvbS5hcHBsZS5DRk5ldHdvcmsg
MTI5LjEzCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DRk5l
dHdvcmsKMHg5MGZlMzAwMCAtIDB4OTBmZmJmZmYgY29tLmFwcGxlLldlYlNlcnZpY2VzIDEuMS4y
ICgxLjEuMCkJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvV2ViU2VydmljZXNDb3JlLmZyYW1ld29yay9WZXJzaW9u
cy9BL1dlYlNlcnZpY2VzQ29yZQoweDkxMDBiMDAwIC0gMHg5MTA4Y2ZmZiBjb20uYXBwbGUuU2Vh
cmNoS2l0IDEuMC41CS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NlYXJjaEtpdC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9TZWFyY2hLaXQKMHg5MTBkMjAwMCAtIDB4OTEwZmJmZmYgY29tLmFwcGxlLk1ldGFkYXRhIDEw
LjQuNCAoMTIxLjM2KQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9NZXRhZGF0YS5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9NZXRhZGF0YQoweDkxMTBjMDAwIC0gMHg5MTExYWZmZiBsaWJ6LjEuZHlsaWIgCS91c3IvbGli
L2xpYnouMS5keWxpYgoweDkxMTFkMDAwIC0gMHg5MTJkM2ZmZiBjb20uYXBwbGUuc2VjdXJpdHkg
NC4zICgyNTk2NikJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvU2VjdXJpdHkKMHg5MTNkMDAwMCAtIDB4OTEzZDlmZmYgY29tLmFwcGxlLkRp
c2tBcmJpdHJhdGlvbiAyLjEJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRGlza0FyYml0cmF0
aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0Rpc2tBcmJpdHJhdGlvbgoweDkxM2UwMDAwIC0gMHg5
MTQwN2ZmZiBjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJhdGlvbiAxLjguMgkvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9TeXN0ZW1Db25maWd1cmF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1N5
c3RlbUNvbmZpZ3VyYXRpb24KMHg5MTQxYTAwMCAtIDB4OTE0MjVmZmYgbGliZ2NjX3MuMS5keWxp
YiAJL3Vzci9saWIvbGliZ2NjX3MuMS5keWxpYgoweDkxNDJhMDAwIC0gMHg5MTQzMmZmZiBsaWJi
c20uZHlsaWIgCS91c3IvbGliL2xpYmJzbS5keWxpYgoweDkxNDM2MDAwIC0gMHg5MTRiMWZmZiBj
b20uYXBwbGUuYXVkaW8uQ29yZUF1ZGlvIDMuMC4zCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0NvcmVBdWRpby5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlQXVkaW8KMHg5MTRlZTAwMCAtIDB4
OTE0ZWVmZmYgY29tLmFwcGxlLkFwcGxpY2F0aW9uU2VydmljZXMgMTAuNCAoPz8/KQkvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0FwcGxpY2F0aW9uU2VydmljZXMKMHg5MTRmMDAwMCAtIDB4OTE1MjhmZmYgY29tLmFwcGxl
LkFFIDEuNSAoMjk3KQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp
Y2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQUUuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvQUUKMHg5MTU0MzAwMCAtIDB4OTE2MTBmZmYgY29tLmFwcGxlLkNvbG9yU3luYyA0LjQuNAkv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ29sb3JTeW5jLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvbG9y
U3luYwoweDkxNjY1MDAwIC0gMHg5MTZmNmZmZiBjb20uYXBwbGUucHJpbnQuZnJhbWV3b3JrLlBy
aW50Q29yZSA0LjUgKDE3Ny4xMCkJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1ByaW50Q29yZS5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9QcmludENvcmUKMHg5MTczZDAwMCAtIDB4OTE3ZjRmZmYgY29tLmFw
cGxlLlFEIDMuOC4xOSAoPz8/KQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlv
blNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvUUQuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvUUQKMHg5MTgzMTAwMCAtIDB4OTE4OGZmZmYgY29tLmFwcGxlLkhJU2VydmljZXMg
MS41LjEgKD8/PykJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNl
cy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hJU2VydmljZXMuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvSElTZXJ2aWNlcwoweDkxOGJlMDAwIC0gMHg5MThkZmZmZiBjb20uYXBwbGUuTGFu
Z0FuYWx5c2lzIDEuNi4xCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9MYW5nQW5hbHlzaXMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvTGFuZ0FuYWx5c2lzCjB4OTE4ZjMwMDAgLSAweDkxOTE4ZmZmIGNvbS5h
cHBsZS5GaW5kQnlDb250ZW50IDEuNQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNh
dGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvRmluZEJ5Q29udGVu
dC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GaW5kQnlDb250ZW50CjB4OTE5MmIwMDAgLSAweDkxOTZk
ZmZmIGNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyAxNjguMTAJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtz
L0xhdW5jaFNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0xhdW5jaFNlcnZpY2VzCjB4OTE5
ODkwMDAgLSAweDkxOTlkZmZmIGNvbS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmZyYW1ld29yayAz
LjMJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NwZWVjaFN5bnRoZXNpcy5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9TcGVlY2hTeW50aGVzaXMKMHg5MTlhYjAwMCAtIDB4OTE5ZWFmZmYgY29tLmFwcGxlLklt
YWdlSU8uZnJhbWV3b3JrIDEuNC42CS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0
aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ltYWdlSU8KMHg5MWEwMDAwMCAtIDB4OTFhYzhmZmYgbGliY3J5cHRv
LjAuOS43LmR5bGliIAkvdXNyL2xpYi9saWJjcnlwdG8uMC45LjcuZHlsaWIKMHg5MWIxNjAwMCAt
IDB4OTFiMmJmZmYgbGliY3Vwcy4yLmR5bGliIAkvdXNyL2xpYi9saWJjdXBzLjIuZHlsaWIKMHg5
MWIzMDAwMCAtIDB4OTFiNGRmZmYgbGliSlBFRy5keWxpYiAJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtz
L0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYkpQRUcuZHlsaWIKMHg5
MWI1MjAwMCAtIDB4OTFiYzFmZmYgbGliSlAyLmR5bGliIAkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3Mv
SW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliSlAyLmR5bGliCjB4OTFi
ZDgwMDAgLSAweDkxYmRjZmZmIGxpYkdJRi5keWxpYiAJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0lt
YWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYkdJRi5keWxpYgoweDkxYmRl
MDAwIC0gMHg5MWMyNWZmZiBsaWJSYXcuZHlsaWIgCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFn
ZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJSYXcuZHlsaWIKMHg5MWMyYTAw
MCAtIDB4OTFjNjdmZmYgbGliVElGRi5keWxpYiAJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0ltYWdl
SU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYlRJRkYuZHlsaWIKMHg5MWM2ZTAw
MCAtIDB4OTFjODdmZmYgbGliUG5nLmR5bGliIAkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B
cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VJ
Ty5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliUG5nLmR5bGliCjB4OTFjOGMwMDAg
LSAweDkxYzhmZmZmIGxpYlJhZGlhbmNlLmR5bGliIAkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1h
Z2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliUmFkaWFuY2UuZHlsaWIKMHg5
MWM5MTAwMCAtIDB4OTFjOTFmZmYgY29tLmFwcGxlLkFjY2VsZXJhdGUgMS4yLjEgKEFjY2VsZXJh
dGUgMS4yLjEpCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvQWNjZWxlcmF0ZQoweDkxYzkzMDAwIC0gMHg5MWQ3M2ZmZiBjb20uYXBwbGUu
dkltYWdlIDIuMwkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdkltYWdlLmZyYW1ld29yay9WZXJzaW9ucy9BL3ZJbWFn
ZQoweDkxZDdiMDAwIC0gMHg5MWQ5YWZmZiBjb20uYXBwbGUuQWNjZWxlcmF0ZS52ZWNMaWIgMy4y
LjEgKHZlY0xpYiAzLjIuMSkJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS92ZWNMaWIKMHg5MWUwNjAwMCAtIDB4OTFlNzRmZmYgbGlidk1pc2MuZHlsaWIgCS9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGlidk1pc2MuZHlsaWIKMHg5MWU3ZjAw
MCAtIDB4OTFmMTNmZmYgbGlidkRTUC5keWxpYiAJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
QWNjZWxlcmF0ZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9saWJ2RFNQLmR5bGliCjB4OTFmMmQwMDAgLSAweDkyNGI1ZmZmIGxpYkJM
QVMuZHlsaWIgCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliQkxB
Uy5keWxpYgoweDkyNGU4MDAwIC0gMHg5MjgxM2ZmZiBsaWJMQVBBQ0suZHlsaWIgCS9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliTEFQQUNLLmR5bGliCjB4OTI4NDMw
MDAgLSAweDkyOGNiZmZmIGNvbS5hcHBsZS5EZXNrdG9wU2VydmljZXMgMS4zLjMJL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Rlc2t0b3BTZXJ2aWNlc1ByaXYuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvRGVza3RvcFNlcnZpY2VzUHJpdgoweDkyOTBjMDAwIC0gMHg5MmIzN2ZmZiBjb20u
YXBwbGUuRm91bmRhdGlvbiA2LjQuNSAoNTY3LjI2KQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Gb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9DL0ZvdW5kYXRpb24KMHg5MmM1NTAwMCAt
IDB4OTJkMzNmZmYgbGlieG1sMi4yLmR5bGliIAkvdXNyL2xpYi9saWJ4bWwyLjIuZHlsaWIKMHg5
MmQ1MzAwMCAtIDB4OTJlNDFmZmYgbGliaWNvbnYuMi5keWxpYiAJL3Vzci9saWIvbGliaWNvbnYu
Mi5keWxpYgoweDkyZTUzMDAwIC0gMHg5MmU3MWZmZiBsaWJHTC5keWxpYiAJL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJH
TC5keWxpYgoweDkyZTdjMDAwIC0gMHg5MmVkNmZmZiBsaWJHTFUuZHlsaWIgCS9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGli
R0xVLmR5bGliCjB4OTJlZjQwMDAgLSAweDkyZWY0ZmZmIGNvbS5hcHBsZS5DYXJib24gMTAuNCAo
Pz8/KQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25z
L0EvQ2FyYm9uCjB4OTJlZjYwMDAgLSAweDkyZjBhZmZmIGNvbS5hcHBsZS5JbWFnZUNhcHR1cmUg
My4wCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9GcmFtZXdvcmtzL0ltYWdlQ2FwdHVyZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbWFnZUNhcHR1
cmUKMHg5MmYyMjAwMCAtIDB4OTJmMzJmZmYgY29tLmFwcGxlLnNwZWVjaC5yZWNvZ25pdGlvbi5m
cmFtZXdvcmsgMy40CS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NwZWVjaFJlY29nbml0aW9uLmZyYW1ld29yay9WZXJzaW9u
cy9BL1NwZWVjaFJlY29nbml0aW9uCjB4OTJmM2UwMDAgLSAweDkyZjUzZmZmIGNvbS5hcHBsZS5z
ZWN1cml0eWhpIDIuMCAoMjAzKQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJh
bWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9TZWN1cml0eUhJLmZyYW1ld29yay9WZXJzaW9u
cy9BL1NlY3VyaXR5SEkKMHg5MmY2NTAwMCAtIDB4OTJmZWNmZmYgY29tLmFwcGxlLmluay5mcmFt
ZXdvcmsgMTAxLjIgKDY5KQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3
b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbmsuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW5rCjB4
OTMwMDAwMDAgLSAweDkzMDBiZmZmIGNvbS5hcHBsZS5oZWxwIDEuMC4zICgzMikJL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3Mv
SGVscC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9IZWxwCjB4OTMwMTUwMDAgLSAweDkzMDQyZmZmIGNv
bS5hcHBsZS5vcGVuc2NyaXB0aW5nIDEuMi41ICg/Pz8pCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL09wZW5TY3JpcHRpbmcu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvT3BlblNjcmlwdGluZwoweDkzMDVjMDAwIC0gMHg5MzA2YmZm
ZiBjb20uYXBwbGUucHJpbnQuZnJhbWV3b3JrLlByaW50IDUuMiAoMTkyLjQpCS9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1By
aW50LmZyYW1ld29yay9WZXJzaW9ucy9BL1ByaW50CjB4OTMwNzcwMDAgLSAweDkzMGRkZmZmIGNv
bS5hcHBsZS5odG1scmVuZGVyaW5nIDEuMS4yCS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Nh
cmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hUTUxSZW5kZXJpbmcuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvSFRNTFJlbmRlcmluZwoweDkzMTBlMDAwIC0gMHg5MzE1ZGZmZiBjb20u
YXBwbGUuTmF2aWdhdGlvblNlcnZpY2VzIDMuNC40ICgzLjQuMykJL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvTmF2aWdhdGlv
blNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL05hdmlnYXRpb25TZXJ2aWNlcwoweDkzMThi
MDAwIC0gMHg5MzFhOGZmZiBjb20uYXBwbGUuYXVkaW8uU291bmRNYW5hZ2VyIDMuOQkvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jr
cy9DYXJib25Tb3VuZC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJib25Tb3VuZAoweDkzMWJhMDAw
IC0gMHg5MzFjN2ZmZiBjb20uYXBwbGUuQ29tbW9uUGFuZWxzIDEuMi4yICg3MykJL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3Mv
Q29tbW9uUGFuZWxzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvbW1vblBhbmVscwoweDkzMWQwMDAw
IC0gMHg5MzRkZGZmZiBjb20uYXBwbGUuSElUb29sYm94IDEuNC42ICg/Pz8pCS9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hJ
VG9vbGJveC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9ISVRvb2xib3gKMHg5MzYyYzAwMCAtIDB4OTM2
MzhmZmYgY29tLmFwcGxlLm9wZW5nbCAxLjQuNwkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9P
cGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvT3BlbkdMCjB4OTM2M2QwMDAgLSAweDkzNjVkZmZm
IGNvbS5hcHBsZS5EaXJlY3RvcnlTZXJ2aWNlLkZyYW1ld29yayAzLjEJL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvRGlyZWN0b3J5U2VydmljZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EaXJlY3Rv
cnlTZXJ2aWNlCjB4OTM2ZjgwMDAgLSAweDkzNmY4ZmZmIGNvbS5hcHBsZS5Db2NvYSA2LjQgKD8/
PykJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29jb2EuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
Q29jb2EKMHg5MzZmYTAwMCAtIDB4OTNkMmRmZmYgY29tLmFwcGxlLkFwcEtpdCA2LjQuNCAoODI0
LjMzKQkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL1ZlcnNpb25z
L0MvQXBwS2l0CjB4OTQwYmEwMDAgLSAweDk0MTJhZmZmIGNvbS5hcHBsZS5Db3JlRGF0YSA4MAkv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlRGF0YS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9D
b3JlRGF0YQoweDk0MTYzMDAwIC0gMHg5NDIyNmZmZiBjb20uYXBwbGUuYXVkaW8udG9vbGJveC5B
dWRpb1Rvb2xib3ggMS40LjEJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXVkaW9Ub29sYm94
LmZyYW1ld29yay9WZXJzaW9ucy9BL0F1ZGlvVG9vbGJveAoweDk0Mjc4MDAwIC0gMHg5NDI3OGZm
ZiBjb20uYXBwbGUuYXVkaW8udW5pdHMuQXVkaW9Vbml0IDEuNAkvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9BdWRpb1VuaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXVkaW9Vbml0CjB4OTQyN2Ew
MDAgLSAweDk0NDJlZmZmIGNvbS5hcHBsZS5RdWFydHpDb3JlIDEuNC43CS9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUXVhcnR6Q29yZQow
eDk0NDgxMDAwIC0gMHg5NDRiZWZmZiBsaWJzcWxpdGUzLjAuZHlsaWIgCS91c3IvbGliL2xpYnNx
bGl0ZTMuMC5keWxpYgoweDk0NGM2MDAwIC0gMHg5NDUxNmZmZiBsaWJHTEltYWdlLmR5bGliIAkv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGli
cmFyaWVzL2xpYkdMSW1hZ2UuZHlsaWIKMHg5NDVhNjAwMCAtIDB4OTQ1ZGVmZmYgY29tLmFwcGxl
LnZtdXRpbHMgNC4wLjAgKDg1KQkvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mvdm11
dGlscy5mcmFtZXdvcmsvVmVyc2lvbnMvQS92bXV0aWxzCjB4OTQ2MjEwMDAgLSAweDk0NjNkZmZm
IGNvbS5hcHBsZS5zZWN1cml0eWZvdW5kYXRpb24gMi4xICgyNDk4OCkJL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU2VjdXJpdHlGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NlY3Vy
aXR5Rm91bmRhdGlvbgoweDk0NjUxMDAwIC0gMHg5NDY5NWZmZiBjb20uYXBwbGUuc2VjdXJpdHlp
bnRlcmZhY2UgMi4xICgyNDk4MSkJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJ
bnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKMHg5NDZiOTAw
MCAtIDB4OTQ2YzhmZmYgbGliQ0dBVFMuQS5keWxpYiAJL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0Nv
cmVHcmFwaGljcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliQ0dBVFMuQS5keWxp
YgoweDk0NmQwMDAwIC0gMHg5NDZkZGZmZiBsaWJDU3luYy5BLmR5bGliIAkvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJD
U3luYy5BLmR5bGliCjB4OTQ3MjMwMDAgLSAweDk0NzNjZmZmIGxpYlJJUC5BLmR5bGliIAkvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291
cmNlcy9saWJSSVAuQS5keWxpYgoweDk0YWI1MDAwIC0gMHg5NGIyNmZmZiBsaWJzdGRjKysuNi5k
eWxpYiAJL3Vzci9saWIvbGlic3RkYysrLjYuZHlsaWIKMHg5NGM5YjAwMCAtIDB4OTRkYzlmZmYg
Y29tLmFwcGxlLkFkZHJlc3NCb29rLmZyYW1ld29yayA0LjAuMyAoNDgzKQkvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BZGRyZXNzQm9vay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BZGRyZXNzQm9v
awoweDk0ZTViMDAwIC0gMHg5NGU2YWZmZiBjb20uYXBwbGUuRFNPYmpDV3JhcHBlcnMuRnJhbWV3
b3JrIDEuMQkvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRFNPYmpDV3JhcHBlcnMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRFNPYmpDV3JhcHBlcnMKMHg5NGU3MjAwMCAtIDB4OTRlOWZm
ZmYgY29tLmFwcGxlLkxEQVBGcmFtZXdvcmsgMS40LjEgKDY5LjAuMSkJL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvTERBUC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MREFQCjB4OTRlYTYwMDAgLSAw
eDk0ZWI2ZmZmIGxpYnNhc2wyLjIuZHlsaWIgCS91c3IvbGliL2xpYnNhc2wyLjIuZHlsaWIKMHg5
NGViYTAwMCAtIDB4OTRlZTlmZmYgbGlic3NsLjAuOS43LmR5bGliIAkvdXNyL2xpYi9saWJzc2wu
MC45LjcuZHlsaWIKMHg5NGVmOTAwMCAtIDB4OTRmMTZmZmYgbGlicmVzb2x2LjkuZHlsaWIgCS91
c3IvbGliL2xpYnJlc29sdi45LmR5bGliCjB4OTYxNTcwMDAgLSAweDk2MTgwZmZmIGxpYnhzbHQu
MS5keWxpYiAJL3Vzci9saWIvbGlieHNsdC4xLmR5bGliCjB4OWI1MmYwMDAgLSAweDliNTY1ZmZm
IGNvbS5hcHBsZS5TeW5kaWNhdGlvbiAxLjAuNSAoNTIpCS9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9TeW5kaWNhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TeW5kaWNhdGlvbgow
eDliNTgyMDAwIC0gMHg5YjU5NGZmZiBjb20uYXBwbGUuU3luZGljYXRpb25VSSAxLjAuNSAoNTIp
CS9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TeW5kaWNhdGlvblVJLmZyYW1ld29y
ay9WZXJzaW9ucy9BL1N5bmRpY2F0aW9uVUkKCk1vZGVsOiBQb3dlck1hYzcsMywgQm9vdFJPTSA1
LjEuOGY3LCAyIHByb2Nlc3NvcnMsIFBvd2VyUEMgRzUgICgzLjApLCAyLjUgR0h6LCA1MTIgTUIK
R3JhcGhpY3M6IEFUSSBSYWRlb24gOTYwMCBYVCwgQVRZLFJWMzYwLCBBR1AsIDEyOCBNQgpNZW1v
cnkgTW9kdWxlOiBESU1NMC9KMTEsIDI1NiBNQiwgRERSIFNEUkFNLCBQQzMyMDBVLTMwMzMwCk1l
bW9yeSBNb2R1bGU6IERJTU0xL0oxMiwgMjU2IE1CLCBERFIgU0RSQU0sIFBDMzIwMFUtMzAzMzAK
TW9kZW06IEp1bXAsICwgVi45MiwgVmVyc2lvbiAxLjAsIApOZXR3b3JrIFNlcnZpY2U6IEJ1aWx0
LWluIEV0aGVybmV0LCBFdGhlcm5ldCwgZW4wClNlcmlhbCBBVEEgRGV2aWNlOiBTVDMxNjAwMjNB
UywgMTQ5LjA1IEdCClBhcmFsbGVsIEFUQSBEZXZpY2U6IFBJT05FRVIgRFZELVJXICBEVlItMTE3
RCwgClVTQiBEZXZpY2U6IEh1YiBpbiBBcHBsZSBQcm8gS2V5Ym9hcmQsIE1pdHN1bWkgRWxlY3Ry
aWMsIFVwIHRvIDEyIE1iL3NlYywgNTAwIG1BClVTQiBEZXZpY2U6IEFwcGxlIE9wdGljYWwgVVNC
IE1vdXNlLCBMb2dpdGVjaCwgVXAgdG8gMS41IE1iL3NlYywgMTAwIG1BClVTQiBEZXZpY2U6IEFw
cGxlIFBybyBLZXlib2FyZCwgTWl0c3VtaSBFbGVjdHJpYywgVXAgdG8gMTIgTWIvc2VjLCAyNTAg
bUEKVVNCIERldmljZTogSHViLCAsIFVwIHRvIDEyIE1iL3NlYywgNTAwIG1BClVTQiBEZXZpY2U6
IFN0dWRpbyBEaXNwbGF5LCAsIFVwIHRvIDEuNSBNYi9zZWMsIDUwMCBtQQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7721</attachid>
            <date>2006-04-14 19:30:57 -0700</date>
            <delta_ts>2006-04-15 19:16:19 -0700</delta_ts>
            <desc>preliminary patch</desc>
            <filename>InputEmptyOnFocusPatch.txt</filename>
            <type>text/plain</type>
            <size>17754</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGh0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxMzg3NCkKKysrIGh0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTYsMzcgKzI5Niw1MiBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7CisgICAgaWYgKGNoaWxkICYmICFjaGlsZC0+
bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSB3aGVyZSB0aGUg
ZWxlbWVudCBoYXMgZXhhY3RseSBvbmUgdGV4dCBub2RlIGFzIGEgY2hpbGQsCisgICAgICAgIC8v
IGFuZCB3aGF0IHdlJ3JlIHJlcGxhY2luZyB3aXRoIGlzIGFsc28gZXhhY3RseSBvbmUgdGV4dCBu
b2RlLgorICAgICAgICBpZiAoY2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICAgICAgTm9k
ZSogZnJhZ21lbnRDaGlsZCA9IGZyYWdtZW50LT5maXJzdENoaWxkKCk7CisgICAgICAgICAgICBp
ZiAoZnJhZ21lbnRDaGlsZCAmJiAhZnJhZ21lbnRDaGlsZC0+bmV4dFNpYmxpbmcoKSAmJiBmcmFn
bWVudENoaWxkLT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxU
ZXh0Kj4oY2hpbGQpLT5zZXREYXRhKHN0YXRpY19jYXN0PFRleHQqPihmcmFnbWVudENoaWxkKS0+
ZGF0YSgpLCBlYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugd2hlcmUgdGhlIGVsZW1lbnQg
aGFzIGV4YWN0bHkgb25lIGNoaWxkLgorICAgICAgICByZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVs
ZWFzZSgpLCBjaGlsZCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgcmVtb3Zl
Q2hpbGRyZW4oKTsKICAgICBhcHBlbmRDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKIH0K
IAogdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyAmaHRtbCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgTm9kZSAqcCA9IHBhcmVudCgpOworICAgIE5vZGUqIHAg
PSBwYXJlbnQoKTsKICAgICBpZiAoIXAgfHwgIXAtPmlzSFRNTEVsZW1lbnQoKSkgewogICAgICAg
ICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBIVE1MRWxlbWVudCAqcGFyZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQgKj4o
cCk7CisKKyAgICBIVE1MRWxlbWVudCogcGFyZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQq
PihwKTsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBwYXJlbnQtPmNy
ZWF0ZUNvbnRleHR1YWxGcmFnbWVudChodG1sKTsKLQogICAgIGlmICghZnJhZ21lbnQpIHsKICAg
ICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgCisKICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNl
KCksIHRoaXMsIGVjKTsKIH0KIAotCi12b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29u
c3QgU3RyaW5nICZ0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNl
dElubmVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IC8vIGZvbGxvd2luZyB0aGUgSUUgc3BlY3MuCisgICAgLy8gZm9sbG93IHRoZSBJRSBzcGVjcyBh
Ym91dCB3aGVuIHRoaXMgaXMgYWxsb3dlZAogICAgIGlmIChlbmRUYWdSZXF1aXJlbWVudCgpID09
IFRhZ1N0YXR1c0ZvcmJpZGRlbikgewogICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIGlmIChoYXNMb2NhbE5hbWUo
Y29sVGFnKSB8fCBoYXNMb2NhbE5hbWUoY29sZ3JvdXBUYWcpIHx8IGhhc0xvY2FsTmFtZShmcmFt
ZXNldFRhZykgfHwKICAgICAgICAgaGFzTG9jYWxOYW1lKGhlYWRUYWcpIHx8IGhhc0xvY2FsTmFt
ZShodG1sVGFnKSB8fCBoYXNMb2NhbE5hbWUodGFibGVUYWcpIHx8IAogICAgICAgICBoYXNMb2Nh
bE5hbWUodGJvZHlUYWcpIHx8IGhhc0xvY2FsTmFtZSh0Zm9vdFRhZykgfHwgaGFzTG9jYWxOYW1l
KHRoZWFkVGFnKSB8fApAQCAtMzM1LDE4ICszNTAsMzAgQEAKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOworICAgIGlmIChjaGlsZCAmJiAh
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugd2hl
cmUgdGhlIGVsZW1lbnQgYWxyZWFkeSBoYXMgZXhhY3RseSBvbmUgdGV4dCBub2RlIGFzIGEgY2hp
bGQuCisgICAgICAgIGlmIChjaGlsZC0+aXNUZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxUZXh0Kj4oY2hpbGQpLT5zZXREYXRhKHRleHQsIGVjKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIHdoZXJlIHRo
ZSBlbGVtZW50IGhhcyBleGFjdGx5IG9uZSBjaGlsZC4KKyAgICAgICAgcmVwbGFjZUNoaWxkKG5l
dyBUZXh0KGRvY3VtZW50KCksIHRleHQpLCBjaGlsZCwgZWMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICBhcHBlbmRDaGlsZChuZXcgVGV4dChk
b2N1bWVudCgpLCB0ZXh0KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRl
eHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyBmb2xs
b3dpbmcgdGhlIElFIHNwZWNzLgorICAgIC8vIGZvbGxvdyB0aGUgSUUgc3BlY3MgYWJvdXQgd2hl
biB0aGlzIGlzIGFsbG93ZWQKICAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0
dXNGb3JiaWRkZW4pIHsKICAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KICAgICBpZiAoaGFzTG9jYWxOYW1lKGNvbFRhZykg
fHwgaGFzTG9jYWxOYW1lKGNvbGdyb3VwVGFnKSB8fCBoYXNMb2NhbE5hbWUoZnJhbWVzZXRUYWcp
IHx8CiAgICAgICAgIGhhc0xvY2FsTmFtZShoZWFkVGFnKSB8fCBoYXNMb2NhbE5hbWUoaHRtbFRh
ZykgfHwgaGFzTG9jYWxOYW1lKHRhYmxlVGFnKSB8fCAKICAgICAgICAgaGFzTG9jYWxOYW1lKHRi
b2R5VGFnKSB8fCBoYXNMb2NhbE5hbWUodGZvb3RUYWcpIHx8IGhhc0xvY2FsTmFtZSh0aGVhZFRh
ZykgfHwKQEAgLTM1NSw4ICszODIsNyBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Tm9kZSAqcGFyZW50ID0gcGFyZW50Tm9kZSgpOwotCisgICAgTm9kZSogcGFyZW50ID0gcGFyZW50
Tm9kZSgpOwogICAgIGlmICghcGFyZW50KSB7CiAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwogICAgICAgICByZXR1cm47CkBAIC0zNjksOSArMzk1LDkgQEAKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gaXMgcHJldmlvdXMgbm9kZSBhIHRleHQgbm9kZT8gaWYgc28s
IG1lcmdlIGludG8gaXQKLSAgICBOb2RlICpwcmV2ID0gdC0+cHJldmlvdXNTaWJsaW5nKCk7Cisg
ICAgTm9kZSogcHJldiA9IHQtPnByZXZpb3VzU2libGluZygpOwogICAgIGlmIChwcmV2ICYmIHBy
ZXYtPmlzVGV4dE5vZGUoKSkgewotICAgICAgICBUZXh0ICp0ZXh0UHJldiA9IHN0YXRpY19jYXN0
PFRleHQgKj4ocHJldik7CisgICAgICAgIFRleHQqIHRleHRQcmV2ID0gc3RhdGljX2Nhc3Q8VGV4
dCo+KHByZXYpOwogICAgICAgICB0ZXh0UHJldi0+YXBwZW5kRGF0YSh0LT5kYXRhKCksIGVjKTsK
ICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzgyLDkgKzQwOCw5IEBA
CiAgICAgfQogCiAgICAgLy8gaXMgbmV4dCBub2RlIGEgdGV4dCBub2RlPyBpZiBzbywgbWVyZ2Ug
aXQgaW4KLSAgICBOb2RlICpuZXh0ID0gdC0+bmV4dFNpYmxpbmcoKTsKKyAgICBOb2RlKiBuZXh0
ID0gdC0+bmV4dFNpYmxpbmcoKTsKICAgICBpZiAobmV4dCAmJiBuZXh0LT5pc1RleHROb2RlKCkp
IHsKLSAgICAgICAgVGV4dCAqdGV4dE5leHQgPSBzdGF0aWNfY2FzdDxUZXh0ICo+KG5leHQpOwor
ICAgICAgICBUZXh0KiB0ZXh0TmV4dCA9IHN0YXRpY19jYXN0PFRleHQqPihuZXh0KTsKICAgICAg
ICAgdC0+YXBwZW5kRGF0YSh0ZXh0TmV4dC0+ZGF0YSgpLCBlYyk7CiAgICAgICAgIGlmIChlYykK
ICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IGRvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTM4NzQpCisrKyBkb20vRG9jdW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFn
bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdUZXh0
LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTIxNzQs
NiArMjE3NSwxMCBAQAogCiB2b2lkIERvY3VtZW50Ojpub3RpZnlCZWZvcmVOb2RlUmVtb3ZhbChO
b2RlICpuKQogeworICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKKyAgICAgICAgZi0+c2Vs
ZWN0aW9uKCkubm9kZVdpbGxCZVJlbW92ZWQobik7CisgICAgICAgIGNvbnN0X2Nhc3Q8U2VsZWN0
aW9uQ29udHJvbGxlciY+KGYtPmRyYWdDYXJldCgpKS5ub2RlV2lsbEJlUmVtb3ZlZChuKTsKKyAg
ICB9CiAgICAgRGVwcmVjYXRlZFB0ckxpc3RJdGVyYXRvcjxOb2RlSXRlcmF0b3I+IGl0KG1fbm9k
ZUl0ZXJhdG9ycyk7CiAgICAgZm9yICg7IGl0LmN1cnJlbnQoKTsgKytpdCkKICAgICAgICAgaXQu
Y3VycmVudCgpLT5ub3RpZnlCZWZvcmVOb2RlUmVtb3ZhbChuKTsKSW5kZXg6IGVkaXRpbmcvU2Vs
ZWN0aW9uQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5oCShyZXZpc2lvbiAxMzg3NCkKKysrIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIEtIVE1MX0VESVRJTkdf
U0VMRUNUSU9OQ09OVFJPTExFUl9ICiAjZGVmaW5lIEtIVE1MX0VESVRJTkdfU0VMRUNUSU9OQ09O
VFJPTExFUl9ICiAKLSNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCkBAIC0zNywy
MiArMzYsNyBAQAogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgUmVuZGVyT2JqZWN0Owog
Y2xhc3MgVmlzaWJsZVBvc2l0aW9uOwotY2xhc3MgU2VsZWN0aW9uQ29udHJvbGxlcjsKIAotY2xh
c3MgTXV0YXRpb25MaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyCi17Ci1wdWJsaWM6Ci0g
ICAgTXV0YXRpb25MaXN0ZW5lcigpIHsgbV9zZWxlY3Rpb25Db250cm9sbGVyID0gMDsgfQotICAg
IE11dGF0aW9uTGlzdGVuZXIoU2VsZWN0aW9uQ29udHJvbGxlciAqcykgeyBtX3NlbGVjdGlvbkNv
bnRyb2xsZXIgPSBzOyB9Ci0gICAgU2VsZWN0aW9uQ29udHJvbGxlciAqc2VsZWN0aW9uQ29udHJv
bGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uQ29udHJvbGxlcjsgfQotICAgIHZvaWQg
c2V0U2VsZWN0aW9uQ29udHJvbGxlcihTZWxlY3Rpb25Db250cm9sbGVyICpzKSB7IG1fc2VsZWN0
aW9uQ29udHJvbGxlciA9IHM7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQo
RXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOwotICAgIAotcHJpdmF0ZToKLSAgICBTZWxlY3Rp
b25Db250cm9sbGVyICptX3NlbGVjdGlvbkNvbnRyb2xsZXI7Ci19OwotCiBjbGFzcyBTZWxlY3Rp
b25Db250cm9sbGVyCiB7CiBwdWJsaWM6CkBAIC02MSwzMiArNDUsMzAgQEAKICNkZWZpbmUgU0VM
X0RFRkFVTFRfQUZGSU5JVFkgRE9XTlNUUkVBTQogCiAgICAgU2VsZWN0aW9uQ29udHJvbGxlcigp
OwotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgU2VsZWN0aW9uICZzZWwpOwotICAgIFNl
bGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgUmFuZ2UgKiwgRUFmZmluaXR5IGFmZmluaXR5KTsKLSAg
ICBTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKLSAgICBTZWxl
Y3Rpb25Db250cm9sbGVyKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24gJik7Ci0gICAgU2VsZWN0aW9uQ29udHJvbGxlcihjb25zdCBQb3NpdGlvbiAmLCBFQWZm
aW5pdHkgYWZmaW5pdHkpOwotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgUG9zaXRpb24g
JiwgY29uc3QgUG9zaXRpb24gJiwgRUFmZmluaXR5KTsKLSAgICBTZWxlY3Rpb25Db250cm9sbGVy
KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIgJik7CisgICAgU2VsZWN0aW9uQ29udHJvbGxlcihj
b25zdCBTZWxlY3Rpb24mKTsKKyAgICBTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFJhbmdlKiwg
RUFmZmluaXR5KTsKKyAgICBTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFZpc2libGVQb3NpdGlv
biYpOworICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgU2VsZWN0aW9uQ29udHJvbGxlcihjb25zdCBQb3Np
dGlvbiYsIEVBZmZpbml0eSk7CisgICAgU2VsZWN0aW9uQ29udHJvbGxlcihjb25zdCBQb3NpdGlv
biYsIGNvbnN0IFBvc2l0aW9uJiwgRUFmZmluaXR5KTsKKyAgICBTZWxlY3Rpb25Db250cm9sbGVy
KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXImKTsKICAgICAKLSAgICB+U2VsZWN0aW9uQ29udHJv
bGxlcigpOworICAgIFNlbGVjdGlvbkNvbnRyb2xsZXImIG9wZXJhdG9yPShjb25zdCBTZWxlY3Rp
b25Db250cm9sbGVyJik7CisgICAgU2VsZWN0aW9uQ29udHJvbGxlciYgb3BlcmF0b3I9KGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcikgeyBtb3ZlVG8ocik7IHJldHVybiAqdGhpczsgfQogCi0gICAg
U2VsZWN0aW9uQ29udHJvbGxlciAmb3BlcmF0b3I9KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIg
Jm8pOwotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIgJm9wZXJhdG9yPShjb25zdCBWaXNpYmxlUG9z
aXRpb24gJnIpIHsgbW92ZVRvKHIpOyByZXR1cm4gKnRoaXM7IH0KLQogICAgIEVsZW1lbnQqIHJv
b3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWxlY3Rpb24oKS5yb290RWRpdGFi
bGVFbGVtZW50KCk7IH0KICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3QgeyByZXR1
cm4gc2VsZWN0aW9uKCkuaXNDb250ZW50RWRpdGFibGUoKTsgfQogICAgIGJvb2wgaXNDb250ZW50
UmljaGx5RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBzZWxlY3Rpb24oKS5pc0NvbnRlbnRSaWNo
bHlFZGl0YWJsZSgpOyB9CiAKLSAgICB2b2lkIG1vdmVUbyhjb25zdCBSYW5nZSAqLCBFQWZmaW5p
dHkgYWZmaW5pdHkpOwotICAgIHZvaWQgbW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsK
LSAgICB2b2lkIG1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uICYpOwotICAgIHZvaWQgbW92ZVRvKGNvbnN0IFBvc2l0aW9uICYsIEVBZmZpbml0eSk7
Ci0gICAgdm9pZCBtb3ZlVG8oY29uc3QgUG9zaXRpb24gJiwgY29uc3QgUG9zaXRpb24gJiwgRUFm
ZmluaXR5KTsKLSAgICB2b2lkIG1vdmVUbyhjb25zdCBTZWxlY3Rpb25Db250cm9sbGVyICYpOwor
ICAgIHZvaWQgbW92ZVRvKGNvbnN0IFJhbmdlKiwgRUFmZmluaXR5KTsKKyAgICB2b2lkIG1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIG1vdmVUbyhjb25zdCBWaXNpYmxl
UG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIG1vdmVUbyhjb25z
dCBQb3NpdGlvbiYsIEVBZmZpbml0eSk7CisgICAgdm9pZCBtb3ZlVG8oY29uc3QgUG9zaXRpb24m
LCBjb25zdCBQb3NpdGlvbiYsIEVBZmZpbml0eSk7CisgICAgdm9pZCBtb3ZlVG8oY29uc3QgU2Vs
ZWN0aW9uQ29udHJvbGxlciYpOwogCi0gICAgY29uc3QgU2VsZWN0aW9uICZzZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3NlbDsgfQotICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFNlbGVj
dGlvbiAmKTsKKyAgICBjb25zdCBTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2VsOyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uJik7CiAKICAg
ICBTZWxlY3Rpb246OkVTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsLnN0YXRlKCk7
IH0KIApAQCAtOTgsMTAgKzgwLDEwIEBACiAKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICB2b2lk
IHNldEJhc2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwotICAgIHZvaWQgc2V0QmFzZShjb25z
dCBQb3NpdGlvbiAmcG9zLCBFQWZmaW5pdHkgYWZmaW5pdHkpOwotICAgIHZvaWQgc2V0RXh0ZW50
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKLSAgICB2b2lkIHNldEV4dGVudChjb25zdCBQb3Np
dGlvbiAmcG9zLCBFQWZmaW5pdHkgYWZmaW5pdHkpOworICAgIHZvaWQgc2V0QmFzZShjb25zdCBW
aXNpYmxlUG9zaXRpb24mICk7CisgICAgdm9pZCBzZXRCYXNlKGNvbnN0IFBvc2l0aW9uJiwgRUFm
ZmluaXR5KTsKKyAgICB2b2lkIHNldEV4dGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICB2b2lkIHNldEV4dGVudChjb25zdCBQb3NpdGlvbiYsIEVBZmZpbml0eSk7CiAKICAgICBQb3Np
dGlvbiBiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9zZWwuYmFzZSgpOyB9CiAgICAgUG9zaXRpb24g
ZXh0ZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZWwuZXh0ZW50KCk7IH0KQEAgLTEyNywzMyArMTA5
LDMzIEBACiAgICAgCiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgCi0gICAgdm9pZCBu
b2RlV2lsbEJlUmVtb3ZlZChOb2RlICopOworICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9k
ZSopOwogCiAgICAgLy8gU2FmYXJpIFNlbGVjdGlvbiBPYmplY3QgQVBJCi0gICAgTm9kZSAqYmFz
ZU5vZGUoKSBjb25zdCB7IHJldHVybiBtX3NlbC5iYXNlKCkubm9kZSgpOyB9Ci0gICAgTm9kZSAq
ZXh0ZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsLmV4dGVudCgpLm5vZGUoKTsgfQorICAg
IE5vZGUqIGJhc2VOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zZWwuYmFzZSgpLm5vZGUoKTsgfQor
ICAgIE5vZGUqIGV4dGVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX3NlbC5leHRlbnQoKS5ub2Rl
KCk7IH0KICAgICBpbnQgYmFzZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsLmJhc2UoKS5v
ZmZzZXQoKTsgfQogICAgIGludCBleHRlbnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3NlbC5l
eHRlbnQoKS5vZmZzZXQoKTsgfQogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRCYXNlQW5kRXh0ZW50KE5vZGUgKmJhc2VOb2RlLCBpbnQgYmFzZU9mZnNldCwgTm9kZSAqZXh0
ZW50Tm9kZSwgaW50IGV4dGVudE9mZnNldCk7Ci0gICAgdm9pZCBzZXRQb3NpdGlvbihOb2RlICpu
b2RlLCBpbnQgb2Zmc2V0KTsKLSAgICBib29sIG1vZGlmeShjb25zdCBTdHJpbmcgJmFsdGVyU3Ry
aW5nLCBjb25zdCBTdHJpbmcgJmRpcmVjdGlvblN0cmluZywgY29uc3QgU3RyaW5nICZncmFudWxh
cml0eVN0cmluZyk7CisgICAgdm9pZCBzZXRCYXNlQW5kRXh0ZW50KE5vZGUqIGJhc2VOb2RlLCBp
bnQgYmFzZU9mZnNldCwgTm9kZSogZXh0ZW50Tm9kZSwgaW50IGV4dGVudE9mZnNldCk7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihOb2RlKiwgaW50IG9mZnNldCk7CisgICAgYm9vbCBtb2RpZnkoY29u
c3QgU3RyaW5nJiBhbHRlclN0cmluZywgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNv
bnN0IFN0cmluZyYgZ3JhbnVsYXJpdHlTdHJpbmcpOwogICAgIAogICAgIC8vIE1vemlsbGEgU2Vs
ZWN0aW9uIE9iamVjdCBBUEkKICAgICAvLyBJbiBGaXJlRm94LCBhbmNob3IvZm9jdXMgYXJlIHRo
ZSBlcXVhbCB0byB0aGUgc3RhcnQvZW5kIG9mIHRoZSBzZWxlY3Rpb24sCiAgICAgLy8gYnV0IHJl
ZmxlY3QgdGhlIGRpcmVjdGlvbiBpbiB3aGljaCB0aGUgc2VsZWN0aW9uIHdhcyBtYWRlIGJ5IHRo
ZSB1c2VyLiAgVGhhdCBkb2VzCiAgICAgLy8gbm90IG1lYW4gdGhhdCB0aGV5IGFyZSBiYXNlL2V4
dGVudCwgc2luY2UgdGhlIGJhc2UvZXh0ZW50IGRvbid0IHJlZmxlY3QKICAgICAvLyBleHBhbnNp
b24uCi0gICAgTm9kZSAqYW5jaG9yTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsLmlzQmFzZUZp
cnN0KCkgPyBtX3NlbC5zdGFydCgpLm5vZGUoKSA6IG1fc2VsLmVuZCgpLm5vZGUoKTsgfQorICAg
IE5vZGUqIGFuY2hvck5vZGUoKSBjb25zdCB7IHJldHVybiBtX3NlbC5pc0Jhc2VGaXJzdCgpID8g
bV9zZWwuc3RhcnQoKS5ub2RlKCkgOiBtX3NlbC5lbmQoKS5ub2RlKCk7IH0KICAgICBpbnQgYW5j
aG9yT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zZWwuaXNCYXNlRmlyc3QoKSA/IG1fc2VsLnN0
YXJ0KCkub2Zmc2V0KCkgOiBtX3NlbC5lbmQoKS5vZmZzZXQoKTsgfQotICAgIE5vZGUgKmZvY3Vz
Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsLmlzQmFzZUZpcnN0KCkgPyBtX3NlbC5lbmQoKS5u
b2RlKCkgOiBtX3NlbC5zdGFydCgpLm5vZGUoKTsgfQorICAgIE5vZGUqIGZvY3VzTm9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsLmlzQmFzZUZpcnN0KCkgPyBtX3NlbC5lbmQoKS5ub2RlKCkgOiBt
X3NlbC5zdGFydCgpLm5vZGUoKTsgfQogICAgIGludCBmb2N1c09mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsLmlzQmFzZUZpcnN0KCkgPyBtX3NlbC5lbmQoKS5vZmZzZXQoKSA6IG1fc2VsLnN0
YXJ0KCkub2Zmc2V0KCk7IH0KICAgICBib29sIGlzQ29sbGFwc2VkKCkgY29uc3QgeyByZXR1cm4g
IWlzUmFuZ2UoKTsgfQogICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwotICAgIHZvaWQgY29s
bGFwc2UoTm9kZSAqbm9kZSwgaW50IG9mZnNldCk7CisgICAgdm9pZCBjb2xsYXBzZShOb2RlKiwg
aW50IG9mZnNldCk7CiAgICAgdm9pZCBjb2xsYXBzZVRvRW5kKCk7CiAgICAgdm9pZCBjb2xsYXBz
ZVRvU3RhcnQoKTsKLSAgICB2b2lkIGV4dGVuZChOb2RlICpub2RlLCBpbnQgb2Zmc2V0KTsKKyAg
ICB2b2lkIGV4dGVuZChOb2RlKiwgaW50IG9mZnNldCk7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4g
Z2V0UmFuZ2VBdChpbnQgaW5kZXgpIGNvbnN0OwogICAgIC8vdm9pZCBkZWxldGVGcm9tRG9jdW1l
bnQoKTsKICAgICAvL2Jvb2wgY29udGFpbnNOb2RlKE5vZGUgKm5vZGUsIGJvb2wgZW50aXJlbHlD
b250YWluZWQpOwpAQCAtMTY5LDcgKzE1MSw3IEBACiAgICAgLy9UZXh0UmFuZ2UgKmNyZWF0ZVJh
bmdlKCk7CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFy
ICpidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CisgICAgdm9pZCBmb3JtYXRGb3JEZWJ1
Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CiAgICAgdm9pZCBzaG93
VHJlZUZvclRoaXMoKSBjb25zdDsKICNlbmRpZgogCkBAIC0yMDAsMTUgKzE4MiwxNCBAQAogICAg
IGJvb2wgbV9uZWVkc0xheW91dCA6IDE7ICAgICAgIC8vIHRydWUgaWYgdGhlIGNhcmV0IGFuZCBl
eHBlY3RlZFZpc2libGUgcmVjdGFuZ2xlcyBuZWVkIHRvIGJlIGNhbGN1bGF0ZWQKICAgICBib29s
IG1fbW9kaWZ5Qmlhc1NldCA6IDE7ICAgICAvLyB0cnVlIGlmIHRoZSBzZWxlY3Rpb24gaGFzIGJl
ZW4gaG9yaXpvbnRhbGx5IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1v
ZGlmaWVkIHdpdGggRUFsdGVyOjpFWFRFTkQKLSAgICBSZWZQdHI8TXV0YXRpb25MaXN0ZW5lcj4g
bV9tdXRhdGlvbkxpc3RlbmVyOwogfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
ZWxlY3Rpb25Db250cm9sbGVyICZhLCBjb25zdCBTZWxlY3Rpb25Db250cm9sbGVyICZiKQoraW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZWxlY3Rpb25Db250cm9sbGVyJiBhLCBjb25zdCBT
ZWxlY3Rpb25Db250cm9sbGVyJiBiKQogewogICAgIHJldHVybiBhLnN0YXJ0KCkgPT0gYi5zdGFy
dCgpICYmIGEuZW5kKCkgPT0gYi5lbmQoKSAmJiBhLmFmZmluaXR5KCkgPT0gYi5hZmZpbml0eSgp
OwogfQogCi1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIg
JmEsIGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIgJmIpCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXImIGEsIGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIm
IGIpCiB7CiAgICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KSW5kZXg6IGVkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVy
LmNwcAkocmV2aXNpb24gMTM4NzQpCisrKyBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MywxOCArNDMsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgRXZl
bnROYW1lczsKIAotdm9pZCBNdXRhdGlvbkxpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCAqZXZl
bnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKLXsKLSAgICBpZiAoIW1fc2VsZWN0aW9uQ29udHJvbGxl
cikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmIChldmVudC0+dHlwZSgpID09IERPTU5v
ZGVSZW1vdmVkRXZlbnQpCi0gICAgICAgIG1fc2VsZWN0aW9uQ29udHJvbGxlci0+bm9kZVdpbGxC
ZVJlbW92ZWQoZXZlbnQtPnRhcmdldCgpKTsKLX0KLQogU2VsZWN0aW9uQ29udHJvbGxlcjo6U2Vs
ZWN0aW9uQ29udHJvbGxlcigpCiAgICAgOiBtX25lZWRzTGF5b3V0KHRydWUpCi0gICAgLCBtX211
dGF0aW9uTGlzdGVuZXIobmV3IE11dGF0aW9uTGlzdGVuZXIodGhpcykpCiB7CiAgICAgc2V0U2Vs
ZWN0aW9uKFNlbGVjdGlvbigpKTsKIH0KQEAgLTYyLDcgKzUyLDYgQEAKIFNlbGVjdGlvbkNvbnRy
b2xsZXI6OlNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgU2VsZWN0aW9uICZzZWwpCiAgICAgOiBt
X25lZWRzTGF5b3V0KHRydWUpCiAgICAgLCBtX21vZGlmeUJpYXNTZXQoZmFsc2UpCi0gICAgLCBt
X211dGF0aW9uTGlzdGVuZXIobmV3IE11dGF0aW9uTGlzdGVuZXIodGhpcykpCiB7CiAgICAgc2V0
U2VsZWN0aW9uKHNlbCk7CiB9CkBAIC03MCw3ICs1OSw2IEBACiBTZWxlY3Rpb25Db250cm9sbGVy
OjpTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZp
bml0eSkKICAgICA6IG1fbmVlZHNMYXlvdXQodHJ1ZSkKICAgICAsIG1fbW9kaWZ5Qmlhc1NldChm
YWxzZSkKLSAgICAsIG1fbXV0YXRpb25MaXN0ZW5lcihuZXcgTXV0YXRpb25MaXN0ZW5lcih0aGlz
KSkKIHsKICAgICBzZXRTZWxlY3Rpb24oU2VsZWN0aW9uKHBvcywgcG9zLCBhZmZpbml0eSkpOwog
fQpAQCAtNzgsNyArNjYsNiBAQAogU2VsZWN0aW9uQ29udHJvbGxlcjo6U2VsZWN0aW9uQ29udHJv
bGxlcihjb25zdCBSYW5nZSAqciwgRUFmZmluaXR5IGFmZmluaXR5KQogICAgIDogbV9uZWVkc0xh
eW91dCh0cnVlKQogICAgICwgbV9tb2RpZnlCaWFzU2V0KGZhbHNlKQotICAgICwgbV9tdXRhdGlv
bkxpc3RlbmVyKG5ldyBNdXRhdGlvbkxpc3RlbmVyKHRoaXMpKQogewogICAgIHNldFNlbGVjdGlv
bihTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbihyKSwgZW5kUG9zaXRpb24ociksIGFmZmluaXR5KSk7
CiB9CkBAIC04Niw3ICs3Myw2IEBACiBTZWxlY3Rpb25Db250cm9sbGVyOjpTZWxlY3Rpb25Db250
cm9sbGVyKGNvbnN0IFBvc2l0aW9uICZiYXNlLCBjb25zdCBQb3NpdGlvbiAmZXh0ZW50LCBFQWZm
aW5pdHkgYWZmaW5pdHkpCiAgICAgOiBtX25lZWRzTGF5b3V0KHRydWUpCiAgICAgLCBtX21vZGlm
eUJpYXNTZXQoZmFsc2UpCi0gICAgLCBtX211dGF0aW9uTGlzdGVuZXIobmV3IE11dGF0aW9uTGlz
dGVuZXIodGhpcykpCiB7CiAgICAgc2V0U2VsZWN0aW9uKFNlbGVjdGlvbihiYXNlLCBleHRlbnQs
IGFmZmluaXR5KSk7CiB9CkBAIC05NCw3ICs4MCw2IEBACiBTZWxlY3Rpb25Db250cm9sbGVyOjpT
ZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmdmlzaWJsZVBvcykKICAg
ICA6IG1fbmVlZHNMYXlvdXQodHJ1ZSkKICAgICAsIG1fbW9kaWZ5Qmlhc1NldChmYWxzZSkKLSAg
ICAsIG1fbXV0YXRpb25MaXN0ZW5lcihuZXcgTXV0YXRpb25MaXN0ZW5lcih0aGlzKSkKIHsKICAg
ICBzZXRTZWxlY3Rpb24oU2VsZWN0aW9uKHZpc2libGVQb3MuZGVlcEVxdWl2YWxlbnQoKSwgdmlz
aWJsZVBvcy5kZWVwRXF1aXZhbGVudCgpLCB2aXNpYmxlUG9zLmFmZmluaXR5KCkpKTsKIH0KQEAg
LTEwMiw3ICs4Nyw2IEBACiBTZWxlY3Rpb25Db250cm9sbGVyOjpTZWxlY3Rpb25Db250cm9sbGVy
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRl
bnQpCiAgICAgOiBtX25lZWRzTGF5b3V0KHRydWUpCiAgICAgLCBtX21vZGlmeUJpYXNTZXQoZmFs
c2UpCi0gICAgLCBtX211dGF0aW9uTGlzdGVuZXIobmV3IE11dGF0aW9uTGlzdGVuZXIodGhpcykp
CiB7CiAgICAgc2V0U2VsZWN0aW9uKFNlbGVjdGlvbihiYXNlLmRlZXBFcXVpdmFsZW50KCksIGV4
dGVudC5kZWVwRXF1aXZhbGVudCgpLCBiYXNlLmFmZmluaXR5KCkpKTsKIH0KQEAgLTExMCw3ICs5
NCw2IEBACiBTZWxlY3Rpb25Db250cm9sbGVyOjpTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFNl
bGVjdGlvbkNvbnRyb2xsZXIgJm8pCiAgICAgOiBtX25lZWRzTGF5b3V0KG8ubV9uZWVkc0xheW91
dCkKICAgICAsIG1fbW9kaWZ5Qmlhc1NldChvLm1fbW9kaWZ5Qmlhc1NldCkKLSAgICAsIG1fbXV0
YXRpb25MaXN0ZW5lcihuZXcgTXV0YXRpb25MaXN0ZW5lcih0aGlzKSkKIHsKICAgICBzZXRTZWxl
Y3Rpb24oby5tX3NlbCk7IAogICAgIC8vIE9ubHkgY29weSB0aGUgY29vcmRpbmF0ZXMgb3ZlciBp
ZiB0aGUgb3RoZXIgb2JqZWN0CkBAIC0xMjQsMTQgKzEwNyw2IEBACiAgICAgfQogfQogCi1TZWxl
Y3Rpb25Db250cm9sbGVyOjp+U2VsZWN0aW9uQ29udHJvbGxlcigpCi17Ci0gICAgaWYgKCFpc05v
bmUoKSkgewotICAgICAgICBEb2N1bWVudCAqZG9jID0gbV9zZWwuc3RhcnQoKS5ub2RlKCktPmRv
Y3VtZW50KCk7Ci0gICAgICAgIGRvYy0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihET01Ob2RlUmVtb3Zl
ZEV2ZW50LCBtX211dGF0aW9uTGlzdGVuZXIuZ2V0KCksIGZhbHNlKTsKLSAgICB9Ci19Ci0KIFNl
bGVjdGlvbkNvbnRyb2xsZXIgJlNlbGVjdGlvbkNvbnRyb2xsZXI6Om9wZXJhdG9yPShjb25zdCBT
ZWxlY3Rpb25Db250cm9sbGVyICZvKQogewogICAgIHNldFNlbGVjdGlvbihvLm1fc2VsKTsKQEAg
LTE4OCwxOSArMTYzLDggQEAKICAgICBtX25lZWRzTGF5b3V0ID0gdHJ1ZTsKIH0KIAotdm9pZCBT
ZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uICZuZXdTZWxl
Y3Rpb24pCit2b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OnNldFNlbGVjdGlvbihjb25zdCBTZWxl
Y3Rpb24mIG5ld1NlbGVjdGlvbikKIHsKLSAgICBTZWxlY3Rpb24gb2xkU2VsZWN0aW9uID0gbV9z
ZWw7Ci0gICAgRG9jdW1lbnQgKm9sZERvY3VtZW50ID0gb2xkU2VsZWN0aW9uLnN0YXJ0KCkubm9k
ZSgpID8gb2xkU2VsZWN0aW9uLnN0YXJ0KCkubm9kZSgpLT5kb2N1bWVudCgpIDogMDsKLSAgICBE
b2N1bWVudCAqbmV3RG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uc3RhcnQoKS5ub2RlKCkgPyBuZXdT
ZWxlY3Rpb24uc3RhcnQoKS5ub2RlKCktPmRvY3VtZW50KCkgOiAwOwotICAgIAotICAgIGlmIChv
bGREb2N1bWVudCAhPSBuZXdEb2N1bWVudCkgewotICAgICAgICBpZiAob2xkRG9jdW1lbnQpCi0g
ICAgICAgICAgICBvbGREb2N1bWVudC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihET01Ob2RlUmVtb3Zl
ZEV2ZW50LCBtX211dGF0aW9uTGlzdGVuZXIuZ2V0KCksIGZhbHNlKTsKLSAgICAgICAgaWYgKG5l
d0RvY3VtZW50KQotICAgICAgICAgICAgbmV3RG9jdW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIoRE9N
Tm9kZVJlbW92ZWRFdmVudCwgbV9tdXRhdGlvbkxpc3RlbmVyLmdldCgpLCBmYWxzZSk7Ci0gICAg
fQotICAgIAogICAgIG1fc2VsID0gbmV3U2VsZWN0aW9uOwogfQogCkBAIC0yMDksMTAgKzE3Mywx
MCBAQAogICAgIGlmIChpc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIE5vZGUg
KmJhc2UgPSBtX3NlbC5iYXNlKCkubm9kZSgpOwotICAgIE5vZGUgKmV4dGVudCA9IG1fc2VsLmV4
dGVudCgpLm5vZGUoKTsKLSAgICBOb2RlICpzdGFydCA9IG1fc2VsLnN0YXJ0KCkubm9kZSgpOwot
ICAgIE5vZGUgKmVuZCA9IG1fc2VsLmVuZCgpLm5vZGUoKTsKKyAgICBOb2RlKiBiYXNlID0gbV9z
ZWwuYmFzZSgpLm5vZGUoKTsKKyAgICBOb2RlKiBleHRlbnQgPSBtX3NlbC5leHRlbnQoKS5ub2Rl
KCk7CisgICAgTm9kZSogc3RhcnQgPSBtX3NlbC5zdGFydCgpLm5vZGUoKTsKKyAgICBOb2RlKiBl
bmQgPSBtX3NlbC5lbmQoKS5ub2RlKCk7CiAgICAgCiAgICAgYm9vbCBiYXNlUmVtb3ZlZCA9IG5v
ZGUgPT0gYmFzZSB8fCBiYXNlLT5pc0FuY2VzdG9yKG5vZGUpOwogICAgIGJvb2wgZXh0ZW50UmVt
b3ZlZCA9IG5vZGUgPT0gZXh0ZW50IHx8IGV4dGVudC0+aXNBbmNlc3Rvcihub2RlKTsKQEAgLTIy
MiwxMSArMTg2LDEzIEBACiAgICAgaWYgKHN0YXJ0UmVtb3ZlZCB8fCBlbmRSZW1vdmVkKSB7CiAg
ICAgCiAgICAgICAgIC8vIEZJWE1FICg2NDk4KTogVGhpcyBkb2Vzbid0IG5vdGlmeSB0aGUgZWRp
dGluZyBkZWxlZ2F0ZSBvZiBhIHNlbGVjdGlvbiBjaGFuZ2UuCisKICAgICAgICAgLy8gRklYTUU6
IFdoZW4gZW5kcG9pbnRzIGFyZSByZW1vdmVkLCB3ZSBzaG91bGQganVzdCBhbHRlciB0aGUgc2Vs
ZWN0aW9uLCBpbnN0ZWFkIG9mIGJsb3dpbmcgaXQgYXdheS4KKwogICAgICAgICAvLyBGSVhNRTog
VGhlIFNlbGVjdGlvbkNvbnRyb2xsZXIgc2hvdWxkIGJlIHJlc3BvbnNpYmxlIGZvciBzY2hlZHVs
aW5nIGEgcmVwYWludCwgCiAgICAgICAgIC8vIGJ1dCBpdCBjYW4ndCBkbyBhIHByb3BlciBqb2Ig
b2YgaXQgdW50aWwgaXQgaGFuZGxlcyB0aGUgb3RoZXIgdHlwZXMgb2YgRE9NIG11dGF0aW9ucy4K
ICAgICAgICAgLy8gRm9yIG5vdywgd2UnbGwgY29udGludWUgdG8gbGV0IFJlbmRlck9iamVjdHMg
aGFuZGxlIGl0IHdoZW4gdGhleSBhcmUgZGVzdHJveWVkLgotICAgICAgICAKKwogICAgICAgICBz
ZXRTZWxlY3Rpb24oU2VsZWN0aW9uKCkpOwogICAgICAgICAKICAgICB9IGVsc2UgaWYgKGJhc2VS
ZW1vdmVkIHx8IGV4dGVudFJlbW92ZWQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7722</attachid>
            <date>2006-04-14 19:31:24 -0700</date>
            <delta_ts>2006-04-14 19:31:24 -0700</delta_ts>
            <desc>reduction</desc>
            <filename>input-empty-on-focus.html</filename>
            <type>text/html</type>
            <size>146</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">PGRpdj48aW1nIHNyYz0iaHR0cDovL3d3dy5nb29nbGUuY29tL2ludGwvZW4vaW1hZ2VzL2xvZ28u
Z2lmIj48L2Rpdj4KPGRpdj48aW5wdXQgb25mb2N1cz0idGhpcy52YWx1ZSA9ICcnIiB2YWx1ZT0i
ZHJvcCBpbWFnZSBoZXJlIGdvIGJvb20iPjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7738</attachid>
            <date>2006-04-15 19:16:19 -0700</date>
            <delta_ts>2006-04-16 15:42:39 -0700</delta_ts>
            <desc>patch with detailed change log, manual test</desc>
            <filename>InputEmptyOnFocusPatch.txt</filename>
            <type>text/plain</type>
            <size>21159</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGh0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxMzg4MCkKKysrIGh0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTYsMzcgKzI5Niw1MiBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7CisgICAgaWYgKGNoaWxkICYmICFjaGlsZC0+
bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSB3aGVyZSB0aGUg
ZWxlbWVudCBoYXMgZXhhY3RseSBvbmUgdGV4dCBub2RlIGFzIGEgY2hpbGQsCisgICAgICAgIC8v
IGFuZCB3aGF0IHdlJ3JlIHJlcGxhY2luZyB3aXRoIGlzIGFsc28gZXhhY3RseSBvbmUgdGV4dCBu
b2RlLgorICAgICAgICBpZiAoY2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAgICAgICAgICAgTm9k
ZSogZnJhZ21lbnRDaGlsZCA9IGZyYWdtZW50LT5maXJzdENoaWxkKCk7CisgICAgICAgICAgICBp
ZiAoZnJhZ21lbnRDaGlsZCAmJiAhZnJhZ21lbnRDaGlsZC0+bmV4dFNpYmxpbmcoKSAmJiBmcmFn
bWVudENoaWxkLT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxU
ZXh0Kj4oY2hpbGQpLT5zZXREYXRhKHN0YXRpY19jYXN0PFRleHQqPihmcmFnbWVudENoaWxkKS0+
ZGF0YSgpLCBlYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugd2hlcmUgdGhlIGVsZW1lbnQg
aGFzIGV4YWN0bHkgb25lIGNoaWxkLgorICAgICAgICByZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVs
ZWFzZSgpLCBjaGlsZCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgcmVtb3Zl
Q2hpbGRyZW4oKTsKICAgICBhcHBlbmRDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKIH0K
IAogdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyAmaHRtbCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgTm9kZSAqcCA9IHBhcmVudCgpOworICAgIE5vZGUqIHAg
PSBwYXJlbnQoKTsKICAgICBpZiAoIXAgfHwgIXAtPmlzSFRNTEVsZW1lbnQoKSkgewogICAgICAg
ICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBIVE1MRWxlbWVudCAqcGFyZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQgKj4o
cCk7CisKKyAgICBIVE1MRWxlbWVudCogcGFyZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQq
PihwKTsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBwYXJlbnQtPmNy
ZWF0ZUNvbnRleHR1YWxGcmFnbWVudChodG1sKTsKLQogICAgIGlmICghZnJhZ21lbnQpIHsKICAg
ICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgCisKICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNl
KCksIHRoaXMsIGVjKTsKIH0KIAotCi12b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29u
c3QgU3RyaW5nICZ0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgSFRNTEVsZW1lbnQ6OnNl
dElubmVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IC8vIGZvbGxvd2luZyB0aGUgSUUgc3BlY3MuCisgICAgLy8gZm9sbG93IHRoZSBJRSBzcGVjcyBh
Ym91dCB3aGVuIHRoaXMgaXMgYWxsb3dlZAogICAgIGlmIChlbmRUYWdSZXF1aXJlbWVudCgpID09
IFRhZ1N0YXR1c0ZvcmJpZGRlbikgewogICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIGlmIChoYXNMb2NhbE5hbWUo
Y29sVGFnKSB8fCBoYXNMb2NhbE5hbWUoY29sZ3JvdXBUYWcpIHx8IGhhc0xvY2FsTmFtZShmcmFt
ZXNldFRhZykgfHwKICAgICAgICAgaGFzTG9jYWxOYW1lKGhlYWRUYWcpIHx8IGhhc0xvY2FsTmFt
ZShodG1sVGFnKSB8fCBoYXNMb2NhbE5hbWUodGFibGVUYWcpIHx8IAogICAgICAgICBoYXNMb2Nh
bE5hbWUodGJvZHlUYWcpIHx8IGhhc0xvY2FsTmFtZSh0Zm9vdFRhZykgfHwgaGFzTG9jYWxOYW1l
KHRoZWFkVGFnKSB8fApAQCAtMzM1LDE4ICszNTAsMzAgQEAKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOworICAgIGlmIChjaGlsZCAmJiAh
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugd2hl
cmUgdGhlIGVsZW1lbnQgYWxyZWFkeSBoYXMgZXhhY3RseSBvbmUgdGV4dCBub2RlIGFzIGEgY2hp
bGQuCisgICAgICAgIGlmIChjaGlsZC0+aXNUZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxUZXh0Kj4oY2hpbGQpLT5zZXREYXRhKHRleHQsIGVjKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIHdoZXJlIHRo
ZSBlbGVtZW50IGhhcyBleGFjdGx5IG9uZSBjaGlsZC4KKyAgICAgICAgcmVwbGFjZUNoaWxkKG5l
dyBUZXh0KGRvY3VtZW50KCksIHRleHQpLCBjaGlsZCwgZWMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICBhcHBlbmRDaGlsZChuZXcgVGV4dChk
b2N1bWVudCgpLCB0ZXh0KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRl
eHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyBmb2xs
b3dpbmcgdGhlIElFIHNwZWNzLgorICAgIC8vIGZvbGxvdyB0aGUgSUUgc3BlY3MgYWJvdXQgd2hl
biB0aGlzIGlzIGFsbG93ZWQKICAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0
dXNGb3JiaWRkZW4pIHsKICAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KICAgICBpZiAoaGFzTG9jYWxOYW1lKGNvbFRhZykg
fHwgaGFzTG9jYWxOYW1lKGNvbGdyb3VwVGFnKSB8fCBoYXNMb2NhbE5hbWUoZnJhbWVzZXRUYWcp
IHx8CiAgICAgICAgIGhhc0xvY2FsTmFtZShoZWFkVGFnKSB8fCBoYXNMb2NhbE5hbWUoaHRtbFRh
ZykgfHwgaGFzTG9jYWxOYW1lKHRhYmxlVGFnKSB8fCAKICAgICAgICAgaGFzTG9jYWxOYW1lKHRi
b2R5VGFnKSB8fCBoYXNMb2NhbE5hbWUodGZvb3RUYWcpIHx8IGhhc0xvY2FsTmFtZSh0aGVhZFRh
ZykgfHwKQEAgLTM1NSw4ICszODIsNyBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Tm9kZSAqcGFyZW50ID0gcGFyZW50Tm9kZSgpOwotCisgICAgTm9kZSogcGFyZW50ID0gcGFyZW50
Tm9kZSgpOwogICAgIGlmICghcGFyZW50KSB7CiAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwogICAgICAgICByZXR1cm47CkBAIC0zNjksOSArMzk1LDkgQEAKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gaXMgcHJldmlvdXMgbm9kZSBhIHRleHQgbm9kZT8gaWYgc28s
IG1lcmdlIGludG8gaXQKLSAgICBOb2RlICpwcmV2ID0gdC0+cHJldmlvdXNTaWJsaW5nKCk7Cisg
ICAgTm9kZSogcHJldiA9IHQtPnByZXZpb3VzU2libGluZygpOwogICAgIGlmIChwcmV2ICYmIHBy
ZXYtPmlzVGV4dE5vZGUoKSkgewotICAgICAgICBUZXh0ICp0ZXh0UHJldiA9IHN0YXRpY19jYXN0
PFRleHQgKj4ocHJldik7CisgICAgICAgIFRleHQqIHRleHRQcmV2ID0gc3RhdGljX2Nhc3Q8VGV4
dCo+KHByZXYpOwogICAgICAgICB0ZXh0UHJldi0+YXBwZW5kRGF0YSh0LT5kYXRhKCksIGVjKTsK
ICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzgyLDkgKzQwOCw5IEBA
CiAgICAgfQogCiAgICAgLy8gaXMgbmV4dCBub2RlIGEgdGV4dCBub2RlPyBpZiBzbywgbWVyZ2Ug
aXQgaW4KLSAgICBOb2RlICpuZXh0ID0gdC0+bmV4dFNpYmxpbmcoKTsKKyAgICBOb2RlKiBuZXh0
ID0gdC0+bmV4dFNpYmxpbmcoKTsKICAgICBpZiAobmV4dCAmJiBuZXh0LT5pc1RleHROb2RlKCkp
IHsKLSAgICAgICAgVGV4dCAqdGV4dE5leHQgPSBzdGF0aWNfY2FzdDxUZXh0ICo+KG5leHQpOwor
ICAgICAgICBUZXh0KiB0ZXh0TmV4dCA9IHN0YXRpY19jYXN0PFRleHQqPihuZXh0KTsKICAgICAg
ICAgdC0+YXBwZW5kRGF0YSh0ZXh0TmV4dC0+ZGF0YSgpLCBlYyk7CiAgICAgICAgIGlmIChlYykK
ICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IG1hbnVhbC10ZXN0cy9pbnB1dC1lbXB0eS1vbi1m
b2N1cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIG1hbnVhbC10ZXN0cy9pbnB1dC1lbXB0eS1vbi1mb2N1
cy5odG1sCShyZXZpc2lvbiAwKQorKysgbWFudWFsLXRlc3RzL2lucHV0LWVtcHR5LW9uLWZvY3Vz
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorPGRpdj48aW1nIHdpZHRoPSIyMDAi
IGhlaWdodD0iMjAwIiBzcmM9InJlc291cmNlcy8yMDB4MjAwLnBuZyI+PC9kaXY+Cis8ZGl2Pjxp
bnB1dCBvbmZvY3VzPSJ0aGlzLnZhbHVlID0gJyciIHZhbHVlPSJkcm9wIGltYWdlIGhlcmUgZ28g
Ym9vbSI+PC9kaXY+Cis8cD5EcmFnIHRoZSBpbWFnZSBhYm92ZSBkb3duIGludG8gdGhlIHRleHQg
ZmllbGQuCitJZiB0aGUgdGVzdCBzdWNjZWVkcyB0aGVyZSB3aWxsIGJlIG5vIGNyYXNoIGFuZCB5
b3UnbGwgZW5kIHVwIHdpdGggYW4gZW1wdHkgdGV4dCBmaWVsZCB3aXRoIGEgYmxpbmtpbmcgY2Fy
ZXQuCitJdCdzIGFyZ3VhYmx5IGEgYnVnIHRoYXQgdGhlIHRleHQgZmllbGQgYWNjZXB0cyBhbiBp
bWFnZSBhdCBhbGwsIHNvIHNvbWUgZGF5IHdlIG1pZ2h0IGZpeCB0aGF0IGFuZCBtYWtlIHRoaXMK
K3Rlc3Qgb2Jzb2xldGUuIE1heWJlIHdlIGNhbiBmaW5kIHNvbWUgb3RoZXIgd2F5IHRvIHRlc3Qg
dGhlIHNhbWUgY29kZSBwYXRoLjwvcD4KClByb3BlcnR5IGNoYW5nZXMgb246IG1hbnVhbC10ZXN0
cy9pbnB1dC1lbXB0eS1vbi1mb2N1cy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIHRleHQvaHRtbApOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDog
ZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAxMzg4MCkKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRU
eXBlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVy
LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMjE3NCw2ICsyMTc1LDEwIEBACiAKIHZvaWQgRG9jdW1l
bnQ6Om5vdGlmeUJlZm9yZU5vZGVSZW1vdmFsKE5vZGUgKm4pCiB7CisgICAgaWYgKEZyYW1lKiBm
ID0gZnJhbWUoKSkgeworICAgICAgICBmLT5zZWxlY3Rpb24oKS5ub2RlV2lsbEJlUmVtb3ZlZChu
KTsKKyAgICAgICAgY29uc3RfY2FzdDxTZWxlY3Rpb25Db250cm9sbGVyJj4oZi0+ZHJhZ0NhcmV0
KCkpLm5vZGVXaWxsQmVSZW1vdmVkKG4pOworICAgIH0KICAgICBEZXByZWNhdGVkUHRyTGlzdEl0
ZXJhdG9yPE5vZGVJdGVyYXRvcj4gaXQobV9ub2RlSXRlcmF0b3JzKTsKICAgICBmb3IgKDsgaXQu
Y3VycmVudCgpOyArK2l0KQogICAgICAgICBpdC5jdXJyZW50KCktPm5vdGlmeUJlZm9yZU5vZGVS
ZW1vdmFsKG4pOwpJbmRleDogZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmgJKHJldmlzaW9uIDEzODgwKQorKysg
ZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2
LDYgQEAKICNpZm5kZWYgS0hUTUxfRURJVElOR19TRUxFQ1RJT05DT05UUk9MTEVSX0gKICNkZWZp
bmUgS0hUTUxfRURJVElOR19TRUxFQ1RJT05DT05UUk9MTEVSX0gKIAotI2luY2x1ZGUgIkV2ZW50
TGlzdGVuZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTM3LDIyICszNiw3IEBACiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247Ci1jbGFz
cyBTZWxlY3Rpb25Db250cm9sbGVyOwogCi1jbGFzcyBNdXRhdGlvbkxpc3RlbmVyIDogcHVibGlj
IEV2ZW50TGlzdGVuZXIKLXsKLXB1YmxpYzoKLSAgICBNdXRhdGlvbkxpc3RlbmVyKCkgeyBtX3Nl
bGVjdGlvbkNvbnRyb2xsZXIgPSAwOyB9Ci0gICAgTXV0YXRpb25MaXN0ZW5lcihTZWxlY3Rpb25D
b250cm9sbGVyICpzKSB7IG1fc2VsZWN0aW9uQ29udHJvbGxlciA9IHM7IH0KLSAgICBTZWxlY3Rp
b25Db250cm9sbGVyICpzZWxlY3Rpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZWxl
Y3Rpb25Db250cm9sbGVyOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3Rpb25Db250cm9sbGVyKFNlbGVj
dGlvbkNvbnRyb2xsZXIgKnMpIHsgbV9zZWxlY3Rpb25Db250cm9sbGVyID0gczsgfQotICAgIAot
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7
Ci0gICAgCi1wcml2YXRlOgotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIgKm1fc2VsZWN0aW9uQ29u
dHJvbGxlcjsKLX07Ci0KIGNsYXNzIFNlbGVjdGlvbkNvbnRyb2xsZXIKIHsKIHB1YmxpYzoKQEAg
LTYxLDMyICs0NSwzMCBAQAogI2RlZmluZSBTRUxfREVGQVVMVF9BRkZJTklUWSBET1dOU1RSRUFN
CiAKICAgICBTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgU2VsZWN0aW9uQ29udHJvbGxlcihj
b25zdCBTZWxlY3Rpb24gJnNlbCk7Ci0gICAgU2VsZWN0aW9uQ29udHJvbGxlcihjb25zdCBSYW5n
ZSAqLCBFQWZmaW5pdHkgYWZmaW5pdHkpOwotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICYpOwotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKLSAgICBTZWxlY3Rpb25Db250
cm9sbGVyKGNvbnN0IFBvc2l0aW9uICYsIEVBZmZpbml0eSBhZmZpbml0eSk7Ci0gICAgU2VsZWN0
aW9uQ29udHJvbGxlcihjb25zdCBQb3NpdGlvbiAmLCBjb25zdCBQb3NpdGlvbiAmLCBFQWZmaW5p
dHkpOwotICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciAm
KTsKKyAgICBTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFNlbGVjdGlvbiYpOworICAgIFNlbGVj
dGlvbkNvbnRyb2xsZXIoY29uc3QgUmFuZ2UqLCBFQWZmaW5pdHkpOworICAgIFNlbGVjdGlvbkNv
bnRyb2xsZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgU2VsZWN0aW9uQ29udHJvbGxl
cihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICBT
ZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFBvc2l0aW9uJiwgRUFmZmluaXR5KTsKKyAgICBTZWxl
Y3Rpb25Db250cm9sbGVyKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBFQWZmaW5p
dHkpOworICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciYp
OwogICAgIAotICAgIH5TZWxlY3Rpb25Db250cm9sbGVyKCk7CisgICAgU2VsZWN0aW9uQ29udHJv
bGxlciYgb3BlcmF0b3I9KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXImKTsKKyAgICBTZWxlY3Rp
b25Db250cm9sbGVyJiBvcGVyYXRvcj0oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiByKSB7IG1vdmVU
byhyKTsgcmV0dXJuICp0aGlzOyB9CiAKLSAgICBTZWxlY3Rpb25Db250cm9sbGVyICZvcGVyYXRv
cj0oY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciAmbyk7Ci0gICAgU2VsZWN0aW9uQ29udHJvbGxl
ciAmb3BlcmF0b3I9KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcikgeyBtb3ZlVG8ocik7IHJldHVy
biAqdGhpczsgfQotCiAgICAgRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsgfQogICAgIGJvb2wgaXND
b250ZW50RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBzZWxlY3Rpb24oKS5pc0NvbnRlbnRFZGl0
YWJsZSgpOyB9CiAgICAgYm9vbCBpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0IHsgcmV0
dXJuIHNlbGVjdGlvbigpLmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCk7IH0KIAotICAgIHZvaWQg
bW92ZVRvKGNvbnN0IFJhbmdlICosIEVBZmZpbml0eSBhZmZpbml0eSk7Ci0gICAgdm9pZCBtb3Zl
VG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwotICAgIHZvaWQgbW92ZVRvKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJik7Ci0gICAgdm9pZCBtb3ZlVG8o
Y29uc3QgUG9zaXRpb24gJiwgRUFmZmluaXR5KTsKLSAgICB2b2lkIG1vdmVUbyhjb25zdCBQb3Np
dGlvbiAmLCBjb25zdCBQb3NpdGlvbiAmLCBFQWZmaW5pdHkpOwotICAgIHZvaWQgbW92ZVRvKGNv
bnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIgJik7CisgICAgdm9pZCBtb3ZlVG8oY29uc3QgUmFuZ2Uq
LCBFQWZmaW5pdHkpOworICAgIHZvaWQgbW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwor
ICAgIHZvaWQgbW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworICAgIHZvaWQgbW92ZVRvKGNvbnN0IFBvc2l0aW9uJiwgRUFmZmluaXR5KTsKKyAg
ICB2b2lkIG1vdmVUbyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgRUFmZmluaXR5
KTsKKyAgICB2b2lkIG1vdmVUbyhjb25zdCBTZWxlY3Rpb25Db250cm9sbGVyJik7CiAKLSAgICBj
b25zdCBTZWxlY3Rpb24gJnNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsOyB9Ci0gICAg
dm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uICYpOworICAgIGNvbnN0IFNlbGVjdGlv
biYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWw7IH0KKyAgICB2b2lkIHNldFNlbGVj
dGlvbihjb25zdCBTZWxlY3Rpb24mKTsKIAogICAgIFNlbGVjdGlvbjo6RVN0YXRlIHN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWwuc3RhdGUoKTsgfQogCkBAIC05OCwxMCArODAsMTAgQEAKIAog
ICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIHZvaWQgc2V0QmFzZShjb25zdCBWaXNpYmxlUG9zaXRp
b24gJik7Ci0gICAgdm9pZCBzZXRCYXNlKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBh
ZmZpbml0eSk7Ci0gICAgdm9pZCBzZXRFeHRlbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwot
ICAgIHZvaWQgc2V0RXh0ZW50KGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZpbml0
eSk7CisgICAgdm9pZCBzZXRCYXNlKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgKTsKKyAgICB2b2lk
IHNldEJhc2UoY29uc3QgUG9zaXRpb24mLCBFQWZmaW5pdHkpOworICAgIHZvaWQgc2V0RXh0ZW50
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgc2V0RXh0ZW50KGNvbnN0IFBvc2l0
aW9uJiwgRUFmZmluaXR5KTsKIAogICAgIFBvc2l0aW9uIGJhc2UoKSBjb25zdCB7IHJldHVybiBt
X3NlbC5iYXNlKCk7IH0KICAgICBQb3NpdGlvbiBleHRlbnQoKSBjb25zdCB7IHJldHVybiBtX3Nl
bC5leHRlbnQoKTsgfQpAQCAtMTI3LDMzICsxMDksMzMgQEAKICAgICAKICAgICBGcmFtZSogZnJh
bWUoKSBjb25zdDsKICAgICAKLSAgICB2b2lkIG5vZGVXaWxsQmVSZW1vdmVkKE5vZGUgKik7Cisg
ICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlKik7CiAKICAgICAvLyBTYWZhcmkgU2VsZWN0
aW9uIE9iamVjdCBBUEkKLSAgICBOb2RlICpiYXNlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vs
LmJhc2UoKS5ub2RlKCk7IH0KLSAgICBOb2RlICpleHRlbnROb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9zZWwuZXh0ZW50KCkubm9kZSgpOyB9CisgICAgTm9kZSogYmFzZU5vZGUoKSBjb25zdCB7IHJl
dHVybiBtX3NlbC5iYXNlKCkubm9kZSgpOyB9CisgICAgTm9kZSogZXh0ZW50Tm9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsLmV4dGVudCgpLm5vZGUoKTsgfQogICAgIGludCBiYXNlT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9zZWwuYmFzZSgpLm9mZnNldCgpOyB9CiAgICAgaW50IGV4dGVudE9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsLmV4dGVudCgpLm9mZnNldCgpOyB9CiAgICAgU3Ry
aW5nIHR5cGUoKSBjb25zdDsKLSAgICB2b2lkIHNldEJhc2VBbmRFeHRlbnQoTm9kZSAqYmFzZU5v
ZGUsIGludCBiYXNlT2Zmc2V0LCBOb2RlICpleHRlbnROb2RlLCBpbnQgZXh0ZW50T2Zmc2V0KTsK
LSAgICB2b2lkIHNldFBvc2l0aW9uKE5vZGUgKm5vZGUsIGludCBvZmZzZXQpOwotICAgIGJvb2wg
bW9kaWZ5KGNvbnN0IFN0cmluZyAmYWx0ZXJTdHJpbmcsIGNvbnN0IFN0cmluZyAmZGlyZWN0aW9u
U3RyaW5nLCBjb25zdCBTdHJpbmcgJmdyYW51bGFyaXR5U3RyaW5nKTsKKyAgICB2b2lkIHNldEJh
c2VBbmRFeHRlbnQoTm9kZSogYmFzZU5vZGUsIGludCBiYXNlT2Zmc2V0LCBOb2RlKiBleHRlbnRO
b2RlLCBpbnQgZXh0ZW50T2Zmc2V0KTsKKyAgICB2b2lkIHNldFBvc2l0aW9uKE5vZGUqLCBpbnQg
b2Zmc2V0KTsKKyAgICBib29sIG1vZGlmeShjb25zdCBTdHJpbmcmIGFsdGVyU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywgY29uc3QgU3RyaW5nJiBncmFudWxhcml0eVN0cmlu
Zyk7CiAgICAgCiAgICAgLy8gTW96aWxsYSBTZWxlY3Rpb24gT2JqZWN0IEFQSQogICAgIC8vIElu
IEZpcmVGb3gsIGFuY2hvci9mb2N1cyBhcmUgdGhlIGVxdWFsIHRvIHRoZSBzdGFydC9lbmQgb2Yg
dGhlIHNlbGVjdGlvbiwKICAgICAvLyBidXQgcmVmbGVjdCB0aGUgZGlyZWN0aW9uIGluIHdoaWNo
IHRoZSBzZWxlY3Rpb24gd2FzIG1hZGUgYnkgdGhlIHVzZXIuICBUaGF0IGRvZXMKICAgICAvLyBu
b3QgbWVhbiB0aGF0IHRoZXkgYXJlIGJhc2UvZXh0ZW50LCBzaW5jZSB0aGUgYmFzZS9leHRlbnQg
ZG9uJ3QgcmVmbGVjdAogICAgIC8vIGV4cGFuc2lvbi4KLSAgICBOb2RlICphbmNob3JOb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWwuaXNCYXNlRmlyc3QoKSA/IG1fc2VsLnN0YXJ0KCkubm9kZSgp
IDogbV9zZWwuZW5kKCkubm9kZSgpOyB9CisgICAgTm9kZSogYW5jaG9yTm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsLmlzQmFzZUZpcnN0KCkgPyBtX3NlbC5zdGFydCgpLm5vZGUoKSA6IG1fc2Vs
LmVuZCgpLm5vZGUoKTsgfQogICAgIGludCBhbmNob3JPZmZzZXQoKSBjb25zdCB7IHJldHVybiBt
X3NlbC5pc0Jhc2VGaXJzdCgpID8gbV9zZWwuc3RhcnQoKS5vZmZzZXQoKSA6IG1fc2VsLmVuZCgp
Lm9mZnNldCgpOyB9Ci0gICAgTm9kZSAqZm9jdXNOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zZWwu
aXNCYXNlRmlyc3QoKSA/IG1fc2VsLmVuZCgpLm5vZGUoKSA6IG1fc2VsLnN0YXJ0KCkubm9kZSgp
OyB9CisgICAgTm9kZSogZm9jdXNOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zZWwuaXNCYXNlRmly
c3QoKSA/IG1fc2VsLmVuZCgpLm5vZGUoKSA6IG1fc2VsLnN0YXJ0KCkubm9kZSgpOyB9CiAgICAg
aW50IGZvY3VzT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zZWwuaXNCYXNlRmlyc3QoKSA/IG1f
c2VsLmVuZCgpLm9mZnNldCgpIDogbV9zZWwuc3RhcnQoKS5vZmZzZXQoKTsgfQogICAgIGJvb2wg
aXNDb2xsYXBzZWQoKSBjb25zdCB7IHJldHVybiAhaXNSYW5nZSgpOyB9CiAgICAgU3RyaW5nIHRv
U3RyaW5nKCkgY29uc3Q7Ci0gICAgdm9pZCBjb2xsYXBzZShOb2RlICpub2RlLCBpbnQgb2Zmc2V0
KTsKKyAgICB2b2lkIGNvbGxhcHNlKE5vZGUqLCBpbnQgb2Zmc2V0KTsKICAgICB2b2lkIGNvbGxh
cHNlVG9FbmQoKTsKICAgICB2b2lkIGNvbGxhcHNlVG9TdGFydCgpOwotICAgIHZvaWQgZXh0ZW5k
KE5vZGUgKm5vZGUsIGludCBvZmZzZXQpOworICAgIHZvaWQgZXh0ZW5kKE5vZGUqLCBpbnQgb2Zm
c2V0KTsKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBnZXRSYW5nZUF0KGludCBpbmRleCkgY29uc3Q7
CiAgICAgLy92b2lkIGRlbGV0ZUZyb21Eb2N1bWVudCgpOwogICAgIC8vYm9vbCBjb250YWluc05v
ZGUoTm9kZSAqbm9kZSwgYm9vbCBlbnRpcmVseUNvbnRhaW5lZCk7CkBAIC0xNjksNyArMTUxLDcg
QEAKICAgICAvL1RleHRSYW5nZSAqY3JlYXRlUmFuZ2UoKTsKIAogI2lmbmRlZiBOREVCVUcKLSAg
ICB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBj
b25zdDsKKyAgICB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQg
bGVuZ3RoKSBjb25zdDsKICAgICB2b2lkIHNob3dUcmVlRm9yVGhpcygpIGNvbnN0OwogI2VuZGlm
CiAKQEAgLTIwMCwxNSArMTgyLDE0IEBACiAgICAgYm9vbCBtX25lZWRzTGF5b3V0IDogMTsgICAg
ICAgLy8gdHJ1ZSBpZiB0aGUgY2FyZXQgYW5kIGV4cGVjdGVkVmlzaWJsZSByZWN0YW5nbGVzIG5l
ZWQgdG8gYmUgY2FsY3VsYXRlZAogICAgIGJvb2wgbV9tb2RpZnlCaWFzU2V0IDogMTsgICAgIC8v
IHRydWUgaWYgdGhlIHNlbGVjdGlvbiBoYXMgYmVlbiBob3Jpem9udGFsbHkgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kaWZpZWQgd2l0aCBFQWx0ZXI6OkVYVEVORAot
ICAgIFJlZlB0cjxNdXRhdGlvbkxpc3RlbmVyPiBtX211dGF0aW9uTGlzdGVuZXI7CiB9OwogCi1p
bmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIgJmEsIGNvbnN0
IFNlbGVjdGlvbkNvbnRyb2xsZXIgJmIpCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNl
bGVjdGlvbkNvbnRyb2xsZXImIGEsIGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXImIGIpCiB7CiAg
ICAgcmV0dXJuIGEuc3RhcnQoKSA9PSBiLnN0YXJ0KCkgJiYgYS5lbmQoKSA9PSBiLmVuZCgpICYm
IGEuYWZmaW5pdHkoKSA9PSBiLmFmZmluaXR5KCk7CiB9CiAKLWlubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciAmYSwgY29uc3QgU2VsZWN0aW9uQ29udHJvbGxl
ciAmYikKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciYg
YSwgY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciYgYikKIHsKICAgICByZXR1cm4gIShhID09IGIp
OwogfQpJbmRleDogZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMzg4MCkKKysrIGVk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDE4ICs0
Myw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBFdmVudE5hbWVzOwogCi12b2lkIE11dGF0aW9uTGlz
dGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50ICpldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQotewot
ICAgIGlmICghbV9zZWxlY3Rpb25Db250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gRE9NTm9kZVJlbW92ZWRFdmVudCkKLSAgICAgICAgbV9z
ZWxlY3Rpb25Db250cm9sbGVyLT5ub2RlV2lsbEJlUmVtb3ZlZChldmVudC0+dGFyZ2V0KCkpOwot
fQotCiBTZWxlY3Rpb25Db250cm9sbGVyOjpTZWxlY3Rpb25Db250cm9sbGVyKCkKICAgICA6IG1f
bmVlZHNMYXlvdXQodHJ1ZSkKLSAgICAsIG1fbXV0YXRpb25MaXN0ZW5lcihuZXcgTXV0YXRpb25M
aXN0ZW5lcih0aGlzKSkKIHsKICAgICBzZXRTZWxlY3Rpb24oU2VsZWN0aW9uKCkpOwogfQpAQCAt
NjIsNyArNTIsNiBAQAogU2VsZWN0aW9uQ29udHJvbGxlcjo6U2VsZWN0aW9uQ29udHJvbGxlcihj
b25zdCBTZWxlY3Rpb24gJnNlbCkKICAgICA6IG1fbmVlZHNMYXlvdXQodHJ1ZSkKICAgICAsIG1f
bW9kaWZ5Qmlhc1NldChmYWxzZSkKLSAgICAsIG1fbXV0YXRpb25MaXN0ZW5lcihuZXcgTXV0YXRp
b25MaXN0ZW5lcih0aGlzKSkKIHsKICAgICBzZXRTZWxlY3Rpb24oc2VsKTsKIH0KQEAgLTcwLDcg
KzU5LDYgQEAKIFNlbGVjdGlvbkNvbnRyb2xsZXI6OlNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3Qg
UG9zaXRpb24gJnBvcywgRUFmZmluaXR5IGFmZmluaXR5KQogICAgIDogbV9uZWVkc0xheW91dCh0
cnVlKQogICAgICwgbV9tb2RpZnlCaWFzU2V0KGZhbHNlKQotICAgICwgbV9tdXRhdGlvbkxpc3Rl
bmVyKG5ldyBNdXRhdGlvbkxpc3RlbmVyKHRoaXMpKQogewogICAgIHNldFNlbGVjdGlvbihTZWxl
Y3Rpb24ocG9zLCBwb3MsIGFmZmluaXR5KSk7CiB9CkBAIC03OCw3ICs2Niw2IEBACiBTZWxlY3Rp
b25Db250cm9sbGVyOjpTZWxlY3Rpb25Db250cm9sbGVyKGNvbnN0IFJhbmdlICpyLCBFQWZmaW5p
dHkgYWZmaW5pdHkpCiAgICAgOiBtX25lZWRzTGF5b3V0KHRydWUpCiAgICAgLCBtX21vZGlmeUJp
YXNTZXQoZmFsc2UpCi0gICAgLCBtX211dGF0aW9uTGlzdGVuZXIobmV3IE11dGF0aW9uTGlzdGVu
ZXIodGhpcykpCiB7CiAgICAgc2V0U2VsZWN0aW9uKFNlbGVjdGlvbihzdGFydFBvc2l0aW9uKHIp
LCBlbmRQb3NpdGlvbihyKSwgYWZmaW5pdHkpKTsKIH0KQEAgLTg2LDcgKzczLDYgQEAKIFNlbGVj
dGlvbkNvbnRyb2xsZXI6OlNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgUG9zaXRpb24gJmJhc2Us
IGNvbnN0IFBvc2l0aW9uICZleHRlbnQsIEVBZmZpbml0eSBhZmZpbml0eSkKICAgICA6IG1fbmVl
ZHNMYXlvdXQodHJ1ZSkKICAgICAsIG1fbW9kaWZ5Qmlhc1NldChmYWxzZSkKLSAgICAsIG1fbXV0
YXRpb25MaXN0ZW5lcihuZXcgTXV0YXRpb25MaXN0ZW5lcih0aGlzKSkKIHsKICAgICBzZXRTZWxl
Y3Rpb24oU2VsZWN0aW9uKGJhc2UsIGV4dGVudCwgYWZmaW5pdHkpKTsKIH0KQEAgLTk0LDcgKzgw
LDYgQEAKIFNlbGVjdGlvbkNvbnRyb2xsZXI6OlNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZ2aXNpYmxlUG9zKQogICAgIDogbV9uZWVkc0xheW91dCh0cnVlKQogICAg
ICwgbV9tb2RpZnlCaWFzU2V0KGZhbHNlKQotICAgICwgbV9tdXRhdGlvbkxpc3RlbmVyKG5ldyBN
dXRhdGlvbkxpc3RlbmVyKHRoaXMpKQogewogICAgIHNldFNlbGVjdGlvbihTZWxlY3Rpb24odmlz
aWJsZVBvcy5kZWVwRXF1aXZhbGVudCgpLCB2aXNpYmxlUG9zLmRlZXBFcXVpdmFsZW50KCksIHZp
c2libGVQb3MuYWZmaW5pdHkoKSkpOwogfQpAQCAtMTAyLDcgKzg3LDYgQEAKIFNlbGVjdGlvbkNv
bnRyb2xsZXI6OlNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNl
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCkKICAgICA6IG1fbmVlZHNMYXlvdXQodHJ1
ZSkKICAgICAsIG1fbW9kaWZ5Qmlhc1NldChmYWxzZSkKLSAgICAsIG1fbXV0YXRpb25MaXN0ZW5l
cihuZXcgTXV0YXRpb25MaXN0ZW5lcih0aGlzKSkKIHsKICAgICBzZXRTZWxlY3Rpb24oU2VsZWN0
aW9uKGJhc2UuZGVlcEVxdWl2YWxlbnQoKSwgZXh0ZW50LmRlZXBFcXVpdmFsZW50KCksIGJhc2Uu
YWZmaW5pdHkoKSkpOwogfQpAQCAtMTEwLDcgKzk0LDYgQEAKIFNlbGVjdGlvbkNvbnRyb2xsZXI6
OlNlbGVjdGlvbkNvbnRyb2xsZXIoY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciAmbykKICAgICA6
IG1fbmVlZHNMYXlvdXQoby5tX25lZWRzTGF5b3V0KQogICAgICwgbV9tb2RpZnlCaWFzU2V0KG8u
bV9tb2RpZnlCaWFzU2V0KQotICAgICwgbV9tdXRhdGlvbkxpc3RlbmVyKG5ldyBNdXRhdGlvbkxp
c3RlbmVyKHRoaXMpKQogewogICAgIHNldFNlbGVjdGlvbihvLm1fc2VsKTsgCiAgICAgLy8gT25s
eSBjb3B5IHRoZSBjb29yZGluYXRlcyBvdmVyIGlmIHRoZSBvdGhlciBvYmplY3QKQEAgLTEyNCwx
NCArMTA3LDYgQEAKICAgICB9CiB9CiAKLVNlbGVjdGlvbkNvbnRyb2xsZXI6On5TZWxlY3Rpb25D
b250cm9sbGVyKCkKLXsKLSAgICBpZiAoIWlzTm9uZSgpKSB7Ci0gICAgICAgIERvY3VtZW50ICpk
b2MgPSBtX3NlbC5zdGFydCgpLm5vZGUoKS0+ZG9jdW1lbnQoKTsKLSAgICAgICAgZG9jLT5yZW1v
dmVFdmVudExpc3RlbmVyKERPTU5vZGVSZW1vdmVkRXZlbnQsIG1fbXV0YXRpb25MaXN0ZW5lci5n
ZXQoKSwgZmFsc2UpOwotICAgIH0KLX0KLQogU2VsZWN0aW9uQ29udHJvbGxlciAmU2VsZWN0aW9u
Q29udHJvbGxlcjo6b3BlcmF0b3I9KGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIgJm8pCiB7CiAg
ICAgc2V0U2VsZWN0aW9uKG8ubV9zZWwpOwpAQCAtMTg4LDE5ICsxNjMsOCBAQAogICAgIG1fbmVl
ZHNMYXlvdXQgPSB0cnVlOwogfQogCi12b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OnNldFNlbGVj
dGlvbihjb25zdCBTZWxlY3Rpb24gJm5ld1NlbGVjdGlvbikKK3ZvaWQgU2VsZWN0aW9uQ29udHJv
bGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQogewotICAg
IFNlbGVjdGlvbiBvbGRTZWxlY3Rpb24gPSBtX3NlbDsKLSAgICBEb2N1bWVudCAqb2xkRG9jdW1l
bnQgPSBvbGRTZWxlY3Rpb24uc3RhcnQoKS5ub2RlKCkgPyBvbGRTZWxlY3Rpb24uc3RhcnQoKS5u
b2RlKCktPmRvY3VtZW50KCkgOiAwOwotICAgIERvY3VtZW50ICpuZXdEb2N1bWVudCA9IG5ld1Nl
bGVjdGlvbi5zdGFydCgpLm5vZGUoKSA/IG5ld1NlbGVjdGlvbi5zdGFydCgpLm5vZGUoKS0+ZG9j
dW1lbnQoKSA6IDA7Ci0gICAgCi0gICAgaWYgKG9sZERvY3VtZW50ICE9IG5ld0RvY3VtZW50KSB7
Ci0gICAgICAgIGlmIChvbGREb2N1bWVudCkKLSAgICAgICAgICAgIG9sZERvY3VtZW50LT5yZW1v
dmVFdmVudExpc3RlbmVyKERPTU5vZGVSZW1vdmVkRXZlbnQsIG1fbXV0YXRpb25MaXN0ZW5lci5n
ZXQoKSwgZmFsc2UpOwotICAgICAgICBpZiAobmV3RG9jdW1lbnQpCi0gICAgICAgICAgICBuZXdE
b2N1bWVudC0+YWRkRXZlbnRMaXN0ZW5lcihET01Ob2RlUmVtb3ZlZEV2ZW50LCBtX211dGF0aW9u
TGlzdGVuZXIuZ2V0KCksIGZhbHNlKTsKLSAgICB9Ci0gICAgCiAgICAgbV9zZWwgPSBuZXdTZWxl
Y3Rpb247CiB9CiAKQEAgLTIwOSwxMCArMTczLDEwIEBACiAgICAgaWYgKGlzTm9uZSgpKQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgTm9kZSAqYmFzZSA9IG1fc2VsLmJhc2UoKS5ub2RlKCk7
Ci0gICAgTm9kZSAqZXh0ZW50ID0gbV9zZWwuZXh0ZW50KCkubm9kZSgpOwotICAgIE5vZGUgKnN0
YXJ0ID0gbV9zZWwuc3RhcnQoKS5ub2RlKCk7Ci0gICAgTm9kZSAqZW5kID0gbV9zZWwuZW5kKCku
bm9kZSgpOworICAgIE5vZGUqIGJhc2UgPSBtX3NlbC5iYXNlKCkubm9kZSgpOworICAgIE5vZGUq
IGV4dGVudCA9IG1fc2VsLmV4dGVudCgpLm5vZGUoKTsKKyAgICBOb2RlKiBzdGFydCA9IG1fc2Vs
LnN0YXJ0KCkubm9kZSgpOworICAgIE5vZGUqIGVuZCA9IG1fc2VsLmVuZCgpLm5vZGUoKTsKICAg
ICAKICAgICBib29sIGJhc2VSZW1vdmVkID0gbm9kZSA9PSBiYXNlIHx8IGJhc2UtPmlzQW5jZXN0
b3Iobm9kZSk7CiAgICAgYm9vbCBleHRlbnRSZW1vdmVkID0gbm9kZSA9PSBleHRlbnQgfHwgZXh0
ZW50LT5pc0FuY2VzdG9yKG5vZGUpOwpAQCAtMjIyLDExICsxODYsMTMgQEAKICAgICBpZiAoc3Rh
cnRSZW1vdmVkIHx8IGVuZFJlbW92ZWQpIHsKICAgICAKICAgICAgICAgLy8gRklYTUUgKDY0OTgp
OiBUaGlzIGRvZXNuJ3Qgbm90aWZ5IHRoZSBlZGl0aW5nIGRlbGVnYXRlIG9mIGEgc2VsZWN0aW9u
IGNoYW5nZS4KKwogICAgICAgICAvLyBGSVhNRTogV2hlbiBlbmRwb2ludHMgYXJlIHJlbW92ZWQs
IHdlIHNob3VsZCBqdXN0IGFsdGVyIHRoZSBzZWxlY3Rpb24sIGluc3RlYWQgb2YgYmxvd2luZyBp
dCBhd2F5LgorCiAgICAgICAgIC8vIEZJWE1FOiBUaGUgU2VsZWN0aW9uQ29udHJvbGxlciBzaG91
bGQgYmUgcmVzcG9uc2libGUgZm9yIHNjaGVkdWxpbmcgYSByZXBhaW50LCAKICAgICAgICAgLy8g
YnV0IGl0IGNhbid0IGRvIGEgcHJvcGVyIGpvYiBvZiBpdCB1bnRpbCBpdCBoYW5kbGVzIHRoZSBv
dGhlciB0eXBlcyBvZiBET00gbXV0YXRpb25zLgogICAgICAgICAvLyBGb3Igbm93LCB3ZSdsbCBj
b250aW51ZSB0byBsZXQgUmVuZGVyT2JqZWN0cyBoYW5kbGUgaXQgd2hlbiB0aGV5IGFyZSBkZXN0
cm95ZWQuCi0gICAgICAgIAorCiAgICAgICAgIHNldFNlbGVjdGlvbihTZWxlY3Rpb24oKSk7CiAg
ICAgICAgIAogICAgIH0gZWxzZSBpZiAoYmFzZVJlbW92ZWQgfHwgZXh0ZW50UmVtb3ZlZCkgewpJ
bmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gMTM4ODEp
CisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NCBAQAorMjAwNi0wNC0x
NSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBmaXggaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3
aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD04Mjk4CisgICAgICAgICAgUkVHUkVTU0lPTjogQ3Jhc2gg
b2NjdXJzIHdoZW4gYXR0ZW1wdGluZyB0byBkcmFnIHNlbGVjdGlvbiBpbnRvCisgICAgICAgICAg
RGVwYXJ0L1JldHVybiBpbnB1dCBmaWVsZHMgYXQgaHR0cDovL3d3dy50cmF2ZWxvY2l0eS5jb20v
CisgICAgICAgIC0gcmVtb3ZlIHRoZSBtdXRhdGlvbiBldmVudCBsaXN0ZW5lciB0aGF0J3MgaW5z
dGFsbGVkIGFsbCB0aGUgdGltZSwKKyAgICAgICAgICBzaW5jZSBpdCBzbG93cyB0aGluZ3MgZG93
biBhIGJpdAorCisgICAgICAgIENhbGxpbmcgU2VsZWN0aW9uQ29udHJvbGxlcjo6bm9kZVdpbGxC
ZVJlbW92ZWQgZnJvbSBEb2N1bWVudDo6bm90aWZ5QmVmb3JlTm9kZVJlbW92YWwKKyAgICAgICAg
Zml4ZXMgdGhlIGNyYXNoLCB3aGljaCB3YXMgaGFwcGVuaW5nIGJlY2F1c2UgdGhlIGNhbGwgdGhh
dCB3YXMgcmVtb3ZpbmcgdGhlIHRleHQKKyAgICAgICAgbm9kZSwgcmVtb3ZlQ2hpbGRyZW4sIGRv
ZXMgbm90IHNlbmQgYSAibm9kZSByZW1vdmVkIiBtdXRhdGlvbiBldmVudCAoaXQgc2VuZHMgYQor
ICAgICAgICAic3VidHJlZSBtb2RpZmllZCIgbXV0YXRpb24gZXZlbnQgaW5zdGVhZCkuIFNvIHRo
aXMgY2hhbmdlIGFsb25nIGZpeGVzIHRoZSBjcmFzaC4KKworICAgICAgICBCdXQgSSBhbHNvIGNo
YW5nZWQgc2V0SW5uZXJUZXh0IHRvIG5vdCBibG93IGF3YXkgdGhlIHRleHQgbm9kZSBlYWNoIHRp
bWUgdGhlIHZhbHVlCisgICAgICAgIGlzIGNoYW5nZWQsIGFuZCB0aGF0IG1ha2VzIHRoZSB0ZXN0
IGNhc2UgYmVoYXZlIGV2ZW4gYmV0dGVyIC0tIHlvdSBkb24ndCBldmVuIGxvc2UKKyAgICAgICAg
dGhlIHNlbGVjdGlvbjsgaXQgd29ya3MgYXMgaXQgZGlkIHdpdGggdGhlIE5TVGV4dEZpZWxkLWJh
c2VkIHRleHQgZmllbGQuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvaW5wdXQtZW1wdHktb24t
Zm9jdXMuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOiAoV2ViQ29y
ZTo6RG9jdW1lbnQ6Om5vdGlmeUJlZm9yZU5vZGVSZW1vdmFsKToKKyAgICAgICAgQ2FsbCBub2Rl
V2lsbEJlUmVtb3ZlZCBvbiB0aGUgdHdvIHNlbGVjdGlvbiBjb250cm9sbGVycyBiZWZvcmUgcmVt
b3ZpbmcKKyAgICAgICAgYSBub2RlIGZyb20gdGhlIGRvY3VtZW50LgorCisgICAgICAgICogZWRp
dGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmg6IFR3ZWFrIGZvcm1hdHRpbmcuIFJlbW92ZSBNdXRh
dGlvbkxpc3RlbmVyCisgICAgICAgIGNsYXNzIGFuZCBtX211dGF0aW9uTGlzdGVuZXIgZmllbGQu
CisgICAgICAgICogZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6OlNlbGVjdGlvbkNvbnRyb2xsZXIpOiBSZW1vdmUg
Y29kZSB0byBzZXQgdXAKKyAgICAgICAgdGhlIG11dGF0aW9uIGV2ZW50IGxpc3RlbmVyLgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6c2V0U2VsZWN0aW9uKTogUmVtb3Zl
IGNvZGUgdG8gbWFpbnRhaW4gdGhlCisgICAgICAgIG11dGF0aW9uIGV2ZW50IGxpc3RlbmVyLgor
CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RWxlbWVudDo6c2V0SW5uZXJIVE1MKTogSW4gY2FzZXMgd2hlcmUgdGhlIGNvbnRhaW5lciBoYXMg
b25seSBhCisgICAgICAgIHNpbmdsZSBjaGlsZCB1c2UgcmVwbGFjZUNoaWxkLCBhbmQgaW4gY2Fz
ZXMgd2hlcmUgdGhlIEhUTUwgYmVpbmcgaW5zZXJ0ZWQKKyAgICAgICAgYWxzbyBoYXMgb25seSBh
IHNpbmdsZSBjaGlsZCBhbmQgYm90aCBhcmUgdGV4dCBub2RlcyB1c2Ugc2V0RGF0YS4gSXQncyBj
b21tb24KKyAgICAgICAgdG8gdXNlIHNldElubmVySFRNTCB0byBzZXQgc29tZXRoaW5nIHRoYXQn
cyBqdXN0IHRleHQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0
KTogU2FtZSBhcyBhYm92ZSwgYnV0IHNpbXBsZXIgc2luY2UgdGhlCisgICAgICAgIHRoaW5nIHdl
J3JlIHJlcGxhY2luZyB3aXRoIGlzIGFsd2F5cyB0ZXh0LgorCiAyMDA2LTA0LTE1ICBNaXR6IFBl
dHRlbCAgPG9wZW5kYXJ3aW4ub3JnQG1pdHpwZXR0ZWwuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hY2llai4K
</data>
<flag name="review"
          id="2114"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>