<?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>101383</bug_id>
          
          <creation_ts>2012-11-06 12:47:28 -0800</creation_ts>
          <short_desc>[EFL][WK2] Refactor Ewk_Auth_Request, Ewk_Url_Scheme_Request and Ewk_Download_Job to be Ewk_Objects</short_desc>
          <delta_ts>2012-11-06 14:21:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</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>
          
          <blocked>101057</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759965</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 12:47:28 -0800</bug_when>
    <thetext>Convert Ewk_Auth_Request, Ewk_Url_Scheme_Request and Ewk_Download_Job to Ewk_Objects as part of bug101057 work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759970</commentid>
    <comment_count>1</comment_count>
      <attachid>172633</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 12:54:38 -0800</bug_when>
    <thetext>Created attachment 172633
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760044</commentid>
    <comment_count>2</comment_count>
      <attachid>172633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 14:21:50 -0800</bug_when>
    <thetext>Comment on attachment 172633
patch

Clearing flags on attachment: 172633

Committed r133673: &lt;http://trac.webkit.org/changeset/133673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760045</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 14:21:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172633</attachid>
            <date>2012-11-06 12:54:38 -0800</date>
            <delta_ts>2012-11-06 14:21:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug101383</filename>
            <type>text/plain</type>
            <size>44184</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQzNGZkOGQyZWNmMWFmMGU1MjYxYTQ2OWU4ZTc4ZTVkYjNlM2IzY2YKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE5vdiA2IDIyOjQ5OjMxIDIwMTIgKzAyMDAKCiAgICBidWcxMDEzODMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMzgwYTA0Yy4uYTNkYTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMyBAQAogMjAxMi0x
