<?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>118130</bug_id>
          
          <creation_ts>2013-06-27 06:44:38 -0700</creation_ts>
          <short_desc>Adopt is/toHTMLInputElement for code cleanup</short_desc>
          <delta_ts>2013-06-27 19:27:16 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kangil Han">kangil.han</reporter>
          <assigned_to name="Kangil Han">kangil.han</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>904210</commentid>
    <comment_count>0</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-06-27 06:44:38 -0700</bug_when>
    <thetext>Adopt is/toHTMLInputElement for code cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904217</commentid>
    <comment_count>1</comment_count>
      <attachid>205599</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-06-27 06:52:52 -0700</bug_when>
    <thetext>Created attachment 205599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904222</commentid>
    <comment_count>2</comment_count>
      <attachid>205599</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-06-27 07:07:14 -0700</bug_when>
    <thetext>Comment on attachment 205599
Patch

Attachment 205599 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/976293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904224</commentid>
    <comment_count>3</comment_count>
      <attachid>205602</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-06-27 07:11:43 -0700</bug_when>
    <thetext>Created attachment 205602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904407</commentid>
    <comment_count>4</comment_count>
      <attachid>205602</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-06-27 17:54:35 -0700</bug_when>
    <thetext>Comment on attachment 205602
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904425</commentid>
    <comment_count>5</comment_count>
      <attachid>205602</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-27 19:27:14 -0700</bug_when>
    <thetext>Comment on attachment 205602
Patch

Clearing flags on attachment: 205602

Committed r152149: &lt;http://trac.webkit.org/changeset/152149&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904426</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-27 19:27:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205599</attachid>
            <date>2013-06-27 06:52:52 -0700</date>
            <delta_ts>2013-06-27 07:11:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118130-20130627225100.patch</filename>
            <type>text/plain</type>
            <size>99081</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJjZTE3NTU4NzAxZDg4
