<?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>66495</bug_id>
          
          <creation_ts>2011-08-18 13:18:19 -0700</creation_ts>
          <short_desc>Lion-specific scroller SPIs can use forward declaration instead of WebKitSystemInterface</short_desc>
          <delta_ts>2011-08-18 17:46:11 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>453297</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-18 13:18:19 -0700</bug_when>
    <thetext>Title says it all. Lion-specific scroller SPIs can use forward declaration instead of WebKitSystemInterface. This will make code changes in this area simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453305</commentid>
    <comment_count>1</comment_count>
      <attachid>104389</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-18 13:24:38 -0700</bug_when>
    <thetext>Created attachment 104389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453349</commentid>
    <comment_count>2</comment_count>
      <attachid>104389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 14:21:14 -0700</bug_when>
    <thetext>Comment on attachment 104389
Patch

Attachment 104389 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9411013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453369</commentid>
    <comment_count>3</comment_count>
      <attachid>104389</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-08-18 14:51:12 -0700</bug_when>
    <thetext>Comment on attachment 104389
Patch

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

&gt; Source/WebCore/platform/mac/ScrollbarThemeMac.h:32
&gt; +typedef id WKScrollbarPainterRef;

This probably should have a more Objective-Cish name now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453372</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-18 14:53:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 104389 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=104389&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/ScrollbarThemeMac.h:32
&gt; &gt; +typedef id WKScrollbarPainterRef;
&gt; 
&gt; This probably should have a more Objective-Cish name now.

I agree. The &quot;WK&quot; also doesn&apos;t make sense anymore. I thought I might make that change in a separate patch just to maintain maximal readability of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453428</commentid>
    <comment_count>5</comment_count>
      <attachid>104412</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-18 15:40:15 -0700</bug_when>
    <thetext>Created attachment 104412
Patch which should build on Mac 10.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453439</commentid>
    <comment_count>6</comment_count>
      <attachid>104412</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 15:47:11 -0700</bug_when>
    <thetext>Comment on attachment 104412
Patch which should build on Mac 10.6

Attachment 104412 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9423826</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453488</commentid>
    <comment_count>7</comment_count>
      <attachid>104424</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-18 16:45:15 -0700</bug_when>
    <thetext>Created attachment 104424
Patch, another attempt at building on 10.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453502</commentid>
    <comment_count>8</comment_count>
      <attachid>104424</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-08-18 17:08:21 -0700</bug_when>
    <thetext>Comment on attachment 104424
Patch, another attempt at building on 10.6

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

&gt; Source/WebCore/ChangeLog:49
&gt; +        (WebCore::ScrollbarThemeMac::paint):

I don&apos;t think you need this wall of text if you aren&apos;t going to comment about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453516</commentid>
    <comment_count>9</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-18 17:46:11 -0700</bug_when>
    <thetext>Thanks Sam! Committed change with some in-person suggestions with revision 93377.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104389</attachid>
            <date>2011-08-18 13:24:38 -0700</date>
            <delta_ts>2011-08-18 15:40:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-os.txt</filename>
            <type>text/plain</type>
            <size>42459</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMzQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDgtMTggIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NjQ5NQorICAgICAgICBMaW9uLXNwZWNpZmljIHNjcm9sbGVyIFNQSXMgY2FuIHVzZSBmb3J3YXJk