MS0wNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
IAorICAgICAgICBbRUZMXVtXSzJdIFJlZmFjdG9yIEV3a19BdXRoX1JlcXVlc3QsIEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3QgYW5kIEV3a19Eb3dubG9hZF9Kb2IgdG8gYmUgRXdrX09iamVjdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTM4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV3a19BdXRoX1Jl
cXVlc3QsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3QgYW5kIEV3a19Eb3dubG9hZF9Kb2IgYXJlIEV3
a19PYmplY3RzIG5vdy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdDYWxs
YmFja3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19hdXRoX3JlcXVlc3QuY3BwOgorICAgICAgICAo
RXdrQXV0aFJlcXVlc3Q6OkV3a0F1dGhSZXF1ZXN0KToKKyAgICAgICAgKEV3a0F1dGhSZXF1ZXN0
Ojp+RXdrQXV0aFJlcXVlc3QpOgorICAgICAgICAoRXdrQXV0aFJlcXVlc3Q6OnN1Z2dlc3RlZFVz
ZXJuYW1lKToKKyAgICAgICAgKEV3a0F1dGhSZXF1ZXN0OjpyZWFsbSk6CisgICAgICAgIChFd2tB
dXRoUmVxdWVzdDo6aG9zdCk6CisgICAgICAgIChFd2tBdXRoUmVxdWVzdDo6Y29udGludWVXaXRo
b3V0Q3JlZGVudGlhbCk6CisgICAgICAgIChFd2tBdXRoUmVxdWVzdDo6YXV0aGVudGljYXRlKToK
KyAgICAgICAgKEV3a0F1dGhSZXF1ZXN0Ojppc1JldHJ5aW5nKToKKyAgICAgICAgKGV3a19hdXRo
X3JlcXVlc3Rfc3VnZ2VzdGVkX3VzZXJuYW1lX2dldCk6CisgICAgICAgIChld2tfYXV0aF9yZXF1
ZXN0X2NhbmNlbCk6CisgICAgICAgIChld2tfYXV0aF9yZXF1ZXN0X2F1dGhlbnRpY2F0ZSk6Cisg
ICAgICAgIChld2tfYXV0aF9yZXF1ZXN0X3JldHJ5aW5nX2dldCk6CisgICAgICAgIChld2tfYXV0
aF9yZXF1ZXN0X3JlYWxtX2dldCk6CisgICAgICAgIChld2tfYXV0aF9yZXF1ZXN0X2hvc3RfZ2V0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXV0aF9yZXF1ZXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2F1dGhfcmVxdWVzdF9wcml2YXRlLmg6CisgICAg
ICAgIChFd2tBdXRoUmVxdWVzdCk6CisgICAgICAgIChFd2tBdXRoUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3QuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmg6CisgICAgICAg
IChFd2tDb250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRf
am9iLmNwcDoKKyAgICAgICAgKEV3a0Rvd25sb2FkSm9iOjpFd2tEb3dubG9hZEpvYik6CisgICAg
ICAgIChFd2tEb3dubG9hZEpvYjo6aWQpOgorICAgICAgICAoRXdrRG93bmxvYWRKb2I6OnZpZXdJ
bXBsKToKKyAgICAgICAgKGV3a19kb3dubG9hZF9qb2Jfc3RhdGVfZ2V0KToKKyAgICAgICAgKEV3
a0Rvd25sb2FkSm9iOjpzdGF0ZSk6CisgICAgICAgIChld2tfZG93bmxvYWRfam9iX3JlcXVlc3Rf
Z2V0KToKKyAgICAgICAgKEV3a0Rvd25sb2FkSm9iOjpyZXF1ZXN0KToKKyAgICAgICAgKGV3a19k
b3dubG9hZF9qb2JfcmVzcG9uc2VfZ2V0KToKKyAgICAgICAgKEV3a0Rvd25sb2FkSm9iOjpyZXNw
b25zZSk6CisgICAgICAgIChld2tfZG93bmxvYWRfam9iX2Rlc3RpbmF0aW9uX2dldCk6CisgICAg
ICAgIChFd2tEb3dubG9hZEpvYjo6ZGVzdGluYXRpb24pOgorICAgICAgICAoZXdrX2Rvd25sb2Fk
X2pvYl9kZXN0aW5hdGlvbl9zZXQpOgorICAgICAgICAoRXdrRG93bmxvYWRKb2I6OnNldERlc3Rp
bmF0aW9uKToKKyAgICAgICAgKGV3a19kb3dubG9hZF9qb2Jfc3VnZ2VzdGVkX2ZpbGVuYW1lX2dl
dCk6CisgICAgICAgIChFd2tEb3dubG9hZEpvYjo6c3VnZ2VzdGVkRmlsZU5hbWUpOgorICAgICAg
ICAoZXdrX2Rvd25sb2FkX2pvYl9jYW5jZWwpOgorICAgICAgICAoRXdrRG93bmxvYWRKb2I6OmNh
bmNlbCk6CisgICAgICAgIChld2tfZG93bmxvYWRfam9iX2VzdGltYXRlZF9wcm9ncmVzc19nZXQp
OgorICAgICAgICAoRXdrRG93bmxvYWRKb2I6OmVzdGltYXRlZFByb2dyZXNzKToKKyAgICAgICAg
KGV3a19kb3dubG9hZF9qb2JfZWxhcHNlZF90aW1lX2dldCk6CisgICAgICAgIChFd2tEb3dubG9h
ZEpvYjo6ZWxhcHNlZFRpbWUpOgorICAgICAgICAoRXdrRG93bmxvYWRKb2I6OnNldFJlc3BvbnNl
KToKKyAgICAgICAgKEV3a0Rvd25sb2FkSm9iOjpzZXRTdWdnZXN0ZWRGaWxlTmFtZSk6CisgICAg
ICAgIChFd2tEb3dubG9hZEpvYjo6aW5jcmVtZW50UmVjZWl2ZWREYXRhKToKKyAgICAgICAgKEV3
a0Rvd25sb2FkSm9iOjpzZXRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2Rvd25sb2FkX2pvYi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9h
ZF9qb2JfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrRG93bmxvYWRKb2IpOgorICAgICAgICAoRXdr
RG93bmxvYWRKb2I6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Vy
bF9zY2hlbWVfcmVxdWVzdC5jcHA6CisgICAgICAgIChFd2tVcmxTY2hlbWVSZXF1ZXN0OjpFd2tV
cmxTY2hlbWVSZXF1ZXN0KToKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmlkKToKKyAg
ICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OnVybCk6CisgICAgICAgIChFd2tVcmxTY2hlbWVS
ZXF1ZXN0OjpzY2hlbWUpOgorICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6cGF0aCk6Cisg
ICAgICAgIChFd2tVcmxTY2hlbWVSZXF1ZXN0OjpmaW5pc2gpOgorICAgICAgICAoZXdrX3VybF9z
Y2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0KToKKyAgICAgICAgKGV3a191cmxfc2NoZW1lX3JlcXVl
c3RfdXJsX2dldCk6CisgICAgICAgIChld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3BhdGhfZ2V0KToK
KyAgICAgICAgKGV3a191cmxfc2NoZW1lX3JlcXVlc3RfZmluaXNoKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChF
d2tVcmxTY2hlbWVSZXF1ZXN0KToKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2F1dGhfcmVx
dWVzdC5jcHA6CisgICAgICAgIChvbkF1dGhlbnRpY2F0aW9uUmVxdWVzdCk6CisgICAgICAgIChU
RVNUX0YpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsOjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVm
bDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2Vy
RWZsOjpkaWRDcmVhdGVEZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFu
YWdlckVmbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFn
ZXJFZmw6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXJFZmw6OmRp
ZENhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVmbDo6ZGlkRmluaXNo
KToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsOjpyZWdpc3RlckRvd25sb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsOjpkb3dubG9hZEpvYik6Cisg
ICAgICAgICogVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuaDoKKyAgICAgICAgKERv
d25sb2FkTWFuYWdlckVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVu
dEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1h
bmFnZXJDbGllbnRFZmw6OmRpZFJlY2VpdmVVUklSZXF1ZXN0KToKKworMjAxMi0xMS0wNiAgTWlr
aGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKwogICAgICAg
ICBbRUZMXVtXSzJdIE1ha2UgRXdrX0NvbnRleHQgRXdrX09iamVjdAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMzIyCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdDYWxsYmFja3MuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdDYWxsYmFja3MuaAppbmRleCA3MGIy
N2M3Li5iNDlkYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3Q2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlld0NhbGxiYWNrcy5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1zdHJ1Y3Qg
RXdrX0F1dGhfUmVxdWVzdDsKLXN0cnVjdCBFd2tfRG93bmxvYWRfSm9iOwordHlwZWRlZiBzdHJ1
Y3QgRXdrX09iamVjdCBFd2tfQXV0aF9SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgRXdrX09iamVj
dCBFd2tfRG93bmxvYWRfSm9iOwogc3RydWN0IEV3a19Eb3dubG9hZF9Kb2JfRXJyb3I7CiBzdHJ1
Y3QgRXdrX0ZpbGVfQ2hvb3Nlcl9SZXF1ZXN0Owogc3RydWN0IEV3a19Gb3JtX1N1Ym1pc3Npb25f
UmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1w
bC5oCmluZGV4IDkyOWM3OTAuLjkxOGZlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaApAQCAtNzAsMTIgKzcwLDEwIEBAIGNsYXNzIEV3a0Nv
bnRleHQ7CiAKIGNsYXNzIEV3a19CYWNrX0ZvcndhcmRfTGlzdDsKIGNsYXNzIEV3a19Db2xvcl9Q
aWNrZXI7Ci1jbGFzcyBFd2tfRG93bmxvYWRfSm9iOwogY2xhc3MgRXdrX0Vycm9yOwogY2xhc3Mg
RXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OwogY2xhc3MgRXdrX0ludGVudDsKIGNsYXNzIEV3
a19JbnRlbnRfU2VydmljZTsKLWNsYXNzIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsK
IGNsYXNzIEV3a19SZXNvdXJjZTsKIGNsYXNzIEV3a19Qb3B1cF9NZW51OwogY2xhc3MgRXdrX1Nl
dHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2F1dGhfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
YXV0aF9yZXF1ZXN0LmNwcAppbmRleCA0YjI5YWJhLi4yMDI3OWUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXV0aF9yZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXV0aF9yZXF1ZXN0LmNwcApAQCAt
MzcsMjAgKzM3LDIwIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLUV3a19BdXRoX1JlcXVlc3Q6OkV3a19BdXRoX1JlcXVlc3QoQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eSogYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCitFd2tBdXRoUmVx
dWVzdDo6RXdrQXV0aFJlcXVlc3QoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSogYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpCiAgICAgOiBtX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKQogICAgICwgbV93YXNIYW5kbGVkKGZhbHNlKQogewogICAgIEFT
U0VSVChtX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsKIH0KIAotRXdrX0F1dGhfUmVxdWVzdDo6
fkV3a19BdXRoX1JlcXVlc3QoKQorRXdrQXV0aFJlcXVlc3Q6On5Fd2tBdXRoUmVxdWVzdCgpCiB7
CiAgICAgaWYgKCFtX3dhc0hhbmRsZWQpCiAgICAgICAgIGNvbnRpbnVlV2l0aG91dENyZWRlbnRp
YWwoKTsKIH0KIAotY29uc3QgY2hhciogRXdrX0F1dGhfUmVxdWVzdDo6c3VnZ2VzdGVkVXNlcm5h
bWUoKSBjb25zdAorY29uc3QgY2hhciogRXdrQXV0aFJlcXVlc3Q6OnN1Z2dlc3RlZFVzZXJuYW1l
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3VnZ2VzdGVkVXNlcm5hbWUpIHsKICAgICAgICAgV2Vi
Q3JlZGVudGlhbCogY3JlZGVudGlhbCA9IG1fYXV0aGVudGljYXRpb25DaGFsbGVuZ2UtPnByb3Bv
c2VkQ3JlZGVudGlhbCgpOwpAQCAtNjYsNyArNjYsNyBAQCBjb25zdCBjaGFyKiBFd2tfQXV0aF9S
ZXF1ZXN0OjpzdWdnZXN0ZWRVc2VybmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3VnZ2VzdGVk
VXNlcm5hbWU7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19BdXRoX1JlcXVlc3Q6OnJlYWxtKCkgY29u
c3QKK2NvbnN0IGNoYXIqIEV3a0F1dGhSZXF1ZXN0OjpyZWFsbSgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3JlYWxtKSB7CiAgICAgICAgIFdlYlByb3RlY3Rpb25TcGFjZSogcHJvdGVjdGlvblNwYWNl
ID0gbV9hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJvdGVjdGlvblNwYWNlKCk7CkBAIC04Miw3
ICs4Miw3IEBAIGNvbnN0IGNoYXIqIEV3a19BdXRoX1JlcXVlc3Q6OnJlYWxtKCkgY29uc3QKICAg
ICByZXR1cm4gbV9yZWFsbTsKIH0KIAotY29uc3QgY2hhciogRXdrX0F1dGhfUmVxdWVzdDo6aG9z
dCgpIGNvbnN0Citjb25zdCBjaGFyKiBFd2tBdXRoUmVxdWVzdDo6aG9zdCgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2hvc3QpIHsKICAgICAgICAgV2ViUHJvdGVjdGlvblNwYWNlKiBwcm90ZWN0aW9u
U3BhY2UgPSBtX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5wcm90ZWN0aW9uU3BhY2UoKTsKQEAg
LTk4LDcgKzk4LDcgQEAgY29uc3QgY2hhciogRXdrX0F1dGhfUmVxdWVzdDo6aG9zdCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1faG9zdDsKIH0KIAotYm9vbCBFd2tfQXV0aF9SZXF1ZXN0Ojpjb250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKCkKK2Jvb2wgRXdrQXV0aFJlcXVlc3Q6OmNvbnRpbnVlV2l0aG91
dENyZWRlbnRpYWwoKQogewogICAgIGlmIChtX3dhc0hhbmRsZWQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTEwOSw3ICsxMDksNyBAQCBib29sIEV3a19BdXRoX1JlcXVlc3Q6OmNvbnRpbnVl
V2l0aG91dENyZWRlbnRpYWwoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEV3a19BdXRo
X1JlcXVlc3Q6OmF1dGhlbnRpY2F0ZShjb25zdCBTdHJpbmcmIHVzZXJuYW1lLCBjb25zdCBTdHJp
bmcmIHBhc3N3b3JkKQorYm9vbCBFd2tBdXRoUmVxdWVzdDo6YXV0aGVudGljYXRlKGNvbnN0IFN0
cmluZyYgdXNlcm5hbWUsIGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCiB7CiAgICAgaWYgKG1fd2Fz
SGFuZGxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTIxLDY3ICsxMjEsNTEgQEAgYm9v
bCBFd2tfQXV0aF9SZXF1ZXN0OjphdXRoZW50aWNhdGUoY29uc3QgU3RyaW5nJiB1c2VybmFtZSwg
Y29uc3QgU3RyaW5nJiBwYXNzd28KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFd2tfQXV0
aF9SZXF1ZXN0Ojppc1JldHJ5aW5nKCkgY29uc3QKK2Jvb2wgRXdrQXV0aFJlcXVlc3Q6OmlzUmV0
cnlpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5w
cmV2aW91c0ZhaWx1cmVDb3VudCgpID4gMDsKIH0KIAotRXdrX0F1dGhfUmVxdWVzdCogZXdrX2F1
dGhfcmVxdWVzdF9yZWYoRXdrX0F1dGhfUmVxdWVzdCogcmVxdWVzdCkKLXsKLSAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7Ci0KLSAgICByZXF1ZXN0LT5yZWYo
KTsKLQotICAgIHJldHVybiByZXF1ZXN0OwotfQotCi12b2lkIGV3a19hdXRoX3JlcXVlc3RfdW5y
ZWYoRXdrX0F1dGhfUmVxdWVzdCogcmVxdWVzdCkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihyZXF1ZXN0KTsKLQotICAgIHJlcXVlc3QtPmRlcmVmKCk7Ci19Ci0KIGNvbnN0IGNo
YXIqIGV3a19hdXRoX3JlcXVlc3Rfc3VnZ2VzdGVkX3VzZXJuYW1lX2dldChjb25zdCBFd2tfQXV0
aF9SZXF1ZXN0KiByZXF1ZXN0KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChyZXF1ZXN0LCAwKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tB
dXRoUmVxdWVzdCwgcmVxdWVzdCwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+c3Vn
Z2VzdGVkVXNlcm5hbWUoKTsKKyAgICByZXR1cm4gaW1wbC0+c3VnZ2VzdGVkVXNlcm5hbWUoKTsK
IH0KIAogRWluYV9Cb29sIGV3a19hdXRoX3JlcXVlc3RfY2FuY2VsKEV3a19BdXRoX1JlcXVlc3Qq
IHJlcXVlc3QpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3Qs
IGZhbHNlKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tBdXRoUmVxdWVzdCwg
cmVxdWVzdCwgaW1wbCwgZmFsc2UpOwogCi0gICAgcmV0dXJuIHJlcXVlc3QtPmNvbnRpbnVlV2l0
aG91dENyZWRlbnRpYWwoKTsKKyAgICByZXR1cm4gaW1wbC0+Y29udGludWVXaXRob3V0Q3JlZGVu
dGlhbCgpOwogfQogCiBFaW5hX0Jvb2wgZXdrX2F1dGhfcmVxdWVzdF9hdXRoZW50aWNhdGUoRXdr
X0F1dGhfUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXNlcm5hbWUsIGNvbnN0IGNoYXIq
IHBhc3N3b3JkKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0
LCBmYWxzZSk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oRXdrQXV0aFJlcXVlc3Qs
IHJlcXVlc3QsIGltcGwsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwodXNlcm5hbWUsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
cGFzc3dvcmQsIGZhbHNlKTsKIAotICAgIHJldHVybiByZXF1ZXN0LT5hdXRoZW50aWNhdGUoU3Ry
aW5nOjpmcm9tVVRGOCh1c2VybmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpKTsKKyAg
ICByZXR1cm4gaW1wbC0+YXV0aGVudGljYXRlKFN0cmluZzo6ZnJvbVVURjgodXNlcm5hbWUpLCBT
dHJpbmc6OmZyb21VVEY4KHBhc3N3b3JkKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfYXV0aF9yZXF1
ZXN0X3JldHJ5aW5nX2dldChjb25zdCBFd2tfQXV0aF9SZXF1ZXN0KiByZXF1ZXN0KQogewotICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCBmYWxzZSk7CisgICAgRVdL
X09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrQXV0aFJlcXVlc3QsIHJlcXVlc3QsIGlt
cGwsIGZhbHNlKTsKIAotICAgIHJldHVybiByZXF1ZXN0LT5pc1JldHJ5aW5nKCk7CisgICAgcmV0
dXJuIGltcGwtPmlzUmV0cnlpbmcoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX2F1dGhfcmVxdWVz
dF9yZWFsbV9nZXQoY29uc3QgRXdrX0F1dGhfUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7CisgICAgRVdLX09CSl9HRVRf
SU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrQXV0aFJlcXVlc3QsIHJlcXVlc3QsIGltcGwsIDApOwog
Ci0gICAgcmV0dXJuIHJlcXVlc3QtPnJlYWxtKCk7CisgICAgcmV0dXJuIGltcGwtPnJlYWxtKCk7
CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19hdXRoX3JlcXVlc3RfaG9zdF9nZXQoY29uc3QgRXdrX0F1
dGhfUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwocmVxdWVzdCwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdr
QXV0aFJlcXVlc3QsIHJlcXVlc3QsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIHJlcXVlc3QtPmhv
c3QoKTsKKyAgICByZXR1cm4gaW1wbC0+aG9zdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2F1dGhfcmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2F1dGhfcmVxdWVzdC5oCmluZGV4IGViOTA4NjQuLjc4
YWJiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19h
dXRoX3JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
YXV0aF9yZXF1ZXN0LmgKQEAgLTM3LDI2ICszNywxMiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYK
IAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19BdXRoX1JlcXVlc3QgKi8KLXR5cGVk
ZWYgc3RydWN0IEV3a19BdXRoX1JlcXVlc3QgRXdrX0F1dGhfUmVxdWVzdDsKLQogLyoqCi0gKiBJ
bmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgotICoKLSAq
IEBwYXJhbSByZXF1ZXN0IHRoZSByZXF1ZXN0IG9iamVjdCB0byBpbmNyZWFzZSB0aGUgcmVmZXJl
bmNlIGNvdW50Ci0gKgotICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG9iamVjdCBvbiBzdWNj
ZXNzLCBAYyBOVUxMIG90aGVyd2lzZQotICovCi1FQVBJIEV3a19BdXRoX1JlcXVlc3QgKmV3a19h
dXRoX3JlcXVlc3RfcmVmKEV3a19BdXRoX1JlcXVlc3QgKnJlcXVlc3QpOwotCi0vKioKLSAqIERl
Y3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5
IGZyZWVpbmcgaXQuCi0gKgotICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMgMCwg
dGhlIHJlcXVlc3QgaXMgZnJlZWQKKyAqIERlY2xhcmUgRXdrX0F1dGhfUmVxdWVzdCBhcyBFd2tf
T2JqZWN0LgogICoKLSAqIEBwYXJhbSByZXF1ZXN0IHRoZSByZXF1ZXN0IG9iamVjdCB0byBkZWNy
ZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKiBAc2VlIEV3a19PYmplY3QKICAqLwotRUFQSSB2
b2lkIGV3a19hdXRoX3JlcXVlc3RfdW5yZWYoRXdrX0F1dGhfUmVxdWVzdCAqcmVxdWVzdCk7Cit0
eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19BdXRoX1JlcXVlc3Q7CiAKIC8qKgogICogUXVl
cmllcyB0aGUgc3VnZ2VzdGVkIHVzZXJuYW1lIHRvIGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2F1dGhf
cmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
YXV0aF9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCAzODQzYWQ5Li5hZDEyNzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXV0aF9yZXF1ZXN0X3ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXV0aF9yZXF1
ZXN0X3ByaXZhdGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBld2tfYXV0aF9yZXF1ZXN0
X3ByaXZhdGVfaAogCiAjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAi
ZXdrX29iamVjdF9wcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtMzUsMTMgKzM2LDE1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eTsKIH0KIAotY2xhc3MgRXdrX0F1dGhfUmVxdWVzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPEV3a19BdXRoX1JlcXVlc3Q+IHsKK2NsYXNzIEV3a0F1dGhSZXF1ZXN0IDogcHVi
bGljIEV3a19PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19BdXRo
X1JlcXVlc3Q+IGNyZWF0ZShXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkqIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQorICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tBdXRoUmVx
dWVzdCkKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a0F1dGhSZXF1ZXN0PiBjcmVhdGUoV2Vi
S2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KiBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrX0F1dGhfUmVxdWVzdChh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3
a0F1dGhSZXF1ZXN0KGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7CiAgICAgfQotICAgIH5Fd2tf
QXV0aF9SZXF1ZXN0KCk7CisgICAgfkV3a0F1dGhSZXF1ZXN0KCk7CiAKICAgICBjb25zdCBjaGFy
KiBzdWdnZXN0ZWRVc2VybmFtZSgpIGNvbnN0OwogICAgIGNvbnN0IGNoYXIqIHJlYWxtKCkgY29u
c3Q7CkBAIC01Miw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF1dGhlbnRpY2F0ZShjb25z
dCBTdHJpbmcmIHVzZXJuYW1lLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBFd2tfQXV0aF9SZXF1ZXN0KFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eSogYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOworICAgIGV4cGxpY2l0IEV3a0F1
dGhSZXF1ZXN0KFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSogYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpOwogCiAgICAgUmVmUHRyPFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eT4gbV9hdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKICAgICBib29sIG1fd2FzSGFu
ZGxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19i
YWNrX2ZvcndhcmRfbGlzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2JhY2tfZm9yd2FyZF9saXN0LmgKaW5kZXggMDlkYmM1YS4uOWE3OTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9s
aXN0LmgKQEAgLTk2LDcgKzk2LDcgQEAgRUFQSSB1bnNpZ25lZCBld2tfYmFja19mb3J3YXJkX2xp
c3RfY291bnQoRXdrX0JhY2tfRm9yd2FyZF9MaXN0ICpsaXN0KTsKICAqIEBwYXJhbSBsaW1pdCB0
aGUgbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHJpZXZlCiAgKgogICogQHJldHVybiBAYyBFaW5hX0xp
c3QgY29udGFpbmluZyBAYyBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSBlbGVtZW50cyBvciBA
YyBOVUxMIGluIGNhc2Ugb2YgZXJyb3IsCi0gKiAgICAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5k
IGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW1fdW5yZWYoKQorICogICAgICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMg
aXRlbXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNlIGV3a19vYmplY3RfdW5yZWYoKQog
ICogICAgICAgICAgICB0byBmcmVlIHRoZSBpdGVtcwogICovCiBFQVBJIEVpbmFfTGlzdCAqZXdr
X2JhY2tfZm9yd2FyZF9saXN0X25fYmFja19pdGVtc19jb3B5KGNvbnN0IEV3a19CYWNrX0Zvcndh
cmRfTGlzdCAqbGlzdCwgaW50IGxpbWl0KTsKQEAgLTExMSw3ICsxMTEsNyBAQCBFQVBJIEVpbmFf
TGlzdCAqZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fYmFja19pdGVtc19jb3B5KGNvbnN0IEV3a19C
YWNrX0ZvcndhcmRfTAogICogQHBhcmFtIGxpbWl0IHRoZSBudW1iZXIgb2YgaXRlbXMgdG8gcmV0
cmlldmUKICAqCiAgKiBAcmV0dXJuIEBjIEVpbmFfTGlzdCBjb250YWluaW5nIEBjIEV3a19CYWNr
X0ZvcndhcmRfTGlzdF9JdGVtIGVsZW1lbnRzIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBlcnJvciwK
LSAqICAgICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNob3VsZCBiZSBmcmVl
ZCBhZnRlciB1c2UuIFVzZSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91bnJlZigpCisgKiAg
ICAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0
ZXIgdXNlLiBVc2UgZXdrX29iamVjdF91bnJlZigpCiAgKiAgICAgICAgICAgIHRvIGZyZWUgdGhl
IGl0ZW1zCiAgKi8KIEVBUEkgRWluYV9MaXN0ICpld2tfYmFja19mb3J3YXJkX2xpc3Rfbl9mb3J3
YXJkX2l0ZW1zX2NvcHkoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0ICpsaXN0LCBpbnQgbGlt
aXQpOwpAQCAtMTI0LDcgKzEyNCw3IEBAIEVBUEkgRWluYV9MaXN0ICpld2tfYmFja19mb3J3YXJk
X2xpc3Rfbl9mb3J3YXJkX2l0ZW1zX2NvcHkoY29uc3QgRXdrX0JhY2tfRm9yd2FyCiAgKiBAcGFy
YW0gbGlzdCB0aGUgYmFjay1mb3J3YXJkIGxpc3QgaW5zdGFuY2UKICAqCiAgKiBAcmV0dXJuIEBj
IEVpbmFfTGlzdCBjb250YWluaW5nIEBjIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtIGVsZW1l
bnRzIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBlcnJvciwKLSAqICAgICAgICAgICAgdGhlIEVpbmFf
TGlzdCBhbmQgaXRzIGl0ZW1zIHNob3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuIFVzZSBld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbV91bnJlZigpCisgKiAgICAgICAgICAgIHRoZSBFaW5hX0xpc3Qg
YW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZXdrX29iamVjdF91
bnJlZigpCiAgKiAgICAgICAgICAgIHRvIGZyZWUgdGhlIGl0ZW1zCiAgKgogICogQHNlZSBld2tf
YmFja19mb3J3YXJkX2xpc3Rfbl9iYWNrX2l0ZW1zX2NvcHkKQEAgLTE0MCw3ICsxNDAsNyBAQCBF
QVBJIEVpbmFfTGlzdCAqZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2FyZF9pdGVtc19jb3B5
KGNvbnN0IEV3a19CYWNrX0ZvcndhcgogICogQHBhcmFtIGxpc3QgdGhlIGJhY2stZm9yd2FyZCBs
aXN0IGluc3RhbmNlCiAgKgogICogQHJldHVybiBAYyBFaW5hX0xpc3QgY29udGFpbmluZyBAYyBF
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSBlbGVtZW50cyBvciBAYyBOVUxMIGluIGNhc2Ugb2Yg
ZXJyb3IsCi0gKiAgICAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQg
YmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdW5yZWYo
KQorICogICAgICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJlIGZy
ZWVkIGFmdGVyIHVzZS4gVXNlIGV3a19vYmplY3RfdW5yZWYoKQogICogICAgICAgICAgICB0byBm
cmVlIHRoZSBpdGVtcwogICoKICAqIEBzZWUgZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2Fy
ZF9pdGVtc19jb3B5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggZTYyNGFiOS4uMjQwNGQ5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZh
dGUuaApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVk
ZSAiZXdrX29iamVjdF9wcml2YXRlLmgiCiAKLWNsYXNzIEV3a19VcmxfU2NoZW1lX1JlcXVlc3Q7
CiBjbGFzcyBFd2tfQ29va2llX01hbmFnZXI7CiBjbGFzcyBFd2tfRmF2aWNvbl9EYXRhYmFzZTsK
IApAQCAtNzcsOCArNzYsNiBAQCBwdWJsaWM6CiAKICAgICBXS0NvbnRleHRSZWYgd2tDb250ZXh0
KCk7CiAKLSAgICB2b2lkIHVybFNjaGVtZVJlcXVlc3RSZWNlaXZlZChFd2tfVXJsX1NjaGVtZV9S
ZXF1ZXN0Kik7Ci0KICAgICBXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVmbCogZG93bmxvYWRNYW5h
Z2VyKCkgY29uc3Q7CiAKICAgICBXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKiBoaXN0
b3J5Q2xpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfZG93bmxvYWRfam9iLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19kb3dubG9hZF9qb2IuY3BwCmluZGV4IDUwYzM0YjcuLjNhZDdkNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a19Eb3du
bG9hZF9Kb2I6OkV3a19Eb3dubG9hZF9Kb2IoV2ViS2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9h
ZCwgRXdrVmlld0ltcGwqIHZpZXdJbXBsKQorRXdrRG93bmxvYWRKb2I6OkV3a0Rvd25sb2FkSm9i
KFdlYktpdDo6RG93bmxvYWRQcm94eSogZG93bmxvYWQsIEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCkK
ICAgICA6IG1fZG93bmxvYWRQcm94eShkb3dubG9hZCkKICAgICAsIG1fdmlld0ltcGwodmlld0lt
cGwpCiAgICAgLCBtX3N0YXRlKEVXS19ET1dOTE9BRF9KT0JfU1RBVEVfTk9UX1NUQVJURUQpCkBA
IC00NSwyNyArNDUsMTEgQEAgRXdrX0Rvd25sb2FkX0pvYjo6RXdrX0Rvd25sb2FkX0pvYihXZWJL
aXQ6OkRvd25sb2FkUHJveHkqIGRvd25sb2FkLCBFd2tWaWV3SW1wbCoKICAgICAsIG1fZG93bmxv
YWRlZCgwKQogeyB9CiAKLUV3a19Eb3dubG9hZF9Kb2IqIGV3a19kb3dubG9hZF9qb2JfcmVmKEV3
a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChkb3dubG9hZCwgMCk7Ci0KLSAgICBkb3dubG9hZC0+cmVmKCk7Ci0KLSAgICByZXR1
cm4gZG93bmxvYWQ7Ci19Ci0KLXZvaWQgZXdrX2Rvd25sb2FkX2pvYl91bnJlZihFd2tfRG93bmxv
YWRfSm9iKiBkb3dubG9hZCkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkb3du
bG9hZCk7Ci0KLSAgICBkb3dubG9hZC0+ZGVyZWYoKTsKLX0KLQogLyoqCiAgKiBAaW50ZXJuYWwK
ICAqIFF1ZXJpZXMgdGhlIGlkZW50aWZpZXIgZm9yIHRoaXMgZG93bmxvYWQKICAqLwotdWludDY0
X3QgRXdrX0Rvd25sb2FkX0pvYjo6aWQoKSBjb25zdAordWludDY0X3QgRXdrRG93bmxvYWRKb2I6
OmlkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5LT5kb3dubG9hZElEKCk7
CiB9CkBAIC03NSwzMSArNTksMzEgQEAgdWludDY0X3QgRXdrX0Rvd25sb2FkX0pvYjo6aWQoKSBj
b25zdAogICogUmV0dXJucyB0aGUgdmlldyB0aGlzIGRvd25sb2FkIGlzIGF0dGFjaGVkIHRvLgog
ICogVGhlIHZpZXcgaXMgbmVlZGVkIHRvIHNlbmQgbm90aWZpY2F0aW9uIHNpZ25hbHMuCiAgKi8K
LUV3a1ZpZXdJbXBsKiBFd2tfRG93bmxvYWRfSm9iOjp2aWV3SW1wbCgpIGNvbnN0CitFd2tWaWV3
SW1wbCogRXdrRG93bmxvYWRKb2I6OnZpZXdJbXBsKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92
aWV3SW1wbDsKIH0KIAogRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSBld2tfZG93bmxvYWRfam9iX3N0
YXRlX2dldChjb25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKIHsKLSAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZG93bmxvYWQsIEVXS19ET1dOTE9BRF9KT0JfU1RBVEVf
VU5LTk9XTik7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrRG93bmxv
YWRKb2IsIGRvd25sb2FkLCBpbXBsLCBFV0tfRE9XTkxPQURfSk9CX1NUQVRFX1VOS05PV04pOwog
Ci0gICAgcmV0dXJuIGRvd25sb2FkLT5zdGF0ZSgpOworICAgIHJldHVybiBpbXBsLT5zdGF0ZSgp
OwogfQogCi1Fd2tfRG93bmxvYWRfSm9iX1N0YXRlIEV3a19Eb3dubG9hZF9Kb2I6OnN0YXRlKCkg
Y29uc3QKK0V3a19Eb3dubG9hZF9Kb2JfU3RhdGUgRXdrRG93bmxvYWRKb2I6OnN0YXRlKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9zdGF0ZTsKIH0KIAogRXdrX1VybF9SZXF1ZXN0KiBld2tfZG93
bmxvYWRfam9iX3JlcXVlc3RfZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkKQog
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3dubG9hZCwgMCk7CisgICAg
RVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrRG93bmxvYWRKb2IsIGRvd25sb2Fk
LCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkb3dubG9hZC0+cmVxdWVzdCgpOworICAgIHJldHVy
biBpbXBsLT5yZXF1ZXN0KCk7CiB9CiAKLUV3a1VybFJlcXVlc3QqIEV3a19Eb3dubG9hZF9Kb2I6
OnJlcXVlc3QoKSBjb25zdAorRXdrVXJsUmVxdWVzdCogRXdrRG93bmxvYWRKb2I6OnJlcXVlc3Qo
KSBjb25zdAogewogICAgIGlmICghbV9yZXF1ZXN0KSB7CiAgICAgICAgIFdLUmV0YWluUHRyPFdL
VVJMUmVxdWVzdFJlZj4gd2tVUkxSZXF1ZXN0KEFkb3B0V0ssIHRvQVBJKFdlYlVSTFJlcXVlc3Q6
OmNyZWF0ZShtX2Rvd25sb2FkUHJveHktPnJlcXVlc3QoKSkubGVha1JlZigpKSk7CkBAIC0xMTEs
NjMgKzk1LDYzIEBAIEV3a1VybFJlcXVlc3QqIEV3a19Eb3dubG9hZF9Kb2I6OnJlcXVlc3QoKSBj
b25zdAogCiBFd2tfVXJsX1Jlc3BvbnNlKiBld2tfZG93bmxvYWRfam9iX3Jlc3BvbnNlX2dldChj
b25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoZG93bmxvYWQsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVU
VVJOKGNvbnN0IEV3a0Rvd25sb2FkSm9iLCBkb3dubG9hZCwgaW1wbCwgMCk7CiAKLSAgICByZXR1
cm4gZG93bmxvYWQtPnJlc3BvbnNlKCk7CisgICAgcmV0dXJuIGltcGwtPnJlc3BvbnNlKCk7CiB9
CiAKLUV3a1VybFJlc3BvbnNlKiBFd2tfRG93bmxvYWRfSm9iOjpyZXNwb25zZSgpIGNvbnN0CitF
d2tVcmxSZXNwb25zZSogRXdrRG93bmxvYWRKb2I6OnJlc3BvbnNlKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9yZXNwb25zZS5nZXQoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX2Rvd25sb2FkX2pv
Yl9kZXN0aW5hdGlvbl9nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQpCiB7Ci0g
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRvd25sb2FkLCAwKTsKKyAgICBFV0tf
T0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tEb3dubG9hZEpvYiwgZG93bmxvYWQsIGlt
cGwsIDApOwogCi0gICAgcmV0dXJuIGRvd25sb2FkLT5kZXN0aW5hdGlvbigpOworICAgIHJldHVy
biBpbXBsLT5kZXN0aW5hdGlvbigpOwogfQogCi1jb25zdCBjaGFyKiBFd2tfRG93bmxvYWRfSm9i
OjpkZXN0aW5hdGlvbigpIGNvbnN0Citjb25zdCBjaGFyKiBFd2tEb3dubG9hZEpvYjo6ZGVzdGlu
YXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBtX2Rlc3RpbmF0aW9uOwogfQogCiBFaW5hX0Jv
b2wgZXdrX2Rvd25sb2FkX2pvYl9kZXN0aW5hdGlvbl9zZXQoRXdrX0Rvd25sb2FkX0pvYiogZG93
bmxvYWQsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uKQogewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChkb3dubG9hZCwgZmFsc2UpOworICAgIEVXS19PQkpfR0VUX0lNUExfT1Jf
UkVUVVJOKEV3a0Rvd25sb2FkSm9iLCBkb3dubG9hZCwgaW1wbCwgZmFsc2UpOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkZXN0aW5hdGlvbiwgZmFsc2UpOwogCi0gICAgZG93
bmxvYWQtPnNldERlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKTsKKyAgICBpbXBsLT5zZXREZXN0aW5h
dGlvbihkZXN0aW5hdGlvbik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFd2tfRG93
bmxvYWRfSm9iOjpzZXREZXN0aW5hdGlvbihjb25zdCBjaGFyKiBkZXN0aW5hdGlvbikKK3ZvaWQg
RXdrRG93bmxvYWRKb2I6OnNldERlc3RpbmF0aW9uKGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uKQog
ewogICAgIG1fZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsKIH0KIAogY29uc3QgY2hhciogZXdr
X2Rvd25sb2FkX2pvYl9zdWdnZXN0ZWRfZmlsZW5hbWVfZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9K
b2IqIGRvd25sb2FkKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3du
bG9hZCwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrRG93bmxv
YWRKb2IsIGRvd25sb2FkLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkb3dubG9hZC0+c3VnZ2Vz
dGVkRmlsZU5hbWUoKTsKKyAgICByZXR1cm4gaW1wbC0+c3VnZ2VzdGVkRmlsZU5hbWUoKTsKIH0K
IAotY29uc3QgY2hhciogRXdrX0Rvd25sb2FkX0pvYjo6c3VnZ2VzdGVkRmlsZU5hbWUoKSBjb25z
dAorY29uc3QgY2hhciogRXdrRG93bmxvYWRKb2I6OnN1Z2dlc3RlZEZpbGVOYW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9zdWdnZXN0ZWRGaWxlbmFtZTsKIH0KIAogRWluYV9Cb29sIGV3a19k
b3dubG9hZF9qb2JfY2FuY2VsKEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkKQogewotICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3dubG9hZCwgZmFsc2UpOworICAgIEVXS19P
QkpfR0VUX0lNUExfT1JfUkVUVVJOKEV3a0Rvd25sb2FkSm9iLCBkb3dubG9hZCwgaW1wbCwgZmFs
c2UpOwogCi0gICAgcmV0dXJuIGRvd25sb2FkLT5jYW5jZWwoKTsKKyAgICByZXR1cm4gaW1wbC0+
Y2FuY2VsKCk7CiB9CiAKLWJvb2wgRXdrX0Rvd25sb2FkX0pvYjo6Y2FuY2VsKCkKK2Jvb2wgRXdr
RG93bmxvYWRKb2I6OmNhbmNlbCgpCiB7CiAgICAgaWYgKG1fc3RhdGUgIT0gRVdLX0RPV05MT0FE
X0pPQl9TVEFURV9ET1dOTE9BRElORykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc5LDEy
ICsxNjMsMTIgQEAgYm9vbCBFd2tfRG93bmxvYWRfSm9iOjpjYW5jZWwoKQogCiBkb3VibGUgZXdr
X2Rvd25sb2FkX2pvYl9lc3RpbWF0ZWRfcHJvZ3Jlc3NfZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9K
b2IqIGRvd25sb2FkKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3du
bG9hZCwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrRG93bmxv
YWRKb2IsIGRvd25sb2FkLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkb3dubG9hZC0+ZXN0aW1h
dGVkUHJvZ3Jlc3MoKTsKKyAgICByZXR1cm4gaW1wbC0+ZXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0K
IAotZG91YmxlIEV3a19Eb3dubG9hZF9Kb2I6OmVzdGltYXRlZFByb2dyZXNzKCkgY29uc3QKK2Rv
dWJsZSBFd2tEb3dubG9hZEpvYjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogewogICAgIGlm
ICghbV9yZXNwb25zZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xOTgsMTIgKzE4MiwxMiBAQCBk
b3VibGUgRXdrX0Rvd25sb2FkX0pvYjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogCiBkb3Vi
bGUgZXdrX2Rvd25sb2FkX2pvYl9lbGFwc2VkX3RpbWVfZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9K
b2IqIGRvd25sb2FkKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3du
bG9hZCwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrRG93bmxv
YWRKb2IsIGRvd25sb2FkLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkb3dubG9hZC0+ZWxhcHNl
ZFRpbWUoKTsKKyAgICByZXR1cm4gaW1wbC0+ZWxhcHNlZFRpbWUoKTsKIH0KIAotZG91YmxlIEV3
a19Eb3dubG9hZF9Kb2I6OmVsYXBzZWRUaW1lKCkgY29uc3QKK2RvdWJsZSBFd2tEb3dubG9hZEpv
Yjo6ZWxhcHNlZFRpbWUoKSBjb25zdAogewogICAgIC8vIERvd25sb2FkIGhhcyBub3Qgc3RhcnRl
ZCB5ZXQuCiAgICAgaWYgKG1fc3RhcnRUaW1lIDwgMCkKQEAgLTIyMiw3ICsyMDYsNyBAQCBkb3Vi
bGUgRXdrX0Rvd25sb2FkX0pvYjo6ZWxhcHNlZFRpbWUoKSBjb25zdAogICogQGludGVybmFsCiAg
KiBTZXRzIHRoZSBVUkwgQGEgcmVzcG9uc2UgZm9yIHRoaXMgQGEgZG93bmxvYWQuCiAgKi8KLXZv
aWQgRXdrX0Rvd25sb2FkX0pvYjo6c2V0UmVzcG9uc2UoUGFzc1JlZlB0cjxFd2tVcmxSZXNwb25z
ZT4gcmVzcG9uc2UpCit2b2lkIEV3a0Rvd25sb2FkSm9iOjpzZXRSZXNwb25zZShQYXNzUmVmUHRy
PEV3a1VybFJlc3BvbnNlPiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQocmVzcG9uc2UpOwogCkBA
IC0yMzMsNyArMjE3LDcgQEAgdm9pZCBFd2tfRG93bmxvYWRfSm9iOjpzZXRSZXNwb25zZShQYXNz
UmVmUHRyPEV3a1VybFJlc3BvbnNlPiByZXNwb25zZSkKICAqIEBpbnRlcm5hbAogICogU2V0cyB0
aGUgc3VnZ2VzdGVkIGZpbGUgbmFtZSBmb3IgdGhpcyBAYSBkb3dubG9hZC4KICAqLwotdm9pZCBF
d2tfRG93bmxvYWRfSm9iOjpzZXRTdWdnZXN0ZWRGaWxlTmFtZShjb25zdCBjaGFyKiBzdWdnZXN0
ZWRGaWxlbmFtZSkKK3ZvaWQgRXdrRG93bmxvYWRKb2I6OnNldFN1Z2dlc3RlZEZpbGVOYW1lKGNv
bnN0IGNoYXIqIHN1Z2dlc3RlZEZpbGVuYW1lKQogewogICAgIG1fc3VnZ2VzdGVkRmlsZW5hbWUg
PSBzdWdnZXN0ZWRGaWxlbmFtZTsKIH0KQEAgLTI0Miw3ICsyMjYsNyBAQCB2b2lkIEV3a19Eb3du
bG9hZF9Kb2I6OnNldFN1Z2dlc3RlZEZpbGVOYW1lKGNvbnN0IGNoYXIqIHN1Z2dlc3RlZEZpbGVu
YW1lKQogICogQGludGVybmFsCiAgKiBSZXBvcnQgYSBnaXZlbiBhbW91bnQgb2YgZGF0YSB3YXMg
cmVjZWl2ZWQuCiAgKi8KLXZvaWQgRXdrX0Rvd25sb2FkX0pvYjo6aW5jcmVtZW50UmVjZWl2ZWRE
YXRhKHVpbnQ2NF90IGxlbmd0aCkKK3ZvaWQgRXdrRG93bmxvYWRKb2I6OmluY3JlbWVudFJlY2Vp
dmVkRGF0YSh1aW50NjRfdCBsZW5ndGgpCiB7CiAgICAgbV9kb3dubG9hZGVkICs9IGxlbmd0aDsK
IH0KQEAgLTI1MSw3ICsyMzUsNyBAQCB2b2lkIEV3a19Eb3dubG9hZF9Kb2I6OmluY3JlbWVudFJl
Y2VpdmVkRGF0YSh1aW50NjRfdCBsZW5ndGgpCiAgKiBAaW50ZXJuYWwKICAqIFNldHMgdGhlIHN0
YXRlIG9mIHRoZSBkb3dubG9hZC4KICAqLwotdm9pZCBFd2tfRG93bmxvYWRfSm9iOjpzZXRTdGF0
ZShFd2tfRG93bmxvYWRfSm9iX1N0YXRlIHN0YXRlKQordm9pZCBFd2tEb3dubG9hZEpvYjo6c2V0
U3RhdGUoRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSBzdGF0ZSkKIHsKICAgICBtX3N0YXRlID0gc3Rh
dGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19k
b3dubG9hZF9qb2IuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3du
bG9hZF9qb2IuaAppbmRleCAxNTZmMjlhLi40Nzg0ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5oCkBAIC00Myw4ICs0Mywx
MiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9y
IEV3a19Eb3dubG9hZF9Kb2IgKi8KLXR5cGVkZWYgc3RydWN0IEV3a19Eb3dubG9hZF9Kb2IgRXdr
X0Rvd25sb2FkX0pvYjsKKy8qKgorICogRGVjbGFyZSBFd2tfRG93bmxvYWRfSm9iIGFzIEV3a19P
YmplY3QuCisgKgorICogQHNlZSBFd2tfT2JqZWN0CisgKi8KK3R5cGVkZWYgc3RydWN0IEV3a19P
YmplY3QgRXdrX0Rvd25sb2FkX0pvYjsKIAogLy8vIERlZmluZXMgdGhlIHBvc3NpYmxlIHN0YXRl
cyBvZiBhIGRvd25sb2FkLgogZW51bSBFd2tfRG93bmxvYWRfSm9iX1N0YXRlIHsKQEAgLTY3LDI0
ICs3MSw2IEBAIGVudW0gRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSB7CiB0eXBlZGVmIGVudW0gRXdr
X0Rvd25sb2FkX0pvYl9TdGF0ZSBFd2tfRG93bmxvYWRfSm9iX1N0YXRlOwogCiAvKioKLSAqIElu
Y3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICog
QHBhcmFtIGRvd25sb2FkIHRoZSBkb3dubG9hZCBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVy
ZW5jZSBjb3VudAotICoKLSAqIEByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBvYmplY3Qgb24gc3Vj
Y2VzcywgQGMgTlVMTCBvdGhlcndpc2UuCi0gKi8KLUVBUEkgRXdrX0Rvd25sb2FkX0pvYiAqZXdr
X2Rvd25sb2FkX2pvYl9yZWYoRXdrX0Rvd25sb2FkX0pvYiAqZG93bmxvYWQpOwotCi0vKioKLSAq
IERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3Np
Ymx5IGZyZWVpbmcgaXQuCi0gKgotICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMg
MCwgdGhlIGRvd25sb2FkIGlzIGZyZWVkLgotICoKLSAqIEBwYXJhbSBkb3dubG9hZCB0aGUgZG93
bmxvYWQgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKLSAqLwotRUFQSSB2
b2lkIGV3a19kb3dubG9hZF9qb2JfdW5yZWYoRXdrX0Rvd25sb2FkX0pvYiAqZG93bmxvYWQpOwot
Ci0vKioKICAqIFF1ZXJ5IHRoZSBzdGF0ZSBmb3IgdGhpcyBkb3dubG9hZC4KICAqCiAgKiBAcGFy
YW0gZG93bmxvYWQgYSAjRXdrX0Rvd25sb2FkX0pvYiB0byBxdWVyeS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2
YXRlLmgKaW5kZXggNDdkMmYyZC4uZDkwMzg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKQEAg
LTQwLDExICs0MCwxMyBAQCBjbGFzcyBEb3dubG9hZFByb3h5OwogCiBjbGFzcyBFd2tWaWV3SW1w
bDsKIAotY2xhc3MgRXdrX0Rvd25sb2FkX0pvYiA6IHB1YmxpYyBSZWZDb3VudGVkPEV3a19Eb3du
bG9hZF9Kb2I+IHsKK2NsYXNzIEV3a0Rvd25sb2FkSm9iIDogcHVibGljIEV3a19PYmplY3Qgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19Eb3dubG9hZF9Kb2I+IGNyZWF0ZShX
ZWJLaXQ6OkRvd25sb2FkUHJveHkqIGRvd25sb2FkLCBFd2tWaWV3SW1wbCogdmlld0ltcGwpCisg
ICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a0Rvd25sb2FkSm9iKQorCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RXdrRG93bmxvYWRKb2I+IGNyZWF0ZShXZWJLaXQ6OkRvd25sb2FkUHJveHkqIGRvd25s
b2FkLCBFd2tWaWV3SW1wbCogdmlld0ltcGwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEV3a19Eb3dubG9hZF9Kb2IoZG93bmxvYWQsIHZpZXdJbXBsKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRXdrRG93bmxvYWRKb2IoZG93bmxvYWQsIHZpZXdJbXBsKSk7CiAg
ICAgfQogCiAgICAgdWludDY0X3QgaWQoKSBjb25zdDsKQEAgLTcwLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgaW5jcmVtZW50UmVjZWl2ZWREYXRhKHVpbnQ2NF90IGxlbmd0aCk7CiAKIHBy
aXZhdGU6Ci0gICAgRXdrX0Rvd25sb2FkX0pvYihXZWJLaXQ6OkRvd25sb2FkUHJveHkqIGRvd25s
b2FkLCBFd2tWaWV3SW1wbCogdmlld0ltcGwpOworICAgIEV3a0Rvd25sb2FkSm9iKFdlYktpdDo6
RG93bmxvYWRQcm94eSogZG93bmxvYWQsIEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCk7CiAKICAgICBX
ZWJLaXQ6OkRvd25sb2FkUHJveHkqIG1fZG93bmxvYWRQcm94eTsKICAgICBFd2tWaWV3SW1wbCog
bV92aWV3SW1wbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKaW5kZXggMDRkOTExOC4uODg5MTczMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hl
bWVfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAotRXdrX1VybF9TY2hlbWVfUmVxdWVzdDo6RXdrX1VybF9TY2hlbWVfUmVx
dWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBXS1VSTFJlZiB1cmwsIHVpbnQ2
NF90IHJlcXVlc3RJRCkKK0V3a1VybFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVtZVJlcXVlc3Qo
V0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tVUkxSZWYgdXJsLCB1aW50NjRfdCBy
ZXF1ZXN0SUQpCiAgICAgOiBtX3drUmVxdWVzdE1hbmFnZXIobWFuYWdlcikKICAgICAsIG1fdXJs
KHVybCkKICAgICAsIG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKQEAgLTQzLDI3ICs0MywyNyBAQCBF
d2tfVXJsX1NjaGVtZV9SZXF1ZXN0OjpFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0KFdLU291cFJlcXVl
c3RNYW5hZ2VyUmVmIG1hbmFnZXIsCiAgICAgbV9wYXRoID0gc291cFVSSS0+cGF0aDsKIH0KIAot
dWludDY0X3QgRXdrX1VybF9TY2hlbWVfUmVxdWVzdDo6aWQoKSBjb25zdAordWludDY0X3QgRXdr
VXJsU2NoZW1lUmVxdWVzdDo6aWQoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlcXVlc3RJRDsK
IH0KIAotY29uc3QgY2hhciogRXdrX1VybF9TY2hlbWVfUmVxdWVzdDo6dXJsKCkgY29uc3QKK2Nv
bnN0IGNoYXIqIEV3a1VybFNjaGVtZVJlcXVlc3Q6OnVybCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fdXJsOwogfQogCi1jb25zdCBjaGFyKiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0OjpzY2hlbWUo
KSBjb25zdAorY29uc3QgY2hhciogRXdrVXJsU2NoZW1lUmVxdWVzdDo6c2NoZW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9zY2hlbWU7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19VcmxfU2NoZW1l
X1JlcXVlc3Q6OnBhdGgoKSBjb25zdAorY29uc3QgY2hhciogRXdrVXJsU2NoZW1lUmVxdWVzdDo6
cGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGF0aDsKIH0KIAotdm9pZCBFd2tfVXJsX1Nj
aGVtZV9SZXF1ZXN0OjpmaW5pc2goY29uc3Qgdm9pZCogY29udGVudERhdGEsIHVpbnQ2NF90IGNv
bnRlbnRMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQordm9pZCBFd2tVcmxTY2hlbWVSZXF1
ZXN0OjpmaW5pc2goY29uc3Qgdm9pZCogY29udGVudERhdGEsIHVpbnQ2NF90IGNvbnRlbnRMZW5n
dGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQogewogICAgIFdLUmV0YWluUHRyPFdLRGF0YVJlZj4g
d2tEYXRhKEFkb3B0V0ssIFdLRGF0YUNyZWF0ZShjb250ZW50TGVuZ3RoID8gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oY29udGVudERhdGEpIDogMCwgY29udGVudExlbmd0
aCkpOwogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a01pbWVUeXBlID0gbWltZVR5cGUg
PyBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG1pbWVUeXBlKSkgOiAwOwpA
QCAtNzIsNDcgKzcyLDMyIEBAIHZvaWQgRXdrX1VybF9TY2hlbWVfUmVxdWVzdDo6ZmluaXNoKGNv
bnN0IHZvaWQqIGNvbnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50TGVuCiAgICAgV0tTb3VwUmVx
dWVzdE1hbmFnZXJEaWRIYW5kbGVVUklSZXF1ZXN0KG1fd2tSZXF1ZXN0TWFuYWdlci5nZXQoKSwg
d2tEYXRhLmdldCgpLCBjb250ZW50TGVuZ3RoLCB3a01pbWVUeXBlLmdldCgpLCBtX3JlcXVlc3RJ
RCk7CiB9CiAKLUV3a19VcmxfU2NoZW1lX1JlcXVlc3QqIGV3a191cmxfc2NoZW1lX3JlcXVlc3Rf
cmVmKEV3a19VcmxfU2NoZW1lX1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOwotICAgIHJlcXVlc3QtPnJlZigpOwotCi0g
ICAgcmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLXZvaWQgZXdrX3VybF9zY2hlbWVfcmVxdWVzdF91bnJl
ZihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0KiByZXF1ZXN0KQotewotICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOKHJlcXVlc3QpOwotCi0gICAgcmVxdWVzdC0+ZGVyZWYoKTsKLX0KLQogY29u
c3QgY2hhciogZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0KGNvbnN0IEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHJlcXVlc3QsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0
IEV3a1VybFNjaGVtZVJlcXVlc3QsIHJlcXVlc3QsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIHJl
cXVlc3QtPnNjaGVtZSgpOworICAgIHJldHVybiBpbXBsLT5zY2hlbWUoKTsKIH0KIAogY29uc3Qg
Y2hhciogZXdrX3VybF9zY2hlbWVfcmVxdWVzdF91cmxfZ2V0KGNvbnN0IEV3a19VcmxfU2NoZW1l
X1JlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHJlcXVlc3QsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a1Vy
bFNjaGVtZVJlcXVlc3QsIHJlcXVlc3QsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIHJlcXVlc3Qt
PnVybCgpOworICAgIHJldHVybiBpbXBsLT51cmwoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3Vy
bF9zY2hlbWVfcmVxdWVzdF9wYXRoX2dldChjb25zdCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0KiBy
ZXF1ZXN0KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCAw
KTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tVcmxTY2hlbWVSZXF1
ZXN0LCByZXF1ZXN0LCBpbXBsLCAwKTsKIAotICAgIHJldHVybiByZXF1ZXN0LT5wYXRoKCk7Cisg
ICAgcmV0dXJuIGltcGwtPnBhdGgoKTsKIH0KIAogRWluYV9Cb29sIGV3a191cmxfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKEV3a19VcmxfU2NoZW1lX1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IHZvaWQq
IGNvbnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlw
ZSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgZmFsc2Up
OworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKEV3a1VybFNjaGVtZVJlcXVlc3QsIHJl
cXVlc3QsIGltcGwsIGZhbHNlKTsKIAotICAgIHJlcXVlc3QtPmZpbmlzaChjb250ZW50RGF0YSwg
Y29udGVudExlbmd0aCwgbWltZVR5cGUpOworICAgIGltcGwtPmZpbmlzaChjb250ZW50RGF0YSwg
Y29udGVudExlbmd0aCwgbWltZVR5cGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9y
ZXF1ZXN0LmgKaW5kZXggY2UwMWFmYy4uNjJiNzIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuaApAQCAt
MzcsMjYgKzM3LDEyIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqLwotdHlwZWRlZiBzdHJ1Y3QgRXdr
X1VybF9TY2hlbWVfUmVxdWVzdCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0OwotCiAvKioKLSAqIElu
Y3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICog
QHBhcmFtIHJlcXVlc3QgdGhlIFVSTCBzY2hlbWUgcmVxdWVzdCBvYmplY3QgdG8gaW5jcmVhc2Ug
dGhlIHJlZmVyZW5jZSBjb3VudAotICoKLSAqIEByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBvYmpl
Y3Qgb24gc3VjY2VzcywgQGMgTlVMTCBvdGhlcndpc2UuCi0gKi8KLUVBUEkgRXdrX1VybF9TY2hl
bWVfUmVxdWVzdCAqZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9yZWYoRXdrX1VybF9TY2hlbWVfUmVx
dWVzdCAqcmVxdWVzdCk7Ci0KLS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQg
b2YgdGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRo
ZSByZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAsIHRoZSBVUkwgc2NoZW1lIHJlcXVlc3Qg
aXMgZnJlZWQuCisgKiBEZWNsYXJlIEV3a19VcmxfU2NoZW1lX1JlcXVlc3QgYXMgRXdrX09iamVj
dC4KICAqCi0gKiBAcGFyYW0gcmVxdWVzdCB0aGUgVVJMIHJlcXVlc3Qgb2JqZWN0IHRvIGRlY3Jl
YXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqIEBzZWUgRXdrX09iamVjdAogICovCi1FQVBJIHZv
aWQgZXdrX3VybF9zY2hlbWVfcmVxdWVzdF91bnJlZihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICpy
ZXF1ZXN0KTsKK3R5cGVkZWYgc3RydWN0IEV3a19PYmplY3QgRXdrX1VybF9TY2hlbWVfUmVxdWVz
dDsKIAogLyoqCiAgKiBRdWVyeSB0aGUgVVJMIHNjaGVtZSBmb3IgdGhpcyByZXF1ZXN0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVf
cmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCAzMGZkNmY1Li42NWZjOWY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9y
ZXF1ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtMzEsMTggKzMxLDIxIEBACiAjaW5j
bHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNp
bmNsdWRlICJXS1NvdXBSZXF1ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgImV3a19vYmplY3RfcHJp
dmF0ZS5oIgogCiAvKioKLSAqIFxzdHJ1Y3QgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3QKKyAqIFxz
dHJ1Y3QgIEV3a1VybFNjaGVtZVJlcXVlc3QKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBVUkwg
c2NoZW1lIHJlcXVlc3QgZGF0YS4KICAqLwotc3RydWN0IEV3a19VcmxfU2NoZW1lX1JlcXVlc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0PiB7Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrX1VybF9TY2hlbWVfUmVxdWVzdD4gY3JlYXRlKFdLU291cFJlcXVlc3RN
YW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVybCwgdWludDY0X3QgcmVxdWVzdElEKQorY2xh
c3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tfT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJsU2NoZW1lUmVxdWVzdCkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwUmVxdWVzdE1hbmFnZXJS
ZWYgbWFuYWdlciwgV0tVUkxSZWYgdXJsLCB1aW50NjRfdCByZXF1ZXN0SUQpCiAgICAgewogICAg
ICAgICBpZiAoIW1hbmFnZXIgfHwgIXVybCkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrX1VybF9TY2hlbWVfUmVxdWVzdChtYW5hZ2VyLCB1
cmwsIHJlcXVlc3RJRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFNjaGVt
ZVJlcXVlc3QobWFuYWdlciwgdXJsLCByZXF1ZXN0SUQpKTsKICAgICB9CiAKICAgICB1aW50NjRf
dCBpZCgpIGNvbnN0OwpAQCAtNTMsNyArNTYsNyBAQCBzdHJ1Y3QgRXdrX1VybF9TY2hlbWVfUmVx
dWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPEV3a19VcmxfU2NoZW1lX1JlcXVlc3Q+IHsKICAgICB2
b2lkIGZpbmlzaChjb25zdCB2b2lkKiBjb250ZW50RGF0YSwgdWludDY0X3QgY29udGVudExlbmd0
aCwgY29uc3QgY2hhciogbWltZVR5cGUpOwogCiBwcml2YXRlOgotICAgIEV3a19VcmxfU2NoZW1l
X1JlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tVUkxSZWYgdXJsUmVm
LCB1aW50NjRfdCByZXF1ZXN0SUQpOworICAgIEV3a1VybFNjaGVtZVJlcXVlc3QoV0tTb3VwUmVx
dWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tVUkxSZWYgdXJsUmVmLCB1aW50NjRfdCByZXF1ZXN0
SUQpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTb3VwUmVxdWVzdE1hbmFnZXJSZWY+IG1fd2tSZXF1
ZXN0TWFuYWdlcjsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV91cmw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfYXV0aF9yZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml9hdXRoX3JlcXVlc3QuY3BwCmluZGV4IGNkZmFlN2IuLjA5M2I1MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9hdXRoX3JlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3Rf
ZXdrMl9hdXRoX3JlcXVlc3QuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHN0YXRpYyB2b2lkIG9uQXV0
aGVudGljYXRpb25SZXF1ZXN0KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mCiAgICAgRXdrX0F1dGhfUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PEV3a19B
dXRoX1JlcXVlc3QqPihldmVudEluZm8pOwogICAgIEFTU0VSVF9UUlVFKHJlcXVlc3QpOwogCi0g
ICAgKnJldHVyblJlcXVlc3QgPSBld2tfYXV0aF9yZXF1ZXN0X3JlZihyZXF1ZXN0KTsKKyAgICAq
cmV0dXJuUmVxdWVzdCA9IGV3a19vYmplY3RfcmVmKHJlcXVlc3QpOwogfQogCiBURVNUX0YoRVdL
MlVuaXRUZXN0QmFzZSwgZXdrX2F1dGhfcmVxdWVzdF9zdWNjZXNzKQpAQCAtMTAyLDcgKzEwMiw3
IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfYXV0aF9yZXF1ZXN0X3N1Y2Nlc3MpCiAK
ICAgICBBU1NFUlRfVFJVRShld2tfYXV0aF9yZXF1ZXN0X2F1dGhlbnRpY2F0ZShhdXRoZW50aWNh
dGlvblJlcXVlc3QsIFRFU1RfVVNFUk5BTUUsIFRFU1RfUEFTU1dPUkQpKTsKIAotICAgIGV3a19h
dXRoX3JlcXVlc3RfdW5yZWYoYXV0aGVudGljYXRpb25SZXF1ZXN0KTsKKyAgICBld2tfb2JqZWN0
X3VucmVmKGF1dGhlbnRpY2F0aW9uUmVxdWVzdCk7CiAKICAgICBBU1NFUlRfVFJVRSh3YWl0VW50
aWxUaXRsZUNoYW5nZWRUbygiRUZMV2ViS2l0MiBBdXRoZW50aWNhdGlvbiB0ZXN0IikpOwogfQpA
QCAtMTI4LDcgKzEyOCw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfYXV0aF9yZXF1
ZXN0X2ZhaWx1cmVfdGhlbl9zdWNjZXNzKQogCiAgICAgQVNTRVJUX1RSVUUoZXdrX2F1dGhfcmVx
dWVzdF9hdXRoZW50aWNhdGUoYXV0aGVudGljYXRpb25SZXF1ZXN0LCBURVNUX1VTRVJOQU1FLCAi
d3JvbmdwYXNzd29yZCIpKTsKIAotICAgIGV3a19hdXRoX3JlcXVlc3RfdW5yZWYoYXV0aGVudGlj
YXRpb25SZXF1ZXN0KTsKKyAgICBld2tfb2JqZWN0X3VucmVmKGF1dGhlbnRpY2F0aW9uUmVxdWVz
dCk7CiAgICAgYXV0aGVudGljYXRpb25SZXF1ZXN0ID0gMDsKIAogICAgIC8vIFdlIGV4cGVjdCBh
IHNlY29uZCBhdXRoZW50aWNhdGlvbiByZXF1ZXN0IHNpbmNlIHRoZSBmaXJzdCBvbmUgZmFpbGVk
LgpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfYXV0aF9y
ZXF1ZXN0X2ZhaWx1cmVfdGhlbl9zdWNjZXNzKQogICAgIC8vIE5vdyBwcm92aWRlIHRoZSByaWdo
dCBwYXNzd29yZC4KICAgICBBU1NFUlRfVFJVRShld2tfYXV0aF9yZXF1ZXN0X2F1dGhlbnRpY2F0
ZShhdXRoZW50aWNhdGlvblJlcXVlc3QsIFRFU1RfVVNFUk5BTUUsIFRFU1RfUEFTU1dPUkQpKTsK
IAotICAgIGV3a19hdXRoX3JlcXVlc3RfdW5yZWYoYXV0aGVudGljYXRpb25SZXF1ZXN0KTsKKyAg
ICBld2tfb2JqZWN0X3VucmVmKGF1dGhlbnRpY2F0aW9uUmVxdWVzdCk7CiAKICAgICBBU1NFUlRf
VFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiRUZMV2ViS2l0MiBBdXRoZW50aWNhdGlvbiB0
ZXN0IikpOwogfQpAQCAtMTg2LDcgKzE4Niw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBl
d2tfYXV0aF9yZXF1ZXN0X2NhbmNlbCkKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQod2ViVmlldygpLCAicmVzb3VyY2UscmVxdWVzdCxyZXNwb25zZSIsIG9uUmVzb3VyY2VMb2Fk
UmVzcG9uc2UsICZzdGF0dXNDb2RlKTsKIAogICAgIC8vIFdpbGwgYXR0ZW1wdCB0byBjb250aW51
ZSB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQuCi0gICAgZXdrX2F1dGhfcmVxdWVz
dF91bnJlZihhdXRoZW50aWNhdGlvblJlcXVlc3QpOworICAgIGV3a19vYmplY3RfdW5yZWYoYXV0
aGVudGljYXRpb25SZXF1ZXN0KTsKIAogICAgIHdoaWxlICghc3RhdHVzQ29kZSkKICAgICAgICAg
ZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcAppbmRleCBiNzU4Njc5Li44NjllNDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJF
ZmwuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBpbmxpbmUgRG93bmxvYWRNYW5hZ2VyRWZs
KiB0b0Rvd25sb2FkTWFuYWdlckVmbChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogCiBXS1N0cmlu
Z1JlZiBEb3dubG9hZE1hbmFnZXJFZmw6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1N0cmluZ1Jl
ZiBmaWxlbmFtZSwgYm9vbCogLyphbGxvd092ZXJ3cml0ZSovLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQogewotICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gdG9Eb3dubG9hZE1hbmFn
ZXJFZmwoY2xpZW50SW5mbyktPmRvd25sb2FkSm9iKHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxv
YWRJRCgpKTsKKyAgICBFd2tEb3dubG9hZEpvYiogZG93bmxvYWQgPSB0b0Rvd25sb2FkTWFuYWdl
ckVmbChjbGllbnRJbmZvKS0+ZG93bmxvYWRKb2IodG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9h
ZElEKCkpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CiAKICAgICBkb3dubG9hZC0+c2V0U3VnZ2Vz
dGVkRmlsZU5hbWUodG9JbXBsKGZpbGVuYW1lKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBA
IC02MiwxNCArNjIsMTQgQEAgV0tTdHJpbmdSZWYgRG93bmxvYWRNYW5hZ2VyRWZsOjpkZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXS0NvbnRleHQKIAogdm9pZCBEb3dubG9h
ZE1hbmFnZXJFZmw6OmRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRS
ZWYgd2tEb3dubG9hZCwgV0tVUkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewotICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gdG9Eb3dubG9h
ZE1hbmFnZXJFZmwoY2xpZW50SW5mbyktPmRvd25sb2FkSm9iKHRvSW1wbCh3a0Rvd25sb2FkKS0+
ZG93bmxvYWRJRCgpKTsKKyAgICBFd2tEb3dubG9hZEpvYiogZG93bmxvYWQgPSB0b0Rvd25sb2Fk
TWFuYWdlckVmbChjbGllbnRJbmZvKS0+ZG93bmxvYWRKb2IodG9JbXBsKHdrRG93bmxvYWQpLT5k
b3dubG9hZElEKCkpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CiAgICAgZG93bmxvYWQtPnNldFJl
c3BvbnNlKEV3a1VybFJlc3BvbnNlOjpjcmVhdGUod2tSZXNwb25zZSkpOwogfQogCiB2b2lkIERv
d25sb2FkTWFuYWdlckVmbDo6ZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rv
d25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIC8qcGF0aCovLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewotICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gdG9Eb3dubG9h
ZE1hbmFnZXJFZmwoY2xpZW50SW5mbyktPmRvd25sb2FkSm9iKHRvSW1wbCh3a0Rvd25sb2FkKS0+
ZG93bmxvYWRJRCgpKTsKKyAgICBFd2tEb3dubG9hZEpvYiogZG93bmxvYWQgPSB0b0Rvd25sb2Fk
TWFuYWdlckVmbChjbGllbnRJbmZvKS0+ZG93bmxvYWRKb2IodG9JbXBsKHdrRG93bmxvYWQpLT5k
b3dubG9hZElEKCkpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CiAKICAgICBkb3dubG9hZC0+c2V0
U3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9ET1dOTE9BRElORyk7CkBAIC03Nyw3ICs3Nyw3
IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRl
eHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3duCiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpk
aWRSZWNlaXZlRGF0YShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgdWlu
dDY0X3QgbGVuZ3RoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIEV3a19Eb3dubG9h
ZF9Kb2IqIGRvd25sb2FkID0gdG9Eb3dubG9hZE1hbmFnZXJFZmwoY2xpZW50SW5mbyktPmRvd25s
b2FkSm9iKHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpKTsKKyAgICBFd2tEb3dubG9h
ZEpvYiogZG93bmxvYWQgPSB0b0Rvd25sb2FkTWFuYWdlckVmbChjbGllbnRJbmZvKS0+ZG93bmxv
YWRKb2IodG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElEKCkpOwogICAgIEFTU0VSVChkb3du
bG9hZCk7CiAgICAgZG93bmxvYWQtPmluY3JlbWVudFJlY2VpdmVkRGF0YShsZW5ndGgpOwogfQpA
QCAtODYsNyArODYsNyBAQCB2b2lkIERvd25sb2FkTWFuYWdlckVmbDo6ZGlkRmFpbChXS0NvbnRl
eHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tFcnJvcgogewogICAgIERvd25sb2Fk
TWFuYWdlckVmbCogZG93bmxvYWRNYW5hZ2VyID0gdG9Eb3dubG9hZE1hbmFnZXJFZmwoY2xpZW50
SW5mbyk7CiAgICAgdWludDY0X3QgZG93bmxvYWRJZCA9IHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93
bmxvYWRJRCgpOwotICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZG93bmxvYWRNYW5h
Z2VyLT5kb3dubG9hZEpvYihkb3dubG9hZElkKTsKKyAgICBFd2tEb3dubG9hZEpvYiogZG93bmxv
YWQgPSBkb3dubG9hZE1hbmFnZXItPmRvd25sb2FkSm9iKGRvd25sb2FkSWQpOwogICAgIEFTU0VS
VChkb3dubG9hZCk7CiAKICAgICBPd25QdHI8RXdrX0Vycm9yPiBld2tFcnJvciA9IEV3a19FcnJv
cjo6Y3JlYXRlKGVycm9yKTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIERvd25sb2FkTWFuYWdl
ckVmbDo6ZGlkQ2FuY2VsKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBj
b25zdAogewogICAgIERvd25sb2FkTWFuYWdlckVmbCogZG93bmxvYWRNYW5hZ2VyID0gdG9Eb3du
bG9hZE1hbmFnZXJFZmwoY2xpZW50SW5mbyk7CiAgICAgdWludDY0X3QgZG93bmxvYWRJZCA9IHRv
SW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpOwotICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRv
d25sb2FkID0gZG93bmxvYWRNYW5hZ2VyLT5kb3dubG9hZEpvYihkb3dubG9hZElkKTsKKyAgICBF
d2tEb3dubG9hZEpvYiogZG93bmxvYWQgPSBkb3dubG9hZE1hbmFnZXItPmRvd25sb2FkSm9iKGRv
d25sb2FkSWQpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CiAKICAgICBkb3dubG9hZC0+c2V0U3Rh
dGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9DQU5DRUxMRUQpOwpAQCAtMTEyLDcgKzExMiw3IEBA
IHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRGaW5pc2goV0tDb250ZXh0UmVmLCBXS0Rvd25s
b2FkUmVmIHdrRG93bmxvYWQsIGNvbnN0CiB7CiAgICAgRG93bmxvYWRNYW5hZ2VyRWZsKiBkb3du
bG9hZE1hbmFnZXIgPSB0b0Rvd25sb2FkTWFuYWdlckVmbChjbGllbnRJbmZvKTsKICAgICB1aW50
NjRfdCBkb3dubG9hZElkID0gdG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElEKCk7Ci0gICAg
RXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQgPSBkb3dubG9hZE1hbmFnZXItPmRvd25sb2FkSm9i
KGRvd25sb2FkSWQpOworICAgIEV3a0Rvd25sb2FkSm9iKiBkb3dubG9hZCA9IGRvd25sb2FkTWFu
YWdlci0+ZG93bmxvYWRKb2IoZG93bmxvYWRJZCk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKIAog
ICAgIGRvd25sb2FkLT5zZXRTdGF0ZShFV0tfRE9XTkxPQURfSk9CX1NUQVRFX0ZJTklTSEVEKTsK
QEAgLTE0NSwxMSArMTQ1LDExIEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpyZWdpc3RlckRv
d25sb2FkKERvd25sb2FkUHJveHkqIGRvd25sb2FkLCBFd2tWaWV3SW1wbCoKICAgICBpZiAobV9k
b3dubG9hZEpvYnMuY29udGFpbnMoZG93bmxvYWRJZCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxFd2tfRG93bmxvYWRfSm9iPiBld2tEb3dubG9hZCA9IEV3a19Eb3dubG9hZF9Kb2I6
OmNyZWF0ZShkb3dubG9hZCwgdmlld0ltcGwpOworICAgIFJlZlB0cjxFd2tEb3dubG9hZEpvYj4g
ZXdrRG93bmxvYWQgPSBFd2tEb3dubG9hZEpvYjo6Y3JlYXRlKGRvd25sb2FkLCB2aWV3SW1wbCk7
CiAgICAgbV9kb3dubG9hZEpvYnMuYWRkKGRvd25sb2FkSWQsIGV3a0Rvd25sb2FkKTsKIH0KIAot
RXdrX0Rvd25sb2FkX0pvYiogRG93bmxvYWRNYW5hZ2VyRWZsOjpkb3dubG9hZEpvYih1aW50NjRf
dCBpZCkgY29uc3QKK0V3a0Rvd25sb2FkSm9iKiBEb3dubG9hZE1hbmFnZXJFZmw6OmRvd25sb2Fk
Sm9iKHVpbnQ2NF90IGlkKSBjb25zdAogewogICAgIHJldHVybiBtX2Rvd25sb2FkSm9icy5nZXQo
aWQpLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9E
b3dubG9hZE1hbmFnZXJFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxv
YWRNYW5hZ2VyRWZsLmgKaW5kZXggYjJhMTE3ZC4uZGZjNjI3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5oCkBAIC0zMiw3ICszMiw3
IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBjbGFzcyBFd2tDb250ZXh0OwotY2xhc3Mg
RXdrX0Rvd25sb2FkX0pvYjsKK2NsYXNzIEV3a0Rvd25sb2FkSm9iOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERvd25sb2Fk
TWFuYWdlckVmbChFd2tDb250ZXh0Kik7CiAKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9h
ZEpvYih1aW50NjRfdCBpZCkgY29uc3Q7CisgICAgRXdrRG93bmxvYWRKb2IqIGRvd25sb2FkSm9i
KHVpbnQ2NF90IGlkKSBjb25zdDsKICAgICB2b2lkIHVucmVnaXN0ZXJEb3dubG9hZEpvYih1aW50
NjRfdCBpZCk7CiAKICAgICBzdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS1N0cmluZ1Jl
ZiBmaWxlbmFtZSwgYm9vbCogYWxsb3dPdmVyd3JpdGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaChX
S0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAg
ICAgRXdrQ29udGV4dCogbV9jb250ZXh0OwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxF
d2tfRG93bmxvYWRfSm9iPiA+IG1fZG93bmxvYWRKb2JzOworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxFd2tEb3dubG9hZEpvYj4gPiBtX2Rvd25sb2FkSm9iczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Q
YWdlTG9hZENsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VM
b2FkQ2xpZW50RWZsLmNwcAppbmRleCBmYjA2MmJmLi5mMWI0OWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcApAQCAtMTY2LDcg
KzE2Niw3IEBAIHZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmLCBXS0ZyCiB7CiAgICAgRXdrVmlld0ltcGwqIHZp
ZXdJbXBsID0gdG9QYWdlTG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+dmlld0ltcGwoKTsKIAot
ICAgIFJlZlB0cjxFd2tfQXV0aF9SZXF1ZXN0PiBhdXRoZW50aWNhdGlvblJlcXVlc3QgPSBFd2tf
QXV0aF9SZXF1ZXN0OjpjcmVhdGUodG9JbXBsKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7Cisg
ICAgUmVmUHRyPEV3a19BdXRoX1JlcXVlc3Q+IGF1dGhlbnRpY2F0aW9uUmVxdWVzdCA9IEV3a0F1
dGhSZXF1ZXN0OjpjcmVhdGUodG9JbXBsKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7CiAgICAg
dmlld0ltcGwtPnNtYXJ0Q2FsbGJhY2s8QXV0aGVudGljYXRpb25SZXF1ZXN0PigpLmNhbGwoYXV0
aGVudGljYXRpb25SZXF1ZXN0LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAppbmRleCBiODIx
MDRjLi4zZmIzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFJl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0
TWFuYWdlclJlZiBzb3VwUgogewogICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiByZXF1ZXN0
TWFuYWdlciA9IHRvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7CiAKLSAgICBS
ZWZQdHI8RXdrX1VybF9TY2hlbWVfUmVxdWVzdD4gc2NoZW1lUmVxdWVzdCA9IEV3a19VcmxfU2No
ZW1lX1JlcXVlc3Q6OmNyZWF0ZShzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIHVybFJlZiwgcmVxdWVz
dElEKTsKKyAgICBSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gc2NoZW1lUmVxdWVzdCA9IEV3
a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZShzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIHVybFJlZiwg
cmVxdWVzdElEKTsKICAgICBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyIGhhbmRsZXIgPSByZXF1ZXN0
TWFuYWdlci0+bV91cmxTY2hlbWVIYW5kbGVycy5nZXQoc2NoZW1lUmVxdWVzdC0+c2NoZW1lKCkp
OwogICAgIGlmICghaGFuZGxlci5jYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDkxZTIzOWMuLmQxYjFj
ZmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMi0xMS0wNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5w
b3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJlZmFjdG9yIEV3a19B
dXRoX1JlcXVlc3QsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3QgYW5kIEV3a19Eb3dubG9hZF9Kb2Ig
dG8gYmUgRXdrX09iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEV3a19BdXRoX1JlcXVlc3QsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3QgYW5kIEV3
a19Eb3dubG9hZF9Kb2IgYXJlIEV3a19PYmplY3RzIG5vdy4KKworICAgICAgICAqIE1pbmlCcm93
c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChhdXRoX3BvcHVwX2Nsb3NlKToKKyAgICAgICAgKG9u
X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QpOgorCiAyMDEyLTExLTA2ICBKdXNzaSBLdWtrb25lbiAg
PGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1pbmlicm93
c2VyIGZvcmdldHMgaHR0cCB2YXJpYWJsZXMgd2hlbiB1cmwgaW5jbHVkZXMgYW1wZXJzYW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dz
ZXIvZWZsL21haW4uYwppbmRleCA4MGNmZmIyLi44ZDc4ZTI3IDEwMDY0NAotLS0gYS9Ub29scy9N
aW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMK
QEAgLTY1OCw3ICs2NTgsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiBzdGF0aWMgdm9pZAogYXV0aF9w
b3B1cF9jbG9zZShBdXRoRGF0YSAqYXV0aF9kYXRhKQogewotICAgIGV3a19hdXRoX3JlcXVlc3Rf
dW5yZWYoYXV0aF9kYXRhLT5yZXF1ZXN0KTsKKyAgICBld2tfb2JqZWN0X3VucmVmKGF1dGhfZGF0
YS0+cmVxdWVzdCk7CiAgICAgZXZhc19vYmplY3RfZGVsKGF1dGhfZGF0YS0+cG9wdXApOwogICAg
IGZyZWUoYXV0aF9kYXRhKTsKIH0KQEAgLTY4OSw3ICs2ODksNyBAQCBzdGF0aWMgdm9pZAogb25f
YXV0aGVudGljYXRpb25fcmVxdWVzdCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICpvYmos
IHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IChCcm93
c2VyX1dpbmRvdyAqKXVzZXJfZGF0YTsKLSAgICBFd2tfQXV0aF9SZXF1ZXN0ICpyZXF1ZXN0ID0g
ZXdrX2F1dGhfcmVxdWVzdF9yZWYoKEV3a19BdXRoX1JlcXVlc3QgKilldmVudF9pbmZvKTsKKyAg
ICBFd2tfQXV0aF9SZXF1ZXN0ICpyZXF1ZXN0ID0gZXdrX29iamVjdF9yZWYoKEV3a19BdXRoX1Jl
cXVlc3QgKilldmVudF9pbmZvKTsKIAogICAgIEF1dGhEYXRhICphdXRoX2RhdGEgPSAoQXV0aERh
dGEgKiltYWxsb2Moc2l6ZW9mKEF1dGhEYXRhKSk7CiAgICAgYXV0aF9kYXRhLT5yZXF1ZXN0ID0g
cmVxdWVzdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>