ODkyMzIwNDAyNzZmNjdkNWRlNjljM2I0Ny4uMTc2ODcwNzkwYTc1ZDA3MjY3MGRhMjQ4MWQ0ZTU1
ZTUwYjlmMjU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAxMy0wNi0yNyAgS2Fu
Z2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRvcHQgaXMvdG9I
VE1MSW5wdXRFbGVtZW50IGZvciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMgcGF0
Y2ggYWRvcHRzIGlzL3RvSFRNTElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBz
IG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjp2YWx1ZURlc2NyaXB0aW9uKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNOYXRpdmVUZXh0Q29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2YWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjptYXhWYWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjptaW5WYWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY3Rpb25FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZUVsZW1lbnRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjZXNzaWJsZU5hbWVGb3JOb2RlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aXNGaWxlVXBsb2FkQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojph
ZGRUZXh0RmllbGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OmVs
ZW1lbnQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmls
aXR5UGFzc3dvcmRGaWVsZExlbmd0aCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MSW5w
dXRFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVu
dDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50
OjpzZXRTZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1l
bnQ6OnNlbGVjdGlvbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnQ6
OnNlbGVjdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1l
bnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHls
ZSk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6aXNJblBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OnNob3VsZFBlcmZvcm1TbWFydFJlcGxhY2UpOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91
bGRBdXRvZm9jdXMpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6Z2V0VGV4dEZpZWxkVmFsdWVzKToKKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTElu
cHV0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxJbnB1dEVsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFkaW9J
bnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lu
cHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudFR5cGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0
aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpzdGFydFNwZWVjaElucHV0KToKKyAgICAgICAgKiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNyZWF0ZSk6CisgICAgICAg
ICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRUb29sVGlw
KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
c1N1Ym1pdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjbGVhclNlbGVjdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRVUkxGb3JJbWFn
ZU5vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0TW9iaWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lUXRNb2JpbGU6OnBhaW50U2xpZGVyVHJhY2spOgorICAgICAg
ICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQ6OmFsdERpc3BsYXlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdDo6YWJzb2x1dGVJbWFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
Ojppc0NvbnRlbnRFZGl0YWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0eSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OnNpemVzTG9naWNhbFdpZHRoVG9GaXRDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJ1dHRvbjo6dXBkYXRl
RnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpjYW5IYXZlR2Vu
ZXJhdGVkQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRldGFpbHNNYXJrZXI6OmlzT3Blbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6bWF4RmlsZW5hbWVXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1
dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6ZmlsZVRl
eHRWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckltYWdlOjp1cGRhdGVBbHRUZXh0KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNlbGVjdENvbG9y
SW5Db2xvckNob29zZXIpOgorCiAyMDEzLTA2LTI3ICBab2x0YW4gQXJ2YWkgIDx6YXJ2YWlAaW5m
LnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEJ1aWxkZml4IGZvciAhRU5BQkxFKFNWRykgYnVpbGRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggY2QzZDQ1MTM2YjM5OTBhYWFiM2I4
ZDNmNmM3YTRkYjMyYWUzNWIyNC4uNzgyMmI4ZmE1NjEzNWFlZjUyNTNjNWIyMDU2YzVmY2M4NTlh
YTZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTMtMDYtMjcgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFkb3B0IGlzL3RvSFRNTElucHV0RWxlbWVudCBmb3IgY29kZSBjbGVhbnVwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxMzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmls
aXR5LCB0aGlzIHBhdGNoIGFkb3B0cyBpcy90b0hUTUxJbnB1dEVsZW1lbnQuCisgICAgICAgIFRo
aXMgYWxzbyBoZWxwcyBvdXQgdG8gcmVkdWNlIGR1cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0
LgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6d2ViQ29udGV4dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpibG9ja1pvb21SZWN0Rm9yTm9kZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbFRyYW5zZm9ybURhdGE6OmZpbmRQYXNzd29yZEZvcm1GaWVsZHMpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkU3BlbGxDaGVja0Zv
Y3VzZWRGaWVsZCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcDoKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNQYXNzd29yZEVsZW1lbnQp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpET01TdXBwb3J0OjppbnB1dEVsZW1lbnRU
ZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNEYXRlVGlt
ZUlucHV0RmllbGQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpET01TdXBwb3J0Ojpp
c0NvbG9ySW5wdXRGaWVsZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBv
cnQ6OmVsZW1lbnRJZE9yTmFtZUluZGljYXRlc05vQXV0b2NvbXBsZXRlKToKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OklucHV0SGFuZGxlcjo6ZWxlbWVudFR5cGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpJbnB1dEhhbmRsZXI6OnNldElucHV0VmFsdWUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpJbnB1dEhhbmRsZXI6OmV4dHJhY3RlZFRleHRSZXF1ZXN0KToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpzaG93VGV4dElucHV0VHlwZVN1Z2dlc3Rp
b25Cb3gpOgorCiAyMDEzLTA2LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNhcmdhcmNpYUBi
bGFja2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gSGFuZGxlIHRlc3RSdW5uZXIu
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDFjMmUyZWQ5NjYy
MjNlZjJkMWVhZDY1Nzg5MDE5YzAyNWMxMTg2ZWEuLmQ5MzFhOTA5OTkyYmYxZTMyNmEyNTZmYWY3
ZDUxNTRmN2E1MmYzMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0w
Ni0yNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRv
cHQgaXMvdG9IVE1MSW5wdXRFbGVtZW50IGZvciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHks
IHRoaXMgcGF0Y2ggYWRvcHRzIGlzL3RvSFRNTElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBh
bHNvIGhlbHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfaW5wdXRfbWV0
aG9kX3N0YXRlX3NldCk6CisKIDIwMTMtMDYtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1JFR1JFU1NJT05dIENyYXNoIGFmdGVyIHIxNTE1
NDAgd2l0aCBkZWJ1ZyBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDVkNmM5M2M3ZmNhOThiNWEy
YWI3ZjA3MzI1OTQyMGUxOWE2Y2JlOTAuLmU5NGJlNjk3ODY1OWM0Mjc4MjUzYTZiYmYzYmQ2ODEz
ODliNDNjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wNi0yNyAg
S2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRvcHQgaXMv
dG9IVE1MSW5wdXRFbGVtZW50IGZvciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMg
cGF0Y2ggYWRvcHRzIGlzL3RvSFRNTElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhl
bHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAg
ICAgKiBET00vV2ViRE9NT3BlcmF0aW9ucy5tbToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxl
bWVudCBfc2V0QXV0b2ZpbGxlZDpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAo
V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYkVk
aXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KToKKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6dGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZCk6CisgICAgICAgICogV2ViVmll
dy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW06CisgICAgICAgIChpbnB1dEVsZW1lbnRGcm9tRE9N
RWxlbWVudCk6CisKIDIwMTMtMDYtMjYgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEFkb3B0IGlzL3RvSFRNTEF1ZGlvRWxlbWVudCBmb3IgY29kZSBjbGVh
bnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDg5NmU5NTlkMTMzNDk3MTBjMjk4MzY1ZDc3YmJkZGIxY2Q0
ODAyZWQuLjIyMTM4NWUyZDU5ZTdiN2ZkMDVhMDY2MGJiY2M5N2RjNzA1MGMxMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDYtMjcgIEthbmdpbCBIYW4gIDxrYW5naWwu
aGFuQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkb3B0IGlzL3RvSFRNTElucHV0RWxlbWVudCBm
b3IgY29kZSBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTgxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmlsaXR5LCB0aGlzIHBhdGNoIGFkb3B0cyBpcy90b0hU
TUxJbnB1dEVsZW1lbnQuCisgICAgICAgIFRoaXMgYWxzbyBoZWxwcyBvdXQgdG8gcmVkdWNlIGR1
cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnNl
dElucHV0TWV0aG9kU3RhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRh
cHRlci5jcHA6CisgICAgICAgIChRV2ViUGFnZUFkYXB0ZXI6OmlucHV0TWV0aG9kUXVlcnkpOgor
CiAyMDEzLTA2LTI2ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNv
bT4KIAogICAgICAgICBSZW5hbWUgV29ya2VyQ29udGV4dCB0byBXb3JrZXJHbG9iYWxTY29wZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGY3ZGJmOWVlN2ZhODI0MDE1ZmYzZGEzMDQ5YmMyNDA0MTE4ZDFm
MGMuLjI3ZjA1OTU1ZTRjODFlYmE2ZGI1NmFkNzEzMTliZDNhZjgwOWNmNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMy0wNi0yNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5o
YW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRvcHQgaXMvdG9IVE1MSW5wdXRFbGVtZW50IGZv
ciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMgcGF0Y2ggYWRvcHRzIGlzL3RvSFRN
TElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBzIG91dCB0byByZWR1Y2UgZHVw
bGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAgKiBET01Db3JlQ2xhc3Nlcy5j
cHA6CisgICAgICAgIChET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSk6CisgICAgICAgICogRE9N
SFRNTENsYXNzZXMuY3BwOgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6Zm9ybSk6Cisg
ICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50OjpkaXNhYmxlZCk6CisgICAgICAgIChET01IVE1M
SW5wdXRFbGVtZW50OjpyZWFkT25seSk6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50Ojpz
ZXRUeXBlKToKKyAgICAgICAgKERPTUhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlKToKKyAgICAgICAg
KERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAgKERPTUhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFZhbHVlRm9yVXNlcik6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50Ojpz
ZWxlY3QpOgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQp
OgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAg
ICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKToKKyAgICAgICAgKERPTUhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCk6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVt
ZW50Ojppc1RleHRGaWVsZCk6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50OjpyZWN0T25T
Y3JlZW4pOgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6cmVwbGFjZUNoYXJhY3RlcnNJ
blJhbmdlKToKKyAgICAgICAgKERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkUmFuZ2UpOgor
ICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2V0QXV0b2ZpbGxlZCk6CisgICAgICAgIChE
T01IVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9maWxsZWQpOgorICAgICAgICAoRE9NSFRNTElucHV0
RWxlbWVudDo6aXNVc2VyRWRpdGVkKToKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAg
IChpbnB1dEVsZW1lbnRGcm9tRE9NRWxlbWVudCk6CisKIDIwMTMtMDYtMjYgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBEZXByZWNhdGUgU3RyaW5nSW1w
bDo6Y2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkNzc0YTA4ZWJl
OGMxNWRiZjQ5ZWNkN2I4Yjc0Mzk2MWYxYjgxNGU1Li4wNmE5ZDc2YTdhYTdhMjlhMjQyYWEwZDI0
ZDVjNWVkNmM5MGY1ZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTMtMDYtMjcg
IEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkb3B0IGlz
L3RvSFRNTElucHV0RWxlbWVudCBmb3IgY29kZSBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxMzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmlsaXR5LCB0aGlz
IHBhdGNoIGFkb3B0cyBpcy90b0hUTUxJbnB1dEVsZW1lbnQuCisgICAgICAgIFRoaXMgYWxzbyBo
ZWxwcyBvdXQgdG8gcmVkdWNlIGR1cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRI
VE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlOjppc0hUTUxJbnB1dEVsZW1lbnRBdXRvZmlsbGVkKToKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRIVE1MSW5wdXRFbGVtZW50QXV0
b2ZpbGxlZCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aHRt
bElucHV0RWxlbWVudExhc3RDaGFuZ2VXYXNVc2VyRWRpdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktp
dDo6UERGUGx1Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5U
ZXh0RmllbGQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmRvVGV4dEZpZWxk
Q29tbWFuZEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dGV4
dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRhaW5zQW55Rm9y
bUNvbnRyb2xzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVkaXRvclN0YXRlKToKKwogMjAxMy0wNi0yNyAgQWxi
ZXJ0byBHYXJjaWEgIDxhZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gW1dLMl0g
Q2hlY2sgdmFsdWUgb2YgV0VCS0lUX0lOSkVDVEVEX0JVTkRMRV9QQVRICmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuY3BwCmluZGV4IDVhMDlkNWI0NWVhNTdhY2VlMTkzNzA3Mjk5YTU5MTFkZDM1MGE4NjcuLjNh
NDY0YWUwYWQ1OGJhODRhMWYxNWRmNzMwNzBhYTkyZTYwM2QyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuY3BwCkBAIC0yNzcsMTAgKzI3NywxMCBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjpjcmVhdGUoUmVuZGVyT2JqZWN0KgogU3Ry
aW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QK
IHsKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIGZsb2F0IHRpbWUgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSktPnZhbHVlKCkudG9GbG9hdCgpOworICAgIGZsb2F0
IHRpbWUgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSktPnZhbHVlKCkudG9GbG9hdCgpOwogICAg
IHJldHVybiBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAppbmRleCAwZjgyMTI0MDNmMmExMWNhNGM0MDVjNDU3MWJhYjFlNWU5ZWY4ZWQ2Li4x
YzcxMTU2MmY2MGJiMTdlODY0YmRhMTk4NDkzZDNkYzJmNGE3MjMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cApAQCAtMjgyLDggKzI4Miw4IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAgICAgICAgIHJldHVybiBTdGF0
aWNUZXh0Um9sZTsKICAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykpCiAgICAg
ICAgIHJldHVybiBidXR0b25Sb2xlVHlwZSgpOwotICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUo
aW5wdXRUYWcpKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKGlzSFRNTElucHV0RWxlbWVu
dChub2RlKCkpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5w
dXRFbGVtZW50KG5vZGUoKSk7CiAgICAgICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQogICAg
ICAgICAgICAgcmV0dXJuIENoZWNrQm94Um9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1JhZGlv
QnV0dG9uKCkpCkBAIC00NDQsOCArNDQ0LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6aXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0CiAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUo
dGV4dGFyZWFUYWcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChub2RlLT5oYXNU
YWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICBpZiAoaXNIVE1MSW5wdXRF
bGVtZW50KG5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1M
SW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICByZXR1cm4gaW5wdXQtPmlzVGV4dCgpIHx8IGlu
cHV0LT5pc051bWJlckZpZWxkKCk7CiAgICAgfQogCkBAIC00OTQsOCArNDk0LDggQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNOYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKG9iamVjdFRhZykpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOworICAg
IGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgICAgIHJldHVybiBpbnB1
dC0+aXNJbWFnZUJ1dHRvbigpOwogICAgIH0KIApAQCAtNTI5LDggKzUyOSw4IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiAgICAgaWYgKCFub2Rl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgCi0gICAgaWYgKHJvbGVWYWx1ZSgpID09IEJ1dHRv
blJvbGUgJiYgbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7Cisg
ICAgaWYgKHJvbGVWYWx1ZSgpID09IEJ1dHRvblJvbGUgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5v
ZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVt
ZW50KG5vZGUpOwogICAgICAgICByZXR1cm4gaW5wdXQtPmlzSW1hZ2VCdXR0b24oKTsKICAgICB9
CiAKQEAgLTY5Nyw4ICs2OTcsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Jl
YWRPbmx5KCkgY29uc3QKICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykpCiAg
ICAgICAgIHJldHVybiB0b0hUTUxGb3JtQ29udHJvbEVsZW1lbnQobm9kZSktPmlzUmVhZE9ubHko
KTsKIAotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KTsKKyAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICBpZiAo
aW5wdXQtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgICAgICByZXR1cm4gaW5wdXQtPmlzUmVhZE9u
bHkoKTsKICAgICB9CkBAIC03ODYsOCArNzg2LDggQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKIAogZmxvYXQgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OnZhbHVlRm9yUmFuZ2UoKSBjb25zdAogewotICAgIGlmIChub2RlKCkgJiYgbm9k
ZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAgIGlmIChu
b2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSkpIHsKKyAgICAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAgICAgICAgaWYg
KGlucHV0LT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgcmV0dXJuIGlucHV0LT52YWx1
ZUFzTnVtYmVyKCk7CiAgICAgfQpAQCAtODAwLDggKzgwMCw4IEBAIGZsb2F0IEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2YWx1ZUZvclJhbmdlKCkgY29uc3QKIAogZmxvYXQgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6Om1heFZhbHVlRm9yUmFuZ2UoKSBjb25zdAogewotICAgIGlmIChub2RlKCkg
JiYgbm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAg
IGlmIChub2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSkpIHsKKyAgICAgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAgICAg
ICAgaWYgKGlucHV0LT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgcmV0dXJuIGlucHV0
LT5tYXhpbXVtKCk7CiAgICAgfQpAQCAtODE0LDggKzgxNCw4IEBAIGZsb2F0IEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjptYXhWYWx1ZUZvclJhbmdlKCkgY29uc3QKIAogZmxvYXQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6Om1pblZhbHVlRm9yUmFuZ2UoKSBjb25zdAogewotICAgIGlmIChub2Rl
KCkgJiYgbm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwor
ICAgIGlmIChub2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSkpIHsKKyAgICAgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAg
ICAgICAgaWYgKGlucHV0LT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgcmV0dXJuIGlu
cHV0LT5taW5pbXVtKCk7CiAgICAgfQpAQCAtOTMzLDggKzkzMyw4IEBAIEVsZW1lbnQqIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjphY3Rpb25FbGVtZW50KCkgY29uc3QKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
KSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpIHsK
KyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9k
ZSk7CiAgICAgICAgIGlmICghaW5wdXQtPmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpICYmIChpc0No
ZWNrYm94T3JSYWRpbygpIHx8IGlucHV0LT5pc1RleHRCdXR0b24oKSkpCiAgICAgICAgICAgICBy
ZXR1cm4gaW5wdXQ7CiAgICAgfSBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykp
CkBAIC0xMTc3LDcgKzExNzcsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRs
ZUVsZW1lbnRUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcgogICAgIGlmICgh
bm9kZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGJvb2wgaXNJbnB1dFRhZyA9IG5vZGUt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpOworICAgIGJvb2wgaXNJbnB1dFRhZyA9IGlzSFRNTElucHV0
RWxlbWVudChub2RlKTsKICAgICBpZiAoaXNJbnB1dFRhZyB8fCBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc0FSSUFJbnB1dChhcmlhUm9sZUF0dHJpYnV0ZSgpKSB8fCBpc0NvbnRyb2woKSkgewogICAg
ICAgICBIVE1MTGFiZWxFbGVtZW50KiBsYWJlbCA9IGxhYmVsRm9yRWxlbWVudCh0b0VsZW1lbnQo
bm9kZSkpOwogICAgICAgICBpZiAobGFiZWwpIHsKQEAgLTEyMzcsOSArMTIzNyw5IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mIHRleHRPcmRlcikKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBib29sIGlzSW5wdXRUYWcgPSBub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKTsKKyAgICBi
b29sIGlzSW5wdXRUYWcgPSBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgaWYgKGlzSW5w
dXRUYWcpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICBpZiAoaW5wdXQtPmlzVGV4dEJ1
dHRvbigpKSB7CiAgICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0
KGlucHV0LT52YWx1ZVdpdGhEZWZhdWx0KCksIFZpc2libGVUZXh0KSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xNTgwLDkgKzE1ODAsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnRpdGxlKCkgY29uc3QKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIAotICAgIGJvb2wgaXNJbnB1dFRhZyA9IG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpOwor
ICAgIGJvb2wgaXNJbnB1dFRhZyA9IGlzSFRNTElucHV0RWxlbWVudChub2RlKTsKICAgICBpZiAo
aXNJbnB1dFRhZykgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgICAgIGlmIChpbnB1dC0+aXNU
ZXh0QnV0dG9uKCkpCiAgICAgICAgICAgICByZXR1cm4gaW5wdXQtPnZhbHVlV2l0aERlZmF1bHQo
KTsKICAgICB9CkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OnRleHQoKSBjb25zdAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogCi0gICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSAmJiAobm9kZS0+aGFzVGFnTmFt
ZSh0ZXh0YXJlYVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpKQorICAgIGlmIChp
c05hdGl2ZVRleHRDb250cm9sKCkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpIHx8
IGlzSFRNTElucHV0RWxlbWVudChub2RlKSkpCiAgICAgICAgIHJldHVybiB0b0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KG5vZGUpLT52YWx1ZSgpOwogCiAgICAgaWYgKCFub2RlLT5pc0VsZW1l
bnROb2RlKCkpCkBAIC0xNzAxLDEwICsxNzAxLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNvbG9yVmFsdWUoaW50JiByLCBpbnQmIGcsIGludCYgYikgY29uc3QKICAgICBpZiAo
IWlzQ29sb3JXZWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbm9kZSgpIHx8ICFu
b2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghbm9kZSgpIHx8ICFpc0hUTUxJ
bnB1dEVsZW1lbnQobm9kZSgpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTElucHV0RWxl
bWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKKyAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKCkpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSA9IGlucHV0LT5nZXRBdHRyaWJ1dGUodHlwZUF0
dHIpOwogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UodHlwZSwgImNvbG9yIikpCiAgICAgICAg
IHJldHVybjsKQEAgLTE3MjMsOCArMTcyMyw4IEBAIHN0YXRpYyBTdHJpbmcgYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgaWYgKG5vZGUtPmlzVGV4dE5vZGUoKSkKICAgICAg
ICAgcmV0dXJuIHRvVGV4dChub2RlKS0+ZGF0YSgpOwogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUoaW5wdXRUYWcpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KG5vZGUpLT52YWx1ZSgpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCisg
ICAgICAgIHJldHVybiB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSktPnZhbHVlKCk7CiAKICAgICBp
ZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
YWx0ID0gdG9IVE1MRWxlbWVudChub2RlKS0+Z2V0QXR0cmlidXRlKGFsdEF0dHIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKaW5kZXggZmJmM2FiNDY1NmMxYTBiZjdjZDlmNjc2YWQ0NTAzNGNiYTBjOTJm
ZS4uNjk1MzE5M2FkNmUyM2Q5ZjUwNDRhMzQ5Y2YyNTRlNmQ0MDBmYWQ4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCkBAIC01MTcsOCArNTE3LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojppc0F0dGFjaG1lbnQoKSBjb25zdAogCiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmlzRmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcmVuZGVyZXIgJiYg
bV9yZW5kZXJlci0+bm9kZSgpICYmIG1fcmVuZGVyZXItPm5vZGUoKS0+aGFzVGFnTmFtZShpbnB1
dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obV9yZW5kZXJlci0+bm9kZSgpKTsKKyAgICBpZiAobV9yZW5kZXJl
ciAmJiBtX3JlbmRlcmVyLT5ub2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fcmVuZGVyZXIt
Pm5vZGUoKSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1
dEVsZW1lbnQobV9yZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgcmV0dXJuIGlucHV0LT5pc0Zp
bGVVcGxvYWQoKTsKICAgICB9CiAgICAgCkBAIC05MjQsMTAgKzkyNCwxMCBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKEFjY2Vzc2li
aWxpdHlDaGlsZHJlbgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgTm9kZSogbm9kZSA9IG1f
cmVuZGVyZXItPm5vZGUoKTsKLSAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoaW5w
dXRUYWcpKQorICAgIGlmICghbm9kZSB8fCAhaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUpKQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNf
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5w
dXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgLy8gaWYgdGhlcmUncyBhIGZvcm0s
IHRoZW4gdGhpcyBpcyBlYXN5CiAgICAgaWYgKGlucHV0LT5mb3JtKCkpIHsKICAgICAgICAgVmVj
dG9yPFJlZlB0cjxOb2RlPiA+IGZvcm1FbGVtZW50czsKQEAgLTk0Myw4ICs5NDMsOCBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKEFj
Y2Vzc2liaWxpdHlDaGlsZHJlbgogICAgICAgICBSZWZQdHI8Tm9kZUxpc3Q+IGxpc3QgPSBub2Rl
LT5kb2N1bWVudCgpLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTsKICAgICAgICAgdW5z
aWduZWQgbGVuID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW47ICsraSkgewotICAgICAgICAgICAgaWYgKGxpc3QtPml0ZW0oaSktPmhhc1RhZ05h
bWUoaW5wdXRUYWcpKSB7Ci0gICAgICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCogYXNzb2Np
YXRlRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihsaXN0LT5pdGVtKGkp
KTsKKyAgICAgICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobGlzdC0+aXRlbShpKSkpIHsK
KyAgICAgICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBhc3NvY2lhdGVFbGVtZW50ID0gdG9I
VE1MSW5wdXRFbGVtZW50KGxpc3QtPml0ZW0oaSkpOwogICAgICAgICAgICAgICAgIGlmIChhc3Nv
Y2lhdGVFbGVtZW50LT5pc1JhZGlvQnV0dG9uKCkgJiYgYXNzb2NpYXRlRWxlbWVudC0+bmFtZSgp
ID09IGlucHV0LT5uYW1lKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iamVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoYXNzb2NpYXRl
RWxlbWVudCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rZWRVSUVsZW1lbnRzLmFwcGVu
ZChvYmplY3QpOwpAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgS1VSTCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojp1cmwoKSBjb25zdAogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEltYWdl
RWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSktPnNyYygpOwogICAgIAogICAgIGlmIChpc0lu
cHV0SW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihtX3JlbmRlcmVyLT5ub2RlKCkpLT5zcmMoKTsKKyAgICAgICAgcmV0dXJuIHRvSFRNTElucHV0
RWxlbWVudChtX3JlbmRlcmVyLT5ub2RlKCkpLT5zcmMoKTsKICAgICAKICAgICByZXR1cm4gS1VS
TCgpOwogfQpAQCAtMTY0MSw3ICsxNjQxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAvLyBGSVhNRTogRG8gd2Ug
d2FudCB0byBkbyBhbnl0aGluZyBoZXJlIGZvciBBUklBIHRleHRib3hlcz8KICAgICBpZiAocmVu
ZGVyZXItPmlzVGV4dEZpZWxkKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IHNh
ZmUhICBPdGhlciBlbGVtZW50cyBjb3VsZCBoYXZlIGEgVGV4dEZpZWxkIHJlbmRlcmVyLgotICAg
ICAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCktPnNldFZhbHVlKHN0
cmluZyk7CisgICAgICAgIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KS0+c2V0VmFsdWUoc3Ry
aW5nKTsKICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc1RleHRBcmVhKCkpIHsKICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgbm90IHNhZmUhICBPdGhlciBlbGVtZW50cyBjb3VsZCBoYXZlIGEg
VGV4dEFyZWEgcmVuZGVyZXIuCiAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1l
bnQqPihlbGVtZW50KS0+c2V0VmFsdWUoc3RyaW5nKTsKQEAgLTI0NDgsNyArMjQ0OCw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKCkKICAgICBpZiAobV9yZW5kZXJlci0+aXNUZXh0KCkpCiAgICAgICAgIHJl
dHVybiBTdGF0aWNUZXh0Um9sZTsKICAgICBpZiAoY3NzQm94ICYmIGNzc0JveC0+aXNJbWFnZSgp
KSB7Ci0gICAgICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAg
ICAgICBpZiAobm9kZSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCiAgICAgICAgICAgICBy
ZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1dHRvblJvbGUgOiBCdXR0b25Sb2xlOwogICAg
ICAgICBpZiAoaXNTVkdJbWFnZSgpKQogICAgICAgICAgICAgcmV0dXJuIFNWR1Jvb3RSb2xlOwpA
QCAtMjQ3MSw4ICsyNDcxLDggQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgIGlmIChjc3NCb3ggJiYg
Y3NzQm94LT5pc1RleHRBcmVhKCkpCiAgICAgICAgIHJldHVybiBUZXh0QXJlYVJvbGU7CiAKLSAg
ICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KTsKKyAgICBpZiAobm9kZSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpIHsKKyAgICAgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAg
ICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQogICAgICAgICAgICAgcmV0dXJuIENoZWNrQm94
Um9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1JhZGlvQnV0dG9uKCkpCkBAIC0yNzcwLDEwICsy
NzcwLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlQ2hpbGRyZW5J
Zk5lY2Vzc2FyeSgpCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFRleHRGaWVs
ZENoaWxkcmVuKCkKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwotICAgIGlmICgh
bm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFub2RlIHx8ICFp
c0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChub2Rl
KTsKICAgICBIVE1MRWxlbWVudCogc3BpbkJ1dHRvbkVsZW1lbnQgPSBpbnB1dC0+aW5uZXJTcGlu
QnV0dG9uRWxlbWVudCgpOwogICAgIGlmICghc3BpbkJ1dHRvbkVsZW1lbnQgfHwgIXNwaW5CdXR0
b25FbGVtZW50LT5pc1NwaW5CdXR0b25FbGVtZW50KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3Bw
CmluZGV4IDE0MDIwZTAyYjhmZjE0OWViMmI1YWI0ZDI2MGRiMzBkNzhjYjA2MTcuLjUxY2M4OThl
ZmE3NWU1MjA4MmY4OWEyZWNjMDdlNjg4OGRlMGYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcApAQCAtMTQzLDcgKzE0
Myw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNsaWRlcjo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIAogSFRNTElucHV0RWxlbWVudCogQWNjZXNzaWJpbGl0eVNsaWRlcjo6ZWxlbWVudCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX3Jl
bmRlcmVyLT5ub2RlKCkpOworICAgIHJldHVybiB0b0hUTUxJbnB1dEVsZW1lbnQobV9yZW5kZXJl
ci0+bm9kZSgpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQppbmRleCA2NDE0NjA4YTU1MTll
NzE4YmFkYjQ3M2IzMmYxYWIzNGI4OTM2MzYwLi5kY2RlODhhY2U4N2E2YzI0ZmUwMmIzZTJkYjY3
MTQ2YmFjYmIzYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KQEAgLTY3LDcgKzY3LDcgQEAgaW50
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkK
ICAgICBpZiAoIXJlbmRlck9iamVjdCB8fCAhcmVuZGVyT2JqZWN0LT5ub2RlKCkgfHwgIXJlbmRl
ck9iamVjdC0+bm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4ocmVuZGVyT2JqZWN0LT5ub2RlKCkpOworICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChyZW5kZXJPYmplY3QtPm5v
ZGUoKSk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxl
bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwCmluZGV4IDUyMGNlNjUwYjNhMmMyZGNhNDk2OWM1YjdhYWJhNjYyMDAy
MWYzY2MuLjFmM2M1YTYzODA2OWIwNzY5ZTdkZTUwMjE2MjFkZTIyNThiOTRhN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50Q3Vz
dG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEpTVmFsdWUg
SlNIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
CiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4oaW1wbCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElu
cHV0RWxlbWVudChpbXBsKCkpOwogICAgIGlmICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC00NCw3ICs0NCw3IEBA
IEpTVmFsdWUgSlNIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAKIHZvaWQgSlNIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChpbXBsKCkpOwogICAgIGlm
ICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhl
Yyk7CiAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBKU0hUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVj
dGlvblN0YXJ0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0hU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0g
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oaW1wbCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxl
bWVudChpbXBsKCkpOwogICAgIGlmICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02Miw3ICs2Miw3IEBAIEpTVmFs
dWUgSlNIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25FbmQoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogCiB2b2lkIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbXBsKCkpOworICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KGltcGwoKSk7CiAgICAgaWYgKCFpbnB1dC0+
Y2FuSGF2ZVNlbGVjdGlvbigpKQogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAt
NzEsNyArNzEsNyBAQCB2b2lkIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0hUTUxJbnB1dEVsZW1l
bnQ6OnNlbGVjdGlvbkRpcmVjdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1w
bCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChp
bXBsKCkpOwogICAgIGlmICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkKICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC04MCw3ICs4MCw3IEBAIEpTVmFsdWUgSlNI
VE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb24oRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogCiB2b2lkIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRGlyZWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbXBsKCkpOworICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KGltcGwoKSk7CiAgICAgaWYgKCFp
bnB1dC0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMp
OwogICAgICAgICByZXR1cm47CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgSlNIVE1MSW5wdXRFbGVt
ZW50OjpzZXRTZWxlY3Rpb25EaXJlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogCiBKU1ZhbHVlIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KGltcGwoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSB0b0hUTUxJbnB1dEVsZW1lbnQoaW1wbCgpKTsKICAgICBpZiAoIWlucHV0LT5jYW5IYXZlU2Vs
ZWN0aW9uKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDk4M2EwYTY1YWUxZDYyY2JjYTdjNGM4OGMz
ODY4ZWNlMzdkMDI2MGUuLmMwZjdhYTBiM2E1ZWM3MzViYWNmMDZlODRjMjNlMzk4YTEwMzIwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE1MzgsNyArMTUzOCw3IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxl
LCBSZW5kZXJTdHlsZSogcGFyZW50U3R5CiAgICAgaWYgKGUgJiYgZS0+aXNGb3JtQ29udHJvbEVs
ZW1lbnQoKSAmJiBzdHlsZS0+Zm9udFNpemUoKSA+PSAxMSkgewogICAgICAgICAvLyBEb24ndCBh
cHBseSBpbnRyaW5zaWMgbWFyZ2lucyB0byBpbWFnZSBidXR0b25zLiBUaGUgZGVzaWduZXIga25v
d3MgaG93IGJpZyB0aGUgaW1hZ2VzIGFyZSwKICAgICAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmVh
dCBhbGwgaW1hZ2UgYnV0dG9ucyBhcyB0aG91Z2ggdGhleSB3ZXJlIGV4cGxpY2l0bHkgc2l6ZWQu
Ci0gICAgICAgIGlmICghZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgfHwgIXN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlKS0+aXNJbWFnZUJ1dHRvbigpKQorICAgICAgICBpZiAoIWlzSFRN
TElucHV0RWxlbWVudChlKSB8fCAhdG9IVE1MSW5wdXRFbGVtZW50KGUpLT5pc0ltYWdlQnV0dG9u
KCkpCiAgICAgICAgICAgICBhZGRJbnRyaW5zaWNNYXJnaW5zKHN0eWxlKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWM2YzY3MThmMTcy
NjMxMmNkYjdkYmY0ODlhM2Q2ZjU4YTRjZTM4Ni4uMWI4Y2NkMGE3NmUxY2Q4NTc5OWUxZTE0OTk4
NmVmZTAyZTc1NzMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTE2OTcsNyArMTY5Nyw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVk
UmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvCiBib29sIEZy
YW1lU2VsZWN0aW9uOjppc0luUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiB7CiAgICAgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gZW5jbG9zaW5nVGV4dEZvcm1Db250cm9s
KHN0YXJ0KCkpOwotICAgIHJldHVybiB0ZXh0Q29udHJvbCAmJiB0ZXh0Q29udHJvbC0+aGFzVGFn
TmFtZShpbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHRleHRDb250
cm9sKS0+aXNQYXNzd29yZEZpZWxkKCk7CisgICAgcmV0dXJuIHRleHRDb250cm9sICYmIGlzSFRN
TElucHV0RWxlbWVudCh0ZXh0Q29udHJvbCkgJiYgdG9IVE1MSW5wdXRFbGVtZW50KHRleHRDb250
cm9sKS0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OmZvY3Vz
ZWRPckFjdGl2ZVN0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGNhYzRmMGRmMmY1YmYyYTMyNzVhZjE0
MTI4ZDRkNzkwZTU1ZmIwNTcuLjVmNmU0MmRlYjY2OWFmNjVkZGMyYzg1MTE2OWJiMjFhMjBmODUx
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCkBAIC0xMjQ5LDcgKzEyNDksNyBAQCBib29sIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpzaG91bGRQZXJmb3JtU21hcnRSZXBsYWNlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgRWxlbWVudCogdGV4dENvbnRyb2wgPSBlbmNsb3NpbmdUZXh0Rm9ybUNvbnRy
b2wocG9zaXRpb25BdFN0YXJ0T2ZJbnNlcnRlZENvbnRlbnQoKS5kZWVwRXF1aXZhbGVudCgpKTsK
LSAgICBpZiAodGV4dENvbnRyb2wgJiYgdGV4dENvbnRyb2wtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
ICYmIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPih0ZXh0Q29udHJvbCktPmlzUGFzc3dv
cmRGaWVsZCgpKQorICAgIGlmICh0ZXh0Q29udHJvbCAmJiBpc0hUTUxJbnB1dEVsZW1lbnQodGV4
dENvbnRyb2wpICYmIHRvSFRNTElucHV0RWxlbWVudCh0ZXh0Q29udHJvbCktPmlzUGFzc3dvcmRG
aWVsZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7IC8vIERpc2FibGUgc21hcnQgcmVwbGFjZSBm
b3IgcGFzc3dvcmQgZmllbGRzLgogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA5ZmFjNTNlZWQwODU0NmQ5
YmU5MmM2NjNiYWRiNmNjMjhhZThkN2QzLi5lMTcyYjUxYWQ5NmQ1ZTRjNmQ4ZmY2ZTlhZWUxMjc2
YWU1OGQzNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTE4OCw4ICsxODgsOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRBdXRvZm9jdXMo
SFRNTEZvcm1Db250cm9sRWxlbWVudCogZWxlbWVudCkKIAogICAgIC8vIEZJWE1FOiBTaG91bGQg
dGhpcyBzZXQgb2YgaGFzVGFnTmFtZSBjaGVja3MgYmUgcmVwbGFjZWQgYnkgYQogICAgIC8vIHZp
cnR1YWwgbWVtYmVyIGZ1bmN0aW9uPwotICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0
VGFnKSkKLSAgICAgICAgcmV0dXJuICFzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxl
bWVudCktPmlzSW5wdXRUeXBlSGlkZGVuKCk7CisgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChl
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuICF0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCktPmlz
SW5wdXRUeXBlSGlkZGVuKCk7CiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoc2VsZWN0VGFn
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoa2V5
Z2VuVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCBhMTZk
ZTlkNzNlYmJiZDBlM2YxMWNjNjg2NWQ5YjU5NzcxZWI2MjU5Li4xZjJmN2MyNGEyMzYzYWJkNGE2
NThiOTdmMzZkYmQxOTQ5NGI1NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwCkBAIC0zMDAsMTAgKzMwMCwxMCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6Z2V0VGV4
dEZpZWxkVmFsdWVzKFN0cmluZ1BhaXJWZWN0b3ImIGZpZWxkTmFtZXNBbmRWYWx1ZXMpCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXNzb2NpYXRlZEVsZW1lbnRzLnNpemUoKTsgKytp
KSB7CiAgICAgICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogY29udHJvbCA9IG1fYXNzb2NpYXRl
ZEVsZW1lbnRzW2ldOwogICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1l
bnQoY29udHJvbCk7Ci0gICAgICAgIGlmICghZWxlbWVudC0+aGFzTG9jYWxOYW1lKGlucHV0VGFn
KSkKKyAgICAgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihjb250cm9sKTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7CiAgICAgICAgIGlmICghaW5w
dXQtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA0ODc3YmMyOWI1MmYzOThhNmQ0MjU1ZWQ1NmYy
ZTZiZjIyYzI5YWFlLi41NjcyODQ2NmZkNjdiMWJlMWVmOTQxN2RiNjQzNDAzN2FjODBhZDE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtNDM5LDUgKzQzOSwxNiBA
QCBwcml2YXRlOgogI2VuZGlmCiB9OwogCitpbmxpbmUgYm9vbCBpc0hUTUxJbnB1dEVsZW1lbnQo
Tm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Omlu
cHV0VGFnKTsKK30KKworaW5saW5lIEhUTUxJbnB1dEVsZW1lbnQqIHRvSFRNTElucHV0RWxlbWVu
dChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFu
b2RlIHx8IGlzSFRNTElucHV0RWxlbWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKK30KKwogfSAvL25hbWVzcGFjZQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCmluZGV4IDBlNzVkNzUxNTQyYzJlNTNl
MzU3MTM1ZDY1OTRiZTYwZWNjMmVkOGUuLjZlZjJlMTllNDcxNWNhNGMxZjEwZTFlNjcwMTRlZThk
NmUzMWNmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCkBAIC05MSw5
ICs5MSw5IEBAIHZvaWQgUmFkaW9JbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKICAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KG5vZGUpKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8vIExvb2sgZm9yIG1vcmUgcmFkaW8gYnV0dG9ucy4K
LSAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICAgICAgaWYgKCFp
c0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
UmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKTsKICAgICAgICAgaWYgKGlucHV0
RWxlbWVudC0+Zm9ybSgpICE9IGVsZW1lbnQoKS0+Zm9ybSgpKQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUmFkaW9CdXR0b24oKSAmJiBpbnB1dEVsZW1l
bnQtPm5hbWUoKSA9PSBlbGVtZW50KCktPm5hbWUoKSAmJiBpbnB1dEVsZW1lbnQtPmlzRm9jdXNh
YmxlKCkpIHsKQEAgLTEyOSw4ICsxMjksOCBAQCBib29sIFJhZGlvSW5wdXRUeXBlOjppc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAogICAgIC8vIE5ldmVyIGFs
bG93IGtleWJvYXJkIHRhYmJpbmcgdG8gbGVhdmUgeW91IGluIHRoZSBzYW1lIHJhZGlvIGdyb3Vw
LiAgQWx3YXlzCiAgICAgLy8gc2tpcCBhbnkgb3RoZXIgZWxlbWVudHMgaW4gdGhlIGdyb3VwLgog
ICAgIEVsZW1lbnQqIGN1cnJlbnRGb2N1c2VkTm9kZSA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+
Zm9jdXNlZEVsZW1lbnQoKTsKLSAgICBpZiAoY3VycmVudEZvY3VzZWROb2RlICYmIGN1cnJlbnRG
b2N1c2VkTm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0RWxl
bWVudCogZm9jdXNlZElucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGN1cnJl
bnRGb2N1c2VkTm9kZSk7CisgICAgaWYgKGN1cnJlbnRGb2N1c2VkTm9kZSAmJiBpc0hUTUxJbnB1
dEVsZW1lbnQoY3VycmVudEZvY3VzZWROb2RlKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50
KiBmb2N1c2VkSW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoY3VycmVudEZvY3VzZWROb2RlKTsK
ICAgICAgICAgaWYgKGZvY3VzZWRJbnB1dC0+aXNSYWRpb0J1dHRvbigpICYmIGZvY3VzZWRJbnB1
dC0+Zm9ybSgpID09IGVsZW1lbnQoKS0+Zm9ybSgpICYmIGZvY3VzZWRJbnB1dC0+bmFtZSgpID09
IGVsZW1lbnQoKS0+bmFtZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRU
eXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
VHlwZXMuY3BwCmluZGV4IGI1ZDQ2ODI4NjlhMjk3YmFjMTA5MGQ0Mjc0OWE0NTBlODY4MTUyNzku
LmQxMTRiMjU3YmZhMWI2YWU3ZjU2NzczNGFjYzEzNWFkNWI5MDUwOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNw
cApAQCAtNjksNyArNjksNyBAQCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBtZWRpYUNvbnRyb2xF
bGVtZW50VHlwZShOb2RlKiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKG5vZGUtPmlzTWVkaWFDb250cm9sRWxlbWVudCgpKTsKICAgICBIVE1MRWxlbWVudCog
ZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQobm9kZSk7Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05h
bWUoaW5wdXRUYWcpKQorICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpCiAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQqPihlbGVtZW50
KS0+ZGlzcGxheVR5cGUoKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWVkaWFDb250cm9sRGl2
RWxlbWVudCo+KGVsZW1lbnQpLT5kaXNwbGF5VHlwZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXgg
YzJkZDNiNzU0ZTc3NWYwMDU0YzdjN2Q4NmNlMDA4ZmE2YzIzMjdiMy4uNmNlM2YwOWE5M2EzNDQ5
NTY5MmQzYzg3NGUwZmRkNDgxOWE3YzA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xNTUsNyArMTU1
LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB2b2lkIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIE9uIG1v
dXNlZG93biwgYnJpbmcgdXAgYSBtZW51LCBpZiBuZWVkZWQKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KHNoYWRvd0hv
c3QoKSk7CiAgICAgaWYgKGlucHV0ICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlucHV0
LT5mb2N1cygpOwogICAgICAgICBpbnB1dC0+c2VsZWN0KCk7CkBAIC0yMDgsNyArMjA4LDcgQEAg
dm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRldGFjaChjb25zdCBBdHRhY2hD
b250ZXh0JiBjb250ZXh0KQogdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBlbGVtZW50
IGlzIHZpc2libGUsIG9uIG1vdXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rp
b24KLSAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSkpOworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50
PiBpbnB1dCh0b0hUTUxJbnB1dEVsZW1lbnQoc2hhZG93SG9zdCgpKSk7CiAgICAgaWYgKCFpbnB1
dCB8fCBpbnB1dC0+aXNEaXNhYmxlZE9yUmVhZE9ubHkoKSkgewogICAgICAgICBpZiAoIWV2ZW50
LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAog
Ym9vbCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkKIHsKLSAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOworICAgIGNvbnN0IEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KHNoYWRvd0hvc3QoKSk7CiAg
ICAgaWYgKGlucHV0ICYmICFpbnB1dC0+aXNEaXNhYmxlZE9yUmVhZE9ubHkoKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAvLyBU
aGUgY2FsbCB0byBmb2N1cygpIGJlbG93IGRpc3BhdGNoZXMgYSBmb2N1cyBldmVudCwgYW5kIGFu
IGV2ZW50IGhhbmRsZXIgaW4gdGhlIHBhZ2UgbWlnaHQKICAgICAvLyByZW1vdmUgdGhlIGlucHV0
IGVsZW1lbnQgZnJvbSBET00uIFRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIHZhbGlkIHVudGlsIHdl
IGZpbmlzaCBvdXIgd29yawogICAgIC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3JhcnkgcmVmZXJl
bmNlLgotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1l
bnQ+IGlucHV0KHRvSFRNTElucHV0RWxlbWVudChzaGFkb3dIb3N0KCkpKTsKIAogICAgIGlmICgh
aW5wdXQgfHwgaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpIHsKICAgICAgICAgaWYgKCFl
dmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
IAogYm9vbCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKQogewotICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSk7CisgICAgY29uc3QgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoc2hhZG93SG9zdCgpKTsK
ICAgICBpZiAoaW5wdXQgJiYgIWlucHV0LT5pc0Rpc2FibGVkT3JSZWFkT25seSgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIApAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVj
aEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0aW9uUmVzdWx0KGludCwgY29uc3QgU3BlZWNoSW5w
dXRSCiAgICAgLy8gVGhlIGNhbGwgdG8gc2V0VmFsdWUoKSBiZWxvdyBkaXNwYXRjaGVzIGFuIGV2
ZW50LCBhbmQgYW4gZXZlbnQgaGFuZGxlciBpbiB0aGUgcGFnZSBtaWdodAogICAgIC8vIHJlbW92
ZSB0aGUgaW5wdXQgZWxlbWVudCBmcm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFs
aWQgdW50aWwgd2UgZmluaXNoIG91ciB3b3JrCiAgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBv
cmFyeSByZWZlcmVuY2UuCi0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpKTsKKyAgICBSZWZQdHI8SFRN
TElucHV0RWxlbWVudD4gaW5wdXQodG9IVE1MSW5wdXRFbGVtZW50KHNoYWRvd0hvc3QoKSkpOwog
ICAgIGlmICghaW5wdXQgfHwgaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bkVsZW1lbnQ6OnN0YXJ0U3BlZWNoSW5wdXQoKQogICAgIGlmIChtX3N0YXRlICE9IElkbGUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOworICAgIFJlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChzaGFkb3dIb3N0KCkp
OwogICAgIEF0b21pY1N0cmluZyBsYW5ndWFnZSA9IGlucHV0LT5jb21wdXRlSW5oZXJpdGVkTGFu
Z3VhZ2UoKTsKICAgICBTdHJpbmcgZ3JhbW1hciA9IGlucHV0LT5nZXRBdHRyaWJ1dGUod2Via2l0
Z3JhbW1hckF0dHIpOwogICAgIEludFJlY3QgcmVjdCA9IGRvY3VtZW50KCktPnZpZXcoKS0+Y29u
dGVudHNUb1Jvb3RWaWV3KHBpeGVsU25hcHBlZEJvdW5kaW5nQm94KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNzk3MjFiYWMwODc5NmM0MWYzODM3Nzc1
OTEwNWI0ZDkyZTkxY2JiZC4uOWQ1NTI0N2I1NzMxYTViODg3ZGJjMjE2YmUzZjIzNTdmNTBlNjI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0xODksOCAr
MTg5LDggQEAgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1Ym1pc3Npb246OmNyZWF0
ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEEKICAgICAgICAgSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSB0b0hUTUxFbGVtZW50KGNvbnRyb2wpOwogICAgICAgICBpZiAoIWVsZW1lbnQtPmlz
RGlzYWJsZWRGb3JtQ29udHJvbCgpKQogICAgICAgICAgICAgY29udHJvbC0+YXBwZW5kRm9ybURh
dGEoKmRvbUZvcm1EYXRhLCBpc011bHRpUGFydEZvcm0pOwotICAgICAgICBpZiAoZWxlbWVudC0+
aGFzTG9jYWxOYW1lKGlucHV0VGFnKSkgewotICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oY29udHJvbCk7CisgICAgICAg
IGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOwogICAgICAgICAg
ICAgaWYgKGlucHV0LT5pc1RleHRGaWVsZCgpKSB7CiAgICAgICAgICAgICAgICAgZm9ybVZhbHVl
cy5hcHBlbmQocGFpcjxTdHJpbmcsIFN0cmluZz4oaW5wdXQtPm5hbWUoKS5zdHJpbmcoKSwgaW5w
dXQtPnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICBpbnB1dC0+YWRkU2VhcmNoUmVzdWx0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggZTVjODMzZWVlZDQxYjZhYjk5YzI3ZGY3NmRmMGVk
NDI4ZjQyZTJkZi4uMGRlYWVmZDQ5MzhiNDliY2M1YzI0N2EyNDNjMjhhYzRjYmViMWE1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDA3LDggKzQwNyw4IEBAIHZvaWQgQ2hyb21lOjpzZXRU
b29sVGlwKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodG9vbFRpcC5pc0Vt
cHR5KCkgJiYgbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93c1VSTHNJblRvb2xUaXBzKCkpIHsKICAg
ICAgICAgaWYgKE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpIHsKICAg
ICAgICAgICAgIC8vIEdldCB0b29sdGlwIHJlcHJlc2VudGluZyBmb3JtIGFjdGlvbiwgaWYgcmVs
ZXZhbnQKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChu
b2RlKSkgeworICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1M
SW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgICAgIGlmIChpbnB1dC0+aXNTdWJtaXRC
dXR0b24oKSkKICAgICAgICAgICAgICAgICAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9
IGlucHV0LT5mb3JtKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xUaXAgPSBmb3Jt
LT5hY3Rpb24oKTsKQEAgLTQzOSw4ICs0MzksOCBAQCB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChj
b25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgLy8gTGFzdGx5LCBmb3IgPGlucHV0IHR5
cGU9ImZpbGUiPiB0aGF0IGFsbG93IG11bHRpcGxlIGZpbGVzLCB3ZSdsbCBjb25zaWRlciBhIHRv
b2x0aXAgZm9yIHRoZSBzZWxlY3RlZCBmaWxlbmFtZXMKICAgICBpZiAodG9vbFRpcC5pc0VtcHR5
KCkpIHsKICAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb25TaGFyZWROb2Rl
KCkpIHsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChu
b2RlKSkgeworICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1M
SW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgICAgIHRvb2xUaXAgPSBpbnB1dC0+ZGVm
YXVsdFRvb2xUaXAoKTsKIAogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgb2J0
YWluIHRleHQgZGlyZWN0aW9uIG9mIHRvb2x0aXAgZnJvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDlhNzk3MmVjY2U5OWI3NzhhODA1MGQ2Y2UyNjVmNGM2ODg0MTM2M2Yu
LjljNjA2N2FhNGUxNzU4MGY0MzQxYjFiZjdiMWY1ZTkyYTRiMGZjOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTExOTcsNyArMTE5Nyw3IEBAIEZyYW1lKiBFdmVudEhh
bmRsZXI6OnN1YmZyYW1lRm9yVGFyZ2V0Tm9kZShOb2RlKiBub2RlKQogCiBzdGF0aWMgYm9vbCBp
c1N1Ym1pdEltYWdlKE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aGFz
VGFnTmFtZShpbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUp
LT5pc0ltYWdlQnV0dG9uKCk7CisgICAgcmV0dXJuIG5vZGUgJiYgaXNIVE1MSW5wdXRFbGVtZW50
KG5vZGUpICYmIHRvSFRNTElucHV0RWxlbWVudChub2RlKS0+aXNJbWFnZUJ1dHRvbigpOwogfQog
CiAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUncyBlZGl0YWJsZSBibG9jayBpcyBub3QgY3Vy
cmVudCBmb2N1c2VkIGZvciBlZGl0aW5nCkBAIC0xNjIyLDcgKzE2MjIsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
bW91c2VFdmVudCkKICAgICAgICAgLy8gSWYgYSBtb3VzZSBldmVudCBoYW5kbGVyIGNoYW5nZXMg
dGhlIGlucHV0IGVsZW1lbnQgdHlwZSB0byBvbmUgdGhhdCBoYXMgYSB3aWRnZXQgYXNzb2NpYXRl
ZCwKICAgICAgICAgLy8gd2UnZCBsaWtlIHRvIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVz
c0V2ZW50IHRvIHBhc3MgdGhlIGV2ZW50IHRvIHRoZSB3aWRnZXQgYW5kIHRodXMgdGhlCiAgICAg
ICAgIC8vIGV2ZW50IHRhcmdldCBub2RlIGNhbid0IHN0aWxsIGJlIHRoZSBzaGFkb3cgbm9kZS4K
LSAgICAgICAgaWYgKG1ldi50YXJnZXROb2RlKCktPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93
Um9vdChtZXYudGFyZ2V0Tm9kZSgpKS0+aG9zdCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewor
ICAgICAgICBpZiAobWV2LnRhcmdldE5vZGUoKS0+aXNTaGFkb3dSb290KCkgJiYgaXNIVE1MSW5w
dXRFbGVtZW50KHRvU2hhZG93Um9vdChtZXYudGFyZ2V0Tm9kZSgpKS0+aG9zdCgpKSkgewogICAg
ICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkg
fCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93
Q29udGVudCk7CiAgICAgICAgICAgICBtZXYgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wcmVwYXJl
TW91c2VFdmVudChyZXF1ZXN0LCBkb2N1bWVudFBvaW50LCBtb3VzZUV2ZW50KTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDEwMjNjZmM1YmYw
YzBiZDVlOGI1NDJlNzE0YWI5M2JlMDkyZDY0YmEuLjNhYTljOWI3ZjZjYTkxOTAzYTI4NjlmZjMx
YzBjMWM0ZjNjOWQ2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1M
QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhp
dFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCkBAIC01ODMsNyArNTg0
LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSogb2xkRm9jdXNl
ZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgICAgIGlmIChOb2RlKiBzaGFkb3dBbmNlc3Rvck5vZGUgPSByb290LT5kZXByZWNh
dGVkU2hhZG93QW5jZXN0b3JOb2RlKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXNoYWRvd0Fu
Y2VzdG9yTm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgJiYgIXNoYWRvd0FuY2VzdG9yTm9kZS0+
aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykpCisgICAgICAgICAgICAgICAgaWYgKCFpc0hUTUxJbnB1
dEVsZW1lbnQoc2hhZG93QW5jZXN0b3JOb2RlKSAmJiAhc2hhZG93QW5jZXN0b3JOb2RlLT5oYXNU
YWdOYW1lKHRleHRhcmVhVGFnKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKaW5kZXggZTNhMWZlNTY2NzgwNzE5YmU4Y2E2YWJkYzk0ODhlMjhkMGE2ZTFm
Ny4uYzJlNzk5NGYwMzViODk2ZDBmOTQzOTEwMDI0NWFlOTRmOTUxYWExYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMTk4LDcgKzE5OCw3
IEBAIHN0YXRpYyBLVVJMIGdldFVSTEZvckltYWdlTm9kZShOb2RlKiBub2RlKQogewogICAgIC8v
IEZJWE1FOiBMYXRlciB0aGlzIGNvZGUgc2hvdWxkIGJlIHNoYXJlZCB3aXRoIENocm9taXVtIHNv
bWVob3cuIENoYW5jZXMgYXJlIGFsbCBwbGF0Zm9ybXMgd2FudCBpdC4KICAgICBBdG9taWNTdHJp
bmcgdXJsU3RyaW5nOwotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFn
KSB8fCBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKQorICAgIGlmIChub2Rl
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSB8fCBpc0hUTUxJbnB1dEVsZW1lbnQobm9k
ZSkpCiAgICAgICAgIHVybFN0cmluZyA9IHRvRWxlbWVudChub2RlKS0+Z2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6c3JjQXR0cik7CiAjaWYgRU5BQkxFKFNWRykKICAgICBlbHNlIGlmIChub2RlLT5o
YXNUYWdOYW1lKFNWR05hbWVzOjppbWFnZVRhZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1JlbmRlclRoZW1lUXQuY3BwCmluZGV4IDliMGUzNDM3NGJlYTNiNzE2N2E2YmUyN2VkODgy
ZjljZTdhY2RjYTAuLmQxZmU5ZGI4MjQ0ZTZhZDJkNjQyYWMwNWZlZTUxNDBhOTU3MTc3OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCkBAIC03NDEs
MTAgKzc0MSwxMCBAQCBib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJU
cmFjayhSZW5kZXJPYmplY3QgKm8sIGNvbnN0IFBhaW50SW5mbwogICAgIHAtPnBhaW50ZXItPnNl
dEJydXNoKHNjYWxlQ29sb3IpOwogICAgIHAtPnBhaW50ZXItPmRyYXdSZWN0KGxlZnQsIHRvcCwg
d2lkdGgsIGhlaWdodCk7CiAKLSAgICBpZiAoIW8tPm5vZGUoKSB8fCAhby0+bm9kZSgpLT5oYXNU
YWdOYW1lKGlucHV0VGFnKSkKKyAgICBpZiAoIW8tPm5vZGUoKSB8fCAhaXNIVE1MSW5wdXRFbGVt
ZW50KG8tPm5vZGUoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIHNsaWRlciA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihvLT5ub2RlKCkp
OworICAgIEhUTUxJbnB1dEVsZW1lbnQqIHNsaWRlciA9IHRvSFRNTElucHV0RWxlbWVudChvLT5u
b2RlKCkpOwogCiAgICAgLy8gUG9zaXRpb24gdGhlIGlubmVyIHJlY3RhbmdsZQogICAgIGhlaWdo
dCA9IGhlaWdodCAqIHNsaWRlci0+dmFsdWVBc051bWJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdE1vYmlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0TW9iaWxlLmNwcAppbmRleCA5NjY3YmMzMjZi
YzJlZDEyYjU1YWY4ZDI0ZGU0OTk4M2FlYzE3OTI4Li5jMmRhNTcyMmY4NjNiOGQ1MDk1NDA1NDM4
ZmNmYWIxOWZkNzk5YzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0TW9iaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0TW9iaWxlLmNwcApAQCAtODY2LDcgKzg2Niw3IEBAIGJvb2wgUmVuZGVyVGhl
bWVRdE1vYmlsZTo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50
SW5mbyYgcGksCiAgICAgaWYgKCFwLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBIVE1MSW5wdXRFbGVtZW50KiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oby0+bm9kZSgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBzbGlkZXIgPSB0b0hUTUxJ
bnB1dEVsZW1lbnQoby0+bm9kZSgpKTsKIAogICAgIGNvbnN0IGRvdWJsZSBtaW4gPSBzbGlkZXIt
Pm1pbmltdW0oKTsKICAgICBjb25zdCBkb3VibGUgbWF4ID0gc2xpZGVyLT5tYXhpbXVtKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggM2U0OTI2ZWY3
YmVkNWZmZmE3OTJhMmIyMTkxOTY3Y2Q1Mzc5MzU0ZS4uMjQxODExOTY1Mjk3ZjdlYTE5ZDI1NTg3
MWVkODg3ZWI4YmI1NDZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVz
dWx0LmNwcApAQCAtMjc2LDggKzI3Niw4IEBAIFN0cmluZyBIaXRUZXN0UmVzdWx0OjphbHREaXNw
bGF5U3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRpc3BsYXlTdHJpbmcoaW1hZ2UtPmdl
dEF0dHJpYnV0ZShhbHRBdHRyKSwgbV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgIH0K
ICAgICAKLSAgICBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
KSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKKyAgICBpZiAoaXNIVE1M
SW5wdXRFbGVtZW50KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKSkgeworICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChtX2lubmVyTm9uU2hhcmVk
Tm9kZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiBkaXNwbGF5U3RyaW5nKGlucHV0LT5hbHQoKSwg
bV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgIH0KIApAQCAtMzE3LDggKzMxNyw4IEBA
IEtVUkwgSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVJbWFnZVVSTCgpIGNvbnN0CiAgICAgQXRvbWlj
U3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05h
bWUoZW1iZWRUYWcpCiAgICAgICAgIHx8IG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KGltZ1RhZykKLSAgICAgICAgfHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoaW5w
dXRUYWcpCi0gICAgICAgIHx8IG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKG9iamVj
dFRhZykgICAgCisgICAgICAgIHx8IGlzSFRNTElucHV0RWxlbWVudChtX2lubmVyTm9uU2hhcmVk
Tm9kZS5nZXQoKSkKKyAgICAgICAgfHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUo
b2JqZWN0VGFnKQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgIHx8IG1faW5uZXJOb25TaGFyZWRO
b2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjppbWFnZVRhZykKICNlbmRpZgpAQCAtNTcxLDggKzU3
MSw4IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6aXNDb250ZW50RWRpdGFibGUoKSBjb25zdAogICAg
IGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdO
YW1lKGlucHV0VGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSktPmlzVGV4dEZpZWxkKCk7CisgICAgaWYg
KGlzSFRNTElucHV0RWxlbWVudChtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSkpCisgICAgICAg
IHJldHVybiB0b0hUTUxJbnB1dEVsZW1lbnQobV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpLT5p
c1RleHRGaWVsZCgpOwogCiAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5yZW5kZXJl
cklzRWRpdGFibGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IGY3NDQ4MGNiYmFjMjFhZGExMDgxMGNkNWVhYTAwMWNiY2E4ZmEwMGIuLmQxZTg5ZWQ0
ZjZlZmE3ZTFkNWI5ZWE3OTFkM2UzMjg1MDI5ODMxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhpdFRlc3RMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1
bHQuaCIKQEAgLTY0OTAsNyArNjQ5MSw3IEBAIGJvb2wgUmVuZGVyQmxvY2s6Omhhc0xpbmVJZkVt
cHR5KCkgY29uc3QKICAgICBpZiAobm9kZSgpLT5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAgaWYgKG5vZGUoKS0+aXNTaGFkb3dSb290KCkg
JiYgdG9TaGFkb3dSb290KG5vZGUoKSktPmhvc3QoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisg
ICAgaWYgKG5vZGUoKS0+aXNTaGFkb3dSb290KCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KHRvU2hh
ZG93Um9vdChub2RlKCkpLT5ob3N0KCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4
IDg1ODg3OTI0ODQ2N2YzNGQyNGU2YjkxMjZlNzczZGIzZjNiZThmNmQuLjU3Y2UyNGY3YWM1MGQx
ODA3ZjZhODY2MTYxNzI3YzMzNDYwYTAzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMjMwMiw3ICsy
MzAzLDcgQEAgYm9vbCBSZW5kZXJCb3g6OnNpemVzTG9naWNhbFdpZHRoVG9GaXRDb250ZW50KFNp
emVUeXBlIHdpZHRoVHlwZSkgY29uc3QKICAgICAvLyBzdHJldGNoaW5nIGNvbHVtbiBmbGV4Ym94
LgogICAgIC8vIEZJWE1FOiBUaGluayBhYm91dCBibG9jay1mbG93IGhlcmUuCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NDczCi0gICAgaWYgKGxvZ2lj
YWxXaWR0aC50eXBlKCkgPT0gQXV0byAmJiAhaXNTdHJldGNoaW5nQ29sdW1uRmxleEl0ZW0odGhp
cykgJiYgbm9kZSgpICYmIChub2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpIHx8IG5vZGUoKS0+
aGFzVGFnTmFtZShzZWxlY3RUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZShidXR0b25UYWcpIHx8
IG5vZGUoKS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKGxl
Z2VuZFRhZykpKQorICAgIGlmIChsb2dpY2FsV2lkdGgudHlwZSgpID09IEF1dG8gJiYgIWlzU3Ry
ZXRjaGluZ0NvbHVtbkZsZXhJdGVtKHRoaXMpICYmIG5vZGUoKSAmJiAoaXNIVE1MSW5wdXRFbGVt
ZW50KG5vZGUoKSkgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykgfHwgbm9kZSgpLT5o
YXNUYWdOYW1lKGJ1dHRvblRhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKSB8
fCBub2RlKCktPmhhc1RhZ05hbWUobGVnZW5kVGFnKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gY29udGFpbmluZ0Jsb2NrKCkt
PmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCdXR0b24uY3BwCmluZGV4IGZkNjkxMWY0OTcyM2QxY2IxYjBjZjU3MGNkOTZiMDdkY2Y5NzE2
ZGQuLjRmNjU1ZmI0M2Q0MjUwNDA0ZDQ2MTM1NzU3OGU5MWZkM2ZkNjk3MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC0xMjIsOCArMTIyLDggQEAgdm9p
ZCBSZW5kZXJCdXR0b246OnNldHVwSW5uZXJTdHlsZShSZW5kZXJTdHlsZSogaW5uZXJTdHlsZSkK
IHZvaWQgUmVuZGVyQnV0dG9uOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgLy8gSWYgd2Un
cmUgYW4gaW5wdXQgZWxlbWVudCwgd2UgbWF5IG5lZWQgdG8gY2hhbmdlIG91ciBidXR0b24gdGV4
dC4KLSAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KCkpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKSkgeworICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKCkpOwogICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBpbnB1dC0+dmFsdWVXaXRoRGVmYXVsdCgpOwogICAgICAgICBzZXRU
ZXh0KHZhbHVlKTsKICAgICB9CkBAIC0xNTcsNyArMTU3LDcgQEAgYm9vbCBSZW5kZXJCdXR0b246
OmNhbkhhdmVHZW5lcmF0ZWRDaGlsZHJlbigpIGNvbnN0CiAgICAgLy8gSW5wdXQgZWxlbWVudHMg
Y2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY2hpbGRyZW4sIGJ1dCBidXR0b24gZWxlbWVudHMgY2FuLiBX
ZSdsbAogICAgIC8vIHdyaXRlIHRoZSBjb2RlIGFzc3VtaW5nIGFueSBvdGhlciBidXR0b24gdHlw
ZXMgdGhhdCBtaWdodCBlbWVyZ2UgaW4gdGhlIGZ1dHVyZQogICAgIC8vIGNhbiBhbHNvIGhhdmUg
Y2hpbGRyZW4uCi0gICAgcmV0dXJuICFub2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpOworICAg
IHJldHVybiAhaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSk7CiB9CiAKIExheW91dFJlY3QgUmVu
ZGVyQnV0dG9uOjpjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxP
ZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGV0YWlsc01hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWls
c01hcmtlci5jcHAKaW5kZXggMGQxNzY2YTRlY2RlMzE2NjhiZjRiYmVlYTFmZTI0NGQ5NTQyNmRl
MC4uMmFlMzMyZjNjNmUyM2I0YjhmM2NlMjUxYjAwOWMwYWI2N2E3NWFlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcApAQCAtMjQsNiAr
MjQsNyBAQAogCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKIApAQCAtMTQ0LDcgKzE0NSw3IEBAIGJvb2wgUmVu
ZGVyRGV0YWlsc01hcmtlcjo6aXNPcGVuKCkgY29uc3QKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBpZiAocmVuZGVyZXItPm5vZGUoKS0+aGFzVGFnTmFtZShkZXRhaWxzVGFnKSkKICAg
ICAgICAgICAgIHJldHVybiAhdG9FbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpLT5nZXRBdHRyaWJ1
dGUob3BlbkF0dHIpLmlzTnVsbCgpOwotICAgICAgICBpZiAocmVuZGVyZXItPm5vZGUoKS0+aGFz
VGFnTmFtZShpbnB1dFRhZykpCisgICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQocmVuZGVy
ZXItPm5vZGUoKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmlu
ZGV4IDJlMTQ0MTdiZDY5MDA0ZjY1MTBjZjY0ZjY4MGExZjA5NTRiZWUxZmYuLjYxMTNjZWYwYzZl
NDY1ODVjMTdlY2RjZDEzYjEwNTVmYTA4OTRmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtNjgsNyArNjgsNyBA
QCBib29sIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjYW5CZVJlcGxhY2VkV2l0aElubGluZVJ1
bkluKCkgY29uc3QKIAogdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBkYXRlRnJvbUVs
ZW1lbnQoKQogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KG5vZGUoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0
b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAgICBBU1NFUlQoaW5wdXQtPmlzRmlsZVVwbG9h
ZCgpKTsKIAogICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBidXR0b24gPSB1cGxvYWRCdXR0b24o
KSkgewpAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgaW50IG5vZGVXaWR0aChOb2RlKiBub2RlKQog
CiBpbnQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6Om1heEZpbGVuYW1lV2lkdGgoKSBjb25zdAog
ewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KG5vZGUoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1
dEVsZW1lbnQobm9kZSgpKTsKICAgICByZXR1cm4gbWF4KDAsIGNvbnRlbnRCb3hSZWN0KCkucGl4
ZWxTbmFwcGVkV2lkdGgoKSAtIG5vZGVXaWR0aCh1cGxvYWRCdXR0b24oKSkgLSBhZnRlckJ1dHRv
blNwYWNpbmcKICAgICAgICAgLSAoaW5wdXQtPmljb24oKSA/IGljb25XaWR0aCArIGljb25GaWxl
bmFtZVNwYWNpbmcgOiAwKSk7CiB9CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW4KICAgICAgICAgaWYgKCFidXR0b24pCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4obm9kZSgpKTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJ
bnB1dEVsZW1lbnQobm9kZSgpKTsKICAgICAgICAgTGF5b3V0VW5pdCBidXR0b25XaWR0aCA9IG5v
ZGVXaWR0aChidXR0b24pOwogICAgICAgICBMYXlvdXRVbml0IGJ1dHRvbkFuZEljb25XaWR0aCA9
IGJ1dHRvbldpZHRoICsgYWZ0ZXJCdXR0b25TcGFjaW5nCiAgICAgICAgICAgICArIChpbnB1dC0+
aWNvbigpID8gaWNvbldpZHRoICsgaWNvbkZpbGVuYW1lU3BhY2luZyA6IDApOwpAQCAtMjI2LDEy
ICsyMjYsMTIgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwb3Np
dGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JikKIAogSFRNTElucHV0RWxlbWVudCogUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRvbigpIGNvbnN0CiB7Ci0gICAgSFRNTElu
cHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgp
KTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChub2Rl
KCkpOwogCiAgICAgQVNTRVJUKGlucHV0LT5zaGFkb3coKSk7CiAKICAgICBOb2RlKiBidXR0b25O
b2RlID0gaW5wdXQtPnNoYWRvdygpLT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKLSAgICBy
ZXR1cm4gYnV0dG9uTm9kZSAmJiBidXR0b25Ob2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgYnV0dG9u
Tm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgPyBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oYnV0dG9uTm9kZSkgOiAwOworICAgIHJldHVybiBidXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUt
PmlzSFRNTEVsZW1lbnQoKSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQoYnV0dG9uTm9kZSkgPyB0b0hU
TUxJbnB1dEVsZW1lbnQoYnV0dG9uTm9kZSkgOiAwOwogfQogCiBTdHJpbmcgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OmJ1dHRvblZhbHVlKCkKQEAgLTI0NCw3ICsyNDQsNyBAQCBTdHJpbmcgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OmJ1dHRvblZhbHVlKCkKIAogU3RyaW5nIFJlbmRlckZpbGVV
cGxvYWRDb250cm9sOjpmaWxlVGV4dFZhbHVlKCkgY29uc3QKIHsKLSAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUoKSk7CiAg
ICAgQVNTRVJUKGlucHV0LT5maWxlcygpKTsKICAgICByZXR1cm4gdGhlbWUoKS0+ZmlsZUxpc3RO
YW1lRm9yV2lkdGgoaW5wdXQtPmZpbGVzKCksIHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVX
aWR0aCgpLCBpbnB1dC0+bXVsdGlwbGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcAppbmRleCBhNzVlNWQzZWI2NTBhZDAyN2MwNDYwYzhkYmFiODU3NzNjYjky
MzczLi5jZTE4ZTc4YzI3ODdkMzFjMDFiYmE4ZTQ0YTVhZTUxNWRjMzU0YmEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTU1Nyw4ICs1NTcsOCBAQCB2b2lk
IFJlbmRlckltYWdlOjp1cGRhdGVBbHRUZXh0KCkKICAgICBpZiAoIW5vZGUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCi0gICAgICAg
IG1fYWx0VGV4dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpLT5hbHRU
ZXh0KCk7CisgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChub2RlKCkpKQorICAgICAgICBtX2Fs
dFRleHQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKS0+YWx0VGV4dCgpOwogICAgIGVsc2Ug
aWYgKG5vZGUoKS0+aGFzVGFnTmFtZShpbWdUYWcpKQogICAgICAgICBtX2FsdFRleHQgPSBzdGF0
aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSgpKS0+YWx0VGV4dCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDEwMmFmNzk3OGMyYWIwMmY1N2IzMGZlMmE4
NmJhMmQ0YmZjMDc3YzYuLjBhZGU0NjZlM2M5YWI0YmEzYjQ3OGU0OWY3ZTkxZDU4ZDUwYjEwNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTcwMyw3ICs3MDMsNyBAQCBT
dHJpbmcgSW50ZXJuYWxzOjp2aXNpYmxlUGxhY2Vob2xkZXIoRWxlbWVudCogZWxlbWVudCkKICNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIHZvaWQgSW50ZXJuYWxzOjpzZWxlY3RDb2xvcklu
Q29sb3JDaG9vc2VyKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSkK
IHsKLSAgICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNI
VE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gZWxlbWVudC0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBp
ZiAoIWlucHV0RWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CmluZGV4IDAzZWU3ZTRiMzQ5ZjkyY2I3NzJmZTRlZjBkN2M5ZTEyZjM5YzdlMDYuLjg0NGZmMjc0
NjQ0NzI3MDg5NTdmMDc5NDEwNmYzYjRkNTc3ODQ0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMjIyOSw3ICsyMjI5LDcgQEAgUGxhdGZvcm06OldlYkNv
bnRleHQgV2ViUGFnZVByaXZhdGU6OndlYkNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9uU3RyYXRlZ3kg
c3RyYXRlZ3kKICAgICAgICAgICAgICAgICAgICAgY2FuU3RhcnRTZWxlY3Rpb24gPSBub2RlVW5k
ZXJGaW5nZXItPmNhblN0YXJ0U2VsZWN0aW9uKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNvbnRleHQ6OklzSW5wdXQpOwotICAgICAg
ICAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpCisgICAg
ICAgICAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICAgICAgICAg
IGNvbnRleHQuc2V0RmxhZyhQbGF0Zm9ybTo6V2ViQ29udGV4dDo6SXNTaW5nbGVMaW5lKTsKICAg
ICAgICAgICAgIGlmIChET01TdXBwb3J0Ojppc1Bhc3N3b3JkRWxlbWVudChlbGVtZW50KSkKICAg
ICAgICAgICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNvbnRleHQ6OklzUGFz
c3dvcmQpOwpAQCAtMjgzMSw3ICsyODMxLDcgQEAgSW50UmVjdCBXZWJQYWdlUHJpdmF0ZTo6Ymxv
Y2tab29tUmVjdEZvck5vZGUoTm9kZSogbm9kZSkKICAgICBkb3VibGUgYmxvY2tUb1BhZ2VSYXRp
byA9IHN0YXRpY19jYXN0PGRvdWJsZT4ocGFnZUFyZWEgLSBvcmlnaW5hbEFyZWEpIC8gcGFnZUFy
ZWE7CiAgICAgZG91YmxlIGJsb2NrRXhwYW5zaW9uUmF0aW8gPSA1LjAgKiBibG9ja1RvUGFnZVJh
dGlvICogYmxvY2tUb1BhZ2VSYXRpbzsKIAotICAgIGlmICghdG5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjppbWdUYWcpICYmICF0bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFn
KSAmJiAhdG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0ZXh0YXJlYVRhZykpIHsKKyAgICBp
ZiAoIXRub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSAmJiAhaXNIVE1MSW5wdXRF
bGVtZW50KHRub2RlKSAmJiAhdG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0ZXh0YXJlYVRh
ZykpIHsKICAgICAgICAgd2hpbGUgKCh0bm9kZSA9IHRub2RlLT5wYXJlbnROb2RlKCkpKSB7CiAg
ICAgICAgICAgICBBU1NFUlQodG5vZGUpOwogICAgICAgICAgICAgSW50UmVjdCB0UmVjdCA9IHJl
Y3RGb3JOb2RlKHRub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuY3BwCmlu
ZGV4IGZjNWYzZWIyMDI3ODY5ODIzZDc2ZjIwN2IyNTg3ODRmNWIwMjM5NDkuLjhlM2RmNDBiYmM1
YmFlNjAzOWM5NmZjZDhjZjAyNDI1ZjA0NzU4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRlbnRpYWxUcmFu
c2Zvcm1EYXRhLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIGJvb2wgQ3JlZGVudGlhbFRyYW5zZm9y
bURhdGE6OmZpbmRQYXNzd29yZEZvcm1GaWVsZHMoY29uc3QgSFRNTEZvcm1FbGVtZW50KiBmb3Jt
CiAgICAgICAgIGlmICghZm9ybUVsZW1lbnRzW2ldLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZv
cm1FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KGZvcm1FbGVt
ZW50c1tpXSk7Ci0gICAgICAgIGlmICghZm9ybUVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVz
OjppbnB1dFRhZykpCisgICAgICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KGZvcm1FbGVtZW50
KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IGZvcm1FbGVtZW50LT50b0lucHV0RWxlbWVudCgpOwpAQCAtMTY2LDcgKzE2
Niw3IEBAIGJvb2wgQ3JlZGVudGlhbFRyYW5zZm9ybURhdGE6OmZpbmRQYXNzd29yZEZvcm1GaWVs
ZHMoY29uc3QgSFRNTEZvcm1FbGVtZW50KiBmb3JtCiAgICAgICAgICAgICBpZiAoIWZvcm1FbGVt
ZW50c1tpXS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1FbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KGZvcm1FbGVtZW50c1tpXSk7Ci0gICAg
ICAgICAgICBpZiAoIWZvcm1FbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcp
KQorICAgICAgICAgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQoZm9ybUVsZW1lbnQpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dEVsZW1lbnQgPSBmb3JtRWxlbWVudC0+dG9JbnB1dEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFj
a0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBmZmNmMDk3Mjc0ZDgyMTU4OGI4ODJmMTk2NjU0
Zjg1YzRlZmFmM2U2Li45NDE1OTdlOGJjMTA0OTAzOWQ3YTE5OWYwMDYxN2Y1Y2QyNmYwMTI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzaG91bGRTcGVsbENoZWNrRm9jdXNlZEZpZWxk
KCkKICAgICAvLyBJZiB0aGUgZmllbGQgZG9lcyBub3Qgc3VwcG9ydCBhdXRvY29tcGxldGUsIGRv
IG5vdCBkbyBzcGVsbGNoZWNraW5nLgogICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsK
ICAgICAgICAgY29uc3QgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChub2RlKTsKLSAgICAg
ICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykgJiYgIURPTVN1
cHBvcnQ6OmVsZW1lbnRTdXBwb3J0c0F1dG9jb21wbGV0ZShlbGVtZW50KSkKKyAgICAgICAgaWYg
KGlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSAmJiAhRE9NU3VwcG9ydDo6ZWxlbWVudFN1cHBv
cnRzQXV0b2NvbXBsZXRlKGVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
RE9NU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
T01TdXBwb3J0LmNwcAppbmRleCA0MDQyMWMzMjlmYWQ0OGEwYzY5MDhmYmJmMmVmNTllNjE3MGYw
YTExLi43NTJhZGZmYzUyMDUyOGE3MjM4YjdlZTU3ZTlhMmQ5YWM4ZWUwNGRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNw
cApAQCAtMTA5LDggKzEwOSw4IEBAIGJvb2wgaXNUZXh0SW5wdXRFbGVtZW50KEVsZW1lbnQqIGVs
ZW1lbnQpCiAKIGJvb2wgaXNQYXNzd29yZEVsZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCkK
IHsKLSAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6
aW5wdXRUYWcpCi0gICAgICAgICYmIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQq
PihlbGVtZW50KS0+aXNQYXNzd29yZEZpZWxkKCk7CisgICAgcmV0dXJuIGVsZW1lbnQgJiYgaXNI
VE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpCisgICAgICAgICYmIHRvSFRNTElucHV0RWxlbWVudChl
bGVtZW50KS0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKIFdURjo6U3RyaW5nIGlucHV0RWxlbWVu
dFRleHQoRWxlbWVudCogZWxlbWVudCkKQEAgLTExOSw4ICsxMTksOCBAQCBXVEY6OlN0cmluZyBp
bnB1dEVsZW1lbnRUZXh0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIHJldHVybiBXVEY6OlN0
cmluZygpOwogCiAgICAgV1RGOjpTdHJpbmcgZWxlbWVudFRleHQ7Ci0gICAgaWYgKGVsZW1lbnQt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpIHsKLSAgICAgICAgY29uc3QgSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTElucHV0RWxl
bWVudCo+KGVsZW1lbnQpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpIHsK
KyAgICAgICAgY29uc3QgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5w
dXRFbGVtZW50KGVsZW1lbnQpOwogICAgICAgICBlbGVtZW50VGV4dCA9IGlucHV0RWxlbWVudC0+
dmFsdWUoKTsKICAgICB9IGVsc2UgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0
ZXh0YXJlYVRhZykpIHsKICAgICAgICAgY29uc3QgSFRNTFRleHRBcmVhRWxlbWVudCogaW5wdXRF
bGVtZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQp
OwpAQCAtMTgwLDEwICsxODAsMTAgQEAgYm9vbCBpc1BvcHVwSW5wdXRGaWVsZChjb25zdCBFbGVt
ZW50KiBlbGVtZW50KQogCiBib29sIGlzRGF0ZVRpbWVJbnB1dEZpZWxkKGNvbnN0IEVsZW1lbnQq
IGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5w
dXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgY29u
c3QgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVs
ZW1lbnQpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyB0eXBlcyBoYXZlIHBvcHVwJ3MuCiAgICAg
aWYgKGlucHV0RWxlbWVudC0+aXNEYXRlRmllbGQoKQpAQCAtMTk4LDEwICsxOTgsMTAgQEAgYm9v
bCBpc0RhdGVUaW1lSW5wdXRGaWVsZChjb25zdCBFbGVtZW50KiBlbGVtZW50KQogCiBib29sIGlz
Q29sb3JJbnB1dEZpZWxkKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVt
ZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5w
dXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb25zdCBI
VE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5w
dXRFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgY29uc3QgSFRNTElucHV0RWxlbWVudCogaW5wdXRF
bGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOwogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCiAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNDb2xvckNvbnRyb2woKSkKQEAg
LTM5NCw3ICszOTQsNyBAQCBzdGF0aWMgYm9vbCBtYXRjaGVzUmVzZXJ2ZWRTdHJpbmdQcmV2ZW50
aW5nQXV0b2NvbXBsZXRlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaQogLy8gbG9naW4gZmllbGRz
IGFzIGlucHV0IHR5cGU9dGV4dCBhbmQgYXV0byBjb3JyZWN0aW9uIGludGVyZmVycyB3aXRoLgog
Ym9vbCBlbGVtZW50SWRPck5hbWVJbmRpY2F0ZXNOb0F1dG9jb21wbGV0ZShjb25zdCBFbGVtZW50
KiBlbGVtZW50KQogewotICAgIGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Omlu
cHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgQXRvbWljU3RyaW5nIGlkQXR0cmlidXRlID0gZWxlbWVudC0+
Z2V0SWRBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmluZGV4IGFlNWZlZWIzNWQzNGQ2Mjc5YjNh
MDhmM2M2MmFlZTNiYjhjOTQ2ZTkuLjE2ZTJjMWFiNmU4NzU5NTIyOGI2M2NhMmU1OTZhNmJjNDJh
ZjhmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0lucHV0SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApAQCAtNDEwLDcgKzQxMCw3IEBAIFdURjo6U3RyaW5nIElu
cHV0SGFuZGxlcjo6ZWxlbWVudFRleHQoKQogCiBCbGFja0JlcnJ5SW5wdXRUeXBlIElucHV0SGFu
ZGxlcjo6ZWxlbWVudFR5cGUoRWxlbWVudCogZWxlbWVudCkgY29uc3QKIHsKLSAgICBpZiAoY29u
c3QgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRN
TElucHV0RWxlbWVudCo+KGVsZW1lbnQtPnRvSW5wdXRFbGVtZW50KCkpKQorICAgIGlmIChjb25z
dCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxl
bWVudCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0SW5wdXRUeXBlKGlucHV0RWxlbWVudCk7CiAK
ICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRleHRhcmVhVGFnKSkKQEAg
LTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgSW5wdXRIYW5kbGVyOjpzZXRJbnB1dFZhbHVlKGNvbnN0
IFdURjo6U3RyaW5nJiB2YWx1ZSkKICAgICBpZiAoIWlzQWN0aXZlVGV4dFBvcHVwKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2N1cnJlbnRGb2N1c0VsZW1lbnQuZ2V0KCkpOwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudCht
X2N1cnJlbnRGb2N1c0VsZW1lbnQuZ2V0KCkpOwogICAgIGlucHV0RWxlbWVudC0+c2V0VmFsdWUo
dmFsdWUpOwogICAgIGNsZWFyQ3VycmVudEZvY3VzRWxlbWVudCgpOwogfQpAQCAtMjMzOSw3ICsy
MzM5LDcgQEAgZXh0cmFjdGVkX3RleHRfdCogSW5wdXRIYW5kbGVyOjpleHRyYWN0ZWRUZXh0UmVx
dWVzdChleHRyYWN0ZWRfdGV4dF9yZXF1ZXN0X3QqLAogCiAgICAgLy8gc2VsZWN0aW9uQWN0aXZl
IGlzIG5vdCBsaW1pdGVkIHRvIGluc2lkZSB0aGUgZXh0cmFjdGVkIHRleHQuCiAgICAgYm9vbCBz
ZWxlY3Rpb25BY3RpdmUgPSBleHRyYWN0ZWRUZXh0LT5zZWxlY3Rpb25fc3RhcnQgIT0gZXh0cmFj
dGVkVGV4dC0+c2VsZWN0aW9uX2VuZDsKLSAgICBib29sIHNpbmdsZUxpbmUgPSBtX2N1cnJlbnRG
b2N1c0VsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZyk7CisgICAgYm9vbCBz
aW5nbGVMaW5lID0gaXNIVE1MSW5wdXRFbGVtZW50KG1fY3VycmVudEZvY3VzRWxlbWVudCk7CiAK
ICAgICAvLyBGSVhNRSBmbGFncyBoYXMgdHdvIHZhbHVlcyBpbiBkb2MsIGVudW0gbm90IGluIGhl
YWRlciB5ZXQuCiAgICAgZXh0cmFjdGVkVGV4dC0+ZmxhZ3MgPSBzZWxlY3Rpb25BY3RpdmUgJiBz
aW5nbGVMaW5lOwpAQCAtMjcwMSw3ICsyNzAxLDcgQEAgdm9pZCBJbnB1dEhhbmRsZXI6OnNob3dU
ZXh0SW5wdXRUeXBlU3VnZ2VzdGlvbkJveChib29sIGFsbG93RW1wdHlQcmVmaXgpCiAgICAgaWYg
KCFpc0FjdGl2ZVRleHRFZGl0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGZvY3VzZWRJbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4obV9jdXJyZW50Rm9jdXNFbGVtZW50LT50b0lucHV0RWxlbWVudCgpKTsKKyAgICBIVE1MSW5w
dXRFbGVtZW50KiBmb2N1c2VkSW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KG1fY3Vy
cmVudEZvY3VzRWxlbWVudC0+dG9JbnB1dEVsZW1lbnQoKSk7CiAgICAgaWYgKCFmb2N1c2VkSW5w
dXRFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CmluZGV4IDA2N2NjODQ1MjQ1Yjk0OTAxNDg3ZWY0NDI0OWE3ODMzOWFlM2ZlZGIuLmM5YTk1NjE4
MDQ3ODY3NDQzZDQzY2VjZmJmM2VlYTU0ZGFjY2VkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcApAQCAtMjk2Miw3ICsyOTYyLDcgQEAgdm9pZCBld2tfdmlld19pbnB1dF9tZXRob2Rf
c3RhdGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGFjdGl2ZSkKICAgICBpZiAoZm9j
dXNlZEZyYW1lCiAgICAgICAgICYmIGZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKQogICAgICAgICAm
JiBmb2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkKLSAgICAgICAgJiYg
Zm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpLT5oYXNUYWdOYW1lKFdl
YkNvcmU6OkhUTUxOYW1lczo6aW5wdXRUYWcpKSB7CisgICAgICAgICYmIGlzSFRNTElucHV0RWxl
bWVudChmb2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpKSB7CiAgICAg
ICAgIFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudDsKIAogICAgICAgICBp
bnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Kj4oZm9j
dXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KaW5kZXggOWEyN2Q5ZmVlMGYwNjAwYzRiZDcwYjJi
YzEyZTA4NWUzNWJkYWNiNy4uNGU3MGIyMTQyZTQ0OTY5YjdjMjdmNmFhOGRhZTk0MTcxNmIwZDkx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KQEAgLTE5OSw3
ICsxOTksNyBAQCBib29sIFdlYkZyYW1lRmlsdGVyOjpzaG91bGRJbmNsdWRlU3ViZnJhbWUoRnJh
bWUqIGZyYW1lKSBjb25zdAogCiAtICh2b2lkKV9zZXRBdXRvZmlsbGVkOihCT09MKWF1dG9maWxs
ZWQKIHsKLSAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oY29yZSgoRE9NRWxlbWVu
dCAqKXNlbGYpKS0+c2V0QXV0b2ZpbGxlZChhdXRvZmlsbGVkKTsKKyAgICB0b0hUTUxJbnB1dEVs
ZW1lbnQoY29yZSgoRE9NRWxlbWVudCAqKXNlbGYpKS0+c2V0QXV0b2ZpbGxlZChhdXRvZmlsbGVk
KTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGFkYmY5MjM2MGVhODI4OTE1Mzk2YzI4MzU5NjI2NDVl
OTJjZTY0NmEuLjNmMGIwNTM4NWJhM2E2OTM1YmNmZmEzNWM3NDY2ZDliMTk5ODE4MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KQEAgLTIwMCwxMCArMjAwLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkTm9k
ZUNoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5w
dXRFbGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7Cisg
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5v
ZGUpOwogICAgIGlmICghaW5wdXRFbGVtZW50LT5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KaW5kZXggMjA0NWQ4ZWFmNzMyZmQyYzA2NGZkYjFjNjUzYjQwNDk1OTFjZDAxNy4uMTdj
MmQzMWNhMjkxOWFmMjc1YjYzZWQ3M2EzZjNjNWUzZmJmY2RmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNjMyLDMz
ICs2MzIsMzMgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93
bihLZXlib2FyZEV2ZW50KiBldmVudCkKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRGaWVs
ZERpZEJlZ2luRWRpdGluZyhFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmICghZWxlbWVudC0+
aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVu
dCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxl
bWVudCA9IGtpdChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCkpOworICAg
IERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGtpdCh0b0hUTUxJbnB1dEVsZW1l
bnQoZWxlbWVudCkpOwogICAgIEZvcm1EZWxlZ2F0ZUxvZyhpbnB1dEVsZW1lbnQpOwogICAgIENh
bGxGb3JtRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dEZpZWxkRGlkQmVnaW5FZGl0
aW5nOmluRnJhbWU6KSwgaW5wdXRFbGVtZW50LCBraXQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJh
bWUoKSkpOwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGlu
ZyhFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1
dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGtpdChzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCkpOworICAgIERPTUhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IGtpdCh0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpOwog
ICAgIEZvcm1EZWxlZ2F0ZUxvZyhpbnB1dEVsZW1lbnQpOwogICAgIENhbGxGb3JtRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dEZpZWxkRGlkRW5kRWRpdGluZzppbkZyYW1lOiksIGlu
cHV0RWxlbWVudCwga2l0KGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpKTsKIH0KIAogdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZChFbGVtZW50KiBlbGVt
ZW50KQogewotICAgIGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYg
KCFpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyVHlwaW5nR2VzdHVy
ZSgpIHx8IFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yOjpmb2N1c2VkRWxlbWVudEF0R2VzdHVy
ZVN0YXJ0KCkgIT0gZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRE9NSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0ga2l0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihlbGVtZW50KSk7CisgICAgRE9NSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0ga2l0
KHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSk7CiAgICAgRm9ybURlbGVnYXRlTG9nKGlucHV0
RWxlbWVudCk7CiAgICAgQ2FsbEZvcm1EZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih0ZXh0
RGlkQ2hhbmdlSW5UZXh0RmllbGQ6aW5GcmFtZTopLCBpbnB1dEVsZW1lbnQsIGtpdChlbGVtZW50
LT5kb2N1bWVudCgpLT5mcmFtZSgpKSk7CiB9CkBAIC02ODgsMTAgKzY4OCwxMCBAQCBzdGF0aWMg
U0VMIHNlbGVjdG9yRm9yS2V5RXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZWxlbWVu
dCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuIE5POwogCi0gICAgRE9NSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0g
a2l0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KSk7CisgICAgRE9NSFRN
TElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0ga2l0KHRvSFRNTElucHV0RWxlbWVudChlbGVt
ZW50KSk7CiAgICAgRm9ybURlbGVnYXRlTG9nKGlucHV0RWxlbWVudCk7CiAgICAgaWYgKFNFTCBj
b21tYW5kU2VsZWN0b3IgPSBzZWxlY3RvckZvcktleUV2ZW50KGV2ZW50KSkKICAgICAgICAgcmV0
dXJuIENhbGxGb3JtRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKE5PLCBtX3dlYlZpZXcsIEBzZWxl
Y3Rvcih0ZXh0RmllbGQ6ZG9Db21tYW5kQnlTZWxlY3RvcjppbkZyYW1lOiksIGlucHV0RWxlbWVu
dCwgY29tbWFuZFNlbGVjdG9yLCBraXQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkpOwpA
QCAtNzAwLDEwICs3MDAsMTAgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmRvVGV4dEZpZWxkQ29t
bWFuZEZyb21FdmVudChFbGVtZW50KiBlbGVtZW50LCBLZXlib2FyZEV2ZW4KIAogdm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnRleHRXaWxsQmVEZWxldGVkSW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVu
dCkKIHsKLSAgICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICgh
aXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBET01I
VE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBraXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICBET01IVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1l
bnQgPSBraXQodG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKTsKICAgICBGb3JtRGVsZWdhdGVM
b2coaW5wdXRFbGVtZW50KTsKICAgICAvLyBXZSdyZSB1c2luZyB0aGUgZGVsZXRlQmFja3dhcmQg
c2VsZWN0b3IgZm9yIGFsbCBkZWxldGlvbiBvcGVyYXRpb25zIHNpbmNlIHRoZSBhdXRvZmlsbCBj
b2RlIHRyZWF0cyBhbGwgZGVsZXRpb25zIHRoZSBzYW1lIHdheS4KICAgICBDYWxsRm9ybURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dEZpZWxkOmRv
Q29tbWFuZEJ5U2VsZWN0b3I6aW5GcmFtZTopLCBpbnB1dEVsZW1lbnQsIEBzZWxlY3RvcihkZWxl
dGVCYWNrd2FyZDopLCBraXQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQppbmRl
eCBkNjEyMGFlOTFkN2U2MDY3NjhhNTdhOTk2NjQyZjRhNzRjMDkxMmFmLi4zYzcwNjExNmQ2MWMz
MDg5MDQxNjQ1NjQ5OTE0MGU2NzZhYjkzM2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbQpAQCAtMzAzLDcgKzMwMyw3IEBAIHN0
YXRpYyBIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50RnJvbURPTUVsZW1lbnQoRE9NRWxlbWVu
dCAqZWxlbWVudCkKIHN0YXRpYyBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnRGcm9tRE9N
RWxlbWVudChET01FbGVtZW50KiBlbGVtZW50KQogewogICAgIEVsZW1lbnQqIG5vZGUgPSBjb3Jl
KGVsZW1lbnQpOwotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
ID8gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpIDogMDsKKyAgICByZXR1cm4g
bm9kZSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkgPyB0b0hUTUxJbnB1dEVsZW1lbnQobm9k
ZSkgOiAwOwogfQogCiAtIChCT09MKWVsZW1lbnREb2VzQXV0b0NvbXBsZXRlOihET01FbGVtZW50
ICopZWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmNwcAppbmRleCAwNWI3NGExY2MzMGI2MDQ1ZTVkZmEzMDg0MWU3OWMwZGIyNGFh
ZDJmLi4wYjY0ZTYxZDQ5NGQ5MWI3MDNmMDBjNTg2NzJlMTMxNjgwNGUzMDNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcApAQCAt
NjE5LDggKzYxOSw4IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBhY3RpdmUpCiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IDA7
CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkt
PmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3Vt
ZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpCi0gICAgICAgICAg
ICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCktPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjppbnB1dFRhZykpCi0gICAgICAgICAgICAgICAgaW5wdXRFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVu
dCgpKTsKKyAgICAgICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZnJhbWUtPmRvY3VtZW50
KCktPmZvY3VzZWRFbGVtZW50KCkpKQorICAgICAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IHRv
SFRNTElucHV0RWxlbWVudChmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSk7CiAK
ICAgICAgICAgaWYgKGlucHV0RWxlbWVudCkgewogICAgICAgICAgICAgLy8gU2V0IGlucHV0IG1l
dGhvZCBoaW50cyBmb3IgIm51bWJlciIsICJ0ZWwiLCAiZW1haWwiLCAidXJsIiBhbmQgInBhc3N3
b3JkIiBpbnB1dCBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmNwcAppbmRleCA4OWVmZjYxNzY1ZmY4OWU0MWQyZTMyM2U4
YWFhZGU4MDQwZGEwMjA3Li4yMTBlYTQxZjNmNDY5YzNmOTYzNDM5N2YyMGFlN2ViMjkwYmI0Y2M0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRh
cHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViUGFnZUFk
YXB0ZXIuY3BwCkBAIC03MTAsOCArNzEwLDggQEAgUVZhcmlhbnQgUVdlYlBhZ2VBZGFwdGVyOjpp
bnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbnB1dE1ldGhvZFF1ZXJ5IHByb3BlcnR5KSBjb25zdAogICAg
IGNhc2UgUXQ6OkltTWF4aW11bVRleHRMZW5ndGg6IHsKICAgICAgICAgaWYgKGZyYW1lLT5zZWxl
Y3Rpb24oKS0+aXNDb250ZW50RWRpdGFibGUoKSkgewogICAgICAgICAgICAgaWYgKGZyYW1lLT5k
b2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpLT5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAg
aWYgKGlzSFRNTElucHV0RWxlbWVudChmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQo
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gdG9IVE1MSW5wdXRFbGVtZW50KGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgp
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFFWYXJpYW50KGlucHV0RWxlbWVudC0+bWF4
TGVuZ3RoKCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L0RPTUNvcmVDbGFzc2VzLmNwcAppbmRleCAxMjlhZTlkZDI3ZTRjY2NlMzJkNzAyNDJmOTQ0ZDlh
MTgyNWYyMzA1Li5jZDNkYzQ1Yjc1NzQ2NjczZmMxMGNjNTgzZDJlZTZlZGJiYWNmNDI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9ET01Db3JlQ2xhc3Nlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vRE9NQ29yZUNsYXNzZXMuY3BwCkBAIC0xNTAwLDcgKzE1MDAsNyBAQCBJRE9N
RWxlbWVudCogRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoV2ViQ29yZTo6RWxlbWVudCogZSkK
ICAgICB9IGVsc2UgaWYgKGUtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkgewogICAgICAgICBET01I
VE1MSUZyYW1lRWxlbWVudCogbmV3RWxlbWVudCA9IG5ldyBET01IVE1MSUZyYW1lRWxlbWVudChl
KTsKICAgICAgICAgaHIgPSBuZXdFbGVtZW50LT5RdWVyeUludGVyZmFjZShJSURfSURPTUVsZW1l
bnQsICh2b2lkKiopJmRvbUVsZW1lbnQpOwotICAgIH0gZWxzZSBpZiAoZS0+aGFzVGFnTmFtZShp
bnB1dFRhZykpIHsKKyAgICB9IGVsc2UgaWYgKGlzSFRNTElucHV0RWxlbWVudChlKSkgewogICAg
ICAgICBET01IVE1MSW5wdXRFbGVtZW50KiBuZXdFbGVtZW50ID0gbmV3IERPTUhUTUxJbnB1dEVs
ZW1lbnQoZSk7CiAgICAgICAgIGhyID0gbmV3RWxlbWVudC0+UXVlcnlJbnRlcmZhY2UoSUlEX0lE
T01FbGVtZW50LCAodm9pZCoqKSZkb21FbGVtZW50KTsKICAgICB9IGVsc2UgaWYgKGUtPmhhc1Rh
Z05hbWUob3B0aW9uVGFnKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vRE9NSFRN
TENsYXNzZXMuY3BwIGIvU291cmNlL1dlYktpdC93aW4vRE9NSFRNTENsYXNzZXMuY3BwCmluZGV4
IDc5MDUyZmRiYmU0YzZlZjBhZGFkMmY1ZDgyM2RlYTM1YjMyZmU0NzAuLmIyNGJlZTI2ODI2MzNk
NmJkNDU0NjAzMWE3ZjllNGQxNzZlMWExOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0RPTUhUTUxDbGFzc2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nl
cy5jcHAKQEAgLTk5NSw4ICs5OTUsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhU
TUxJbnB1dEVsZW1lbnQ6OmZvcm0oCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBF
X1BPSU5URVI7CiAgICAgKnJlc3VsdCA9IDA7Ci0gICAgQVNTRVJUKG1fZWxlbWVudCAmJiBtX2Vs
ZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50KTsKKyAg
ICBBU1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9l
bGVtZW50KTsKICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQ7CiAgICAgZG9tRWxl
bWVudC5hZG9wdFJlZihET01IVE1MRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoaW5wdXRFbGVtZW50
LT5mb3JtKCkpKTsKICAgICBpZiAoZG9tRWxlbWVudCkKQEAgLTEwNzcsOCArMTA3Nyw4IEBAIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2V0Q2hlY2tlZCgK
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6ZGlzYWJsZWQo
IAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIHJlc3VsdCkKIHsKLSAgICBBU1NF
UlQobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpOwotICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1lbnQgJiYgaXNIVE1MSW5wdXRFbGVt
ZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRv
SFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgICpyZXN1bHQgPSBpbnB1dEVsZW1lbnQt
PmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09L
OwogfQpAQCAtMTEyMSw4ICsxMTIxLDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01I
VE1MSW5wdXRFbGVtZW50OjpzZXROYW1lKAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01I
VE1MSW5wdXRFbGVtZW50OjpyZWFkT25seSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8g
Qk9PTCogcmVzdWx0KQogewotICAgIEFTU0VSVChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5oYXNU
YWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0g
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJUKG1f
ZWxlbWVudCAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KSk7CisgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCk7CiAg
ICAgKnJlc3VsdCA9IGlucHV0RWxlbWVudC0+aXNSZWFkT25seSgpID8gVFJVRSA6IEZBTFNFOwog
ICAgIHJldHVybiBTX09LOwogfQpAQCAtMTE4Niw4ICsxMTg2LDggQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50Ojp0eXBlKAogSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50OjpzZXRUeXBlKCAKICAgICAgICAgLyogW2luXSAq
LyBCU1RSIHR5cGUpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVudCAmJiBtX2VsZW1lbnQtPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50KTsKKyAgICBBU1NFUlQobV9l
bGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAg
ICBXVEY6OlN0cmluZyB0eXBlU3RyaW5nKHR5cGUsIFN5c1N0cmluZ0xlbih0eXBlKSk7CiAgICAg
aW5wdXRFbGVtZW50LT5zZXRUeXBlKHR5cGVTdHJpbmcpOwogICAgIHJldHVybiBTX09LOwpAQCAt
MTIxMCw4ICsxMjEwLDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRF
bGVtZW50OjpzZXRVc2VNYXAoCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1
dEVsZW1lbnQ6OnZhbHVlKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCU1RSKiByZXN1
bHQpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVudCAmJiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5w
dXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50KTsKKyAgICBBU1NFUlQobV9lbGVtZW50ICYm
IGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAgICBXVEY6OlN0
cmluZyB2YWx1ZVN0cmluZyA9IGlucHV0RWxlbWVudC0+dmFsdWUoKTsKICAgICAqcmVzdWx0ID0g
QlN0cmluZyh2YWx1ZVN0cmluZy5jaGFyYWN0ZXJzKCksIHZhbHVlU3RyaW5nLmxlbmd0aCgpKS5y
ZWxlYXNlKCk7CiAgICAgaWYgKHZhbHVlU3RyaW5nLmxlbmd0aCgpICYmICEqcmVzdWx0KQpAQCAt
MTIyMiw4ICsxMjIyLDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRF
bGVtZW50Ojp2YWx1ZSgKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxl
bWVudDo6c2V0VmFsdWUoIAogICAgICAgICAvKiBbaW5dICovIEJTVFIgdmFsdWUpCiB7Ci0gICAg
QVNTRVJUKG1fZWxlbWVudCAmJiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4obV9lbGVtZW50KTsKKyAgICBBU1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0
RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQg
PSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAgICBpbnB1dEVsZW1lbnQtPnNldFZh
bHVlKFN0cmluZygoVUNoYXIqKSB2YWx1ZSwgU3lzU3RyaW5nTGVuKHZhbHVlKSkpOwogICAgIHJl
dHVybiBTX09LOwogfQpAQCAtMTIzMiwxNiArMTIzMiwxNiBAQCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRm9yVXNlcigKICAgICAgICAgLyog
W2luXSAqLyBCU1RSIHZhbHVlKQogewogICAgIEFTU0VSVChtX2VsZW1lbnQpOwotICAgIEFTU0VS
VChtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50
KTsKKyAgICBBU1NFUlQoaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQp
OwogICAgIGlucHV0RWxlbWVudC0+c2V0VmFsdWVGb3JVc2VyKFN0cmluZyhzdGF0aWNfY2FzdDxV
Q2hhcio+KHZhbHVlKSwgU3lzU3RyaW5nTGVuKHZhbHVlKSkpOwogICAgIHJldHVybiBTX09LOwog
fQogCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dCggdm9pZCkKIHsKLSAgICBBU1NFUlQobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+aGFzVGFnTmFt
ZShpbnB1dFRhZykpOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1l
bnQgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgIGlu
cHV0RWxlbWVudC0+c2VsZWN0KCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0xMjU1LDggKzEy
NTUsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OmNs
aWNrKCB2b2lkKQogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50
OjpzZXRTZWxlY3Rpb25TdGFydCggCiAgICAgLyogW2luXSAqLyBsb25nIHN0YXJ0KQogewotICAg
IEFTU0VSVChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0g
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJUKG1fZWxlbWVudCAmJiBpc0hUTUxJbnB1
dEVsZW1lbnQobV9lbGVtZW50KSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gdG9IVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgaW5wdXRFbGVtZW50LT5zZXRT
ZWxlY3Rpb25TdGFydChzdGFydCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0xMjY0LDggKzEy
NjQsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFNlbGVjdGlvblN0YXJ0KAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRF
bGVtZW50OjpzZWxlY3Rpb25TdGFydCggCiAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBsb25nICpz
dGFydCkKIHsKLSAgICBBU1NFUlQobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+aGFzVGFnTmFtZShp
bnB1dFRhZykpOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1lbnQg
JiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgICpzdGFy
dCA9IGlucHV0RWxlbWVudC0+c2VsZWN0aW9uU3RhcnQoKTsKICAgICByZXR1cm4gU19PSzsKIH0K
QEAgLTEyNzMsOCArMTI3Myw4IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElu
cHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERP
TUhUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvbkVuZCggCiAgICAgLyogW2luXSAqLyBsb25n
IGVuZCkKIHsKLSAgICBBU1NFUlQobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+aGFzVGFnTmFtZShp
bnB1dFRhZykpOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1lbnQg
JiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgIGlucHV0
RWxlbWVudC0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0x
MjgyLDggKzEyODIsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkVuZCgKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRN
TElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kKCAKICAgICAvKiBbcmV0dmFsXVtvdXRdICovIGxv
bmcgKmVuZCkKIHsKLSAgICBBU1NFUlQobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+aGFzVGFnTmFt
ZShpbnB1dFRhZykpOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1l
bnQgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgICpl
bmQgPSBpbnB1dEVsZW1lbnQtPnNlbGVjdGlvbkVuZCgpOwogICAgIHJldHVybiBTX09LOwogfQpA
QCAtMTI5NCw4ICsxMjk0LDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5w
dXRFbGVtZW50Ojppc1RleHRGaWVsZCgKICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIHJl
c3VsdCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5o
YXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJU
KGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAgICAqcmVzdWx0
ID0gaW5wdXRFbGVtZW50LT5pc1RleHRGaWVsZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVy
biBTX09LOwogfQpAQCAtMTMwNCw3ICsxMzA0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBET01IVE1MSW5wdXRFbGVtZW50OjpyZWN0T25TY3JlZW4oCiAgICAgLyogW3JldHZhbF1bb3V0
XSAqLyBMUFJFQ1QgcmVjdCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKLSAgICBBU1NFUlQo
bV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7CisgICAgQVNTRVJUKGlzSFRNTElucHV0
RWxlbWVudChtX2VsZW1lbnQpKTsKICAgICByZWN0LT5sZWZ0ID0gcmVjdC0+dG9wID0gcmVjdC0+
cmlnaHQgPSByZWN0LT5ib3R0b20gPSAwOwogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBt
X2VsZW1lbnQtPnJlbmRlcmVyKCk7CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9lbGVtZW50LT5k
b2N1bWVudCgpLT52aWV3KCk7CkBAIC0xMzMwLDggKzEzMzAsOCBAQCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnJlcGxhY2VDaGFyYWN0ZXJzSW5SYW5nZSgK
ICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAogICAgIEFTU0VSVChtX2VsZW1lbnQpOwotICAg
IEFTU0VSVChtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9l
bGVtZW50KTsKKyAgICBBU1NFUlQoaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2Vs
ZW1lbnQpOwogCiAgICAgU3RyaW5nIG5ld1ZhbHVlID0gaW5wdXRFbGVtZW50LT52YWx1ZSgpOwog
ICAgIFN0cmluZyB3ZWJDb3JlUmVwbGFjZW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8VUNoYXIqPihy
ZXBsYWNlbWVudFN0cmluZyksIFN5c1N0cmluZ0xlbihyZXBsYWNlbWVudFN0cmluZykpOwpAQCAt
MTM0Nyw4ICsxMzQ3LDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRF
bGVtZW50OjpzZWxlY3RlZFJhbmdlKAogICAgIC8qIFtvdXRdICovIGludCogZW5kKQogewogICAg
IEFTU0VSVChtX2VsZW1lbnQpOwotICAgIEFTU0VSVChtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5w
dXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50KTsKKyAgICBBU1NFUlQoaXNIVE1MSW5wdXRF
bGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9
IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgICpzdGFydCA9IGlucHV0RWxlbWVu
dC0+c2VsZWN0aW9uU3RhcnQoKTsKICAgICAqZW5kID0gaW5wdXRFbGVtZW50LT5zZWxlY3Rpb25F
bmQoKTsKICAgICByZXR1cm4gU19PSzsKQEAgLTEzNTgsOCArMTM1OCw4IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2V0QXV0b2ZpbGxlZCgKICAgICAv
KiBbaW5dICovIEJPT0wgZmlsbGVkKQogewogICAgIEFTU0VSVChtX2VsZW1lbnQpOwotICAgIEFT
U0VSVChtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVt
ZW50KTsKKyAgICBBU1NFUlQoaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1l
bnQpOwogICAgIGlucHV0RWxlbWVudC0+c2V0QXV0b2ZpbGxlZCghIWZpbGxlZCk7CiAgICAgcmV0
dXJuIFNfT0s7CiB9CkBAIC0xMzY4LDggKzEzNjgsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OmlzQXV0b2ZpbGxlZCgKICAgICAvKiBbcmV0dmFsXVtv
dXRdICovIEJPT0wqIHJlc3VsdCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKLSAgICBBU1NF
UlQobV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVu
dCk7CisgICAgQVNTRVJUKGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50
KTsKICAgICAqcmVzdWx0ID0gaW5wdXRFbGVtZW50LT5pc0F1dG9maWxsZWQoKSA/IFRSVUUgOiBG
QUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTEzODMsMTEgKzEzODMsMTEgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50Ojppc1VzZXJFZGl0ZWQoCiAg
ICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAgICAqcmVzdWx0ID0gRkFMU0U7Ci0gICAgQVNT
RVJUKG1fZWxlbWVudCAmJiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKKyAgICBB
U1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKICAgICBC
T09MIHRleHRGaWVsZCA9IEZBTFNFOwogICAgIGlmIChGQUlMRUQoaXNUZXh0RmllbGQoJnRleHRG
aWVsZCkpIHx8ICF0ZXh0RmllbGQpCiAgICAgICAgIHJldHVybiBTX09LOwotICAgIGlmIChzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50KS0+bGFzdENoYW5nZVdhc1VzZXJF
ZGl0KCkpCisgICAgaWYgKHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpLT5sYXN0Q2hhbmdl
V2FzVXNlckVkaXQoKSkKICAgICAgICAgKnJlc3VsdCA9IFRSVUU7CiAgICAgcmV0dXJuIFNfT0s7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggYWMzZDQxMDIyMjQ5YzM0ZmJkZGY3MTI3N2U1
NzAwODQ4NzQ4YmIyNC4uNzk4ZDQzY2Y4Yjk1MjVjMmMwNGM4MGNjNTI4ZTAyYjQwODFmYTI2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtMjIxLDggKzIyMSw4IEBAIHN0YXRpYyBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dEVsZW1lbnRGcm9tRE9NRWxlbWVudChJRE9NRWxlbWVudCogZWxlbWVu
dCkKICAgICAgICAgRWxlbWVudCogZWxlOwogICAgICAgICBociA9IGVsZVByaXYtPmNvcmVFbGVt
ZW50KCh2b2lkKiopJmVsZSk7CiAgICAgICAgIGVsZVByaXYtPlJlbGVhc2UoKTsKLSAgICAgICAg
aWYgKFNVQ0NFRURFRChocikgJiYgZWxlICYmIGVsZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCi0g
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZSk7Cisg
ICAgICAgIGlmIChTVUNDRUVERUQoaHIpICYmIGVsZSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQoZWxl
KSkKKyAgICAgICAgICAgIHJldHVybiB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlKTsKICAgICB9CiAg
ICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmNwcAppbmRleCAxY2Y0ODAxZjFjYjg4MmFlYzk0ZjMyOTg2OTc5NTgzMmMxNDcwYzI2Li4y
OTZiZjI1NDJiZGUyYjUzYmE4NjJlNTUwODBjODk0OTI2MDQ1MGY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTE4MCwzNCArMTgwLDM0IEBA
IFBhc3NSZWZQdHI8V2ViSW1hZ2U+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6cmVuZGVyZWRJ
bWFnZShTbmFwc2hvdE9wdGlvbnMgb3B0CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
OjpzZXRIVE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7
Ci0gICAgaWYgKCFtX25vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1M
SW5wdXRFbGVtZW50KG1fbm9kZS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX25vZGUuZ2V0KCkpLT5zZXRWYWx1ZUZvclVzZXIo
dmFsdWUpOworICAgIHRvSFRNTElucHV0RWxlbWVudChtX25vZGUuZ2V0KCkpLT5zZXRWYWx1ZUZv
clVzZXIodmFsdWUpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aXNIVE1M
SW5wdXRFbGVtZW50QXV0b2ZpbGxlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX25vZGUtPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KG1fbm9kZS5nZXQo
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KG1fbm9kZS5nZXQoKSktPmlzQXV0b2ZpbGxlZCgpOworICAgIHJl
dHVybiB0b0hUTUxJbnB1dEVsZW1lbnQobV9ub2RlLmdldCgpKS0+aXNBdXRvZmlsbGVkKCk7CiB9
CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRIVE1MSW5wdXRFbGVtZW50QXV0
b2ZpbGxlZChib29sIGZpbGxlZCkKIHsKLSAgICBpZiAoIW1fbm9kZS0+aGFzVGFnTmFtZShpbnB1
dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQobV9ub2RlLmdldCgpKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fbm9kZS5n
ZXQoKSktPnNldEF1dG9maWxsZWQoZmlsbGVkKTsKKyAgICB0b0hUTUxJbnB1dEVsZW1lbnQobV9u
b2RlLmdldCgpKS0+c2V0QXV0b2ZpbGxlZChmaWxsZWQpOwogfQogCiBib29sIEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZTo6aHRtbElucHV0RWxlbWVudExhc3RDaGFuZ2VXYXNVc2VyRWRpdCgpCiB7
Ci0gICAgaWYgKCFtX25vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1M
SW5wdXRFbGVtZW50KG1fbm9kZS5nZXQoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9ub2RlLmdldCgpKS0+bGFz
dENoYW5nZVdhc1VzZXJFZGl0KCk7CisgICAgcmV0dXJuIHRvSFRNTElucHV0RWxlbWVudChtX25v
ZGUuZ2V0KCkpLT5sYXN0Q2hhbmdlV2FzVXNlckVkaXQoKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGU6Omh0bWxUZXh0QXJlYUVsZW1lbnRMYXN0Q2hhbmdlV2FzVXNlckVkaXQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KaW5kZXggNTJkOGQ3NmYyZWRjNTFmNmRl
MWNjOWQ5Zjg1MDg4MzdlMjUzMjAyOC4uNWFmNmVjNjc2NDMwOWEwMWU3YjgxMjJiZTUwNmEzOGEx
M2ExOWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCkBAIC0xMDcsNyArMTA3
LDcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6Y3JlYXRl
QW5ub3RhdGlvbkVsZW1lbnQoKQogICAgIGlmIChpc011bHRpbGluZSkKICAgICAgICAgc3RhdGlj
X2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KHN0eWxlZEVsZW1lbnQpLT5zZXRWYWx1ZSh0ZXh0
QW5ub3RhdGlvbi5zdHJpbmdWYWx1ZSk7CiAgICAgZWxzZQotICAgICAgICBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oc3R5bGVkRWxlbWVudCktPnNldFZhbHVlKHRleHRBbm5vdGF0aW9u
LnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgdG9IVE1MSW5wdXRFbGVtZW50KHN0eWxlZEVsZW1lbnQp
LT5zZXRWYWx1ZSh0ZXh0QW5ub3RhdGlvbi5zdHJpbmdWYWx1ZSk7CiAKICAgICByZXR1cm4gZWxl
bWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwOTg1OGFlZmY5NzkzNTFlNDMx
NWMzZDc2MWE0Njk5MDE2Njc2Yzg0Li5jZTE2MDA2ZGI3NGYyMGY5NzI3NGQ0ZWIzYjU0ZmY4YWU4
YjgwZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNjQsMTAgKzE2NCwxMCBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAg
ICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFub2RlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChub2RlKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKTsKICAgICBpZiAoIWlucHV0RWxlbWVu
dC0+aXNUZXh0KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmlu
ZGV4IGQ4M2U0NTYwZGY2NzQ0NDIzM2ZhMTdhOTY0YmEwODE1YWEwNmY4ZTcuLmM5MTNhNjEzMjJj
YmNkOWQ3MzhmMmQ4ZmFiMGJhMTc3ZGQ3ZmYzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAK
QEAgLTMxNiwzMSArMzE2LDMxIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1l
dGhvZEtleWRvd24oS2V5Ym9hcmRFdmVudCopCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0
RmllbGREaWRCZWdpbkVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIWVsZW1l
bnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KGVs
ZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZUxvYWRlckNsaWVudCogd2Vi
RnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKSk7CiAgICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJh
bWUoKSA6IDA7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAotICAgIG1fcGFnZS0+aW5qZWN0ZWRC
dW5kbGVGb3JtQ2xpZW50KCkudGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKG1fcGFnZSwgc3RhdGlj
X2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpLCB3ZWJGcmFtZSk7CisgICAgbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS50ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcobV9w
YWdlLCB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCksIHdlYkZyYW1lKTsKIH0KIAogdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkK
IHsKLSAgICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNI
VE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFt
ZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xp
ZW50KGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKSk7CiAg
ICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxv
YWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAotICAg
IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkudGV4dEZpZWxkRGlkRW5kRWRpdGlu
ZyhtX3BhZ2UsIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KSwgd2ViRnJh
bWUpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkudGV4dEZpZWxkRGlk
RW5kRWRpdGluZyhtX3BhZ2UsIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgd2ViRnJhbWUp
OwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKEVs
ZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKCFVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJU
eXBpbmdHZXN0dXJlKCkgfHwgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3I6OmZvY3VzZWRFbGVt
ZW50QXRHZXN0dXJlU3RhcnQoKSAhPSBlbGVtZW50KQpAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQg
V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVu
dCkKICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZy
YW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogMDsKICAgICBBU1NFUlQod2ViRnJhbWUpOwog
Ci0gICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS50ZXh0RGlkQ2hhbmdlSW5U
ZXh0RmllbGQobV9wYWdlLCBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCks
IHdlYkZyYW1lKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnRleHRE
aWRDaGFuZ2VJblRleHRGaWVsZChtX3BhZ2UsIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSwg
d2ViRnJhbWUpOwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4
dEFyZWEoRWxlbWVudCogZWxlbWVudCkKQEAgLTM4OSw3ICszODksNyBAQCBzdGF0aWMgYm9vbCBn
ZXRBY3Rpb25UeXBlRm9yS2V5RXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQsIFdLSW5wdXRGaWVs
ZEFjdGlvblR5cAogCiBib29sIFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJv
bUV2ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewotICAgIGlm
ICghZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVs
ZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFdLSW5wdXRGaWVs
ZEFjdGlvblR5cGUgYWN0aW9uVHlwZSA9IHN0YXRpY19jYXN0PFdLSW5wdXRGaWVsZEFjdGlvblR5
cGU+KDApOwpAQCAtNDAwLDE5ICs0MDAsMTkgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmRvVGV4
dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiBlbGVtZW50LCBLZXlib2FyZEV2ZW4KICAg
ICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9h
ZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogMDsKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCi0gICAg
cmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkuc2hvdWxkUGVyZm9ybUFj
dGlvbkluVGV4dEZpZWxkKG1fcGFnZSwgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVs
ZW1lbnQpLCBhY3Rpb25UeXBlLCB3ZWJGcmFtZSk7CisgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0
ZWRCdW5kbGVGb3JtQ2xpZW50KCkuc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKG1fcGFn
ZSwgdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpLCBhY3Rpb25UeXBlLCB3ZWJGcmFtZSk7CiB9
CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVs
ZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9X
ZWJGcmFtZUxvYWRlckNsaWVudChlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIo
KS0+Y2xpZW50KCkpOwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xp
ZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOwogICAgIEFTU0VSVCh3
ZWJGcmFtZSk7CiAKLSAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnNob3Vs
ZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChtX3BhZ2UsIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihlbGVtZW50KSwgV0tJbnB1dEZpZWxkQWN0aW9uVHlwZUluc2VydERlbGV0ZSwgd2Vi
RnJhbWUpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkuc2hvdWxkUGVy
Zm9ybUFjdGlvbkluVGV4dEZpZWxkKG1fcGFnZSwgdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQp
LCBXS0lucHV0RmllbGRBY3Rpb25UeXBlSW5zZXJ0RGVsZXRlLCB3ZWJGcmFtZSk7CiB9CiAKIGJv
b2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlv
bihXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlIHR5cGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCA2MmNhZjI3YTJhY2FhMzFj
NmMwOGYyOGY3ZTYwYjg0ODM5ZTc5ZTBkLi4xYjRkZTBkOWZkOTUyMmYyY2RkM2M1MmVhOTFkODY1
OWU0ODU3ZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTEZvcm1FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9IVE1MRnJhbWVPd25lckVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxJbnB1dEVs
ZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSlNDU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0VsZW1lbnQu
aD4KQEAgLTYxNiw3ICs2MTcsNyBAQCBib29sIFdlYkZyYW1lOjpjb250YWluc0FueUZvcm1Db250
cm9scygpIGNvbnN0CiAgICAgZm9yIChOb2RlKiBub2RlID0gZG9jdW1lbnQtPmRvY3VtZW50RWxl
bWVudCgpOyBub2RlOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dChub2RlKSkgewogICAgICAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBpZiAodG9FbGVtZW50KG5vZGUpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcp
IHx8IHRvRWxlbWVudChub2RlKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykgfHwg
dG9FbGVtZW50KG5vZGUpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpKQorICAg
ICAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUpIHx8IHRvRWxlbWVudChub2RlKS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykgfHwgdG9FbGVtZW50KG5vZGUpLT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBlY2NiODNjNTcwZTlkMjM1NWQ2NTIxMWI3YjE4Y2JlZWYy
OTdlZWYwLi5hOWViODQzMjhhZTk3ZWQwYjY3Yjk2NjRmNjVlNTRhNjFhYjViMjBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MTIsOCAr
NjEyLDggQEAgRWRpdG9yU3RhdGUgV2ViUGFnZTo6ZWRpdG9yU3RhdGUoKSBjb25zdAogICAgIGlm
ICghc2NvcGUpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBpZiAoc2NvcGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2NvcGUpOworICAgIGlmIChp
c0hUTUxJbnB1dEVsZW1lbnQoc2NvcGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KHNjb3BlKTsKICAgICAgICAgaWYgKGlucHV0LT5pc1Rl
bGVwaG9uZUZpZWxkKCkpCiAgICAgICAgICAgICByZXN1bHQuaW5wdXRNZXRob2RIaW50cyB8PSBR
dDo6SW1oRGlhbGFibGVDaGFyYWN0ZXJzT25seTsKICAgICAgICAgZWxzZSBpZiAoaW5wdXQtPmlz
TnVtYmVyRmllbGQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205602</attachid>
            <date>2013-06-27 07:11:43 -0700</date>
            <delta_ts>2013-06-27 19:27:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118130-20130627230952.patch</filename>
            <type>text/plain</type>
            <size>99277</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJjZTE3NTU4NzAxZDg4