IGRlY2xhcmF0aW9uIGluc3RlYWQgb2YgCisgICAgICAgIFdlYktpdFN5c3RlbUludGVyZmFjZQor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tOgorICAgICAgICAoLVtTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlIHNjcm9s
bGVySW1wUGFpcjpjb252ZXJ0Q29udGVudFBvaW50OnRvU2Nyb2xsZXJJbXA6XSk6CisgICAgICAg
ICgtW1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgc2Nyb2xsZXJJbXBQYWlyOnVw
ZGF0ZVNjcm9sbGVyU3R5bGVGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6XSk6CisgICAg
ICAgICgtW1Njcm9sbGJhclBhcnRBbmltYXRpb24gaW5pdFdpdGhTY3JvbGxiYXJQYWludGVyOnBh
cnQ6V2ViQ29yZTo6c2Nyb2xsQW5pbWF0b3I6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRp
b246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhcnRBbmltYXRpb24gc2V0Q3VycmVudFByb2dy
ZXNzOl0pOgorICAgICAgICAoLVtTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgc2V0VXBBbmltYXRp
b246c2Nyb2xsZXJQYWludGVyOnBhcnQ6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRpb246
XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSBzY3JvbGxlckltcDphbmlt
YXRlS25vYkFscGhhVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJE
ZWxlZ2F0ZSBzY3JvbGxlckltcDphbmltYXRlVHJhY2tBbHBoYVRvOmR1cmF0aW9uOl0pOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVBvc2l0aW9uQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFXaWxs
UGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRW50ZXJl
ZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3Vz
ZUV4aXRlZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
Ojptb3VzZU1vdmVkSW5Db250ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6Y29udGVudHNSZXNpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OmRpZEJlZ2luU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkRW5kU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJh
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkSG9yaXpvbnRh
bFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJl
bW92ZUhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM6OnVwZGF0ZVNjcm9sbGVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6OmluaXRpYWxTY3JvbGxiYXJQYWludFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFj
OjpyZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
TWFjOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnVwZGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVNYWM6Om1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNj
cm9sbGJhclBhaW50ZXJQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisK
IDIwMTEtMDgtMTggIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBBbiBFdmVudFNvdXJjZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgVHlwZUVycm9yLCB3aGVu
IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGlzIG5vdCBlbm91Z2guCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTQ2Myw0NyArMTQ2MywxMiBAQCBfX1pON1dlYkNvcmUyMExv
Z05vdFlldEltcGxlbWVudGVkRQogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi1fd2tDb250ZW50
QXJlYURpZEhpZGUKLV93a0NvbnRlbnRBcmVhRGlkU2hvdwotX3drQ29udGVudEFyZWFSZXNpemVk
Ci1fd2tDb250ZW50QXJlYVNjcm9sbGVkCi1fd2tDb250ZW50QXJlYVdpbGxQYWludAogX3drQ29w
eURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lCiBfd2tDcmVhdGVDVFR5cGVzZXR0ZXJX
aXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucwotX3drRGlkQmVnaW5TY3JvbGxHZXN0dXJlCi1f
d2tEaWRFbmRTY3JvbGxHZXN0dXJlCitfd2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUKIF93a0V4
ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQKLV93a0hvcml6b250YWxTY3Jv
bGxiYXJQYWludGVyRm9yQ29udHJvbGxlcgogX3drSU9TdXJmYWNlQ29udGV4dENyZWF0ZQogX3dr
SU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlCi1fd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcgotX3dr
TWFrZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyCi1fd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1l
bnRQYWludGVyCi1fd2tNb3VzZUVudGVyZWRDb250ZW50QXJlYQotX3drTW91c2VFeGl0ZWRDb250
ZW50QXJlYQotX3drTW91c2VNb3ZlZEluQ29udGVudEFyZWEKLV93a1Njcm9sbGJhck1pbmltdW1U
aHVtYkxlbmd0aAotX3drU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIK
LV93a1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUKLV93a1Njcm9sbGJhclBhaW50ZXJG
b3JjZUZsYXNoU2Nyb2xsZXJzCi1fd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFsCi1fd2tT
Y3JvbGxiYXJQYWludGVyS25vYkFscGhhCi1fd2tTY3JvbGxiYXJQYWludGVyS25vYlJlY3QKLV93
a1Njcm9sbGJhclBhaW50ZXJQYWludAotX3drU2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlCi1f
d2tTY3JvbGxiYXJQYWludGVyU2V0RW5hYmxlZAotX3drU2Nyb2xsYmFyUGFpbnRlclNldE92ZXJs
YXlTdGF0ZQotX3drU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEKLV93a1Njcm9sbGJhclBhaW50
ZXJVc2VzT3ZlcmxheVNjcm9sbGVycwotX3drU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZQot
X3drU2Nyb2xsYmFyVGhpY2tuZXNzCi1fd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIK
LV93a1NldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUKLV93a1NldFNjcm9sbGJhclBh
aW50ZXJLbm9iQWxwaGEKLV93a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhCi1fd2tWZXJ0
aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyCi1fd2tXaWxsRW5kTGl2ZVJlc2l6ZQot
X3drV2lsbFN0YXJ0TGl2ZVJlc2l6ZQogX3drQVZBc3NldFJlc29sdmVkVVJMCiBfd2tDdXJzb3IK
ICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBj
bGFzcyBTY3JvbGxiYXJQYWludGVyRGVsZWdhdGU7CiAjZW5kaWYKIAogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLXR5cGVkZWYgc3RydWN0IF9fV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlciAqV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKK3R5cGVkZWYgaWQgV0tTY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCShyZXZpc2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNDEgQEAgLSAo
TlNQb2ludCl0YXJnZXRPcmlnaW47CiAtIChDR0Zsb2F0KV9wcm9ncmVzczsKIEBlbmQKIAorQGlu
dGVyZmFjZSBOU09iamVjdCAoU2Nyb2xsYmFyUGFpbnRlcikKKysgKGlkKXNjcm9sbGVySW1wV2l0
aFN0eWxlOihOU1Njcm9sbGVyU3R5bGUpbmV3U2Nyb2xsZXJTdHlsZSBjb250cm9sU2l6ZTooTlND
b250cm9sU2l6ZSluZXdDb250cm9sU2l6ZSBob3Jpem9udGFsOihCT09MKWhvcml6b250YWwgcmVw
bGFjaW5nU2Nyb2xsZXJJbXA6KGlkKXByZXZpb3VzOworLSAodm9pZClzZXREZWxlZ2F0ZTooaWQp
ZGVsZWdhdGU7CistIChDR0Zsb2F0KWtub2JBbHBoYTsKKy0gKHZvaWQpc2V0S25vYkFscGhhOihD
R0Zsb2F0KWtub2JBbHBoYTsKKy0gKENHRmxvYXQpdHJhY2tBbHBoYTsKKy0gKHZvaWQpc2V0VHJh
Y2tBbHBoYTooQ0dGbG9hdCl0cmFja0FscGhhOworLSAoQk9PTClpc0hvcml6b250YWw7CistIChO
U1JlY3QpcmVjdEZvclBhcnQ6KE5TU2Nyb2xsZXJQYXJ0KXBhcnRDb2RlOworQGVuZAorCitAaW50
ZXJmYWNlIE5TT2JqZWN0IChTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcikKKy0gKHZvaWQpc2V0
RGVsZWdhdGU6KGlkKWRlbGVnYXRlOworLSAodm9pZCloaWRlT3ZlcmxheVNjcm9sbGVyczsKKy0g
KHZvaWQpZmxhc2hTY3JvbGxlcnM7CistIChpZClob3Jpem9udGFsU2Nyb2xsZXJJbXA7CistICh2
b2lkKXNldEhvcml6b250YWxTY3JvbGxlckltcDooaWQpaG9yaXpvbnRhbDsKKy0gKGlkKXZlcnRp
Y2FsU2Nyb2xsZXJJbXA7CistICh2b2lkKXNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6KGlkKXZlcnRp
Y2FsOworLSAoTlNTY3JvbGxlclN0eWxlKXNjcm9sbGVyU3R5bGU7CistICh2b2lkKXNldFNjcm9s
bGVyU3R5bGU6KE5TU2Nyb2xsZXJTdHlsZSlzY3JvbGxlclN0eWxlOworLSAodm9pZCljb250ZW50
QXJlYVNjcm9sbGVkOworLSAodm9pZCljb250ZW50QXJlYVdpbGxEcmF3OworLSAodm9pZCltb3Vz
ZUVudGVyZWRDb250ZW50QXJlYTsKKy0gKHZvaWQpbW91c2VFeGl0ZWRDb250ZW50QXJlYTsKKy0g
KHZvaWQpbW91c2VNb3ZlZEluQ29udGVudEFyZWE7CistICh2b2lkKXN0YXJ0TGl2ZVJlc2l6ZTsK
Ky0gKHZvaWQpY29udGVudEFyZWFEaWRSZXNpemU7CistICh2b2lkKWVuZExpdmVSZXNpemU7Cist
ICh2b2lkKXdpbmRvd09yZGVyZWRJbjsKKy0gKHZvaWQpd2luZG93T3JkZXJlZE91dDsKKy0gKHZv
aWQpYmVnaW5TY3JvbGxHZXN0dXJlOworLSAodm9pZCllbmRTY3JvbGxHZXN0dXJlOworQGVuZAor
CiBAaW50ZXJmYWNlIFNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIDogTlNPYmplY3QKIHsK
ICAgICBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyogX2FuaW1hdG9yOwpAQCAtMjA4LDcgKzI0
Myw3IEBAIC0gKE5TUG9pbnQpc2Nyb2xsZXJJbXBQYWlyOihpZClzY3JvbGxlckkKICAgICAgICAg
cmV0dXJuIE5TWmVyb1BvaW50OwogCiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiBzY3JvbGxiYXIg
PSAwOwotICAgIGlmICh3a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwoKFdLU2Nyb2xsYmFy
UGFpbnRlclJlZilzY3JvbGxlckltcCkpCisgICAgaWYgKFtzY3JvbGxlckltcCBpc0hvcml6b250
YWxdKQogICAgICAgICBzY3JvbGxiYXIgPSBfYW5pbWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPmhv
cml6b250YWxTY3JvbGxiYXIoKTsKICAgICBlbHNlIAogICAgICAgICBzY3JvbGxiYXIgPSBfYW5p
bWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC0yMzUsNyAr
MjcwLDcgQEAgLSAodm9pZClzY3JvbGxlckltcFBhaXI6KGlkKXNjcm9sbGVySW1wUAogICAgIGlm
ICghX2FuaW1hdG9yKQogICAgICAgICByZXR1cm47CiAKLSAgICB3a1NldFNjcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyU3R5bGUoKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpc2Nyb2xs
ZXJJbXBQYWlyLCBuZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUpOworICAgIFtzY3JvbGxlcklt
cFBhaXIgc2V0U2Nyb2xsZXJTdHlsZTpuZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGVdOwogICAg
IF9hbmltYXRvci0+dXBkYXRlU2Nyb2xsZXJTdHlsZSgpOwogfQogCkBAIC0yNjMsNyArMjk4LDcg
QEAgLSAoaWQpaW5pdFdpdGhTY3JvbGxiYXJQYWludGVyOihXS1Njcm9sbAogICAgIF9zY3JvbGxl
clBhaW50ZXIgPSBzY3JvbGxlclBhaW50ZXI7CiAgICAgX3BhcnQgPSBwYXJ0OwogICAgIF9hbmlt
YXRvciA9IHNjcm9sbEFuaW1hdG9yOwotICAgIF9pbml0aWFsQWxwaGEgPSBfcGFydCA9PSBXZWJD
b3JlOjpUaHVtYlBhcnQgPyB3a1Njcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEoX3Njcm9sbGVyUGFp
bnRlci5nZXQoKSkgOiB3a1Njcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKF9zY3JvbGxlclBhaW50
ZXIuZ2V0KCkpOworICAgIF9pbml0aWFsQWxwaGEgPSBfcGFydCA9PSBXZWJDb3JlOjpUaHVtYlBh
cnQgPyBbX3Njcm9sbGVyUGFpbnRlci5nZXQoKSBrbm9iQWxwaGFdIDogW19zY3JvbGxlclBhaW50
ZXIuZ2V0KCkgdHJhY2tBbHBoYV07CiAgICAgX25ld0FscGhhID0gbmV3QWxwaGE7CiAgICAgCiAg
ICAgcmV0dXJuIHNlbGY7ICAgIApAQCAtMjgzLDkgKzMxOCw5IEBAIC0gKHZvaWQpc2V0Q3VycmVu
dFByb2dyZXNzOihOU0FuaW1hdGlvblAKICAgICAgICAgY3VycmVudEFscGhhID0gcHJvZ3Jlc3M7
CiAgICAgCiAgICAgaWYgKF9wYXJ0ID09IFdlYkNvcmU6OlRodW1iUGFydCkKLSAgICAgICAgd2tT
ZXRTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKF9zY3JvbGxlclBhaW50ZXIuZ2V0KCksIGN1cnJl
bnRBbHBoYSk7CisgICAgICAgIFtfc2Nyb2xsZXJQYWludGVyLmdldCgpIHNldEtub2JBbHBoYTpj
dXJyZW50QWxwaGFdOwogICAgIGVsc2UKLSAgICAgICAgd2tTZXRTY3JvbGxiYXJQYWludGVyVHJh
Y2tBbHBoYShfc2Nyb2xsZXJQYWludGVyLmdldCgpLCBjdXJyZW50QWxwaGEpOworICAgICAgICBb
X3Njcm9sbGVyUGFpbnRlci5nZXQoKSBzZXRUcmFja0FscGhhOmN1cnJlbnRBbHBoYV07CiAKICAg
ICAvLyBJbnZhbGlkYXRlIHRoZSBzY3JvbGxiYXJzIHNvIHRoYXQgdGhleSBwYWludCB0aGUgYW5p
bWF0aW9uCiAgICAgaWYgKFdlYkNvcmU6OlNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIgPSBf
YW5pbWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkpCkBAIC0zODEs
OSArNDE2LDkgQEAgLSAodm9pZClzZXRVcEFuaW1hdGlvbjooUmV0YWluUHRyPFNjcm9sbAogICAg
ICAgICBzY3JvbGxiYXJQYXJ0QW5pbWF0aW9uID0gbmlsOwogICAgIH0KIAotICAgIGlmIChwYXJ0
ID09IFdlYkNvcmU6OlRodW1iUGFydCAmJiAhd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFs
KHNjcm9sbGVyUGFpbnRlcikpIHsKKyAgICBpZiAocGFydCA9PSBXZWJDb3JlOjpUaHVtYlBhcnQg
JiYgIVtzY3JvbGxlclBhaW50ZXIgaXNIb3Jpem9udGFsXSkgewogICAgICAgICBpZiAobmV3QWxw
aGEgPT0gMSkgewotICAgICAgICAgICAgSW50UmVjdCB0aHVtYlJlY3QgPSBJbnRSZWN0KHdrU2Ny
b2xsYmFyUGFpbnRlcktub2JSZWN0KHNjcm9sbGVyUGFpbnRlcikpOworICAgICAgICAgICAgSW50
UmVjdCB0aHVtYlJlY3QgPSBJbnRSZWN0KFtzY3JvbGxlclBhaW50ZXIgcmVjdEZvclBhcnQ6TlNT
Y3JvbGxlcktub2JdKTsKICAgICAgICAgICAgIF9hbmltYXRvci0+c2V0VmlzaWJsZVNjcm9sbGVy
VGh1bWJSZWN0KHRodW1iUmVjdCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgX2FuaW1h
dG9yLT5zZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoSW50UmVjdCgpKTsKQEAgLTQwNyw3ICs0
NDIsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltCiAgICAgICAg
IHJldHVybjsKIAogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxlclBhaW50ZXIgPSAo
V0tTY3JvbGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1wOwotICAgIGlmICh3a1Njcm9sbGJhclBh
aW50ZXJJc0hvcml6b250YWwoc2Nyb2xsZXJQYWludGVyKSkKKyAgICBpZiAoW3Njcm9sbGVySW1w
IGlzSG9yaXpvbnRhbF0pCiAgICAgICAgIFtzZWxmIHNldFVwQW5pbWF0aW9uOl9ob3Jpem9udGFs
S25vYkFuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVyIHBhcnQ6V2ViQ29y
ZTo6VGh1bWJQYXJ0IGFuaW1hdGVBbHBoYVRvOm5ld0tub2JBbHBoYSBkdXJhdGlvbjpkdXJhdGlv
bl07CiAgICAgZWxzZQogICAgICAgICBbc2VsZiBzZXRVcEFuaW1hdGlvbjpfdmVydGljYWxLbm9i
QW5pbWF0aW9uIHNjcm9sbGVyUGFpbnRlcjpzY3JvbGxlclBhaW50ZXIgcGFydDpXZWJDb3JlOjpU
aHVtYlBhcnQgYW5pbWF0ZUFscGhhVG86bmV3S25vYkFscGhhIGR1cmF0aW9uOmR1cmF0aW9uXTsK
QEAgLTQxOSw3ICs0NTQsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBh
bmltCiAgICAgICAgIHJldHVybjsKIAogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxl
clBhaW50ZXIgPSAoV0tTY3JvbGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1wOwotICAgIGlmICh3
a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwoc2Nyb2xsZXJQYWludGVyKSkKKyAgICBpZiAo
W3Njcm9sbGVySW1wIGlzSG9yaXpvbnRhbF0pCiAgICAgICAgIFtzZWxmIHNldFVwQW5pbWF0aW9u
Ol9ob3Jpem9udGFsVHJhY2tBbmltYXRpb24gc2Nyb2xsZXJQYWludGVyOnNjcm9sbGVyUGFpbnRl
ciBwYXJ0OldlYkNvcmU6OkJhY2tUcmFja1BhcnQgYW5pbWF0ZUFscGhhVG86bmV3VHJhY2tBbHBo
YSBkdXJhdGlvbjpkdXJhdGlvbl07CiAgICAgZWxzZQogICAgICAgICBbc2VsZiBzZXRVcEFuaW1h
dGlvbjpfdmVydGljYWxUcmFja0FuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWlu
dGVyIHBhcnQ6V2ViQ29yZTo6QmFja1RyYWNrUGFydCBhbmltYXRlQWxwaGFUbzpuZXdUcmFja0Fs
cGhhIGR1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTQ3Myw3ICs1MDgsMTAgQEAgU2Nyb2xsQW5pbWF0
b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKFNjcgogCiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlO
VEVSKQogICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5hZG9wdE5TKFtb
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxB
bmltYXRvcjp0aGlzXSk7Ci0gICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IHdrTWFr
ZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJE
ZWxlZ2F0ZS5nZXQoKSk7CisgICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IFtbW05T
Q2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcFBhaXIiKSBhbGxvY10gaW5pdF0gYXV0b3Jl
bGVhc2VdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldERlbGVn
YXRlOm1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0U2Nyb2xsZXJTdHlsZTp3a1JlY29t
bWVuZGVkU2Nyb2xsZXJTdHlsZSgpXTsKKwogICAgIG1fc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRl
LmFkb3B0TlMoW1tTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xs
QW5pbWF0b3I6dGhpc10pOwogI2VuZGlmCiB9CkBAIC00ODIsNyArNTIwLDcgQEAgU2Nyb2xsQW5p
bWF0b3JNYWM6On5TY3JvbGxBbmltYXRvck1hYygpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9Q
QUlOVEVSKQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkg
c2Nyb2xsQW5pbWF0b3JEZXN0cm95ZWRdOwotICAgIFsoaWQpbV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlci5nZXQoKSBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyLmdldCgpIHNldERlbGVnYXRlOm5pbF07CiAgICAgW21fc2Nyb2xsYmFyUGFpbnRl
ckRlbGVnYXRlLmdldCgpIHNjcm9sbEFuaW1hdG9yRGVzdHJveWVkXTsKICAgICBbbV9zY3JvbGxB
bmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5nZXQoKSBzY3JvbGxBbmltYXRvckRlc3Ryb3llZF07CiAj
ZW5kaWYKQEAgLTU5Nyw3ICs2MzUsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlh
dGVTY3JvbGxUCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQo
KQogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICB3a0NvbnRlbnRBcmVhU2Ny
b2xsZWQobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgY29udGVudEFyZWFTY3JvbGxlZF07CiAjZW5kaWYK
ICAgICBTY3JvbGxBbmltYXRvcjo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKCk7CiB9CkBAIC02MDUs
NzcgKzY0Myw3NyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoCiB2
b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiB7CiAj
aWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrQ29udGVudEFyZWFXaWxsUGFpbnQo
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIuZ2V0KCkgY29udGVudEFyZWFXaWxsRHJhd107CiAjZW5kaWYKIH0KIAog
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFbnRlcmVkQ29udGVudEFyZWEoKSBjb25zdAog
ewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICB3a01vdXNlRW50ZXJlZENvbnRl
bnRBcmVhKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKICNl
bmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVh
KCkgY29uc3QKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgd2tNb3VzZUV4
aXRlZENvbnRlbnRBcmVhKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAg
IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlRXhpdGVkQ29udGVudEFy
ZWFdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlTW92ZWRJbkNv
bnRlbnRBcmVhKCkgY29uc3QKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAg
d2tNb3VzZU1vdmVkSW5Db250ZW50QXJlYShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBtb3VzZU1vdmVk
SW5Db250ZW50QXJlYV07CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2ls
bFN0YXJ0TGl2ZVJlc2l6ZSgpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAg
IHdrV2lsbFN0YXJ0TGl2ZVJlc2l6ZShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgp
KTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzdGFydExpdmVSZXNp
emVdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXpl
ZCgpIGNvbnN0CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrQ29udGVu
dEFyZWFSZXNpemVkKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFtt
X3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGNvbnRlbnRBcmVhRGlkUmVzaXplXTsK
ICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSgp
CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrV2lsbEVuZExpdmVSZXNp
emUobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgZW5kTGl2ZVJlc2l6ZV07CiAjZW5kaWYKIH0KIAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93KCkgY29uc3QKIHsKICNpZiBV
U0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgd2tDb250ZW50QXJlYURpZFNob3cobV9zY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXIuZ2V0KCkgd2luZG93T3JkZXJlZEluXTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUoKSBjb25zdAogewogI2lmIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikKLSAgICB3a0NvbnRlbnRBcmVhRGlkSGlkZShtX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyLmdldCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSB3aW5kb3dPcmRlcmVkT3V0XTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLSAgICB3a0RpZEJlZ2luU2Nyb2xsR2VzdHVyZShtX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyLmdldCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSBiZWdpblNjcm9sbEdlc3R1cmVdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5p
bWF0b3JNYWM6OmRpZEVuZFNjcm9sbEdlc3R1cmUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLSAgICB3a0RpZEVuZFNjcm9sbEdlc3R1cmUobV9zY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIu
Z2V0KCkgZW5kU2Nyb2xsR2VzdHVyZV07CiAjZW5kaWYKIH0KIApAQCAtNjgzLDEwICs3MjEsMTAg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTYwogewogI2lmIFVTRShX
S19TQ1JPTExCQVJfUEFJTlRFUikKICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjKj4oV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkpLT5wYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7
Ci0gICAgd2tTY3JvbGxiYXJQYWludGVyU2V0RGVsZWdhdGUocGFpbnRlciwgbV9zY3JvbGxiYXJQ
YWludGVyRGVsZWdhdGUuZ2V0KCkpOwotICAgIHdrU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9s
bGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCksIHBhaW50ZXIsIGZhbHNlKTsK
KyAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTptX3Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQo
KV07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0VmVydGljYWxT
Y3JvbGxlckltcDpwYWludGVyXTsKICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5MaXZlUmVz
aXplKCkpCi0gICAgICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShwYWludGVyLCAx
KTsKKyAgICAgICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOjFdOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtNjk2LDggKzczNCw4IEBAIHZvaWQgU2Nyb2xs
QW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWMKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BB
SU5URVIpCiAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRp
dmVUaGVtZSgpKS0+cGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwotICAgIHdrU2Nyb2xs
YmFyUGFpbnRlclNldERlbGVnYXRlKHBhaW50ZXIsIG5pbCk7Ci0gICAgd2tTZXRQYWludGVyRm9y
UGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgbmls
LCBmYWxzZSk7CisgICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBbbV9zY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOm5pbF07CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCkBAIC03MDcsMTAgKzc0
NSwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jpem9udGFsCiB7CiAjaWYg
VVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWlu
dGVyID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWMqPihXZWJDb3JlOjpT
Y3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKSktPnBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xs
YmFyKTsKLSAgICB3a1Njcm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZShwYWludGVyLCBtX3Njcm9s
bGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQoKSk7Ci0gICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNv
bnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgcGFpbnRlciwgdHJ1
ZSk7CisgICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6bV9zY3JvbGxiYXJQYWludGVyRGVsZWdhdGUu
Z2V0KCldOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldEhvcml6
b250YWxTY3JvbGxlckltcDpwYWludGVyXTsKICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5M
aXZlUmVzaXplKCkpCi0gICAgICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShwYWlu
dGVyLCAxKTsKKyAgICAgICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOjFdOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtNzIwLDggKzc1OCw4IEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVIb3Jpem8KIHsKICNpZiBVU0UoV0tfU0NST0xM
QkFSX1BBSU5URVIpCiAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
OjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwotICAgIHdr
U2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlKHBhaW50ZXIsIG5pbCk7Ci0gICAgd2tTZXRQYWlu
dGVyRm9yUGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQo
KSwgbmlsLCB0cnVlKTsKKyAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldEhvcml6b250YWxTY3JvbGxlckltcDpu
aWxdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtMTIz
MywxOCArMTI3MSwxOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0
CiAgICAgfQogCiAgICAgU2Nyb2xsYmFyVGhlbWVNYWMqIG1hY1RoZW1lID0gKFNjcm9sbGJhclRo
ZW1lTWFjKilTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKTsKLSAgICBpbnQgbmV3U3R5bGUg
PSB3a1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUobV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlci5nZXQoKSk7CisgICAgTlNTY3JvbGxlclN0eWxlIG5ld1N0eWxlID0gW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2Nyb2xsZXJTdHlsZV07CiAKICAgICBpZiAoU2Ny
b2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Ny
b2xsYmFyKCkpIHsKICAgICAgICAgdmVydGljYWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAot
ICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkVmVydGljYWxQYWludGVyID0gd2tWZXJ0
aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIuZ2V0KCkpOwotICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgbmV3VmVydGljYWxQ
YWludGVyID0gd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKG9sZFZlcnRpY2FsUGFp
bnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdHlsZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiBvbGRWZXJ0aWNhbFBhaW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5n
ZXQoKSB2ZXJ0aWNhbFNjcm9sbGVySW1wXTsKKyAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVm
IG5ld1ZlcnRpY2FsUGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAi
KSBzY3JvbGxlckltcFdpdGhTdHlsZTpuZXdTdHlsZSAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKXZlcnRpY2FsU2Nyb2xsYmFyLT5jb250cm9s
U2l6ZSgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbDpOTyAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFZlcnRpY2FsUGFp
bnRlcl07CiAgICAgICAgIG1hY1RoZW1lLT5zZXROZXdQYWludGVyRm9yU2Nyb2xsYmFyKHZlcnRp
Y2FsU2Nyb2xsYmFyLCBuZXdWZXJ0aWNhbFBhaW50ZXIpOwotICAgICAgICB3a1NldFBhaW50ZXJG
b3JQYWludGVyQ29udHJvbGxlcihtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpLCBu
ZXdWZXJ0aWNhbFBhaW50ZXIsIGZhbHNlKTsKKyAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXIuZ2V0KCkgc2V0VmVydGljYWxTY3JvbGxlckltcDpuZXdWZXJ0aWNhbFBhaW50ZXJd
OwogCiAgICAgICAgIC8vIFRoZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZl
cmVudCB0aGlja25lc3Nlcywgc28gd2UgbXVzdCByZS1zZXQgdGhlIAogICAgICAgICAvLyBmcmFt
ZVJlY3QgdG8gdGhlIG5ldyB0aGlja25lc3MsIGFuZCB0aGUgcmUtbGF5b3V0IGJlbG93IHdpbGwg
ZW5zdXJlIHRoZSBwb3NpdGlvbgpAQCAtMTI1NiwxMyArMTI5NCwxMyBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0CiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRh
bFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhKCktPmhvcml6b250YWxTY3JvbGxiYXIoKSkgewog
ICAgICAgICBob3Jpem9udGFsU2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICAgICAgV0tT
Y3JvbGxiYXJQYWludGVyUmVmIG9sZEhvcml6b250YWxQYWludGVyID0gd2tIb3Jpem9udGFsU2Ny
b2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5n
ZXQoKSk7Ci0gICAgICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBuZXdIb3Jpem9udGFsUGFpbnRl
ciA9IHdrTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRlcihvbGRIb3Jpem9udGFsUGFpbnRl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0eWxlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICBXS1Njcm9sbGJhclBh
aW50ZXJSZWYgb2xkSG9yaXpvbnRhbFBhaW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlci5nZXQoKSBob3Jpem9udGFsU2Nyb2xsZXJJbXBdOworICAgICAgICBXS1Njcm9sbGJhclBh
aW50ZXJSZWYgbmV3SG9yaXpvbnRhbFBhaW50ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Nj
cm9sbGVySW1wIikgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6bmV3U3R5bGUgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlob3Jpem9udGFsU2Nyb2xs
YmFyLT5jb250cm9sU2l6ZSgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRh
bDpZRVMgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNpbmdTY3JvbGxlckltcDpv
bGRIb3Jpem9udGFsUGFpbnRlcl07CiAgICAgICAgIG1hY1RoZW1lLT5zZXROZXdQYWludGVyRm9y
U2Nyb2xsYmFyKGhvcml6b250YWxTY3JvbGxiYXIsIG5ld0hvcml6b250YWxQYWludGVyKTsKLSAg
ICAgICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlci5nZXQoKSwgbmV3SG9yaXpvbnRhbFBhaW50ZXIsIHRydWUpOworICAgICAgICBb
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1w
Om5ld0hvcml6b250YWxQYWludGVyXTsKIAogICAgICAgICAvLyBUaGUgZGlmZmVyZW50IHNjcm9s
bGJhciBzdHlsZXMgaGF2ZSBkaWZmZXJlbnQgdGhpY2tuZXNzZXMsIHNvIHdlIG11c3QgcmUtc2V0
IHRoZSAKICAgICAgICAgLy8gZnJhbWVSZWN0IHRvIHRoZSBuZXcgdGhpY2tuZXNzLCBhbmQgdGhl
IHJlLWxheW91dCBiZWxvdyB3aWxsIGVuc3VyZSB0aGUgcG9zaXRpb24KQEAgLTEyOTYsNyArMTMz
NCwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzdG9wU2Nyb2xsYmFyUGFpCiAKIHZvaWQg
U2Nyb2xsQW5pbWF0b3JNYWM6OmluaXRpYWxTY3JvbGxiYXJQYWludFRpbWVyRmlyZWQoVGltZXI8
U2Nyb2xsQW5pbWF0b3JNYWM+KikKIHsKLSAgICB3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNo
U2Nyb2xsZXJzKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIC8vIFRv
IGZvcmNlIHRoZSBzY3JvbGxiYXJzIHRvIGZsYXNoLCB3ZSBoYXZlIHRvIGNhbGwgaGlkZSBmaXJz
dC4gT3RoZXJ3aXNlLCB0aGUgU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIKKyAgICAvLyBtaWdo
dCB0aGluayB0aGF0IHRoZSBzY3JvbGxiYXJzIGFyZSBhbHJlYWR5IHNob3dpbmcgYW5kIGJhaWwg
ZWFybHkuCisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgaGlkZU92ZXJs
YXlTY3JvbGxlcnNdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGZs
YXNoU2Nyb2xsZXJzXTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAkocmV2aXNpb24gOTMyMjcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgi
CiAKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi10eXBlZGVmIHN0cnVjdCBfX1dLU2Ny
b2xsYmFyUGFpbnRlciAqV0tTY3JvbGxiYXJQYWludGVyUmVmOwordHlwZWRlZiBpZCBXS1Njcm9s
bGJhclBhaW50ZXJSZWY7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQkocmV2
aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDI1IEBAIHN0YXRpYyBTY3JvbGxi
YXJQYWludGVyTWFwKiBzY3JvbGxiYXJNYXAKIAogfQogCitAaW50ZXJmYWNlIE5TT2JqZWN0IChT
Y3JvbGxiYXJQYWludGVyKQorKyAoaWQpc2Nyb2xsZXJJbXBXaXRoU3R5bGU6KE5TU2Nyb2xsZXJT
dHlsZSluZXdTY3JvbGxlclN0eWxlIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKW5ld0NvbnRy
b2xTaXplIGhvcml6b250YWw6KEJPT0wpaG9yaXpvbnRhbCByZXBsYWNpbmdTY3JvbGxlckltcDoo
aWQpcHJldmlvdXM7CistICh2b2lkKXNldEVuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKKy0gKHZvaWQp
c2V0Qm91bmRzU2l6ZTooTlNTaXplKWJvdW5kc1NpemU7CistICh2b2lkKXNldERvdWJsZVZhbHVl
Oihkb3VibGUpZG91YmxlVmFsdWU7CistICh2b2lkKXNldEtub2JQcm9wb3J0aW9uOihDR0Zsb2F0
KXByb3BvcnRpb247CistICh2b2lkKXNldEtub2JTdHlsZTooTlNTY3JvbGxlcktub2JTdHlsZSlr
bm9iU3R5bGU7CistIChCT09MKWlzSG9yaXpvbnRhbDsKKy0gKENHRmxvYXQpdHJhY2tXaWR0aDsK
Ky0gKENHRmxvYXQpdHJhY2tCb3hXaWR0aDsKKy0gKENHRmxvYXQpa25vYk1pbkxlbmd0aDsKKy0g
KENHRmxvYXQpdHJhY2tPdmVybGFwRW5kSW5zZXQ7CistIChDR0Zsb2F0KWtub2JPdmVybGFwRW5k
SW5zZXQ7CistIChDR0Zsb2F0KXRyYWNrRW5kSW5zZXQ7CistIChDR0Zsb2F0KWtub2JFbmRJbnNl
dDsKKy0gKHZvaWQpZHJhd0tub2JTbG90SW5SZWN0OihOU1JlY3Qpc2xvdFJlY3QgaGlnaGxpZ2h0
OihCT09MKWZsYWcgYWxwaGE6KENHRmxvYXQpYWxwaGE7CistICh2b2lkKWRyYXdLbm9iOworQGVu
ZAorCiBAaW50ZXJmYWNlIFNjcm9sbGJhclByZWZzT2JzZXJ2ZXIgOiBOU09iamVjdAogewogfQpA
QCAtMTU4LDcgKzE3Nyw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlZ2lzdGVyU2Nyb2xs
YmEKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCiAgICAgYm9vbCBpc0hvcml6b250
YWwgPSBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcjsKLSAg
ICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgc2Nyb2xsYmFyUGFpbnRlciA9IHdrTWFrZVNjcm9sbGJh
clBhaW50ZXIoc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpLCBpc0hvcml6b250YWwpOworICAgIFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVyID0gW05TQ2xhc3NGcm9tU3RyaW5n
KEAiTlNTY3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0eWxlOndrUmVjb21tZW5kZWRTY3Jv
bGxlclN0eWxlKCkgY29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpc2Nyb2xsYmFyLT5jb250cm9s
U2l6ZSgpIGhvcml6b250YWw6aXNIb3Jpem9udGFsIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07
CiAgICAgc2Nyb2xsYmFyTWFwKCktPmFkZChzY3JvbGxiYXIsIHNjcm9sbGJhclBhaW50ZXIpOwog
ICAgIHVwZGF0ZUVuYWJsZWRTdGF0ZShzY3JvbGxiYXIpOwogICAgIHVwZGF0ZVNjcm9sbGJhck92
ZXJsYXlTdHlsZShzY3JvbGxiYXIpOwpAQCAtMjEzLDcgKzIzMiw4IEBAIHZvaWQgU2Nyb2xsYmFy
VGhlbWVNYWM6OnByZWZlcmVuY2VzQ2hhbmcKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xs
YmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogI2lmIFVT
RShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICByZXR1cm4gd2tTY3JvbGxiYXJUaGlja25lc3Mo
Y29udHJvbFNpemUpOworICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVy
ID0gKFdLU2Nyb2xsYmFyUGFpbnRlclJlZilbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVy
SW1wIikgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6d2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBj
b250cm9sU2l6ZTpjb250cm9sU2l6ZSBob3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1w
Om5pbF07CisgICAgcmV0dXJuIFtzY3JvbGxiYXJQYWludGVyIHRyYWNrQm94V2lkdGhdOwogI2Vs
c2UKICAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVzc1tjb250cm9sU2l6ZV07CiAjZW5kaWYK
QEAgLTIyMiwzMCArMjQyLDI3IEBAIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhp
Y2tuZXMKIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNPdmVybGF5U2Nyb2xsYmFycygpIGNv
bnN0CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHJldHVybiB3a1Njcm9s
bGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycygpOworICAgIHJldHVybiB3a1JlY29tbWVu
ZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXk7CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgogfQogCi0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVS
KQotc3RhdGljIGlubGluZSB3a1Njcm9sbGVyS25vYlN0eWxlIHRvU2Nyb2xsYmFyUGFpbnRlcktu
b2JTdHlsZShTY3JvbGxiYXJPdmVybGF5U3R5bGUgc3R5bGUpCit2b2lkIFNjcm9sbGJhclRoZW1l
TWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7
Ci0gICAgc3dpdGNoIChzdHlsZSkgeworI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyAg
ICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9IHBhaW50ZXJGb3JTY3JvbGxiYXIoc2Ny
b2xsYmFyKTsKKyAgICBzd2l0Y2ggKHNjcm9sbGJhci0+c2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xs
YmFyT3ZlcmxheVN0eWxlKCkpIHsKKyAgICBjYXNlIFNjcm9sbGJhck92ZXJsYXlTdHlsZURlZmF1
bHQ6CisgICAgICAgIFtwYWludGVyIHNldEtub2JTdHlsZTpOU1Njcm9sbGVyS25vYlN0eWxlRGVm
YXVsdF07CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsYmFyT3ZlcmxheVN0eWxlRGFy
azoKLSAgICAgICAgcmV0dXJuIHdrU2Nyb2xsZXJLbm9iU3R5bGVEYXJrOworICAgICAgICBbcGFp
bnRlciBzZXRLbm9iU3R5bGU6TlNTY3JvbGxlcktub2JTdHlsZURhcmtdOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFNjcm9sbGJhck92ZXJsYXlTdHlsZUxpZ2h0OgotICAgICAgICByZXR1cm4g
d2tTY3JvbGxlcktub2JTdHlsZUxpZ2h0OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiB3
a1Njcm9sbGVyS25vYlN0eWxlRGVmYXVsdDsKKyAgICAgICAgW3BhaW50ZXIgc2V0S25vYlN0eWxl
Ok5TU2Nyb2xsZXJLbm9iU3R5bGVMaWdodF07CisgICAgICAgIGJyZWFrOwogICAgIH0KLX0KLSNl
bmRpZgotCi12b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5
bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCi17Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVS
KQotICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZShwYWludGVyRm9yU2Nyb2xsYmFy
KHNjcm9sbGJhciksIHRvU2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZShzY3JvbGxiYXItPnNjcm9s
bGFibGVBcmVhKCktPnNjcm9sbGJhck92ZXJsYXlTdHlsZSgpKSk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCkBAIC0yNzgsNyArMjk1LDkgQEAgYm9vbCBTY3Jv
bGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIoU2Nyb2xsYgogewogICAgIGludCBtaW5MZW5ndGhGb3JU
aHVtYjsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgbWluTGVuZ3RoRm9yVGh1
bWIgPSB3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExlbmd0aE5lZWRlZEZvclRodW1iKHNjcm9sbGJh
ck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSk7CisgICAgV0tTY3JvbGxiYXJQYWludGVyUmVm
IHBhaW50ZXIgPSBzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJhcikuZ2V0KCk7CisgICAgbWlu
TGVuZ3RoRm9yVGh1bWIgPSBbcGFpbnRlciBrbm9iTWluTGVuZ3RoXSArIFtwYWludGVyIHRyYWNr
T3ZlcmxhcEVuZEluc2V0XSArIFtwYWludGVyIGtub2JPdmVybGFwRW5kSW5zZXRdCisgICAgICAg
ICsgMiAqIChbcGFpbnRlciB0cmFja0VuZEluc2V0XSArIFtwYWludGVyIGtub2JFbmRJbnNldF0p
OwogI2Vsc2UKICAgICBtaW5MZW5ndGhGb3JUaHVtYiA9IDIgKiBjQnV0dG9uSW5zZXRbc2Nyb2xs
YmFyLT5jb250cm9sU2l6ZSgpXSArIGNUaHVtYk1pbkxlbmd0aFtzY3JvbGxiYXItPmNvbnRyb2xT
aXplKCldICsgMTsKICNlbmRpZgpAQCAtNDE5LDcgKzQzOCw3IEBAIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVNYWM6OnRyYWNrUmVjdChTY3IKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6bWluaW11bVRo
dW1iTGVuZ3RoKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogI2lmIFVTRShXS19TQ1JPTExCQVJf
UEFJTlRFUikKLSAgICByZXR1cm4gd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgoc2Nyb2xs
YmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdldCgpKTsKKyAgICByZXR1cm4gW3Njcm9sbGJhck1h
cCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSBrbm9iTWluTGVuZ3RoXTsKICNlbHNlCiAgICAgcmV0
dXJuIGNUaHVtYk1pbkxlbmd0aFtzY3JvbGxiYXItPmNvbnRyb2xTaXplKCldOwogI2VuZGlmCkBA
IC00NjAsMTIgKzQ3OSwzNCBAQCBzdGF0aWMgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0
YXRlCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVFbmFibGVkU3RhdGUoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrU2Ny
b2xsYmFyUGFpbnRlclNldEVuYWJsZWQoc2Nyb2xsYmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdl
dCgpLCBzY3JvbGxiYXItPmVuYWJsZWQoKSk7CisgICAgW3Njcm9sbGJhck1hcCgpLT5nZXQoc2Ny
b2xsYmFyKS5nZXQoKSBzZXRFbmFibGVkOnNjcm9sbGJhci0+ZW5hYmxlZCgpXTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgc2Ny
b2xsYmFyUGFpbnRlclBhaW50KFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVy
LCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3Qg
ZnJhbWVSZWN0KQoreworICAgIFtzY3JvbGxiYXJQYWludGVyIHNldEVuYWJsZWQ6ZW5hYmxlZF07
CisgICAgW3Njcm9sbGJhclBhaW50ZXIgc2V0Qm91bmRzU2l6ZTogTlNTaXplRnJvbUNHU2l6ZShm
cmFtZVJlY3Quc2l6ZSldOworICAgIFtzY3JvbGxiYXJQYWludGVyIHNldERvdWJsZVZhbHVlOnZh
bHVlXTsKKyAgICBbc2Nyb2xsYmFyUGFpbnRlciBzZXRLbm9iUHJvcG9ydGlvbjpwcm9wb3J0aW9u
XTsKKworICAgIC8vIFRoZSBzY3JvbGxiYXIncyBmcmFtZVJlY3QgaW5jbHVkZXMgYSBzaWRlIGlu
c2V0IGZvciBvdmVybGF5IHNjcm9sbGVycywgc28gd2UgaGF2ZSB0byB1c2UgdGhlIAorICAgIC8v
IHRyYWNrV2lkdGggZm9yIGRyYXdLbm9iU2xvdEluUmVjdAorICAgIE5TUmVjdCB0cmFja1JlY3Q7
CisgICAgaWYgKFtzY3JvbGxiYXJQYWludGVyIGlzSG9yaXpvbnRhbF0pCisgICAgICAgIHRyYWNr
UmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgZnJhbWVSZWN0LnNpemUud2lkdGgsIFtzY3JvbGxiYXJQ
YWludGVyIHRyYWNrV2lkdGhdKTsKKyAgICBlbHNlCisgICAgICAgIHRyYWNrUmVjdCA9IE5TTWFr
ZVJlY3QoMCwgMCwgW3Njcm9sbGJhclBhaW50ZXIgdHJhY2tXaWR0aF0sIGZyYW1lUmVjdC5zaXpl
LmhlaWdodCk7CisgICAgW3Njcm9sbGJhclBhaW50ZXIgZHJhd0tub2JTbG90SW5SZWN0OnRyYWNr
UmVjdCBoaWdobGlnaHQ6Tk9dOworCisgICAgLy8gSWYgdGhlIHNjcm9sbGJhciBpcyBub3QgZW5h
YmxlZCwgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIHNjcm9sbCB0bywgYW5kIHdlIHNob3VsZG4n
dAorICAgIC8vIGNhbGwgZHJhd0tub2IuCisgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIFtzY3Jv
bGxiYXJQYWludGVyIGRyYXdLbm9iXTsKK30KKwogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFp
bnQoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
SW50UmVjdCYgZGFtYWdlUmVjdCkKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCkBA
IC00OTYsNyArNTM3LDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Nyb2xsYmFy
KgogICAgIGNvbnRleHQtPmNsaXAoZGFtYWdlUmVjdCk7CiAgICAgY29udGV4dC0+dHJhbnNsYXRl
KHNjcm9sbGJhci0+ZnJhbWVSZWN0KCkueCgpLCBzY3JvbGxiYXItPmZyYW1lUmVjdCgpLnkoKSk7
CiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChjb250ZXh0KTsK
LSAgICB3a1Njcm9sbGJhclBhaW50ZXJQYWludChzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJh
cikuZ2V0KCksCisgICAgc2Nyb2xsYmFyUGFpbnRlclBhaW50KHNjcm9sbGJhck1hcCgpLT5nZXQo
c2Nyb2xsYmFyKS5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXIt
PmVuYWJsZWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oc2Nyb2xsYmFyLT52aXNp
YmxlU2l6ZSgpKSAtIG92ZXJoYW5nKSAvIHNjcm9sbGJhci0+dG90YWxTaXplKCksCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgJKHJldmlzaW9uIDkzMjI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDU0ICsyNTAsNyBA
QCBleHRlcm4gQ1RUeXBlc2V0dGVyUmVmICgqd2tDcmVhdGVDVFR5cGVzCiBleHRlcm4gQ0dDb250
ZXh0UmVmICgqd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFjZSwg
dW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3Bh
Y2UpOwogZXh0ZXJuIENHSW1hZ2VSZWYgKCp3a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZSko
Q0dDb250ZXh0UmVmIGNvbnRleHQpOwogCi10eXBlZGVmIHN0cnVjdCBfX1dLU2Nyb2xsYmFyUGFp
bnRlciAqV0tTY3JvbGxiYXJQYWludGVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgX19XS1Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyICpXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmOwotCi1l
eHRlcm4gV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcikoaW50
IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1leHRlcm4gV0tTY3JvbGxiYXJQYWlu
dGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKShXS1Njcm9sbGJhclBh
aW50ZXJSZWYgb2xkUGFpbnRlciwgaW50IG5ld1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJvb2wg
aXNIb3Jpem9udGFsKTsKLWV4dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVyU2V0RGVsZWdh
dGUpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgaWQgc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlKTsK
LWV4dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVyU2V0RW5hYmxlZCkoV0tTY3JvbGxiYXJQ
YWludGVyUmVmLCBib29sIGVuYWJsZWQpOwotZXh0ZXJuIHZvaWQgKCp3a1Njcm9sbGJhclBhaW50
ZXJQYWludCkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1
ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVSZWN0KTsKLWV4dGVybiB2b2lkICgq
d2tTY3JvbGxiYXJQYWludGVyRm9yY2VGbGFzaFNjcm9sbGVycykoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZik7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJUaGlja25lc3MpKGludCBj
b250cm9sU2l6ZSk7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgp
KFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVt
VG90YWxMZW5ndGhOZWVkZWRGb3JUaHVtYikoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVy
biBDR0Zsb2F0ICgqd2tTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKShXS1Njcm9sbGJhclBhaW50
ZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEpKFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dGbG9hdCk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrU2Nyb2xs
YmFyUGFpbnRlclRyYWNrQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1leHRlcm4gdm9p
ZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJl
ZiwgQ0dGbG9hdCk7Ci1leHRlcm4gYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlcklzSG9yaXpvbnRh
bCkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVybiBDR1JlY3QgKCp3a1Njcm9sbGJhclBh
aW50ZXJLbm9iUmVjdCkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tT
Y3JvbGxiYXJQYWludGVyU2V0T3ZlcmxheVN0YXRlKShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIGlu
dCBvdmVybGF5U2Nyb2xsZXJTdGF0ZSk7Ci0KLWVudW0gewotICAgIHdrU2Nyb2xsZXJLbm9iU3R5
bGVEZWZhdWx0ID0gMCwKLSAgICB3a1Njcm9sbGVyS25vYlN0eWxlRGFyayA9IDEsCi0gICAgd2tT
Y3JvbGxlcktub2JTdHlsZUxpZ2h0ID0gMgotfTsKLXR5cGVkZWYgdWludDMyIHdrU2Nyb2xsZXJL
bm9iU3R5bGU7Ci1leHRlcm4gdm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZSko
V0tTY3JvbGxiYXJQYWludGVyUmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKLSAgICAKLWV4dGVy
biBXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXIpKGlkIHBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUpOwotZXh0ZXJuIHZvaWQg
KCp3a1NldFBhaW50ZXJGb3JQYWludGVyQ29udHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlclJlZiwgV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1l
eHRlcm4gV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tWZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJG
b3JDb250cm9sbGVyKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiBX
S1Njcm9sbGJhclBhaW50ZXJSZWYgKCp3a0hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRm9yQ29u
dHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gaW50ICgq
d2tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKShXS1Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clN0eWxlKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmLCBpbnQgbmV3U3R5bGUpOwot
ZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhU2Nyb2xsZWQpKFdLU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhV2lsbFBhaW50KShXS1Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tNb3VzZUVudGVy
ZWRDb250ZW50QXJlYSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4g
dm9pZCAoKndrTW91c2VFeGl0ZWRDb250ZW50QXJlYSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrTW91c2VNb3ZlZEluQ29udGVudEFyZWEpKFdLU2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1dpbGxTdGFydExp
dmVSZXNpemUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQg
KCp3a0NvbnRlbnRBcmVhUmVzaXplZCkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7
Ci1leHRlcm4gdm9pZCAoKndrV2lsbEVuZExpdmVSZXNpemUpKFdLU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhRGlkU2hvdykoV0tTY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrQ29udGVudEFyZWFE
aWRIaWRlKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgq
d2tEaWRCZWdpblNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYp
OwotZXh0ZXJuIHZvaWQgKCp3a0RpZEVuZFNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYpOwotCi1leHRlcm4gYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlclVzZXNP
dmVybGF5U2Nyb2xsZXJzKSh2b2lkKTsKK2V4dGVybiBpbnQgKCp3a1JlY29tbWVuZGVkU2Nyb2xs
ZXJTdHlsZSkodm9pZCk7CiAKIGV4dGVybiBib29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2VkT25P
ckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDkz
MjI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzMyw0NCArMTMzLDcgQEAgQ1RUeXBlc2V0dGVyUmVm
ICgqd2tDcmVhdGVDVFR5cGVzZXR0ZXJXaQogQ0dDb250ZXh0UmVmICgqd2tJT1N1cmZhY2VDb250
ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVk
IGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpOwogQ0dJbWFnZVJlZiAoKndrSU9T
dXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKShDR0NvbnRleHRSZWYgY29udGV4dCk7CiAKLVdLU2Ny
b2xsYmFyUGFpbnRlclJlZiAoKndrTWFrZVNjcm9sbGJhclBhaW50ZXIpKGludCBjb250cm9sU2l6
ZSwgYm9vbCBpc0hvcml6b250YWwpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tNYWtlU2Ny
b2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKShXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkUGFpbnRl
ciwgaW50IG5ld1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKTsKLXZv
aWQgKCp3a1Njcm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZSkoV0tTY3JvbGxiYXJQYWludGVyUmVm
LCBpZCBzY3JvbGxiYXJQYWludGVyRGVsZWdhdGUpOwotdm9pZCAoKndrU2Nyb2xsYmFyUGFpbnRl
clNldEVuYWJsZWQpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgYm9vbCBlbmFibGVkKTsKLXZvaWQg
KCp3a1Njcm9sbGJhclBhaW50ZXJQYWludCkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGVu
YWJsZWQsIGRvdWJsZSB2YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVSZWN0
KTsKLXZvaWQgKCp3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWludCAoKndrU2Nyb2xsYmFyVGhpY2tuZXNzKShp
bnQgY29udHJvbFNpemUpOwotaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgpKFdL
U2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1pbnQgKCp3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExlbmd0
aE5lZWRlZEZvclRodW1iKShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotQ0dGbG9hdCAoKndrU2Ny
b2xsYmFyUGFpbnRlcktub2JBbHBoYSkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLXZvaWQgKCp3
a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dG
bG9hdCk7Ci1DR0Zsb2F0ICgqd2tTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYSkoV0tTY3JvbGxi
YXJQYWludGVyUmVmKTsKLXZvaWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKShX
S1Njcm9sbGJhclBhaW50ZXJSZWYsIENHRmxvYXQpOwotYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRl
cklzSG9yaXpvbnRhbCkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLUNHUmVjdCAoKndrU2Nyb2xs
YmFyUGFpbnRlcktub2JSZWN0KShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotdm9pZCAoKndrU2Ny
b2xsYmFyUGFpbnRlclNldE92ZXJsYXlTdGF0ZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBpbnQg
b3ZlcmxheVNjcm9sbGVyU3RhdGUpOwotdm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JT
dHlsZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKLQotV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiAoKndrTWFrZVNjcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyKShpZCBwYWludGVyQ29udHJvbGxlckRlbGVnYXRlKTsKLXZvaWQgKCp3a1NldFBhaW50
ZXJGb3JQYWludGVyQ29udHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiwg
V0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1XS1Njcm9sbGJhclBh
aW50ZXJSZWYgKCp3a1ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpKFdLU2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tI
b3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYpOwotaW50ICgqd2tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxl
KShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a1NldFNjcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyU3R5bGUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYs
IGludCBuZXdTdHlsZSk7Ci12b2lkICgqd2tDb250ZW50QXJlYVNjcm9sbGVkKShXS1Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a0NvbnRlbnRBcmVhV2lsbFBhaW50KShX
S1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a01vdXNlRW50ZXJlZENv
bnRlbnRBcmVhKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a01v
dXNlRXhpdGVkQ29udGVudEFyZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwot
dm9pZCAoKndrTW91c2VNb3ZlZEluQ29udGVudEFyZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYpOwotdm9pZCAoKndrV2lsbFN0YXJ0TGl2ZVJlc2l6ZSkoV0tTY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlclJlZik7Ci12b2lkICgqd2tDb250ZW50QXJlYVJlc2l6ZWQpKFdLU2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAoKndrV2lsbEVuZExpdmVSZXNpemUpKFdL
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAoKndrQ29udGVudEFyZWFEaWRT
aG93KShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a0NvbnRlbnRB
cmVhRGlkSGlkZSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkICgqd2tE
aWRCZWdpblNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwot
dm9pZCAoKndrRGlkRW5kU2Nyb2xsR2VzdHVyZSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clJlZik7Ci0KLWJvb2wgKCp3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyko
dm9pZCk7CitpbnQgKCp3a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSkodm9pZCk7CiAKIGJvb2wg
KCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzM0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTE4ICBCZXRoIERha2lu
ICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0
OTUKKyAgICAgICAgTGlvbi1zcGVjaWZpYyBzY3JvbGxlciBTUElzIGNhbiB1c2UgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBpbnN0ZWFkIG9mIAorICAgICAgICBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFj
ZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKwogMjAxMS0wOC0x
OCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFkZSBzb21lIGNv
ZGUgZXZlbiBtb3JlIHByaXZhdGUgdG8gYSBwYXJ0aWN1bGFyIGZpbGUgYW5kIGNsYXNzCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1J
bnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiA5MzIyNykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUlu
dGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTEzLDQyICsxMTMsNyBAQCB2b2lkIEluaXRX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29udGV4
dENyZWF0ZSk7CiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKTsKICAg
ICAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9u
cyk7Ci0gICAgICAgIElOSVQoTWFrZVNjcm9sbGJhclBhaW50ZXIpOwotICAgICAgICBJTklUKFNj
cm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZSk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRl
clNldEVuYWJsZWQpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJQYWludCk7Ci0gICAg
ICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlckZvcmNlRmxhc2hTY3JvbGxlcnMpOwotICAgICAgICBJ
TklUKFNjcm9sbGJhclRoaWNrbmVzcyk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyTWluaW11bVRo
dW1iTGVuZ3RoKTsKLSAgICAgICAgSU5JVChTY3JvbGxiYXJNaW5pbXVtVG90YWxMZW5ndGhOZWVk
ZWRGb3JUaHVtYik7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0g
ICAgICAgIElOSVQoU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0gICAgICAgIElOSVQo
U2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEpOwotICAgICAgICBJTklUKFNldFNjcm9sbGJhclBh
aW50ZXJUcmFja0FscGhhKTsKLSAgICAgICAgSU5JVChTY3JvbGxiYXJQYWludGVySXNIb3Jpem9u
dGFsKTsKLSAgICAgICAgSU5JVChTY3JvbGxiYXJQYWludGVyS25vYlJlY3QpOwotICAgICAgICBJ
TklUKFNjcm9sbGJhclBhaW50ZXJTZXRPdmVybGF5U3RhdGUpOwotICAgICAgICBJTklUKFNldFNj
cm9sbGJhclBhaW50ZXJLbm9iU3R5bGUpOwotICAgICAgICBJTklUKE1ha2VTY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlcik7Ci0gICAgICAgIElOSVQoTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFp
bnRlcik7Ci0gICAgICAgIElOSVQoU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKTsKLSAg
ICAgICAgSU5JVChWZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKTsKLSAgICAg
ICAgSU5JVChIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOwotICAgICAg
ICBJTklUKFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUpOwotICAgICAgICBJTklUKFNl
dFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUpOwotICAgICAgICBJTklUKENvbnRlbnRB
cmVhU2Nyb2xsZWQpOwotICAgICAgICBJTklUKENvbnRlbnRBcmVhV2lsbFBhaW50KTsKLSAgICAg
ICAgSU5JVChNb3VzZUVudGVyZWRDb250ZW50QXJlYSk7Ci0gICAgICAgIElOSVQoTW91c2VFeGl0
ZWRDb250ZW50QXJlYSk7Ci0gICAgICAgIElOSVQoTW91c2VNb3ZlZEluQ29udGVudEFyZWEpOwot
ICAgICAgICBJTklUKFdpbGxTdGFydExpdmVSZXNpemUpOwotICAgICAgICBJTklUKENvbnRlbnRB
cmVhUmVzaXplZCk7Ci0gICAgICAgIElOSVQoV2lsbEVuZExpdmVSZXNpemUpOwotICAgICAgICBJ
TklUKENvbnRlbnRBcmVhRGlkU2hvdyk7Ci0gICAgICAgIElOSVQoQ29udGVudEFyZWFEaWRIaWRl
KTsKLSAgICAgICAgSU5JVChEaWRCZWdpblNjcm9sbEdlc3R1cmUpOwotICAgICAgICBJTklUKERp
ZEVuZFNjcm9sbEdlc3R1cmUpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJVc2VzT3Zl
cmxheVNjcm9sbGVycyk7CisgICAgICAgIElOSVQoUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKTsK
ICAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsK
ICAgICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwogICAg
ICAgICBJTklUKEFWQXNzZXRSZXNvbHZlZFVSTCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA5MzM0MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTE4ICBCZXRoIERha2luICA8YmRha2luQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0OTUKKyAgICAgICAgTGlv
bi1zcGVjaWZpYyBzY3JvbGxlciBTUElzIGNhbiB1c2UgZm9yd2FyZCBkZWNsYXJhdGlvbiBpbnN0
ZWFkIG9mIAorICAgICAgICBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlKToKKwogMjAxMS0wOC0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIE1vcmUgQysrMHggbGliYysrIGJ1aWxkIGZpeGVzCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tCShyZXZpc2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTIyLDQy
ICsxMjIsNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5J
VChJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKTsKICAgICBJTklUKElPU3VyZmFjZUNvbnRleHRDcmVh
dGVJbWFnZSk7CiAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVy
QW5kT3B0aW9ucyk7Ci0gICAgSU5JVChNYWtlU2Nyb2xsYmFyUGFpbnRlcik7Ci0gICAgSU5JVChT
Y3JvbGxiYXJQYWludGVyU2V0RGVsZWdhdGUpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlclNl
dEVuYWJsZWQpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlclBhaW50KTsKLSAgICBJTklUKFNj
cm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKTsKLSAgICBJTklUKFNjcm9sbGJhclRo
aWNrbmVzcyk7Ci0gICAgSU5JVChTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgpOwotICAgIElO
SVQoU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIpOwotICAgIElOSVQo
U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0gICAgSU5JVChTZXRTY3JvbGxiYXJQYWludGVy
S25vYkFscGhhKTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKTsKLSAgICBJ
TklUKFNldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKTsKLSAgICBJTklUKFNjcm9sbGJhclBh
aW50ZXJJc0hvcml6b250YWwpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0KTsK
LSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJTZXRPdmVybGF5U3RhdGUpOwotICAgIElOSVQoU2V0
U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZSk7Ci0gICAgSU5JVChNYWtlU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXIpOwotICAgIElOSVQoTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRlcik7
Ci0gICAgSU5JVChTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIpOwotICAgIElOSVQoVmVy
dGljYWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxlcik7Ci0gICAgSU5JVChIb3Jpem9udGFs
U2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJTdHlsZSk7Ci0gICAgSU5JVChTZXRTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clN0eWxlKTsKLSAgICBJTklUKENvbnRlbnRBcmVhU2Nyb2xsZWQpOwotICAgIElOSVQoQ29udGVu
dEFyZWFXaWxsUGFpbnQpOwotICAgIElOSVQoTW91c2VFbnRlcmVkQ29udGVudEFyZWEpOwotICAg
IElOSVQoTW91c2VFeGl0ZWRDb250ZW50QXJlYSk7Ci0gICAgSU5JVChNb3VzZU1vdmVkSW5Db250
ZW50QXJlYSk7Ci0gICAgSU5JVChXaWxsU3RhcnRMaXZlUmVzaXplKTsKLSAgICBJTklUKENvbnRl
bnRBcmVhUmVzaXplZCk7Ci0gICAgSU5JVChXaWxsRW5kTGl2ZVJlc2l6ZSk7Ci0gICAgSU5JVChD
b250ZW50QXJlYURpZFNob3cpOwotICAgIElOSVQoQ29udGVudEFyZWFEaWRIaWRlKTsKLSAgICBJ
TklUKERpZEJlZ2luU2Nyb2xsR2VzdHVyZSk7Ci0gICAgSU5JVChEaWRFbmRTY3JvbGxHZXN0dXJl
KTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyk7CisgICAg
SU5JVChSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUpOwogICAgIElOSVQoRXhlY3V0YWJsZVdhc0xp
bmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7CiAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFBy
b3ZpZGVyRGlzcGxheU5hbWUpOwogICAgIElOSVQoQVZBc3NldFJlc29sdmVkVVJMKTsK
</data>
<flag name="commit-queue"
          id="100215"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104412</attachid>
            <date>2011-08-18 15:40:15 -0700</date>
            <delta_ts>2011-08-18 16:45:15 -0700</delta_ts>
            <desc>Patch which should build on Mac 10.6</desc>
            <filename>for-review-os2.txt</filename>
            <type>text/plain</type>
            <size>42498</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMzQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDgtMTggIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NjQ5NQorICAgICAgICBMaW9uLXNwZWNpZmljIHNjcm9sbGVyIFNQSXMgY2FuIHVzZSBmb3J3YXJk
IGRlY2xhcmF0aW9uIGluc3RlYWQgb2YgCisgICAgICAgIFdlYktpdFN5c3RlbUludGVyZmFjZQor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tOgorICAgICAgICAoLVtTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlIHNjcm9s
bGVySW1wUGFpcjpjb252ZXJ0Q29udGVudFBvaW50OnRvU2Nyb2xsZXJJbXA6XSk6CisgICAgICAg
ICgtW1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgc2Nyb2xsZXJJbXBQYWlyOnVw
ZGF0ZVNjcm9sbGVyU3R5bGVGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6XSk6CisgICAg
ICAgICgtW1Njcm9sbGJhclBhcnRBbmltYXRpb24gaW5pdFdpdGhTY3JvbGxiYXJQYWludGVyOnBh
cnQ6V2ViQ29yZTo6c2Nyb2xsQW5pbWF0b3I6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRp
b246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhcnRBbmltYXRpb24gc2V0Q3VycmVudFByb2dy
ZXNzOl0pOgorICAgICAgICAoLVtTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgc2V0VXBBbmltYXRp
b246c2Nyb2xsZXJQYWludGVyOnBhcnQ6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRpb246
XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSBzY3JvbGxlckltcDphbmlt
YXRlS25vYkFscGhhVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJE
ZWxlZ2F0ZSBzY3JvbGxlckltcDphbmltYXRlVHJhY2tBbHBoYVRvOmR1cmF0aW9uOl0pOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVBvc2l0aW9uQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFXaWxs
UGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRW50ZXJl
ZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3Vz
ZUV4aXRlZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
Ojptb3VzZU1vdmVkSW5Db250ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6Y29udGVudHNSZXNpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OmRpZEJlZ2luU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkRW5kU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJh
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkSG9yaXpvbnRh
bFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJl
bW92ZUhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM6OnVwZGF0ZVNjcm9sbGVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6OmluaXRpYWxTY3JvbGxiYXJQYWludFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFj
OjpyZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
TWFjOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnVwZGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVNYWM6Om1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNj
cm9sbGJhclBhaW50ZXJQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisK
IDIwMTEtMDgtMTggIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBBbiBFdmVudFNvdXJjZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgVHlwZUVycm9yLCB3aGVu
IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGlzIG5vdCBlbm91Z2guCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTQ2Myw0NyArMTQ2MywxMiBAQCBfX1pON1dlYkNvcmUyMExv
Z05vdFlldEltcGxlbWVudGVkRQogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi1fd2tDb250ZW50
QXJlYURpZEhpZGUKLV93a0NvbnRlbnRBcmVhRGlkU2hvdwotX3drQ29udGVudEFyZWFSZXNpemVk
Ci1fd2tDb250ZW50QXJlYVNjcm9sbGVkCi1fd2tDb250ZW50QXJlYVdpbGxQYWludAogX3drQ29w
eURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lCiBfd2tDcmVhdGVDVFR5cGVzZXR0ZXJX
aXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucwotX3drRGlkQmVnaW5TY3JvbGxHZXN0dXJlCi1f
d2tEaWRFbmRTY3JvbGxHZXN0dXJlCitfd2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUKIF93a0V4
ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQKLV93a0hvcml6b250YWxTY3Jv
bGxiYXJQYWludGVyRm9yQ29udHJvbGxlcgogX3drSU9TdXJmYWNlQ29udGV4dENyZWF0ZQogX3dr
SU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlCi1fd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcgotX3dr
TWFrZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyCi1fd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1l
bnRQYWludGVyCi1fd2tNb3VzZUVudGVyZWRDb250ZW50QXJlYQotX3drTW91c2VFeGl0ZWRDb250
ZW50QXJlYQotX3drTW91c2VNb3ZlZEluQ29udGVudEFyZWEKLV93a1Njcm9sbGJhck1pbmltdW1U
aHVtYkxlbmd0aAotX3drU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIK
LV93a1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUKLV93a1Njcm9sbGJhclBhaW50ZXJG
b3JjZUZsYXNoU2Nyb2xsZXJzCi1fd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFsCi1fd2tT
Y3JvbGxiYXJQYWludGVyS25vYkFscGhhCi1fd2tTY3JvbGxiYXJQYWludGVyS25vYlJlY3QKLV93
a1Njcm9sbGJhclBhaW50ZXJQYWludAotX3drU2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlCi1f
d2tTY3JvbGxiYXJQYWludGVyU2V0RW5hYmxlZAotX3drU2Nyb2xsYmFyUGFpbnRlclNldE92ZXJs
YXlTdGF0ZQotX3drU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEKLV93a1Njcm9sbGJhclBhaW50
ZXJVc2VzT3ZlcmxheVNjcm9sbGVycwotX3drU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZQot
X3drU2Nyb2xsYmFyVGhpY2tuZXNzCi1fd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIK
LV93a1NldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUKLV93a1NldFNjcm9sbGJhclBh
aW50ZXJLbm9iQWxwaGEKLV93a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhCi1fd2tWZXJ0
aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyCi1fd2tXaWxsRW5kTGl2ZVJlc2l6ZQot
X3drV2lsbFN0YXJ0TGl2ZVJlc2l6ZQogX3drQVZBc3NldFJlc29sdmVkVVJMCiBfd2tDdXJzb3IK
ICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBj
bGFzcyBTY3JvbGxiYXJQYWludGVyRGVsZWdhdGU7CiAjZW5kaWYKIAogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLXR5cGVkZWYgc3RydWN0IF9fV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlciAqV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKK3R5cGVkZWYgaWQgV0tTY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCShyZXZpc2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNDEgQEAgLSAo
TlNQb2ludCl0YXJnZXRPcmlnaW47CiAtIChDR0Zsb2F0KV9wcm9ncmVzczsKIEBlbmQKIAorQGlu
dGVyZmFjZSBOU09iamVjdCAoU2Nyb2xsYmFyUGFpbnRlcikKKysgKGlkKXNjcm9sbGVySW1wV2l0
aFN0eWxlOihOU1Njcm9sbGVyU3R5bGUpbmV3U2Nyb2xsZXJTdHlsZSBjb250cm9sU2l6ZTooTlND
b250cm9sU2l6ZSluZXdDb250cm9sU2l6ZSBob3Jpem9udGFsOihCT09MKWhvcml6b250YWwgcmVw
bGFjaW5nU2Nyb2xsZXJJbXA6KGlkKXByZXZpb3VzOworLSAodm9pZClzZXREZWxlZ2F0ZTooaWQp
ZGVsZWdhdGU7CistIChDR0Zsb2F0KWtub2JBbHBoYTsKKy0gKHZvaWQpc2V0S25vYkFscGhhOihD
R0Zsb2F0KWtub2JBbHBoYTsKKy0gKENHRmxvYXQpdHJhY2tBbHBoYTsKKy0gKHZvaWQpc2V0VHJh
Y2tBbHBoYTooQ0dGbG9hdCl0cmFja0FscGhhOworLSAoQk9PTClpc0hvcml6b250YWw7CistIChO
U1JlY3QpcmVjdEZvclBhcnQ6KE5TU2Nyb2xsZXJQYXJ0KXBhcnRDb2RlOworQGVuZAorCitAaW50
ZXJmYWNlIE5TT2JqZWN0IChTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcikKKy0gKHZvaWQpc2V0
RGVsZWdhdGU6KGlkKWRlbGVnYXRlOworLSAodm9pZCloaWRlT3ZlcmxheVNjcm9sbGVyczsKKy0g
KHZvaWQpZmxhc2hTY3JvbGxlcnM7CistIChpZClob3Jpem9udGFsU2Nyb2xsZXJJbXA7CistICh2
b2lkKXNldEhvcml6b250YWxTY3JvbGxlckltcDooaWQpaG9yaXpvbnRhbDsKKy0gKGlkKXZlcnRp
Y2FsU2Nyb2xsZXJJbXA7CistICh2b2lkKXNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6KGlkKXZlcnRp
Y2FsOworLSAoTlNTY3JvbGxlclN0eWxlKXNjcm9sbGVyU3R5bGU7CistICh2b2lkKXNldFNjcm9s
bGVyU3R5bGU6KE5TU2Nyb2xsZXJTdHlsZSlzY3JvbGxlclN0eWxlOworLSAodm9pZCljb250ZW50
QXJlYVNjcm9sbGVkOworLSAodm9pZCljb250ZW50QXJlYVdpbGxEcmF3OworLSAodm9pZCltb3Vz
ZUVudGVyZWRDb250ZW50QXJlYTsKKy0gKHZvaWQpbW91c2VFeGl0ZWRDb250ZW50QXJlYTsKKy0g
KHZvaWQpbW91c2VNb3ZlZEluQ29udGVudEFyZWE7CistICh2b2lkKXN0YXJ0TGl2ZVJlc2l6ZTsK
Ky0gKHZvaWQpY29udGVudEFyZWFEaWRSZXNpemU7CistICh2b2lkKWVuZExpdmVSZXNpemU7Cist
ICh2b2lkKXdpbmRvd09yZGVyZWRJbjsKKy0gKHZvaWQpd2luZG93T3JkZXJlZE91dDsKKy0gKHZv
aWQpYmVnaW5TY3JvbGxHZXN0dXJlOworLSAodm9pZCllbmRTY3JvbGxHZXN0dXJlOworQGVuZAor
CiBAaW50ZXJmYWNlIFNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIDogTlNPYmplY3QKIHsK
ICAgICBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyogX2FuaW1hdG9yOwpAQCAtMjA4LDcgKzI0
Myw3IEBAIC0gKE5TUG9pbnQpc2Nyb2xsZXJJbXBQYWlyOihpZClzY3JvbGxlckkKICAgICAgICAg
cmV0dXJuIE5TWmVyb1BvaW50OwogCiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiBzY3JvbGxiYXIg
PSAwOwotICAgIGlmICh3a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwoKFdLU2Nyb2xsYmFy
UGFpbnRlclJlZilzY3JvbGxlckltcCkpCisgICAgaWYgKFtzY3JvbGxlckltcCBpc0hvcml6b250
YWxdKQogICAgICAgICBzY3JvbGxiYXIgPSBfYW5pbWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPmhv
cml6b250YWxTY3JvbGxiYXIoKTsKICAgICBlbHNlIAogICAgICAgICBzY3JvbGxiYXIgPSBfYW5p
bWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC0yMzUsNyAr
MjcwLDcgQEAgLSAodm9pZClzY3JvbGxlckltcFBhaXI6KGlkKXNjcm9sbGVySW1wUAogICAgIGlm
ICghX2FuaW1hdG9yKQogICAgICAgICByZXR1cm47CiAKLSAgICB3a1NldFNjcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyU3R5bGUoKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpc2Nyb2xs
ZXJJbXBQYWlyLCBuZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUpOworICAgIFtzY3JvbGxlcklt
cFBhaXIgc2V0U2Nyb2xsZXJTdHlsZTpuZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGVdOwogICAg
IF9hbmltYXRvci0+dXBkYXRlU2Nyb2xsZXJTdHlsZSgpOwogfQogCkBAIC0yNjMsNyArMjk4LDcg
QEAgLSAoaWQpaW5pdFdpdGhTY3JvbGxiYXJQYWludGVyOihXS1Njcm9sbAogICAgIF9zY3JvbGxl
clBhaW50ZXIgPSBzY3JvbGxlclBhaW50ZXI7CiAgICAgX3BhcnQgPSBwYXJ0OwogICAgIF9hbmlt
YXRvciA9IHNjcm9sbEFuaW1hdG9yOwotICAgIF9pbml0aWFsQWxwaGEgPSBfcGFydCA9PSBXZWJD
b3JlOjpUaHVtYlBhcnQgPyB3a1Njcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEoX3Njcm9sbGVyUGFp
bnRlci5nZXQoKSkgOiB3a1Njcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKF9zY3JvbGxlclBhaW50
ZXIuZ2V0KCkpOworICAgIF9pbml0aWFsQWxwaGEgPSBfcGFydCA9PSBXZWJDb3JlOjpUaHVtYlBh
cnQgPyBbX3Njcm9sbGVyUGFpbnRlci5nZXQoKSBrbm9iQWxwaGFdIDogW19zY3JvbGxlclBhaW50
ZXIuZ2V0KCkgdHJhY2tBbHBoYV07CiAgICAgX25ld0FscGhhID0gbmV3QWxwaGE7CiAgICAgCiAg
ICAgcmV0dXJuIHNlbGY7ICAgIApAQCAtMjgzLDkgKzMxOCw5IEBAIC0gKHZvaWQpc2V0Q3VycmVu
dFByb2dyZXNzOihOU0FuaW1hdGlvblAKICAgICAgICAgY3VycmVudEFscGhhID0gcHJvZ3Jlc3M7
CiAgICAgCiAgICAgaWYgKF9wYXJ0ID09IFdlYkNvcmU6OlRodW1iUGFydCkKLSAgICAgICAgd2tT
ZXRTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKF9zY3JvbGxlclBhaW50ZXIuZ2V0KCksIGN1cnJl
bnRBbHBoYSk7CisgICAgICAgIFtfc2Nyb2xsZXJQYWludGVyLmdldCgpIHNldEtub2JBbHBoYTpj
dXJyZW50QWxwaGFdOwogICAgIGVsc2UKLSAgICAgICAgd2tTZXRTY3JvbGxiYXJQYWludGVyVHJh
Y2tBbHBoYShfc2Nyb2xsZXJQYWludGVyLmdldCgpLCBjdXJyZW50QWxwaGEpOworICAgICAgICBb
X3Njcm9sbGVyUGFpbnRlci5nZXQoKSBzZXRUcmFja0FscGhhOmN1cnJlbnRBbHBoYV07CiAKICAg
ICAvLyBJbnZhbGlkYXRlIHRoZSBzY3JvbGxiYXJzIHNvIHRoYXQgdGhleSBwYWludCB0aGUgYW5p
bWF0aW9uCiAgICAgaWYgKFdlYkNvcmU6OlNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIgPSBf
YW5pbWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkpCkBAIC0zODEs
OSArNDE2LDkgQEAgLSAodm9pZClzZXRVcEFuaW1hdGlvbjooUmV0YWluUHRyPFNjcm9sbAogICAg
ICAgICBzY3JvbGxiYXJQYXJ0QW5pbWF0aW9uID0gbmlsOwogICAgIH0KIAotICAgIGlmIChwYXJ0
ID09IFdlYkNvcmU6OlRodW1iUGFydCAmJiAhd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFs
KHNjcm9sbGVyUGFpbnRlcikpIHsKKyAgICBpZiAocGFydCA9PSBXZWJDb3JlOjpUaHVtYlBhcnQg
JiYgIVtzY3JvbGxlclBhaW50ZXIgaXNIb3Jpem9udGFsXSkgewogICAgICAgICBpZiAobmV3QWxw
aGEgPT0gMSkgewotICAgICAgICAgICAgSW50UmVjdCB0aHVtYlJlY3QgPSBJbnRSZWN0KHdrU2Ny
b2xsYmFyUGFpbnRlcktub2JSZWN0KHNjcm9sbGVyUGFpbnRlcikpOworICAgICAgICAgICAgSW50
UmVjdCB0aHVtYlJlY3QgPSBJbnRSZWN0KFtzY3JvbGxlclBhaW50ZXIgcmVjdEZvclBhcnQ6TlNT
Y3JvbGxlcktub2JdKTsKICAgICAgICAgICAgIF9hbmltYXRvci0+c2V0VmlzaWJsZVNjcm9sbGVy
VGh1bWJSZWN0KHRodW1iUmVjdCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgX2FuaW1h
dG9yLT5zZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoSW50UmVjdCgpKTsKQEAgLTQwNyw3ICs0
NDIsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltCiAgICAgICAg
IHJldHVybjsKIAogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxlclBhaW50ZXIgPSAo
V0tTY3JvbGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1wOwotICAgIGlmICh3a1Njcm9sbGJhclBh
aW50ZXJJc0hvcml6b250YWwoc2Nyb2xsZXJQYWludGVyKSkKKyAgICBpZiAoW3Njcm9sbGVySW1w
IGlzSG9yaXpvbnRhbF0pCiAgICAgICAgIFtzZWxmIHNldFVwQW5pbWF0aW9uOl9ob3Jpem9udGFs
S25vYkFuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVyIHBhcnQ6V2ViQ29y
ZTo6VGh1bWJQYXJ0IGFuaW1hdGVBbHBoYVRvOm5ld0tub2JBbHBoYSBkdXJhdGlvbjpkdXJhdGlv
bl07CiAgICAgZWxzZQogICAgICAgICBbc2VsZiBzZXRVcEFuaW1hdGlvbjpfdmVydGljYWxLbm9i
QW5pbWF0aW9uIHNjcm9sbGVyUGFpbnRlcjpzY3JvbGxlclBhaW50ZXIgcGFydDpXZWJDb3JlOjpU
aHVtYlBhcnQgYW5pbWF0ZUFscGhhVG86bmV3S25vYkFscGhhIGR1cmF0aW9uOmR1cmF0aW9uXTsK
QEAgLTQxOSw3ICs0NTQsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBh
bmltCiAgICAgICAgIHJldHVybjsKIAogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxl
clBhaW50ZXIgPSAoV0tTY3JvbGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1wOwotICAgIGlmICh3
a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwoc2Nyb2xsZXJQYWludGVyKSkKKyAgICBpZiAo
W3Njcm9sbGVySW1wIGlzSG9yaXpvbnRhbF0pCiAgICAgICAgIFtzZWxmIHNldFVwQW5pbWF0aW9u
Ol9ob3Jpem9udGFsVHJhY2tBbmltYXRpb24gc2Nyb2xsZXJQYWludGVyOnNjcm9sbGVyUGFpbnRl
ciBwYXJ0OldlYkNvcmU6OkJhY2tUcmFja1BhcnQgYW5pbWF0ZUFscGhhVG86bmV3VHJhY2tBbHBo
YSBkdXJhdGlvbjpkdXJhdGlvbl07CiAgICAgZWxzZQogICAgICAgICBbc2VsZiBzZXRVcEFuaW1h
dGlvbjpfdmVydGljYWxUcmFja0FuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWlu
dGVyIHBhcnQ6V2ViQ29yZTo6QmFja1RyYWNrUGFydCBhbmltYXRlQWxwaGFUbzpuZXdUcmFja0Fs
cGhhIGR1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTQ3Myw3ICs1MDgsMTAgQEAgU2Nyb2xsQW5pbWF0
b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKFNjcgogCiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlO
VEVSKQogICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5hZG9wdE5TKFtb
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxB
bmltYXRvcjp0aGlzXSk7Ci0gICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IHdrTWFr
ZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJE
ZWxlZ2F0ZS5nZXQoKSk7CisgICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IFtbW05T
Q2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcFBhaXIiKSBhbGxvY10gaW5pdF0gYXV0b3Jl
bGVhc2VdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldERlbGVn
YXRlOm1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0U2Nyb2xsZXJTdHlsZTp3a1JlY29t
bWVuZGVkU2Nyb2xsZXJTdHlsZSgpXTsKKwogICAgIG1fc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRl
LmFkb3B0TlMoW1tTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xs
QW5pbWF0b3I6dGhpc10pOwogI2VuZGlmCiB9CkBAIC00ODIsNyArNTIwLDcgQEAgU2Nyb2xsQW5p
bWF0b3JNYWM6On5TY3JvbGxBbmltYXRvck1hYygpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9Q
QUlOVEVSKQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkg
c2Nyb2xsQW5pbWF0b3JEZXN0cm95ZWRdOwotICAgIFsoaWQpbV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlci5nZXQoKSBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyLmdldCgpIHNldERlbGVnYXRlOm5pbF07CiAgICAgW21fc2Nyb2xsYmFyUGFpbnRl
ckRlbGVnYXRlLmdldCgpIHNjcm9sbEFuaW1hdG9yRGVzdHJveWVkXTsKICAgICBbbV9zY3JvbGxB
bmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5nZXQoKSBzY3JvbGxBbmltYXRvckRlc3Ryb3llZF07CiAj
ZW5kaWYKQEAgLTU5Nyw3ICs2MzUsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlh
dGVTY3JvbGxUCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQo
KQogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICB3a0NvbnRlbnRBcmVhU2Ny
b2xsZWQobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgY29udGVudEFyZWFTY3JvbGxlZF07CiAjZW5kaWYK
ICAgICBTY3JvbGxBbmltYXRvcjo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKCk7CiB9CkBAIC02MDUs
NzcgKzY0Myw3NyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoCiB2
b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiB7CiAj
aWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrQ29udGVudEFyZWFXaWxsUGFpbnQo
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIuZ2V0KCkgY29udGVudEFyZWFXaWxsRHJhd107CiAjZW5kaWYKIH0KIAog
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFbnRlcmVkQ29udGVudEFyZWEoKSBjb25zdAog
ewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICB3a01vdXNlRW50ZXJlZENvbnRl
bnRBcmVhKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKICNl
bmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVh
KCkgY29uc3QKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgd2tNb3VzZUV4
aXRlZENvbnRlbnRBcmVhKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAg
IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlRXhpdGVkQ29udGVudEFy
ZWFdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlTW92ZWRJbkNv
bnRlbnRBcmVhKCkgY29uc3QKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAg
d2tNb3VzZU1vdmVkSW5Db250ZW50QXJlYShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBtb3VzZU1vdmVk
SW5Db250ZW50QXJlYV07CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2ls
bFN0YXJ0TGl2ZVJlc2l6ZSgpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAg
IHdrV2lsbFN0YXJ0TGl2ZVJlc2l6ZShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgp
KTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzdGFydExpdmVSZXNp
emVdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXpl
ZCgpIGNvbnN0CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrQ29udGVu
dEFyZWFSZXNpemVkKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFtt
X3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGNvbnRlbnRBcmVhRGlkUmVzaXplXTsK
ICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSgp
CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrV2lsbEVuZExpdmVSZXNp
emUobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgZW5kTGl2ZVJlc2l6ZV07CiAjZW5kaWYKIH0KIAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93KCkgY29uc3QKIHsKICNpZiBV
U0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgd2tDb250ZW50QXJlYURpZFNob3cobV9zY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXIuZ2V0KCkgd2luZG93T3JkZXJlZEluXTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUoKSBjb25zdAogewogI2lmIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikKLSAgICB3a0NvbnRlbnRBcmVhRGlkSGlkZShtX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyLmdldCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSB3aW5kb3dPcmRlcmVkT3V0XTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLSAgICB3a0RpZEJlZ2luU2Nyb2xsR2VzdHVyZShtX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyLmdldCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSBiZWdpblNjcm9sbEdlc3R1cmVdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5p
bWF0b3JNYWM6OmRpZEVuZFNjcm9sbEdlc3R1cmUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLSAgICB3a0RpZEVuZFNjcm9sbEdlc3R1cmUobV9zY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIu
Z2V0KCkgZW5kU2Nyb2xsR2VzdHVyZV07CiAjZW5kaWYKIH0KIApAQCAtNjgzLDEwICs3MjEsMTAg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTYwogewogI2lmIFVTRShX
S19TQ1JPTExCQVJfUEFJTlRFUikKICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjKj4oV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkpLT5wYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7
Ci0gICAgd2tTY3JvbGxiYXJQYWludGVyU2V0RGVsZWdhdGUocGFpbnRlciwgbV9zY3JvbGxiYXJQ
YWludGVyRGVsZWdhdGUuZ2V0KCkpOwotICAgIHdrU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9s
bGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCksIHBhaW50ZXIsIGZhbHNlKTsK
KyAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTptX3Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQo
KV07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0VmVydGljYWxT
Y3JvbGxlckltcDpwYWludGVyXTsKICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5MaXZlUmVz
aXplKCkpCi0gICAgICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShwYWludGVyLCAx
KTsKKyAgICAgICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOjFdOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtNjk2LDggKzczNCw4IEBAIHZvaWQgU2Nyb2xs
QW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWMKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BB
SU5URVIpCiAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRp
dmVUaGVtZSgpKS0+cGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwotICAgIHdrU2Nyb2xs
YmFyUGFpbnRlclNldERlbGVnYXRlKHBhaW50ZXIsIG5pbCk7Ci0gICAgd2tTZXRQYWludGVyRm9y
UGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgbmls
LCBmYWxzZSk7CisgICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBbbV9zY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOm5pbF07CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCkBAIC03MDcsMTAgKzc0
NSwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jpem9udGFsCiB7CiAjaWYg
VVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWlu
dGVyID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWMqPihXZWJDb3JlOjpT
Y3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKSktPnBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xs
YmFyKTsKLSAgICB3a1Njcm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZShwYWludGVyLCBtX3Njcm9s
bGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQoKSk7Ci0gICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNv
bnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgcGFpbnRlciwgdHJ1
ZSk7CisgICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6bV9zY3JvbGxiYXJQYWludGVyRGVsZWdhdGUu
Z2V0KCldOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldEhvcml6
b250YWxTY3JvbGxlckltcDpwYWludGVyXTsKICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5M
aXZlUmVzaXplKCkpCi0gICAgICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShwYWlu
dGVyLCAxKTsKKyAgICAgICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOjFdOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtNzIwLDggKzc1OCw4IEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVIb3Jpem8KIHsKICNpZiBVU0UoV0tfU0NST0xM
QkFSX1BBSU5URVIpCiAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
OjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwotICAgIHdr
U2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlKHBhaW50ZXIsIG5pbCk7Ci0gICAgd2tTZXRQYWlu
dGVyRm9yUGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQo
KSwgbmlsLCB0cnVlKTsKKyAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldEhvcml6b250YWxTY3JvbGxlckltcDpu
aWxdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtMTIz
MywxOCArMTI3MSwxOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0
CiAgICAgfQogCiAgICAgU2Nyb2xsYmFyVGhlbWVNYWMqIG1hY1RoZW1lID0gKFNjcm9sbGJhclRo
ZW1lTWFjKilTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKTsKLSAgICBpbnQgbmV3U3R5bGUg
PSB3a1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUobV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlci5nZXQoKSk7CisgICAgTlNTY3JvbGxlclN0eWxlIG5ld1N0eWxlID0gW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2Nyb2xsZXJTdHlsZV07CiAKICAgICBpZiAoU2Ny
b2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Ny
b2xsYmFyKCkpIHsKICAgICAgICAgdmVydGljYWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAot
ICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkVmVydGljYWxQYWludGVyID0gd2tWZXJ0
aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIuZ2V0KCkpOwotICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgbmV3VmVydGljYWxQ
YWludGVyID0gd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKG9sZFZlcnRpY2FsUGFp
bnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdHlsZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgIFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiBvbGRWZXJ0aWNhbFBhaW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5n
ZXQoKSB2ZXJ0aWNhbFNjcm9sbGVySW1wXTsKKyAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVm
IG5ld1ZlcnRpY2FsUGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAi
KSBzY3JvbGxlckltcFdpdGhTdHlsZTpuZXdTdHlsZSAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKXZlcnRpY2FsU2Nyb2xsYmFyLT5jb250cm9s
U2l6ZSgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbDpOTyAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFZlcnRpY2FsUGFp
bnRlcl07CiAgICAgICAgIG1hY1RoZW1lLT5zZXROZXdQYWludGVyRm9yU2Nyb2xsYmFyKHZlcnRp
Y2FsU2Nyb2xsYmFyLCBuZXdWZXJ0aWNhbFBhaW50ZXIpOwotICAgICAgICB3a1NldFBhaW50ZXJG
b3JQYWludGVyQ29udHJvbGxlcihtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpLCBu
ZXdWZXJ0aWNhbFBhaW50ZXIsIGZhbHNlKTsKKyAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXIuZ2V0KCkgc2V0VmVydGljYWxTY3JvbGxlckltcDpuZXdWZXJ0aWNhbFBhaW50ZXJd
OwogCiAgICAgICAgIC8vIFRoZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZl
cmVudCB0aGlja25lc3Nlcywgc28gd2UgbXVzdCByZS1zZXQgdGhlIAogICAgICAgICAvLyBmcmFt
ZVJlY3QgdG8gdGhlIG5ldyB0aGlja25lc3MsIGFuZCB0aGUgcmUtbGF5b3V0IGJlbG93IHdpbGwg
ZW5zdXJlIHRoZSBwb3NpdGlvbgpAQCAtMTI1NiwxMyArMTI5NCwxMyBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0CiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRh
bFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVhKCktPmhvcml6b250YWxTY3JvbGxiYXIoKSkgewog
ICAgICAgICBob3Jpem9udGFsU2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICAgICAgV0tT
Y3JvbGxiYXJQYWludGVyUmVmIG9sZEhvcml6b250YWxQYWludGVyID0gd2tIb3Jpem9udGFsU2Ny
b2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5n
ZXQoKSk7Ci0gICAgICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBuZXdIb3Jpem9udGFsUGFpbnRl
ciA9IHdrTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRlcihvbGRIb3Jpem9udGFsUGFpbnRl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0eWxlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICBXS1Njcm9sbGJhclBh
aW50ZXJSZWYgb2xkSG9yaXpvbnRhbFBhaW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlci5nZXQoKSBob3Jpem9udGFsU2Nyb2xsZXJJbXBdOworICAgICAgICBXS1Njcm9sbGJhclBh
aW50ZXJSZWYgbmV3SG9yaXpvbnRhbFBhaW50ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Nj
cm9sbGVySW1wIikgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6bmV3U3R5bGUgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlob3Jpem9udGFsU2Nyb2xs
YmFyLT5jb250cm9sU2l6ZSgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRh
bDpZRVMgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNpbmdTY3JvbGxlckltcDpv
bGRIb3Jpem9udGFsUGFpbnRlcl07CiAgICAgICAgIG1hY1RoZW1lLT5zZXROZXdQYWludGVyRm9y
U2Nyb2xsYmFyKGhvcml6b250YWxTY3JvbGxiYXIsIG5ld0hvcml6b250YWxQYWludGVyKTsKLSAg
ICAgICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlci5nZXQoKSwgbmV3SG9yaXpvbnRhbFBhaW50ZXIsIHRydWUpOworICAgICAgICBb
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1w
Om5ld0hvcml6b250YWxQYWludGVyXTsKIAogICAgICAgICAvLyBUaGUgZGlmZmVyZW50IHNjcm9s
bGJhciBzdHlsZXMgaGF2ZSBkaWZmZXJlbnQgdGhpY2tuZXNzZXMsIHNvIHdlIG11c3QgcmUtc2V0
IHRoZSAKICAgICAgICAgLy8gZnJhbWVSZWN0IHRvIHRoZSBuZXcgdGhpY2tuZXNzLCBhbmQgdGhl
IHJlLWxheW91dCBiZWxvdyB3aWxsIGVuc3VyZSB0aGUgcG9zaXRpb24KQEAgLTEyOTYsNyArMTMz
NCwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzdG9wU2Nyb2xsYmFyUGFpCiAKIHZvaWQg
U2Nyb2xsQW5pbWF0b3JNYWM6OmluaXRpYWxTY3JvbGxiYXJQYWludFRpbWVyRmlyZWQoVGltZXI8
U2Nyb2xsQW5pbWF0b3JNYWM+KikKIHsKLSAgICB3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNo
U2Nyb2xsZXJzKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIC8vIFRv
IGZvcmNlIHRoZSBzY3JvbGxiYXJzIHRvIGZsYXNoLCB3ZSBoYXZlIHRvIGNhbGwgaGlkZSBmaXJz
dC4gT3RoZXJ3aXNlLCB0aGUgU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIKKyAgICAvLyBtaWdo
dCB0aGluayB0aGF0IHRoZSBzY3JvbGxiYXJzIGFyZSBhbHJlYWR5IHNob3dpbmcgYW5kIGJhaWwg
ZWFybHkuCisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgaGlkZU92ZXJs
YXlTY3JvbGxlcnNdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGZs
YXNoU2Nyb2xsZXJzXTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAkocmV2aXNpb24gOTMyMjcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgi
CiAKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi10eXBlZGVmIHN0cnVjdCBfX1dLU2Ny
b2xsYmFyUGFpbnRlciAqV0tTY3JvbGxiYXJQYWludGVyUmVmOwordHlwZWRlZiBpZCBXS1Njcm9s
bGJhclBhaW50ZXJSZWY7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQkocmV2
aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDI1IEBAIHN0YXRpYyBTY3JvbGxi
YXJQYWludGVyTWFwKiBzY3JvbGxiYXJNYXAKIAogfQogCitAaW50ZXJmYWNlIE5TT2JqZWN0IChT
Y3JvbGxiYXJQYWludGVyKQorKyAoaWQpc2Nyb2xsZXJJbXBXaXRoU3R5bGU6KE5TU2Nyb2xsZXJT
dHlsZSluZXdTY3JvbGxlclN0eWxlIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKW5ld0NvbnRy
b2xTaXplIGhvcml6b250YWw6KEJPT0wpaG9yaXpvbnRhbCByZXBsYWNpbmdTY3JvbGxlckltcDoo
aWQpcHJldmlvdXM7CistICh2b2lkKXNldEVuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKKy0gKHZvaWQp
c2V0Qm91bmRzU2l6ZTooTlNTaXplKWJvdW5kc1NpemU7CistICh2b2lkKXNldERvdWJsZVZhbHVl
Oihkb3VibGUpZG91YmxlVmFsdWU7CistICh2b2lkKXNldEtub2JQcm9wb3J0aW9uOihDR0Zsb2F0
KXByb3BvcnRpb247CistICh2b2lkKXNldEtub2JTdHlsZTooTlNTY3JvbGxlcktub2JTdHlsZSlr
bm9iU3R5bGU7CistIChCT09MKWlzSG9yaXpvbnRhbDsKKy0gKENHRmxvYXQpdHJhY2tXaWR0aDsK
Ky0gKENHRmxvYXQpdHJhY2tCb3hXaWR0aDsKKy0gKENHRmxvYXQpa25vYk1pbkxlbmd0aDsKKy0g
KENHRmxvYXQpdHJhY2tPdmVybGFwRW5kSW5zZXQ7CistIChDR0Zsb2F0KWtub2JPdmVybGFwRW5k
SW5zZXQ7CistIChDR0Zsb2F0KXRyYWNrRW5kSW5zZXQ7CistIChDR0Zsb2F0KWtub2JFbmRJbnNl
dDsKKy0gKHZvaWQpZHJhd0tub2JTbG90SW5SZWN0OihOU1JlY3Qpc2xvdFJlY3QgaGlnaGxpZ2h0
OihCT09MKWZsYWcgYWxwaGE6KENHRmxvYXQpYWxwaGE7CistICh2b2lkKWRyYXdLbm9iOworQGVu
ZAorCiBAaW50ZXJmYWNlIFNjcm9sbGJhclByZWZzT2JzZXJ2ZXIgOiBOU09iamVjdAogewogfQpA
QCAtMTU4LDcgKzE3Nyw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlZ2lzdGVyU2Nyb2xs
YmEKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCiAgICAgYm9vbCBpc0hvcml6b250
YWwgPSBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcjsKLSAg
ICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgc2Nyb2xsYmFyUGFpbnRlciA9IHdrTWFrZVNjcm9sbGJh
clBhaW50ZXIoc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpLCBpc0hvcml6b250YWwpOworICAgIFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVyID0gW05TQ2xhc3NGcm9tU3RyaW5n
KEAiTlNTY3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0eWxlOndrUmVjb21tZW5kZWRTY3Jv
bGxlclN0eWxlKCkgY29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpc2Nyb2xsYmFyLT5jb250cm9s
U2l6ZSgpIGhvcml6b250YWw6aXNIb3Jpem9udGFsIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07
CiAgICAgc2Nyb2xsYmFyTWFwKCktPmFkZChzY3JvbGxiYXIsIHNjcm9sbGJhclBhaW50ZXIpOwog
ICAgIHVwZGF0ZUVuYWJsZWRTdGF0ZShzY3JvbGxiYXIpOwogICAgIHVwZGF0ZVNjcm9sbGJhck92
ZXJsYXlTdHlsZShzY3JvbGxiYXIpOwpAQCAtMjEzLDcgKzIzMiw4IEBAIHZvaWQgU2Nyb2xsYmFy
VGhlbWVNYWM6OnByZWZlcmVuY2VzQ2hhbmcKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xs
YmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogI2lmIFVT
RShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICByZXR1cm4gd2tTY3JvbGxiYXJUaGlja25lc3Mo
Y29udHJvbFNpemUpOworICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVy
ID0gKFdLU2Nyb2xsYmFyUGFpbnRlclJlZilbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVy
SW1wIikgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6d2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBj
b250cm9sU2l6ZTpjb250cm9sU2l6ZSBob3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1w
Om5pbF07CisgICAgcmV0dXJuIFtzY3JvbGxiYXJQYWludGVyIHRyYWNrQm94V2lkdGhdOwogI2Vs
c2UKICAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVzc1tjb250cm9sU2l6ZV07CiAjZW5kaWYK
QEAgLTIyMiwzMCArMjQyLDI3IEBAIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhp
Y2tuZXMKIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNPdmVybGF5U2Nyb2xsYmFycygpIGNv
bnN0CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHJldHVybiB3a1Njcm9s
bGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycygpOworICAgIHJldHVybiB3a1JlY29tbWVu
ZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXk7CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgogfQogCi0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVS
KQotc3RhdGljIGlubGluZSB3a1Njcm9sbGVyS25vYlN0eWxlIHRvU2Nyb2xsYmFyUGFpbnRlcktu
b2JTdHlsZShTY3JvbGxiYXJPdmVybGF5U3R5bGUgc3R5bGUpCit2b2lkIFNjcm9sbGJhclRoZW1l
TWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7
Ci0gICAgc3dpdGNoIChzdHlsZSkgeworI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyAg
ICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9IHBhaW50ZXJGb3JTY3JvbGxiYXIoc2Ny
b2xsYmFyKTsKKyAgICBzd2l0Y2ggKHNjcm9sbGJhci0+c2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xs
YmFyT3ZlcmxheVN0eWxlKCkpIHsKKyAgICBjYXNlIFNjcm9sbGJhck92ZXJsYXlTdHlsZURlZmF1
bHQ6CisgICAgICAgIFtwYWludGVyIHNldEtub2JTdHlsZTpOU1Njcm9sbGVyS25vYlN0eWxlRGVm
YXVsdF07CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsYmFyT3ZlcmxheVN0eWxlRGFy
azoKLSAgICAgICAgcmV0dXJuIHdrU2Nyb2xsZXJLbm9iU3R5bGVEYXJrOworICAgICAgICBbcGFp
bnRlciBzZXRLbm9iU3R5bGU6TlNTY3JvbGxlcktub2JTdHlsZURhcmtdOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFNjcm9sbGJhck92ZXJsYXlTdHlsZUxpZ2h0OgotICAgICAgICByZXR1cm4g
d2tTY3JvbGxlcktub2JTdHlsZUxpZ2h0OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiB3
a1Njcm9sbGVyS25vYlN0eWxlRGVmYXVsdDsKKyAgICAgICAgW3BhaW50ZXIgc2V0S25vYlN0eWxl
Ok5TU2Nyb2xsZXJLbm9iU3R5bGVMaWdodF07CisgICAgICAgIGJyZWFrOwogICAgIH0KLX0KLSNl
bmRpZgotCi12b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5
bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCi17Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVS
KQotICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZShwYWludGVyRm9yU2Nyb2xsYmFy
KHNjcm9sbGJhciksIHRvU2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZShzY3JvbGxiYXItPnNjcm9s
bGFibGVBcmVhKCktPnNjcm9sbGJhck92ZXJsYXlTdHlsZSgpKSk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCkBAIC0yNzgsNyArMjk1LDkgQEAgYm9vbCBTY3Jv
bGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIoU2Nyb2xsYgogewogICAgIGludCBtaW5MZW5ndGhGb3JU
aHVtYjsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgbWluTGVuZ3RoRm9yVGh1
bWIgPSB3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExlbmd0aE5lZWRlZEZvclRodW1iKHNjcm9sbGJh
ck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSk7CisgICAgV0tTY3JvbGxiYXJQYWludGVyUmVm
IHBhaW50ZXIgPSBzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJhcikuZ2V0KCk7CisgICAgbWlu
TGVuZ3RoRm9yVGh1bWIgPSBbcGFpbnRlciBrbm9iTWluTGVuZ3RoXSArIFtwYWludGVyIHRyYWNr
T3ZlcmxhcEVuZEluc2V0XSArIFtwYWludGVyIGtub2JPdmVybGFwRW5kSW5zZXRdCisgICAgICAg
ICsgMiAqIChbcGFpbnRlciB0cmFja0VuZEluc2V0XSArIFtwYWludGVyIGtub2JFbmRJbnNldF0p
OwogI2Vsc2UKICAgICBtaW5MZW5ndGhGb3JUaHVtYiA9IDIgKiBjQnV0dG9uSW5zZXRbc2Nyb2xs
YmFyLT5jb250cm9sU2l6ZSgpXSArIGNUaHVtYk1pbkxlbmd0aFtzY3JvbGxiYXItPmNvbnRyb2xT
aXplKCldICsgMTsKICNlbmRpZgpAQCAtNDE5LDcgKzQzOCw3IEBAIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVNYWM6OnRyYWNrUmVjdChTY3IKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6bWluaW11bVRo
dW1iTGVuZ3RoKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogI2lmIFVTRShXS19TQ1JPTExCQVJf
UEFJTlRFUikKLSAgICByZXR1cm4gd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgoc2Nyb2xs
YmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdldCgpKTsKKyAgICByZXR1cm4gW3Njcm9sbGJhck1h
cCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSBrbm9iTWluTGVuZ3RoXTsKICNlbHNlCiAgICAgcmV0
dXJuIGNUaHVtYk1pbkxlbmd0aFtzY3JvbGxiYXItPmNvbnRyb2xTaXplKCldOwogI2VuZGlmCkBA
IC00NjAsMTIgKzQ3OSwzNiBAQCBzdGF0aWMgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0
YXRlCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVFbmFibGVkU3RhdGUoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrU2Ny
b2xsYmFyUGFpbnRlclNldEVuYWJsZWQoc2Nyb2xsYmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdl
dCgpLCBzY3JvbGxiYXItPmVuYWJsZWQoKSk7CisgICAgW3Njcm9sbGJhck1hcCgpLT5nZXQoc2Ny
b2xsYmFyKS5nZXQoKSBzZXRFbmFibGVkOnNjcm9sbGJhci0+ZW5hYmxlZCgpXTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAjZW5kaWYKIH0KIAorI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKK3N0YXRpYyB2b2lkIHNjcm9sbGJhclBhaW50ZXJQYWludChXS1Njcm9s
bGJhclBhaW50ZXJSZWYgc2Nyb2xsYmFyUGFpbnRlciwgYm9vbCBlbmFibGVkLCBkb3VibGUgdmFs
dWUsIENHRmxvYXQgcHJvcG9ydGlvbiwgQ0dSZWN0IGZyYW1lUmVjdCkKK3sKKyAgICBbc2Nyb2xs
YmFyUGFpbnRlciBzZXRFbmFibGVkOmVuYWJsZWRdOworICAgIFtzY3JvbGxiYXJQYWludGVyIHNl
dEJvdW5kc1NpemU6IE5TU2l6ZUZyb21DR1NpemUoZnJhbWVSZWN0LnNpemUpXTsKKyAgICBbc2Ny
b2xsYmFyUGFpbnRlciBzZXREb3VibGVWYWx1ZTp2YWx1ZV07CisgICAgW3Njcm9sbGJhclBhaW50
ZXIgc2V0S25vYlByb3BvcnRpb246cHJvcG9ydGlvbl07CisKKyAgICAvLyBUaGUgc2Nyb2xsYmFy
J3MgZnJhbWVSZWN0IGluY2x1ZGVzIGEgc2lkZSBpbnNldCBmb3Igb3ZlcmxheSBzY3JvbGxlcnMs
IHNvIHdlIGhhdmUgdG8gdXNlIHRoZSAKKyAgICAvLyB0cmFja1dpZHRoIGZvciBkcmF3S25vYlNs
b3RJblJlY3QKKyAgICBOU1JlY3QgdHJhY2tSZWN0OworICAgIGlmIChbc2Nyb2xsYmFyUGFpbnRl
ciBpc0hvcml6b250YWxdKQorICAgICAgICB0cmFja1JlY3QgPSBOU01ha2VSZWN0KDAsIDAsIGZy
YW1lUmVjdC5zaXplLndpZHRoLCBbc2Nyb2xsYmFyUGFpbnRlciB0cmFja1dpZHRoXSk7CisgICAg
ZWxzZQorICAgICAgICB0cmFja1JlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFtzY3JvbGxiYXJQYWlu
dGVyIHRyYWNrV2lkdGhdLCBmcmFtZVJlY3Quc2l6ZS5oZWlnaHQpOworICAgIFtzY3JvbGxiYXJQ
YWludGVyIGRyYXdLbm9iU2xvdEluUmVjdDp0cmFja1JlY3QgaGlnaGxpZ2h0Ok5PXTsKKworICAg
IC8vIElmIHRoZSBzY3JvbGxiYXIgaXMgbm90IGVuYWJsZWQsIHRoZW4gdGhlcmUgaXMgbm90aGlu
ZyB0byBzY3JvbGwgdG8sIGFuZCB3ZSBzaG91bGRuJ3QKKyAgICAvLyBjYWxsIGRyYXdLbm9iLgor
ICAgIGlmIChlbmFibGVkKQorICAgICAgICBbc2Nyb2xsYmFyUGFpbnRlciBkcmF3S25vYl07Cit9
CisjZW5kaWYKKwogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVj
dCkKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCkBAIC00OTYsNyArNTM5LDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Nyb2xsYmFyKgogICAgIGNvbnRleHQtPmNs
aXAoZGFtYWdlUmVjdCk7CiAgICAgY29udGV4dC0+dHJhbnNsYXRlKHNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkueCgpLCBzY3JvbGxiYXItPmZyYW1lUmVjdCgpLnkoKSk7CiAgICAgTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChjb250ZXh0KTsKLSAgICB3a1Njcm9sbGJhclBh
aW50ZXJQYWludChzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJhcikuZ2V0KCksCisgICAgc2Ny
b2xsYmFyUGFpbnRlclBhaW50KHNjcm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXItPmVuYWJsZWQoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oc2Nyb2xsYmFyLT52aXNpYmxlU2l6ZSgpKSAtIG92ZXJo
YW5nKSAvIHNjcm9sbGJhci0+dG90YWxTaXplKCksCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgJKHJldmlzaW9uIDkz
MjI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDU0ICsyNTAsNyBAQCBleHRlcm4gQ1RUeXBlc2V0
dGVyUmVmICgqd2tDcmVhdGVDVFR5cGVzCiBleHRlcm4gQ0dDb250ZXh0UmVmICgqd2tJT1N1cmZh
Y2VDb250ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgdW5zaWduZWQgd2lkdGgsIHVu
c2lnbmVkIGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpOwogZXh0ZXJuIENHSW1h
Z2VSZWYgKCp3a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZSkoQ0dDb250ZXh0UmVmIGNvbnRl
eHQpOwogCi10eXBlZGVmIHN0cnVjdCBfX1dLU2Nyb2xsYmFyUGFpbnRlciAqV0tTY3JvbGxiYXJQ
YWludGVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgX19XS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
ICpXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmOwotCi1leHRlcm4gV0tTY3JvbGxiYXJQ
YWludGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcikoaW50IGNvbnRyb2xTaXplLCBib29s
IGlzSG9yaXpvbnRhbCk7Ci1leHRlcm4gV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tNYWtlU2Ny
b2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKShXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkUGFpbnRl
ciwgaW50IG5ld1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKTsKLWV4
dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVyU2V0RGVsZWdhdGUpKFdLU2Nyb2xsYmFyUGFp
bnRlclJlZiwgaWQgc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlKTsKLWV4dGVybiB2b2lkICgqd2tT
Y3JvbGxiYXJQYWludGVyU2V0RW5hYmxlZCkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGVu
YWJsZWQpOwotZXh0ZXJuIHZvaWQgKCp3a1Njcm9sbGJhclBhaW50ZXJQYWludCkoV0tTY3JvbGxi
YXJQYWludGVyUmVmLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0
aW9uLCBDR1JlY3QgZnJhbWVSZWN0KTsKLWV4dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVy
Rm9yY2VGbGFzaFNjcm9sbGVycykoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1l
eHRlcm4gaW50ICgqd2tTY3JvbGxiYXJUaGlja25lc3MpKGludCBjb250cm9sU2l6ZSk7Ci1leHRl
cm4gaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgpKFdLU2Nyb2xsYmFyUGFpbnRl
clJlZik7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVG90YWxMZW5ndGhOZWVkZWRG
b3JUaHVtYikoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVybiBDR0Zsb2F0ICgqd2tTY3Jv
bGxiYXJQYWludGVyS25vYkFscGhhKShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotZXh0ZXJuIHZv
aWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJl
ZiwgQ0dGbG9hdCk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxw
aGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrU2V0U2Nyb2xsYmFy
UGFpbnRlclRyYWNrQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dGbG9hdCk7Ci1leHRl
cm4gYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlcklzSG9yaXpvbnRhbCkoV0tTY3JvbGxiYXJQYWlu
dGVyUmVmKTsKLWV4dGVybiBDR1JlY3QgKCp3a1Njcm9sbGJhclBhaW50ZXJLbm9iUmVjdCkoV0tT
Y3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVyU2V0
T3ZlcmxheVN0YXRlKShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIGludCBvdmVybGF5U2Nyb2xsZXJT
dGF0ZSk7Ci0KLWVudW0gewotICAgIHdrU2Nyb2xsZXJLbm9iU3R5bGVEZWZhdWx0ID0gMCwKLSAg
ICB3a1Njcm9sbGVyS25vYlN0eWxlRGFyayA9IDEsCi0gICAgd2tTY3JvbGxlcktub2JTdHlsZUxp
Z2h0ID0gMgotfTsKLXR5cGVkZWYgdWludDMyIHdrU2Nyb2xsZXJLbm9iU3R5bGU7Ci1leHRlcm4g
dm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZSkoV0tTY3JvbGxiYXJQYWludGVy
UmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKLSAgICAKLWV4dGVybiBXS1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIpKGlkIHBh
aW50ZXJDb250cm9sbGVyRGVsZWdhdGUpOwotZXh0ZXJuIHZvaWQgKCp3a1NldFBhaW50ZXJGb3JQ
YWludGVyQ29udHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiwgV0tTY3Jv
bGxiYXJQYWludGVyUmVmLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1leHRlcm4gV0tTY3JvbGxiYXJQ
YWludGVyUmVmICgqd2tWZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKShXS1Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiBXS1Njcm9sbGJhclBhaW50ZXJS
ZWYgKCp3a0hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxlcikoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclN0eWxlKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVy
biB2b2lkICgqd2tTZXRTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKShXS1Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyUmVmLCBpbnQgbmV3U3R5bGUpOwotZXh0ZXJuIHZvaWQgKCp3a0Nv
bnRlbnRBcmVhU2Nyb2xsZWQpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0
ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhV2lsbFBhaW50KShXS1Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tNb3VzZUVudGVyZWRDb250ZW50QXJlYSkoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrTW91c2VFeGl0
ZWRDb250ZW50QXJlYSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4g
dm9pZCAoKndrTW91c2VNb3ZlZEluQ29udGVudEFyZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1dpbGxTdGFydExpdmVSZXNpemUpKFdLU2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhUmVz
aXplZCkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndr
V2lsbEVuZExpdmVSZXNpemUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0
ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhRGlkU2hvdykoV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrQ29udGVudEFyZWFEaWRIaWRlKShXS1Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tEaWRCZWdpblNjcm9sbEdl
c3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3
a0RpZEVuZFNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwot
Ci1leHRlcm4gYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlclVzZXNPdmVybGF5U2Nyb2xsZXJzKSh2
b2lkKTsKK2V4dGVybiBpbnQgKCp3a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSkodm9pZCk7CiAK
IGV4dGVybiBib29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJk
KSh2b2lkKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDkzMjI3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEzMyw0NCArMTMzLDcgQEAgQ1RUeXBlc2V0dGVyUmVmICgqd2tDcmVhdGVDVFR5cGVz
ZXR0ZXJXaQogQ0dDb250ZXh0UmVmICgqd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKShJT1N1cmZh
Y2VSZWYgc3VyZmFjZSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgQ0dDb2xvclNw
YWNlUmVmIGNvbG9yU3BhY2UpOwogQ0dJbWFnZVJlZiAoKndrSU9TdXJmYWNlQ29udGV4dENyZWF0
ZUltYWdlKShDR0NvbnRleHRSZWYgY29udGV4dCk7CiAKLVdLU2Nyb2xsYmFyUGFpbnRlclJlZiAo
KndrTWFrZVNjcm9sbGJhclBhaW50ZXIpKGludCBjb250cm9sU2l6ZSwgYm9vbCBpc0hvcml6b250
YWwpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQ
YWludGVyKShXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkUGFpbnRlciwgaW50IG5ld1N0eWxlLCBp
bnQgY29udHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKTsKLXZvaWQgKCp3a1Njcm9sbGJhclBh
aW50ZXJTZXREZWxlZ2F0ZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBpZCBzY3JvbGxiYXJQYWlu
dGVyRGVsZWdhdGUpOwotdm9pZCAoKndrU2Nyb2xsYmFyUGFpbnRlclNldEVuYWJsZWQpKFdLU2Ny
b2xsYmFyUGFpbnRlclJlZiwgYm9vbCBlbmFibGVkKTsKLXZvaWQgKCp3a1Njcm9sbGJhclBhaW50
ZXJQYWludCkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1
ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVSZWN0KTsKLXZvaWQgKCp3a1Njcm9s
bGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyUmVmKTsKLWludCAoKndrU2Nyb2xsYmFyVGhpY2tuZXNzKShpbnQgY29udHJvbFNpemUpOwot
aW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgpKFdLU2Nyb2xsYmFyUGFpbnRlclJl
Zik7Ci1pbnQgKCp3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExlbmd0aE5lZWRlZEZvclRodW1iKShX
S1Njcm9sbGJhclBhaW50ZXJSZWYpOwotQ0dGbG9hdCAoKndrU2Nyb2xsYmFyUGFpbnRlcktub2JB
bHBoYSkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLXZvaWQgKCp3a1NldFNjcm9sbGJhclBhaW50
ZXJLbm9iQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dGbG9hdCk7Ci1DR0Zsb2F0ICgq
d2tTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYSkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLXZv
aWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKShXS1Njcm9sbGJhclBhaW50ZXJS
ZWYsIENHRmxvYXQpOwotYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlcklzSG9yaXpvbnRhbCkoV0tT
Y3JvbGxiYXJQYWludGVyUmVmKTsKLUNHUmVjdCAoKndrU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0
KShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotdm9pZCAoKndrU2Nyb2xsYmFyUGFpbnRlclNldE92
ZXJsYXlTdGF0ZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBpbnQgb3ZlcmxheVNjcm9sbGVyU3Rh
dGUpOwotdm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZSkoV0tTY3JvbGxiYXJQ
YWludGVyUmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKLQotV0tTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlclJlZiAoKndrTWFrZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyKShpZCBwYWludGVy
Q29udHJvbGxlckRlbGVnYXRlKTsKLXZvaWQgKCp3a1NldFBhaW50ZXJGb3JQYWludGVyQ29udHJv
bGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiwgV0tTY3JvbGxiYXJQYWludGVy
UmVmLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1XS1Njcm9sbGJhclBhaW50ZXJSZWYgKCp3a1ZlcnRp
Y2FsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tIb3Jpem9udGFsU2Nyb2xsYmFy
UGFpbnRlckZvckNvbnRyb2xsZXIpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwot
aW50ICgqd2tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKShXS1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
U3R5bGUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYsIGludCBuZXdTdHlsZSk7Ci12
b2lkICgqd2tDb250ZW50QXJlYVNjcm9sbGVkKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
UmVmKTsKLXZvaWQgKCp3a0NvbnRlbnRBcmVhV2lsbFBhaW50KShXS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a01vdXNlRW50ZXJlZENvbnRlbnRBcmVhKShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a01vdXNlRXhpdGVkQ29udGVudEFy
ZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAoKndrTW91c2VNb3Zl
ZEluQ29udGVudEFyZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAo
KndrV2lsbFN0YXJ0TGl2ZVJlc2l6ZSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7
Ci12b2lkICgqd2tDb250ZW50QXJlYVJlc2l6ZWQpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXJSZWYpOwotdm9pZCAoKndrV2lsbEVuZExpdmVSZXNpemUpKFdLU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJSZWYpOwotdm9pZCAoKndrQ29udGVudEFyZWFEaWRTaG93KShXS1Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a0NvbnRlbnRBcmVhRGlkSGlkZSkoV0tTY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkICgqd2tEaWRCZWdpblNjcm9sbEdlc3R1
cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAoKndrRGlkRW5kU2Ny
b2xsR2VzdHVyZSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci0KLWJvb2wgKCp3
a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycykodm9pZCk7CitpbnQgKCp3a1Jl
Y29tbWVuZGVkU2Nyb2xsZXJTdHlsZSkodm9pZCk7CiAKIGJvb2wgKCp3a0V4ZWN1dGFibGVXYXNM
aW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiA5MzM0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDExLTA4LTE4ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0OTUKKyAgICAgICAgTGlvbi1z
cGVjaWZpYyBzY3JvbGxlciBTUElzIGNhbiB1c2UgZm9yd2FyZCBkZWNsYXJhdGlvbiBpbnN0ZWFk
IG9mIAorICAgICAgICBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKwogMjAxMS0wOC0xOCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFkZSBzb21lIGNvZGUgZXZlbiBtb3JlIHByaXZh
dGUgdG8gYSBwYXJ0aWN1bGFyIGZpbGUgYW5kIGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
U3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTEzLDQyICsxMTMsNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29udGV4dENyZWF0ZSk7CiAgICAgICAg
IElOSVQoSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKTsKICAgICAgICAgSU5JVChDcmVhdGVD
VFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucyk7Ci0gICAgICAgIElOSVQo
TWFrZVNjcm9sbGJhclBhaW50ZXIpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJTZXRE
ZWxlZ2F0ZSk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlclNldEVuYWJsZWQpOwotICAg
ICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJQYWludCk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFy
UGFpbnRlckZvcmNlRmxhc2hTY3JvbGxlcnMpOwotICAgICAgICBJTklUKFNjcm9sbGJhclRoaWNr
bmVzcyk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyTWluaW11bVRodW1iTGVuZ3RoKTsKLSAgICAg
ICAgSU5JVChTY3JvbGxiYXJNaW5pbXVtVG90YWxMZW5ndGhOZWVkZWRGb3JUaHVtYik7Ci0gICAg
ICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0gICAgICAgIElOSVQoU2V0U2Ny
b2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlclRy
YWNrQWxwaGEpOwotICAgICAgICBJTklUKFNldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKTsK
LSAgICAgICAgSU5JVChTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFsKTsKLSAgICAgICAgSU5J
VChTY3JvbGxiYXJQYWludGVyS25vYlJlY3QpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50
ZXJTZXRPdmVybGF5U3RhdGUpOwotICAgICAgICBJTklUKFNldFNjcm9sbGJhclBhaW50ZXJLbm9i
U3R5bGUpOwotICAgICAgICBJTklUKE1ha2VTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcik7Ci0g
ICAgICAgIElOSVQoTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRlcik7Ci0gICAgICAgIElO
SVQoU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKTsKLSAgICAgICAgSU5JVChWZXJ0aWNh
bFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKTsKLSAgICAgICAgSU5JVChIb3Jpem9udGFs
U2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyU3R5bGUpOwotICAgICAgICBJTklUKFNldFNjcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyU3R5bGUpOwotICAgICAgICBJTklUKENvbnRlbnRBcmVhU2Nyb2xsZWQpOwotICAg
ICAgICBJTklUKENvbnRlbnRBcmVhV2lsbFBhaW50KTsKLSAgICAgICAgSU5JVChNb3VzZUVudGVy
ZWRDb250ZW50QXJlYSk7Ci0gICAgICAgIElOSVQoTW91c2VFeGl0ZWRDb250ZW50QXJlYSk7Ci0g
ICAgICAgIElOSVQoTW91c2VNb3ZlZEluQ29udGVudEFyZWEpOwotICAgICAgICBJTklUKFdpbGxT
dGFydExpdmVSZXNpemUpOwotICAgICAgICBJTklUKENvbnRlbnRBcmVhUmVzaXplZCk7Ci0gICAg
ICAgIElOSVQoV2lsbEVuZExpdmVSZXNpemUpOwotICAgICAgICBJTklUKENvbnRlbnRBcmVhRGlk
U2hvdyk7Ci0gICAgICAgIElOSVQoQ29udGVudEFyZWFEaWRIaWRlKTsKLSAgICAgICAgSU5JVChE
aWRCZWdpblNjcm9sbEdlc3R1cmUpOwotICAgICAgICBJTklUKERpZEVuZFNjcm9sbEdlc3R1cmUp
OwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyk7Cisg
ICAgICAgIElOSVQoUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKTsKICAgICAgICAgSU5JVChFeGVj
dXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKICAgICAgICAgSU5JVChDb3B5
RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwogICAgICAgICBJTklUKEFWQXNzZXRS
ZXNvbHZlZFVSTCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzM0MCkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTA4LTE4ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0OTUKKyAgICAgICAgTGlvbi1zcGVjaWZpYyBzY3JvbGxl
ciBTUElzIGNhbiB1c2UgZm9yd2FyZCBkZWNsYXJhdGlvbiBpbnN0ZWFkIG9mIAorICAgICAgICBX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKwog
MjAxMS0wOC0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vcmUgQysrMHggbGliYysrIGJ1aWxkIGZpeGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZp
c2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTIyLDQyICsxMjIsNyBAQCB2b2lkIElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChJT1N1cmZhY2VDb250ZXh0
Q3JlYXRlKTsKICAgICBJTklUKElPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZSk7CiAgICAgSU5J
VChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucyk7Ci0gICAg
SU5JVChNYWtlU2Nyb2xsYmFyUGFpbnRlcik7Ci0gICAgSU5JVChTY3JvbGxiYXJQYWludGVyU2V0
RGVsZWdhdGUpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlclNldEVuYWJsZWQpOwotICAgIElO
SVQoU2Nyb2xsYmFyUGFpbnRlclBhaW50KTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJGb3Jj
ZUZsYXNoU2Nyb2xsZXJzKTsKLSAgICBJTklUKFNjcm9sbGJhclRoaWNrbmVzcyk7Ci0gICAgSU5J
VChTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgpOwotICAgIElOSVQoU2Nyb2xsYmFyTWluaW11
bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktu
b2JBbHBoYSk7Ci0gICAgSU5JVChTZXRTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKTsKLSAgICBJ
TklUKFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKTsKLSAgICBJTklUKFNldFNjcm9sbGJhclBh
aW50ZXJUcmFja0FscGhhKTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwp
OwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0KTsKLSAgICBJTklUKFNjcm9sbGJh
clBhaW50ZXJTZXRPdmVybGF5U3RhdGUpOwotICAgIElOSVQoU2V0U2Nyb2xsYmFyUGFpbnRlcktu
b2JTdHlsZSk7Ci0gICAgSU5JVChNYWtlU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIpOwotICAg
IElOSVQoTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRlcik7Ci0gICAgSU5JVChTZXRQYWlu
dGVyRm9yUGFpbnRlckNvbnRyb2xsZXIpOwotICAgIElOSVQoVmVydGljYWxTY3JvbGxiYXJQYWlu
dGVyRm9yQ29udHJvbGxlcik7Ci0gICAgSU5JVChIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZv
ckNvbnRyb2xsZXIpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJTdHlsZSk7
Ci0gICAgSU5JVChTZXRTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKTsKLSAgICBJTklU
KENvbnRlbnRBcmVhU2Nyb2xsZWQpOwotICAgIElOSVQoQ29udGVudEFyZWFXaWxsUGFpbnQpOwot
ICAgIElOSVQoTW91c2VFbnRlcmVkQ29udGVudEFyZWEpOwotICAgIElOSVQoTW91c2VFeGl0ZWRD
b250ZW50QXJlYSk7Ci0gICAgSU5JVChNb3VzZU1vdmVkSW5Db250ZW50QXJlYSk7Ci0gICAgSU5J
VChXaWxsU3RhcnRMaXZlUmVzaXplKTsKLSAgICBJTklUKENvbnRlbnRBcmVhUmVzaXplZCk7Ci0g
ICAgSU5JVChXaWxsRW5kTGl2ZVJlc2l6ZSk7Ci0gICAgSU5JVChDb250ZW50QXJlYURpZFNob3cp
OwotICAgIElOSVQoQ29udGVudEFyZWFEaWRIaWRlKTsKLSAgICBJTklUKERpZEJlZ2luU2Nyb2xs
R2VzdHVyZSk7Ci0gICAgSU5JVChEaWRFbmRTY3JvbGxHZXN0dXJlKTsKLSAgICBJTklUKFNjcm9s
bGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyk7CisgICAgSU5JVChSZWNvbW1lbmRlZFNj
cm9sbGVyU3R5bGUpOwogICAgIElOSVQoRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93
TGVvcGFyZCk7CiAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUp
OwogICAgIElOSVQoQVZBc3NldFJlc29sdmVkVVJMKTsK
</data>
<flag name="commit-queue"
          id="100237"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104424</attachid>
            <date>2011-08-18 16:45:15 -0700</date>
            <delta_ts>2011-08-18 17:08:21 -0700</delta_ts>
            <desc>Patch, another attempt at building on 10.6</desc>
            <filename>for-review-os3.txt</filename>
            <type>text/plain</type>
            <size>42576</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMzQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDgtMTggIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NjQ5NQorICAgICAgICBMaW9uLXNwZWNpZmljIHNjcm9sbGVyIFNQSXMgY2FuIHVzZSBmb3J3YXJk