ODkyMzIwNDAyNzZmNjdkNWRlNjljM2I0Ny4uMTc2ODcwNzkwYTc1ZDA3MjY3MGRhMjQ4MWQ0ZTU1
ZTUwYjlmMjU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAxMy0wNi0yNyAgS2Fu
Z2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRvcHQgaXMvdG9I
VE1MSW5wdXRFbGVtZW50IGZvciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMgcGF0
Y2ggYWRvcHRzIGlzL3RvSFRNTElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBz
IG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjp2YWx1ZURlc2NyaXB0aW9uKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNOYXRpdmVUZXh0Q29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2YWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjptYXhWYWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjptaW5WYWx1ZUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphY3Rpb25FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZUVsZW1lbnRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjZXNzaWJsZU5hbWVGb3JOb2RlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aXNGaWxlVXBsb2FkQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojph
ZGRUZXh0RmllbGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXI6OmVs
ZW1lbnQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmls
aXR5UGFzc3dvcmRGaWVsZExlbmd0aCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MSW5w
dXRFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVu
dDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50
OjpzZXRTZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1l
bnQ6OnNlbGVjdGlvbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnQ6
OnNlbGVjdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1l
bnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHls
ZSk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6aXNJblBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OnNob3VsZFBlcmZvcm1TbWFydFJlcGxhY2UpOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91
bGRBdXRvZm9jdXMpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6Z2V0VGV4dEZpZWxkVmFsdWVzKToKKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTElu
cHV0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxJbnB1dEVsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFkaW9J
bnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lu
cHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudFR5cGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0
aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpzdGFydFNwZWVjaElucHV0KToKKyAgICAgICAgKiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNyZWF0ZSk6CisgICAgICAg
ICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRUb29sVGlw
KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
c1N1Ym1pdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjbGVhclNlbGVjdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRVUkxGb3JJbWFn
ZU5vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0TW9iaWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lUXRNb2JpbGU6OnBhaW50U2xpZGVyVHJhY2spOgorICAgICAg
ICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQ6OmFsdERpc3BsYXlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdDo6YWJzb2x1dGVJbWFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
Ojppc0NvbnRlbnRFZGl0YWJsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0eSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OnNpemVzTG9naWNhbFdpZHRoVG9GaXRDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJ1dHRvbjo6dXBkYXRl
RnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpjYW5IYXZlR2Vu
ZXJhdGVkQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRldGFpbHNNYXJrZXI6OmlzT3Blbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6bWF4RmlsZW5hbWVXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1
dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6ZmlsZVRl
eHRWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckltYWdlOjp1cGRhdGVBbHRUZXh0KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNlbGVjdENvbG9y
SW5Db2xvckNob29zZXIpOgorCiAyMDEzLTA2LTI3ICBab2x0YW4gQXJ2YWkgIDx6YXJ2YWlAaW5m
LnUtc3plZ2VkLmh1PgogCiAgICAgICAgIEJ1aWxkZml4IGZvciAhRU5BQkxFKFNWRykgYnVpbGRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggY2QzZDQ1MTM2YjM5OTBhYWFiM2I4
ZDNmNmM3YTRkYjMyYWUzNWIyNC4uNzgyMmI4ZmE1NjEzNWFlZjUyNTNjNWIyMDU2YzVmY2M4NTlh
YTZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTMtMDYtMjcgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFkb3B0IGlzL3RvSFRNTElucHV0RWxlbWVudCBmb3IgY29kZSBjbGVhbnVwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxMzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmls
aXR5LCB0aGlzIHBhdGNoIGFkb3B0cyBpcy90b0hUTUxJbnB1dEVsZW1lbnQuCisgICAgICAgIFRo
aXMgYWxzbyBoZWxwcyBvdXQgdG8gcmVkdWNlIGR1cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0
LgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6d2ViQ29udGV4dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpibG9ja1pvb21SZWN0Rm9yTm9kZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbFRyYW5zZm9ybURhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbFRyYW5zZm9ybURhdGE6OmZpbmRQYXNzd29yZEZvcm1GaWVsZHMpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkU3BlbGxDaGVja0Zv
Y3VzZWRGaWVsZCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcDoKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNQYXNzd29yZEVsZW1lbnQp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpET01TdXBwb3J0OjppbnB1dEVsZW1lbnRU
ZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6aXNEYXRlVGlt
ZUlucHV0RmllbGQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpET01TdXBwb3J0Ojpp
c0NvbG9ySW5wdXRGaWVsZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBv
cnQ6OmVsZW1lbnRJZE9yTmFtZUluZGljYXRlc05vQXV0b2NvbXBsZXRlKToKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OklucHV0SGFuZGxlcjo6ZWxlbWVudFR5cGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpJbnB1dEhhbmRsZXI6OnNldElucHV0VmFsdWUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpJbnB1dEhhbmRsZXI6OmV4dHJhY3RlZFRleHRSZXF1ZXN0KToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpzaG93VGV4dElucHV0VHlwZVN1Z2dlc3Rp
b25Cb3gpOgorCiAyMDEzLTA2LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNhcmdhcmNpYUBi
bGFja2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gSGFuZGxlIHRlc3RSdW5uZXIu
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDFjMmUyZWQ5NjYy
MjNlZjJkMWVhZDY1Nzg5MDE5YzAyNWMxMTg2ZWEuLmQ5MzFhOTA5OTkyYmYxZTMyNmEyNTZmYWY3
ZDUxNTRmN2E1MmYzMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0w
Ni0yNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRv
cHQgaXMvdG9IVE1MSW5wdXRFbGVtZW50IGZvciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHks
IHRoaXMgcGF0Y2ggYWRvcHRzIGlzL3RvSFRNTElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBh
bHNvIGhlbHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfaW5wdXRfbWV0
aG9kX3N0YXRlX3NldCk6CisKIDIwMTMtMDYtMjYgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1JFR1JFU1NJT05dIENyYXNoIGFmdGVyIHIxNTE1
NDAgd2l0aCBkZWJ1ZyBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDVkNmM5M2M3ZmNhOThiNWEy
YWI3ZjA3MzI1OTQyMGUxOWE2Y2JlOTAuLmU5NGJlNjk3ODY1OWM0Mjc4MjUzYTZiYmYzYmQ2ODEz
ODliNDNjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wNi0yNyAg
S2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRvcHQgaXMv
dG9IVE1MSW5wdXRFbGVtZW50IGZvciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMg
cGF0Y2ggYWRvcHRzIGlzL3RvSFRNTElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhl
bHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAg
ICAgKiBET00vV2ViRE9NT3BlcmF0aW9ucy5tbToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxl
bWVudCBfc2V0QXV0b2ZpbGxlZDpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAo
V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYkVk
aXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KToKKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6dGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZCk6CisgICAgICAgICogV2ViVmll
dy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubW06CisgICAgICAgIChpbnB1dEVsZW1lbnRGcm9tRE9N
RWxlbWVudCk6CisKIDIwMTMtMDYtMjYgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEFkb3B0IGlzL3RvSFRNTEF1ZGlvRWxlbWVudCBmb3IgY29kZSBjbGVh
bnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDg5NmU5NTlkMTMzNDk3MTBjMjk4MzY1ZDc3YmJkZGIxY2Q0
ODAyZWQuLjIyMTM4NWUyZDU5ZTdiN2ZkMDVhMDY2MGJiY2M5N2RjNzA1MGMxMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDYtMjcgIEthbmdpbCBIYW4gIDxrYW5naWwu
aGFuQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkb3B0IGlzL3RvSFRNTElucHV0RWxlbWVudCBm
b3IgY29kZSBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTgxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmlsaXR5LCB0aGlzIHBhdGNoIGFkb3B0cyBpcy90b0hU
TUxJbnB1dEVsZW1lbnQuCisgICAgICAgIFRoaXMgYWxzbyBoZWxwcyBvdXQgdG8gcmVkdWNlIGR1
cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnNl
dElucHV0TWV0aG9kU3RhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRh
cHRlci5jcHA6CisgICAgICAgIChRV2ViUGFnZUFkYXB0ZXI6OmlucHV0TWV0aG9kUXVlcnkpOgor
CiAyMDEzLTA2LTI2ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNv
bT4KIAogICAgICAgICBSZW5hbWUgV29ya2VyQ29udGV4dCB0byBXb3JrZXJHbG9iYWxTY29wZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGY3ZGJmOWVlN2ZhODI0MDE1ZmYzZGEzMDQ5YmMyNDA0MTE4ZDFm
MGMuLjI3ZjA1OTU1ZTRjODFlYmE2ZGI1NmFkNzEzMTliZDNhZjgwOWNmNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMy0wNi0yNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5o
YW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRvcHQgaXMvdG9IVE1MSW5wdXRFbGVtZW50IGZv
ciBjb2RlIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMgcGF0Y2ggYWRvcHRzIGlzL3RvSFRN
TElucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBzIG91dCB0byByZWR1Y2UgZHVw
bGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAgKiBET01Db3JlQ2xhc3Nlcy5j
cHA6CisgICAgICAgIChET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSk6CisgICAgICAgICogRE9N
SFRNTENsYXNzZXMuY3BwOgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6Zm9ybSk6Cisg
ICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50OjpkaXNhYmxlZCk6CisgICAgICAgIChET01IVE1M
SW5wdXRFbGVtZW50OjpyZWFkT25seSk6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50Ojpz
ZXRUeXBlKToKKyAgICAgICAgKERPTUhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlKToKKyAgICAgICAg
KERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAgKERPTUhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFZhbHVlRm9yVXNlcik6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50Ojpz
ZWxlY3QpOgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQp
OgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAg
ICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKToKKyAgICAgICAgKERPTUhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCk6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVt
ZW50Ojppc1RleHRGaWVsZCk6CisgICAgICAgIChET01IVE1MSW5wdXRFbGVtZW50OjpyZWN0T25T
Y3JlZW4pOgorICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6cmVwbGFjZUNoYXJhY3RlcnNJ
blJhbmdlKToKKyAgICAgICAgKERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkUmFuZ2UpOgor
ICAgICAgICAoRE9NSFRNTElucHV0RWxlbWVudDo6c2V0QXV0b2ZpbGxlZCk6CisgICAgICAgIChE
T01IVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9maWxsZWQpOgorICAgICAgICAoRE9NSFRNTElucHV0
RWxlbWVudDo6aXNVc2VyRWRpdGVkKToKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAg
IChpbnB1dEVsZW1lbnRGcm9tRE9NRWxlbWVudCk6CisKIDIwMTMtMDYtMjYgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBEZXByZWNhdGUgU3RyaW5nSW1w
bDo6Y2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkNzc0YTA4ZWJl
OGMxNWRiZjQ5ZWNkN2I4Yjc0Mzk2MWYxYjgxNGU1Li4wNmE5ZDc2YTdhYTdhMjlhMjQyYWEwZDI0
ZDVjNWVkNmM5MGY1ZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTMtMDYtMjcg
IEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkb3B0IGlz
L3RvSFRNTElucHV0RWxlbWVudCBmb3IgY29kZSBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxMzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmlsaXR5LCB0aGlz
IHBhdGNoIGFkb3B0cyBpcy90b0hUTUxJbnB1dEVsZW1lbnQuCisgICAgICAgIFRoaXMgYWxzbyBo
ZWxwcyBvdXQgdG8gcmVkdWNlIGR1cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRI
VE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlOjppc0hUTUxJbnB1dEVsZW1lbnRBdXRvZmlsbGVkKToKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRIVE1MSW5wdXRFbGVtZW50QXV0
b2ZpbGxlZCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aHRt
bElucHV0RWxlbWVudExhc3RDaGFuZ2VXYXNVc2VyRWRpdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktp
dDo6UERGUGx1Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5U
ZXh0RmllbGQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmRvVGV4dEZpZWxk
Q29tbWFuZEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dGV4
dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRhaW5zQW55Rm9y
bUNvbnRyb2xzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVkaXRvclN0YXRlKToKKwogMjAxMy0wNi0yNyAgQWxi
ZXJ0byBHYXJjaWEgIDxhZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gW1dLMl0g
Q2hlY2sgdmFsdWUgb2YgV0VCS0lUX0lOSkVDVEVEX0JVTkRMRV9QQVRICmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuY3BwCmluZGV4IDVhMDlkNWI0NWVhNTdhY2VlMTkzNzA3Mjk5YTU5MTFkZDM1MGE4NjcuLjNh
NDY0YWUwYWQ1OGJhODRhMWYxNWRmNzMwNzBhYTkyZTYwM2QyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuY3BwCkBAIC0yNzcsMTAgKzI3NywxMCBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjpjcmVhdGUoUmVuZGVyT2JqZWN0KgogU3Ry
aW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QK
IHsKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIGZsb2F0IHRpbWUgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSktPnZhbHVlKCkudG9GbG9hdCgpOworICAgIGZsb2F0
IHRpbWUgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSktPnZhbHVlKCkudG9GbG9hdCgpOwogICAg
IHJldHVybiBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAppbmRleCAwZjgyMTI0MDNmMmExMWNhNGM0MDVjNDU3MWJhYjFlNWU5ZWY4ZWQ2Li4x
YzcxMTU2MmY2MGJiMTdlODY0YmRhMTk4NDkzZDNkYzJmNGE3MjMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cApAQCAtMjgyLDggKzI4Miw4IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAgICAgICAgIHJldHVybiBTdGF0
aWNUZXh0Um9sZTsKICAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykpCiAgICAg
ICAgIHJldHVybiBidXR0b25Sb2xlVHlwZSgpOwotICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUo
aW5wdXRUYWcpKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKGlzSFRNTElucHV0RWxlbWVu
dChub2RlKCkpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5w
dXRFbGVtZW50KG5vZGUoKSk7CiAgICAgICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQogICAg
ICAgICAgICAgcmV0dXJuIENoZWNrQm94Um9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1JhZGlv
QnV0dG9uKCkpCkBAIC00NDQsOCArNDQ0LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6aXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0CiAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUo
dGV4dGFyZWFUYWcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChub2RlLT5oYXNU
YWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICBpZiAoaXNIVE1MSW5wdXRF
bGVtZW50KG5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1M
SW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICByZXR1cm4gaW5wdXQtPmlzVGV4dCgpIHx8IGlu
cHV0LT5pc051bWJlckZpZWxkKCk7CiAgICAgfQogCkBAIC00OTQsOCArNDk0LDggQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNOYXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKG9iamVjdFRhZykpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpOworICAg
IGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgICAgIHJldHVybiBpbnB1
dC0+aXNJbWFnZUJ1dHRvbigpOwogICAgIH0KIApAQCAtNTI5LDggKzUyOSw4IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiAgICAgaWYgKCFub2Rl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgCi0gICAgaWYgKHJvbGVWYWx1ZSgpID09IEJ1dHRv
blJvbGUgJiYgbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7Cisg
ICAgaWYgKHJvbGVWYWx1ZSgpID09IEJ1dHRvblJvbGUgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5v
ZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVt
ZW50KG5vZGUpOwogICAgICAgICByZXR1cm4gaW5wdXQtPmlzSW1hZ2VCdXR0b24oKTsKICAgICB9
CiAKQEAgLTY5Nyw4ICs2OTcsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Jl
YWRPbmx5KCkgY29uc3QKICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykpCiAg
ICAgICAgIHJldHVybiB0b0hUTUxGb3JtQ29udHJvbEVsZW1lbnQobm9kZSktPmlzUmVhZE9ubHko
KTsKIAotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KTsKKyAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICBpZiAo
aW5wdXQtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgICAgICByZXR1cm4gaW5wdXQtPmlzUmVhZE9u
bHkoKTsKICAgICB9CkBAIC03ODYsOCArNzg2LDggQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKIAogZmxvYXQgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OnZhbHVlRm9yUmFuZ2UoKSBjb25zdAogewotICAgIGlmIChub2RlKCkgJiYgbm9k
ZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAgIGlmIChu
b2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSkpIHsKKyAgICAgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAgICAgICAgaWYg
KGlucHV0LT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgcmV0dXJuIGlucHV0LT52YWx1
ZUFzTnVtYmVyKCk7CiAgICAgfQpAQCAtODAwLDggKzgwMCw4IEBAIGZsb2F0IEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2YWx1ZUZvclJhbmdlKCkgY29uc3QKIAogZmxvYXQgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6Om1heFZhbHVlRm9yUmFuZ2UoKSBjb25zdAogewotICAgIGlmIChub2RlKCkg
JiYgbm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAg
IGlmIChub2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSkpIHsKKyAgICAgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAgICAg
ICAgaWYgKGlucHV0LT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgcmV0dXJuIGlucHV0
LT5tYXhpbXVtKCk7CiAgICAgfQpAQCAtODE0LDggKzgxNCw4IEBAIGZsb2F0IEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjptYXhWYWx1ZUZvclJhbmdlKCkgY29uc3QKIAogZmxvYXQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6Om1pblZhbHVlRm9yUmFuZ2UoKSBjb25zdAogewotICAgIGlmIChub2Rl
KCkgJiYgbm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwor
ICAgIGlmIChub2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUoKSkpIHsKKyAgICAgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKICAg
ICAgICAgaWYgKGlucHV0LT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgcmV0dXJuIGlu
cHV0LT5taW5pbXVtKCk7CiAgICAgfQpAQCAtOTMzLDggKzkzMyw4IEBAIEVsZW1lbnQqIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjphY3Rpb25FbGVtZW50KCkgY29uc3QKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
KSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpIHsK
KyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9k
ZSk7CiAgICAgICAgIGlmICghaW5wdXQtPmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpICYmIChpc0No
ZWNrYm94T3JSYWRpbygpIHx8IGlucHV0LT5pc1RleHRCdXR0b24oKSkpCiAgICAgICAgICAgICBy
ZXR1cm4gaW5wdXQ7CiAgICAgfSBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykp
CkBAIC0xMTc3LDcgKzExNzcsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRs
ZUVsZW1lbnRUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcgogICAgIGlmICgh
bm9kZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGJvb2wgaXNJbnB1dFRhZyA9IG5vZGUt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpOworICAgIGJvb2wgaXNJbnB1dFRhZyA9IGlzSFRNTElucHV0
RWxlbWVudChub2RlKTsKICAgICBpZiAoaXNJbnB1dFRhZyB8fCBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc0FSSUFJbnB1dChhcmlhUm9sZUF0dHJpYnV0ZSgpKSB8fCBpc0NvbnRyb2woKSkgewogICAg
ICAgICBIVE1MTGFiZWxFbGVtZW50KiBsYWJlbCA9IGxhYmVsRm9yRWxlbWVudCh0b0VsZW1lbnQo
bm9kZSkpOwogICAgICAgICBpZiAobGFiZWwpIHsKQEAgLTEyMzcsOSArMTIzNyw5IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mIHRleHRPcmRlcikKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBib29sIGlzSW5wdXRUYWcgPSBub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKTsKKyAgICBi
b29sIGlzSW5wdXRUYWcgPSBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgaWYgKGlzSW5w
dXRUYWcpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICBpZiAoaW5wdXQtPmlzVGV4dEJ1
dHRvbigpKSB7CiAgICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0
KGlucHV0LT52YWx1ZVdpdGhEZWZhdWx0KCksIFZpc2libGVUZXh0KSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xNTgwLDkgKzE1ODAsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnRpdGxlKCkgY29uc3QKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIAotICAgIGJvb2wgaXNJbnB1dFRhZyA9IG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpOwor
ICAgIGJvb2wgaXNJbnB1dFRhZyA9IGlzSFRNTElucHV0RWxlbWVudChub2RlKTsKICAgICBpZiAo
aXNJbnB1dFRhZykgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgICAgIGlmIChpbnB1dC0+aXNU
ZXh0QnV0dG9uKCkpCiAgICAgICAgICAgICByZXR1cm4gaW5wdXQtPnZhbHVlV2l0aERlZmF1bHQo
KTsKICAgICB9CkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OnRleHQoKSBjb25zdAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogCi0gICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSAmJiAobm9kZS0+aGFzVGFnTmFt
ZSh0ZXh0YXJlYVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpKQorICAgIGlmIChp
c05hdGl2ZVRleHRDb250cm9sKCkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpIHx8
IGlzSFRNTElucHV0RWxlbWVudChub2RlKSkpCiAgICAgICAgIHJldHVybiB0b0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KG5vZGUpLT52YWx1ZSgpOwogCiAgICAgaWYgKCFub2RlLT5pc0VsZW1l
bnROb2RlKCkpCkBAIC0xNzAxLDEwICsxNzAxLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNvbG9yVmFsdWUoaW50JiByLCBpbnQmIGcsIGludCYgYikgY29uc3QKICAgICBpZiAo
IWlzQ29sb3JXZWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbm9kZSgpIHx8ICFu
b2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghbm9kZSgpIHx8ICFpc0hUTUxJ
bnB1dEVsZW1lbnQobm9kZSgpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTElucHV0RWxl
bWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKKyAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKCkpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSA9IGlucHV0LT5nZXRBdHRyaWJ1dGUodHlwZUF0
dHIpOwogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UodHlwZSwgImNvbG9yIikpCiAgICAgICAg
IHJldHVybjsKQEAgLTE3MjMsOCArMTcyMyw4IEBAIHN0YXRpYyBTdHJpbmcgYWNjZXNzaWJsZU5h
bWVGb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgaWYgKG5vZGUtPmlzVGV4dE5vZGUoKSkKICAgICAg
ICAgcmV0dXJuIHRvVGV4dChub2RlKS0+ZGF0YSgpOwogCi0gICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUoaW5wdXRUYWcpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KG5vZGUpLT52YWx1ZSgpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCisg
ICAgICAgIHJldHVybiB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSktPnZhbHVlKCk7CiAKICAgICBp
ZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
YWx0ID0gdG9IVE1MRWxlbWVudChub2RlKS0+Z2V0QXR0cmlidXRlKGFsdEF0dHIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKaW5kZXggZmJmM2FiNDY1NmMxYTBiZjdjZDlmNjc2YWQ0NTAzNGNiYTBjOTJm
ZS4uNjk1MzE5M2FkNmUyM2Q5ZjUwNDRhMzQ5Y2YyNTRlNmQ0MDBmYWQ4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCkBAIC01MTcsOCArNTE3LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojppc0F0dGFjaG1lbnQoKSBjb25zdAogCiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmlzRmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcmVuZGVyZXIgJiYg
bV9yZW5kZXJlci0+bm9kZSgpICYmIG1fcmVuZGVyZXItPm5vZGUoKS0+aGFzVGFnTmFtZShpbnB1
dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obV9yZW5kZXJlci0+bm9kZSgpKTsKKyAgICBpZiAobV9yZW5kZXJl
ciAmJiBtX3JlbmRlcmVyLT5ub2RlKCkgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fcmVuZGVyZXIt
Pm5vZGUoKSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1
dEVsZW1lbnQobV9yZW5kZXJlci0+bm9kZSgpKTsKICAgICAgICAgcmV0dXJuIGlucHV0LT5pc0Zp
bGVVcGxvYWQoKTsKICAgICB9CiAgICAgCkBAIC05MjQsMTAgKzkyNCwxMCBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKEFjY2Vzc2li
aWxpdHlDaGlsZHJlbgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgTm9kZSogbm9kZSA9IG1f
cmVuZGVyZXItPm5vZGUoKTsKLSAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmhhc1RhZ05hbWUoaW5w
dXRUYWcpKQorICAgIGlmICghbm9kZSB8fCAhaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUpKQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNf
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5w
dXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgLy8gaWYgdGhlcmUncyBhIGZvcm0s
IHRoZW4gdGhpcyBpcyBlYXN5CiAgICAgaWYgKGlucHV0LT5mb3JtKCkpIHsKICAgICAgICAgVmVj
dG9yPFJlZlB0cjxOb2RlPiA+IGZvcm1FbGVtZW50czsKQEAgLTk0Myw4ICs5NDMsOCBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJhZGlvQnV0dG9uR3JvdXBNZW1iZXJzKEFj
Y2Vzc2liaWxpdHlDaGlsZHJlbgogICAgICAgICBSZWZQdHI8Tm9kZUxpc3Q+IGxpc3QgPSBub2Rl
LT5kb2N1bWVudCgpLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTsKICAgICAgICAgdW5z
aWduZWQgbGVuID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW47ICsraSkgewotICAgICAgICAgICAgaWYgKGxpc3QtPml0ZW0oaSktPmhhc1RhZ05h
bWUoaW5wdXRUYWcpKSB7Ci0gICAgICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCogYXNzb2Np
YXRlRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihsaXN0LT5pdGVtKGkp
KTsKKyAgICAgICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobGlzdC0+aXRlbShpKSkpIHsK
KyAgICAgICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBhc3NvY2lhdGVFbGVtZW50ID0gdG9I
VE1MSW5wdXRFbGVtZW50KGxpc3QtPml0ZW0oaSkpOwogICAgICAgICAgICAgICAgIGlmIChhc3Nv
Y2lhdGVFbGVtZW50LT5pc1JhZGlvQnV0dG9uKCkgJiYgYXNzb2NpYXRlRWxlbWVudC0+bmFtZSgp
ID09IGlucHV0LT5uYW1lKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iamVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoYXNzb2NpYXRl
RWxlbWVudCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rZWRVSUVsZW1lbnRzLmFwcGVu
ZChvYmplY3QpOwpAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgS1VSTCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojp1cmwoKSBjb25zdAogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEltYWdl
RWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSktPnNyYygpOwogICAgIAogICAgIGlmIChpc0lu
cHV0SW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihtX3JlbmRlcmVyLT5ub2RlKCkpLT5zcmMoKTsKKyAgICAgICAgcmV0dXJuIHRvSFRNTElucHV0
RWxlbWVudChtX3JlbmRlcmVyLT5ub2RlKCkpLT5zcmMoKTsKICAgICAKICAgICByZXR1cm4gS1VS
TCgpOwogfQpAQCAtMTY0MSw3ICsxNjQxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAvLyBGSVhNRTogRG8gd2Ug
d2FudCB0byBkbyBhbnl0aGluZyBoZXJlIGZvciBBUklBIHRleHRib3hlcz8KICAgICBpZiAocmVu
ZGVyZXItPmlzVGV4dEZpZWxkKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IHNh
ZmUhICBPdGhlciBlbGVtZW50cyBjb3VsZCBoYXZlIGEgVGV4dEZpZWxkIHJlbmRlcmVyLgotICAg
ICAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCktPnNldFZhbHVlKHN0
cmluZyk7CisgICAgICAgIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KS0+c2V0VmFsdWUoc3Ry
aW5nKTsKICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc1RleHRBcmVhKCkpIHsKICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgbm90IHNhZmUhICBPdGhlciBlbGVtZW50cyBjb3VsZCBoYXZlIGEg
VGV4dEFyZWEgcmVuZGVyZXIuCiAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1l
bnQqPihlbGVtZW50KS0+c2V0VmFsdWUoc3RyaW5nKTsKQEAgLTI0NDgsNyArMjQ0OCw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKCkKICAgICBpZiAobV9yZW5kZXJlci0+aXNUZXh0KCkpCiAgICAgICAgIHJl
dHVybiBTdGF0aWNUZXh0Um9sZTsKICAgICBpZiAoY3NzQm94ICYmIGNzc0JveC0+aXNJbWFnZSgp
KSB7Ci0gICAgICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAg
ICAgICBpZiAobm9kZSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCiAgICAgICAgICAgICBy
ZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1dHRvblJvbGUgOiBCdXR0b25Sb2xlOwogICAg
ICAgICBpZiAoaXNTVkdJbWFnZSgpKQogICAgICAgICAgICAgcmV0dXJuIFNWR1Jvb3RSb2xlOwpA
QCAtMjQ3MSw4ICsyNDcxLDggQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgIGlmIChjc3NCb3ggJiYg
Y3NzQm94LT5pc1RleHRBcmVhKCkpCiAgICAgICAgIHJldHVybiBUZXh0QXJlYVJvbGU7CiAKLSAg
ICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KTsKKyAgICBpZiAobm9kZSAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpIHsKKyAgICAgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAg
ICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQogICAgICAgICAgICAgcmV0dXJuIENoZWNrQm94
Um9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1JhZGlvQnV0dG9uKCkpCkBAIC0yNzcwLDEwICsy
NzcwLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlQ2hpbGRyZW5J
Zk5lY2Vzc2FyeSgpCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFRleHRGaWVs
ZENoaWxkcmVuKCkKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwotICAgIGlmICgh
bm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFub2RlIHx8ICFp
c0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChub2Rl
KTsKICAgICBIVE1MRWxlbWVudCogc3BpbkJ1dHRvbkVsZW1lbnQgPSBpbnB1dC0+aW5uZXJTcGlu
QnV0dG9uRWxlbWVudCgpOwogICAgIGlmICghc3BpbkJ1dHRvbkVsZW1lbnQgfHwgIXNwaW5CdXR0
b25FbGVtZW50LT5pc1NwaW5CdXR0b25FbGVtZW50KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3Bw
CmluZGV4IDE0MDIwZTAyYjhmZjE0OWViMmI1YWI0ZDI2MGRiMzBkNzhjYjA2MTcuLjUxY2M4OThl
ZmE3NWU1MjA4MmY4OWEyZWNjMDdlNjg4OGRlMGYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcApAQCAtMTQzLDcgKzE0
Myw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNsaWRlcjo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIAogSFRNTElucHV0RWxlbWVudCogQWNjZXNzaWJpbGl0eVNsaWRlcjo6ZWxlbWVudCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX3Jl
bmRlcmVyLT5ub2RlKCkpOworICAgIHJldHVybiB0b0hUTUxJbnB1dEVsZW1lbnQobV9yZW5kZXJl
ci0+bm9kZSgpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQppbmRleCA2NDE0NjA4YTU1MTll
NzE4YmFkYjQ3M2IzMmYxYWIzNGI4OTM2MzYwLi5kY2RlODhhY2U4N2E2YzI0ZmUwMmIzZTJkYjY3
MTQ2YmFjYmIzYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KQEAgLTY3LDcgKzY3LDcgQEAgaW50
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkK
ICAgICBpZiAoIXJlbmRlck9iamVjdCB8fCAhcmVuZGVyT2JqZWN0LT5ub2RlKCkgfHwgIXJlbmRl
ck9iamVjdC0+bm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4ocmVuZGVyT2JqZWN0LT5ub2RlKCkpOworICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChyZW5kZXJPYmplY3QtPm5v
ZGUoKSk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxl
bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwCmluZGV4IDUyMGNlNjUwYjNhMmMyZGNhNDk2OWM1YjdhYWJhNjYyMDAy
MWYzY2MuLjFmM2M1YTYzODA2OWIwNzY5ZTdkZTUwMjE2MjFkZTIyNThiOTRhN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50Q3Vz
dG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEpTVmFsdWUg
SlNIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
CiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4oaW1wbCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElu
cHV0RWxlbWVudChpbXBsKCkpOwogICAgIGlmICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC00NCw3ICs0NCw3IEBA
IEpTVmFsdWUgSlNIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAKIHZvaWQgSlNIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChpbXBsKCkpOwogICAgIGlm
ICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhl
Yyk7CiAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBKU0hUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVj
dGlvblN0YXJ0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0hU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0g
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oaW1wbCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxl
bWVudChpbXBsKCkpOwogICAgIGlmICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02Miw3ICs2Miw3IEBAIEpTVmFs
dWUgSlNIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25FbmQoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogCiB2b2lkIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbXBsKCkpOworICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KGltcGwoKSk7CiAgICAgaWYgKCFpbnB1dC0+
Y2FuSGF2ZVNlbGVjdGlvbigpKQogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAt
NzEsNyArNzEsNyBAQCB2b2lkIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0hUTUxJbnB1dEVsZW1l
bnQ6OnNlbGVjdGlvbkRpcmVjdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1w
bCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChp
bXBsKCkpOwogICAgIGlmICghaW5wdXQtPmNhbkhhdmVTZWxlY3Rpb24oKSkKICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC04MCw3ICs4MCw3IEBAIEpTVmFsdWUgSlNI
VE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb24oRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogCiB2b2lkIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRGlyZWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbXBsKCkpOworICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KGltcGwoKSk7CiAgICAgaWYgKCFp
bnB1dC0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMp
OwogICAgICAgICByZXR1cm47CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgSlNIVE1MSW5wdXRFbGVt
ZW50OjpzZXRTZWxlY3Rpb25EaXJlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogCiBKU1ZhbHVlIEpTSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KGltcGwoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSB0b0hUTUxJbnB1dEVsZW1lbnQoaW1wbCgpKTsKICAgICBpZiAoIWlucHV0LT5jYW5IYXZlU2Vs
ZWN0aW9uKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDk4M2EwYTY1YWUxZDYyY2JjYTdjNGM4OGMz
ODY4ZWNlMzdkMDI2MGUuLmMwZjdhYTBiM2E1ZWM3MzViYWNmMDZlODRjMjNlMzk4YTEwMzIwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE1MzgsNyArMTUzOCw3IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxl
LCBSZW5kZXJTdHlsZSogcGFyZW50U3R5CiAgICAgaWYgKGUgJiYgZS0+aXNGb3JtQ29udHJvbEVs
ZW1lbnQoKSAmJiBzdHlsZS0+Zm9udFNpemUoKSA+PSAxMSkgewogICAgICAgICAvLyBEb24ndCBh
cHBseSBpbnRyaW5zaWMgbWFyZ2lucyB0byBpbWFnZSBidXR0b25zLiBUaGUgZGVzaWduZXIga25v
d3MgaG93IGJpZyB0aGUgaW1hZ2VzIGFyZSwKICAgICAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmVh
dCBhbGwgaW1hZ2UgYnV0dG9ucyBhcyB0aG91Z2ggdGhleSB3ZXJlIGV4cGxpY2l0bHkgc2l6ZWQu
Ci0gICAgICAgIGlmICghZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgfHwgIXN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlKS0+aXNJbWFnZUJ1dHRvbigpKQorICAgICAgICBpZiAoIWlzSFRN
TElucHV0RWxlbWVudChlKSB8fCAhdG9IVE1MSW5wdXRFbGVtZW50KGUpLT5pc0ltYWdlQnV0dG9u
KCkpCiAgICAgICAgICAgICBhZGRJbnRyaW5zaWNNYXJnaW5zKHN0eWxlKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWM2YzY3MThmMTcy
NjMxMmNkYjdkYmY0ODlhM2Q2ZjU4YTRjZTM4Ni4uMWI4Y2NkMGE3NmUxY2Q4NTc5OWUxZTE0OTk4
NmVmZTAyZTc1NzMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTE2OTcsNyArMTY5Nyw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVk
UmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvCiBib29sIEZy
YW1lU2VsZWN0aW9uOjppc0luUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiB7CiAgICAgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gZW5jbG9zaW5nVGV4dEZvcm1Db250cm9s
KHN0YXJ0KCkpOwotICAgIHJldHVybiB0ZXh0Q29udHJvbCAmJiB0ZXh0Q29udHJvbC0+aGFzVGFn
TmFtZShpbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHRleHRDb250
cm9sKS0+aXNQYXNzd29yZEZpZWxkKCk7CisgICAgcmV0dXJuIHRleHRDb250cm9sICYmIGlzSFRN
TElucHV0RWxlbWVudCh0ZXh0Q29udHJvbCkgJiYgdG9IVE1MSW5wdXRFbGVtZW50KHRleHRDb250
cm9sKS0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OmZvY3Vz
ZWRPckFjdGl2ZVN0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGNhYzRmMGRmMmY1YmYyYTMyNzVhZjE0
MTI4ZDRkNzkwZTU1ZmIwNTcuLjVmNmU0MmRlYjY2OWFmNjVkZGMyYzg1MTE2OWJiMjFhMjBmODUx
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCkBAIC0xMjQ5LDcgKzEyNDksNyBAQCBib29sIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpzaG91bGRQZXJmb3JtU21hcnRSZXBsYWNlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgRWxlbWVudCogdGV4dENvbnRyb2wgPSBlbmNsb3NpbmdUZXh0Rm9ybUNvbnRy
b2wocG9zaXRpb25BdFN0YXJ0T2ZJbnNlcnRlZENvbnRlbnQoKS5kZWVwRXF1aXZhbGVudCgpKTsK
LSAgICBpZiAodGV4dENvbnRyb2wgJiYgdGV4dENvbnRyb2wtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
ICYmIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPih0ZXh0Q29udHJvbCktPmlzUGFzc3dv
cmRGaWVsZCgpKQorICAgIGlmICh0ZXh0Q29udHJvbCAmJiBpc0hUTUxJbnB1dEVsZW1lbnQodGV4
dENvbnRyb2wpICYmIHRvSFRNTElucHV0RWxlbWVudCh0ZXh0Q29udHJvbCktPmlzUGFzc3dvcmRG
aWVsZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7IC8vIERpc2FibGUgc21hcnQgcmVwbGFjZSBm
b3IgcGFzc3dvcmQgZmllbGRzLgogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA5ZmFjNTNlZWQwODU0NmQ5
YmU5MmM2NjNiYWRiNmNjMjhhZThkN2QzLi5lMTcyYjUxYWQ5NmQ1ZTRjNmQ4ZmY2ZTlhZWUxMjc2
YWU1OGQzNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTE4OCw4ICsxODgsOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRBdXRvZm9jdXMo
SFRNTEZvcm1Db250cm9sRWxlbWVudCogZWxlbWVudCkKIAogICAgIC8vIEZJWE1FOiBTaG91bGQg
dGhpcyBzZXQgb2YgaGFzVGFnTmFtZSBjaGVja3MgYmUgcmVwbGFjZWQgYnkgYQogICAgIC8vIHZp
cnR1YWwgbWVtYmVyIGZ1bmN0aW9uPwotICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0
VGFnKSkKLSAgICAgICAgcmV0dXJuICFzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxl
bWVudCktPmlzSW5wdXRUeXBlSGlkZGVuKCk7CisgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChl
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuICF0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCktPmlz
SW5wdXRUeXBlSGlkZGVuKCk7CiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoc2VsZWN0VGFn
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoa2V5
Z2VuVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCBhMTZk
ZTlkNzNlYmJiZDBlM2YxMWNjNjg2NWQ5YjU5NzcxZWI2MjU5Li4xZjJmN2MyNGEyMzYzYWJkNGE2
NThiOTdmMzZkYmQxOTQ5NGI1NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwCkBAIC0zMDAsMTAgKzMwMCwxMCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6Z2V0VGV4
dEZpZWxkVmFsdWVzKFN0cmluZ1BhaXJWZWN0b3ImIGZpZWxkTmFtZXNBbmRWYWx1ZXMpCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXNzb2NpYXRlZEVsZW1lbnRzLnNpemUoKTsgKytp
KSB7CiAgICAgICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogY29udHJvbCA9IG1fYXNzb2NpYXRl
ZEVsZW1lbnRzW2ldOwogICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1l
bnQoY29udHJvbCk7Ci0gICAgICAgIGlmICghZWxlbWVudC0+aGFzTG9jYWxOYW1lKGlucHV0VGFn
KSkKKyAgICAgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihjb250cm9sKTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7CiAgICAgICAgIGlmICghaW5w
dXQtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA0ODc3YmMyOWI1MmYzOThhNmQ0MjU1ZWQ1NmYy
ZTZiZjIyYzI5YWFlLi41NjcyODQ2NmZkNjdiMWJlMWVmOTQxN2RiNjQzNDAzN2FjODBhZDE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtNDM5LDUgKzQzOSwxNiBA
QCBwcml2YXRlOgogI2VuZGlmCiB9OwogCitpbmxpbmUgYm9vbCBpc0hUTUxJbnB1dEVsZW1lbnQo
Tm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Omlu
cHV0VGFnKTsKK30KKworaW5saW5lIEhUTUxJbnB1dEVsZW1lbnQqIHRvSFRNTElucHV0RWxlbWVu
dChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFu
b2RlIHx8IGlzSFRNTElucHV0RWxlbWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKK30KKwogfSAvL25hbWVzcGFjZQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCmluZGV4IDBlNzVkNzUxNTQyYzJlNTNl
MzU3MTM1ZDY1OTRiZTYwZWNjMmVkOGUuLjZlZjJlMTllNDcxNWNhNGMxZjEwZTFlNjcwMTRlZThk
NmUzMWNmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCkBAIC05MSw5
ICs5MSw5IEBAIHZvaWQgUmFkaW9JbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKICAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KG5vZGUpKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8vIExvb2sgZm9yIG1vcmUgcmFkaW8gYnV0dG9ucy4K
LSAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICAgICAgaWYgKCFp
c0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
UmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKTsKICAgICAgICAgaWYgKGlucHV0
RWxlbWVudC0+Zm9ybSgpICE9IGVsZW1lbnQoKS0+Zm9ybSgpKQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUmFkaW9CdXR0b24oKSAmJiBpbnB1dEVsZW1l
bnQtPm5hbWUoKSA9PSBlbGVtZW50KCktPm5hbWUoKSAmJiBpbnB1dEVsZW1lbnQtPmlzRm9jdXNh
YmxlKCkpIHsKQEAgLTEyOSw4ICsxMjksOCBAQCBib29sIFJhZGlvSW5wdXRUeXBlOjppc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAogICAgIC8vIE5ldmVyIGFs
bG93IGtleWJvYXJkIHRhYmJpbmcgdG8gbGVhdmUgeW91IGluIHRoZSBzYW1lIHJhZGlvIGdyb3Vw
LiAgQWx3YXlzCiAgICAgLy8gc2tpcCBhbnkgb3RoZXIgZWxlbWVudHMgaW4gdGhlIGdyb3VwLgog
ICAgIEVsZW1lbnQqIGN1cnJlbnRGb2N1c2VkTm9kZSA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+
Zm9jdXNlZEVsZW1lbnQoKTsKLSAgICBpZiAoY3VycmVudEZvY3VzZWROb2RlICYmIGN1cnJlbnRG
b2N1c2VkTm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0RWxl
bWVudCogZm9jdXNlZElucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGN1cnJl
bnRGb2N1c2VkTm9kZSk7CisgICAgaWYgKGN1cnJlbnRGb2N1c2VkTm9kZSAmJiBpc0hUTUxJbnB1
dEVsZW1lbnQoY3VycmVudEZvY3VzZWROb2RlKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50
KiBmb2N1c2VkSW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoY3VycmVudEZvY3VzZWROb2RlKTsK
ICAgICAgICAgaWYgKGZvY3VzZWRJbnB1dC0+aXNSYWRpb0J1dHRvbigpICYmIGZvY3VzZWRJbnB1
dC0+Zm9ybSgpID09IGVsZW1lbnQoKS0+Zm9ybSgpICYmIGZvY3VzZWRJbnB1dC0+bmFtZSgpID09
IGVsZW1lbnQoKS0+bmFtZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRU
eXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
VHlwZXMuY3BwCmluZGV4IGI1ZDQ2ODI4NjlhMjk3YmFjMTA5MGQ0Mjc0OWE0NTBlODY4MTUyNzku
LmQxMTRiMjU3YmZhMWI2YWU3ZjU2NzczNGFjYzEzNWFkNWI5MDUwOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNw
cApAQCAtNjksNyArNjksNyBAQCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBtZWRpYUNvbnRyb2xF
bGVtZW50VHlwZShOb2RlKiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKG5vZGUtPmlzTWVkaWFDb250cm9sRWxlbWVudCgpKTsKICAgICBIVE1MRWxlbWVudCog
ZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQobm9kZSk7Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05h
bWUoaW5wdXRUYWcpKQorICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpCiAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQqPihlbGVtZW50
KS0+ZGlzcGxheVR5cGUoKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWVkaWFDb250cm9sRGl2
RWxlbWVudCo+KGVsZW1lbnQpLT5kaXNwbGF5VHlwZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXgg
YzJkZDNiNzU0ZTc3NWYwMDU0YzdjN2Q4NmNlMDA4ZmE2YzIzMjdiMy4uNmNlM2YwOWE5M2EzNDQ5
NTY5MmQzYzg3NGUwZmRkNDgxOWE3YzA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xNTUsNyArMTU1
LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB2b2lkIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIE9uIG1v
dXNlZG93biwgYnJpbmcgdXAgYSBtZW51LCBpZiBuZWVkZWQKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KHNoYWRvd0hv
c3QoKSk7CiAgICAgaWYgKGlucHV0ICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlucHV0
LT5mb2N1cygpOwogICAgICAgICBpbnB1dC0+c2VsZWN0KCk7CkBAIC0yMDgsNyArMjA4LDcgQEAg
dm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRldGFjaChjb25zdCBBdHRhY2hD
b250ZXh0JiBjb250ZXh0KQogdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBlbGVtZW50
IGlzIHZpc2libGUsIG9uIG1vdXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rp
b24KLSAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSkpOworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50
PiBpbnB1dCh0b0hUTUxJbnB1dEVsZW1lbnQoc2hhZG93SG9zdCgpKSk7CiAgICAgaWYgKCFpbnB1
dCB8fCBpbnB1dC0+aXNEaXNhYmxlZE9yUmVhZE9ubHkoKSkgewogICAgICAgICBpZiAoIWV2ZW50
LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAog
Ym9vbCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkKIHsKLSAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOworICAgIGNvbnN0IEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KHNoYWRvd0hvc3QoKSk7CiAg
ICAgaWYgKGlucHV0ICYmICFpbnB1dC0+aXNEaXNhYmxlZE9yUmVhZE9ubHkoKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAvLyBU
aGUgY2FsbCB0byBmb2N1cygpIGJlbG93IGRpc3BhdGNoZXMgYSBmb2N1cyBldmVudCwgYW5kIGFu
IGV2ZW50IGhhbmRsZXIgaW4gdGhlIHBhZ2UgbWlnaHQKICAgICAvLyByZW1vdmUgdGhlIGlucHV0
IGVsZW1lbnQgZnJvbSBET00uIFRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIHZhbGlkIHVudGlsIHdl
IGZpbmlzaCBvdXIgd29yawogICAgIC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3JhcnkgcmVmZXJl
bmNlLgotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1l
bnQ+IGlucHV0KHRvSFRNTElucHV0RWxlbWVudChzaGFkb3dIb3N0KCkpKTsKIAogICAgIGlmICgh
aW5wdXQgfHwgaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpIHsKICAgICAgICAgaWYgKCFl
dmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
IAogYm9vbCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKQogewotICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSk7CisgICAgY29uc3QgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoc2hhZG93SG9zdCgpKTsK
ICAgICBpZiAoaW5wdXQgJiYgIWlucHV0LT5pc0Rpc2FibGVkT3JSZWFkT25seSgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIApAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVj
aEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0aW9uUmVzdWx0KGludCwgY29uc3QgU3BlZWNoSW5w
dXRSCiAgICAgLy8gVGhlIGNhbGwgdG8gc2V0VmFsdWUoKSBiZWxvdyBkaXNwYXRjaGVzIGFuIGV2
ZW50LCBhbmQgYW4gZXZlbnQgaGFuZGxlciBpbiB0aGUgcGFnZSBtaWdodAogICAgIC8vIHJlbW92
ZSB0aGUgaW5wdXQgZWxlbWVudCBmcm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFs
aWQgdW50aWwgd2UgZmluaXNoIG91ciB3b3JrCiAgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBv
cmFyeSByZWZlcmVuY2UuCi0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpKTsKKyAgICBSZWZQdHI8SFRN
TElucHV0RWxlbWVudD4gaW5wdXQodG9IVE1MSW5wdXRFbGVtZW50KHNoYWRvd0hvc3QoKSkpOwog
ICAgIGlmICghaW5wdXQgfHwgaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bkVsZW1lbnQ6OnN0YXJ0U3BlZWNoSW5wdXQoKQogICAgIGlmIChtX3N0YXRlICE9IElkbGUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOworICAgIFJlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChzaGFkb3dIb3N0KCkp
OwogICAgIEF0b21pY1N0cmluZyBsYW5ndWFnZSA9IGlucHV0LT5jb21wdXRlSW5oZXJpdGVkTGFu
Z3VhZ2UoKTsKICAgICBTdHJpbmcgZ3JhbW1hciA9IGlucHV0LT5nZXRBdHRyaWJ1dGUod2Via2l0
Z3JhbW1hckF0dHIpOwogICAgIEludFJlY3QgcmVjdCA9IGRvY3VtZW50KCktPnZpZXcoKS0+Y29u
dGVudHNUb1Jvb3RWaWV3KHBpeGVsU25hcHBlZEJvdW5kaW5nQm94KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNzk3MjFiYWMwODc5NmM0MWYzODM3Nzc1
OTEwNWI0ZDkyZTkxY2JiZC4uOWQ1NTI0N2I1NzMxYTViODg3ZGJjMjE2YmUzZjIzNTdmNTBlNjI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0xODksOCAr
MTg5LDggQEAgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1Ym1pc3Npb246OmNyZWF0
ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEEKICAgICAgICAgSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSB0b0hUTUxFbGVtZW50KGNvbnRyb2wpOwogICAgICAgICBpZiAoIWVsZW1lbnQtPmlz
RGlzYWJsZWRGb3JtQ29udHJvbCgpKQogICAgICAgICAgICAgY29udHJvbC0+YXBwZW5kRm9ybURh
dGEoKmRvbUZvcm1EYXRhLCBpc011bHRpUGFydEZvcm0pOwotICAgICAgICBpZiAoZWxlbWVudC0+
aGFzTG9jYWxOYW1lKGlucHV0VGFnKSkgewotICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oY29udHJvbCk7CisgICAgICAg
IGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOwogICAgICAgICAg
ICAgaWYgKGlucHV0LT5pc1RleHRGaWVsZCgpKSB7CiAgICAgICAgICAgICAgICAgZm9ybVZhbHVl
cy5hcHBlbmQocGFpcjxTdHJpbmcsIFN0cmluZz4oaW5wdXQtPm5hbWUoKS5zdHJpbmcoKSwgaW5w
dXQtPnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICBpbnB1dC0+YWRkU2VhcmNoUmVzdWx0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggZTVjODMzZWVlZDQxYjZhYjk5YzI3ZGY3NmRmMGVk
NDI4ZjQyZTJkZi4uMGRlYWVmZDQ5MzhiNDliY2M1YzI0N2EyNDNjMjhhYzRjYmViMWE1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDA3LDggKzQwNyw4IEBAIHZvaWQgQ2hyb21lOjpzZXRU
b29sVGlwKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodG9vbFRpcC5pc0Vt
cHR5KCkgJiYgbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93c1VSTHNJblRvb2xUaXBzKCkpIHsKICAg
ICAgICAgaWYgKE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpIHsKICAg
ICAgICAgICAgIC8vIEdldCB0b29sdGlwIHJlcHJlc2VudGluZyBmb3JtIGFjdGlvbiwgaWYgcmVs
ZXZhbnQKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChu
b2RlKSkgeworICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1M
SW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgICAgIGlmIChpbnB1dC0+aXNTdWJtaXRC
dXR0b24oKSkKICAgICAgICAgICAgICAgICAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9
IGlucHV0LT5mb3JtKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xUaXAgPSBmb3Jt
LT5hY3Rpb24oKTsKQEAgLTQzOSw4ICs0MzksOCBAQCB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChj
b25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgLy8gTGFzdGx5LCBmb3IgPGlucHV0IHR5
cGU9ImZpbGUiPiB0aGF0IGFsbG93IG11bHRpcGxlIGZpbGVzLCB3ZSdsbCBjb25zaWRlciBhIHRv
b2x0aXAgZm9yIHRoZSBzZWxlY3RlZCBmaWxlbmFtZXMKICAgICBpZiAodG9vbFRpcC5pc0VtcHR5
KCkpIHsKICAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb25TaGFyZWROb2Rl
KCkpIHsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChu
b2RlKSkgeworICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1M
SW5wdXRFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgICAgIHRvb2xUaXAgPSBpbnB1dC0+ZGVm
YXVsdFRvb2xUaXAoKTsKIAogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgb2J0
YWluIHRleHQgZGlyZWN0aW9uIG9mIHRvb2x0aXAgZnJvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDlhNzk3MmVjY2U5OWI3NzhhODA1MGQ2Y2UyNjVmNGM2ODg0MTM2M2Yu
LjljNjA2N2FhNGUxNzU4MGY0MzQxYjFiZjdiMWY1ZTkyYTRiMGZjOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTExOTcsNyArMTE5Nyw3IEBAIEZyYW1lKiBFdmVudEhh
bmRsZXI6OnN1YmZyYW1lRm9yVGFyZ2V0Tm9kZShOb2RlKiBub2RlKQogCiBzdGF0aWMgYm9vbCBp
c1N1Ym1pdEltYWdlKE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aGFz
VGFnTmFtZShpbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUp
LT5pc0ltYWdlQnV0dG9uKCk7CisgICAgcmV0dXJuIG5vZGUgJiYgaXNIVE1MSW5wdXRFbGVtZW50
KG5vZGUpICYmIHRvSFRNTElucHV0RWxlbWVudChub2RlKS0+aXNJbWFnZUJ1dHRvbigpOwogfQog
CiAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUncyBlZGl0YWJsZSBibG9jayBpcyBub3QgY3Vy
cmVudCBmb2N1c2VkIGZvciBlZGl0aW5nCkBAIC0xNjIyLDcgKzE2MjIsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
bW91c2VFdmVudCkKICAgICAgICAgLy8gSWYgYSBtb3VzZSBldmVudCBoYW5kbGVyIGNoYW5nZXMg
dGhlIGlucHV0IGVsZW1lbnQgdHlwZSB0byBvbmUgdGhhdCBoYXMgYSB3aWRnZXQgYXNzb2NpYXRl
ZCwKICAgICAgICAgLy8gd2UnZCBsaWtlIHRvIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVz
c0V2ZW50IHRvIHBhc3MgdGhlIGV2ZW50IHRvIHRoZSB3aWRnZXQgYW5kIHRodXMgdGhlCiAgICAg
ICAgIC8vIGV2ZW50IHRhcmdldCBub2RlIGNhbid0IHN0aWxsIGJlIHRoZSBzaGFkb3cgbm9kZS4K
LSAgICAgICAgaWYgKG1ldi50YXJnZXROb2RlKCktPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93
Um9vdChtZXYudGFyZ2V0Tm9kZSgpKS0+aG9zdCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewor
ICAgICAgICBpZiAobWV2LnRhcmdldE5vZGUoKS0+aXNTaGFkb3dSb290KCkgJiYgaXNIVE1MSW5w
dXRFbGVtZW50KHRvU2hhZG93Um9vdChtZXYudGFyZ2V0Tm9kZSgpKS0+aG9zdCgpKSkgewogICAg
ICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkg
fCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93
Q29udGVudCk7CiAgICAgICAgICAgICBtZXYgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wcmVwYXJl
TW91c2VFdmVudChyZXF1ZXN0LCBkb2N1bWVudFBvaW50LCBtb3VzZUV2ZW50KTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDEwMjNjZmM1YmYw
YzBiZDVlOGI1NDJlNzE0YWI5M2JlMDkyZDY0YmEuLjNhYTljOWI3ZjZjYTkxOTAzYTI4NjlmZjMx
YzBjMWM0ZjNjOWQ2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1M
QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhp
dFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCkBAIC01ODMsNyArNTg0
LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSogb2xkRm9jdXNl
ZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgICAgIGlmIChOb2RlKiBzaGFkb3dBbmNlc3Rvck5vZGUgPSByb290LT5kZXByZWNh
dGVkU2hhZG93QW5jZXN0b3JOb2RlKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXNoYWRvd0Fu
Y2VzdG9yTm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgJiYgIXNoYWRvd0FuY2VzdG9yTm9kZS0+
aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykpCisgICAgICAgICAgICAgICAgaWYgKCFpc0hUTUxJbnB1
dEVsZW1lbnQoc2hhZG93QW5jZXN0b3JOb2RlKSAmJiAhc2hhZG93QW5jZXN0b3JOb2RlLT5oYXNU
YWdOYW1lKHRleHRhcmVhVGFnKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKaW5kZXggZTNhMWZlNTY2NzgwNzE5YmU4Y2E2YWJkYzk0ODhlMjhkMGE2ZTFm
Ny4uYThhYjkxMjVhMDRkYzJkMWI1MDQ4NjgyMGUzMjJiZGM2OGNlMmJhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKQEAgLTE5OCw3ICsxOTksNyBAQCBzdGF0aWMgS1VSTCBnZXRVUkxGb3JJbWFnZU5v
ZGUoTm9kZSogbm9kZSkKIHsKICAgICAvLyBGSVhNRTogTGF0ZXIgdGhpcyBjb2RlIHNob3VsZCBi
ZSBzaGFyZWQgd2l0aCBDaHJvbWl1bSBzb21laG93LiBDaGFuY2VzIGFyZSBhbGwgcGxhdGZvcm1z
IHdhbnQgaXQuCiAgICAgQXRvbWljU3RyaW5nIHVybFN0cmluZzsKLSAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
OmlucHV0VGFnKSkKKyAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykg
fHwgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUpKQogICAgICAgICB1cmxTdHJpbmcgPSB0b0VsZW1l
bnQobm9kZSktPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIpOwogI2lmIEVOQUJMRShT
VkcpCiAgICAgZWxzZSBpZiAobm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VUYWcpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAppbmRleCA5YjBl
MzQzNzRiZWEzYjcxNjdhNmJlMjdlZDg4MmY5Y2U3YWNkY2EwLi5kMWZlOWRiODI0NGU2YWQyZDY0
MmFjMDVmZWU1MTQwYTk1NzE3NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmNwcApAQCAtNzQxLDEwICs3NDEsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZVF0
OjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0ICpvLCBjb25zdCBQYWlu
dEluZm8KICAgICBwLT5wYWludGVyLT5zZXRCcnVzaChzY2FsZUNvbG9yKTsKICAgICBwLT5wYWlu
dGVyLT5kcmF3UmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpOwogCi0gICAgaWYgKCFvLT5u
b2RlKCkgfHwgIW8tPm5vZGUoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFvLT5u
b2RlKCkgfHwgIWlzSFRNTElucHV0RWxlbWVudChvLT5ub2RlKCkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oby0+bm9kZSgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBzbGlkZXIg
PSB0b0hUTUxJbnB1dEVsZW1lbnQoby0+bm9kZSgpKTsKIAogICAgIC8vIFBvc2l0aW9uIHRoZSBp
bm5lciByZWN0YW5nbGUKICAgICBoZWlnaHQgPSBoZWlnaHQgKiBzbGlkZXItPnZhbHVlQXNOdW1i
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1l
UXRNb2JpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdE1v
YmlsZS5jcHAKaW5kZXggOTY2N2JjMzI2YmMyZWQxMmI1NWFmOGQyNGRlNDk5ODNhZWMxNzkyOC4u
YzJkYTU3MjJmODYzYjhkNTA5NTQwNTQzOGZjZmFiMTlmZDc5OWM0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdE1vYmlsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdE1vYmlsZS5jcHAKQEAgLTg2Niw3
ICs4NjYsNyBAQCBib29sIFJlbmRlclRoZW1lUXRNb2JpbGU6OnBhaW50U2xpZGVyVHJhY2soUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBpLAogICAgIGlmICghcC5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgSFRNTElucHV0RWxlbWVudCogc2xpZGVyID0g
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG8tPm5vZGUoKSk7CisgICAgSFRNTElucHV0
RWxlbWVudCogc2xpZGVyID0gdG9IVE1MSW5wdXRFbGVtZW50KG8tPm5vZGUoKSk7CiAKICAgICBj
b25zdCBkb3VibGUgbWluID0gc2xpZGVyLT5taW5pbXVtKCk7CiAgICAgY29uc3QgZG91YmxlIG1h
eCA9IHNsaWRlci0+bWF4aW11bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RS
ZXN1bHQuY3BwCmluZGV4IDNlNDkyNmVmN2JlZDVmZmZhNzkyYTJiMjE5MTk2N2NkNTM3OTM1NGUu
LjI0MTgxMTk2NTI5N2Y3ZWExOWQyNTU4NzFlZDg4N2ViOGJiNTQ2Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTI3Niw4ICsyNzYsOCBAQCBTdHJp
bmcgSGl0VGVzdFJlc3VsdDo6YWx0RGlzcGxheVN0cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVy
biBkaXNwbGF5U3RyaW5nKGltYWdlLT5nZXRBdHRyaWJ1dGUoYWx0QXR0ciksIG1faW5uZXJOb25T
aGFyZWROb2RlLmdldCgpKTsKICAgICB9CiAgICAgCi0gICAgaWYgKG1faW5uZXJOb25TaGFyZWRO
b2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVkTm9k
ZS5nZXQoKSk7CisgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChtX2lubmVyTm9uU2hhcmVkTm9k
ZS5nZXQoKSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1
dEVsZW1lbnQobV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgICAgICByZXR1cm4gZGlz
cGxheVN0cmluZyhpbnB1dC0+YWx0KCksIG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKICAg
ICB9CiAKQEAgLTMxNyw4ICszMTcsOCBAQCBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1h
Z2VVUkwoKSBjb25zdAogICAgIEF0b21pY1N0cmluZyB1cmxTdHJpbmc7CiAgICAgaWYgKG1faW5u
ZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKGVtYmVkVGFnKQogICAgICAgICB8fCBtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShpbWdUYWcpCi0gICAgICAgIHx8IG1faW5uZXJOb25T
aGFyZWROb2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKQotICAgICAgICB8fCBtX2lubmVyTm9uU2hh
cmVkTm9kZS0+aGFzVGFnTmFtZShvYmplY3RUYWcpICAgIAorICAgICAgICB8fCBpc0hUTUxJbnB1
dEVsZW1lbnQobV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpCisgICAgICAgIHx8IG1faW5uZXJO
b25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKG9iamVjdFRhZykKICNpZiBFTkFCTEUoU1ZHKQogICAg
ICAgICB8fCBtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VU
YWcpCiAjZW5kaWYKQEAgLTU3MSw4ICs1NzEsOCBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmlzQ29u
dGVudEVkaXRhYmxlKCkgY29uc3QKICAgICBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1Rh
Z05hbWUodGV4dGFyZWFUYWcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX2lu
bmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCi0gICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkp
LT5pc1RleHRGaWVsZCgpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQobV9pbm5lck5vblNo
YXJlZE5vZGUuZ2V0KCkpKQorICAgICAgICByZXR1cm4gdG9IVE1MSW5wdXRFbGVtZW50KG1faW5u
ZXJOb25TaGFyZWROb2RlLmdldCgpKS0+aXNUZXh0RmllbGQoKTsKIAogICAgIHJldHVybiBtX2lu
bmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBmNzQ0ODBjYmJhYzIxYWRhMTA4MTBjZDVl
YWEwMDFjYmNhOGZhMDBiLi5kMWU4OWVkNGY2ZWZhN2UxZDViOWVhNzkxZDNlMzI4NTAyOTgzMTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0TG9jYXRpb24u
aCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCkBAIC02NDkwLDcgKzY0OTEsNyBAQCBib29s
IFJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0eSgpIGNvbnN0CiAgICAgaWYgKG5vZGUoKS0+aXNS
b290RWRpdGFibGVFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAotICAgIGlm
IChub2RlKCktPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChub2RlKCkpLT5ob3N0KCkt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmIChub2RlKCktPmlzU2hhZG93Um9vdCgpICYm
IGlzSFRNTElucHV0RWxlbWVudCh0b1NoYWRvd1Jvb3Qobm9kZSgpKS0+aG9zdCgpKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA4NTg4NzkyNDg0NjdmMzRkMjRlNmI5MTI2ZTc3M2Ri
M2YzYmU4ZjZkLi41N2NlMjRmN2FjNTBkMTgwN2Y2YTg2NjE2MTcyN2MzMzQ2MGEwMzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKQEAgLTIzMDIsNyArMjMwMyw3IEBAIGJvb2wgUmVuZGVyQm94OjpzaXplc0xv
Z2ljYWxXaWR0aFRvRml0Q29udGVudChTaXplVHlwZSB3aWR0aFR5cGUpIGNvbnN0CiAgICAgLy8g
c3RyZXRjaGluZyBjb2x1bW4gZmxleGJveC4KICAgICAvLyBGSVhNRTogVGhpbmsgYWJvdXQgYmxv
Y2stZmxvdyBoZXJlLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjQ3MwotICAgIGlmIChsb2dpY2FsV2lkdGgudHlwZSgpID09IEF1dG8gJiYgIWlzU3Ry
ZXRjaGluZ0NvbHVtbkZsZXhJdGVtKHRoaXMpICYmIG5vZGUoKSAmJiAobm9kZSgpLT5oYXNUYWdO
YW1lKGlucHV0VGFnKSB8fCBub2RlKCktPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSB8fCBub2RlKCkt
Pmhhc1RhZ05hbWUoYnV0dG9uVGFnKSB8fCBub2RlKCktPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcp
IHx8IG5vZGUoKS0+aGFzVGFnTmFtZShsZWdlbmRUYWcpKSkKKyAgICBpZiAobG9naWNhbFdpZHRo
LnR5cGUoKSA9PSBBdXRvICYmICFpc1N0cmV0Y2hpbmdDb2x1bW5GbGV4SXRlbSh0aGlzKSAmJiBu
b2RlKCkgJiYgKGlzSFRNTElucHV0RWxlbWVudChub2RlKCkpIHx8IG5vZGUoKS0+aGFzVGFnTmFt
ZShzZWxlY3RUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZShidXR0b25UYWcpIHx8IG5vZGUoKS0+
aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKGxlZ2VuZFRhZykp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpICE9IGNvbnRhaW5pbmdCbG9jaygpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCBmZDY5MTFmNDk3MjNk
MWNiMWIwY2Y1NzBjZDk2YjA3ZGNmOTcxNmRkLi40ZjY1NWZiNDNkNDI1MDQwNGQ0NjEzNTc1Nzhl
OTFmZDNmZDY5NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNw
cApAQCAtMTIyLDggKzEyMiw4IEBAIHZvaWQgUmVuZGVyQnV0dG9uOjpzZXR1cElubmVyU3R5bGUo
UmVuZGVyU3R5bGUqIGlubmVyU3R5bGUpCiB2b2lkIFJlbmRlckJ1dHRvbjo6dXBkYXRlRnJvbUVs
ZW1lbnQoKQogewogICAgIC8vIElmIHdlJ3JlIGFuIGlucHV0IGVsZW1lbnQsIHdlIG1heSBuZWVk
IHRvIGNoYW5nZSBvdXIgYnV0dG9uIHRleHQuCi0gICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShp
bnB1dFRhZykpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKKyAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50
KG5vZGUoKSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1
dEVsZW1lbnQobm9kZSgpKTsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gaW5wdXQtPnZhbHVlV2l0
aERlZmF1bHQoKTsKICAgICAgICAgc2V0VGV4dCh2YWx1ZSk7CiAgICAgfQpAQCAtMTU3LDcgKzE1
Nyw3IEBAIGJvb2wgUmVuZGVyQnV0dG9uOjpjYW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4oKSBjb25z
dAogICAgIC8vIElucHV0IGVsZW1lbnRzIGNhbid0IGhhdmUgZ2VuZXJhdGVkIGNoaWxkcmVuLCBi
dXQgYnV0dG9uIGVsZW1lbnRzIGNhbi4gV2UnbGwKICAgICAvLyB3cml0ZSB0aGUgY29kZSBhc3N1
bWluZyBhbnkgb3RoZXIgYnV0dG9uIHR5cGVzIHRoYXQgbWlnaHQgZW1lcmdlIGluIHRoZSBmdXR1
cmUKICAgICAvLyBjYW4gYWxzbyBoYXZlIGNoaWxkcmVuLgotICAgIHJldHVybiAhbm9kZSgpLT5o
YXNUYWdOYW1lKGlucHV0VGFnKTsKKyAgICByZXR1cm4gIWlzSFRNTElucHV0RWxlbWVudChub2Rl
KCkpOwogfQogCiBMYXlvdXRSZWN0IFJlbmRlckJ1dHRvbjo6Y29udHJvbENsaXBSZWN0KGNvbnN0
IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCmluZGV4IDBkMTc2NmE0ZWNkZTMx
NjY4YmY0YmJlZWExZmUyNDRkOTU0MjZkZTAuLjJhZTMzMmYzYzZlMjNiNGI4ZjNjZTI1MWIwMDlj
MGFiNjdhNzVhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJE
ZXRhaWxzTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0
YWlsc01hcmtlci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAKQEAg
LTE0NCw3ICsxNDUsNyBAQCBib29sIFJlbmRlckRldGFpbHNNYXJrZXI6OmlzT3BlbigpIGNvbnN0
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHJlbmRlcmVyLT5ub2RlKCktPmhh
c1RhZ05hbWUoZGV0YWlsc1RhZykpCiAgICAgICAgICAgICByZXR1cm4gIXRvRWxlbWVudChyZW5k
ZXJlci0+bm9kZSgpKS0+Z2V0QXR0cmlidXRlKG9wZW5BdHRyKS5pc051bGwoKTsKLSAgICAgICAg
aWYgKHJlbmRlcmVyLT5ub2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgICAgICBpZiAo
aXNIVE1MSW5wdXRFbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCAyZTE0NDE3YmQ2OTAwNGY2NTEwY2Y2NGY2ODBh
MWYwOTU0YmVlMWZmLi42MTEzY2VmMGM2ZTQ2NTg1YzE3ZWNkY2QxM2IxMDU1ZmEwODk0ZmJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
Y2FuQmVSZXBsYWNlZFdpdGhJbmxpbmVSdW5JbigpIGNvbnN0CiAKIHZvaWQgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUoKSk7CiAgICAg
QVNTRVJUKGlucHV0LT5pc0ZpbGVVcGxvYWQoKSk7CiAKICAgICBpZiAoSFRNTElucHV0RWxlbWVu
dCogYnV0dG9uID0gdXBsb2FkQnV0dG9uKCkpIHsKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIGlu
dCBub2RlV2lkdGgoTm9kZSogbm9kZSkKIAogaW50IFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpt
YXhGaWxlbmFtZVdpZHRoKCkgY29uc3QKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUoKSk7CiAgICAgcmV0dXJuIG1h
eCgwLCBjb250ZW50Qm94UmVjdCgpLnBpeGVsU25hcHBlZFdpZHRoKCkgLSBub2RlV2lkdGgodXBs
b2FkQnV0dG9uKCkpIC0gYWZ0ZXJCdXR0b25TcGFjaW5nCiAgICAgICAgIC0gKGlucHV0LT5pY29u
KCkgPyBpY29uV2lkdGggKyBpY29uRmlsZW5hbWVTcGFjaW5nIDogMCkpOwogfQpAQCAtMTI3LDcg
KzEyNyw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2luCiAgICAgICAgIGlmICghYnV0dG9uKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0g
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CisgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUoKSk7CiAgICAgICAgIExh
eW91dFVuaXQgYnV0dG9uV2lkdGggPSBub2RlV2lkdGgoYnV0dG9uKTsKICAgICAgICAgTGF5b3V0
VW5pdCBidXR0b25BbmRJY29uV2lkdGggPSBidXR0b25XaWR0aCArIGFmdGVyQnV0dG9uU3BhY2lu
ZwogICAgICAgICAgICAgKyAoaW5wdXQtPmljb24oKSA/IGljb25XaWR0aCArIGljb25GaWxlbmFt
ZVNwYWNpbmcgOiAwKTsKQEAgLTIyNiwxMiArMjI2LDEyIEBAIFZpc2libGVQb3NpdGlvbiBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYp
CiAKIEhUTUxJbnB1dEVsZW1lbnQqIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0
b24oKSBjb25zdAogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSgpKTsKIAogICAgIEFTU0VSVChpbnB1dC0+c2hhZG93
KCkpOwogCiAgICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3coKS0+c2hhZG93Um9v
dCgpLT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+
aXNIVE1MRWxlbWVudCgpICYmIGJ1dHRvbk5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGJ1dHRvbk5vZGUpIDogMDsKKyAgICByZXR1cm4g
YnV0dG9uTm9kZSAmJiBidXR0b25Ob2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgaXNIVE1MSW5wdXRF
bGVtZW50KGJ1dHRvbk5vZGUpID8gdG9IVE1MSW5wdXRFbGVtZW50KGJ1dHRvbk5vZGUpIDogMDsK
IH0KIAogU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpidXR0b25WYWx1ZSgpCkBAIC0y
NDQsNyArMjQ0LDcgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpidXR0b25WYWx1
ZSgpCiAKIFN0cmluZyBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6ZmlsZVRleHRWYWx1ZSgpIGNv
bnN0CiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5w
dXRFbGVtZW50Kj4obm9kZSgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRN
TElucHV0RWxlbWVudChub2RlKCkpOwogICAgIEFTU0VSVChpbnB1dC0+ZmlsZXMoKSk7CiAgICAg
cmV0dXJuIHRoZW1lKCktPmZpbGVMaXN0TmFtZUZvcldpZHRoKGlucHV0LT5maWxlcygpLCBzdHls
ZSgpLT5mb250KCksIG1heEZpbGVuYW1lV2lkdGgoKSwgaW5wdXQtPm11bHRpcGxlKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYTc1ZTVkM2ViNjUw
YWQwMjdjMDQ2MGM4ZGJhYjg1NzczY2I5MjM3My4uY2UxOGU3OGMyNzg3ZDMxYzAxYmJhOGU0NGE1
YWU1MTVkYzM1NGJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CkBAIC01NTcsOCArNTU3LDggQEAgdm9pZCBSZW5kZXJJbWFnZTo6dXBkYXRlQWx0VGV4dCgpCiAg
ICAgaWYgKCFub2RlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChub2RlKCktPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpKQotICAgICAgICBtX2FsdFRleHQgPSBzdGF0aWNfY2FzdDxIVE1MSW5w
dXRFbGVtZW50Kj4obm9kZSgpKS0+YWx0VGV4dCgpOworICAgIGlmIChpc0hUTUxJbnB1dEVsZW1l
bnQobm9kZSgpKSkKKyAgICAgICAgbV9hbHRUZXh0ID0gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUo
KSktPmFsdFRleHQoKTsKICAgICBlbHNlIGlmIChub2RlKCktPmhhc1RhZ05hbWUoaW1nVGFnKSkK
ICAgICAgICAgbV9hbHRUZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUo
KSktPmFsdFRleHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAx
MDJhZjc5NzhjMmFiMDJmNTdiMzBmZTJhODZiYTJkNGJmYzA3N2M2Li4wYWRlNDY2ZTNjOWFiNGJh
M2I0NzhlNDlmN2U5MWQ1OGQ1MGIxMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC03MDMsNyArNzAzLDcgQEAgU3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBsYWNlaG9s
ZGVyKEVsZW1lbnQqIGVsZW1lbnQpCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiB2b2lk
IEludGVybmFsczo6c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIGNvbG9yVmFsdWUpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGVsZW1lbnQt
PnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAwM2VlN2U0YjM0OWY5MmNiNzcyZmU0ZWYw
ZDdjOWUxMmYzOWM3ZTA2Li44NDRmZjI3NDY0NDcyNzA4OTU3ZjA3OTQxMDZmM2I0ZDU3Nzg0NDk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTIyMjksNyAr
MjIyOSw3IEBAIFBsYXRmb3JtOjpXZWJDb250ZXh0IFdlYlBhZ2VQcml2YXRlOjp3ZWJDb250ZXh0
KFRhcmdldERldGVjdGlvblN0cmF0ZWd5IHN0cmF0ZWd5CiAgICAgICAgICAgICAgICAgICAgIGNh
blN0YXJ0U2VsZWN0aW9uID0gbm9kZVVuZGVyRmluZ2VyLT5jYW5TdGFydFNlbGVjdGlvbigpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGV4dC5zZXRGbGFnKFBsYXRmb3JtOjpXZWJD
b250ZXh0OjpJc0lucHV0KTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6aW5wdXRUYWcpKQorICAgICAgICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChl
bGVtZW50KSkKICAgICAgICAgICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNv
bnRleHQ6OklzU2luZ2xlTGluZSk7CiAgICAgICAgICAgICBpZiAoRE9NU3VwcG9ydDo6aXNQYXNz
d29yZEVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgICAgICAgICAgY29udGV4dC5zZXRGbGFnKFBs
YXRmb3JtOjpXZWJDb250ZXh0OjpJc1Bhc3N3b3JkKTsKQEAgLTI4MzEsNyArMjgzMSw3IEBAIElu
dFJlY3QgV2ViUGFnZVByaXZhdGU6OmJsb2NrWm9vbVJlY3RGb3JOb2RlKE5vZGUqIG5vZGUpCiAg
ICAgZG91YmxlIGJsb2NrVG9QYWdlUmF0aW8gPSBzdGF0aWNfY2FzdDxkb3VibGU+KHBhZ2VBcmVh
IC0gb3JpZ2luYWxBcmVhKSAvIHBhZ2VBcmVhOwogICAgIGRvdWJsZSBibG9ja0V4cGFuc2lvblJh
dGlvID0gNS4wICogYmxvY2tUb1BhZ2VSYXRpbyAqIGJsb2NrVG9QYWdlUmF0aW87CiAKLSAgICBp
ZiAoIXRub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSAmJiAhdG5vZGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykgJiYgIXRub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6dGV4dGFyZWFUYWcpKSB7CisgICAgaWYgKCF0bm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
OmltZ1RhZykgJiYgIWlzSFRNTElucHV0RWxlbWVudCh0bm9kZSkgJiYgIXRub2RlLT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpKSB7CiAgICAgICAgIHdoaWxlICgodG5vZGUgPSB0
bm9kZS0+cGFyZW50Tm9kZSgpKSkgewogICAgICAgICAgICAgQVNTRVJUKHRub2RlKTsKICAgICAg
ICAgICAgIEludFJlY3QgdFJlY3QgPSByZWN0Rm9yTm9kZSh0bm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVudGlhbFRyYW5zZm9y
bURhdGEuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NyZWRl
bnRpYWxUcmFuc2Zvcm1EYXRhLmNwcAppbmRleCBmYzVmM2ViMjAyNzg2OTgyM2Q3NmYyMDdiMjU4
Nzg0ZjViMDIzOTQ5Li44ZTNkZjQwYmJjNWJhZTYwMzljOTZmY2Q4Y2YwMjQyNWYwNDc1OGFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ3JlZGVu
dGlhbFRyYW5zZm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DcmVkZW50aWFsVHJhbnNmb3JtRGF0YS5jcHAKQEAgLTE0NCw3ICsxNDQsNyBA
QCBib29sIENyZWRlbnRpYWxUcmFuc2Zvcm1EYXRhOjpmaW5kUGFzc3dvcmRGb3JtRmllbGRzKGNv
bnN0IEhUTUxGb3JtRWxlbWVudCogZm9ybQogICAgICAgICBpZiAoIWZvcm1FbGVtZW50c1tpXS0+
aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBmb3JtRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQqPihmb3JtRWxlbWVudHNbaV0pOwotICAgICAgICBpZiAoIWZvcm1FbGVt
ZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKQorICAgICAgICBpZiAoIWlzSFRN
TElucHV0RWxlbWVudChmb3JtRWxlbWVudCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBmb3JtRWxlbWVudC0+dG9JbnB1
dEVsZW1lbnQoKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIENyZWRlbnRpYWxUcmFuc2Zvcm1E
YXRhOjpmaW5kUGFzc3dvcmRGb3JtRmllbGRzKGNvbnN0IEhUTUxGb3JtRWxlbWVudCogZm9ybQog
ICAgICAgICAgICAgaWYgKCFmb3JtRWxlbWVudHNbaV0tPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50KiBmb3JtRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
Pihmb3JtRWxlbWVudHNbaV0pOwotICAgICAgICAgICAgaWYgKCFmb3JtRWxlbWVudC0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkKKyAgICAgICAgICAgIGlmICghaXNIVE1MSW5wdXRF
bGVtZW50KGZvcm1FbGVtZW50KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gZm9ybUVsZW1lbnQtPnRvSW5w
dXRFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZmZj
ZjA5NzI3NGQ4MjE1ODhiODgyZjE5NjY1NGY4NWM0ZWZhZjNlNi4uOTQxNTk3ZThiYzEwNDkwMzlk
N2ExOTlmMDA2MTdmNWNkMjZmMDEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5
LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hv
dWxkU3BlbGxDaGVja0ZvY3VzZWRGaWVsZCgpCiAgICAgLy8gSWYgdGhlIGZpZWxkIGRvZXMgbm90
IHN1cHBvcnQgYXV0b2NvbXBsZXRlLCBkbyBub3QgZG8gc3BlbGxjaGVja2luZy4KICAgICBpZiAo
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CiAgICAgICAgIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQg
PSB0b0VsZW1lbnQobm9kZSk7Ci0gICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6aW5wdXRUYWcpICYmICFET01TdXBwb3J0OjplbGVtZW50U3VwcG9ydHNBdXRvY29tcGxl
dGUoZWxlbWVudCkpCisgICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkgJiYg
IURPTVN1cHBvcnQ6OmVsZW1lbnRTdXBwb3J0c0F1dG9jb21wbGV0ZShlbGVtZW50KSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKaW5kZXggNDA0MjFjMzI5ZmFk
NDhhMGM2OTA4ZmJiZjJlZjU5ZTYxNzBmMGExMS4uNzUyYWRmZmM1MjA1MjhhNzIzOGI3ZWU1N2U5
YTJkOWFjOGVlMDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCBib29sIGlzVGV4
dElucHV0RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogCiBib29sIGlzUGFzc3dvcmRFbGVtZW50
KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKQotICAgICAgICAmJiBzdGF0aWNfY2Fz
dDxjb25zdCBIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCktPmlzUGFzc3dvcmRGaWVsZCgpOwor
ICAgIHJldHVybiBlbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KQorICAgICAg
ICAmJiB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCktPmlzUGFzc3dvcmRGaWVsZCgpOwogfQog
CiBXVEY6OlN0cmluZyBpbnB1dEVsZW1lbnRUZXh0KEVsZW1lbnQqIGVsZW1lbnQpCkBAIC0xMTks
OCArMTE5LDggQEAgV1RGOjpTdHJpbmcgaW5wdXRFbGVtZW50VGV4dChFbGVtZW50KiBlbGVtZW50
KQogICAgICAgICByZXR1cm4gV1RGOjpTdHJpbmcoKTsKIAogICAgIFdURjo6U3RyaW5nIGVsZW1l
bnRUZXh0OwotICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcp
KSB7Ci0gICAgICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRp
Y19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKKyAgICBpZiAoaXNIVE1M
SW5wdXRFbGVtZW50KGVsZW1lbnQpKSB7CisgICAgICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KTsKICAgICAgICAgZWxl
bWVudFRleHQgPSBpbnB1dEVsZW1lbnQtPnZhbHVlKCk7CiAgICAgfSBlbHNlIGlmIChlbGVtZW50
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpKSB7CiAgICAgICAgIGNvbnN0IEhU
TUxUZXh0QXJlYUVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxU
ZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50KTsKQEAgLTE4MCwxMCArMTgwLDEwIEBAIGJvb2wgaXNQ
b3B1cElucHV0RmllbGQoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBpc0RhdGVUaW1l
SW5wdXRGaWVsZChjb25zdCBFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmICghZWxlbWVudC0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxl
bWVudChlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29uc3QgSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTElucHV0RWxl
bWVudCo+KGVsZW1lbnQpOworICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcg
dHlwZXMgaGF2ZSBwb3B1cCdzLgogICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzRGF0ZUZpZWxkKCkK
QEAgLTE5OCwxMCArMTk4LDEwIEBAIGJvb2wgaXNEYXRlVGltZUlucHV0RmllbGQoY29uc3QgRWxl
bWVudCogZWxlbWVudCkKIAogYm9vbCBpc0NvbG9ySW5wdXRGaWVsZChjb25zdCBFbGVtZW50KiBl
bGVtZW50KQogewotICAgIGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0
VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgY29uc3QgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0g
c3RhdGljX2Nhc3Q8Y29uc3QgSFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpOworICAgIGNvbnN0
IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChlbGVt
ZW50KTsKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGlmIChpbnB1dEVsZW1l
bnQtPmlzQ29sb3JDb250cm9sKCkpCkBAIC0zOTQsNyArMzk0LDcgQEAgc3RhdGljIGJvb2wgbWF0
Y2hlc1Jlc2VydmVkU3RyaW5nUHJldmVudGluZ0F1dG9jb21wbGV0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHN0cmkKIC8vIGxvZ2luIGZpZWxkcyBhcyBpbnB1dCB0eXBlPXRleHQgYW5kIGF1dG8gY29y
cmVjdGlvbiBpbnRlcmZlcnMgd2l0aC4KIGJvb2wgZWxlbWVudElkT3JOYW1lSW5kaWNhdGVzTm9B
dXRvY29tcGxldGUoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIWVsZW1lbnQt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVs
ZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEF0b21pY1N0cmlu
ZyBpZEF0dHJpYnV0ZSA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApp
bmRleCBhZTVmZWViMzVkMzRkNjI3OWIzYTA4ZjNjNjJhZWUzYmI4Yzk0NmU5Li4xNmUyYzFhYjZl
ODc1OTUyMjhiNjNjYTJlNTk2YTZiYzQyYWY4ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKQEAgLTQxMCw3
ICs0MTAsNyBAQCBXVEY6OlN0cmluZyBJbnB1dEhhbmRsZXI6OmVsZW1lbnRUZXh0KCkKIAogQmxh
Y2tCZXJyeUlucHV0VHlwZSBJbnB1dEhhbmRsZXI6OmVsZW1lbnRUeXBlKEVsZW1lbnQqIGVsZW1l
bnQpIGNvbnN0CiB7Ci0gICAgaWYgKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LT50b0lucHV0
RWxlbWVudCgpKSkKKyAgICBpZiAoY29uc3QgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gY29udmVydElu
cHV0VHlwZShpbnB1dEVsZW1lbnQpOwogCiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp0ZXh0YXJlYVRhZykpCkBAIC0xMzIwLDcgKzEzMjAsNyBAQCB2b2lkIElucHV0SGFu
ZGxlcjo6c2V0SW5wdXRWYWx1ZShjb25zdCBXVEY6OlN0cmluZyYgdmFsdWUpCiAgICAgaWYgKCFp
c0FjdGl2ZVRleHRQb3B1cCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jdXJy
ZW50Rm9jdXNFbGVtZW50LmdldCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1l
bnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9jdXJyZW50Rm9jdXNFbGVtZW50LmdldCgpKTsKICAg
ICBpbnB1dEVsZW1lbnQtPnNldFZhbHVlKHZhbHVlKTsKICAgICBjbGVhckN1cnJlbnRGb2N1c0Vs
ZW1lbnQoKTsKIH0KQEAgLTIzMzksNyArMjMzOSw3IEBAIGV4dHJhY3RlZF90ZXh0X3QqIElucHV0
SGFuZGxlcjo6ZXh0cmFjdGVkVGV4dFJlcXVlc3QoZXh0cmFjdGVkX3RleHRfcmVxdWVzdF90KiwK
IAogICAgIC8vIHNlbGVjdGlvbkFjdGl2ZSBpcyBub3QgbGltaXRlZCB0byBpbnNpZGUgdGhlIGV4
dHJhY3RlZCB0ZXh0LgogICAgIGJvb2wgc2VsZWN0aW9uQWN0aXZlID0gZXh0cmFjdGVkVGV4dC0+
c2VsZWN0aW9uX3N0YXJ0ICE9IGV4dHJhY3RlZFRleHQtPnNlbGVjdGlvbl9lbmQ7Ci0gICAgYm9v
bCBzaW5nbGVMaW5lID0gbV9jdXJyZW50Rm9jdXNFbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6aW5wdXRUYWcpOworICAgIGJvb2wgc2luZ2xlTGluZSA9IGlzSFRNTElucHV0RWxlbWVudCht
X2N1cnJlbnRGb2N1c0VsZW1lbnQpOwogCiAgICAgLy8gRklYTUUgZmxhZ3MgaGFzIHR3byB2YWx1
ZXMgaW4gZG9jLCBlbnVtIG5vdCBpbiBoZWFkZXIgeWV0LgogICAgIGV4dHJhY3RlZFRleHQtPmZs
YWdzID0gc2VsZWN0aW9uQWN0aXZlICYgc2luZ2xlTGluZTsKQEAgLTI3MDEsNyArMjcwMSw3IEBA
IHZvaWQgSW5wdXRIYW5kbGVyOjpzaG93VGV4dElucHV0VHlwZVN1Z2dlc3Rpb25Cb3goYm9vbCBh
bGxvd0VtcHR5UHJlZml4KQogICAgIGlmICghaXNBY3RpdmVUZXh0RWRpdCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBmb2N1c2VkSW5wdXRFbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fY3VycmVudEZvY3VzRWxlbWVudC0+dG9JbnB1
dEVsZW1lbnQoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCogZm9jdXNlZElucHV0RWxlbWVudCA9
IHRvSFRNTElucHV0RWxlbWVudChtX2N1cnJlbnRGb2N1c0VsZW1lbnQtPnRvSW5wdXRFbGVtZW50
KCkpOwogICAgIGlmICghZm9jdXNlZElucHV0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCAwNjdjYzg0NTI0NWI5NDkwMTQ4N2VmNDQy
NDlhNzgzMzlhZTNmZWRiLi5jOWE5NTYxODA0Nzg2NzQ0M2Q0M2NlY2ZiZjNlZWE1NGRhY2NlZDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI5NjIsNyArMjk2Miw3IEBAIHZv
aWQgZXdrX3ZpZXdfaW5wdXRfbWV0aG9kX3N0YXRlX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCBhY3RpdmUpCiAgICAgaWYgKGZvY3VzZWRGcmFtZQogICAgICAgICAmJiBmb2N1c2VkRnJh
bWUtPmRvY3VtZW50KCkKICAgICAgICAgJiYgZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1
c2VkRWxlbWVudCgpCi0gICAgICAgICYmIGZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNl
ZEVsZW1lbnQoKS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFtZXM6OmlucHV0VGFnKSkgewor
ICAgICAgICAmJiBpc0hUTUxJbnB1dEVsZW1lbnQoZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5m
b2N1c2VkRWxlbWVudCgpKSkgewogICAgICAgICBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiBp
bnB1dEVsZW1lbnQ7CiAKICAgICAgICAgaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudCo+KGZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVs
ZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0
aW9ucy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCmluZGV4
IDlhMjdkOWZlZTBmMDYwMGM0YmQ3MGIyYmMxMmUwODVlMzViZGFjYjcuLjRlNzBiMjE0MmU0NDk2
OWI3YzI3ZjZhYThkYWU5NDE3MTZiMGQ5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0RPTS9XZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJE
T01PcGVyYXRpb25zLm1tCkBAIC0xOTksNyArMTk5LDcgQEAgYm9vbCBXZWJGcmFtZUZpbHRlcjo6
c2hvdWxkSW5jbHVkZVN1YmZyYW1lKEZyYW1lKiBmcmFtZSkgY29uc3QKIAogLSAodm9pZClfc2V0
QXV0b2ZpbGxlZDooQk9PTClhdXRvZmlsbGVkCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KGNvcmUoKERPTUVsZW1lbnQgKilzZWxmKSktPnNldEF1dG9maWxsZWQoYXV0b2Zp
bGxlZCk7CisgICAgdG9IVE1MSW5wdXRFbGVtZW50KGNvcmUoKERPTUVsZW1lbnQgKilzZWxmKSkt
PnNldEF1dG9maWxsZWQoYXV0b2ZpbGxlZCk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBhZGJmOTIz
NjBlYTgyODkxNTM5NmMyODM1OTYyNjQ1ZTkyY2U2NDZhLi4zZjBiMDUzODViYTNhNjkzNWJjZmZh
MzVjNzQ2NmQ5YjE5OTgxODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0yMDAsMTAgKzIwMCwxMCBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYg
KCFub2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGlucHV0
VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChub2RlKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KG5vZGUpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHRvSFRNTElucHV0RWxlbWVudChub2RlKTsKICAgICBpZiAoIWlucHV0RWxlbWVudC0+aXNU
ZXh0KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDIwNDVkOGVhZjczMmZkMmMwNjRm
ZGIxYzY1M2I0MDQ5NTkxY2QwMTcuLjE3YzJkMzFjYTI5MTlhZjI3NWI2M2VkNzNhM2YzYzVlM2Zi
ZmNkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KQEAgLTYzMiwzMyArNjMyLDMzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQg
V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoRWxlbWVudCogZWxlbWVu
dCkKIHsKLSAgICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICgh
aXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBET01I
VE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBraXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICBET01IVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1l
bnQgPSBraXQodG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKTsKICAgICBGb3JtRGVsZWdhdGVM
b2coaW5wdXRFbGVtZW50KTsKICAgICBDYWxsRm9ybURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVj
dG9yKHRleHRGaWVsZERpZEJlZ2luRWRpdGluZzppbkZyYW1lOiksIGlucHV0RWxlbWVudCwga2l0
KGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpKTsKIH0KIAogdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAo
IWVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVt
ZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBET01IVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBraXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1l
bnQpKTsKKyAgICBET01IVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBraXQodG9IVE1M
SW5wdXRFbGVtZW50KGVsZW1lbnQpKTsKICAgICBGb3JtRGVsZWdhdGVMb2coaW5wdXRFbGVtZW50
KTsKICAgICBDYWxsRm9ybURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHRleHRGaWVsZERp
ZEVuZEVkaXRpbmc6aW5GcmFtZTopLCBpbnB1dEVsZW1lbnQsIGtpdChlbGVtZW50LT5kb2N1bWVu
dCgpLT5mcmFtZSgpKSk7CiB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdl
SW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIWVsZW1lbnQtPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIVVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yOjpw
cm9jZXNzaW5nVXNlclR5cGluZ0dlc3R1cmUoKSB8fCBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRv
cjo6Zm9jdXNlZEVsZW1lbnRBdEdlc3R1cmVTdGFydCgpICE9IGVsZW1lbnQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGtpdChzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCkpOworICAgIERPTUhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IGtpdCh0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpOwog
ICAgIEZvcm1EZWxlZ2F0ZUxvZyhpbnB1dEVsZW1lbnQpOwogICAgIENhbGxGb3JtRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dERpZENoYW5nZUluVGV4dEZpZWxkOmluRnJhbWU6KSwg
aW5wdXRFbGVtZW50LCBraXQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkpOwogfQpAQCAt
Njg4LDEwICs2ODgsMTAgQEAgc3RhdGljIFNFTCBzZWxlY3RvckZvcktleUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50KQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5k
RnJvbUV2ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewotICAg
IGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1
dEVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIERPTUhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGtpdChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oZWxlbWVudCkpOworICAgIERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGtp
dCh0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpOwogICAgIEZvcm1EZWxlZ2F0ZUxvZyhpbnB1
dEVsZW1lbnQpOwogICAgIGlmIChTRUwgY29tbWFuZFNlbGVjdG9yID0gc2VsZWN0b3JGb3JLZXlF
dmVudChldmVudCkpCiAgICAgICAgIHJldHVybiBDYWxsRm9ybURlbGVnYXRlUmV0dXJuaW5nQm9v
bGVhbihOTywgbV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dEZpZWxkOmRvQ29tbWFuZEJ5U2VsZWN0
b3I6aW5GcmFtZTopLCBpbnB1dEVsZW1lbnQsIGNvbW1hbmRTZWxlY3Rvciwga2l0KGVsZW1lbnQt
PmRvY3VtZW50KCktPmZyYW1lKCkpKTsKQEAgLTcwMCwxMCArNzAwLDEwIEBAIGJvb2wgV2ViRWRp
dG9yQ2xpZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZWxlbWVudCwg
S2V5Ym9hcmRFdmVuCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZElu
VGV4dEZpZWxkKEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdO
YW1lKGlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgRE9NSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0g
a2l0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KSk7CisgICAgRE9NSFRN
TElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0ga2l0KHRvSFRNTElucHV0RWxlbWVudChlbGVt
ZW50KSk7CiAgICAgRm9ybURlbGVnYXRlTG9nKGlucHV0RWxlbWVudCk7CiAgICAgLy8gV2UncmUg
dXNpbmcgdGhlIGRlbGV0ZUJhY2t3YXJkIHNlbGVjdG9yIGZvciBhbGwgZGVsZXRpb24gb3BlcmF0
aW9ucyBzaW5jZSB0aGUgYXV0b2ZpbGwgY29kZSB0cmVhdHMgYWxsIGRlbGV0aW9ucyB0aGUgc2Ft
ZSB3YXkuCiAgICAgQ2FsbEZvcm1EZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmll
dywgQHNlbGVjdG9yKHRleHRGaWVsZDpkb0NvbW1hbmRCeVNlbGVjdG9yOmluRnJhbWU6KSwgaW5w
dXRFbGVtZW50LCBAc2VsZWN0b3IoZGVsZXRlQmFja3dhcmQ6KSwga2l0KGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmZyYW1lKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJI
VE1MUmVwcmVzZW50YXRpb24ubW0KaW5kZXggZDYxMjBhZTkxZDdlNjA2NzY4YTU3YTk5NjY0MmY0
YTc0YzA5MTJhZi4uM2M3MDYxMTZkNjFjMzA4OTA0MTY0NTY0OTkxNDBlNjc2YWI5MzNjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24u
bW0KQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVu
dEZyb21ET01FbGVtZW50KERPTUVsZW1lbnQgKmVsZW1lbnQpCiBzdGF0aWMgSFRNTElucHV0RWxl
bWVudCogaW5wdXRFbGVtZW50RnJvbURPTUVsZW1lbnQoRE9NRWxlbWVudCogZWxlbWVudCkKIHsK
ICAgICBFbGVtZW50KiBub2RlID0gY29yZShlbGVtZW50KTsKLSAgICByZXR1cm4gbm9kZSAmJiBu
b2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
Pihub2RlKSA6IDA7CisgICAgcmV0dXJuIG5vZGUgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUp
ID8gdG9IVE1MSW5wdXRFbGVtZW50KG5vZGUpIDogMDsKIH0KIAogLSAoQk9PTCllbGVtZW50RG9l
c0F1dG9Db21wbGV0ZTooRE9NRWxlbWVudCAqKWVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5kZXggMDViNzRhMWNjMzBi
NjA0NWU1ZGZhMzA4NDFlNzljMGRiMjRhYWQyZi4uMGI2NGU2MWQ0OTRkOTFiNzAzZjAwYzU4Njcy
ZTEzMTY4MDRlMzAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTYxOSw4ICs2MTksOCBAQCB2b2lkIEVkaXRvckNsaWVu
dFF0OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgYWN0aXZlKQogICAgICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSAwOwogICAgICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2Ut
PnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAgICAg
aWYgKGZyYW1lICYmIGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1
c2VkRWxlbWVudCgpKQotICAgICAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2Vk
RWxlbWVudCgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKQotICAgICAgICAgICAg
ICAgIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmcmFtZS0+
ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSk7CisgICAgICAgICAgICBpZiAoaXNIVE1MSW5w
dXRFbGVtZW50KGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpKSkKKyAgICAgICAg
ICAgICAgICBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZnJhbWUtPmRvY3VtZW50
KCktPmZvY3VzZWRFbGVtZW50KCkpOwogCiAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHsKICAg
ICAgICAgICAgIC8vIFNldCBpbnB1dCBtZXRob2QgaGludHMgZm9yICJudW1iZXIiLCAidGVsIiwg
ImVtYWlsIiwgInVybCIgYW5kICJwYXNzd29yZCIgaW5wdXQgZWxlbWVudHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRhcHRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRhcHRlci5jcHAKaW5kZXgg
ODllZmY2MTc2NWZmODllNDFkMmUzMjNlOGFhYWRlODA0MGRhMDIwNy4uMjEwZWE0MWYzZjQ2OWMz
Zjk2MzQzOTdmMjBhZTdlYjI5MGJiNGNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9RV2ViUGFnZUFkYXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmNwcApAQCAtNzEwLDggKzcxMCw4IEBAIFFW
YXJpYW50IFFXZWJQYWdlQWRhcHRlcjo6aW5wdXRNZXRob2RRdWVyeShRdDo6SW5wdXRNZXRob2RR
dWVyeSBwcm9wZXJ0eSkgY29uc3QKICAgICBjYXNlIFF0OjpJbU1heGltdW1UZXh0TGVuZ3RoOiB7
CiAgICAgICAgIGlmIChmcmFtZS0+c2VsZWN0aW9uKCktPmlzQ29udGVudEVkaXRhYmxlKCkpIHsK
ICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+
Zm9jdXNlZEVsZW1lbnQoKSkgewotICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KS0+Zm9jdXNlZEVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkgewot
ICAgICAgICAgICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVt
ZW50KCkpOworICAgICAgICAgICAgICAgIGlmIChpc0hUTUxJbnB1dEVsZW1lbnQoZnJhbWUtPmRv
Y3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChmcmFtZS0+ZG9j
dW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBR
VmFyaWFudChpbnB1dEVsZW1lbnQtPm1heExlbmd0aCgpKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9ET01Db3JlQ2xhc3Nl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9ET01Db3JlQ2xhc3Nlcy5jcHAKaW5kZXggMTI5YWU5
ZGQyN2U0Y2NjZTMyZDcwMjQyZjk0NGQ5YTE4MjVmMjMwNS4uY2QzZGM0NWI3NTc0NjY3M2ZjMTBj
YzU4M2QyZWU2ZWRiYmFjZjQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vRE9NQ29y
ZUNsYXNzZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmNwcApA
QCAtMTUwMCw3ICsxNTAwLDcgQEAgSURPTUVsZW1lbnQqIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3Rh
bmNlKFdlYkNvcmU6OkVsZW1lbnQqIGUpCiAgICAgfSBlbHNlIGlmIChlLT5oYXNUYWdOYW1lKGlm
cmFtZVRhZykpIHsKICAgICAgICAgRE9NSFRNTElGcmFtZUVsZW1lbnQqIG5ld0VsZW1lbnQgPSBu
ZXcgRE9NSFRNTElGcmFtZUVsZW1lbnQoZSk7CiAgICAgICAgIGhyID0gbmV3RWxlbWVudC0+UXVl
cnlJbnRlcmZhY2UoSUlEX0lET01FbGVtZW50LCAodm9pZCoqKSZkb21FbGVtZW50KTsKLSAgICB9
IGVsc2UgaWYgKGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CisgICAgfSBlbHNlIGlmIChpc0hU
TUxJbnB1dEVsZW1lbnQoZSkpIHsKICAgICAgICAgRE9NSFRNTElucHV0RWxlbWVudCogbmV3RWxl
bWVudCA9IG5ldyBET01IVE1MSW5wdXRFbGVtZW50KGUpOwogICAgICAgICBociA9IG5ld0VsZW1l
bnQtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JRE9NRWxlbWVudCwgKHZvaWQqKikmZG9tRWxlbWVudCk7
CiAgICAgfSBlbHNlIGlmIChlLT5oYXNUYWdOYW1lKG9wdGlvblRhZykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL0RPTUhUTUxDbGFzc2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L0RPTUhUTUxDbGFzc2VzLmNwcAppbmRleCA3OTA1MmZkYmJlNGM2ZWYwYWRhZDJmNWQ4MjNkZWEz
NWIzMmZlNDcwLi5iMjRiZWUyNjgyNjMzZDZiZDQ1NDYwMzFhN2Y5ZTRkMTc2ZTFhMThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vRE9NSFRNTENsYXNzZXMuY3BwCkBAIC05OTUsOCArOTk1LDggQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50Ojpmb3JtKAogICAgIGlmICgh
cmVzdWx0KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogICAgICpyZXN1bHQgPSAwOwotICAg
IEFTU0VSVChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0g
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJUKG1fZWxlbWVudCAmJiBpc0hUTUxJbnB1
dEVsZW1lbnQobV9lbGVtZW50KSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gdG9IVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgQ09NUHRyPElET01FbGVtZW50
PiBkb21FbGVtZW50OwogICAgIGRvbUVsZW1lbnQuYWRvcHRSZWYoRE9NSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUluc3RhbmNlKGlucHV0RWxlbWVudC0+Zm9ybSgpKSk7CiAgICAgaWYgKGRvbUVsZW1lbnQp
CkBAIC0xMDc3LDggKzEwNzcsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJ
bnB1dEVsZW1lbnQ6OnNldENoZWNrZWQoCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhU
TUxJbnB1dEVsZW1lbnQ6OmRpc2FibGVkKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBC
T09MKiByZXN1bHQpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVudCAmJiBtX2VsZW1lbnQtPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50KTsKKyAgICBBU1NFUlQobV9l
bGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAg
ICAqcmVzdWx0ID0gaW5wdXRFbGVtZW50LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSA/IFRSVUUg
OiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTExMjEsOCArMTEyMSw4IEBAIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2V0TmFtZSgKIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6cmVhZE9ubHkoIAogICAg
ICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIHJlc3VsdCkKIHsKLSAgICBBU1NFUlQobV9l
bGVtZW50ICYmIG1fZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpOwotICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPiht
X2VsZW1lbnQpOworICAgIEFTU0VSVChtX2VsZW1lbnQgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG1f
ZWxlbWVudCkpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElu
cHV0RWxlbWVudChtX2VsZW1lbnQpOwogICAgICpyZXN1bHQgPSBpbnB1dEVsZW1lbnQtPmlzUmVh
ZE9ubHkoKSA/IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTExODYsOCAr
MTE4Niw4IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6
dHlwZSgKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2V0
VHlwZSggCiAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiB0eXBlKQogewotICAgIEFTU0VSVChtX2Vs
ZW1lbnQgJiYgbV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1f
ZWxlbWVudCk7CisgICAgQVNTRVJUKG1fZWxlbWVudCAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobV9l
bGVtZW50KSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5w
dXRFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgV1RGOjpTdHJpbmcgdHlwZVN0cmluZyh0eXBlLCBT
eXNTdHJpbmdMZW4odHlwZSkpOwogICAgIGlucHV0RWxlbWVudC0+c2V0VHlwZSh0eXBlU3RyaW5n
KTsKICAgICByZXR1cm4gU19PSzsKQEAgLTEyMTAsOCArMTIxMCw4IEBAIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2V0VXNlTWFwKAogSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZSggCiAgICAgICAgIC8qIFty
ZXR2YWxdW291dF0gKi8gQlNUUiogcmVzdWx0KQogewotICAgIEFTU0VSVChtX2VsZW1lbnQgJiYg
bV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7
CisgICAgQVNTRVJUKG1fZWxlbWVudCAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KSk7
CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50
KG1fZWxlbWVudCk7CiAgICAgV1RGOjpTdHJpbmcgdmFsdWVTdHJpbmcgPSBpbnB1dEVsZW1lbnQt
PnZhbHVlKCk7CiAgICAgKnJlc3VsdCA9IEJTdHJpbmcodmFsdWVTdHJpbmcuY2hhcmFjdGVycygp
LCB2YWx1ZVN0cmluZy5sZW5ndGgoKSkucmVsZWFzZSgpOwogICAgIGlmICh2YWx1ZVN0cmluZy5s
ZW5ndGgoKSAmJiAhKnJlc3VsdCkKQEAgLTEyMjIsOCArMTIyMiw4IEBAIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6dmFsdWUoCiBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKCAKICAgICAgICAgLyogW2lu
XSAqLyBCU1RSIHZhbHVlKQogewotICAgIEFTU0VSVChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5o
YXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJU
KG1fZWxlbWVudCAmJiBpc0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KSk7CisgICAgSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCk7
CiAgICAgaW5wdXRFbGVtZW50LT5zZXRWYWx1ZShTdHJpbmcoKFVDaGFyKikgdmFsdWUsIFN5c1N0
cmluZ0xlbih2YWx1ZSkpKTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTEyMzIsMTYgKzEyMzIs
MTYgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50OjpzZXRW
YWx1ZUZvclVzZXIoCiAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiB2YWx1ZSkKIHsKICAgICBBU1NF
UlQobV9lbGVtZW50KTsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFn
KSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJUKGlzSFRNTElucHV0RWxlbWVu
dChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hU
TUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAgICBpbnB1dEVsZW1lbnQtPnNldFZhbHVlRm9y
VXNlcihTdHJpbmcoc3RhdGljX2Nhc3Q8VUNoYXIqPih2YWx1ZSksIFN5c1N0cmluZ0xlbih2YWx1
ZSkpKTsKICAgICByZXR1cm4gU19PSzsKIH0KIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBE
T01IVE1MSW5wdXRFbGVtZW50OjpzZWxlY3QoIHZvaWQpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVu
dCAmJiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVt
ZW50KTsKKyAgICBBU1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1l
bnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVs
ZW1lbnQobV9lbGVtZW50KTsKICAgICBpbnB1dEVsZW1lbnQtPnNlbGVjdCgpOwogICAgIHJldHVy
biBTX09LOwogfQpAQCAtMTI1NSw4ICsxMjU1LDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBET01IVE1MSW5wdXRFbGVtZW50OjpjbGljayggdm9pZCkKIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoIAogICAgIC8qIFtp
bl0gKi8gbG9uZyBzdGFydCkKIHsKLSAgICBBU1NFUlQobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+
aGFzVGFnTmFtZShpbnB1dFRhZykpOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VS
VChtX2VsZW1lbnQgJiYgaXNIVE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCkpOworICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQp
OwogICAgIGlucHV0RWxlbWVudC0+c2V0U2VsZWN0aW9uU3RhcnQoc3RhcnQpOwogICAgIHJldHVy
biBTX09LOwogfQpAQCAtMTI2NCw4ICsxMjY0LDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBET01IVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydCgKIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoIAogICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gbG9uZyAqc3RhcnQpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVudCAm
JiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50
KTsKKyAgICBBU1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQp
KTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1l
bnQobV9lbGVtZW50KTsKICAgICAqc3RhcnQgPSBpbnB1dEVsZW1lbnQtPnNlbGVjdGlvblN0YXJ0
KCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0xMjczLDggKzEyNzMsOCBAQCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25F
bmQoIAogICAgIC8qIFtpbl0gKi8gbG9uZyBlbmQpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVudCAm
JiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVtZW50
KTsKKyAgICBBU1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQp
KTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1l
bnQobV9lbGVtZW50KTsKICAgICBpbnB1dEVsZW1lbnQtPnNldFNlbGVjdGlvbkVuZChlbmQpOwog
ICAgIHJldHVybiBTX09LOwogfQpAQCAtMTI4Miw4ICsxMjgyLDggQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQoCiBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCggCiAg
ICAgLyogW3JldHZhbF1bb3V0XSAqLyBsb25nICplbmQpCiB7Ci0gICAgQVNTRVJUKG1fZWxlbWVu
dCAmJiBtX2VsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKLSAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9lbGVt
ZW50KTsKKyAgICBBU1NFUlQobV9lbGVtZW50ICYmIGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1l
bnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVs
ZW1lbnQobV9lbGVtZW50KTsKICAgICAqZW5kID0gaW5wdXRFbGVtZW50LT5zZWxlY3Rpb25FbmQo
KTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTEyOTQsOCArMTI5NCw4IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6aXNUZXh0RmllbGQoCiAgICAgLyog
W3JldHZhbF1bb3V0XSAqLyBCT09MKiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7
Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpOwotICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihtX2VsZW1lbnQpOworICAgIEFTU0VSVChpc0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KSk7
CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50
KG1fZWxlbWVudCk7CiAgICAgKnJlc3VsdCA9IGlucHV0RWxlbWVudC0+aXNUZXh0RmllbGQoKSA/
IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTEzMDQsNyArMTMwNCw3IEBA
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6cmVjdE9uU2Ny
ZWVuKAogICAgIC8qIFtyZXR2YWxdW291dF0gKi8gTFBSRUNUIHJlY3QpCiB7CiAgICAgQVNTRVJU
KG1fZWxlbWVudCk7Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykp
OworICAgIEFTU0VSVChpc0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KSk7CiAgICAgcmVjdC0+
bGVmdCA9IHJlY3QtPnRvcCA9IHJlY3QtPnJpZ2h0ID0gcmVjdC0+Ym90dG9tID0gMDsKICAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbV9lbGVtZW50LT5yZW5kZXJlcigpOwogICAgIEZyYW1l
VmlldyogdmlldyA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+dmlldygpOwpAQCAtMTMzMCw4ICsx
MzMwLDggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50Ojpy
ZXBsYWNlQ2hhcmFjdGVyc0luUmFuZ2UoCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAg
ICBBU1NFUlQobV9lbGVtZW50KTsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNUYWdOYW1lKGlu
cHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJUKGlzSFRNTElucHV0
RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQg
PSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKIAogICAgIFN0cmluZyBuZXdWYWx1ZSA9
IGlucHV0RWxlbWVudC0+dmFsdWUoKTsKICAgICBTdHJpbmcgd2ViQ29yZVJlcGxhY2VtZW50U3Ry
aW5nKHN0YXRpY19jYXN0PFVDaGFyKj4ocmVwbGFjZW1lbnRTdHJpbmcpLCBTeXNTdHJpbmdMZW4o
cmVwbGFjZW1lbnRTdHJpbmcpKTsKQEAgLTEzNDcsOCArMTM0Nyw4IEBAIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRSYW5nZSgKICAgICAvKiBb
b3V0XSAqLyBpbnQqIGVuZCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKLSAgICBBU1NFUlQo
bV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7
CisgICAgQVNTRVJUKGlzSFRNTElucHV0RWxlbWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsK
ICAgICAqc3RhcnQgPSBpbnB1dEVsZW1lbnQtPnNlbGVjdGlvblN0YXJ0KCk7CiAgICAgKmVuZCA9
IGlucHV0RWxlbWVudC0+c2VsZWN0aW9uRW5kKCk7CiAgICAgcmV0dXJuIFNfT0s7CkBAIC0xMzU4
LDggKzEzNTgsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUhUTUxJbnB1dEVsZW1l
bnQ6OnNldEF1dG9maWxsZWQoCiAgICAgLyogW2luXSAqLyBCT09MIGZpbGxlZCkKIHsKICAgICBB
U1NFUlQobV9lbGVtZW50KTsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0
VGFnKSk7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCk7CisgICAgQVNTRVJUKGlzSFRNTElucHV0RWxl
bWVudChtX2VsZW1lbnQpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0
b0hUTUxJbnB1dEVsZW1lbnQobV9lbGVtZW50KTsKICAgICBpbnB1dEVsZW1lbnQtPnNldEF1dG9m
aWxsZWQoISFmaWxsZWQpOwogICAgIHJldHVybiBTX09LOwogfQpAQCAtMTM2OCw4ICsxMzY4LDgg
QEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9m
aWxsZWQoCiAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiByZXN1bHQpCiB7CiAgICAgQVNT
RVJUKG1fZWxlbWVudCk7Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRh
ZykpOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgIEFTU0VSVChpc0hUTUxJbnB1dEVsZW1l
bnQobV9lbGVtZW50KSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9I
VE1MSW5wdXRFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgKnJlc3VsdCA9IGlucHV0RWxlbWVudC0+
aXNBdXRvZmlsbGVkKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0x
MzgzLDExICsxMzgzLDExIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NSFRNTElucHV0
RWxlbWVudDo6aXNVc2VyRWRpdGVkKAogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCiAgICAg
KnJlc3VsdCA9IEZBTFNFOwotICAgIEFTU0VSVChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5oYXNU
YWdOYW1lKGlucHV0VGFnKSk7CisgICAgQVNTRVJUKG1fZWxlbWVudCAmJiBpc0hUTUxJbnB1dEVs
ZW1lbnQobV9lbGVtZW50KSk7CiAgICAgQk9PTCB0ZXh0RmllbGQgPSBGQUxTRTsKICAgICBpZiAo
RkFJTEVEKGlzVGV4dEZpZWxkKCZ0ZXh0RmllbGQpKSB8fCAhdGV4dEZpZWxkKQogICAgICAgICBy
ZXR1cm4gU19PSzsKLSAgICBpZiAoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fZWxl
bWVudCktPmxhc3RDaGFuZ2VXYXNVc2VyRWRpdCgpKQorICAgIGlmICh0b0hUTUxJbnB1dEVsZW1l
bnQobV9lbGVtZW50KS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0KCkpCiAgICAgICAgICpyZXN1bHQg
PSBUUlVFOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IGFj
M2Q0MTAyMjI0OWMzNGZiZGRmNzEyNzdlNTcwMDg0ODc0OGJiMjQuLjc5OGQ0M2NmOGI5NTI1YzJj
MDRjODBjYzUyOGUwMmI0MDgxZmEyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTIyMSw4
ICsyMjEsOCBAQCBzdGF0aWMgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50RnJvbURPTUVs
ZW1lbnQoSURPTUVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIEVsZW1lbnQqIGVsZTsKICAgICAg
ICAgaHIgPSBlbGVQcml2LT5jb3JlRWxlbWVudCgodm9pZCoqKSZlbGUpOwogICAgICAgICBlbGVQ
cml2LT5SZWxlYXNlKCk7Ci0gICAgICAgIGlmIChTVUNDRUVERUQoaHIpICYmIGVsZSAmJiBlbGUt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlbGUpOworICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSAmJiBlbGUg
JiYgaXNIVE1MSW5wdXRFbGVtZW50KGVsZSkpCisgICAgICAgICAgICByZXR1cm4gdG9IVE1MSW5w
dXRFbGVtZW50KGVsZSk7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXggMWNmNDgwMWYxY2I4ODJhZWM5
NGYzMjk4Njk3OTU4MzJjMTQ3MGMyNi4uMjk2YmYyNTQyYmRlMmI1M2JhODYyZTU1MDgwYzg5NDky
NjA0NTBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUu
Y3BwCkBAIC0xODAsMzQgKzE4MCwzNCBAQCBQYXNzUmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGU6OnJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zIG9wdAogCiB2b2lk
IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6c2V0SFRNTElucHV0RWxlbWVudFZhbHVlRm9yVXNl
cihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIGlmICghbV9ub2RlLT5oYXNUYWdOYW1lKGlu
cHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChtX25vZGUuZ2V0KCkpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9ub2Rl
LmdldCgpKS0+c2V0VmFsdWVGb3JVc2VyKHZhbHVlKTsKKyAgICB0b0hUTUxJbnB1dEVsZW1lbnQo
bV9ub2RlLmdldCgpKS0+c2V0VmFsdWVGb3JVc2VyKHZhbHVlKTsKIH0KIAogYm9vbCBJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU6OmlzSFRNTElucHV0RWxlbWVudEF1dG9maWxsZWQoKSBjb25zdAog
ewotICAgIGlmICghbV9ub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRN
TElucHV0RWxlbWVudChtX25vZGUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihtX25vZGUuZ2V0KCkp
LT5pc0F1dG9maWxsZWQoKTsKKyAgICByZXR1cm4gdG9IVE1MSW5wdXRFbGVtZW50KG1fbm9kZS5n
ZXQoKSktPmlzQXV0b2ZpbGxlZCgpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZTo6c2V0SFRNTElucHV0RWxlbWVudEF1dG9maWxsZWQoYm9vbCBmaWxsZWQpCiB7Ci0gICAgaWYg
KCFtX25vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVt
ZW50KG1fbm9kZS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihtX25vZGUuZ2V0KCkpLT5zZXRBdXRvZmlsbGVkKGZpbGxlZCk7Cisg
ICAgdG9IVE1MSW5wdXRFbGVtZW50KG1fbm9kZS5nZXQoKSktPnNldEF1dG9maWxsZWQoZmlsbGVk
KTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6Omh0bWxJbnB1dEVsZW1lbnRM
YXN0Q2hhbmdlV2FzVXNlckVkaXQoKQogewotICAgIGlmICghbV9ub2RlLT5oYXNUYWdOYW1lKGlu
cHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChtX25vZGUuZ2V0KCkpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KG1fbm9kZS5nZXQoKSktPmxhc3RDaGFuZ2VXYXNVc2VyRWRpdCgpOworICAgIHJldHVy
biB0b0hUTUxJbnB1dEVsZW1lbnQobV9ub2RlLmdldCgpKS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0
KCk7CiB9CiAKIGJvb2wgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpodG1sVGV4dEFyZWFFbGVt
ZW50TGFzdENoYW5nZVdhc1VzZXJFZGl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1t
CmluZGV4IDUyZDhkNzZmMmVkYzUxZjZkZTFjYzlkOWY4NTA4ODM3ZTI1MzIwMjguLjVhZjZlYzY3
NjQzMDlhMDFlN2I4MTIyYmU1MDZhMzhhMTNhMTljNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5u
b3RhdGlvbi5tbQpAQCAtMTA3LDcgKzEwNyw3IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gUERGUGx1
Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkKICAgICBpZiAoaXNN
dWx0aWxpbmUpCiAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihzdHls
ZWRFbGVtZW50KS0+c2V0VmFsdWUodGV4dEFubm90YXRpb24uc3RyaW5nVmFsdWUpOwogICAgIGVs
c2UKLSAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHN0eWxlZEVsZW1lbnQp
LT5zZXRWYWx1ZSh0ZXh0QW5ub3RhdGlvbi5zdHJpbmdWYWx1ZSk7CisgICAgICAgIHRvSFRNTElu
cHV0RWxlbWVudChzdHlsZWRFbGVtZW50KS0+c2V0VmFsdWUodGV4dEFubm90YXRpb24uc3RyaW5n
VmFsdWUpOwogCiAgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggMDk4NThhZWZmOTc5MzUxZTQzMTVjM2Q3NjFhNDY5OTAxNjY3NmM4NC4uY2UxNjAwNmRi
NzRmMjBmOTcyNzRkNGViM2I1NGZmOGFlOGI4MGU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtMTY0LDEwICsxNjQsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2Rl
Q2hhbmdlZChOb2RlKiBub2RlKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1
dEVsZW1lbnQobm9kZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9k
ZSk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dCgpKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBkODNlNDU2MGRmNjc0NDQyMzNmYTE3YTk2NGJh
MDgxNWFhMDZmOGU3Li5jOTEzYTYxMzIyY2JjZDlkNzM4ZjJkOGZhYjBiYTE3N2RkN2ZmMzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0zMTYsMzEgKzMxNiwzMSBAQCB2b2lkIFdlYkVk
aXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqKQogCiB2
b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQqIGVs
ZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICBp
ZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
V2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxv
YWRlckNsaWVudChlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50
KCkpOwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xpZW50ID8gd2Vi
RnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7
CiAKLSAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnRleHRGaWVsZERpZEJl
Z2luRWRpdGluZyhtX3BhZ2UsIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50
KSwgd2ViRnJhbWUpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkudGV4
dEZpZWxkRGlkQmVnaW5FZGl0aW5nKG1fcGFnZSwgdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQp
LCB3ZWJGcmFtZSk7CiB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRF
ZGl0aW5nKEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkKKyAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xp
ZW50ID0gdG9XZWJGcmFtZUxvYWRlckNsaWVudChlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgp
LT5sb2FkZXIoKS0+Y2xpZW50KCkpOwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1l
TG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOwogICAg
IEFTU0VSVCh3ZWJGcmFtZSk7CiAKLSAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVu
dCgpLnRleHRGaWVsZERpZEVuZEVkaXRpbmcobV9wYWdlLCBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4oZWxlbWVudCksIHdlYkZyYW1lKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxl
Rm9ybUNsaWVudCgpLnRleHRGaWVsZERpZEVuZEVkaXRpbmcobV9wYWdlLCB0b0hUTUxJbnB1dEVs
ZW1lbnQoZWxlbWVudCksIHdlYkZyYW1lKTsKIH0KIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRl
eHREaWRDaGFuZ2VJblRleHRGaWVsZChFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmICghZWxl
bWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQo
ZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghVXNlclR5cGluZ0dlc3R1cmVJ
bmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyVHlwaW5nR2VzdHVyZSgpIHx8IFVzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yOjpmb2N1c2VkRWxlbWVudEF0R2VzdHVyZVN0YXJ0KCkgIT0gZWxlbWVudCkK
QEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUlu
VGV4dEZpZWxkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2Vi
RnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7
CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAotICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3Jt
Q2xpZW50KCkudGV4dERpZENoYW5nZUluVGV4dEZpZWxkKG1fcGFnZSwgc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KGVsZW1lbnQpLCB3ZWJGcmFtZSk7CisgICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZUZvcm1DbGllbnQoKS50ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQobV9wYWdlLCB0b0hU
TUxJbnB1dEVsZW1lbnQoZWxlbWVudCksIHdlYkZyYW1lKTsKIH0KIAogdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqIGVsZW1lbnQpCkBAIC0zODks
NyArMzg5LDcgQEAgc3RhdGljIGJvb2wgZ2V0QWN0aW9uVHlwZUZvcktleUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBXS0lucHV0RmllbGRBY3Rpb25UeXAKIAogYm9vbCBXZWJFZGl0b3JDbGll
bnQ6OmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiBlbGVtZW50LCBLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcp
KQorICAgIGlmICghaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBXS0lucHV0RmllbGRBY3Rpb25UeXBlIGFjdGlvblR5cGUgPSBzdGF0aWNf
Y2FzdDxXS0lucHV0RmllbGRBY3Rpb25UeXBlPigwKTsKQEAgLTQwMCwxOSArNDAwLDE5IEBAIGJv
b2wgV2ViRWRpdG9yQ2xpZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCog
ZWxlbWVudCwgS2V5Ym9hcmRFdmVuCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVM
b2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CiAgICAg
QVNTRVJUKHdlYkZyYW1lKTsKIAotICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9y
bUNsaWVudCgpLnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChtX3BhZ2UsIHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KSwgYWN0aW9uVHlwZSwgd2ViRnJhbWUpOwor
ICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnNob3VsZFBlcmZv
cm1BY3Rpb25JblRleHRGaWVsZChtX3BhZ2UsIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSwg
YWN0aW9uVHlwZSwgd2ViRnJhbWUpOwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dFdp
bGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmICghZWxl
bWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQo
ZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3
ZWJGcmFtZUxvYWRlckNsaWVudCA9IHRvV2ViRnJhbWVMb2FkZXJDbGllbnQoZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpKTsKICAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJG
cmFtZSgpIDogMDsKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCi0gICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZUZvcm1DbGllbnQoKS5zaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQobV9wYWdl
LCBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCksIFdLSW5wdXRGaWVsZEFj
dGlvblR5cGVJbnNlcnREZWxldGUsIHdlYkZyYW1lKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVu
ZGxlRm9ybUNsaWVudCgpLnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChtX3BhZ2UsIHRv
SFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgV0tJbnB1dEZpZWxkQWN0aW9uVHlwZUluc2VydERl
bGV0ZSwgd2ViRnJhbWUpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkRXJhc2VN
YXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZSB0eXBl
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKaW5kZXggNjJjYWYyN2EyYWNhYTMxYzZjMDhmMjhmN2U2MGI4NDgzOWU3OWUwZC4uMWI0ZGUw
ZDlmZDk1MjJmMmNkZDNjNTJlYTkxZDg2NTllNDg1N2Y0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxl
bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTEZyYW1lT3duZXJFbGVtZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9IVE1MSW5wdXRFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1M
TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSlNFbGVtZW50Lmg+CkBAIC02MTYsNyArNjE3LDcgQEAgYm9vbCBXZWJG
cmFtZTo6Y29udGFpbnNBbnlGb3JtQ29udHJvbHMoKSBjb25zdAogICAgIGZvciAoTm9kZSogbm9k
ZSA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsgbm9kZTsgbm9kZSA9IE5vZGVUcmF2ZXJz
YWw6Om5leHQobm9kZSkpIHsKICAgICAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHRvRWxlbWVudChub2RlKS0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSB8fCB0b0VsZW1lbnQobm9kZSktPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8IHRvRWxlbWVudChub2RlKS0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OnRleHRhcmVhVGFnKSkKKyAgICAgICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChub2Rl
KSB8fCB0b0VsZW1lbnQobm9kZSktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpIHx8
IHRvRWxlbWVudChub2RlKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRleHRhcmVhVGFnKSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWNjYjgzYzU3
MGU5ZDIzNTVkNjUyMTFiN2IxOGNiZWVmMjk3ZWVmMC4uYTllYjg0MzI4YWU5N2VkMGI2N2I5NjY0
ZjY1ZTU0YTYxYWI1YjIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNjEyLDggKzYxMiw4IEBAIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVk
aXRvclN0YXRlKCkgY29uc3QKICAgICBpZiAoIXNjb3BlKQogICAgICAgICByZXR1cm4gcmVzdWx0
OwogCi0gICAgaWYgKHNjb3BlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKSB7Ci0g
ICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KHNjb3BlKTsKKyAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50KHNjb3BlKSkgeworICAg
ICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHRvSFRNTElucHV0RWxlbWVudChzY29wZSk7
CiAgICAgICAgIGlmIChpbnB1dC0+aXNUZWxlcGhvbmVGaWVsZCgpKQogICAgICAgICAgICAgcmVz
dWx0LmlucHV0TWV0aG9kSGludHMgfD0gUXQ6OkltaERpYWxhYmxlQ2hhcmFjdGVyc09ubHk7CiAg
ICAgICAgIGVsc2UgaWYgKGlucHV0LT5pc051bWJlckZpZWxkKCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>