IGRlY2xhcmF0aW9uIGluc3RlYWQgb2YgCisgICAgICAgIFdlYktpdFN5c3RlbUludGVyZmFjZQor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tOgorICAgICAgICAoLVtTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlIHNjcm9s
bGVySW1wUGFpcjpjb252ZXJ0Q29udGVudFBvaW50OnRvU2Nyb2xsZXJJbXA6XSk6CisgICAgICAg
ICgtW1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgc2Nyb2xsZXJJbXBQYWlyOnVw
ZGF0ZVNjcm9sbGVyU3R5bGVGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6XSk6CisgICAg
ICAgICgtW1Njcm9sbGJhclBhcnRBbmltYXRpb24gaW5pdFdpdGhTY3JvbGxiYXJQYWludGVyOnBh
cnQ6V2ViQ29yZTo6c2Nyb2xsQW5pbWF0b3I6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRp
b246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhcnRBbmltYXRpb24gc2V0Q3VycmVudFByb2dy
ZXNzOl0pOgorICAgICAgICAoLVtTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgc2V0VXBBbmltYXRp
b246c2Nyb2xsZXJQYWludGVyOnBhcnQ6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRpb246
XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSBzY3JvbGxlckltcDphbmlt
YXRlS25vYkFscGhhVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJE
ZWxlZ2F0ZSBzY3JvbGxlckltcDphbmltYXRlVHJhY2tBbHBoYVRvOmR1cmF0aW9uOl0pOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVBvc2l0aW9uQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFXaWxs
UGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRW50ZXJl
ZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3Vz
ZUV4aXRlZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
Ojptb3VzZU1vdmVkSW5Db250ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6Y29udGVudHNSZXNpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OmRpZEJlZ2luU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkRW5kU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJh
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkSG9yaXpvbnRh
bFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJl
bW92ZUhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM6OnVwZGF0ZVNjcm9sbGVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6OmluaXRpYWxTY3JvbGxiYXJQYWludFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFj
OjpyZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
TWFjOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnVwZGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVNYWM6Om1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNj
cm9sbGJhclBhaW50ZXJQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW06CisK
IDIwMTEtMDgtMTggIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBBbiBFdmVudFNvdXJjZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgVHlwZUVycm9yLCB3aGVu
IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGlzIG5vdCBlbm91Z2guCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkod29ya2luZyBjb3B5KQpAQCAtMTQ2Myw0NyArMTQ2MywxMiBAQCBfX1pON1dlYkNvcmUyMExv
Z05vdFlldEltcGxlbWVudGVkRQogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi1fd2tDb250ZW50
QXJlYURpZEhpZGUKLV93a0NvbnRlbnRBcmVhRGlkU2hvdwotX3drQ29udGVudEFyZWFSZXNpemVk
Ci1fd2tDb250ZW50QXJlYVNjcm9sbGVkCi1fd2tDb250ZW50QXJlYVdpbGxQYWludAogX3drQ29w
eURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lCiBfd2tDcmVhdGVDVFR5cGVzZXR0ZXJX
aXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucwotX3drRGlkQmVnaW5TY3JvbGxHZXN0dXJlCi1f
d2tEaWRFbmRTY3JvbGxHZXN0dXJlCitfd2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUKIF93a0V4
ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQKLV93a0hvcml6b250YWxTY3Jv
bGxiYXJQYWludGVyRm9yQ29udHJvbGxlcgogX3drSU9TdXJmYWNlQ29udGV4dENyZWF0ZQogX3dr
SU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlCi1fd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcgotX3dr
TWFrZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyCi1fd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1l
bnRQYWludGVyCi1fd2tNb3VzZUVudGVyZWRDb250ZW50QXJlYQotX3drTW91c2VFeGl0ZWRDb250
ZW50QXJlYQotX3drTW91c2VNb3ZlZEluQ29udGVudEFyZWEKLV93a1Njcm9sbGJhck1pbmltdW1U
aHVtYkxlbmd0aAotX3drU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIK
LV93a1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUKLV93a1Njcm9sbGJhclBhaW50ZXJG
b3JjZUZsYXNoU2Nyb2xsZXJzCi1fd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFsCi1fd2tT
Y3JvbGxiYXJQYWludGVyS25vYkFscGhhCi1fd2tTY3JvbGxiYXJQYWludGVyS25vYlJlY3QKLV93
a1Njcm9sbGJhclBhaW50ZXJQYWludAotX3drU2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlCi1f
d2tTY3JvbGxiYXJQYWludGVyU2V0RW5hYmxlZAotX3drU2Nyb2xsYmFyUGFpbnRlclNldE92ZXJs
YXlTdGF0ZQotX3drU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEKLV93a1Njcm9sbGJhclBhaW50
ZXJVc2VzT3ZlcmxheVNjcm9sbGVycwotX3drU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZQot
X3drU2Nyb2xsYmFyVGhpY2tuZXNzCi1fd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIK
LV93a1NldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUKLV93a1NldFNjcm9sbGJhclBh
aW50ZXJLbm9iQWxwaGEKLV93a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhCi1fd2tWZXJ0
aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyCi1fd2tXaWxsRW5kTGl2ZVJlc2l6ZQot
X3drV2lsbFN0YXJ0TGl2ZVJlc2l6ZQogX3drQVZBc3NldFJlc29sdmVkVVJMCiBfd2tDdXJzb3IK
ICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBj
bGFzcyBTY3JvbGxiYXJQYWludGVyRGVsZWdhdGU7CiAjZW5kaWYKIAogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLXR5cGVkZWYgc3RydWN0IF9fV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlciAqV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKK3R5cGVkZWYgaWQgV0tTY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCShyZXZpc2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNDMgQEAgLSAo
TlNQb2ludCl0YXJnZXRPcmlnaW47CiAtIChDR0Zsb2F0KV9wcm9ncmVzczsKIEBlbmQKIAorI2lm
IFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKK0BpbnRlcmZhY2UgTlNPYmplY3QgKFNjcm9sbGJh
clBhaW50ZXIpCisrIChpZClzY3JvbGxlckltcFdpdGhTdHlsZTooTlNTY3JvbGxlclN0eWxlKW5l
d1Njcm9sbGVyU3R5bGUgY29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpbmV3Q29udHJvbFNpemUg
aG9yaXpvbnRhbDooQk9PTClob3Jpem9udGFsIHJlcGxhY2luZ1Njcm9sbGVySW1wOihpZClwcmV2
aW91czsKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkKWRlbGVnYXRlOworLSAoQ0dGbG9hdClrbm9i
QWxwaGE7CistICh2b2lkKXNldEtub2JBbHBoYTooQ0dGbG9hdClrbm9iQWxwaGE7CistIChDR0Zs
b2F0KXRyYWNrQWxwaGE7CistICh2b2lkKXNldFRyYWNrQWxwaGE6KENHRmxvYXQpdHJhY2tBbHBo
YTsKKy0gKEJPT0wpaXNIb3Jpem9udGFsOworLSAoTlNSZWN0KXJlY3RGb3JQYXJ0OihOU1Njcm9s
bGVyUGFydClwYXJ0Q29kZTsKK0BlbmQKKworQGludGVyZmFjZSBOU09iamVjdCAoU2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIpCistICh2b2lkKXNldERlbGVnYXRlOihpZClkZWxlZ2F0ZTsKKy0g
KHZvaWQpaGlkZU92ZXJsYXlTY3JvbGxlcnM7CistICh2b2lkKWZsYXNoU2Nyb2xsZXJzOworLSAo
aWQpaG9yaXpvbnRhbFNjcm9sbGVySW1wOworLSAodm9pZClzZXRIb3Jpem9udGFsU2Nyb2xsZXJJ
bXA6KGlkKWhvcml6b250YWw7CistIChpZCl2ZXJ0aWNhbFNjcm9sbGVySW1wOworLSAodm9pZClz
ZXRWZXJ0aWNhbFNjcm9sbGVySW1wOihpZCl2ZXJ0aWNhbDsKKy0gKE5TU2Nyb2xsZXJTdHlsZSlz
Y3JvbGxlclN0eWxlOworLSAodm9pZClzZXRTY3JvbGxlclN0eWxlOihOU1Njcm9sbGVyU3R5bGUp
c2Nyb2xsZXJTdHlsZTsKKy0gKHZvaWQpY29udGVudEFyZWFTY3JvbGxlZDsKKy0gKHZvaWQpY29u
dGVudEFyZWFXaWxsRHJhdzsKKy0gKHZvaWQpbW91c2VFbnRlcmVkQ29udGVudEFyZWE7CistICh2
b2lkKW1vdXNlRXhpdGVkQ29udGVudEFyZWE7CistICh2b2lkKW1vdXNlTW92ZWRJbkNvbnRlbnRB
cmVhOworLSAodm9pZClzdGFydExpdmVSZXNpemU7CistICh2b2lkKWNvbnRlbnRBcmVhRGlkUmVz
aXplOworLSAodm9pZCllbmRMaXZlUmVzaXplOworLSAodm9pZCl3aW5kb3dPcmRlcmVkSW47Cist
ICh2b2lkKXdpbmRvd09yZGVyZWRPdXQ7CistICh2b2lkKWJlZ2luU2Nyb2xsR2VzdHVyZTsKKy0g
KHZvaWQpZW5kU2Nyb2xsR2VzdHVyZTsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIFNjcm9s
bEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIDogTlNPYmplY3QKIHsKICAgICBXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvck1hYyogX2FuaW1hdG9yOwpAQCAtMjA4LDcgKzI0NSw3IEBAIC0gKE5TUG9pbnQp
c2Nyb2xsZXJJbXBQYWlyOihpZClzY3JvbGxlckkKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50
OwogCiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSAwOwotICAgIGlmICh3a1Nj
cm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwoKFdLU2Nyb2xsYmFyUGFpbnRlclJlZilzY3JvbGxl
ckltcCkpCisgICAgaWYgKFtzY3JvbGxlckltcCBpc0hvcml6b250YWxdKQogICAgICAgICBzY3Jv
bGxiYXIgPSBfYW5pbWF0b3ItPnNjcm9sbGFibGVBcmVhKCktPmhvcml6b250YWxTY3JvbGxiYXIo
KTsKICAgICBlbHNlIAogICAgICAgICBzY3JvbGxiYXIgPSBfYW5pbWF0b3ItPnNjcm9sbGFibGVB
cmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC0yMzUsNyArMjcyLDcgQEAgLSAodm9pZClz
Y3JvbGxlckltcFBhaXI6KGlkKXNjcm9sbGVySW1wUAogICAgIGlmICghX2FuaW1hdG9yKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB3a1NldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUo
KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpc2Nyb2xsZXJJbXBQYWlyLCBuZXdSZWNv
bW1lbmRlZFNjcm9sbGVyU3R5bGUpOworICAgIFtzY3JvbGxlckltcFBhaXIgc2V0U2Nyb2xsZXJT
dHlsZTpuZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGVdOwogICAgIF9hbmltYXRvci0+dXBkYXRl
U2Nyb2xsZXJTdHlsZSgpOwogfQogCkBAIC0yNjMsNyArMzAwLDcgQEAgLSAoaWQpaW5pdFdpdGhT
Y3JvbGxiYXJQYWludGVyOihXS1Njcm9sbAogICAgIF9zY3JvbGxlclBhaW50ZXIgPSBzY3JvbGxl
clBhaW50ZXI7CiAgICAgX3BhcnQgPSBwYXJ0OwogICAgIF9hbmltYXRvciA9IHNjcm9sbEFuaW1h
dG9yOwotICAgIF9pbml0aWFsQWxwaGEgPSBfcGFydCA9PSBXZWJDb3JlOjpUaHVtYlBhcnQgPyB3
a1Njcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEoX3Njcm9sbGVyUGFpbnRlci5nZXQoKSkgOiB3a1Nj
cm9sbGJhclBhaW50ZXJUcmFja0FscGhhKF9zY3JvbGxlclBhaW50ZXIuZ2V0KCkpOworICAgIF9p
bml0aWFsQWxwaGEgPSBfcGFydCA9PSBXZWJDb3JlOjpUaHVtYlBhcnQgPyBbX3Njcm9sbGVyUGFp
bnRlci5nZXQoKSBrbm9iQWxwaGFdIDogW19zY3JvbGxlclBhaW50ZXIuZ2V0KCkgdHJhY2tBbHBo
YV07CiAgICAgX25ld0FscGhhID0gbmV3QWxwaGE7CiAgICAgCiAgICAgcmV0dXJuIHNlbGY7ICAg
IApAQCAtMjgzLDkgKzMyMCw5IEBAIC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1h
dGlvblAKICAgICAgICAgY3VycmVudEFscGhhID0gcHJvZ3Jlc3M7CiAgICAgCiAgICAgaWYgKF9w
YXJ0ID09IFdlYkNvcmU6OlRodW1iUGFydCkKLSAgICAgICAgd2tTZXRTY3JvbGxiYXJQYWludGVy
S25vYkFscGhhKF9zY3JvbGxlclBhaW50ZXIuZ2V0KCksIGN1cnJlbnRBbHBoYSk7CisgICAgICAg
IFtfc2Nyb2xsZXJQYWludGVyLmdldCgpIHNldEtub2JBbHBoYTpjdXJyZW50QWxwaGFdOwogICAg
IGVsc2UKLSAgICAgICAgd2tTZXRTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYShfc2Nyb2xsZXJQ
YWludGVyLmdldCgpLCBjdXJyZW50QWxwaGEpOworICAgICAgICBbX3Njcm9sbGVyUGFpbnRlci5n
ZXQoKSBzZXRUcmFja0FscGhhOmN1cnJlbnRBbHBoYV07CiAKICAgICAvLyBJbnZhbGlkYXRlIHRo
ZSBzY3JvbGxiYXJzIHNvIHRoYXQgdGhleSBwYWludCB0aGUgYW5pbWF0aW9uCiAgICAgaWYgKFdl
YkNvcmU6OlNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIgPSBfYW5pbWF0b3ItPnNjcm9sbGFi
bGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkpCkBAIC0zODEsOSArNDE4LDkgQEAgLSAodm9p
ZClzZXRVcEFuaW1hdGlvbjooUmV0YWluUHRyPFNjcm9sbAogICAgICAgICBzY3JvbGxiYXJQYXJ0
QW5pbWF0aW9uID0gbmlsOwogICAgIH0KIAotICAgIGlmIChwYXJ0ID09IFdlYkNvcmU6OlRodW1i
UGFydCAmJiAhd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFsKHNjcm9sbGVyUGFpbnRlcikp
IHsKKyAgICBpZiAocGFydCA9PSBXZWJDb3JlOjpUaHVtYlBhcnQgJiYgIVtzY3JvbGxlclBhaW50
ZXIgaXNIb3Jpem9udGFsXSkgewogICAgICAgICBpZiAobmV3QWxwaGEgPT0gMSkgewotICAgICAg
ICAgICAgSW50UmVjdCB0aHVtYlJlY3QgPSBJbnRSZWN0KHdrU2Nyb2xsYmFyUGFpbnRlcktub2JS
ZWN0KHNjcm9sbGVyUGFpbnRlcikpOworICAgICAgICAgICAgSW50UmVjdCB0aHVtYlJlY3QgPSBJ
bnRSZWN0KFtzY3JvbGxlclBhaW50ZXIgcmVjdEZvclBhcnQ6TlNTY3JvbGxlcktub2JdKTsKICAg
ICAgICAgICAgIF9hbmltYXRvci0+c2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KHRodW1iUmVj
dCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgX2FuaW1hdG9yLT5zZXRWaXNpYmxlU2Ny
b2xsZXJUaHVtYlJlY3QoSW50UmVjdCgpKTsKQEAgLTQwNyw3ICs0NDQsNyBAQCAtICh2b2lkKXNj
cm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltCiAgICAgICAgIHJldHVybjsKIAogICAgIFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxlclBhaW50ZXIgPSAoV0tTY3JvbGxiYXJQYWludGVy
UmVmKXNjcm9sbGVySW1wOwotICAgIGlmICh3a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwo
c2Nyb2xsZXJQYWludGVyKSkKKyAgICBpZiAoW3Njcm9sbGVySW1wIGlzSG9yaXpvbnRhbF0pCiAg
ICAgICAgIFtzZWxmIHNldFVwQW5pbWF0aW9uOl9ob3Jpem9udGFsS25vYkFuaW1hdGlvbiBzY3Jv
bGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVyIHBhcnQ6V2ViQ29yZTo6VGh1bWJQYXJ0IGFuaW1h
dGVBbHBoYVRvOm5ld0tub2JBbHBoYSBkdXJhdGlvbjpkdXJhdGlvbl07CiAgICAgZWxzZQogICAg
ICAgICBbc2VsZiBzZXRVcEFuaW1hdGlvbjpfdmVydGljYWxLbm9iQW5pbWF0aW9uIHNjcm9sbGVy
UGFpbnRlcjpzY3JvbGxlclBhaW50ZXIgcGFydDpXZWJDb3JlOjpUaHVtYlBhcnQgYW5pbWF0ZUFs
cGhhVG86bmV3S25vYkFscGhhIGR1cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTQxOSw3ICs0NTYsNyBA
QCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxlclBhaW50ZXIgPSAoV0tTY3Jv
bGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1wOwotICAgIGlmICh3a1Njcm9sbGJhclBhaW50ZXJJ
c0hvcml6b250YWwoc2Nyb2xsZXJQYWludGVyKSkKKyAgICBpZiAoW3Njcm9sbGVySW1wIGlzSG9y
aXpvbnRhbF0pCiAgICAgICAgIFtzZWxmIHNldFVwQW5pbWF0aW9uOl9ob3Jpem9udGFsVHJhY2tB
bmltYXRpb24gc2Nyb2xsZXJQYWludGVyOnNjcm9sbGVyUGFpbnRlciBwYXJ0OldlYkNvcmU6OkJh
Y2tUcmFja1BhcnQgYW5pbWF0ZUFscGhhVG86bmV3VHJhY2tBbHBoYSBkdXJhdGlvbjpkdXJhdGlv
bl07CiAgICAgZWxzZQogICAgICAgICBbc2VsZiBzZXRVcEFuaW1hdGlvbjpfdmVydGljYWxUcmFj
a0FuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVyIHBhcnQ6V2ViQ29yZTo6
QmFja1RyYWNrUGFydCBhbmltYXRlQWxwaGFUbzpuZXdUcmFja0FscGhhIGR1cmF0aW9uOmR1cmF0
aW9uXTsKQEAgLTQ3Myw3ICs1MTAsMTAgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1h
dG9yTWFjKFNjcgogCiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQogICAgIG1fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5hZG9wdE5TKFtbU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxBbmltYXRvcjp0aGlzXSk7Ci0g
ICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IHdrTWFrZVNjcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSk7Cisg
ICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IFtbW05TQ2xhc3NGcm9tU3RyaW5nKEAi
TlNTY3JvbGxlckltcFBhaXIiKSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldERlbGVnYXRlOm1fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXIuZ2V0KCkgc2V0U2Nyb2xsZXJTdHlsZTp3a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHls
ZSgpXTsKKwogICAgIG1fc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlLmFkb3B0TlMoW1tTY3JvbGxi
YXJQYWludGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6dGhpc10pOwog
I2VuZGlmCiB9CkBAIC00ODIsNyArNTIyLDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6On5TY3JvbGxB
bmltYXRvck1hYygpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQogICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkgc2Nyb2xsQW5pbWF0b3JEZXN0
cm95ZWRdOwotICAgIFsoaWQpbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRE
ZWxlZ2F0ZTpuaWxdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNl
dERlbGVnYXRlOm5pbF07CiAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlLmdldCgpIHNj
cm9sbEFuaW1hdG9yRGVzdHJveWVkXTsKICAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXJEZWxl
Z2F0ZS5nZXQoKSBzY3JvbGxBbmltYXRvckRlc3Ryb3llZF07CiAjZW5kaWYKQEAgLTU5Nyw3ICs2
MzcsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUCiB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQoKQogewogI2lmIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikKLSAgICB3a0NvbnRlbnRBcmVhU2Nyb2xsZWQobV9zY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXIuZ2V0KCkgY29udGVudEFyZWFTY3JvbGxlZF07CiAjZW5kaWYKICAgICBTY3JvbGxBbmltYXRv
cjo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKCk7CiB9CkBAIC02MDUsNzcgKzY0NSw3NyBAQCB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoCiB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjpjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJB
Ul9QQUlOVEVSKQotICAgIHdrQ29udGVudEFyZWFXaWxsUGFpbnQobV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0
KCkgY29udGVudEFyZWFXaWxsRHJhd107CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6bW91c2VFbnRlcmVkQ29udGVudEFyZWEoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKLSAgICB3a01vdXNlRW50ZXJlZENvbnRlbnRBcmVhKG1fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyLmdldCgpIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKICNlbmRpZgogfQogCiB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVhKCkgY29uc3QKIHsKICNpZiBV
U0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgd2tNb3VzZUV4aXRlZENvbnRlbnRBcmVhKG1f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFttX3Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlRXhpdGVkQ29udGVudEFyZWFdOwogI2VuZGlmCiB9CiAK
IHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhKCkgY29uc3QK
IHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgd2tNb3VzZU1vdmVkSW5Db250
ZW50QXJlYShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpKTsKKyAgICBbbV9zY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBtb3VzZU1vdmVkSW5Db250ZW50QXJlYV07CiAj
ZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgp
CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrV2lsbFN0YXJ0TGl2ZVJl
c2l6ZShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpKTsKKyAgICBbbV9zY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzdGFydExpdmVSZXNpemVdOwogI2VuZGlmCiB9CiAK
IHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXplZCgpIGNvbnN0CiB7CiAjaWYg
VVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrQ29udGVudEFyZWFSZXNpemVkKG1fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyLmdldCgpIGNvbnRlbnRBcmVhRGlkUmVzaXplXTsKICNlbmRpZgogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiB7CiAjaWYgVVNFKFdLX1ND
Uk9MTEJBUl9QQUlOVEVSKQotICAgIHdrV2lsbEVuZExpdmVSZXNpemUobV9zY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIu
Z2V0KCkgZW5kTGl2ZVJlc2l6ZV07CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6Y29udGVudEFyZWFEaWRTaG93KCkgY29uc3QKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BB
SU5URVIpCi0gICAgd2tDb250ZW50QXJlYURpZFNob3cobV9zY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlci5nZXQoKSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgd2lu
ZG93T3JkZXJlZEluXTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjb250
ZW50QXJlYURpZEhpZGUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikK
LSAgICB3a0NvbnRlbnRBcmVhRGlkSGlkZShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSB3aW5kb3dPcmRl
cmVkT3V0XTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRCZWdpblNj
cm9sbEdlc3R1cmUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAg
ICB3a0RpZEJlZ2luU2Nyb2xsR2VzdHVyZShtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpKTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBiZWdpblNjcm9s
bEdlc3R1cmVdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEVuZFNj
cm9sbEdlc3R1cmUoKSBjb25zdAogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAg
ICB3a0RpZEVuZFNjcm9sbEdlc3R1cmUobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQo
KSk7CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgZW5kU2Nyb2xsR2Vz
dHVyZV07CiAjZW5kaWYKIH0KIApAQCAtNjgzLDEwICs3MjMsMTAgQEAgdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6ZGlkQWRkVmVydGljYWxTYwogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRF
UikKICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9IHN0YXRpY19jYXN0PFdlYkNv
cmU6OlNjcm9sbGJhclRoZW1lTWFjKj4oV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRo
ZW1lKCkpLT5wYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7Ci0gICAgd2tTY3JvbGxiYXJQ
YWludGVyU2V0RGVsZWdhdGUocGFpbnRlciwgbV9zY3JvbGxiYXJQYWludGVyRGVsZWdhdGUuZ2V0
KCkpOwotICAgIHdrU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKG1fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIuZ2V0KCksIHBhaW50ZXIsIGZhbHNlKTsKKyAgICBbcGFpbnRlciBzZXRE
ZWxlZ2F0ZTptX3Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0VmVydGljYWxTY3JvbGxlckltcDpwYWludGVy
XTsKICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5MaXZlUmVzaXplKCkpCi0gICAgICAgIHdr
U2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShwYWludGVyLCAxKTsKKyAgICAgICAgW3BhaW50
ZXIgc2V0S25vYkFscGhhOjFdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2Nyb2xsYmFyKTsK
ICNlbmRpZgpAQCAtNjk2LDggKzczNiw4IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxS
ZW1vdmVWZXJ0aWMKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCiAgICAgV0tTY3Jv
bGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRl
ckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwotICAgIHdrU2Nyb2xsYmFyUGFpbnRlclNldERlbGVn
YXRlKHBhaW50ZXIsIG5pbCk7Ci0gICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIo
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgbmlsLCBmYWxzZSk7CisgICAgW3Bh
aW50ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOm5pbF07CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCkBAIC03MDcsMTAgKzc0NywxMCBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jpem9udGFsCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9Q
QUlOVEVSKQogICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWMqPihXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUoKSktPnBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKLSAgICB3a1Njcm9s
bGJhclBhaW50ZXJTZXREZWxlZ2F0ZShwYWludGVyLCBtX3Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0
ZS5nZXQoKSk7Ci0gICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgcGFpbnRlciwgdHJ1ZSk7CisgICAgW3BhaW50ZXIg
c2V0RGVsZWdhdGU6bV9zY3JvbGxiYXJQYWludGVyRGVsZWdhdGUuZ2V0KCldOworICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldEhvcml6b250YWxTY3JvbGxlckltcDpw
YWludGVyXTsKICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5MaXZlUmVzaXplKCkpCi0gICAg
ICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShwYWludGVyLCAxKTsKKyAgICAgICAg
W3BhaW50ZXIgc2V0S25vYkFscGhhOjFdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2Nyb2xs
YmFyKTsKICNlbmRpZgpAQCAtNzIwLDggKzc2MCw4IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6
OndpbGxSZW1vdmVIb3Jpem8KIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCiAgICAg
V0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpKS0+
cGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwotICAgIHdrU2Nyb2xsYmFyUGFpbnRlclNl
dERlbGVnYXRlKHBhaW50ZXIsIG5pbCk7Ci0gICAgd2tTZXRQYWludGVyRm9yUGFpbnRlckNvbnRy
b2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwgbmlsLCB0cnVlKTsKKyAg
ICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyLmdldCgpIHNldEhvcml6b250YWxTY3JvbGxlckltcDpuaWxdOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpAQCAtMTIzMywxOCArMTI3MywxOCBAQCB2
b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0CiAgICAgfQogCiAgICAgU2Ny
b2xsYmFyVGhlbWVNYWMqIG1hY1RoZW1lID0gKFNjcm9sbGJhclRoZW1lTWFjKilTY3JvbGxiYXJU
aGVtZTo6bmF0aXZlVGhlbWUoKTsKLSAgICBpbnQgbmV3U3R5bGUgPSB3a1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyU3R5bGUobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7Cisg
ICAgTlNTY3JvbGxlclN0eWxlIG5ld1N0eWxlID0gW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXIuZ2V0KCkgc2Nyb2xsZXJTdHlsZV07CiAKICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNj
cm9sbGJhciA9IHNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKICAgICAg
ICAgdmVydGljYWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAotICAgICAgICBXS1Njcm9sbGJh
clBhaW50ZXJSZWYgb2xkVmVydGljYWxQYWludGVyID0gd2tWZXJ0aWNhbFNjcm9sbGJhclBhaW50
ZXJGb3JDb250cm9sbGVyKG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOwotICAg
ICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgbmV3VmVydGljYWxQYWludGVyID0gd2tNYWtlU2Ny
b2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKG9sZFZlcnRpY2FsUGFpbnRlciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdTdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJ0aWNhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmYWxzZSk7CisgICAgICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBvbGRWZXJ0aWNhbFBh
aW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSB2ZXJ0aWNhbFNjcm9s
bGVySW1wXTsKKyAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIG5ld1ZlcnRpY2FsUGFpbnRl
ciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhT
dHlsZTpuZXdTdHlsZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xTaXplOihO
U0NvbnRyb2xTaXplKXZlcnRpY2FsU2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbDpOTyAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFZlcnRpY2FsUGFpbnRlcl07CiAgICAgICAgIG1h
Y1RoZW1lLT5zZXROZXdQYWludGVyRm9yU2Nyb2xsYmFyKHZlcnRpY2FsU2Nyb2xsYmFyLCBuZXdW
ZXJ0aWNhbFBhaW50ZXIpOwotICAgICAgICB3a1NldFBhaW50ZXJGb3JQYWludGVyQ29udHJvbGxl
cihtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpLCBuZXdWZXJ0aWNhbFBhaW50ZXIs
IGZhbHNlKTsKKyAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0
VmVydGljYWxTY3JvbGxlckltcDpuZXdWZXJ0aWNhbFBhaW50ZXJdOwogCiAgICAgICAgIC8vIFRo
ZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZlcmVudCB0aGlja25lc3Nlcywg
c28gd2UgbXVzdCByZS1zZXQgdGhlIAogICAgICAgICAvLyBmcmFtZVJlY3QgdG8gdGhlIG5ldyB0
aGlja25lc3MsIGFuZCB0aGUgcmUtbGF5b3V0IGJlbG93IHdpbGwgZW5zdXJlIHRoZSBwb3NpdGlv
bgpAQCAtMTI1NiwxMyArMTI5NiwxMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVT
Y3JvbGxlclN0CiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9s
bGFibGVBcmVhKCktPmhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBob3Jpem9udGFs
U2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVm
IG9sZEhvcml6b250YWxQYWludGVyID0gd2tIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZvckNv
bnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSk7Ci0gICAgICAgIFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBuZXdIb3Jpem9udGFsUGFpbnRlciA9IHdrTWFrZVNjcm9sbGJh
clJlcGxhY2VtZW50UGFpbnRlcihvbGRIb3Jpem9udGFsUGFpbnRlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld1N0eWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aG9yaXpvbnRhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRydWUpOworICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkSG9yaXpv
bnRhbFBhaW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBob3Jpem9u
dGFsU2Nyb2xsZXJJbXBdOworICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgbmV3SG9yaXpv
bnRhbFBhaW50ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgc2Nyb2xs
ZXJJbXBXaXRoU3R5bGU6bmV3U3R5bGUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250
cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlob3Jpem9udGFsU2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgp
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbDpZRVMgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsYWNpbmdTY3JvbGxlckltcDpvbGRIb3Jpem9udGFsUGFpbnRl
cl07CiAgICAgICAgIG1hY1RoZW1lLT5zZXROZXdQYWludGVyRm9yU2Nyb2xsYmFyKGhvcml6b250
YWxTY3JvbGxiYXIsIG5ld0hvcml6b250YWxQYWludGVyKTsKLSAgICAgICAgd2tTZXRQYWludGVy
Rm9yUGFpbnRlckNvbnRyb2xsZXIobV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSwg
bmV3SG9yaXpvbnRhbFBhaW50ZXIsIHRydWUpOworICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOm5ld0hvcml6b250YWxQYWlu
dGVyXTsKIAogICAgICAgICAvLyBUaGUgZGlmZmVyZW50IHNjcm9sbGJhciBzdHlsZXMgaGF2ZSBk
aWZmZXJlbnQgdGhpY2tuZXNzZXMsIHNvIHdlIG11c3QgcmUtc2V0IHRoZSAKICAgICAgICAgLy8g
ZnJhbWVSZWN0IHRvIHRoZSBuZXcgdGhpY2tuZXNzLCBhbmQgdGhlIHJlLWxheW91dCBiZWxvdyB3
aWxsIGVuc3VyZSB0aGUgcG9zaXRpb24KQEAgLTEyOTYsNyArMTMzNiwxMCBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpzdG9wU2Nyb2xsYmFyUGFpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6
OmluaXRpYWxTY3JvbGxiYXJQYWludFRpbWVyRmlyZWQoVGltZXI8U2Nyb2xsQW5pbWF0b3JNYWM+
KikKIHsKLSAgICB3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKG1fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkpOworICAgIC8vIFRvIGZvcmNlIHRoZSBzY3JvbGxi
YXJzIHRvIGZsYXNoLCB3ZSBoYXZlIHRvIGNhbGwgaGlkZSBmaXJzdC4gT3RoZXJ3aXNlLCB0aGUg
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIKKyAgICAvLyBtaWdodCB0aGluayB0aGF0IHRoZSBz
Y3JvbGxiYXJzIGFyZSBhbHJlYWR5IHNob3dpbmcgYW5kIGJhaWwgZWFybHkuCisgICAgW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgaGlkZU92ZXJsYXlTY3JvbGxlcnNdOworICAg
IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGZsYXNoU2Nyb2xsZXJzXTsKIH0K
ICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMuaAkocmV2aXNpb24gOTMyMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBA
QAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCiAKICNpZiBVU0UoV0tfU0NS
T0xMQkFSX1BBSU5URVIpCi10eXBlZGVmIHN0cnVjdCBfX1dLU2Nyb2xsYmFyUGFpbnRlciAqV0tT
Y3JvbGxiYXJQYWludGVyUmVmOwordHlwZWRlZiBpZCBXS1Njcm9sbGJhclBhaW50ZXJSZWY7CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQkocmV2aXNpb24gOTMyMjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDYgKzU4LDI3IEBAIHN0YXRpYyBTY3JvbGxiYXJQYWludGVyTWFwKiBzY3Jv
bGxiYXJNYXAKIAogfQogCisjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQorQGludGVyZmFj
ZSBOU09iamVjdCAoU2Nyb2xsYmFyUGFpbnRlcikKKysgKGlkKXNjcm9sbGVySW1wV2l0aFN0eWxl
OihOU1Njcm9sbGVyU3R5bGUpbmV3U2Nyb2xsZXJTdHlsZSBjb250cm9sU2l6ZTooTlNDb250cm9s
U2l6ZSluZXdDb250cm9sU2l6ZSBob3Jpem9udGFsOihCT09MKWhvcml6b250YWwgcmVwbGFjaW5n
U2Nyb2xsZXJJbXA6KGlkKXByZXZpb3VzOworLSAodm9pZClzZXRFbmFibGVkOihCT09MKWVuYWJs
ZWQ7CistICh2b2lkKXNldEJvdW5kc1NpemU6KE5TU2l6ZSlib3VuZHNTaXplOworLSAodm9pZClz
ZXREb3VibGVWYWx1ZTooZG91YmxlKWRvdWJsZVZhbHVlOworLSAodm9pZClzZXRLbm9iUHJvcG9y
dGlvbjooQ0dGbG9hdClwcm9wb3J0aW9uOworLSAodm9pZClzZXRLbm9iU3R5bGU6KE5TU2Nyb2xs
ZXJLbm9iU3R5bGUpa25vYlN0eWxlOworLSAoQk9PTClpc0hvcml6b250YWw7CistIChDR0Zsb2F0
KXRyYWNrV2lkdGg7CistIChDR0Zsb2F0KXRyYWNrQm94V2lkdGg7CistIChDR0Zsb2F0KWtub2JN
aW5MZW5ndGg7CistIChDR0Zsb2F0KXRyYWNrT3ZlcmxhcEVuZEluc2V0OworLSAoQ0dGbG9hdClr
bm9iT3ZlcmxhcEVuZEluc2V0OworLSAoQ0dGbG9hdCl0cmFja0VuZEluc2V0OworLSAoQ0dGbG9h
dClrbm9iRW5kSW5zZXQ7CistICh2b2lkKWRyYXdLbm9iU2xvdEluUmVjdDooTlNSZWN0KXNsb3RS
ZWN0IGhpZ2hsaWdodDooQk9PTClmbGFnIGFscGhhOihDR0Zsb2F0KWFscGhhOworLSAodm9pZClk
cmF3S25vYjsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIFNjcm9sbGJhclByZWZzT2JzZXJ2
ZXIgOiBOU09iamVjdAogewogfQpAQCAtMTU4LDcgKzE3OSw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhl
bWVNYWM6OnJlZ2lzdGVyU2Nyb2xsYmEKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIp
CiAgICAgYm9vbCBpc0hvcml6b250YWwgPSBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9y
aXpvbnRhbFNjcm9sbGJhcjsKLSAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgc2Nyb2xsYmFyUGFp
bnRlciA9IHdrTWFrZVNjcm9sbGJhclBhaW50ZXIoc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpLCBp
c0hvcml6b250YWwpOworICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVy
ID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0
eWxlOndrUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgY29udHJvbFNpemU6KE5TQ29udHJvbFNp
emUpc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpIGhvcml6b250YWw6aXNIb3Jpem9udGFsIHJlcGxh
Y2luZ1Njcm9sbGVySW1wOm5pbF07CiAgICAgc2Nyb2xsYmFyTWFwKCktPmFkZChzY3JvbGxiYXIs
IHNjcm9sbGJhclBhaW50ZXIpOwogICAgIHVwZGF0ZUVuYWJsZWRTdGF0ZShzY3JvbGxiYXIpOwog
ICAgIHVwZGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZShzY3JvbGxiYXIpOwpAQCAtMjEzLDcgKzIz
NCw4IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnByZWZlcmVuY2VzQ2hhbmcKIGludCBTY3Jv
bGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNv
bnRyb2xTaXplKQogewogI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICByZXR1cm4g
d2tTY3JvbGxiYXJUaGlja25lc3MoY29udHJvbFNpemUpOworICAgIFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiBzY3JvbGxiYXJQYWludGVyID0gKFdLU2Nyb2xsYmFyUGFpbnRlclJlZilbTlNDbGFzc0Zy
b21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6d2tSZWNvbW1l
bmRlZFNjcm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTpjb250cm9sU2l6ZSBob3Jpem9udGFsOk5P
IHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07CisgICAgcmV0dXJuIFtzY3JvbGxiYXJQYWludGVy
IHRyYWNrQm94V2lkdGhdOwogI2Vsc2UKICAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVzc1tj
b250cm9sU2l6ZV07CiAjZW5kaWYKQEAgLTIyMiwzMCArMjQ0LDI3IEBAIGludCBTY3JvbGxiYXJU
aGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXMKIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNP
dmVybGF5U2Nyb2xsYmFycygpIGNvbnN0CiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVS
KQotICAgIHJldHVybiB3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycygpOwor
ICAgIHJldHVybiB3a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHls
ZU92ZXJsYXk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogfQogCi0jaWYgVVNF
KFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotc3RhdGljIGlubGluZSB3a1Njcm9sbGVyS25vYlN0eWxl
IHRvU2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZShTY3JvbGxiYXJPdmVybGF5U3R5bGUgc3R5bGUp
Cit2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Ny
b2xsYmFyKiBzY3JvbGxiYXIpCiB7Ci0gICAgc3dpdGNoIChzdHlsZSkgeworI2lmIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikKKyAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9IHBh
aW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICBzd2l0Y2ggKHNjcm9sbGJhci0+c2Ny
b2xsYWJsZUFyZWEoKS0+c2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkpIHsKKyAgICBjYXNlIFNjcm9s
bGJhck92ZXJsYXlTdHlsZURlZmF1bHQ6CisgICAgICAgIFtwYWludGVyIHNldEtub2JTdHlsZTpO
U1Njcm9sbGVyS25vYlN0eWxlRGVmYXVsdF07CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Ny
b2xsYmFyT3ZlcmxheVN0eWxlRGFyazoKLSAgICAgICAgcmV0dXJuIHdrU2Nyb2xsZXJLbm9iU3R5
bGVEYXJrOworICAgICAgICBbcGFpbnRlciBzZXRLbm9iU3R5bGU6TlNTY3JvbGxlcktub2JTdHls
ZURhcmtdOworICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbGJhck92ZXJsYXlTdHlsZUxp
Z2h0OgotICAgICAgICByZXR1cm4gd2tTY3JvbGxlcktub2JTdHlsZUxpZ2h0OwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHJldHVybiB3a1Njcm9sbGVyS25vYlN0eWxlRGVmYXVsdDsKKyAgICAgICAg
W3BhaW50ZXIgc2V0S25vYlN0eWxlOk5TU2Nyb2xsZXJLbm9iU3R5bGVMaWdodF07CisgICAgICAg
IGJyZWFrOwogICAgIH0KLX0KLSNlbmRpZgotCi12b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRh
dGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCi17Ci0jaWYgVVNF
KFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHls
ZShwYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhciksIHRvU2Nyb2xsYmFyUGFpbnRlcktub2JT
dHlsZShzY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCktPnNjcm9sbGJhck92ZXJsYXlTdHlsZSgp
KSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCkBAIC0yNzgs
NyArMjk3LDkgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIoU2Nyb2xsYgogewog
ICAgIGludCBtaW5MZW5ndGhGb3JUaHVtYjsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIp
Ci0gICAgbWluTGVuZ3RoRm9yVGh1bWIgPSB3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExlbmd0aE5l
ZWRlZEZvclRodW1iKHNjcm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSk7CisgICAg
V0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9s
bGJhcikuZ2V0KCk7CisgICAgbWluTGVuZ3RoRm9yVGh1bWIgPSBbcGFpbnRlciBrbm9iTWluTGVu
Z3RoXSArIFtwYWludGVyIHRyYWNrT3ZlcmxhcEVuZEluc2V0XSArIFtwYWludGVyIGtub2JPdmVy
bGFwRW5kSW5zZXRdCisgICAgICAgICsgMiAqIChbcGFpbnRlciB0cmFja0VuZEluc2V0XSArIFtw
YWludGVyIGtub2JFbmRJbnNldF0pOwogI2Vsc2UKICAgICBtaW5MZW5ndGhGb3JUaHVtYiA9IDIg
KiBjQnV0dG9uSW5zZXRbc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpXSArIGNUaHVtYk1pbkxlbmd0
aFtzY3JvbGxiYXItPmNvbnRyb2xTaXplKCldICsgMTsKICNlbmRpZgpAQCAtNDE5LDcgKzQ0MCw3
IEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVNYWM6OnRyYWNrUmVjdChTY3IKIGludCBTY3JvbGxi
YXJUaGVtZU1hYzo6bWluaW11bVRodW1iTGVuZ3RoKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewog
I2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLSAgICByZXR1cm4gd2tTY3JvbGxiYXJNaW5p
bXVtVGh1bWJMZW5ndGgoc2Nyb2xsYmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdldCgpKTsKKyAg
ICByZXR1cm4gW3Njcm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSBrbm9iTWluTGVu
Z3RoXTsKICNlbHNlCiAgICAgcmV0dXJuIGNUaHVtYk1pbkxlbmd0aFtzY3JvbGxiYXItPmNvbnRy
b2xTaXplKCldOwogI2VuZGlmCkBAIC00NjAsMTIgKzQ4MSwzNiBAQCBzdGF0aWMgaW50IHNjcm9s
bGJhclBhcnRUb0hJUHJlc3NlZFN0YXRlCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVF
bmFibGVkU3RhdGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7CiAjaWYgVVNFKFdLX1NDUk9MTEJB
Ul9QQUlOVEVSKQotICAgIHdrU2Nyb2xsYmFyUGFpbnRlclNldEVuYWJsZWQoc2Nyb2xsYmFyTWFw
KCktPmdldChzY3JvbGxiYXIpLmdldCgpLCBzY3JvbGxiYXItPmVuYWJsZWQoKSk7CisgICAgW3Nj
cm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSBzZXRFbmFibGVkOnNjcm9sbGJhci0+
ZW5hYmxlZCgpXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAjZW5kaWYK
IH0KIAorI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKK3N0YXRpYyB2b2lkIHNjcm9sbGJh
clBhaW50ZXJQYWludChXS1Njcm9sbGJhclBhaW50ZXJSZWYgc2Nyb2xsYmFyUGFpbnRlciwgYm9v
bCBlbmFibGVkLCBkb3VibGUgdmFsdWUsIENHRmxvYXQgcHJvcG9ydGlvbiwgQ0dSZWN0IGZyYW1l
UmVjdCkKK3sKKyAgICBbc2Nyb2xsYmFyUGFpbnRlciBzZXRFbmFibGVkOmVuYWJsZWRdOworICAg
IFtzY3JvbGxiYXJQYWludGVyIHNldEJvdW5kc1NpemU6IE5TU2l6ZUZyb21DR1NpemUoZnJhbWVS
ZWN0LnNpemUpXTsKKyAgICBbc2Nyb2xsYmFyUGFpbnRlciBzZXREb3VibGVWYWx1ZTp2YWx1ZV07
CisgICAgW3Njcm9sbGJhclBhaW50ZXIgc2V0S25vYlByb3BvcnRpb246cHJvcG9ydGlvbl07CisK
KyAgICAvLyBUaGUgc2Nyb2xsYmFyJ3MgZnJhbWVSZWN0IGluY2x1ZGVzIGEgc2lkZSBpbnNldCBm
b3Igb3ZlcmxheSBzY3JvbGxlcnMsIHNvIHdlIGhhdmUgdG8gdXNlIHRoZSAKKyAgICAvLyB0cmFj
a1dpZHRoIGZvciBkcmF3S25vYlNsb3RJblJlY3QKKyAgICBOU1JlY3QgdHJhY2tSZWN0OworICAg
IGlmIChbc2Nyb2xsYmFyUGFpbnRlciBpc0hvcml6b250YWxdKQorICAgICAgICB0cmFja1JlY3Qg
PSBOU01ha2VSZWN0KDAsIDAsIGZyYW1lUmVjdC5zaXplLndpZHRoLCBbc2Nyb2xsYmFyUGFpbnRl
ciB0cmFja1dpZHRoXSk7CisgICAgZWxzZQorICAgICAgICB0cmFja1JlY3QgPSBOU01ha2VSZWN0
KDAsIDAsIFtzY3JvbGxiYXJQYWludGVyIHRyYWNrV2lkdGhdLCBmcmFtZVJlY3Quc2l6ZS5oZWln
aHQpOworICAgIFtzY3JvbGxiYXJQYWludGVyIGRyYXdLbm9iU2xvdEluUmVjdDp0cmFja1JlY3Qg
aGlnaGxpZ2h0Ok5PXTsKKworICAgIC8vIElmIHRoZSBzY3JvbGxiYXIgaXMgbm90IGVuYWJsZWQs
IHRoZW4gdGhlcmUgaXMgbm90aGluZyB0byBzY3JvbGwgdG8sIGFuZCB3ZSBzaG91bGRuJ3QKKyAg
ICAvLyBjYWxsIGRyYXdLbm9iLgorICAgIGlmIChlbmFibGVkKQorICAgICAgICBbc2Nyb2xsYmFy
UGFpbnRlciBkcmF3S25vYl07Cit9CisjZW5kaWYKKwogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6
cGFpbnQoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgZGFtYWdlUmVjdCkKIHsKICNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIp
CkBAIC00OTYsNyArNTQxLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Nyb2xs
YmFyKgogICAgIGNvbnRleHQtPmNsaXAoZGFtYWdlUmVjdCk7CiAgICAgY29udGV4dC0+dHJhbnNs
YXRlKHNjcm9sbGJhci0+ZnJhbWVSZWN0KCkueCgpLCBzY3JvbGxiYXItPmZyYW1lUmVjdCgpLnko
KSk7CiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChjb250ZXh0
KTsKLSAgICB3a1Njcm9sbGJhclBhaW50ZXJQYWludChzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9s
bGJhcikuZ2V0KCksCisgICAgc2Nyb2xsYmFyUGFpbnRlclBhaW50KHNjcm9sbGJhck1hcCgpLT5n
ZXQoc2Nyb2xsYmFyKS5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxi
YXItPmVuYWJsZWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oc2Nyb2xsYmFyLT52
aXNpYmxlU2l6ZSgpKSAtIG92ZXJoYW5nKSAvIHNjcm9sbGJhci0+dG90YWxTaXplKCksCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmgJKHJldmlzaW9uIDkzMjI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDU0ICsyNTAs
NyBAQCBleHRlcm4gQ1RUeXBlc2V0dGVyUmVmICgqd2tDcmVhdGVDVFR5cGVzCiBleHRlcm4gQ0dD
b250ZXh0UmVmICgqd2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFj
ZSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9y
U3BhY2UpOwogZXh0ZXJuIENHSW1hZ2VSZWYgKCp3a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFn
ZSkoQ0dDb250ZXh0UmVmIGNvbnRleHQpOwogCi10eXBlZGVmIHN0cnVjdCBfX1dLU2Nyb2xsYmFy
UGFpbnRlciAqV0tTY3JvbGxiYXJQYWludGVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgX19XS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyICpXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmOwot
Ci1leHRlcm4gV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUGFpbnRlciko
aW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1leHRlcm4gV0tTY3JvbGxiYXJQ
YWludGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKShXS1Njcm9sbGJh
clBhaW50ZXJSZWYgb2xkUGFpbnRlciwgaW50IG5ld1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJv
b2wgaXNIb3Jpem9udGFsKTsKLWV4dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVyU2V0RGVs
ZWdhdGUpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgaWQgc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRl
KTsKLWV4dGVybiB2b2lkICgqd2tTY3JvbGxiYXJQYWludGVyU2V0RW5hYmxlZCkoV0tTY3JvbGxi
YXJQYWludGVyUmVmLCBib29sIGVuYWJsZWQpOwotZXh0ZXJuIHZvaWQgKCp3a1Njcm9sbGJhclBh
aW50ZXJQYWludCkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2
YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVSZWN0KTsKLWV4dGVybiB2b2lk
ICgqd2tTY3JvbGxiYXJQYWludGVyRm9yY2VGbGFzaFNjcm9sbGVycykoV0tTY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJUaGlja25lc3MpKGlu
dCBjb250cm9sU2l6ZSk7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5n
dGgpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1leHRlcm4gaW50ICgqd2tTY3JvbGxiYXJNaW5p
bXVtVG90YWxMZW5ndGhOZWVkZWRGb3JUaHVtYikoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4
dGVybiBDR0Zsb2F0ICgqd2tTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKShXS1Njcm9sbGJhclBh
aW50ZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEp
KFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dGbG9hdCk7Ci1leHRlcm4gQ0dGbG9hdCAoKndrU2Ny
b2xsYmFyUGFpbnRlclRyYWNrQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1leHRlcm4g
dm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiwgQ0dGbG9hdCk7Ci1leHRlcm4gYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlcklzSG9yaXpv
bnRhbCkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVybiBDR1JlY3QgKCp3a1Njcm9sbGJh
clBhaW50ZXJLbm9iUmVjdCkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLWV4dGVybiB2b2lkICgq
d2tTY3JvbGxiYXJQYWludGVyU2V0T3ZlcmxheVN0YXRlKShXS1Njcm9sbGJhclBhaW50ZXJSZWYs
IGludCBvdmVybGF5U2Nyb2xsZXJTdGF0ZSk7Ci0KLWVudW0gewotICAgIHdrU2Nyb2xsZXJLbm9i
U3R5bGVEZWZhdWx0ID0gMCwKLSAgICB3a1Njcm9sbGVyS25vYlN0eWxlRGFyayA9IDEsCi0gICAg
d2tTY3JvbGxlcktub2JTdHlsZUxpZ2h0ID0gMgotfTsKLXR5cGVkZWYgdWludDMyIHdrU2Nyb2xs
ZXJLbm9iU3R5bGU7Ci1leHRlcm4gdm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHls
ZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKLSAgICAKLWV4
dGVybiBXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmICgqd2tNYWtlU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIpKGlkIHBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUpOwotZXh0ZXJuIHZv
aWQgKCp3a1NldFBhaW50ZXJGb3JQYWludGVyQ29udHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZiwgV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGlzSG9yaXpvbnRhbCk7
Ci1leHRlcm4gV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tWZXJ0aWNhbFNjcm9sbGJhclBhaW50
ZXJGb3JDb250cm9sbGVyKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVy
biBXS1Njcm9sbGJhclBhaW50ZXJSZWYgKCp3a0hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRm9y
Q29udHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gaW50
ICgqd2tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKShXS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tTZXRTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclN0eWxlKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmLCBpbnQgbmV3U3R5bGUp
OwotZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhU2Nyb2xsZWQpKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhV2lsbFBhaW50KShX
S1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lkICgqd2tNb3VzZUVu
dGVyZWRDb250ZW50QXJlYSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRl
cm4gdm9pZCAoKndrTW91c2VFeGl0ZWRDb250ZW50QXJlYSkoV0tTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrTW91c2VNb3ZlZEluQ29udGVudEFyZWEpKFdL
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a1dpbGxTdGFy
dExpdmVSZXNpemUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZv
aWQgKCp3a0NvbnRlbnRBcmVhUmVzaXplZCkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJl
Zik7Ci1leHRlcm4gdm9pZCAoKndrV2lsbEVuZExpdmVSZXNpemUpKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYpOwotZXh0ZXJuIHZvaWQgKCp3a0NvbnRlbnRBcmVhRGlkU2hvdykoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1leHRlcm4gdm9pZCAoKndrQ29udGVudEFy
ZWFEaWRIaWRlKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWV4dGVybiB2b2lk
ICgqd2tEaWRCZWdpblNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJS
ZWYpOwotZXh0ZXJuIHZvaWQgKCp3a0RpZEVuZFNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJSZWYpOwotCi1leHRlcm4gYm9vbCAoKndrU2Nyb2xsYmFyUGFpbnRlclVz
ZXNPdmVybGF5U2Nyb2xsZXJzKSh2b2lkKTsKK2V4dGVybiBpbnQgKCp3a1JlY29tbWVuZGVkU2Ny
b2xsZXJTdHlsZSkodm9pZCk7CiAKIGV4dGVybiBib29sICgqd2tFeGVjdXRhYmxlV2FzTGlua2Vk
T25PckJlZm9yZVNub3dMZW9wYXJkKSh2b2lkKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9u
IDkzMjI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzMyw0NCArMTMzLDcgQEAgQ1RUeXBlc2V0dGVy
UmVmICgqd2tDcmVhdGVDVFR5cGVzZXR0ZXJXaQogQ0dDb250ZXh0UmVmICgqd2tJT1N1cmZhY2VD
b250ZXh0Q3JlYXRlKShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgdW5zaWduZWQgd2lkdGgsIHVuc2ln
bmVkIGhlaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpOwogQ0dJbWFnZVJlZiAoKndr
SU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKShDR0NvbnRleHRSZWYgY29udGV4dCk7CiAKLVdL
U2Nyb2xsYmFyUGFpbnRlclJlZiAoKndrTWFrZVNjcm9sbGJhclBhaW50ZXIpKGludCBjb250cm9s
U2l6ZSwgYm9vbCBpc0hvcml6b250YWwpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmICgqd2tNYWtl
U2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKShXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkUGFp
bnRlciwgaW50IG5ld1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKTsK
LXZvaWQgKCp3a1Njcm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZSkoV0tTY3JvbGxiYXJQYWludGVy
UmVmLCBpZCBzY3JvbGxiYXJQYWludGVyRGVsZWdhdGUpOwotdm9pZCAoKndrU2Nyb2xsYmFyUGFp
bnRlclNldEVuYWJsZWQpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgYm9vbCBlbmFibGVkKTsKLXZv
aWQgKCp3a1Njcm9sbGJhclBhaW50ZXJQYWludCkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29s
IGVuYWJsZWQsIGRvdWJsZSB2YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVS
ZWN0KTsKLXZvaWQgKCp3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKShXS1Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLWludCAoKndrU2Nyb2xsYmFyVGhpY2tuZXNz
KShpbnQgY29udHJvbFNpemUpOwotaW50ICgqd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgp
KFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1pbnQgKCp3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExl
bmd0aE5lZWRlZEZvclRodW1iKShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotQ0dGbG9hdCAoKndr
U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLXZvaWQg
KCp3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEpKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwg
Q0dGbG9hdCk7Ci1DR0Zsb2F0ICgqd2tTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYSkoV0tTY3Jv
bGxiYXJQYWludGVyUmVmKTsKLXZvaWQgKCp3a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhh
KShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIENHRmxvYXQpOwotYm9vbCAoKndrU2Nyb2xsYmFyUGFp
bnRlcklzSG9yaXpvbnRhbCkoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLUNHUmVjdCAoKndrU2Ny
b2xsYmFyUGFpbnRlcktub2JSZWN0KShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotdm9pZCAoKndr
U2Nyb2xsYmFyUGFpbnRlclNldE92ZXJsYXlTdGF0ZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBp
bnQgb3ZlcmxheVNjcm9sbGVyU3RhdGUpOwotdm9pZCAoKndrU2V0U2Nyb2xsYmFyUGFpbnRlcktu
b2JTdHlsZSkoV0tTY3JvbGxiYXJQYWludGVyUmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKLQot
V0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiAoKndrTWFrZVNjcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyKShpZCBwYWludGVyQ29udHJvbGxlckRlbGVnYXRlKTsKLXZvaWQgKCp3a1NldFBh
aW50ZXJGb3JQYWludGVyQ29udHJvbGxlcikoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJl
ZiwgV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1XS1Njcm9sbGJh
clBhaW50ZXJSZWYgKCp3a1ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpKFdL
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmICgq
d2tIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpKFdLU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJSZWYpOwotaW50ICgqd2tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0
eWxlKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a1NldFNjcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJS
ZWYsIGludCBuZXdTdHlsZSk7Ci12b2lkICgqd2tDb250ZW50QXJlYVNjcm9sbGVkKShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a0NvbnRlbnRBcmVhV2lsbFBhaW50
KShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a01vdXNlRW50ZXJl
ZENvbnRlbnRBcmVhKShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3
a01vdXNlRXhpdGVkQ29udGVudEFyZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYp
Owotdm9pZCAoKndrTW91c2VNb3ZlZEluQ29udGVudEFyZWEpKFdLU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJSZWYpOwotdm9pZCAoKndrV2lsbFN0YXJ0TGl2ZVJlc2l6ZSkoV0tTY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkICgqd2tDb250ZW50QXJlYVJlc2l6ZWQpKFdLU2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAoKndrV2lsbEVuZExpdmVSZXNpemUp
KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCAoKndrQ29udGVudEFyZWFE
aWRTaG93KShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgKCp3a0NvbnRl
bnRBcmVhRGlkSGlkZSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkICgq
d2tEaWRCZWdpblNjcm9sbEdlc3R1cmUpKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYp
Owotdm9pZCAoKndrRGlkRW5kU2Nyb2xsR2VzdHVyZSkoV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclJlZik7Ci0KLWJvb2wgKCp3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVy
cykodm9pZCk7CitpbnQgKCp3a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSkodm9pZCk7CiAKIGJv
b2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzM0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTE4ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjY0OTUKKyAgICAgICAgTGlvbi1zcGVjaWZpYyBzY3JvbGxlciBTUElzIGNhbiB1c2UgZm9yd2Fy
ZCBkZWNsYXJhdGlvbiBpbnN0ZWFkIG9mIAorICAgICAgICBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UK
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVy
ZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKwogMjAxMS0w
OC0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFkZSBzb21l
IGNvZGUgZXZlbiBtb3JlIHByaXZhdGUgdG8gYSBwYXJ0aWN1bGFyIGZpbGUgYW5kIGNsYXNzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0
ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiA5MzIyNykK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3Rl
bUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTEzLDQyICsxMTMsNyBAQCB2b2lkIElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29u
dGV4dENyZWF0ZSk7CiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKTsK
ICAgICAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0
aW9ucyk7Ci0gICAgICAgIElOSVQoTWFrZVNjcm9sbGJhclBhaW50ZXIpOwotICAgICAgICBJTklU
KFNjcm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZSk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyUGFp
bnRlclNldEVuYWJsZWQpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJQYWludCk7Ci0g
ICAgICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlckZvcmNlRmxhc2hTY3JvbGxlcnMpOwotICAgICAg
ICBJTklUKFNjcm9sbGJhclRoaWNrbmVzcyk7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyTWluaW11
bVRodW1iTGVuZ3RoKTsKLSAgICAgICAgSU5JVChTY3JvbGxiYXJNaW5pbXVtVG90YWxMZW5ndGhO
ZWVkZWRGb3JUaHVtYik7Ci0gICAgICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7
Ci0gICAgICAgIElOSVQoU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0gICAgICAgIElO
SVQoU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEpOwotICAgICAgICBJTklUKFNldFNjcm9sbGJh
clBhaW50ZXJUcmFja0FscGhhKTsKLSAgICAgICAgSU5JVChTY3JvbGxiYXJQYWludGVySXNIb3Jp
em9udGFsKTsKLSAgICAgICAgSU5JVChTY3JvbGxiYXJQYWludGVyS25vYlJlY3QpOwotICAgICAg
ICBJTklUKFNjcm9sbGJhclBhaW50ZXJTZXRPdmVybGF5U3RhdGUpOwotICAgICAgICBJTklUKFNl
dFNjcm9sbGJhclBhaW50ZXJLbm9iU3R5bGUpOwotICAgICAgICBJTklUKE1ha2VTY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlcik7Ci0gICAgICAgIElOSVQoTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50
UGFpbnRlcik7Ci0gICAgICAgIElOSVQoU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKTsK
LSAgICAgICAgSU5JVChWZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKTsKLSAg
ICAgICAgSU5JVChIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOwotICAg
ICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUpOwotICAgICAgICBJTklU
KFNldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUpOwotICAgICAgICBJTklUKENvbnRl
bnRBcmVhU2Nyb2xsZWQpOwotICAgICAgICBJTklUKENvbnRlbnRBcmVhV2lsbFBhaW50KTsKLSAg
ICAgICAgSU5JVChNb3VzZUVudGVyZWRDb250ZW50QXJlYSk7Ci0gICAgICAgIElOSVQoTW91c2VF
eGl0ZWRDb250ZW50QXJlYSk7Ci0gICAgICAgIElOSVQoTW91c2VNb3ZlZEluQ29udGVudEFyZWEp
OwotICAgICAgICBJTklUKFdpbGxTdGFydExpdmVSZXNpemUpOwotICAgICAgICBJTklUKENvbnRl
bnRBcmVhUmVzaXplZCk7Ci0gICAgICAgIElOSVQoV2lsbEVuZExpdmVSZXNpemUpOwotICAgICAg
ICBJTklUKENvbnRlbnRBcmVhRGlkU2hvdyk7Ci0gICAgICAgIElOSVQoQ29udGVudEFyZWFEaWRI
aWRlKTsKLSAgICAgICAgSU5JVChEaWRCZWdpblNjcm9sbEdlc3R1cmUpOwotICAgICAgICBJTklU
KERpZEVuZFNjcm9sbEdlc3R1cmUpOwotICAgICAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJVc2Vz
T3ZlcmxheVNjcm9sbGVycyk7CisgICAgICAgIElOSVQoUmVjb21tZW5kZWRTY3JvbGxlclN0eWxl
KTsKICAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJk
KTsKICAgICAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwog
ICAgICAgICBJTklUKEFWQXNzZXRSZXNvbHZlZFVSTCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5MzM0MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTE4ICBCZXRoIERha2luICA8YmRha2luQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0OTUKKyAgICAgICAg
TGlvbi1zcGVjaWZpYyBzY3JvbGxlciBTUElzIGNhbiB1c2UgZm9yd2FyZCBkZWNsYXJhdGlvbiBp
bnN0ZWFkIG9mIAorICAgICAgICBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKToKKwogMjAxMS0wOC0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1vcmUgQysrMHggbGliYysrIGJ1aWxkIGZpeGVzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2Uu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiA5MzIyNykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDQyICsxMjIsNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAg
SU5JVChJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKTsKICAgICBJTklUKElPU3VyZmFjZUNvbnRleHRD
cmVhdGVJbWFnZSk7CiAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3Zp
ZGVyQW5kT3B0aW9ucyk7Ci0gICAgSU5JVChNYWtlU2Nyb2xsYmFyUGFpbnRlcik7Ci0gICAgSU5J
VChTY3JvbGxiYXJQYWludGVyU2V0RGVsZWdhdGUpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRl
clNldEVuYWJsZWQpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlclBhaW50KTsKLSAgICBJTklU
KFNjcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKTsKLSAgICBJTklUKFNjcm9sbGJh
clRoaWNrbmVzcyk7Ci0gICAgSU5JVChTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgpOwotICAg
IElOSVQoU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIpOwotICAgIElO
SVQoU2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYSk7Ci0gICAgSU5JVChTZXRTY3JvbGxiYXJQYWlu
dGVyS25vYkFscGhhKTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKTsKLSAg
ICBJTklUKFNldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKTsKLSAgICBJTklUKFNjcm9sbGJh
clBhaW50ZXJJc0hvcml6b250YWwpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0
KTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJTZXRPdmVybGF5U3RhdGUpOwotICAgIElOSVQo
U2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZSk7Ci0gICAgSU5JVChNYWtlU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIpOwotICAgIElOSVQoTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRl
cik7Ci0gICAgSU5JVChTZXRQYWludGVyRm9yUGFpbnRlckNvbnRyb2xsZXIpOwotICAgIElOSVQo
VmVydGljYWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxlcik7Ci0gICAgSU5JVChIb3Jpem9u
dGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOwotICAgIElOSVQoU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJTdHlsZSk7Ci0gICAgSU5JVChTZXRTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclN0eWxlKTsKLSAgICBJTklUKENvbnRlbnRBcmVhU2Nyb2xsZWQpOwotICAgIElOSVQoQ29u
dGVudEFyZWFXaWxsUGFpbnQpOwotICAgIElOSVQoTW91c2VFbnRlcmVkQ29udGVudEFyZWEpOwot
ICAgIElOSVQoTW91c2VFeGl0ZWRDb250ZW50QXJlYSk7Ci0gICAgSU5JVChNb3VzZU1vdmVkSW5D
b250ZW50QXJlYSk7Ci0gICAgSU5JVChXaWxsU3RhcnRMaXZlUmVzaXplKTsKLSAgICBJTklUKENv
bnRlbnRBcmVhUmVzaXplZCk7Ci0gICAgSU5JVChXaWxsRW5kTGl2ZVJlc2l6ZSk7Ci0gICAgSU5J
VChDb250ZW50QXJlYURpZFNob3cpOwotICAgIElOSVQoQ29udGVudEFyZWFEaWRIaWRlKTsKLSAg
ICBJTklUKERpZEJlZ2luU2Nyb2xsR2VzdHVyZSk7Ci0gICAgSU5JVChEaWRFbmRTY3JvbGxHZXN0
dXJlKTsKLSAgICBJTklUKFNjcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyk7Cisg
ICAgSU5JVChSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUpOwogICAgIElOSVQoRXhlY3V0YWJsZVdh
c0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCk7CiAgICAgSU5JVChDb3B5RGVmYXVsdFNlYXJj
aFByb3ZpZGVyRGlzcGxheU5hbWUpOwogICAgIElOSVQoQVZBc3NldFJlc29sdmVkVVJMKTsK
</data>
<flag name="review"
          id="100251"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>