<?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>146001</bug_id>
          
          <creation_ts>2015-06-15 19:07:00 -0700</creation_ts>
          <short_desc>Purge PassRefPtr with Ref or RefPtr in WebKit2</short_desc>
          <delta_ts>2015-06-16 20:34:12 -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>New Bugs</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>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1102126</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-15 19:07:00 -0700</bug_when>
    <thetext>As step to remove PassRefPtr, this patch removes PassRefPtr in WebKit2. If function can&apos;t return nullptr, PassRefPtr is changed with Ref. If not, the function returns RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102127</commentid>
    <comment_count>1</comment_count>
      <attachid>254920</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-15 19:08:53 -0700</bug_when>
    <thetext>Created attachment 254920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102132</commentid>
    <comment_count>2</comment_count>
      <attachid>254922</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-15 19:15:51 -0700</bug_when>
    <thetext>Created attachment 254922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102150</commentid>
    <comment_count>3</comment_count>
      <attachid>254929</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-15 21:56:16 -0700</bug_when>
    <thetext>Created attachment 254929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102154</commentid>
    <comment_count>4</comment_count>
      <attachid>254930</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-15 22:01:25 -0700</bug_when>
    <thetext>Created attachment 254930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102159</commentid>
    <comment_count>5</comment_count>
      <attachid>254932</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-15 22:10:26 -0700</bug_when>
    <thetext>Created attachment 254932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102277</commentid>
    <comment_count>6</comment_count>
      <attachid>254932</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-16 10:55:04 -0700</bug_when>
    <thetext>Comment on attachment 254932
Patch

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        As step to remove PassRefPtr, this patch removes PassRefPtr in WebKit2.

This wording, which we have used on a lot of patches, is wrong. The patch does not remove these from WebKIt2. It reduces the use of them in WebKit2.

&gt; Source/WebKit2/Shared/API/APINumber.h:39
&gt; +    static RefPtr&lt;Number&gt; create(NumberType value)

Why RefPtr instead of Ref here?

&gt; Source/WebKit2/Shared/API/APISecurityOrigin.h:50
&gt;              return 0;

nullptr

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4659
&gt; +    callback-&gt;performCallbackWithReturnValue(data.size() ? API::SerializedScriptValue::adopt(data).ptr() : 0, hadException);

nullptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102439</commentid>
    <comment_count>7</comment_count>
      <attachid>254994</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-16 18:56:47 -0700</bug_when>
    <thetext>Created attachment 254994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102443</commentid>
    <comment_count>8</comment_count>
      <attachid>254932</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-16 19:01:30 -0700</bug_when>
    <thetext>Comment on attachment 254932
Patch

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

&gt;&gt; Source/WebKit2/ChangeLog:8
&gt;&gt; +        As step to remove PassRefPtr, this patch removes PassRefPtr in WebKit2.
&gt; 
&gt; This wording, which we have used on a lot of patches, is wrong. The patch does not remove these from WebKIt2. It reduces the use of them in WebKit2.

Yes, you are right. I fix this changelog. Let me write changelog in upcoming patch carefully.

&gt;&gt; Source/WebKit2/Shared/API/APINumber.h:39
&gt;&gt; +    static RefPtr&lt;Number&gt; create(NumberType value)
&gt; 
&gt; Why RefPtr instead of Ref here?

done.

&gt;&gt; Source/WebKit2/Shared/API/APISecurityOrigin.h:50
&gt;&gt;              return 0;
&gt; 
&gt; nullptr

done.

&gt;&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4659
&gt;&gt; +    callback-&gt;performCallbackWithReturnValue(data.size() ? API::SerializedScriptValue::adopt(data).ptr() : 0, hadException);
&gt; 
&gt; nullptr

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102458</commentid>
    <comment_count>9</comment_count>
      <attachid>254994</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-16 20:34:07 -0700</bug_when>
    <thetext>Comment on attachment 254994
Patch

Clearing flags on attachment: 254994

Committed r185637: &lt;http://trac.webkit.org/changeset/185637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102459</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-16 20:34:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254920</attachid>
            <date>2015-06-15 19:08:53 -0700</date>
            <delta_ts>2015-06-15 19:15:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146001-20150616110818.patch</filename>
            <type>text/plain</type>
            <size>63795</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTcwMjgwYmY3Mzk2MTg0
Yjk2YWUyMDQzYWJmNDRlNDBhNGU2OTFjYy4uM2NjNmZkZjBiYWM1NWI5MmI4MWM1Y2QyZGI5YmUx
ZDhiMmE0YmZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wNi0xNSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NjAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFzIHN0ZXAgdG8gcmVtb3ZlIFBhc3NSZWZQdHIsIHRoaXMgcGF0
Y2ggcmVtb3ZlcyBQYXNzUmVmUHRyIGluIFdlYktpdDIuCisgICAgICAgIElmIGZ1bmN0aW9uIGNh
bid0IHJldHVybiBudWxscHRyLCBQYXNzUmVmUHRyIGlzIGNoYW5nZWQgd2l0aCBSZWYuIElmIG5v
dCwgdGhlIGZ1bmN0aW9uCisgICAgICAgIHJldHVybnMgUmVmUHRyLgorCisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJE
YXRhYmFzZS5oOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElOdW1iZXIuaDoKKyAgICAgICAgKEFQSTo6
TnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4u
aDoKKyAgICAgICAgKEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcpOgorICAg
ICAgICAoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAoQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQpOgorICAgICAgICAqIFNoYXJlZC9BUElXZWJBcmNoaXZlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmU6OmNyZWF0ZSk6
CisgICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5oOgorICAgICAgICAqIFNo
YXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmVS
ZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQXN5bmNSZXF1ZXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAg
ICAgKEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxSZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmg6Cisg
ICAgICAgIChFd2tXaW5kb3dGZWF0dXJlczo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcDoKKyAgICAgICAgKFRlc3RFd2tPYmpl
Y3QxOjpjcmVhdGUpOgorICAgICAgICAoVGVzdEV3a09iamVjdDI6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb2xvckNob29zZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRDb2xvckNo
b29zZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9j
YXRpb25Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVz
dC5oOgorICAgICAgICAoV2ViS2l0OjpIVFRQUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1
dGVzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
UGlja2VyR3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNr
ZXJHdGsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdT
bmFwc2hvdFN0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbG9yUGlja2VyTWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
TWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKToKKwogMjAx
NS0wNi0xNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZpeCB1bnVzZWQgcHJpdmF0ZSBmaWVsZCB3YXJuaW5nIGluIFBhZ2VCYW5uZXIuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA1ZjgyMjMwYTk3MjIyMWVmM2M0NTA5Yjhk
M2I4OGEwNTNiMGVhYmI3Li5iYzk2ZGUwZjczOWEwMDE4YTE5MTc3MTFlYzY1NmJhOGJhMzE1MmE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzUsOSArMzUsOSBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24+IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK1JlZjxEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3Jl
YXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihj
b25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBEYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggNTljNDBkMzczMjliOGJjODM3MjAzM2UzODA1
YzkyNmVmYTE2NDNiOC4uMTUwNmVhYmI5MDNjYmNkMGY2M2E3N2IxYTkwNDVjYWM1YjQ2YmFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQ
Qzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIHN0YXRpYyBSZWY8RGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKICAgICB+RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICBJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24u
Z2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5k
ZXggYjgwMTQwYjA2NzY0MzhhN2QxNmIyNTFmNWEwZTI5ZGNjMjg1M2NmZC4uMmEyMWEyMGRiMzkz
Yzk1M2U4MzE3ZGU4MjE1ODBkYjljNjM1OWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgY2xhc3MgVW5pcXVlSURCRGF0
YWJhc2U7CiAKIGNsYXNzIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiwgcHVibGljIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uPiBjcmVhdGUoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVm
PERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNyZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhYmFzZVByb2Nlc3NJ
REJDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24o
Y29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIH5EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFi
YXNlLmgKaW5kZXggZGM2YjRmMDAwNzkyNzY0MDJiY2ZiNjlmZDkxY2E2MGYwNTIxZjIyMi4uYjFk
MjRiM2RmNmEzNjE4MTJjMWI5YTZiNjViMzVkMTNlZWY1MTVjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaApAQCAtNjIsOSArNjIsOSBAQCBlbnVtIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlU2h1
dGRvd25UeXBlIHsKIAogY2xhc3MgVW5pcXVlSURCRGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8VW5pcXVlSURCRGF0YWJhc2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4gY3JlYXRlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNl
SWRlbnRpZmllciYgaWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPFVuaXF1ZUlEQkRhdGFiYXNl
PiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBVbmlxdWVJREJEYXRhYmFzZShpZGVu
dGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNl
KGlkZW50aWZpZXIpKTsKICAgICB9CiAKICAgICB+VW5pcXVlSURCRGF0YWJhc2UoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9y
ZVNRTGl0ZS5oCmluZGV4IDk5YzI4YWZmZDE0ZjNkMDkyYzBiM2Q1NWQ5OTczZTI4Nzk2MzRjMzAu
LjEwZWM4ODY0Yjg1YThlMmViZDFkNWU5YzgxMTllYWMxNWNkMDE5NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxp
dGUuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFzcyBTUUxpdGVJREJUcmFuc2FjdGlvbjsKIAogY2xh
c3MgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUgZmluYWwgOiBwdWJsaWMgVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURC
RGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGly
ZWN0b3J5KQorICAgIHN0YXRpYyBSZWY8VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmU+IGNy
ZWF0ZShjb25zdCBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlKGlkZW50aWZpZXIsIGRh
dGFiYXNlRGlyZWN0b3J5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlKGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5
KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBhZjhlYWFiNzdiNjVj
MzYyMDQ1YzJiZGEwODdhNDQ0MWE3NmIyZjYzLi5kMWZmZWUzODBmZGU2NzM5ZTNhOTI1Mjk4ZDVi
NzY2MzQ1OGNiOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Nyw5ICs0
Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
UGFzc1JlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIpCitSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0
aW9uSWRlbnRpZmllcikpOwogfQogCiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzY3OGMy
Y2VhMjA2YjIzMmI5MDFjZmNkZjljNzQ4NmYwMDQ0NWI3My4uMzJhMzEwNTg3ZDMyNWViOTFjZGRh
ZTY0NWY2NWI2ZWJkMWM3YjZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00OCw3
ICs0OCw3IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xh
c3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4sIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcik7CiAgICAgdmlydHVhbCB+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsK
IAogICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggOTlhOTkyYTVmNTE3NzNlY2E3ZjI4
ODA2MGM0ODVkMzZhYjUzMWNlNy4uMzI3ZjJjMzA4MDA2MTI3MzVlN2I5NTNhYmMwYjFjNDg2ZjJl
N2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0zNCw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3Rh
dGljIFJlZjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQoc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwog
ICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CmluZGV4IDBmZTM1ZDAxMGViZTIzYWIyYzhiMThkMDMxNDkxMjQ5MTVhMjU3NTIuLmFiNDAyNTY3
NTNmZGVkZmU4OWI5MWRiNDNjOTI2Y2IwYmMzODViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00Niw5ICs0
Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
UGFzc1JlZlB0cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitS
ZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50
aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzQ29ubmVjdGlvbihj
b25uZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlBy
b2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAxMjIxZjk1OWQyM2I3YWNiNTE1YmE0N2YwYzk0
MmZlYTZiMTAyNWY3Li5iYjMzMTdjOTM1Y2E0NzU3YjE3YTIxN2ViZjJkM2I5YmJiNzE1NTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7
CiAKIGNsYXNzIFdlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIpOworICAgIHN0YXRpYyBSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rp
b24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfldl
YlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVtYmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSU51bWJlci5oCmluZGV4IDAyYTRkYTk3ZmYxODVhYWUzMzE5MGY5NmVmZWFkNjQ1MTQ5
MTVmMmIuLmY2NWNkZTAxYWYzODY3NDkxNWMyYTA2MTZhYjU2ZGY3NDQwMDNiNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElOdW1iZXIuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2Ug
QVBJIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE51bWJlclR5cGUsIEFQSTo6T2JqZWN0OjpUeXBlIEFQ
SU9iamVjdFR5cGU+CiBjbGFzcyBOdW1iZXIgOiBwdWJsaWMgT2JqZWN0SW1wbDxBUElPYmplY3RU
eXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TnVtYmVyPiBjcmVhdGUoTnVt
YmVyVHlwZSB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmUHRyPE51bWJlcj4gY3JlYXRlKE51bWJlclR5
cGUgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE51bWJlcih2YWx1
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOdW1iZXIodmFsdWUpKTsKICAgICB9
CiAKICAgICBOdW1iZXJUeXBlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oCmluZGV4IGM3NTgw
MjU4MDgwYmMxNTZlZWExMDVhMDZkMGVhODMzOTI1YjIyM2YuLjgxMWQ3ODBmYjg1Nzc1MzYzNzU1
YTNjMTY3ZjhmYzk4YTBhNjZmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQ
SVNlY3VyaXR5T3JpZ2luLmgKQEAgLTM0LDE3ICszNCwxNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAog
Y2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpTZWN1cml0eU9yaWdpbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJiBzdHJp
bmcpCisgICAgc3RhdGljIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhj
b25zdCBXVEY6OlN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZShX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzdHJpbmcpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFdU
Rjo6U3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV1RGOjpTdHJpbmcmIGhvc3QsIGludCBwb3J0KQor
ICAgIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBXVEY6OlN0cmlu
ZyYgcHJvdG9jb2wsIGNvbnN0IFdURjo6U3RyaW5nJiBob3N0LCBpbnQgcG9ydCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBjcmVhdGUoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwcm90
b2NvbCwgaG9zdCwgcG9ydCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4pCisgICAgc3RhdGljIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQogICAgIHsK
ICAgICAgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKICAgICAgICAgICAgIHJldHVybiAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgKaW5kZXggY2MwNTc4ODg0ZDQ1NmJiYjNlOTg0ZDM4YjBlMzFjNTc0Mzg0ZDk0MS4uNGU3YzJl
MGNlNjU3MGI3NTY1MTgzYzUxM2U4MjdjNDkwNjE3OWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zNiwyMiAr
MzYsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBzZXJpYWxpemVkVmFsdWUpCisgICAgc3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFs
aXplZFZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkVmFsdWUpKTsKICAgICB9CiAgICAg
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKKyAgICBzdGF0aWMgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiAgICAgewogICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBz
ZXJpYWxpemVkVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShj
b250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKTsKICAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUp
Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNj
cmlwdFZhbHVlKHNlcmlhbGl6ZWRWYWx1ZS5nZXQoKSkpOwogICAgIH0KICAgICAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90
PiYgYnVmZmVyKQorICAgIHN0YXRpYyBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChW
ZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQoYnVmZmVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIp
KSk7CiAgICAgfQogICAgIAogICAgIEpTVmFsdWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2Vi
QXJjaGl2ZS5oCmluZGV4IDE2ZTgxN2RkMjY5YTQ1YmQ4NjkzMGZhYjQ5ZDY2MmZiZjAzYzU4NzQu
LmQ5NmI1OTZkYWJmYmU5MDY4YWM1MzQxMDY4N2JmYTJkMTg2MThiMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSVdlYkFyY2hpdmUuaApAQCAtNTAsMTAgKzUwLDEwIEBAIGNsYXNzIFdlYkFyY2hp
dmUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZl
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQXJjaGl2ZSgpOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291
cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6
OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVzKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNo
aXZlPiBjcmVhdGUoQVBJOjpEYXRhKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2
ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOwotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAg
IHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3JlYXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJl
c291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxB
UEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+
IGNyZWF0ZShBUEk6OkRhdGEqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShQ
YXNzUmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU+KTsKKyAgICBzdGF0aWMgUmVmPFdl
YkFyY2hpdmU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOwogCiAgICAgV2ViQXJjaGl2ZVJlc291
cmNlKiBtYWluUmVzb3VyY2UoKTsKICAgICBBUEk6OkFycmF5KiBzdWJyZXNvdXJjZXMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0KaW5kZXggNjczNzY0NWI3ZDZmMWY0ODlj
MjdmNTEyODRhNTA3ZjJjMWM2ZmZjOS4uYWMwMDc4OWIwNmZmZDAzYTYwNDIyNzYzMTI0ODFlMDFm
YmRlMDliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0KQEAgLTM4LDI0
ICszOCwyNCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIEFQSSB7CiAK
LVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFdlYkFyY2hpdmVSZXNv
dXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywg
UGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVzKQorUmVmPFdlYkFyY2hpdmU+
IFdlYkFyY2hpdmU6OmNyZWF0ZShXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFz
c1JlZlB0cjxBUEk6OkFycmF5PiBzdWJyZXNvdXJjZXMsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4g
c3ViZnJhbWVBcmNoaXZlcykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmUo
bWFpblJlc291cmNlLCBzdWJyZXNvdXJjZXMsIHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlKG1haW5SZXNvdXJjZSwgc3VicmVzb3VyY2VzLCBz
dWJmcmFtZUFyY2hpdmVzKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2
ZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSkKK1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpj
cmVhdGUoQVBJOjpEYXRhKiBkYXRhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJj
aGl2ZShkYXRhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShkYXRhKSk7
CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFBhc3NSZWZQ
dHI8TGVnYWN5V2ViQXJjaGl2ZT4gbGVnYWN5V2ViQXJjaGl2ZSkKK1JlZjxXZWJBcmNoaXZlPiBX
ZWJBcmNoaXZlOjpjcmVhdGUoUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBsZWdhY3lXZWJB
cmNoaXZlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJB
cmNoaXZlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJB
cmNoaXZlKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRl
KFJhbmdlKiByYW5nZSkKK1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUmFuZ2Uq
IHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJB
cmNoaXZlOjpjcmVhdGUocmFuZ2UpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXJj
aGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUocmFuZ2UpKSk7CiB9CiAKIFdlYkFyY2hpdmU6
OldlYkFyY2hpdmUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQdHI8
QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZyYW1l
QXJjaGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2
ZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNl
LmgKaW5kZXggNzNjYmY1NmUzYWI4ZGFmOWQ0ZjRhZWRkYWE0MDI5ODZkOGJkZTNiMi4uMWViOTI2
NGIzZWZkODc1NzkzZTViZmE0ZDllNDhhN2Y5YmY1Njk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBX
ZWJBcmNoaXZlUmVzb3VyY2UgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpXZWJBcmNoaXZlUgogcHVibGljOgogICAgIHZpcnR1YWwgfldlYkFyY2hpdmVSZXNvdXJj
ZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUo
QVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNo
aXZlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4p
OworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwg
Y29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dEVuY29kaW5nKTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4gY3JlYXRl
KFBhc3NSZWZQdHI8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPik7CiAKICAgICBSZWY8QVBJOjpE
YXRhPiBkYXRhKCk7CiAgICAgU3RyaW5nIFVSTCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0KaW5kZXggNDUwNDU1ZWYxMTQ5ZmY2YTRiZDVhM2Y0
OTk4Nzc0YzgxYTdjZjg2My4uOWUzODNlMTE1YWVhZGUzZWIxNjg5ZGQxYTQ2NmYxNjNhNWNmMWE0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1t
CkBAIC0zNywxNCArMzcsMTQgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBBUEkgewogCi1QYXNzUmVmUHRyPFdlYkFyY2hpdmVSZXNvdXJjZT4gV2ViQXJjaGl2ZVJlc291
cmNlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRhLCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3Ry
aW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmcpCitSZWY8V2ViQXJjaGl2
ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShBUEk6OkRhdGEqIGRhdGEsIGNv
bnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHRFbmNvZGluZykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNvdXJj
ZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0RW5jb2RpbmcpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJBcmNoaXZlUmVzb3VyY2UoZGF0YSwgVVJMLCBNSU1FVHlwZSwgdGV4dEVuY29k
aW5nKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVz
b3VyY2U6OmNyZWF0ZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gYXJjaGl2ZVJlc291cmNl
KQorUmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4gV2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoUGFz
c1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGFyY2hpdmVSZXNvdXJjZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNvdXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlUmVzb3VyY2UoYXJjaGl2ZVJlc291cmNlKSk7
CiB9CiAKIFdlYkFyY2hpdmVSZXNvdXJjZTo6V2ViQXJjaGl2ZVJlc291cmNlKEFQSTo6RGF0YSog
ZGF0YSwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dEVuY29kaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Fz
eW5jUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oCmluZGV4
IGJmZGUxOTg0NjE0NzE0OGZmZjg5YTE0OGQ4NzE3NDZjNmE2NmRlMzEuLmUxMDZkNWI4YTA0OGNi
N2VjODlhMDk3YjM2NmY0YmRkYWI0MmE1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Bc3luY1JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1
ZXN0LmgKQEAgLTYwLDE0ICs2MCwxNCBAQCBjbGFzcyBBc3luY1JlcXVlc3RJbXBsIGZpbmFsIDog
cHVibGljIEFzeW5jUmVxdWVzdCB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dXNpbmcgQXJndW1lbnRUeXBlID0gdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2lu
dGVncmFsPFQ+Ojp2YWx1ZSwgVCwgY29uc3QgVCY+Ojp0eXBlOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkIChBcmd1bWVudFR5
cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8QXN5
bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkKEFyZ3VtZW50VHlwZTxBcmd1bWVu
dHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFzeW5jUmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBudWxscHRyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFzeW5j
UmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBu
dWxscHRyKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBj
cmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkIChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNv
bXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKKyAg
ICBzdGF0aWMgUmVmPEFzeW5jUmVxdWVzdD4gY3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZChBcmd1
bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYWJvcnRIYW5kbGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBBc3luY1JlcXVlc3RJbXBsPEFyZ3VtZW50cy4uLj4oV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgV1RGOjptb3ZlKGFib3J0SGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9u
SGFuZGxlciksIFdURjo6bW92ZShhYm9ydEhhbmRsZXIpKSk7CiAgICAgfQogCiAgICAgdmlydHVh
bCB+QXN5bmNSZXF1ZXN0SW1wbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCA5NDVmYzgzNTM1
ODMxMDUxYjFiOWFkODg3Njg4MzkyMjQxNDlkMjc5Li4zNzY3NTVmN2M4NmJlMDI5MTFhZGQxZGM3
ZWI3NmZiZmE5NjBkOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKQEAgLTQwLDkgKzQwLDkgQEAg
Y2xhc3MgRXdrVXJsUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVX
S19PQkpFQ1RfREVDTEFSRShFd2tVcmxSZXF1ZXN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RXdrVXJsUmVxdWVzdD4gY3JlYXRlKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgIHN0
YXRpYyBSZWY8RXdrVXJsUmVxdWVzdD4gY3JlYXRlKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVm
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tVcmxSZXF1ZXN0KHJlcXVl
c3RSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXdrVXJsUmVxdWVzdChyZXF1
ZXN0UmVmKSk7CiAgICAgfQogCiAgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9u
c2VfcHJpdmF0ZS5oCmluZGV4IDRlYTgyNzQ5ODMzNTc1MTMxZjUzM2IwY2JhY2M0NjAwZTUzMTQ4
YzAuLjJmZmRiN2IyMjAwYjhmZWRjNGY4NzUyZjg5MGM2MjgwZDkyZTE4Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9u
c2VfcHJpdmF0ZS5oCkBAIC00MCwxMCArNDAsMTAgQEAgY2xhc3MgRXdrVXJsUmVzcG9uc2UgOiBw
dWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJs
UmVzcG9uc2UpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxSZXNwb25zZT4gY3JlYXRl
KFdLVVJMUmVzcG9uc2VSZWYgd2tSZXNwb25zZSkKKyAgICBzdGF0aWMgUmVmUHRyPEV3a1VybFJl
c3BvbnNlPiBjcmVhdGUoV0tVUkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlKQogICAgIHsKICAgICAg
ICAgaWYgKCF3a1Jlc3BvbnNlKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlc3Bv
bnNlKHdrUmVzcG9uc2UpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5o
CmluZGV4IDlhNDA0YzcwOWE0ZDU1NTRiYTE3MjFiNDAyNTBiZWRmYjM1YzhiYTcuLmEzOTg5MmI0
MGZiNWVmYjhlOTI3NzA0YWJjN2U1Yjg5N2JkZmU1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVl
c3RfcHJpdmF0ZS5oCkBAIC00MSwxMCArNDEsMTAgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVz
dCA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShF
d2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1l
UmVxdWVzdD4gY3JlYXRlKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFu
YWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCisg
ICAgc3RhdGljIFJlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBBUEk6OlVSTFJlcXVlc3QqIHVybFJl
cXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICB7CiAgICAgICAgIGlmICghbWFuYWdlciB8
fCAhdXJsUmVxdWVzdCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tVcmxTY2hlbWVSZXF1
ZXN0KG1hbmFnZXIsIHVybFJlcXVlc3QsIHJlcXVlc3RJRCkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193aW5kb3dfZmVhdHVyZXNfcHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0
dXJlc19wcml2YXRlLmgKaW5kZXggZTUyMDE2NzNhZmI1MjRmMTRlNmI3MjAwYzRkMGFmMmJjMWM1
YTJjZi4uOTUyYTc3NDFlMWQwZDc0MjliMTEzM2FiN2NiN2ZjZmIwZjBiMWI0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19w
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRv
d19mZWF0dXJlc19wcml2YXRlLmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgRXdrV2luZG93RmVh
dHVyZXMgOiBwdWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xB
UkUoRXdrV2luZG93RmVhdHVyZXMpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tXaW5kb3dG
ZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFyeVJlZiB3aW5kb3dGZWF0dXJlcywgRXdrVmlldyog
dmlld0ltcGwpCisgICAgc3RhdGljIFJlZjxFd2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGlj
dGlvbmFyeVJlZiB3aW5kb3dGZWF0dXJlcywgRXdrVmlldyogdmlld0ltcGwpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1dpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVz
LCB2aWV3SW1wbCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFd2tXaW5kb3dGZWF0
dXJlcyh3aW5kb3dGZWF0dXJlcywgdmlld0ltcGwpKTsKICAgICB9CiAKICAgICBjb25zdCBFdmFz
X0Nvb3JkX1JlY3RhbmdsZSYgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBtX2dlb21ldHJ5OyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl9vYmplY3QuY3BwCmluZGV4IDcwY2VlYTVlNWQxYjYyMDNhZjUyZDc4NjA0OTMz
ZDNiN2FjMjQzMTUuLmNjZDJjMDVlZWVhMGVkNDllZjY4NDAyYzc4M2EzMzNiZDE3ZDE2ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl9vYmplY3QuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiVW5pdFRl
c3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJp
bmcuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgRVdLMlVuaXRUZXN0OwogdXNpbmcgbmFtZXNw
YWNlIFdURjsKQEAgLTQwLDEwICszOSwxMCBAQCBjbGFzcyBUZXN0RXdrT2JqZWN0MSA6IHB1Ymxp
YyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShUZXN0RXdrT2Jq
ZWN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGVzdEV3a09iamVjdDE+IGNyZWF0ZSgpCisg
ICAgc3RhdGljIFJlZjxUZXN0RXdrT2JqZWN0MT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHdh
c0RlbGV0ZWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2Jq
ZWN0MSgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGVzdEV3a09iamVjdDEoKSk7
CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgd2FzRGVsZXRlZDsgLy8gV2UgYWx3YXlzIHRlc3Qg
b25seSBvbmUgaW5zdGFuY2Ugb2YgVGVzdEV3a09iamVjdC4KQEAgLTYwLDkgKzU5LDkgQEAgY2xh
c3MgVGVzdEV3a09iamVjdDIgOiBwdWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tf
T0JKRUNUX0RFQ0xBUkUoVGVzdEV3a09iamVjdDIpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxU
ZXN0RXdrT2JqZWN0Mj4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFRlc3RFd2tPYmplY3QyPiBj
cmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0
MigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGVzdEV3a09iamVjdDIoKSk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5jcHAKaW5kZXggM2MxZTRjNmE4NjcwMDhkNTQ2NDY0
OWVhMzc3MjM5MTQ2ZTRmYjI5YS4uNmI5YjRjYmVmNTY3ZTA1OWZhZWFlMmU2OGM1MjY1NjY3Nzg0
Y2JkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuY3BwCkBAIC00Myw5ICs0Myw5IEBAIHN0YXRpYyB2b2lk
IHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIs
IGNvbnN0IHZvaWQqCiAgICAgdG9CYXR0ZXJ5UHJvdmlkZXIoY2xpZW50SW5mbyktPnN0b3BVcGRh
dGluZygpOwogfQogCi1QYXNzUmVmUHRyPFdlYktpdEJhdHRlcnlQcm92aWRlcj4gV2ViS2l0QmF0
dGVyeVByb3ZpZGVyOjpjcmVhdGUoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1hbmFn
ZXIpCitSZWY8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiBXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OmNy
ZWF0ZShXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYktpdEJhdHRlcnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdEJhdHRlcnlQcm92aWRlcihiYXR0ZXJ5TWFu
YWdlcikpOwogfQogCiBXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OldlYktpdEJhdHRlcnlQcm92aWRl
cihXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgK
aW5kZXggN2YwNWRiNmM3MTY2MTZhMDczMjA2ZDNlN2M5OWIyNmVhZGJmNDc0Ny4uZTJlOTRiZjA0
NDczM2M0ODY3YmU3ODk2NDAxNTY5ODQ4MTdhM2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKQEAgLTMy
LDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYktpdEJhdHRlcnlQcm92
aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdEJhdHRlcnlQcm92aWRlcj4sIHB1YmxpYyBX
ZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJVUG93ZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYktpdEJhdHRlcnlQcm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHkqKTsKKyAgICBzdGF0aWMgUmVmPFdlYktpdEJhdHRlcnlQcm92aWRlcj4gY3JlYXRl
KFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKICAgICB2aXJ0dWFsIH5XZWJLaXRCYXR0ZXJ5UHJv
dmlkZXIoKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9yQ2hvb3Nlci5jcHAKaW5kZXgg
YjI2YmFiNGM3Y2VmZmI0NzJiYjVlNWM5YjU0OGIyNDA2YzNmNjBlMC4uNzE5MTlkOGY2ZjQ5YTQz
YzE0MmI2OWJiNTY3ZjE1NzBhZjI4MzVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuY3BwCkBAIC0yOSw5ICsyOSw5
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFz
c1JlZlB0cjxXZWJLaXRDb2xvckNob29zZXI+IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK1JlZjxXZWJLaXRDb2xvckNob29zZXI+IFdlYktp
dENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdENvbG9yQ2hvb3NlcihwYWdlLCBpbml0aWFsQ29s
b3IsIHJlY3QpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRDb2xvckNob29zZXIo
cGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CiB9CiAKIFdlYktpdENvbG9yQ2hvb3Nlcjo6V2Vi
S2l0Q29sb3JDaG9vc2VyKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29sb3ImIGluaXRpYWxD
b2xvciwgY29uc3QgSW50UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKaW5k
ZXggYzgxNDYxYmVjNTQ3ZDJkZjFhYTk3MThlMzY4YjA2NWZiOWVlODAwYS4uNmFjMGZiYzk4Nzg5
NmIzMDc2YTI0NmY5NTU1MDQwOWQ2ODhlZGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5j
cHAKQEAgLTU0LDkgKzU0LDkgQEAgV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcjo6fldlYktpdEdl
b2xvY2F0aW9uUHJvdmlkZXIoKQogICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIo
dG9BUEkobV9nZW9sb2NhdGlvbk1hbmFnZXIuZ2V0KCkpLCBudWxscHRyKTsKIH0KIAotUGFzc1Jl
ZlB0cjxXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyPiBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVy
OjpjcmVhdGUoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlcikK
K1JlZjxXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyPiBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVy
OjpjcmVhdGUoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlcikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoZ2Vv
bG9jYXRpb25NYW5hZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0R2VvbG9j
YXRpb25Qcm92aWRlcihnZW9sb2NhdGlvbk1hbmFnZXIpKTsKIH0KIAogV2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlcjo6V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcihXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
CmluZGV4IGRiYzhmZDhlNjI5Njc1MTFiOTJiZjIwOWM5ZjBmNmU4ODliMWM2ZjcuLjc1NzVkZmU4
OTQyYTIyYTgxMGQ4YTJkNjUxMzRlZThiZDA0NGYzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92
aWRlci5jcHAKQEAgLTYxLDkgKzYxLDkgQEAgV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6On5X
ZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcigpCiB7CiB9CiAKLVBhc3NSZWZQdHI8V2ViS2l0Tm90
aWZpY2F0aW9uUHJvdmlkZXI+IFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUoV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBub3RpZmljYXRpb25NYW5hZ2VyKQorUmVmPFdlYktp
dE5vdGlmaWNhdGlvblByb3ZpZGVyPiBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcjo6Y3JlYXRl
KFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbm90aWZpY2F0aW9uTWFuYWdlcikKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKG5vdGlmaWNh
dGlvbk1hbmFnZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXROb3RpZmljYXRp
b25Qcm92aWRlcihub3RpZmljYXRpb25NYW5hZ2VyKSk7CiB9CiAKIFdlYktpdE5vdGlmaWNhdGlv
blByb3ZpZGVyOjpXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcihXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkqIG5vdGlmaWNhdGlvbk1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaApp
bmRleCAyZGJjMjZkYmZhZTQ2NjE4Y2Y2NTYwN2RlNjdjMTg5NDk2NzVjZjAyLi5hYzg3NGI4MzMy
ZmYwNTg0Yzk3MWNlOGUxOWExNDk2YTAzY2FjYjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJLaXROb3Rp
ZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlk
ZXIoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4g
Y3JlYXRlKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOworICAgIHN0YXRpYyBSZWY8V2Vi
S2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IGNyZWF0ZShXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkqKTsKIAogICAgIHZvaWQgc2hvdyhXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJOb3RpZmljYXRp
b24mKTsKICAgICB2b2lkIGNhbmNlbChjb25zdCBXZWJOb3RpZmljYXRpb24mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaAppbmRleCBlZjcxOGZlMmE4NjliODdlYjM0YzU5OTI1MjQ2OTM2ZDRhNmRh
NTAwLi4wM2U3Mjk2NWRiOTU3NDZiOWE2NGExYmQ1NjhhNjNiYjQ0NDAwZTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Okdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCBnZW9sb2Nh
dGlvbklEKQorICAgIHN0YXRpYyBSZWY8R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5
PiBjcmVhdGUoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdl
ciwgdWludDY0X3QgZ2VvbG9jYXRpb25JRCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIGdlb2xvY2F0
aW9uSUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIGdlb2xvY2F0aW9uSUQpKTsKICAgICB9CiAKICAgICB2
b2lkIGFsbG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVj
dG9yU2VydmVyL0hUVFBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVj
dG9yU2VydmVyL0hUVFBSZXF1ZXN0LmgKaW5kZXggZWNkYTE0ZTk5YmMwNTEzOWY4NDUzOTg2MzBj
NjZjMzc1OTQyOTFkNC4uZmZiMzE3ZWM4MWIxMjhjYThhZjhmNTM3Yzg1MTMxNmE5MDhhNTEwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQ
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
SFRUUFJlcXVlc3QuaApAQCAtNDMsOCArNDMsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgSFRUUFJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxIVFRQUmVxdWVzdD4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUVFBSZXF1ZXN0PiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgSFRUUFJlcXVlc3QoKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVFRQ
UmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVxdWVzdE1ldGhvZCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiB1cmwsIFdlYkNvcmU6OkhUVFBWZXJzaW9uIHZlcnNpb24pIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBIVFRQUmVxdWVzdChyZXF1ZXN0TWV0aG9kLCB1cmwsIHZlcnNpb24pKTsgfQorICAg
IHN0YXRpYyBSZWY8SFRUUFJlcXVlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SFRUUFJlcXVlc3QoKSk7IH0KKyAgICBzdGF0aWMgUmVmPEhUVFBSZXF1ZXN0PiBjcmVhdGUoY29u
c3QgU3RyaW5nJiByZXF1ZXN0TWV0aG9kLCBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29y
ZTo6SFRUUFZlcnNpb24gdmVyc2lvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVFRQUmVxdWVz
dChyZXF1ZXN0TWV0aG9kLCB1cmwsIHZlcnNpb24pKTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhUVFBSZXF1ZXN0PiBwYXJzZUhUVFBSZXF1ZXN0RnJvbUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3QgbGVuZ3RoLCBTdHJpbmcmIGZhaWx1cmVSZWFzb24pOwogICAgIHZpcnR1YWwgfkhU
VFBSZXF1ZXN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCAxZjJh
YzhlYmNkMzI2ZjE0OWQwOTNlMWRmZDM5ZDA3MmQ4Nzc1YzlhLi5kMGJiMjA0MjA2MzdmYTNhNTk3
YzM5OTNmYTBlZGM3Nzc2NzViZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3Bw
CkBAIC00MCw5ICs0MCw5IEBAIGNvbnN0IGNoYXIqIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuICJXZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlciI7CiB9CiAKLVBhc3NSZWZQdHI8V2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXI+IFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpj
cmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQorUmVmPFdlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyPiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6
Y3JlYXRlKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKHByb2Nlc3NQb29sKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1h
bmFnZXIocHJvY2Vzc1Bvb2wpKTsKIH0KIAogV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1h
bmFnZXI6OldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKFdlYlByb2Nlc3NQb29s
KiBwcm9jZXNzUG9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZDU3OTBjMDY2ODRhYTllNmVlZDE2
YjBkNjcxNDcyYjFhNzAyNTIyZC4uMDk4ZTQ1ZWUyZDE2ZGYwYmY5OTIzMThmZDA4ZmMzZGQ5MzE1
MTQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAgc3RhdGljIHVpbnQ2NF90
IGdlbmVyYXRlQ2FsbGJhY2tJRCgpCiAgICAgcmV0dXJuICsrY2FsbGJhY2tJRDsKIH0KIAotUGFz
c1JlZlB0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGUo
V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorUmVmPE5ldHdvcmtQcm9jZXNzUHJveHk+IE5l
dHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOZXR3b3JrUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29s
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NQcm94eShwcm9jZXNz
UG9vbCkpOwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KFdl
YlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA1OGU1OTYwYTRmMGFm
YzFhZjUwMDU0M2VmNTgyYzViZmI1ZDkwYWZiLi42YmQ1YmYyNDU3OTY0ZjZhMTcyNmY0OWFiM2Fj
OTFmOWMyMDNhM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94
eSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5
PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtQcm9jZXNz
UHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5
KCk7CiAKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKaW5kZXggMjVkMzdkYTRiOTk0YjZkMGNkZGJlNDI1NDQwMjgzYWMxZTBlNjlhNS4uMjEyODYy
N2M1MmIwMjliNDEyMTE2NGNkN2EzZjM4OTI5YTc2ZDJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICAKLVBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3Q+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV2ViS2l0OjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSAqbWFuYWdlciwgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCitSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSAqbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChtYW5hZ2VyLCBub3RpZmljYXRpb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIsIG5vdGlmaWNhdGlvbklEKSk7CiB9
CiAKIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdl
ciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuaAppbmRleCBmZGM1Mjk0ZWMyYmE3NzY0ZjNiNWNkYzE4MWEyZmYzM2M4ZTkz
MjM5Li5lMDQ4NDA2NTk0NjM0ODBjM2U4MDYwY2U0MmYxY2YxMjdmYTc0NTBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xh
c3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3Jl
YXRlKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q+IGNyZWF0ZShOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSos
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKIAogICAgIHZvaWQgYWxsb3coKTsKICAgICB2b2lk
IGRlbnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uLmgKaW5kZXggZWE5ODFkMjNkNGU1YzgwOThlYmQxMmZhOGUx
OTM1NGY3ZDFhNTQxYy4uNWZkM2RhNzE4ODU5MDlkMjU0Yzc0ZjU2MzkyNDliM2JkZDg5ZjhkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uLmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6Ok5vdGlmaWNhdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3Qg
U3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJp
bmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIHN0YXRpYyBSZWY8V2ViTm90aWZpY2F0
aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25z
dCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcs
IGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5v
dGlmaWNhdGlvbih0aXRsZSwgYm9keSwgaWNvblVSTCwgdGFnLCBsYW5nLCBkaXIsIG9yaWdpblN0
cmluZywgbm90aWZpY2F0aW9uSUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
Tm90aWZpY2F0aW9uKHRpdGxlLCBib2R5LCBpY29uVVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2lu
U3RyaW5nLCBub3RpZmljYXRpb25JRCkpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgdGl0
bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDIzMjY0MmI4Yjc0MWZhYjc2ZmIyMzZlNWRmZjYzYmVmNzVi
YjQ2ODguLjdlNWIzZjJjOTlmMGUwNmI5YTczMzc2ZTc1ODQzY2QwNTk2ZTljODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00NjU2LDcgKzQ2NTYsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UsCiAgICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKICAgICBkYXRhLmFwcGVuZChkYXRhUmVmZXJlbmNlLmRh
dGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxs
YmFja1dpdGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjphZG9wdChkYXRhKS5nZXQoKSA6IDApOworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJh
Y2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkgPyBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6YWRvcHQoZGF0YSkucHRyKCkgOiAwKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNvbXB1
dGVkUGFnZXNDYWxsYmFjayhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91Ymxl
IHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCmluZGV4IGExNzMy
NDcxNTViYzU3OTJlNWJiODViZGE0NWIzYzE3ZjA2MzdlMTUuLjQ4ZDI5MGNlMzkzMWRiNTg0ODlh
MDljYWQ2ZWY3ZDAzOGMwNGNjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlZpYnJhdGlvblByb3h5LmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotUGFzc1JlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gV2ViVmlicmF0aW9uUHJveHk6OmNy
ZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCitSZWY8V2ViVmlicmF0aW9uUHJveHk+IFdlYlZpYnJh
dGlvblByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViVmlicmF0aW9uUHJveHkocGFnZSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlZpYnJhdGlvblByb3h5KHBhZ2UpKTsKIH0KIAogV2ViVmlicmF0aW9uUHJveHk6Oldl
YlZpYnJhdGlvblByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKaW5kZXggYjcyMDk4MTdkZmM4YmMwMGQ4NDkzNDJm
NzRhZTdkMjU5ZGQ5MGI4OC4uNzM4NTY2MGQ2N2QyNDRmOTIyYWNmNmZiMWFlNGM0ZjliOTIwZjZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKQEAg
LTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJWaWJyYXRpb25Q
cm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlZpYnJhdGlv
bj4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5Kik7CisgICAg
c3RhdGljIFJlZjxXZWJWaWJyYXRpb25Qcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSopOwogICAg
IHZpcnR1YWwgfldlYlZpYnJhdGlvblByb3h5KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0
ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaApp
bmRleCAwZjUyYjg3MzYzMTQwZTBmYmQzNjgxMmUwMTg0MWEyZTI1YmYyOGY2Li5hMzEwNjVmZTRj
ZGQxMmZlY2U4MzcwYjc0ZmQyM2JlOGIyZTUwZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCkBAIC0zNCw5ICszNCw5IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMgOiBwdWJsaWMgQVBJ
OjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3cG9ydEF0dHJpYnV0ZXM+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWV3cG9ydEF0dHJpYnV0ZXM+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCisgICAgc3Rh
dGljIFJlZjxXZWJWaWV3cG9ydEF0dHJpYnV0ZXM+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpWaWV3
cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCB+V2ViVmlld3BvcnRBdHRyaWJ1dGVzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKaW5kZXggOTQzNGI3ODY4MGQyNmMyM2ZiNmQ0NzFlYmY3ZGJlOWZhNDg2YzhmMy4uMWFmYWZi
YWFiMThjZjBiMDlmZWM0NjIyNzIzOTNkZmMyMTY1YTkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApA
QCAtNTgsMTQgKzU4LDE0IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlkZW50aWZpZXIoKQog
ICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CiAKLVJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBX
ZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkKK1JlZjxXZWJzaXRlRGF0YVN0
b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3RvcmUoZ2VuZXJhdGVOb25QZXJzaXN0ZW50U2Vz
c2lvbklEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKGdl
bmVyYXRlTm9uUGVyc2lzdGVudFNlc3Npb25JRCgpKSk7CiB9CiAKLVJlZlB0cjxXZWJzaXRlRGF0
YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uKQorUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJz
aXRlRGF0YVN0b3JlKFdURjo6bW92ZShjb25maWd1cmF0aW9uKSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiB9
CiAKIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNWU0YzcyMmI2NTM2NTE3YWE2MmQ3MDYzMzNi
NTJiY2QwYmVlZDNmYS4uMzZiNjBjN2Q0NDJlOTRmODNhZTIxOTRjNzc5MzNlMWE3NWIyMDI5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCkBAIC02Miw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5n
IGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIG1lZGlhS2V5c1N0b3JhZ2VE
aXJlY3Rvcnk7CiAgICAgfTsKLSAgICBzdGF0aWMgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+IGNy
ZWF0ZU5vblBlcnNpc3RlbnQoKTsKLSAgICBzdGF0aWMgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+
IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+
IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+
IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKICAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7
CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlj
a2VyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJH
dGsuY3BwCmluZGV4IGM0ZjY1ODMwOTY0NzAwMjZkZmUwZjEwZWQ1ODk0ODYxMjhiNTQzMTMuLjMy
ZGZlODJlY2Q2YzY1MjNiYTU1ZjA1M2EwMjQzMGVjNDhiMTc1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCkBAIC0zNyw5ICsz
Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
UGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gV2ViQ29sb3JQaWNrZXJHdGs6OmNyZWF0ZShX
ZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCitSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IFdlYkNvbG9yUGlja2VyR3RrOjpjcmVh
dGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJH
dGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViQ29sb3JQaWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CiB9CiAKIFdlYkNv
bG9yUGlja2VyR3RrOjpXZWJDb2xvclBpY2tlckd0ayhXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0
IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludFJlY3QmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oCmluZGV4IDY3MDE4MTVmM2MzZmZi
MzA3MDYzZDk4NzBjNTM1OWU5ZjY4YmYzYTguLjA1YTg0ZGU0YjAyMTgzOGNkNWE5NjVkMGFiYmJm
OGVmMTRlZWI3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2Vi
Q29sb3JQaWNrZXJHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bG9yUGlja2VyR3RrLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFdlYkNvbG9yUGlja2VyR3RrIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gY3JlYXRlKFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwor
ICAgIHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0
dWFsIH5XZWJDb2xvclBpY2tlckd0aygpOwogCiAgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJD
b250ZXh0TWVudVByb3h5R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRNZW51UHJveHlHdGsuaAppbmRleCA0YjU4ZmQ1MmFkZDE4ZDY4NWYxZDM3MDNlMTg1NmFh
MmZkZTVjOWRjLi5hODBlYmYyYzkxZGIyNjUyZDYyMjJjM2RlYTUxOTQyNDUxNTNiNDAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlH
dGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJv
eHlHdGsuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdl
YkNvbnRleHRNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViQ29udGV4dE1lbnVQcm94eSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eUd0az4gY3JlYXRl
KEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIHN0YXRpYyBSZWY8
V2ViQ29udGV4dE1lbnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFn
ZVByb3h5KiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb250
ZXh0TWVudVByb3h5R3RrKHdlYlZpZXcsIHBhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBwYWdlKSk7CiAgICAgfQogICAg
IH5XZWJDb250ZXh0TWVudVByb3h5R3RrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAppbmRleCBkOTIwMDM5NTk3ZmMwOWVj
OWExYTc2OWVlOTBjYTk1ODFjYjc1NDQ5Li41ZjgwY2RmN2MyMmYyNjVlZGZhN2Q4YmM5NDQ0MzFm
YzI5NDA1ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBv
cHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQ
b3B1cE1lbnVQcm94eUd0ay5oCkBAIC0zNyw5ICszNyw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IAogY2xhc3MgV2ViUG9wdXBNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHkg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5R3RrPiBj
cmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50KiBjbGll
bnQpCisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdl
dCogd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBj
bGllbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUG9wdXBNZW51UHJveHlH
dGsod2ViVmlldywgY2xpZW50KSk7CiAgICAgfQogICAgIH5XZWJQb3B1cE1lbnVQcm94eUd0aygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hv
dFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
LmgKaW5kZXggMzA1YWRiM2E3NGMwNjhiOWI5OGRmZDM4NzcyMGM4ZTA2MzY4MmExYi4uYTE0YTEw
YzQxNTE2ZmQ1M2U3OTJiNGUyMmE5YTFhMTY5OTZmOTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApAQCAtNjIsOSArNjIsOSBAQCBj
bGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBWaWV3U25hcHNob3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxWaWV3U25hcHNob3Q+IHsKIHB1YmxpYzoKICNpZiBVU0VfSU9TVVJGQUNFX1ZJRVdfU05BUFNI
T1RTCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBjcmVhdGUoc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOworICAgIHN0YXRpYyBSZWY8Vmlld1NuYXBzaG90
PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOwogI2VsaWYgVVNF
X1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWaWV3
U25hcHNob3Q+IGNyZWF0ZSh1aW50MzJfdCBzbG90SUQsIFdlYkNvcmU6OkludFNpemUsIHNpemVf
dCBpbWFnZVNpemVJbkJ5dGVzKTsKKyAgICBzdGF0aWMgUmVmPFZpZXdTbmFwc2hvdD4gY3JlYXRl
KHVpbnQzMl90IHNsb3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0
ZXMpOwogI2VuZGlmCiAKICAgICB+Vmlld1NuYXBzaG90KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQppbmRleCA5ZDg3ZTI4MWQ0NDNl
NzZkZGMxMmVkYTZmZGM1MTlmZDExNTI0MDY1Li5iNjA4NDI2NjliNmIwOTI4Y2Q5OTcxZjQzM2Y4
Y2QyNDA3YmRjYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Zp
ZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmll
d1NuYXBzaG90U3RvcmUubW0KQEAgLTEzNCwxNCArMTM0LDE0IEBAIHZvaWQgVmlld1NuYXBzaG90
U3RvcmU6OmRpc2NhcmRTbmFwc2hvdEltYWdlcygpCiAKIAogI2lmIFVTRV9JT1NVUkZBQ0VfVklF
V19TTkFQU0hPVFMKLVBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6OmNyZWF0
ZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQorUmVmPFZpZXdTbmFwc2hvdD4g
Vmlld1NuYXBzaG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZpZXdTbmFwc2hvdChXVEY6Om1vdmUoc3VyZmFj
ZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3QoV1RGOjptb3ZlKHN1
cmZhY2UpKSk7CiB9CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NOQVBTSE9UUwotUGFz
c1JlZlB0cjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90IHNsb3RJ
RCwgSW50U2l6ZSBzaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcykKK1JlZjxWaWV3U25hcHNo
b3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgSW50U2l6ZSBzaXplLCBz
aXplX3QgaW1hZ2VTaXplSW5CeXRlcykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZpZXdT
bmFwc2hvdChzbG90SUQsIHNpemUsIGltYWdlU2l6ZUluQnl0ZXMpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBWaWV3U25hcHNob3Qoc2xvdElELCBzaXplLCBpbWFnZVNpemVJbkJ5dGVzKSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb2xvclBpY2tlck1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xv
clBpY2tlck1hYy5oCmluZGV4IDQwYzllMmJjZmRkYzAyZmFhMWU5MGI0MmNkMDE1MDZmMmYzM2Q3
MDkuLmNmMmY2ZTg2MDI1NTYyN2QxNDhlOGI3Y2U1NjNlMjY5NTQ2NjM3ZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgKQEAgLTYwLDcg
KzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBjbGFzcyBXZWJDb2xvclBpY2tlck1h
YyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBwdWJsaWM6ICAgICAgICAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1Zp
ZXcqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQ
aWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIFdLVmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1hYygpOwogCiAgICAgdmlydHVh
bCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggNzNjNjRhYzVmOGE0NGJkMGViYTE2
MzgyM2NlNmZmZWUzYjVjZWVjNC4uMjZhYzY5ZmVkNjY5ZDk1ZDZlNmU1ZGMxOTlmMzRmYjcxNjFl
OGFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBp
Y2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlj
a2VyTWFjLm1tCkBAIC03NSw5ICs3NSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBXZWJDb2xv
clBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVj
dCwgV0tWaWV3KiB2aWV3KQorUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1h
Yzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV0tWaWV3
KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJNYWMoY2xp
ZW50LCBpbml0aWFsQ29sb3IsIHJlY3QsIHZpZXcpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xvciwgcmVjdCwgdmlldykpOwog
fQogCiBXZWJDb2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2VyTWFjKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5k
ZXggMGVlNTQ5NTZhZTI3NTE0ZjZlMjRhNjkxMGE5NWNiNTNkNDNiNGJmNS4uZDhhZDhmNDVkODUy
ZTU1MjY3YzliNjU2MWYyZDYwMjEwM2JiMmEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKQEAgLTQzLDkgKzQzLDkg
QEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5TWFjIDog
cHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYkNvbnRleHRNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcqIHdlYlZpZXcsIFdlYlBh
Z2VQcm94eSogcGFnZSkKKyAgICBzdGF0aWMgUmVmPFdlYkNvbnRleHRNZW51UHJveHlNYWM+IGNy
ZWF0ZShXS1ZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29udGV4dE1lbnVQcm94eU1hYyh3ZWJWaWV3LCBwYWdl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51UHJveHlNYWMo
d2ViVmlldywgcGFnZSkpOwogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQcm94eU1hYygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVBy
b3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5
TWFjLmgKaW5kZXggZTMyYTQxYjVjMTZjNzY2OTQ0MWJmNjI0MmJkMzY0MjFkMDdkZDc1Yi4uYjFm
NjA2ZjQwMWY2Yzc4YjQ2ZmFhMzNkNjNkNzQ0YWFhMjZlZDQ1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaApAQCAtNDAsOSAr
NDAsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5TWFj
IDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmlldyAqd2ViVmlldywgV2ViUG9w
dXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KQorICAgIHN0YXRpYyBSZWY8V2ViUG9wdXBNZW51
UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcgKndlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGll
bnQqIGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUG9wdXBN
ZW51UHJveHlNYWMod2ViVmlldywgY2xpZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlBvcHVwTWVudVByb3h5TWFjKHdlYlZpZXcsIGNsaWVudCkpOwogICAgIH0KICAgICB+
V2ViUG9wdXBNZW51UHJveHlNYWMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJh
Y2tlbmQuaAppbmRleCA5Y2VjYWMxZDllY2NiYzFjZGFkMmY2MWNjZWJmMmQ2Y2RiYjhhMDA1Li41
NzY5OGY5NWIxODY4NTBkNWFjZDVkY2Q4NGIzMjlmNWIwMjQ2NDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViSURCRmFjdG9yeUJhY2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViSURCRmFjdG9yeUJhY2tlbmQpOyB9CisgICAgc3RhdGljIFJlZjxXZWJJREJGYWN0b3J5
QmFja2VuZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJGYWN0b3J5QmFj
a2VuZCk7IH0KIAogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlCYWNrZW5kKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZWY1YmZjOTMzMTViMzdjZjky
ZjZjZjIxOGJiNzQwMzlhZGYxYmI1NC4uYzA1MTU4NWM3MDI3NDczMTNjNWFmZjU3YzQ0ZjFmYWVh
MzdlYmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQw
LDkgKzQwLDkgQEAgY2xhc3MgV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZDsKIAogY2xhc3Mg
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgc3RhdGljIFJlZjxXZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmll
cikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICB9CiAgICAgfldlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5k
ZXggYTQyMzc1ZDY5MmUyMzkzNTFlODc0YzBmNjlkNzg5Zjc4NWJiMmFlNy4uZmZmYThiMmQ1MmMy
NGI1YjJiN2U3YjdmOTcwZDBmNTAxYmYwMjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3Bw
CkBAIC01OSw5ICs1OSw5IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNjcmVlblJlY3QoKTsKIH0KIAot
UGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmNy
ZWF0ZShXZWJQYWdlKiBwYWdlKQorUmVmPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXIocGFnZSkpOwogfQogCiBXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6V2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmgKaW5kZXggZDI4ZDg1YmE0ZTI4OTBiOGNkMGEyNjVkMGM4ZWM3ODE5NDFlY2NhNS4uN2NkZGRj
ZmU3ZTQyMWYxYWNhNDUzNGYzN2M0NjNlNjI3NDcxM2MwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViRnVsbFNjcmVl
bk1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBjcmVhdGUo
V2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IGNyZWF0ZShX
ZWJQYWdlKik7CiAgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXIoKTsKIAogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApp
bmRleCAwNzI5ZGU3ZWM5ZGFkMzlhMjAwNjY0NDYxNWY0NzRkMTBjYWY2ZTMwLi4yZTc1OWRlY2Vl
MmFjMjRkYjI2OWU2MmY0YWViZTNhYzJhY2Y4YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApAQCAtNzUsOSArNzUsOSBAQCBQYXNzUmVmUHRy
PEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6Omdl
dE9yQ3JlYXRlKFJhbgogICAgIHJldHVybiByYW5nZUhhbmRsZS5yZWxlYXNlKCk7CiB9CiAKLVBh
c3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
PiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZShyYW5nZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUocmFuZ2Up
KTsKIH0KIAogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6SW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZShSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmgKaW5kZXggMTdkZWIyOTk4Y2M2YjA1YThmYTlkYTdlOTQzYzQzNzRmZmFlMWI3Ny4u
YWVlZjY5ZTJjYTRhMTY1YzYzMjc4MThkNTQyZjcwNDg0ZTgxMGFhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJs
aWM6CiAgICAgV2ViQ29yZTo6UmFuZ2UqIGNvcmVSYW5nZSgpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IGNyZWF0ZShX
ZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CiAgICAgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZShXZWJDb3JlOjpSYW5nZSopOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX3Jhbmdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCmluZGV4IGNj
YmY5N2JkMjg0ZjkxOGY2MjcyZDMzYzRlNzEwNGU4NjBkMTBiMjQuLmE0NGQwYjk2MjAwYjAyMzFl
NmI5ZWE3MTFkYzA4YmJhMjQ1NzE2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
QmFja0ZvcndhcmRMaXN0LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgSW5qZWN0ZWRCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlz
dCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUJhY2tG
b3J3YXJkTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVu
ZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkKKyAgICBzdGF0aWMgUmVm
PEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QocGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmplY3RlZEJ1bmRs
ZUJhY2tGb3J3YXJkTGlzdChwYWdlKSk7CiAgICAgfQogCiAgICAgdm9pZCBkZXRhY2goKSB7IG1f
cGFnZSA9IDA7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254922</attachid>
            <date>2015-06-15 19:15:51 -0700</date>
            <delta_ts>2015-06-15 21:56:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146001-20150616111516.patch</filename>
            <type>text/plain</type>
            <size>63864</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDdhYmMyNmM5ZTc0NzI5
YjhlMjgyNTExZDY1NmJiMjNkNzY2NTc4NS4uOTg5N2UyNzg5MTUzNTQ1OGIzOGZkZDNkNzk1YzVl
OWFlZTU4YjE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wNi0xNSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MDAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgc3RlcCB0byByZW1vdmUgUGFzc1JlZlB0
ciwgdGhpcyBwYXRjaCByZW1vdmVzIFBhc3NSZWZQdHIgaW4gV2ViS2l0Mi4KKyAgICAgICAgSWYg
ZnVuY3Rpb24gY2FuJ3QgcmV0dXJuIG51bGxwdHIsIFBhc3NSZWZQdHIgaXMgY2hhbmdlZCB3aXRo
IFJlZi4gSWYgbm90LCB0aGUgZnVuY3Rpb24KKyAgICAgICAgcmV0dXJucyBSZWZQdHIuCisKKyAg
ICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpjcmVhdGUpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU51bWJlci5oOgorICAg
ICAgICAoQVBJOjpOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElTZWN1
cml0eU9yaWdpbi5oOgorICAgICAgICAoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyk6CisgICAgICAgIChBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAgICAgICAq
IFNoYXJlZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChBUEk6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjphZG9wdCk6CisgICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmUuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQVBJV2ViQXJjaGl2ZS5tbToKKyAgICAgICAgKEFQSTo6V2ViQXJjaGl2
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmg6Cisg
ICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbToKKyAgICAgICAgKEFQSTo6
V2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9Bc3luY1JlcXVl
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0
ZS5oOgorICAgICAgICAoRXdrVXJsUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFJl
c3BvbnNlOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3RfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2ZlYXR1cmVzX3By
aXZhdGUuaDoKKyAgICAgICAgKEV3a1dpbmRvd0ZlYXR1cmVzOjpjcmVhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwOgorICAgICAgICAo
VGVzdEV3a09iamVjdDE6OmNyZWF0ZSk6CisgICAgICAgIChUZXN0RXdrT2JqZWN0Mjo6Y3JlYXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9yQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdEdlb2xvY2F0aW9u
UHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlk
ZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0
aW9uUHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L0hUVFBSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OkhUVFBSZXF1ZXN0OjpjcmVhdGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVl
Q2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVz
OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVy
c2lzdGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29sb3JQaWNrZXJHdGs6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9X
ZWJDb2xvclBpY2tlckd0ay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1l
bnVQcm94eUd0ay5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5R3RrOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlZpZXdTbmFwc2hv
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmg6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHRNZW51UHJveHlNYWM6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQb3B1
cE1lbnVQcm94eU1hYy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6
Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
RmFjdG9yeUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxT
Y3JlZW5NYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0OjpjcmVh
dGUpOgorCiAyMDE1LTA2LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1MgV0syXSBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBzb21ldGltZXMg
dHJ1bmNhdGVkIG9uIHNjcm9sbCB2aWV3IGJvdW5jaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCmluZGV4IDVmODIyMzBhOTcyMjIxZWYzYzQ1MDliOGQzYjg4YTA1M2IwZWFiYjcu
LmJjOTZkZTBmNzM5YTAwMThhMTkxNzcxMWVjNjU2YmE4YmEzMTUyYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zNSw5ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1QYXNzUmVmUHRyPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorUmVmPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbj4gRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CiB9CiAKIERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAppbmRleCA1OWM0MGQzNzMyOWI4YmM4MzcyMDMzZTM4MDVjOTI2ZWZhMTY0M2I4Li4x
NTA2ZWFiYjkwM2NiY2QwZjYzYTc3YjFhOTA0NWNhYzViNDZiYWE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogICAgIH5E
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaAppbmRleCBiODAxNDBiMDY3NjQz
OGE3ZDE2YjI1MWY1YTBlMjlkY2MyODUzY2ZkLi4yYTIxYTIwZGIzOTNjOTUzZTgzMTdkZTgyMTU4
MGRiOWM2MzU5ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b24uaApAQCAtNDcsOSArNDcsOSBAQCBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZTsKIAogY2xhc3Mg
RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFiYXNl
UHJvY2Vzc0lEQkNvbm5lY3Rpb24+LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNyZWF0
ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VQcm9jZXNz
SURCQ29ubmVjdGlvbj4gY3JlYXRlKERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24oY29u
bmVjdGlvbiwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbihjb25uZWN0aW9uLCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkRhdGFiYXNl
UHJvY2Vzc0lEQkNvbm5lY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCBkYzZi
NGYwMDA3OTI3NjQwMmJjZmI2OWZkOTFjYTYwZjA1MjFmMjIyLi5iMWQyNGIzZGY2YTM2MTgxMmMx
YjlhNmI2NWIzNWQxM2VlZjUxNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC02Miw5
ICs2Miw5IEBAIGVudW0gY2xhc3MgVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGUgewogCiBj
bGFzcyBVbmlxdWVJREJEYXRhYmFzZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxVbmlx
dWVJREJEYXRhYmFzZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVuaXF1ZUlE
QkRhdGFiYXNlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVu
dGlmaWVyKQorICAgIHN0YXRpYyBSZWY8VW5pcXVlSURCRGF0YWJhc2U+IGNyZWF0ZShjb25zdCBV
bmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFVuaXF1ZUlEQkRhdGFiYXNlKGlkZW50aWZpZXIpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVW5pcXVlSURCRGF0YWJhc2UoaWRlbnRpZmllcikpOwog
ICAgIH0KIAogICAgIH5VbmlxdWVJREJEYXRhYmFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGUuaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgKaW5kZXgg
OTljMjhhZmZkMTRmM2QwOTJjMGIzZDU1ZDk5NzNlMjg3OTYzNGMzMC4uMTBlYzg4NjRiODVhOGUy
ZWJkMWQ1ZTljODExOWVhYzE1Y2QwMTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCkBAIC01MSw5ICs1
MSw5IEBAIGNsYXNzIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOwogCiBjbGFzcyBVbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZSBmaW5hbCA6IHB1YmxpYyBVbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmU+IGNyZWF0ZShjb25zdCBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZp
ZXImIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpCisgICAgc3Rh
dGljIFJlZjxVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZT4gY3JlYXRlKGNvbnN0IFVuaXF1
ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZURpcmVjdG9yeSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVW5pcXVlSURC
RGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUoaWRlbnRpZmllciwgZGF0YWJhc2VEaXJlY3Rvcnkp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGUoaWRlbnRpZmllciwgZGF0YWJhc2VEaXJlY3RvcnkpKTsKICAgICB9CiAKICAg
ICB2aXJ0dWFsIH5VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGFmOGVhYWI3N2I2NWMzNjIwNDVjMmJkYTA4N2E0
NDQxYTc2YjJmNjMuLmQxZmZlZTM4MGZkZTY3MzllM2E5MjUyOThkNWI3NjYzNDU4Y2I4ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
K1JlZjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcyhjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
CiB9CiAKIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAzNjc4YzJjZWEyMDZiMjMyYjkwMWNm
Y2RmOWM3NDg2ZjAwNDQ1YjczLi4zMmEzMTA1ODdkMzI1ZWI5MWNkZGFlNjQ1ZjY1YjZlYmQxYzdi
NmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdHlwZWRl
ZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVhdGUoSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAgICB2
aXJ0dWFsIH5OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwogCiAgICAgSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaAppbmRleCA5OWE5OTJhNWY1MTc3M2VjYTdmMjg4MDYwYzQ4NWQzNmFiNTMx
Y2U3Li4zMjdmMmMzMDgwMDYxMjczNWU3Yjk1M2FiYzBiMWM0ODZmMmU3YWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTM0LDkgKzM0LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250
ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChzZXNzaW9uSUQs
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklELCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CiAgICAgfQogICAgIHZpcnR1
YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMGZlMzVkMDEw
ZWJlMjNhYjJjOGIxOGQwMzE0OTEyNDkxNWEyNTc1Mi4uYWI0MDI1Njc1M2ZkZWRmZTg5YjkxZGI0
M2M5MjZjYjBiYzM4NWIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYlBy
b2Nlc3NDb25uZWN0aW9uPiBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK1JlZlB0cjxXZWJQcm9jZXNz
Q29ubmVjdGlvbj4gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSk7CiB9CiAKIFdlYlByb2Nlc3NDb25uZWN0aW9uOjp+V2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oCmluZGV4IDEyMjFmOTU5ZDIzYjdhY2I1MTViYTQ3ZjBjOTQyZmVhNmIxMDI1ZjcuLmJi
MzMxN2M5MzVjYTQ3NTdiMTdhMjE3ZWJmMmQzYjliYmI3MTU1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgc3RydWN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJQcm9jZXNzQ29ubmVjdGlvbj4s
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CisgICAgc3RhdGljIFJlZlB0cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+V2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fY29ubmVjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9BUElOdW1iZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgK
aW5kZXggMDJhNGRhOTdmZjE4NWFhZTMzMTkwZjk2ZWZlYWQ2NDUxNDkxNWYyYi4uZjY1Y2RlMDFh
ZjM4Njc0OTE1YzJhMDYxNmFiNTZkZjc0NDAwM2I0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9BUElOdW1iZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSU51bWJlci5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBBUEkgewogdGVtcGxhdGU8
dHlwZW5hbWUgTnVtYmVyVHlwZSwgQVBJOjpPYmplY3Q6OlR5cGUgQVBJT2JqZWN0VHlwZT4KIGNs
YXNzIE51bWJlciA6IHB1YmxpYyBPYmplY3RJbXBsPEFQSU9iamVjdFR5cGU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOdW1iZXI+IGNyZWF0ZShOdW1iZXJUeXBlIHZhbHVlKQor
ICAgIHN0YXRpYyBSZWZQdHI8TnVtYmVyPiBjcmVhdGUoTnVtYmVyVHlwZSB2YWx1ZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTnVtYmVyKHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE51bWJlcih2YWx1ZSkpOwogICAgIH0KIAogICAgIE51bWJlclR5
cGUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKaW5kZXggYzc1ODAyNTgwODBiYzE1NmVlYTEw
NWEwNmQwZWE4MzM5MjViMjIzZi4uODExZDc4MGZiODU3NzUzNjM3NTVhM2MxNjdmOGZjOThhMGE2
NmY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZWN1cml0eU9y
aWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4u
aApAQCAtMzQsMTcgKzM0LDE3IEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBTZWN1cml0eU9y
aWdpbiA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlNlY3VyaXR5
T3JpZ2luPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmIHN0cmluZykKKyAgICBzdGF0aWMg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFdURjo6U3RyaW5n
JiBzdHJpbmcpCiAgICAgewogICAgICAgICByZXR1cm4gY3JlYXRlKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHN0cmluZykpOwogICAgIH0KIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29uc3QgV1RGOjpTdHJpbmcmIHByb3Rv
Y29sLCBjb25zdCBXVEY6OlN0cmluZyYgaG9zdCwgaW50IHBvcnQpCisgICAgc3RhdGljIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBwcm90b2NvbCwgY29u
c3QgV1RGOjpTdHJpbmcmIGhvc3QsIGludCBwb3J0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGNy
ZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHByb3RvY29sLCBob3N0LCBwb3J0
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0
ZShQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKKyAg
ICBzdGF0aWMgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCiAgICAgewogICAgICAgICBpZiAoIXNl
Y3VyaXR5T3JpZ2luKQogICAgICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCBjYzA1Nzg4
ODRkNDU2YmJiM2U5ODRkMzhiMGUzMWM1NzQzODRkOTQxLi40ZTdjMmUwY2U2NTcwYjc1NjUxODNj
NTEzZTgyN2M0OTA2MTc5YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTM2LDIyICszNiwyMiBAQCBuYW1lc3Bh
Y2UgQVBJIHsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUo
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRWYWx1
ZSkKKyAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJp
YWxpemVkVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNj
cmlwdFZhbHVlKHNlcmlhbGl6ZWRWYWx1ZSkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorICAgIHN0YXRpYyBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKICAgICB7CiAgICAgICAg
IFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRWYWx1ZSA9
IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnRleHQsIHZhbHVlLCBl
eGNlcHRpb24pOwogICAgICAgICBpZiAoIXNlcmlhbGl6ZWRWYWx1ZSkKLSAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShzZXJpYWxpemVkVmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFs
aXplZFZhbHVlLmdldCgpKSk7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAg
c3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYg
YnVmZmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIpKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGJ1ZmZlcikpKTsKICAgICB9CiAgICAg
CiAgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdl
YkFyY2hpdmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmgKaW5kZXgg
MTZlODE3ZGQyNjlhNDViZDg2OTMwZmFiNDlkNjYyZmJmMDNjNTg3NC4uZDk2YjU5NmRhYmZiZTkw
NjhhYzUzNDEwNjg3YmZhMmQxODYxOGIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSVdlYkFyY2hpdmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJj
aGl2ZS5oCkBAIC01MCwxMCArNTAsMTAgQEAgY2xhc3MgV2ViQXJjaGl2ZSA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OldlYkFyY2hpdmU+IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5XZWJBcmNoaXZlKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNo
aXZlPiBjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQdHI8
QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZyYW1l
QXJjaGl2ZXMpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+IGNyZWF0ZShBUEk6
OkRhdGEqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlPik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViQXJjaGl2ZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CisgICAgc3RhdGljIFJlZjxXZWJB
cmNoaXZlPiBjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQ
dHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZy
YW1lQXJjaGl2ZXMpOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3JlYXRlKEFQSTo6RGF0
YSopOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3JlYXRl
KFdlYkNvcmU6OlJhbmdlKik7CiAKICAgICBXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJj
ZSgpOwogICAgIEFQSTo6QXJyYXkqIHN1YnJlc291cmNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJV2ViQXJjaGl2ZS5tbQppbmRleCA2NzM3NjQ1YjdkNmYxZjQ4OWMyN2Y1MTI4NGE1MDdmMmMx
YzZmZmM5Li5hYzAwNzg5YjA2ZmZkMDNhNjA0MjI3NjMxMjQ4MWUwMWZiZGUwOWJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5tbQpAQCAtMzgsMjQgKzM4LDI0IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgQVBJIHsKIAotUGFzc1JlZlB0cjxXZWJB
cmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3Vy
Y2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQSTo6
QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpCitSZWY8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3Jl
YXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJy
YXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVz
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShtYWluUmVzb3VyY2UsIHN1
YnJlc291cmNlcywgc3ViZnJhbWVBcmNoaXZlcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYkFyY2hpdmUobWFpblJlc291cmNlLCBzdWJyZXNvdXJjZXMsIHN1YmZyYW1lQXJjaGl2ZXMp
KTsKIH0KIAotUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoQVBJOjpE
YXRhKiBkYXRhKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0ZShBUEk6OkRhdGEq
IGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcmNoaXZlKGRhdGEpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlKGRhdGEpKTsKIH0KIAotUGFzc1JlZlB0
cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNo
aXZlPiBsZWdhY3lXZWJBcmNoaXZlKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0
ZShQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGxlZ2FjeVdlYkFyY2hpdmUpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcmNoaXZlKGxlZ2FjeVdlYkFyY2hpdmUpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlKGxlZ2FjeVdlYkFyY2hpdmUpKTsKIH0KIAot
UGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQor
UmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0ZShSYW5nZSogcmFuZ2UpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcmNoaXZlKExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShy
YW5nZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlKExlZ2FjeVdlYkFy
Y2hpdmU6OmNyZWF0ZShyYW5nZSkpKTsKIH0KIAogV2ViQXJjaGl2ZTo6V2ViQXJjaGl2ZShXZWJB
cmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJy
ZXNvdXJjZXMsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3ViZnJhbWVBcmNoaXZlcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UuaAppbmRleCA3M2NiZjU2
ZTNhYjhkYWY5ZDRmNGFlZGRhYTQwMjk4NmQ4YmRlM2IyLi4xZWI5MjY0YjNlZmQ4NzU3OTNlNWJm
YTRkOWU0OGE3ZjliZjU2OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
V2ViQXJjaGl2ZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFy
Y2hpdmVSZXNvdXJjZS5oCkBAIC00OCw4ICs0OCw4IEBAIGNsYXNzIFdlYkFyY2hpdmVSZXNvdXJj
ZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OldlYkFyY2hpdmVS
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQXJjaGl2ZVJlc291cmNlKCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShBUEk6OkRhdGEqLCBjb25z
dCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
RW5jb2RpbmcpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmVSZXNvdXJjZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPik7CisgICAgc3RhdGljIFJl
ZjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShBUEk6OkRhdGEqLCBjb25zdCBTdHJpbmcmIFVS
TCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmcpOwor
ICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJD
b3JlOjpBcmNoaXZlUmVzb3VyY2U+KTsKIAogICAgIFJlZjxBUEk6OkRhdGE+IGRhdGEoKTsKICAg
ICBTdHJpbmcgVVJMKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2Vi
QXJjaGl2ZVJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVS
ZXNvdXJjZS5tbQppbmRleCA0NTA0NTVlZjExNDlmZjZhNGJkNWEzZjQ5OTg3NzRjODFhN2NmODYz
Li45ZTM4M2UxMTVhZWFkZTNlYjE2ODlkZDFhNDY2ZjE2M2E1Y2YxYTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0KQEAgLTM3LDE0ICszNywx
NCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVBhc3NS
ZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShBUEk6
OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIHRleHRFbmNvZGluZykKK1JlZjxXZWJBcmNoaXZlUmVzb3VyY2U+IFdlYkFy
Y2hpdmVSZXNvdXJjZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSwgY29uc3QgU3RyaW5nJiBVUkws
IGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZVJlc291cmNlKGRhdGEsIFVSTCwgTUlN
RVR5cGUsIHRleHRFbmNvZGluZykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkFyY2hp
dmVSZXNvdXJjZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0RW5jb2RpbmcpKTsKIH0KIAotUGFz
c1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IFdlYkFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBh
c3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBhcmNoaXZlUmVzb3VyY2UpCitSZWY8V2ViQXJjaGl2
ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShQYXNzUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gYXJjaGl2ZVJlc291cmNlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
QXJjaGl2ZVJlc291cmNlKGFyY2hpdmVSZXNvdXJjZSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkFyY2hpdmVSZXNvdXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKIH0KIAogV2ViQXJjaGl2
ZVJlc291cmNlOjpXZWJBcmNoaXZlUmVzb3VyY2UoQVBJOjpEYXRhKiBkYXRhLCBjb25zdCBTdHJp
bmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2Rp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmgKaW5kZXggYmZkZTE5ODQ2MTQ3MTQ4
ZmZmODlhMTQ4ZDg3MTc0NmM2YTY2ZGUzMS4uZTEwNmQ1YjhhMDQ4Y2I3ZWM4OWEwOTdiMzY2ZjRi
ZGRhYjQyYTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaApAQCAtNjAsMTQg
KzYwLDE0IEBAIGNsYXNzIEFzeW5jUmVxdWVzdEltcGwgZmluYWwgOiBwdWJsaWMgQXN5bmNSZXF1
ZXN0IHsKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBBcmd1bWVudFR5
cGUgPSB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVl
LCBULCBjb25zdCBUJj46OnR5cGU7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBc3luY1JlcXVl
c3Q+IGNyZWF0ZShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFyZ3VtZW50VHlwZTxBcmd1bWVudHM+Li4u
KT4gY29tcGxldGlvbkhhbmRsZXIpCisgICAgc3RhdGljIFJlZjxBc3luY1JlcXVlc3Q+IGNyZWF0
ZShzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJndW1lbnRUeXBlPEFyZ3VtZW50cz4uLi4pPiBjb21wbGV0
aW9uSGFuZGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXN5bmNSZXF1
ZXN0SW1wbDxBcmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIG51bGxw
dHIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1
bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIG51bGxwdHIpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBc3luY1JlcXVlc3Q+IGNyZWF0ZShzdGQ6OmZ1bmN0
aW9uPHZvaWQgKEFyZ3VtZW50VHlwZTxBcmd1bWVudHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYWJvcnRIYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8QXN5
bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkKEFyZ3VtZW50VHlwZTxBcmd1bWVu
dHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBhYm9ydEhh
bmRsZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFzeW5jUmVxdWVzdElt
cGw8QXJndW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEY6Om1vdmUo
YWJvcnRIYW5kbGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBc3luY1JlcXVl
c3RJbXBsPEFyZ3VtZW50cy4uLj4oV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgV1RGOjpt
b3ZlKGFib3J0SGFuZGxlcikpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5Bc3luY1JlcXVlc3RJ
bXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDk0NWZjODM1MzU4MzEwNTFiMWI5YWQ4ODc2
ODgzOTIyNDE0OWQyNzkuLjM3Njc1NWY3Yzg2YmUwMjkxMWFkZDFkYzdlYjc2ZmJmYTk2MGQ4YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVx
dWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtNDAsOSArNDAsOSBAQCBjbGFzcyBFd2tVcmxSZXF1
ZXN0IDogcHVibGljIEV3a09iamVjdCB7CiBwdWJsaWM6CiAgICAgRVdLX09CSkVDVF9ERUNMQVJF
KEV3a1VybFJlcXVlc3QpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxSZXF1ZXN0PiBj
cmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCisgICAgc3RhdGljIFJlZjxFd2tVcmxS
ZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlcXVlc3QocmVxdWVzdFJlZikpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFd2tVcmxSZXF1ZXN0KHJlcXVlc3RSZWYpKTsKICAgICB9
CiAKICAgICBjb25zdCBjaGFyKiB1cmwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmgKaW5k
ZXggNGVhODI3NDk4MzM1NzUxMzFmNTMzYjBjYmFjYzQ2MDBlNTMxNDhjMC4uMmZmZGI3YjIyMDBi
OGZlZGM0Zjg3NTJmODkwYzYyODBkOTJlMThjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmgKQEAg
LTQwLDEwICs0MCwxMCBAQCBjbGFzcyBFd2tVcmxSZXNwb25zZSA6IHB1YmxpYyBFd2tPYmplY3Qg
ewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxSZXNwb25zZSkKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEV3a1VybFJlc3BvbnNlPiBjcmVhdGUoV0tVUkxSZXNwb25zZVJl
ZiB3a1Jlc3BvbnNlKQorICAgIHN0YXRpYyBSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IGNyZWF0ZShX
S1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9uc2UpCiAgICAgewogICAgICAgICBpZiAoIXdrUmVzcG9u
c2UpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJsUmVzcG9uc2Uod2tSZXNwb25zZSkp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKaW5kZXggOWE0MDRjNzA5
YTRkNTU1NGJhMTcyMWI0MDI1MGJlZGZiMzVjOGJhNy4uYTM5ODkyYjQwZmI1ZWZiOGU5Mjc3MDRh
YmM3ZTViODk3YmRmZTUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKQEAg
LTQxLDEwICs0MSwxMCBAQCBjbGFzcyBFd2tVcmxTY2hlbWVSZXF1ZXN0IDogcHVibGljIEV3a09i
amVjdCB7CiBwdWJsaWM6CiAgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a1VybFNjaGVtZVJlcXVl
c3QpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBjcmVhdGUo
V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBBUEk6OlVSTFJl
cXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBzdGF0aWMgUmVmUHRy
PEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3Qg
cmVxdWVzdElEKQogICAgIHsKICAgICAgICAgaWYgKCFtYW5hZ2VyIHx8ICF1cmxSZXF1ZXN0KQot
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFNjaGVtZVJlcXVlc3QobWFuYWdlciwgdXJs
UmVxdWVzdCwgcmVxdWVzdElEKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZhdGUuaApp
bmRleCBlNTIwMTY3M2FmYjUyNGYxNGU2YjcyMDBjNGQwYWYyYmMxYzVhMmNmLi45NTJhNzc0MWUx
ZDBkNzQyOWIxMTMzYWI3Y2I3ZmNmYjBmMGIxYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZh
dGUuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBFd2tXaW5kb3dGZWF0dXJlcyA6IHB1YmxpYyBF
d2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tXaW5kb3dGZWF0
dXJlcykKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1dpbmRvd0ZlYXR1cmVzPiBjcmVhdGUo
V0tEaWN0aW9uYXJ5UmVmIHdpbmRvd0ZlYXR1cmVzLCBFd2tWaWV3KiB2aWV3SW1wbCkKKyAgICBz
dGF0aWMgUmVmPEV3a1dpbmRvd0ZlYXR1cmVzPiBjcmVhdGUoV0tEaWN0aW9uYXJ5UmVmIHdpbmRv
d0ZlYXR1cmVzLCBFd2tWaWV3KiB2aWV3SW1wbCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRXdrV2luZG93RmVhdHVyZXMod2luZG93RmVhdHVyZXMsIHZpZXdJbXBsKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV3a1dpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1
cmVzLCB2aWV3SW1wbCkpOwogICAgIH0KIAogICAgIGNvbnN0IEV2YXNfQ29vcmRfUmVjdGFuZ2xl
JiBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX29iamVj
dC5jcHAKaW5kZXggNzBjZWVhNWU1ZDFiNjIwM2FmNTJkNzg2MDQ5MzNkM2I3YWMyNDMxNS4uY2Nk
MmMwNWVlZWEwZWQ0OWVmNjg0MDJjNzgzYTMzM2JkMTdkMTZlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX29iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX29iamVj
dC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXSzJVbml0
VGVzdFNlcnZlci5oIgogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUg
ImV3a19vYmplY3RfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBFV0syVW5pdFRlc3Q7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtNDAs
MTAgKzM5LDEwIEBAIGNsYXNzIFRlc3RFd2tPYmplY3QxIDogcHVibGljIEV3a09iamVjdCB7CiBw
dWJsaWM6CiAgICAgRVdLX09CSkVDVF9ERUNMQVJFKFRlc3RFd2tPYmplY3QpCiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUZXN0RXdrT2JqZWN0MT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFRl
c3RFd2tPYmplY3QxPiBjcmVhdGUoKQogICAgIHsKICAgICAgICAgd2FzRGVsZXRlZCA9IGZhbHNl
OwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RFd2tPYmplY3QxKCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXN0RXdrT2JqZWN0MSgpKTsKICAgICB9CiAKICAgICBz
dGF0aWMgYm9vbCB3YXNEZWxldGVkOyAvLyBXZSBhbHdheXMgdGVzdCBvbmx5IG9uZSBpbnN0YW5j
ZSBvZiBUZXN0RXdrT2JqZWN0LgpAQCAtNjAsOSArNTksOSBAQCBjbGFzcyBUZXN0RXdrT2JqZWN0
MiA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShU
ZXN0RXdrT2JqZWN0MikKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRlc3RFd2tPYmplY3QyPiBj
cmVhdGUoKQorICAgIHN0YXRpYyBSZWY8VGVzdEV3a09iamVjdDI+IGNyZWF0ZSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RFd2tPYmplY3QyKCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXN0RXdrT2JqZWN0MigpKTsKICAgICB9CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVy
eVByb3ZpZGVyLmNwcAppbmRleCAzYzFlNGM2YTg2NzAwOGQ1NDY0NjQ5ZWEzNzcyMzkxNDZlNGZi
MjlhLi42YjliNGNiZWY1NjdlMDU5ZmFlYWUyZTY4YzUyNjU2Njc3ODRjYmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQ
cm92aWRlci5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgc3RhdGljIHZvaWQgc3RvcFVwZGF0aW5nQ2Fs
bGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCoKICAg
ICB0b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7CiB9CiAKLVBh
c3NSZWZQdHI8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiBXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OmNy
ZWF0ZShXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikKK1JlZjxXZWJLaXRC
YXR0ZXJ5UHJvdmlkZXI+IFdlYktpdEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKFdlYkJhdHRlcnlN
YW5hZ2VyUHJveHkqIGJhdHRlcnlNYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViS2l0QmF0dGVyeVByb3ZpZGVyKGJhdHRlcnlNYW5hZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViS2l0QmF0dGVyeVByb3ZpZGVyKGJhdHRlcnlNYW5hZ2VyKSk7CiB9CiAKIFdl
YktpdEJhdHRlcnlQcm92aWRlcjo6V2ViS2l0QmF0dGVyeVByb3ZpZGVyKFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHkqIGJhdHRlcnlNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaAppbmRleCA3ZjA1ZGI2Yzcx
NjYxNmEwNzMyMDZkM2U3Yzk5YjI2ZWFkYmY0NzQ3Li5lMmU5NGJmMDQ0NzMzYzQ4NjdiZTc4OTY0
MDE1Njk4NDgxN2EzZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViS2l0QmF0dGVyeVByb3ZpZGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiwgcHVibGljIFdlYkNvcmU6OkJhdHRlcnlQ
cm92aWRlclVQb3dlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
S2l0QmF0dGVyeVByb3ZpZGVyPiBjcmVhdGUoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSopOworICAg
IHN0YXRpYyBSZWY8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiBjcmVhdGUoV2ViQmF0dGVyeU1hbmFn
ZXJQcm94eSopOwogICAgIHZpcnR1YWwgfldlYktpdEJhdHRlcnlQcm92aWRlcigpOwogCiAgICAg
dm9pZCBzdGFydFVwZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmNwcAppbmRleCBiMjZiYWI0YzdjZWZmYjQ3
MmJiNWU1YzliNTQ4YjI0MDZjM2Y2MGUwLi43MTkxOWQ4ZjZmNDlhNDNjMTQyYjY5YmI1NjdmMTU3
MGFmMjgzNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDb2xvckNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbG9yQ2hvb3Nlci5jcHAKQEAgLTI5LDkgKzI5LDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYktpdENv
bG9yQ2hvb3Nlcj4gV2ViS2l0Q29sb3JDaG9vc2VyOjpjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdl
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiByZWN0KQorUmVmPFdlYktpdENvbG9yQ2hvb3Nlcj4gV2ViS2l0Q29sb3JDaG9vc2VyOjpj
cmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENv
bG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViS2l0Q29sb3JDaG9vc2VyKHBhZ2UsIGluaXRpYWxDb2xvciwgcmVjdCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdENvbG9yQ2hvb3NlcihwYWdlLCBpbml0aWFsQ29s
b3IsIHJlY3QpKTsKIH0KIAogV2ViS2l0Q29sb3JDaG9vc2VyOjpXZWJLaXRDb2xvckNob29zZXIo
V2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyLmNwcAppbmRleCBjODE0NjFiZWM1NDdk
MmRmMWFhOTcxOGUzNjhiMDY1ZmI5ZWU4MDBhLi42YWMwZmJjOTg3ODk2YjMwNzZhMjQ2Zjk1NTUw
NDA5ZDY4OGVkY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyLmNwcApAQCAtNTQsOSArNTQs
OSBAQCBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjp+V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRl
cigpCiAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcih0b0FQSShtX2dlb2xvY2F0
aW9uTWFuYWdlci5nZXQoKSksIG51bGxwdHIpOwogfQogCi1QYXNzUmVmUHRyPFdlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXI+IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyKQorUmVmPFdlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXI+IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcihnZW9sb2NhdGlvbk1hbmFnZXIp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKGdl
b2xvY2F0aW9uTWFuYWdlcikpOwogfQogCiBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpXZWJL
aXRHZW9sb2NhdGlvblByb3ZpZGVyKFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2Nh
dGlvbk1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKaW5kZXggZGJjOGZkOGU2
Mjk2NzUxMWI5MmJmMjA5YzlmMGY2ZTg4OWIxYzZmNy4uNzU3NWRmZTg5NDJhMjJhODEwZDhhMmQ2
NTEzNGVlOGJkMDQ0ZjMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApAQCAtNjEs
OSArNjEsOSBAQCBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcjo6fldlYktpdE5vdGlmaWNhdGlv
blByb3ZpZGVyKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRl
cj4gV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkqIG5vdGlmaWNhdGlvbk1hbmFnZXIpCitSZWY8V2ViS2l0Tm90aWZpY2F0aW9uUHJv
dmlkZXI+IFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUoV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5KiBub3RpZmljYXRpb25NYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIobm90aWZpY2F0aW9uTWFuYWdlcikpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKG5vdGlm
aWNhdGlvbk1hbmFnZXIpKTsKIH0KIAogV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OldlYktp
dE5vdGlmaWNhdGlvblByb3ZpZGVyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbm90aWZp
Y2F0aW9uTWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oCmluZGV4IDJkYmMyNmRiZmFl
NDY2MThjZjY1NjA3ZGU2N2MxODk0OTY3NWNmMDIuLmFjODc0YjgzMzJmZjA1ODRjOTcxY2U4ZTE5
YTE0OTZhMDNjYWNiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMzUsNyArMzUs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcigpOwotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyPiBjcmVhdGUoV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAgc3RhdGljIFJlZjxXZWJLaXROb3RpZmljYXRpb25Q
cm92aWRlcj4gY3JlYXRlKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwogCiAgICAgdm9p
ZCBzaG93KFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYpOwogICAgIHZvaWQg
Y2FuY2VsKGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCmlu
ZGV4IGVmNzE4ZmUyYTg2OWI4N2ViMzRjNTk5MjUyNDY5MzZkNGE2ZGE1MDAuLjAzZTcyOTY1ZGI5
NTc0NmI5YTY0YTFiZDU2OGE2M2JiNDQ0MDBlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgK
QEAgLTM1LDkgKzM1LDkgQEAgY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTsKIAogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6R2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkqIG1hbmFnZXIsIHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQpCisgICAgc3Rh
dGljIFJlZjxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCBnZW9s
b2NhdGlvbklEKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgZ2VvbG9jYXRpb25JRCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHko
bWFuYWdlciwgZ2VvbG9jYXRpb25JRCkpOwogICAgIH0KIAogICAgIHZvaWQgYWxsb3coKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJl
cXVlc3QuaAppbmRleCBlY2RhMTRlOTliYzA1MTM5Zjg0NTM5ODYzMGM2NmMzNzU5NDI5MWQ0Li5m
ZmIzMTdlYzgxYjEyOGNhOGFmOGY1MzdjODUxMzE2YTkwOGE1MTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL0hUVFBSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVzdC5oCkBA
IC00Myw4ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBIVFRQUmVxdWVzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPEhUVFBSZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRUUFJlcXVlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVFRQ
UmVxdWVzdCgpKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUVFBSZXF1ZXN0PiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiByZXF1ZXN0TWV0aG9kLCBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2Vi
Q29yZTo6SFRUUFZlcnNpb24gdmVyc2lvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IEhUVFBSZXF1
ZXN0KHJlcXVlc3RNZXRob2QsIHVybCwgdmVyc2lvbikpOyB9CisgICAgc3RhdGljIFJlZjxIVFRQ
UmVxdWVzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVFRQUmVxdWVzdCgpKTsg
fQorICAgIHN0YXRpYyBSZWY8SFRUUFJlcXVlc3Q+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlcXVl
c3RNZXRob2QsIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBXZWJDb3JlOjpIVFRQVmVyc2lvbiB2
ZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEhUVFBSZXF1ZXN0KHJlcXVlc3RNZXRob2Qs
IHVybCwgdmVyc2lvbikpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRUUFJlcXVlc3Q+IHBh
cnNlSFRUUFJlcXVlc3RGcm9tQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgs
IFN0cmluZyYgZmFpbHVyZVJlYXNvbik7CiAgICAgdmlydHVhbCB+SFRUUFJlcXVlc3QoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDFmMmFjOGViY2QzMjZmMTQ5ZDA5
M2UxZGZkMzlkMDcyZDg3NzVjOWEuLmQwYmIyMDQyMDYzN2ZhM2E1OTdjMzk5M2ZhMGVkYzc3NzY3
NWJmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291
cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTQwLDkgKzQwLDkg
QEAgY29uc3QgY2hhciogV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OnN1cHBs
ZW1lbnROYW1lKCkKICAgICByZXR1cm4gIldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyIjsKIH0KIAotUGFzc1JlZlB0cjxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
cj4gV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2wpCitSZWY8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXI+IFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViUHJvY2Vz
c1Bvb2wqIHByb2Nlc3NQb29sKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIocHJvY2Vzc1Bvb2wpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcihwcm9jZXNzUG9v
bCkpOwogfQogCiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6V2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBkNTc5MGMwNjY4NGFhOWU2ZWVkMTZiMGQ2NzE0NzJiMWE3MDI1
MjJkLi4wOThlNDVlZTJkMTZkZjBiZjk5MjMxOGZkMDhmYzNkZDkzMTUxNDEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcApAQCAtNTksOSArNTksOSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVDYWxsYmFj
a0lEKCkKICAgICByZXR1cm4gKytjYWxsYmFja0lEOwogfQogCi1QYXNzUmVmUHRyPE5ldHdvcmtQ
cm9jZXNzUHJveHk+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYg
cHJvY2Vzc1Bvb2wpCitSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4gTmV0d29ya1Byb2Nlc3NQcm94
eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE5ldHdvcmtQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sKSk7CiB9CiAKIE5l
dHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHBy
b2Nlc3NQb29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDU4ZTU5NjBhNGYwYWZjMWFmNTAwNTQzZWY1ODJj
NWJmYjVkOTBhZmIuLjZiZDViZjI0NTc5NjRmNmExNzI2ZjQ5YWIzYWM5MWY5YzIwM2EzYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IDogcHVibGljIENoaWxk
UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9j
ZXNzUG9vbCYpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4gY3JlYXRlKFdl
YlByb2Nlc3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKIAogICAgIHZvaWQg
Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAyNWQzN2Rh
NGI5OTRiNmQwY2RkYmU0MjU0NDAyODNhYzFlMGU2OWE1Li4yMTI4NjI3YzUyYjAyOWI0MTIxMTY0
Y2Q3YTNmMzg5MjlhNzZkMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCkBAIC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogICAg
IAotUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK1Jl
ZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIsIG5vdGlm
aWNhdGlvbklEKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QobWFuYWdlciwgbm90aWZpY2F0aW9uSUQpKTsKIH0KIAogTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCmlu
ZGV4IGZkYzUyOTRlYzJiYTc3NjRmM2I1Y2RjMTgxYTJmZjMzYzhlOTMyMzkuLmUwNDg0MDY1OTQ2
MzQ4MGMzZTgwNjBjZTQyZjFjZjEyN2ZhNzQ1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7
CisgICAgc3RhdGljIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOwogCiAgICAgdm9pZCBhbGxvdygpOwogICAgIHZvaWQgZGVueSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb24uaAppbmRleCBlYTk4MWQyM2Q0ZTVjODA5OGViZDEyZmE4ZTE5MzU0ZjdkMWE1NDFjLi41
ZmQzZGE3MTg4NTkwOWQyNTRjNzRmNTYzOTI0OWIzYmRkODlmOGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
aApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViTm90aWZp
Y2F0aW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Tm90aWZp
Y2F0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9u
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBT
dHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNv
bnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCisgICAgc3RhdGljIFJlZjxXZWJOb3RpZmljYXRpb24+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVS
TCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3RyaW5nJiBk
aXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uKHRpdGxl
LCBib2R5LCBpY29uVVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2luU3RyaW5nLCBub3RpZmljYXRp
b25JRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJOb3RpZmljYXRpb24odGl0
bGUsIGJvZHksIGljb25VUkwsIHRhZywgbGFuZywgZGlyLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNh
dGlvbklEKSk7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMGRjNzNjYjhiYmY0YjU5ZmRiNDQwYjkyZDViMzhiMWQ4ZTRhOTQ2My4uYzA4MDg3NmFl
MjJhYjE0ZDFhMDk0NjBmYWJkYjNmZDRlOWNlNmU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ2NTYsNyArNDY1Niw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJl
ZmVyZW5jZSwKICAgICBkYXRhLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZGF0YVJlZmVyZW5jZS5z
aXplKCkpOwogICAgIGRhdGEuYXBwZW5kKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJl
bmNlLnNpemUoKSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZh
bHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGRhdGEp
LmdldCgpIDogMCwgaGFkRXhjZXB0aW9uKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNr
V2l0aFJldHVyblZhbHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmFkb3B0KGRhdGEpLnB0cigpIDogMCwgaGFkRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OmNvbXB1dGVkUGFnZXNDYWxsYmFjayhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhZ2VS
ZWN0cywgZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3QgY2FsbGJh
Y2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3Bw
CmluZGV4IGExNzMyNDcxNTViYzU3OTJlNWJiODViZGE0NWIzYzE3ZjA2MzdlMTUuLjQ4ZDI5MGNl
MzkzMWRiNTg0ODlhMDljYWQ2ZWY3ZDAzOGMwNGNjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gV2ViVmlicmF0
aW9uUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCitSZWY8V2ViVmlicmF0aW9uUHJv
eHk+IFdlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViVmlicmF0aW9uUHJveHkocGFnZSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlZpYnJhdGlvblByb3h5KHBhZ2UpKTsKIH0KIAogV2ViVmlicmF0
aW9uUHJveHk6OldlYlZpYnJhdGlvblByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKaW5kZXggYjcyMDk4MTdkZmM4
YmMwMGQ4NDkzNDJmNzRhZTdkMjU5ZGQ5MGI4OC4uNzM4NTY2MGQ2N2QyNDRmOTIyYWNmNmZiMWFl
NGM0ZjliOTIwZjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZp
YnJhdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3h5LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBX
ZWJWaWJyYXRpb25Qcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6OlZpYnJhdGlvbj4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBjcmVhdGUoV2ViUGFnZVBy
b3h5Kik7CisgICAgc3RhdGljIFJlZjxXZWJWaWJyYXRpb25Qcm94eT4gY3JlYXRlKFdlYlBhZ2VQ
cm94eSopOwogICAgIHZpcnR1YWwgfldlYlZpYnJhdGlvblByb3h5KCk7CiAKICAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0
dHJpYnV0ZXMuaAppbmRleCAwZjUyYjg3MzYzMTQwZTBmYmQzNjgxMmUwMTg0MWEyZTI1YmYyOGY2
Li5hMzEwNjVmZTRjZGQxMmZlY2U4MzcwYjc0ZmQyM2JlOGIyZTUwZjhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCkBAIC0zNCw5ICsz
NCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMg
OiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3cG9ydEF0dHJp
YnV0ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWV3cG9ydEF0dHJp
YnV0ZXM+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0
ZXMpCisgICAgc3RhdGljIFJlZjxXZWJWaWV3cG9ydEF0dHJpYnV0ZXM+IGNyZWF0ZShjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1
dGVzKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViVmlld3BvcnRBdHRyaWJ1dGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKaW5kZXggOTQzNGI3ODY4MGQyNmMyM2ZiNmQ0NzFlYmY3ZGJlOWZhNDg2
YzhmMy4uMWFmYWZiYWFiMThjZjBiMDlmZWM0NjIyNzIzOTNkZmMyMTY1YTkxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcApAQCAtNTgsMTQgKzU4LDE0IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlk
ZW50aWZpZXIoKQogICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CiAKLVJlZlB0cjxXZWJzaXRl
RGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkKK1JlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3RvcmUoZ2VuZXJhdGVOb25Q
ZXJzaXN0ZW50U2Vzc2lvbklEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRl
RGF0YVN0b3JlKGdlbmVyYXRlTm9uUGVyc2lzdGVudFNlc3Npb25JRCgpKSk7CiB9CiAKLVJlZlB0
cjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uKQorUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6
OmNyZWF0ZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKFdURjo6bW92ZShjb25maWd1cmF0aW9uKSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoV1RGOjptb3ZlKGNvbmZpZ3Vy
YXRpb24pKSk7CiB9CiAKIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNWU0YzcyMmI2NTM2NTE3
YWE2MmQ3MDYzMzNiNTJiY2QwYmVlZDNmYS4uMzZiNjBjN2Q0NDJlOTRmODNhZTIxOTRjNzc5MzNl
MWE3NWIyMDI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Miw4ICs2Miw4IEBAIHB1YmxpYzoKICAg
ICAgICAgU3RyaW5nIGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIG1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgfTsKLSAgICBzdGF0aWMgUmVmUHRyPFdlYnNpdGVE
YXRhU3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKLSAgICBzdGF0aWMgUmVmUHRyPFdlYnNp
dGVEYXRhU3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNp
dGVEYXRhU3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNp
dGVEYXRhU3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKICAgICB2aXJ0dWFsIH5XZWJzaXRl
RGF0YVN0b3JlKCk7CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkNvbG9yUGlja2VyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2Vi
Q29sb3JQaWNrZXJHdGsuY3BwCmluZGV4IGM0ZjY1ODMwOTY0NzAwMjZkZmUwZjEwZWQ1ODk0ODYx
MjhiNTQzMTMuLjMyZGZlODJlY2Q2YzY1MjNiYTU1ZjA1M2EwMjQzMGVjNDhiMTc1YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3Bw
CkBAIC0zNyw5ICszNyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gV2ViQ29sb3JQaWNrZXJH
dGs6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3Is
IGNvbnN0IEludFJlY3QmIHJlY3QpCitSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IFdlYkNvbG9yUGlj
a2VyR3RrOjpjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5pdGlhbENv
bG9yLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
Q29sb3JQaWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViQ29sb3JQaWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7
CiB9CiAKIFdlYkNvbG9yUGlja2VyR3RrOjpXZWJDb2xvclBpY2tlckd0ayhXZWJQYWdlUHJveHkm
IHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludFJlY3QmKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oCmluZGV4IDY3
MDE4MTVmM2MzZmZiMzA3MDYzZDk4NzBjNTM1OWU5ZjY4YmYzYTguLjA1YTg0ZGU0YjAyMTgzOGNk
NWE5NjVkMGFiYmJmOGVmMTRlZWI3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYkNvbG9yUGlja2VyR3RrIDogcHVibGljIFdlYkNvbG9yUGlja2Vy
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gY3Jl
YXRlKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IGNyZWF0ZShXZWJQ
YWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsKICAgICB2aXJ0dWFsIH5XZWJDb2xvclBpY2tlckd0aygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGVuZFBpY2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaAppbmRleCA0YjU4ZmQ1MmFkZDE4ZDY4NWYx
ZDM3MDNlMTg1NmFhMmZkZTVjOWRjLi5hODBlYmYyYzkxZGIyNjUyZDYyMjJjM2RlYTUxOTQyNDUx
NTNiNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRl
eHRNZW51UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRNZW51UHJveHlHdGsuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7
CiAKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViQ29udGV4dE1lbnVQ
cm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94
eUd0az4gY3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5KiBwYWdlKQorICAg
IHN0YXRpYyBSZWY8V2ViQ29udGV4dE1lbnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdldCogd2Vi
VmlldywgV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJDb250ZXh0TWVudVByb3h5R3RrKHdlYlZpZXcsIHBhZ2UpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBwYWdlKSk7
CiAgICAgfQogICAgIH5XZWJDb250ZXh0TWVudVByb3h5R3RrKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAppbmRleCBkOTIw
MDM5NTk3ZmMwOWVjOWExYTc2OWVlOTBjYTk1ODFjYjc1NDQ5Li41ZjgwY2RmN2MyMmYyNjVlZGZh
N2Q4YmM5NDQ0MzFmYzI5NDA1ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCkBAIC0zNyw5ICszNyw5IEBAIGNsYXNzIFdl
YlBhZ2VQcm94eTsKIAogY2xhc3MgV2ViUG9wdXBNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViUG9w
dXBNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBvcHVwTWVu
dVByb3h5R3RrPiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6
Q2xpZW50KiBjbGllbnQpCisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnVQcm94eUd0az4gY3Jl
YXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQcm94eUd0
ayh3ZWJWaWV3LCBjbGllbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUG9w
dXBNZW51UHJveHlHdGsod2ViVmlldywgY2xpZW50KSk7CiAgICAgfQogICAgIH5XZWJQb3B1cE1l
bnVQcm94eUd0aygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1ZpZXdTbmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdT
bmFwc2hvdFN0b3JlLmgKaW5kZXggMzA1YWRiM2E3NGMwNjhiOWI5OGRmZDM4NzcyMGM4ZTA2MzY4
MmExYi4uYTE0YTEwYzQxNTE2ZmQ1M2U3OTJiNGUyMmE5YTFhMTY5OTZmOTJkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApAQCAtNjIs
OSArNjIsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBWaWV3U25hcHNob3QgOiBwdWJs
aWMgUmVmQ291bnRlZDxWaWV3U25hcHNob3Q+IHsKIHB1YmxpYzoKICNpZiBVU0VfSU9TVVJGQUNF
X1ZJRVdfU05BUFNIT1RTCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBjcmVh
dGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOworICAgIHN0YXRpYyBSZWY8
Vmlld1NuYXBzaG90PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4p
OwogI2VsaWYgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxWaWV3U25hcHNob3Q+IGNyZWF0ZSh1aW50MzJfdCBzbG90SUQsIFdlYkNvcmU6Oklu
dFNpemUsIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKTsKKyAgICBzdGF0aWMgUmVmPFZpZXdTbmFw
c2hvdD4gY3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGlt
YWdlU2l6ZUluQnl0ZXMpOwogI2VuZGlmCiAKICAgICB+Vmlld1NuYXBzaG90KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQppbmRleCA5
ZDg3ZTI4MWQ0NDNlNzZkZGMxMmVkYTZmZGM1MTlmZDExNTI0MDY1Li5iNjA4NDI2NjliNmIwOTI4
Y2Q5OTcxZjQzM2Y4Y2QyNDA3YmRjYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTEzNCwxNCArMTM0LDE0IEBAIHZvaWQg
Vmlld1NuYXBzaG90U3RvcmU6OmRpc2NhcmRTbmFwc2hvdEltYWdlcygpCiAKIAogI2lmIFVTRV9J
T1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKLVBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBWaWV3U25h
cHNob3Q6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQorUmVmPFZp
ZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gc3VyZmFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZpZXdTbmFwc2hvdChXVEY6
Om1vdmUoc3VyZmFjZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3Qo
V1RGOjptb3ZlKHN1cmZhY2UpKSk7CiB9CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NO
QVBTSE9UUwotUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVp
bnQzMl90IHNsb3RJRCwgSW50U2l6ZSBzaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcykKK1Jl
ZjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgSW50
U2l6ZSBzaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcykKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFZpZXdTbmFwc2hvdChzbG90SUQsIHNpemUsIGltYWdlU2l6ZUluQnl0ZXMpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3Qoc2xvdElELCBzaXplLCBpbWFnZVNp
emVJbkJ5dGVzKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb2xvclBpY2tlck1hYy5oCmluZGV4IDQwYzllMmJjZmRkYzAyZmFhMWU5MGI0MmNk
MDE1MDZmMmYzM2Q3MDkuLmNmMmY2ZTg2MDI1NTYyN2QxNDhlOGI3Y2U1NjNlMjY5NTQ2NjM3ZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJN
YWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFj
LmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBjbGFzcyBXZWJD
b2xvclBpY2tlck1hYyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBwdWJsaWM6ICAgICAgICAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRlKFdlYkNvbG9y
UGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBXS1ZpZXcqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVh
dGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIFdLVmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1hYygpOwog
CiAgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggNzNjNjRhYzVm
OGE0NGJkMGViYTE2MzgyM2NlNmZmZWUzYjVjZWVjNC4uMjZhYzY5ZmVkNjY5ZDk1ZDZlNmU1ZGMx
OTlmMzRmYjcxNjFlOGFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb2xvclBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLm1tCkBAIC03NSw5ICs3NSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkNvbG9yUGlja2Vy
TWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNs
aWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQorUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBXZWJD
b2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
cmVjdCwgV0tWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQ
aWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3IsIHJlY3QsIHZpZXcpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xvciwgcmVj
dCwgdmlldykpOwogfQogCiBXZWJDb2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2VyTWFjKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLmgKaW5kZXggMGVlNTQ5NTZhZTI3NTE0ZjZlMjRhNjkxMGE5NWNiNTNkNDNiNGJmNS4u
ZDhhZDhmNDVkODUyZTU1MjY3YzliNjU2MWYyZDYwMjEwM2JiMmEzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKQEAg
LTQzLDkgKzQzLDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJDb250ZXh0TWVu
dVByb3h5TWFjIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcqIHdl
YlZpZXcsIFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICBzdGF0aWMgUmVmPFdlYkNvbnRleHRNZW51
UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogcGFnZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29udGV4dE1lbnVQcm94eU1hYyh3
ZWJWaWV3LCBwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRN
ZW51UHJveHlNYWMod2ViVmlldywgcGFnZSkpOwogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQ
cm94eU1hYygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YlBvcHVwTWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBv
cHVwTWVudVByb3h5TWFjLmgKaW5kZXggZTMyYTQxYjVjMTZjNzY2OTQ0MWJmNjI0MmJkMzY0MjFk
MDdkZDc1Yi4uYjFmNjA2ZjQwMWY2Yzc4YjQ2ZmFhMzNkNjNkNzQ0YWFhMjZlZDQ1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMu
aApAQCAtNDAsOSArNDAsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYlBvcHVw
TWVudVByb3h5TWFjIDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmlldyAqd2Vi
VmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KQorICAgIHN0YXRpYyBSZWY8
V2ViUG9wdXBNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcgKndlYlZpZXcsIFdlYlBvcHVwTWVu
dVByb3h5OjpDbGllbnQqIGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViUG9wdXBNZW51UHJveHlNYWMod2ViVmlldywgY2xpZW50KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlBvcHVwTWVudVByb3h5TWFjKHdlYlZpZXcsIGNsaWVudCkpOwog
ICAgIH0KICAgICB+V2ViUG9wdXBNZW51UHJveHlNYWMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCRmFjdG9yeUJhY2tlbmQuaAppbmRleCA5Y2VjYWMxZDllY2NiYzFjZGFkMmY2MWNjZWJmMmQ2
Y2RiYjhhMDA1Li41NzY5OGY5NWIxODY4NTBkNWFjZDVkY2Q4NGIzMjlmNWIwMjQ2NDAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCRmFjdG9yeUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaApAQCAtMzUsNyArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCRmFjdG9yeUJhY2tlbmQgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgV2ViSURCRmFjdG9yeUJhY2tlbmQpOyB9CisgICAgc3RhdGljIFJlZjxX
ZWJJREJGYWN0b3J5QmFja2VuZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJ
REJGYWN0b3J5QmFja2VuZCk7IH0KIAogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlCYWNrZW5k
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZWY1YmZj
OTMzMTViMzdjZjkyZjZjZjIxOGJiNzQwMzlhZGYxYmI1NC4uYzA1MTU4NWM3MDI3NDczMTNjNWFm
ZjU3YzQ0ZjFmYWVhMzdlYmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2Vu
ZDsKIAogY2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgc3Rh
dGljIFJlZjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICB9CiAgICAg
fldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHAKaW5kZXggYTQyMzc1ZDY5MmUyMzkzNTFlODc0YzBmNjlkNzg5Zjc4NWJiMmFlNy4u
ZmZmYThiMmQ1MmMyNGI1YjJiN2U3YjdmOTcwZDBmNTAxYmYwMjNhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RP
ZkNvbnRlbnRzKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNjcmVlblJl
Y3QoKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVsbFNjcmVl
bk1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQorUmVmPFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
PiBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXIocGFnZSkpOwogfQogCiBXZWJGdWxs
U2NyZWVuTWFuYWdlcjo6V2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmgKaW5kZXggZDI4ZDg1YmE0ZTI4OTBiOGNkMGEyNjVkMGM4ZWM3ODE5NDFl
Y2NhNS4uN2NkZGRjZmU3ZTQyMWYxYWNhNDUzNGYzN2M0NjNlNjI3NDcxM2MwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3Mg
V2ViRnVsbFNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGdWxsU2NyZWVuTWFu
YWdlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnVsbFNjcmVlbk1hbmFn
ZXI+IGNyZWF0ZShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXIo
KTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcAppbmRleCAwNzI5ZGU3ZWM5ZGFkMzlhMjAwNjY0NDYxNWY0NzRkMTBjYWY2ZTMw
Li4yZTc1OWRlY2VlMmFjMjRkYjI2OWU2MmY0YWViZTNhYzJhY2Y4YTExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApAQCAtNzUsOSArNzUsOSBA
QCBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGU6OmdldE9yQ3JlYXRlKFJhbgogICAgIHJldHVybiByYW5nZUhhbmRsZS5yZWxlYXNl
KCk7CiB9CiAKLVBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUoUmFuZ2UqIHJh
bmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZShyYW5nZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUocmFuZ2UpKTsKIH0KIAogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6SW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZShSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmgKaW5kZXggMTdkZWIyOTk4Y2M2YjA1YThmYTlkYTdlOTQzYzQz
NzRmZmFlMWI3Ny4uYWVlZjY5ZTJjYTRhMTY1YzYzMjc4MThkNTQyZjcwNDg0ZTgxMGFhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaApAQCAtNTUsNyAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UmFuZ2UqIGNvcmVSYW5nZSgpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CiAgICAgSW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZShXZWJDb3JlOjpSYW5nZSopOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJh
bmdlPiBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlz
dC5oCmluZGV4IGNjYmY5N2JkMjg0ZjkxOGY2MjcyZDMzYzRlNzEwNGU4NjBkMTBiMjQuLmE0NGQw
Yjk2MjAwYjAyMzFlNmI5ZWE3MTFkYzA4YmJhMjQ1NzE2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUJh
Y2tGb3J3YXJkTGlzdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6
OkJ1bmRsZUJhY2tGb3J3YXJkTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkKKyAg
ICBzdGF0aWMgUmVmPEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFn
ZSogcGFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5k
bGVCYWNrRm9yd2FyZExpc3QocGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdChwYWdlKSk7CiAgICAgfQogCiAgICAgdm9pZCBk
ZXRhY2goKSB7IG1fcGFnZSA9IDA7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254929</attachid>
            <date>2015-06-15 21:56:16 -0700</date>
            <delta_ts>2015-06-15 22:01:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146001-20150616135541.patch</filename>
            <type>text/plain</type>
            <size>65698</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDdhYmMyNmM5ZTc0NzI5
YjhlMjgyNTExZDY1NmJiMjNkNzY2NTc4NS4uZGE4YWMzMTU4MjFmNWM3MTU4YTE5NjVkY2I5Y2Y5
NWMxN2RiNGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wNi0xNSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NjAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFzIHN0ZXAgdG8gcmVtb3ZlIFBhc3NSZWZQdHIsIHRoaXMgcGF0
Y2ggcmVtb3ZlcyBQYXNzUmVmUHRyIGluIFdlYktpdDIuCisgICAgICAgIElmIGZ1bmN0aW9uIGNh
bid0IHJldHVybiBudWxscHRyLCBQYXNzUmVmUHRyIGlzIGNoYW5nZWQgd2l0aCBSZWYuIElmIG5v
dCwgdGhlIGZ1bmN0aW9uCisgICAgICAgIHJldHVybnMgUmVmUHRyLgorCisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJE
YXRhYmFzZS5oOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElOdW1iZXIuaDoKKyAgICAgICAgKEFQSTo6
TnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4u
aDoKKyAgICAgICAgKEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcpOgorICAg
ICAgICAoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAoQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQpOgorICAgICAgICAqIFNoYXJlZC9BUElXZWJBcmNoaXZlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmU6OmNyZWF0ZSk6
CisgICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5oOgorICAgICAgICAqIFNo
YXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmVS
ZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQXN5bmNSZXF1ZXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAg
ICAgKEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxSZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmg6Cisg
ICAgICAgIChFd2tXaW5kb3dGZWF0dXJlczo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcDoKKyAgICAgICAgKFRlc3RFd2tPYmpl
Y3QxOjpjcmVhdGUpOgorICAgICAgICAoVGVzdEV3a09iamVjdDI6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb2xvckNob29zZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRDb2xvckNo
b29zZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9j
YXRpb25Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVz
dC5oOgorICAgICAgICAoV2ViS2l0OjpIVFRQUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1
dGVzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
UGlja2VyR3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNr
ZXJHdGsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdT
bmFwc2hvdFN0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbG9yUGlja2VyTWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
TWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKToKKwogMjAx
NS0wNi0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TIFdLMl0gcG9zaXRpb246Zml4ZWQgZWxlbWVudHMgc29tZXRpbWVzIHRydW5jYXRlZCBv
biBzY3JvbGwgdmlldyBib3VuY2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCA1ZjgyMjMwYTk3MjIyMWVmM2M0NTA5YjhkM2I4OGEwNTNiMGVhYmI3Li5iYzk2ZGUwZjcz
OWEwMDE4YTE5MTc3MTFlYzY1NmJhOGJhMzE1MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFz
c1JlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK1JlZjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25u
ZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5k
ZXggNTljNDBkMzczMjliOGJjODM3MjAzM2UzODA1YzkyNmVmYTE2NDNiOC4uMTUwNmVhYmI5MDNj
YmNkMGY2M2E3N2IxYTkwNDVjYWM1YjQ2YmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJs
aWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAgICB+RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5kZXggYjgwMTQwYjA2NzY0MzhhN2QxNmIyNTFm
NWEwZTI5ZGNjMjg1M2NmZC4uMmEyMWEyMGRiMzkzYzk1M2U4MzE3ZGU4MjE1ODBkYjljNjM1OWVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9E
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTQ3
LDkgKzQ3LDkgQEAgY2xhc3MgVW5pcXVlSURCRGF0YWJhc2U7CiAKIGNsYXNzIERhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uPiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjcmVhdGUoRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b24+IGNyZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24oY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5EYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggZGM2YjRmMDAwNzkyNzY0
MDJiY2ZiNjlmZDkxY2E2MGYwNTIxZjIyMi4uYjFkMjRiM2RmNmEzNjE4MTJjMWI5YTZiNjViMzVk
MTNlZWY1MTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtNjIsOSArNjIsOSBAQCBl
bnVtIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHsKIAogY2xhc3MgVW5pcXVl
SURCRGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VW5pcXVlSURCRGF0YWJh
c2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4g
Y3JlYXRlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKKyAg
ICBzdGF0aWMgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0
YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBVbmlxdWVJREJEYXRhYmFzZShpZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlKGlkZW50aWZpZXIpKTsKICAgICB9CiAKICAg
ICB+VW5pcXVlSURCRGF0YWJhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCmluZGV4IDk5YzI4YWZmZDE0
ZjNkMDkyYzBiM2Q1NWQ5OTczZTI4Nzk2MzRjMzAuLjEwZWM4ODY0Yjg1YThlMmViZDFkNWU5Yzgx
MTllYWMxNWNkMDE5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFz
cyBTUUxpdGVJREJUcmFuc2FjdGlvbjsKIAogY2xhc3MgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGUgZmluYWwgOiBwdWJsaWMgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQorICAgIHN0YXRpYyBSZWY8VW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmU+IGNyZWF0ZShjb25zdCBVbmlxdWVJREJEYXRhYmFz
ZUlkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3Rvcnkp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlKGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
KGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCBhZjhlYWFiNzdiNjVjMzYyMDQ1YzJiZGEwODdhNDQ0MWE3NmIyZjYz
Li5kMWZmZWUzODBmZGU2NzM5ZTNhOTI1Mjk4ZDViNzY2MzQ1OGNiOGUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitSZWY8TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Y29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzY3OGMyY2VhMjA2YjIzMmI5MDFjZmNkZjljNzQ4NmYw
MDQ0NWI3My4uMzJhMzEwNTg3ZDMyNWViOTFjZGRhZTY0NWY2NWI2ZWJkMWM3YjZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVkZWYgdWludDY0X3Qg
UmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4s
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmgKaW5kZXggOTlhOTkyYTVmNTE3NzNlY2E3ZjI4ODA2MGM0ODVkMzZhYjUzMWNlNy4uMzI3ZjJj
MzA4MDA2MTI3MzVlN2I5NTNhYmMwYjFjNDg2ZjJlN2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0z
NCw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFJlZjxSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDBmZTM1ZDAxMGViZTIzYWIyYzhi
MThkMDMxNDkxMjQ5MTVhMjU3NTIuLmFiNDAyNTY3NTNmZGVkZmU4OWI5MWRiNDNjOTI2Y2IwYmMz
ODViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00Niw5ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJQcm9jZXNzQ29ubmVj
dGlvbj4gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQog
CiBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRl
eCAxMjIxZjk1OWQyM2I3YWNiNTE1YmE0N2YwYzk0MmZlYTZiMTAyNWY3Li5iYjMzMTdjOTM1Y2E0
NzU3YjE3YTIxN2ViZjJkM2I5YmJiNzE1NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHN0
cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIFdlYlByb2Nlc3NDb25uZWN0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIHN0
YXRpYyBSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfldlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAg
ICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVt
YmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oCmluZGV4IDAyYTRk
YTk3ZmYxODVhYWUzMzE5MGY5NmVmZWFkNjQ1MTQ5MTVmMmIuLmY2NWNkZTAxYWYzODY3NDkxNWMy
YTA2MTZhYjU2ZGY3NDQwMDNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElOdW1iZXIu
aApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgQVBJIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE51
bWJlclR5cGUsIEFQSTo6T2JqZWN0OjpUeXBlIEFQSU9iamVjdFR5cGU+CiBjbGFzcyBOdW1iZXIg
OiBwdWJsaWMgT2JqZWN0SW1wbDxBUElPYmplY3RUeXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TnVtYmVyPiBjcmVhdGUoTnVtYmVyVHlwZSB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmUHRyPE51bWJlcj4gY3JlYXRlKE51bWJlclR5cGUgdmFsdWUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBOdW1iZXIodmFsdWUpKTsKICAgICB9CiAKICAgICBOdW1iZXJUeXBlIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElTZWN1cml0eU9yaWdpbi5oCmluZGV4IGM3NTgwMjU4MDgwYmMxNTZlZWExMDVhMDZkMGVhODMz
OTI1YjIyM2YuLjgxMWQ3ODBmYjg1Nzc1MzYzNzU1YTNjMTY3ZjhmYzk4YTBhNjZmNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKQEAgLTM0LDE3
ICszNCwxNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpTZWN1cml0eU9yaWdpbj4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9t
U3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcpCisgICAgc3RhdGljIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYgc3RyaW5nKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBwcm90b2NvbCwgY29uc3Qg
V1RGOjpTdHJpbmcmIGhvc3QsIGludCBwb3J0KQorICAgIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IGNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFdURjo6U3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCkKICAgICB7CiAgICAgICAgIHJldHVybiBjcmVhdGUoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwcm90b2NvbCwgaG9zdCwgcG9ydCkpOwogICAgIH0K
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCisgICAgc3RhdGljIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luKQogICAgIHsKICAgICAgICAgaWYgKCFzZWN1cml0eU9yaWdp
bikKICAgICAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggY2MwNTc4ODg0ZDQ1NmJiYjNl
OTg0ZDM4YjBlMzFjNTc0Mzg0ZDk0MS4uNGU3YzJlMGNlNjU3MGI3NTY1MTgzYzUxM2U4MjdjNDkw
NjE3OWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zNiwyMiArMzYsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUpCisgICAgc3Rh
dGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShz
ZXJpYWxpemVkVmFsdWUpKTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVS
ZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKKyAgICBzdGF0aWMgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiAgICAgewogICAgICAgICBSZWZQdHI8V2Vi
Q29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKTsK
ICAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXpl
ZFZhbHVlLmdldCgpKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKHNlcmlhbGl6ZWRWYWx1ZS5n
ZXQoKSkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgIHN0YXRpYyBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoYnVmZmVyKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIpKSk7CiAgICAgfQogICAgIAogICAgIEpTVmFs
dWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5oCmluZGV4IDE2ZTgxN2RkMjY5
YTQ1YmQ4NjkzMGZhYjQ5ZDY2MmZiZjAzYzU4NzQuLmQ5NmI1OTZkYWJmYmU5MDY4YWM1MzQxMDY4
N2JmYTJkMTg2MThiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJB
cmNoaXZlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuaApAQCAt
NTAsMTAgKzUwLDEwIEBAIGNsYXNzIFdlYkFyY2hpdmUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
V2ViQXJjaGl2ZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRl
KFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+
IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVzKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBjcmVhdGUoQVBJOjpEYXRhKik7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+
IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3Jl
YXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJy
YXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVz
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShBUEk6OkRhdGEqKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdl
YkFyY2hpdmU+KTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShXZWJDb3JlOjpS
YW5nZSopOwogCiAgICAgV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UoKTsKICAgICBB
UEk6OkFycmF5KiBzdWJyZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElXZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hp
dmUubW0KaW5kZXggNjczNzY0NWI3ZDZmMWY0ODljMjdmNTEyODRhNTA3ZjJjMWM2ZmZjOS4uYWMw
MDc4OWIwNmZmZDAzYTYwNDIyNzYzMTI0ODFlMDFmYmRlMDliZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW0KQEAgLTM4LDI0ICszOCwyNCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2Vi
QXJjaGl2ZTo6Y3JlYXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVm
UHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJm
cmFtZUFyY2hpdmVzKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0ZShXZWJBcmNo
aXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJyZXNv
dXJjZXMsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3ViZnJhbWVBcmNoaXZlcykKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmUobWFpblJlc291cmNlLCBzdWJyZXNvdXJjZXMs
IHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZl
KG1haW5SZXNvdXJjZSwgc3VicmVzb3VyY2VzLCBzdWJmcmFtZUFyY2hpdmVzKSk7CiB9CiAKLVBh
c3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSkK
K1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRhKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShkYXRhKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShkYXRhKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2
ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gbGVnYWN5
V2ViQXJjaGl2ZSkKK1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUGFzc1JlZlB0
cjxMZWdhY3lXZWJBcmNoaXZlPiBsZWdhY3lXZWJBcmNoaXZlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJBcmNoaXZlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJBcmNoaXZlKSk7CiB9CiAKLVBhc3NSZWZQdHI8
V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxXZWJBcmNo
aXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUocmFuZ2UpKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVh
dGUocmFuZ2UpKSk7CiB9CiAKIFdlYkFyY2hpdmU6OldlYkFyY2hpdmUoV2ViQXJjaGl2ZVJlc291
cmNlKiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQ
YXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmgKaW5kZXggNzNjYmY1NmUzYWI4ZGFmOWQ0
ZjRhZWRkYWE0MDI5ODZkOGJkZTNiMi4uMWViOTI2NGIzZWZkODc1NzkzZTViZmE0ZDllNDhhN2Y5
YmY1Njk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVS
ZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3Vy
Y2UuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBXZWJBcmNoaXZlUmVzb3VyY2UgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlUgogcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYkFyY2hpdmVSZXNvdXJjZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBV
UkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVm
UHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2
ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsKKyAgICBzdGF0aWMg
UmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6QXJjaGl2
ZVJlc291cmNlPik7CiAKICAgICBSZWY8QVBJOjpEYXRhPiBkYXRhKCk7CiAgICAgU3RyaW5nIFVS
TCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0K
aW5kZXggNDUwNDU1ZWYxMTQ5ZmY2YTRiZDVhM2Y0OTk4Nzc0YzgxYTdjZjg2My4uOWUzODNlMTE1
YWVhZGUzZWIxNjg5ZGQxYTQ2NmYxNjNhNWNmMWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCkBAIC0zNywxNCArMzcsMTQgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBBUEkgewogCi1QYXNzUmVmUHRyPFdlYkFy
Y2hpdmVSZXNvdXJjZT4gV2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRh
LCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0RW5jb2RpbmcpCitSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3Vy
Y2U6OmNyZWF0ZShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJp
bmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZykKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNvdXJjZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0
RW5jb2RpbmcpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlUmVzb3VyY2Uo
ZGF0YSwgVVJMLCBNSU1FVHlwZSwgdGV4dEVuY29kaW5nKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2Vi
QXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShQYXNzUmVmUHRyPEFy
Y2hpdmVSZXNvdXJjZT4gYXJjaGl2ZVJlc291cmNlKQorUmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4g
V2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGFy
Y2hpdmVSZXNvdXJjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNv
dXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNo
aXZlUmVzb3VyY2UoYXJjaGl2ZVJlc291cmNlKSk7CiB9CiAKIFdlYkFyY2hpdmVSZXNvdXJjZTo6
V2ViQXJjaGl2ZVJlc291cmNlKEFQSTo6RGF0YSogZGF0YSwgY29uc3QgU3RyaW5nJiBVUkwsIGNv
bnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oCmluZGV4IGJmZGUxOTg0NjE0NzE0OGZmZjg5YTE0OGQ4
NzE3NDZjNmE2NmRlMzEuLmUxMDZkNWI4YTA0OGNiN2VjODlhMDk3YjM2NmY0YmRkYWI0MmE1NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmgKQEAgLTYwLDE0ICs2MCwxNCBAQCBj
bGFzcyBBc3luY1JlcXVlc3RJbXBsIGZpbmFsIDogcHVibGljIEFzeW5jUmVxdWVzdCB7CiBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgQXJndW1lbnRUeXBlID0gdHlwZW5h
bWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgVCwgY29uc3Qg
VCY+Ojp0eXBlOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUo
c3RkOjpmdW5jdGlvbjx2b2lkIChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRp
b25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5j
dGlvbjx2b2lkKEFyZ3VtZW50VHlwZTxBcmd1bWVudHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFzeW5jUmVxdWVzdEltcGw8QXJn
dW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFzeW5jUmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihX
VEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkIChB
cmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKKyAgICBzdGF0aWMgUmVmPEFzeW5jUmVxdWVzdD4g
Y3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNv
bXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gYWJvcnRIYW5kbGVyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBc3luY1JlcXVlc3RJbXBsPEFyZ3VtZW50
cy4uLj4oV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgV1RGOjptb3ZlKGFib3J0SGFuZGxl
cikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1
bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURjo6bW92ZShhYm9ydEhh
bmRsZXIpKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+QXN5bmNSZXF1ZXN0SW1wbCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Rf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaAppbmRleCA5NDVmYzgzNTM1ODMxMDUxYjFiOWFkODg3Njg4MzkyMjQxNDlk
Mjc5Li4zNzY3NTVmN2M4NmJlMDI5MTFhZGQxZGM3ZWI3NmZiZmE5NjBkOGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVz
dF9wcml2YXRlLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgRXdrVXJsUmVxdWVzdCA6IHB1Ymxp
YyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxSZXF1
ZXN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4gY3JlYXRlKFdLVVJM
UmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgIHN0YXRpYyBSZWY8RXdrVXJsUmVxdWVzdD4gY3Jl
YXRlKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBFd2tVcmxSZXF1ZXN0KHJlcXVlc3RSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRXdrVXJsUmVxdWVzdChyZXF1ZXN0UmVmKSk7CiAgICAgfQogCiAgICAgY29u
c3QgY2hhciogdXJsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCmluZGV4IDRlYTgyNzQ5
ODMzNTc1MTMxZjUzM2IwY2JhY2M0NjAwZTUzMTQ4YzAuLjJmZmRiN2IyMjAwYjhmZWRjNGY4NzUy
Zjg5MGM2MjgwZDkyZTE4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCkBAIC00MCwxMCArNDAs
MTAgQEAgY2xhc3MgRXdrVXJsUmVzcG9uc2UgOiBwdWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJsUmVzcG9uc2UpCiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tVcmxSZXNwb25zZT4gY3JlYXRlKFdLVVJMUmVzcG9uc2VSZWYgd2tSZXNwb25z
ZSkKKyAgICBzdGF0aWMgUmVmUHRyPEV3a1VybFJlc3BvbnNlPiBjcmVhdGUoV0tVUkxSZXNwb25z
ZVJlZiB3a1Jlc3BvbnNlKQogICAgIHsKICAgICAgICAgaWYgKCF3a1Jlc3BvbnNlKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlc3BvbnNlKHdrUmVzcG9uc2UpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVt
ZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDlhNDA0YzcwOWE0ZDU1NTRiYTE3
MjFiNDAyNTBiZWRmYjM1YzhiYTcuLmEzOTg5MmI0MGZiNWVmYjhlOTI3NzA0YWJjN2U1Yjg5N2Jk
ZmU1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC00MSwxMCArNDEs
MTAgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVi
bGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxS
ZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCisgICAgc3RhdGljIFJlZlB0cjxFd2tVcmxTY2hl
bWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBt
YW5hZ2VyLCBBUEk6OlVSTFJlcXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkK
ICAgICB7CiAgICAgICAgIGlmICghbWFuYWdlciB8fCAhdXJsUmVxdWVzdCkKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFd2tVcmxTY2hlbWVSZXF1ZXN0KG1hbmFnZXIsIHVybFJlcXVlc3QsIHJl
cXVlc3RJRCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a193aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKaW5kZXggZTUyMDE2
NzNhZmI1MjRmMTRlNmI3MjAwYzRkMGFmMmJjMWM1YTJjZi4uOTUyYTc3NDFlMWQwZDc0MjliMTEz
M2FiN2NiN2ZjZmIwZjBiMWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKQEAgLTM3
LDkgKzM3LDkgQEAgY2xhc3MgRXdrV2luZG93RmVhdHVyZXMgOiBwdWJsaWMgRXdrT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrV2luZG93RmVhdHVyZXMpCiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFy
eVJlZiB3aW5kb3dGZWF0dXJlcywgRXdrVmlldyogdmlld0ltcGwpCisgICAgc3RhdGljIFJlZjxF
d2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFyeVJlZiB3aW5kb3dGZWF0dXJlcywg
RXdrVmlldyogdmlld0ltcGwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3
a1dpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVzLCB2aWV3SW1wbCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBFd2tXaW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0dXJlcywgdmlld0lt
cGwpKTsKICAgICB9CiAKICAgICBjb25zdCBFdmFzX0Nvb3JkX1JlY3RhbmdsZSYgZ2VvbWV0cnko
KSBjb25zdCB7IHJldHVybiBtX2dlb21ldHJ5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCmluZGV4
IDcwY2VlYTVlNWQxYjYyMDNhZjUyZDc4NjA0OTMzZDNiN2FjMjQzMTUuLmNjZDJjMDVlZWVhMGVk
NDllZjY4NDAyYzc4M2EzMzNiZDE3ZDE2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIu
aCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0
X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgRVdLMlVuaXRUZXN0OwogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTQwLDEwICszOSwxMCBA
QCBjbGFzcyBUZXN0RXdrT2JqZWN0MSA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAg
IEVXS19PQkpFQ1RfREVDTEFSRShUZXN0RXdrT2JqZWN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8VGVzdEV3a09iamVjdDE+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxUZXN0RXdrT2JqZWN0
MT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHdhc0RlbGV0ZWQgPSBmYWxzZTsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0MSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGVzdEV3a09iamVjdDEoKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wg
d2FzRGVsZXRlZDsgLy8gV2UgYWx3YXlzIHRlc3Qgb25seSBvbmUgaW5zdGFuY2Ugb2YgVGVzdEV3
a09iamVjdC4KQEAgLTYwLDkgKzU5LDkgQEAgY2xhc3MgVGVzdEV3a09iamVjdDIgOiBwdWJsaWMg
RXdrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoVGVzdEV3a09iamVj
dDIpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0RXdrT2JqZWN0Mj4gY3JlYXRlKCkKKyAg
ICBzdGF0aWMgUmVmPFRlc3RFd2tPYmplY3QyPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0MigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGVzdEV3a09iamVjdDIoKSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5j
cHAKaW5kZXggM2MxZTRjNmE4NjcwMDhkNTQ2NDY0OWVhMzc3MjM5MTQ2ZTRmYjI5YS4uNmI5YjRj
YmVmNTY3ZTA1OWZhZWFlMmU2OGM1MjY1NjY3Nzg0Y2JkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuY3Bw
CkBAIC00Myw5ICs0Myw5IEBAIHN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqCiAgICAgdG9CYXR0ZXJ5
UHJvdmlkZXIoY2xpZW50SW5mbyktPnN0b3BVcGRhdGluZygpOwogfQogCi1QYXNzUmVmUHRyPFdl
YktpdEJhdHRlcnlQcm92aWRlcj4gV2ViS2l0QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUoV2ViQmF0
dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1hbmFnZXIpCitSZWY8V2ViS2l0QmF0dGVyeVByb3Zp
ZGVyPiBXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0ZShXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
KiBiYXR0ZXJ5TWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdEJhdHRl
cnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YktpdEJhdHRlcnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOwogfQogCiBXZWJLaXRCYXR0ZXJ5
UHJvdmlkZXI6OldlYktpdEJhdHRlcnlQcm92aWRlcihXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBi
YXR0ZXJ5TWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKaW5kZXggN2YwNWRiNmM3MTY2MTZhMDczMjA2
ZDNlN2M5OWIyNmVhZGJmNDc0Ny4uZTJlOTRiZjA0NDczM2M0ODY3YmU3ODk2NDAxNTY5ODQ4MTdh
M2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QmF0dGVyeVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYktpdEJhdHRlcnlQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YktpdEJhdHRlcnlQcm92aWRlcj4sIHB1YmxpYyBXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJVUG93
ZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdEJhdHRlcnlQ
cm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKKyAgICBzdGF0aWMgUmVm
PFdlYktpdEJhdHRlcnlQcm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsK
ICAgICB2aXJ0dWFsIH5XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIoKTsKIAogICAgIHZvaWQgc3RhcnRV
cGRhdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Q29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbG9yQ2hvb3Nlci5jcHAKaW5kZXggYjI2YmFiNGM3Y2VmZmI0NzJiYjVlNWM5YjU0
OGIyNDA2YzNmNjBlMC4uNzE5MTlkOGY2ZjQ5YTQzYzE0MmI2OWJiNTY3ZjE1NzBhZjI4MzVjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JD
aG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b2xvckNob29zZXIuY3BwCkBAIC0yOSw5ICsyOSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJLaXRDb2xvckNob29zZXI+
IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K1JlZjxXZWJLaXRDb2xvckNob29zZXI+IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBh
Z2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktp
dENvbG9yQ2hvb3NlcihwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJLaXRDb2xvckNob29zZXIocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7
CiB9CiAKIFdlYktpdENvbG9yQ2hvb3Nlcjo6V2ViS2l0Q29sb3JDaG9vc2VyKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYgcmVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKaW5kZXggYzgxNDYxYmVjNTQ3ZDJkZjFhYTk3MThl
MzY4YjA2NWZiOWVlODAwYS4uNmFjMGZiYzk4Nzg5NmIzMDc2YTI0NmY5NTU1MDQwOWQ2ODhlZGNl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2Vv
bG9jYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKQEAgLTU0LDkgKzU0LDkgQEAgV2ViS2l0
R2VvbG9jYXRpb25Qcm92aWRlcjo6fldlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoKQogICAgIFdL
R2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkobV9nZW9sb2NhdGlvbk1hbmFnZXIu
Z2V0KCkpLCBudWxscHRyKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblByb3Zp
ZGVyPiBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGUoV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlcikKK1JlZjxXZWJLaXRHZW9sb2NhdGlvblByb3Zp
ZGVyPiBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGUoV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoZ2VvbG9jYXRpb25NYW5hZ2VyKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcihnZW9sb2NhdGlvbk1h
bmFnZXIpKTsKIH0KIAogV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcjo6V2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlcihXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2Vy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCmluZGV4IGRiYzhmZDhlNjI5Njc1MTFiOTJi
ZjIwOWM5ZjBmNmU4ODliMWM2ZjcuLjc1NzVkZmU4OTQyYTIyYTgxMGQ4YTJkNjUxMzRlZThiZDA0
NGYzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTYxLDkgKzYxLDkgQEAg
V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6On5XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcigp
CiB7CiB9CiAKLVBhc3NSZWZQdHI8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IFdlYktpdE5v
dGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBu
b3RpZmljYXRpb25NYW5hZ2VyKQorUmVmPFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyPiBXZWJL
aXROb3RpZmljYXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eSogbm90aWZpY2F0aW9uTWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktp
dE5vdGlmaWNhdGlvblByb3ZpZGVyKG5vdGlmaWNhdGlvbk1hbmFnZXIpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcihub3RpZmljYXRpb25NYW5h
Z2VyKSk7CiB9CiAKIFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpXZWJLaXROb3RpZmljYXRp
b25Qcm92aWRlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG5vdGlmaWNhdGlvbk1hbmFn
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRO
b3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCAyZGJjMjZkYmZhZTQ2NjE4Y2Y2NTYw
N2RlNjdjMTg5NDk2NzVjZjAyLi5hYzg3NGI4MzMyZmYwNTg0Yzk3MWNlOGUxOWExNDk2YTAzY2Fj
YjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRO
b3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyPiB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4gY3JlYXRlKFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eSopOworICAgIHN0YXRpYyBSZWY8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IGNy
ZWF0ZShXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKIAogICAgIHZvaWQgc2hvdyhXZWJQ
YWdlUHJveHkqLCBjb25zdCBXZWJOb3RpZmljYXRpb24mKTsKICAgICB2b2lkIGNhbmNlbChjb25z
dCBXZWJOb3RpZmljYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAKaW5kZXggZDIx
NTgwNzM0Nzk4OGI1NjI0NGU4YjBiNzdlMGIzMWI0NDU1N2QyMy4uNWY4YzEwNzFkNGRjYTEzYjkw
ZjkxMGVjZWJmMWZjNTBkYTNmMzhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAKQEAg
LTEwNSw3ICsxMDUsNyBAQCB2b2lkIFdlYlZpZXdDbGllbnQ6OmRpZENoYW5nZVZpZXdwb3J0QXR0
cmlidXRlcyhXZWJWaWV3KiB2aWV3LCBjb25zdCBWaWV3cG9ydEF0dAogICAgIGlmICghbV9jbGll
bnQuZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKQogICAgICAgICByZXR1cm47CiAKLSAgICBX
S1JldGFpblB0cjxXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZj4gd2tBdHRyaWJ1dGVzID0gYWRvcHRX
Syh0b0FQSShXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZShhdHRyaWJ1dGVzKS5sZWFrUmVm
KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZj4gd2tBdHRyaWJ1
dGVzID0gYWRvcHRXSyh0b0FQSSgmV2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpjcmVhdGUoYXR0cmli
dXRlcykubGVha1JlZigpKSk7CiAgICAgbV9jbGllbnQuZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1
dGVzKHRvQVBJKHZpZXcpLCB3a0F0dHJpYnV0ZXMuZ2V0KCksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9H
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCBlZjcxOGZlMmE4NjliODdl
YjM0YzU5OTI1MjQ2OTM2ZDRhNmRhNTAwLi4wM2U3Mjk2NWRiOTU3NDZiOWE2NGExYmQ1NjhhNjNi
YjQ0NDAwZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0zNSw5ICszNSw5IEBAIGNs
YXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8
QVBJOjpPYmplY3Q6OlR5cGU6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+IGNyZWF0ZShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5h
Z2VyLCB1aW50NjRfdCBnZW9sb2NhdGlvbklEKQorICAgIHN0YXRpYyBSZWY8R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0X3QgZ2VvbG9jYXRpb25JRCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5KG1hbmFnZXIsIGdlb2xvY2F0aW9uSUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIGdlb2xvY2F0aW9u
SUQpKTsKICAgICB9CiAKICAgICB2b2lkIGFsbG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL0hUVFBSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL0hUVFBSZXF1ZXN0LmgKaW5kZXggZWNkYTE0
ZTk5YmMwNTEzOWY4NDUzOTg2MzBjNjZjMzc1OTQyOTFkNC4uZmZiMzE3ZWM4MWIxMjhjYThhZjhm
NTM3Yzg1MTMxNmE5MDhhNTEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJlcXVlc3QuaApAQCAtNDMsOCArNDMsOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgSFRUUFJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxI
VFRQUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUVFBSZXF1ZXN0
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSFRUUFJlcXVlc3QoKSk7IH0KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVFRQUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVxdWVz
dE1ldGhvZCwgY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIFdlYkNvcmU6OkhUVFBWZXJzaW9uIHZl
cnNpb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVFRQUmVxdWVzdChyZXF1ZXN0TWV0aG9kLCB1
cmwsIHZlcnNpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8SFRUUFJlcXVlc3Q+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRUUFJlcXVlc3QoKSk7IH0KKyAgICBzdGF0aWMgUmVmPEhU
VFBSZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZXF1ZXN0TWV0aG9kLCBjb25zdCBXZWJD
b3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6SFRUUFZlcnNpb24gdmVyc2lvbikgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIVFRQUmVxdWVzdChyZXF1ZXN0TWV0aG9kLCB1cmwsIHZlcnNpb24pKTsgfQog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUVFBSZXF1ZXN0PiBwYXJzZUhUVFBSZXF1ZXN0RnJvbUJ1
ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBTdHJpbmcmIGZhaWx1cmVSZWFz
b24pOwogICAgIHZpcnR1YWwgfkhUVFBSZXF1ZXN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyLmNwcAppbmRleCAxZjJhYzhlYmNkMzI2ZjE0OWQwOTNlMWRmZDM5ZDA3MmQ4Nzc1Yzlh
Li5kMGJiMjA0MjA2MzdmYTNhNTk3YzM5OTNmYTBlZGM3Nzc2NzViZmMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC00MCw5ICs0MCw5IEBAIGNvbnN0IGNoYXIqIFdlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0
dXJuICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlciI7CiB9CiAKLVBhc3NSZWZQ
dHI8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IFdlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQor
UmVmPFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPiBXZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyKHByb2Nlc3NQb29sKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIocHJvY2Vzc1Bvb2wpKTsKIH0KIAogV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlci5oCmluZGV4IDRlNzc5N2ZhMjIyYmJjN2U5NWM2Yzc5NzRmZWI5YjE5M2RlZTA2YzYuLmUx
NDMwNmEzODYzNGMxZjg1ZTg0NzM3OTYyZWVmYTlkOGU5NTBjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVx
dWVzdE1hbmFnZXIuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBXZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlciA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6Ogog
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IGNy
ZWF0ZShXZWJQcm9jZXNzUG9vbCopOworICAgIHN0YXRpYyBSZWY8V2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXI+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCopOwogICAgIHZpcnR1YWwg
fldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKCk7CiAKICAgICB2b2lkIGluaXRp
YWxpemVDbGllbnQoY29uc3QgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVu
dEJhc2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZDU3OTBjMDY2ODRhYTllNmVlZDE2YjBkNjcx
NDcyYjFhNzAyNTIyZC4uMDk4ZTQ1ZWUyZDE2ZGYwYmY5OTIzMThmZDA4ZmMzZGQ5MzE1MTQxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVy
YXRlQ2FsbGJhY2tJRCgpCiAgICAgcmV0dXJuICsrY2FsbGJhY2tJRDsKIH0KIAotUGFzc1JlZlB0
cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJv
Y2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorUmVmPE5ldHdvcmtQcm9jZXNzUHJveHk+IE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBOZXR3b3JrUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NQcm94eShwcm9jZXNzUG9vbCkp
OwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA1OGU1OTYwYTRmMGFmYzFhZjUw
MDU0M2VmNTgyYzViZmI1ZDkwYWZiLi42YmQ1YmYyNDU3OTY0ZjZhMTcyNmY0OWFiM2FjOTFmOWMy
MDNhM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eSA6IHB1
YmxpYyBDaGlsZFByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBjcmVh
dGUoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtQcm9jZXNzUHJveHk+
IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CiAK
ICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKaW5k
ZXggMjVkMzdkYTRiOTk0YjZkMGNkZGJlNDI1NDQwMjgzYWMxZTBlNjlhNS4uMjEyODYyN2M1MmIw
MjliNDEyMTE2NGNkN2EzZjM4OTI5YTc2ZDJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKICAgICAKLVBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV2ViS2l0OjpOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSAqbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCitSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSAqbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChtYW5h
Z2VyLCBub3RpZmljYXRpb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIsIG5vdGlmaWNhdGlvbklEKSk7CiB9CiAKIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaAppbmRleCBmZGM1Mjk0ZWMyYmE3NzY0ZjNiNWNkYzE4MWEyZmYzM2M4ZTkzMjM5Li5l
MDQ4NDA2NTk0NjM0ODBjM2U4MDYwY2U0MmYxY2YxMjdmYTc0NTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVj
dDo6VHlwZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOworICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+
IGNyZWF0ZShOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSosIHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklEKTsKIAogICAgIHZvaWQgYWxsb3coKTsKICAgICB2b2lkIGRlbnko
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uLmgKaW5kZXggZWE5ODFkMjNkNGU1YzgwOThlYmQxMmZhOGUxOTM1NGY3
ZDFhNTQxYy4uNWZkM2RhNzE4ODU5MDlkMjU0Yzc0ZjU2MzkyNDliM2JkZDg5ZjhkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uLmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6Ok5vdGlmaWNhdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5v
dGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9k
eSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5n
JiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIHN0YXRpYyBSZWY8V2ViTm90aWZpY2F0aW9uPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJp
bmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0
IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNh
dGlvbih0aXRsZSwgYm9keSwgaWNvblVSTCwgdGFnLCBsYW5nLCBkaXIsIG9yaWdpblN0cmluZywg
bm90aWZpY2F0aW9uSUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTm90aWZp
Y2F0aW9uKHRpdGxlLCBib2R5LCBpY29uVVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2luU3RyaW5n
LCBub3RpZmljYXRpb25JRCkpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgdGl0bGUoKSBj
b25zdCB7IHJldHVybiBtX3RpdGxlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDBkYzczY2I4YmJmNGI1OWZkYjQ0MGI5MmQ1YjM4YjFkOGU0YTk0NjMu
LmMwODA4NzZhZTIyYWIxNGQxYTA5NDYwZmFiZGIzZmQ0ZTljZTZlOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00NjU2LDcgKzQ2NTYsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIGRhdGFSZWZlcmVuY2UsCiAgICAgZGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRhdGFS
ZWZlcmVuY2Uuc2l6ZSgpKTsKICAgICBkYXRhLmFwcGVuZChkYXRhUmVmZXJlbmNlLmRhdGEoKSwg
ZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dp
dGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjph
ZG9wdChkYXRhKS5nZXQoKSA6IDAsIGhhZEV4Y2VwdGlvbik7CisgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShkYXRhLnNpemUoKSA/IEFQSTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjphZG9wdChkYXRhKS5wdHIoKSA6IDAsIGhhZEV4Y2VwdGlvbik7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlZFBhZ2VzQ2FsbGJhY2soY29uc3QgVmVjdG9yPEludFJl
Y3Q+JiBwYWdlUmVjdHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3h5LmNwcAppbmRleCBhMTczMjQ3MTU1YmM1NzkyZTViYjg1YmRhNDViM2MxN2YwNjM3ZTE1
Li40OGQyOTBjZTM5MzFkYjU4NDg5YTA5Y2FkNmVmN2QwMzhjMDRjYzM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKQEAgLTM1LDkgKzM1LDkg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+
IFdlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQorUmVmPFdlYlZp
YnJhdGlvblByb3h5PiBXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSogcGFn
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpYnJhdGlvblByb3h5KHBhZ2UpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJWaWJyYXRpb25Qcm94eShwYWdlKSk7CiB9CiAK
IFdlYlZpYnJhdGlvblByb3h5OjpXZWJWaWJyYXRpb25Qcm94eShXZWJQYWdlUHJveHkqIHBhZ2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCmluZGV4IGI3
MjA5ODE3ZGZjOGJjMDBkODQ5MzQyZjc0YWU3ZDI1OWRkOTBiODguLjczODU2NjBkNjdkMjQ0Zjky
MmFjZjZmYjFhZTRjNGY5YjkyMGY2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWJyYXRpb25Qcm94eS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IAogY2xhc3MgV2ViVmlicmF0aW9uUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6
T2JqZWN0OjpUeXBlOjpWaWJyYXRpb24+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gY3JlYXRl
KFdlYlBhZ2VQcm94eSopOworICAgIHN0YXRpYyBSZWY8V2ViVmlicmF0aW9uUHJveHk+IGNyZWF0
ZShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIH5XZWJWaWJyYXRpb25Qcm94eSgpOwogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzLmgKaW5kZXggMGY1MmI4NzM2MzE0MGUwZmJkMzY4MTJlMDE4NDFh
MmUyNWJmMjhmNi4uYTMxMDY1ZmU0Y2RkMTJmZWNlODM3MGI3NGZkMjNiZThiMmU1MGY4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaApA
QCAtMzQsOSArMzQsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViVmlld3BvcnRB
dHRyaWJ1dGVzIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmll
d3BvcnRBdHRyaWJ1dGVzPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
JiBhdHRyaWJ1dGVzKQorICAgIHN0YXRpYyBSZWY8V2ViVmlld3BvcnRBdHRyaWJ1dGVzPiBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMoYXR0cmli
dXRlcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJWaWV3cG9ydEF0dHJpYnV0
ZXMoYXR0cmlidXRlcykpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYlZpZXdwb3J0QXR0cmli
dXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDk0MzRiNzg2ODBkMjZjMjNmYjZkNDcxZWJm
N2RiZTlmYTQ4NmM4ZjMuLjFhZmFmYmFhYjE4Y2YwYjA5ZmVjNDYyMjcyMzkzZGZjMjE2NWE5MTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU4LDE0ICs1OCwxNCBAQCBzdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVJZGVudGlmaWVyKCkKICAgICByZXR1cm4gKytpZGVudGlmaWVyOwogfQogCi1SZWZQ
dHI8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVyc2lzdGVu
dCgpCitSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVy
c2lzdGVudCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKGdl
bmVyYXRlTm9uUGVyc2lzdGVudFNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2Vic2l0ZURhdGFTdG9yZShnZW5lcmF0ZU5vblBlcnNpc3RlbnRTZXNzaW9uSUQoKSkpOwog
fQogCi1SZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKENv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKK1JlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRl
RGF0YVN0b3JlOjpjcmVhdGUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2Vic2l0ZURhdGFTdG9yZShXVEY6Om1vdmUoY29uZmlndXJhdGlv
bikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKFdURjo6bW92
ZShjb25maWd1cmF0aW9uKSkpOwogfQogCiBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDVlNGM3
MjJiNjUzNjUxN2FhNjJkNzA2MzMzYjUyYmNkMGJlZWQzZmEuLjM2YjYwYzdkNDQyZTk0ZjgzYWUy
MTk0Yzc3OTMzZTFhNzViMjAyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjIsOCArNjIsOCBAQCBw
dWJsaWM6CiAgICAgICAgIFN0cmluZyBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgICAgIFN0
cmluZyBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OwogICAgIH07Ci0gICAgc3RhdGljIFJlZlB0
cjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50KCk7Ci0gICAgc3RhdGljIFJl
ZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbik7CisgICAgc3RhdGlj
IFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50KCk7CisgICAgc3RhdGlj
IFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbik7CiAgICAgdmlydHVh
bCB+V2Vic2l0ZURhdGFTdG9yZSgpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcAppbmRleCBjNGY2NTgzMDk2NDcwMDI2ZGZlMGYx
MGVkNTg5NDg2MTI4YjU0MzEzLi4zMmRmZTgyZWNkNmM2NTIzYmE1NWYwNTNhMDI0MzBlYzQ4YjE3
NWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlj
a2VyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlj
a2VyR3RrLmNwcApAQCAtMzcsOSArMzcsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJHdGs+IFdlYkNv
bG9yUGlja2VyR3RrOjpjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5p
dGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiByZWN0KQorUmVmPFdlYkNvbG9yUGlja2VyR3RrPiBX
ZWJDb2xvclBpY2tlckd0azo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29sb3Im
IGluaXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkNvbG9yUGlja2VyR3RrKHBhZ2UsIGluaXRpYWxDb2xvciwgcmVjdCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbG9yUGlja2VyR3RrKHBhZ2UsIGluaXRpYWxDb2xv
ciwgcmVjdCkpOwogfQogCiBXZWJDb2xvclBpY2tlckd0azo6V2ViQ29sb3JQaWNrZXJHdGsoV2Vi
UGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0
JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNr
ZXJHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsu
aAppbmRleCA2NzAxODE1ZjNjM2ZmYjMwNzA2M2Q5ODcwYzUzNTllOWY2OGJmM2E4Li4wNWE4NGRl
NGIwMjE4MzhjZDVhOTY1ZDBhYmJiZjhlZjE0ZWViN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oCkBAIC00Miw3ICs0Miw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb2xvclBpY2tlckd0ayA6IHB1YmxpYyBXZWJD
b2xvclBpY2tlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNr
ZXJHdGs+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyR3RrPiBj
cmVhdGUoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB+V2ViQ29sb3JQaWNrZXJHdGsoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmgKaW5kZXggNGI1OGZkNTJh
ZGQxOGQ2ODVmMWQzNzAzZTE4NTZhYTJmZGU1YzlkYy4uYTgwZWJmMmM5MWRiMjY1MmQ2MjIyYzNk
ZWE1MTk0MjQ1MTUzYjQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmgKQEAgLTQxLDkgKzQxLDkgQEAgY2xhc3MgV2Vi
UGFnZVByb3h5OwogCiBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5R3RrIDogcHVibGljIFdlYkNv
bnRleHRNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbnRl
eHRNZW51UHJveHlHdGs+IGNyZWF0ZShHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSog
cGFnZSkKKyAgICBzdGF0aWMgUmVmPFdlYkNvbnRleHRNZW51UHJveHlHdGs+IGNyZWF0ZShHdGtX
aWRnZXQqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViQ29udGV4dE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBwYWdlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51UHJveHlHdGsod2ViVmll
dywgcGFnZSkpOwogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQcm94eUd0aygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3Rr
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgK
aW5kZXggZDkyMDAzOTU5N2ZjMDllYzlhMWE3NjllZTkwY2E5NTgxY2I3NTQ0OS4uNWY4MGNkZjdj
MjJmMjY1ZWRmYTdkOGJjOTQ0NDMxZmMyOTQwNWYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaApAQCAtMzcsOSArMzcsOSBA
QCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5R3RrIDogcHVi
bGljIFdlYlBvcHVwTWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJQb3B1cE1lbnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBN
ZW51UHJveHk6OkNsaWVudCogY2xpZW50KQorICAgIHN0YXRpYyBSZWY8V2ViUG9wdXBNZW51UHJv
eHlHdGs+IGNyZWF0ZShHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGll
bnQqIGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUG9wdXBN
ZW51UHJveHlHdGsod2ViVmlldywgY2xpZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlBvcHVwTWVudVByb3h5R3RrKHdlYlZpZXcsIGNsaWVudCkpOwogICAgIH0KICAgICB+
V2ViUG9wdXBNZW51UHJveHlHdGsoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9WaWV3U25hcHNob3RTdG9yZS5oCmluZGV4IDMwNWFkYjNhNzRjMDY4YjliOThkZmQzODc3
MjBjOGUwNjM2ODJhMWIuLmExNGExMGM0MTUxNmZkNTNlNzkyYjRlMjJhOWExYTE2OTk2ZjkyZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
LmgKQEAgLTYyLDkgKzYyLDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgVmlld1NuYXBz
aG90IDogcHVibGljIFJlZkNvdW50ZWQ8Vmlld1NuYXBzaG90PiB7CiBwdWJsaWM6CiAjaWYgVVNF
X0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdTbmFw
c2hvdD4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KTsKKyAgICBz
dGF0aWMgUmVmPFZpZXdTbmFwc2hvdD4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
T1N1cmZhY2U+KTsKICNlbGlmIFVTRV9SRU5ERVJfU0VSVkVSX1ZJRVdfU05BUFNIT1RTCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBjcmVhdGUodWludDMyX3Qgc2xvdElELCBX
ZWJDb3JlOjpJbnRTaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcyk7CisgICAgc3RhdGljIFJl
ZjxWaWV3U25hcHNob3Q+IGNyZWF0ZSh1aW50MzJfdCBzbG90SUQsIFdlYkNvcmU6OkludFNpemUs
IHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKTsKICNlbmRpZgogCiAgICAgflZpZXdTbmFwc2hvdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RT
dG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUu
bW0KaW5kZXggOWQ4N2UyODFkNDQzZTc2ZGRjMTJlZGE2ZmRjNTE5ZmQxMTUyNDA2NS4uYjYwODQy
NjY5YjZiMDkyOGNkOTk3MWY0MzNmOGNkMjQwN2JkY2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCkBAIC0xMzQsMTQgKzEzNCwx
NCBAQCB2b2lkIFZpZXdTbmFwc2hvdFN0b3JlOjpkaXNjYXJkU25hcHNob3RJbWFnZXMoKQogCiAK
ICNpZiBVU0VfSU9TVVJGQUNFX1ZJRVdfU05BUFNIT1RTCi1QYXNzUmVmUHRyPFZpZXdTbmFwc2hv
dD4gVmlld1NuYXBzaG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFj
ZSkKK1JlZjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0
cjxJT1N1cmZhY2U+IHN1cmZhY2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWV3U25h
cHNob3QoV1RGOjptb3ZlKHN1cmZhY2UpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmll
d1NuYXBzaG90KFdURjo6bW92ZShzdXJmYWNlKSkpOwogfQogI2VsaWYgVVNFX1JFTkRFUl9TRVJW
RVJfVklFV19TTkFQU0hPVFMKLVBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6
OmNyZWF0ZSh1aW50MzJfdCBzbG90SUQsIEludFNpemUgc2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUlu
Qnl0ZXMpCitSZWY8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6OmNyZWF0ZSh1aW50MzJfdCBz
bG90SUQsIEludFNpemUgc2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0ZXMpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBWaWV3U25hcHNob3Qoc2xvdElELCBzaXplLCBpbWFnZVNpemVJbkJ5
dGVzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlld1NuYXBzaG90KHNsb3RJRCwgc2l6
ZSwgaW1hZ2VTaXplSW5CeXRlcykpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAppbmRleCA0MGM5ZTJiY2ZkZGMwMmZh
YTFlOTBiNDJjZDAxNTA2ZjJmMzNkNzA5Li5jZjJmNmU4NjAyNTU2MjdkMTQ4ZThiN2NlNTYzZTI2
OTU0NjYzN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bG9yUGlja2VyTWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xv
clBpY2tlck1hYy5oCkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAog
Y2xhc3MgV2ViQ29sb3JQaWNrZXJNYWMgOiBwdWJsaWMgV2ViQ29sb3JQaWNrZXIgewogcHVibGlj
OiAgICAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJNYWM+IGNyZWF0
ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3Kik7CisgICAgc3RhdGljIFJlZjxXZWJDb2xvclBpY2tl
ck1hYz4gY3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1ZpZXcqKTsKICAgICB+V2ViQ29sb3JQaWNr
ZXJNYWMoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCmluZGV4
IDczYzY0YWM1ZjhhNDRiZDBlYmExNjM4MjNjZTZmZmVlM2I1Y2VlYzQuLjI2YWM2OWZlZDY2OWQ5
NWQ2ZTZlNWRjMTk5ZjM0ZmI3MTYxZThhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQpAQCAtNzUsOSArNzUsOSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJD
b2xvclBpY2tlck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6
Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIFdLVmlldyogdmlldykKK1JlZjxXZWJDb2xvclBpY2tl
ck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBj
bGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHJlY3QsIFdLVmlldyogdmlldykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5pdGlhbENvbG9yLCByZWN0LCB2aWV3KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29sb3JQaWNrZXJNYWMoY2xpZW50LCBpbml0aWFs
Q29sb3IsIHJlY3QsIHZpZXcpKTsKIH0KIAogV2ViQ29sb3JQaWNrZXJNYWM6On5XZWJDb2xvclBp
Y2tlck1hYygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oCmluZGV4IDBlZTU0OTU2YWUyNzUxNGY2ZTI0YTY5MTBhOTVjYjUz
ZDQzYjRiZjUuLmQ4YWQ4ZjQ1ZDg1MmU1NTI2N2M5YjY1NjFmMmQ2MDIxMDNiYjJhMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5oCkBAIC00Myw5ICs0Myw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgV2Vi
Q29udGV4dE1lbnVQcm94eU1hYyA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5TWFjPiBjcmVhdGUo
V0tWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgc3RhdGljIFJlZjxXZWJD
b250ZXh0TWVudVByb3h5TWFjPiBjcmVhdGUoV0tWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkq
IHBhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbnRleHRNZW51
UHJveHlNYWMod2ViVmlldywgcGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJDb250ZXh0TWVudVByb3h5TWFjKHdlYlZpZXcsIHBhZ2UpKTsKICAgICB9CiAgICAgfldlYkNv
bnRleHRNZW51UHJveHlNYWMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCmluZGV4IGUzMmE0MWI1YzE2Yzc2Njk0NDFiZjYy
NDJiZDM2NDIxZDA3ZGQ3NWIuLmIxZjYwNmY0MDFmNmM3OGI0NmZhYTMzZDYzZDc0NGFhYTI2ZWQ0
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51
UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFz
cyBXZWJQb3B1cE1lbnVQcm94eU1hYyA6IHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHlNYWM+IGNyZWF0ZShX
S1ZpZXcgKndlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQqIGNsaWVudCkKKyAgICBz
dGF0aWMgUmVmPFdlYlBvcHVwTWVudVByb3h5TWFjPiBjcmVhdGUoV0tWaWV3ICp3ZWJWaWV3LCBX
ZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50KiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlBvcHVwTWVudVByb3h5TWFjKHdlYlZpZXcsIGNsaWVudCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJQb3B1cE1lbnVQcm94eU1hYyh3ZWJWaWV3LCBj
bGllbnQpKTsKICAgICB9CiAgICAgfldlYlBvcHVwTWVudVByb3h5TWFjKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJG
YWN0b3J5QmFja2VuZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKaW5kZXggOWNlY2FjMWQ5ZWNjYmMxY2RhZDJm
NjFjY2ViZjJkNmNkYmI4YTAwNS4uNTc2OThmOTViMTg2ODUwZDVhY2Q1ZGNkODRiMzI5ZjViMDI0
NjQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklEQkZhY3RvcnlCYWNrZW5k
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJJREJGYWN0b3J5QmFja2VuZD4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYklEQkZhY3RvcnlCYWNrZW5kKTsgfQorICAgIHN0
YXRpYyBSZWY8V2ViSURCRmFjdG9yeUJhY2tlbmQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViSURCRmFjdG9yeUJhY2tlbmQpOyB9CiAKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0
b3J5QmFja2VuZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCmlu
ZGV4IGVmNWJmYzkzMzE1YjM3Y2Y5MmY2Y2YyMThiYjc0MDM5YWRmMWJiNTQuLmMwNTE1ODVjNzAy
NzQ3MzEzYzVhZmY1N2M0NGYxZmFlYTM3ZWJkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5oCkBAIC00MCw5ICs0MCw5IEBAIGNsYXNzIFdlYlByb2Nlc3NJREJEYXRh
YmFzZUJhY2tlbmQ7CiAKIGNsYXNzIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbj4sIHB1YmxpYyBJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
KQorICAgIHN0YXRpYyBSZWY8V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CiAg
ICAgfQogICAgIH5XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IGE0MjM3NWQ2OTJlMjM5MzUxZTg3NGMwZjY5ZDc4OWY3
ODViYjJhZTcuLmZmZmE4YjJkNTJjMjRiNWIyYjdlN2I3Zjk3MGQwZjUwMWJmMDIzYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtNTksOSArNTksOSBAQCBzdGF0aWMgSW50UmVjdCBz
Y3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtZW50KiBlbGVtZW50KQogICAgIHJldHVybiBlbGVtZW50
LT5zY3JlZW5SZWN0KCk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK1JlZjxXZWJGdWxsU2Ny
ZWVuTWFuYWdlcj4gV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXIocGFnZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKHBhZ2UpKTsKIH0K
IAogV2ViRnVsbFNjcmVlbk1hbmFnZXI6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyKFdlYlBhZ2UqIHBh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCmluZGV4IGQyOGQ4NWJhNGUyODkwYjhjZDBhMjY1ZDBj
OGVjNzgxOTQxZWNjYTUuLjdjZGRkY2ZlN2U0MjFmMWFjYTQ1MzRmMzdjNDYzZTYyNzQ3MTNjMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxs
U2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdlYlBhZ2U7
CiAKIGNsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViRnVs
bFNjcmVlbk1hbmFnZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGdWxs
U2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggMDcyOWRlN2VjOWRhZDM5YTIwMDY2NDQ2MTVmNDc0
ZDEwY2FmNmUzMC4uMmU3NTlkZWNlZTJhYzI0ZGIyNjllNjJmNGFlYmUzYWMyYWNmOGExMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKQEAgLTc1
LDkgKzc1LDkgQEAgUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShSYW4KICAgICByZXR1cm4gcmFuZ2VIYW5k
bGUucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+
IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmNyZWF0ZShSYW5nZSogcmFuZ2UpCitSZWY8SW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Y3JlYXRl
KFJhbmdlKiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGUocmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlKHJhbmdlKSk7CiB9CiAKIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6
OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUoUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCmluZGV4IDE3ZGViMjk5OGNjNmIwNWE4ZmE5
ZGE3ZTk0M2M0Mzc0ZmZhZTFiNzcuLmFlZWY2OWUyY2E0YTE2NWM2MzI3ODE4ZDU0MmY3MDQ4NGU4
MTBhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgK
QEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlJhbmdlKiBjb3JlUmFuZ2Uo
KSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlPiBjcmVhdGUoV2ViQ29yZTo6UmFuZ2UqKTsKKyAgICBzdGF0aWMgUmVmPElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOwogICAgIElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUoV2ViQ29yZTo6UmFuZ2UqKTsKIAogICAgIFJlZlB0cjxX
ZWJDb3JlOjpSYW5nZT4gbV9yYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuaAppbmRleCBjY2JmOTdiZDI4NGY5MThmNjI3MmQzM2M0ZTcxMDRlODYwZDEw
YjI0Li5hNDRkMGI5NjIwMGIwMjMxZTZiOWVhNzExZGMwOGJiYTI0NTcxNjBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
QmFja0ZvcndhcmRMaXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCkBAIC0zNyw5ICszNyw5IEBA
IGNsYXNzIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbTsKIAogY2xhc3MgSW5qZWN0
ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2FyZExpc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdD4gY3JlYXRlKFdlYlBhZ2Uq
IHBhZ2UpCisgICAgc3RhdGljIFJlZjxJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdD4gY3Jl
YXRlKFdlYlBhZ2UqIHBhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElu
amVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0KHBhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QocGFnZSkpOwogICAgIH0KIAog
ICAgIHZvaWQgZGV0YWNoKCkgeyBtX3BhZ2UgPSAwOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254930</attachid>
            <date>2015-06-15 22:01:25 -0700</date>
            <delta_ts>2015-06-15 22:10:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146001-20150616140049.patch</filename>
            <type>text/plain</type>
            <size>66480</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDdhYmMyNmM5ZTc0NzI5
YjhlMjgyNTExZDY1NmJiMjNkNzY2NTc4NS4uZGE4YWMzMTU4MjFmNWM3MTU4YTE5NjVkY2I5Y2Y5
NWMxN2RiNGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wNi0xNSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NjAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFzIHN0ZXAgdG8gcmVtb3ZlIFBhc3NSZWZQdHIsIHRoaXMgcGF0
Y2ggcmVtb3ZlcyBQYXNzUmVmUHRyIGluIFdlYktpdDIuCisgICAgICAgIElmIGZ1bmN0aW9uIGNh
bid0IHJldHVybiBudWxscHRyLCBQYXNzUmVmUHRyIGlzIGNoYW5nZWQgd2l0aCBSZWYuIElmIG5v
dCwgdGhlIGZ1bmN0aW9uCisgICAgICAgIHJldHVybnMgUmVmUHRyLgorCisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJE
YXRhYmFzZS5oOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElOdW1iZXIuaDoKKyAgICAgICAgKEFQSTo6
TnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4u
aDoKKyAgICAgICAgKEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcpOgorICAg
ICAgICAoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAoQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQpOgorICAgICAgICAqIFNoYXJlZC9BUElXZWJBcmNoaXZlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmU6OmNyZWF0ZSk6
CisgICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5oOgorICAgICAgICAqIFNo
YXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmVS
ZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQXN5bmNSZXF1ZXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAg
ICAgKEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxSZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmg6Cisg
ICAgICAgIChFd2tXaW5kb3dGZWF0dXJlczo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcDoKKyAgICAgICAgKFRlc3RFd2tPYmpl
Y3QxOjpjcmVhdGUpOgorICAgICAgICAoVGVzdEV3a09iamVjdDI6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb2xvckNob29zZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRDb2xvckNo
b29zZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9j
YXRpb25Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVz
dC5oOgorICAgICAgICAoV2ViS2l0OjpIVFRQUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1
dGVzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
UGlja2VyR3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNr
ZXJHdGsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdT
bmFwc2hvdFN0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbG9yUGlja2VyTWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
TWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKToKKwogMjAx
NS0wNi0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TIFdLMl0gcG9zaXRpb246Zml4ZWQgZWxlbWVudHMgc29tZXRpbWVzIHRydW5jYXRlZCBv
biBzY3JvbGwgdmlldyBib3VuY2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCA1ZjgyMjMwYTk3MjIyMWVmM2M0NTA5YjhkM2I4OGEwNTNiMGVhYmI3Li5iYzk2ZGUwZjcz
OWEwMDE4YTE5MTc3MTFlYzY1NmJhOGJhMzE1MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFz
c1JlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK1JlZjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25u
ZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5k
ZXggNTljNDBkMzczMjliOGJjODM3MjAzM2UzODA1YzkyNmVmYTE2NDNiOC4uMTUwNmVhYmI5MDNj
YmNkMGY2M2E3N2IxYTkwNDVjYWM1YjQ2YmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJs
aWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAgICB+RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5kZXggYjgwMTQwYjA2NzY0MzhhN2QxNmIyNTFm
NWEwZTI5ZGNjMjg1M2NmZC4uMmEyMWEyMGRiMzkzYzk1M2U4MzE3ZGU4MjE1ODBkYjljNjM1OWVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9E
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTQ3
LDkgKzQ3LDkgQEAgY2xhc3MgVW5pcXVlSURCRGF0YWJhc2U7CiAKIGNsYXNzIERhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uPiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjcmVhdGUoRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b24+IGNyZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24oY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5EYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggZGM2YjRmMDAwNzkyNzY0
MDJiY2ZiNjlmZDkxY2E2MGYwNTIxZjIyMi4uYjFkMjRiM2RmNmEzNjE4MTJjMWI5YTZiNjViMzVk
MTNlZWY1MTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtNjIsOSArNjIsOSBAQCBl
bnVtIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHsKIAogY2xhc3MgVW5pcXVl
SURCRGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VW5pcXVlSURCRGF0YWJh
c2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4g
Y3JlYXRlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKKyAg
ICBzdGF0aWMgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0
YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBVbmlxdWVJREJEYXRhYmFzZShpZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlKGlkZW50aWZpZXIpKTsKICAgICB9CiAKICAg
ICB+VW5pcXVlSURCRGF0YWJhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCmluZGV4IDk5YzI4YWZmZDE0
ZjNkMDkyYzBiM2Q1NWQ5OTczZTI4Nzk2MzRjMzAuLjEwZWM4ODY0Yjg1YThlMmViZDFkNWU5Yzgx
MTllYWMxNWNkMDE5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFz
cyBTUUxpdGVJREJUcmFuc2FjdGlvbjsKIAogY2xhc3MgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGUgZmluYWwgOiBwdWJsaWMgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQorICAgIHN0YXRpYyBSZWY8VW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmU+IGNyZWF0ZShjb25zdCBVbmlxdWVJREJEYXRhYmFz
ZUlkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3Rvcnkp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlKGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
KGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCBhZjhlYWFiNzdiNjVjMzYyMDQ1YzJiZGEwODdhNDQ0MWE3NmIyZjYz
Li5kMWZmZWUzODBmZGU2NzM5ZTNhOTI1Mjk4ZDViNzY2MzQ1OGNiOGUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitSZWY8TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Y29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzY3OGMyY2VhMjA2YjIzMmI5MDFjZmNkZjljNzQ4NmYw
MDQ0NWI3My4uMzJhMzEwNTg3ZDMyNWViOTFjZGRhZTY0NWY2NWI2ZWJkMWM3YjZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVkZWYgdWludDY0X3Qg
UmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4s
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmgKaW5kZXggOTlhOTkyYTVmNTE3NzNlY2E3ZjI4ODA2MGM0ODVkMzZhYjUzMWNlNy4uMzI3ZjJj
MzA4MDA2MTI3MzVlN2I5NTNhYmMwYjFjNDg2ZjJlN2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0z
NCw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFJlZjxSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDBmZTM1ZDAxMGViZTIzYWIyYzhi
MThkMDMxNDkxMjQ5MTVhMjU3NTIuLmFiNDAyNTY3NTNmZGVkZmU4OWI5MWRiNDNjOTI2Y2IwYmMz
ODViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00Niw5ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJQcm9jZXNzQ29ubmVj
dGlvbj4gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQog
CiBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRl
eCAxMjIxZjk1OWQyM2I3YWNiNTE1YmE0N2YwYzk0MmZlYTZiMTAyNWY3Li5iYjMzMTdjOTM1Y2E0
NzU3YjE3YTIxN2ViZjJkM2I5YmJiNzE1NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHN0
cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIFdlYlByb2Nlc3NDb25uZWN0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIHN0
YXRpYyBSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfldlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAg
ICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVt
YmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oCmluZGV4IDAyYTRk
YTk3ZmYxODVhYWUzMzE5MGY5NmVmZWFkNjQ1MTQ5MTVmMmIuLmY2NWNkZTAxYWYzODY3NDkxNWMy
YTA2MTZhYjU2ZGY3NDQwMDNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElOdW1iZXIu
aApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgQVBJIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE51
bWJlclR5cGUsIEFQSTo6T2JqZWN0OjpUeXBlIEFQSU9iamVjdFR5cGU+CiBjbGFzcyBOdW1iZXIg
OiBwdWJsaWMgT2JqZWN0SW1wbDxBUElPYmplY3RUeXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TnVtYmVyPiBjcmVhdGUoTnVtYmVyVHlwZSB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmUHRyPE51bWJlcj4gY3JlYXRlKE51bWJlclR5cGUgdmFsdWUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBOdW1iZXIodmFsdWUpKTsKICAgICB9CiAKICAgICBOdW1iZXJUeXBlIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElTZWN1cml0eU9yaWdpbi5oCmluZGV4IGM3NTgwMjU4MDgwYmMxNTZlZWExMDVhMDZkMGVhODMz
OTI1YjIyM2YuLjgxMWQ3ODBmYjg1Nzc1MzYzNzU1YTNjMTY3ZjhmYzk4YTBhNjZmNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKQEAgLTM0LDE3
ICszNCwxNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpTZWN1cml0eU9yaWdpbj4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9t
U3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcpCisgICAgc3RhdGljIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYgc3RyaW5nKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBwcm90b2NvbCwgY29uc3Qg
V1RGOjpTdHJpbmcmIGhvc3QsIGludCBwb3J0KQorICAgIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IGNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFdURjo6U3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCkKICAgICB7CiAgICAgICAgIHJldHVybiBjcmVhdGUoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwcm90b2NvbCwgaG9zdCwgcG9ydCkpOwogICAgIH0K
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCisgICAgc3RhdGljIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luKQogICAgIHsKICAgICAgICAgaWYgKCFzZWN1cml0eU9yaWdp
bikKICAgICAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggY2MwNTc4ODg0ZDQ1NmJiYjNl
OTg0ZDM4YjBlMzFjNTc0Mzg0ZDk0MS4uNGU3YzJlMGNlNjU3MGI3NTY1MTgzYzUxM2U4MjdjNDkw
NjE3OWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zNiwyMiArMzYsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUpCisgICAgc3Rh
dGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShz
ZXJpYWxpemVkVmFsdWUpKTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVS
ZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKKyAgICBzdGF0aWMgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiAgICAgewogICAgICAgICBSZWZQdHI8V2Vi
Q29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKTsK
ICAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXpl
ZFZhbHVlLmdldCgpKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKHNlcmlhbGl6ZWRWYWx1ZS5n
ZXQoKSkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgIHN0YXRpYyBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoYnVmZmVyKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIpKSk7CiAgICAgfQogICAgIAogICAgIEpTVmFs
dWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5oCmluZGV4IDE2ZTgxN2RkMjY5
YTQ1YmQ4NjkzMGZhYjQ5ZDY2MmZiZjAzYzU4NzQuLmQ5NmI1OTZkYWJmYmU5MDY4YWM1MzQxMDY4
N2JmYTJkMTg2MThiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJB
cmNoaXZlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuaApAQCAt
NTAsMTAgKzUwLDEwIEBAIGNsYXNzIFdlYkFyY2hpdmUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
V2ViQXJjaGl2ZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRl
KFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+
IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVzKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBjcmVhdGUoQVBJOjpEYXRhKik7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+
IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3Jl
YXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJy
YXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVz
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShBUEk6OkRhdGEqKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdl
YkFyY2hpdmU+KTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShXZWJDb3JlOjpS
YW5nZSopOwogCiAgICAgV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UoKTsKICAgICBB
UEk6OkFycmF5KiBzdWJyZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElXZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hp
dmUubW0KaW5kZXggNjczNzY0NWI3ZDZmMWY0ODljMjdmNTEyODRhNTA3ZjJjMWM2ZmZjOS4uYWMw
MDc4OWIwNmZmZDAzYTYwNDIyNzYzMTI0ODFlMDFmYmRlMDliZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW0KQEAgLTM4LDI0ICszOCwyNCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2Vi
QXJjaGl2ZTo6Y3JlYXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVm
UHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJm
cmFtZUFyY2hpdmVzKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0ZShXZWJBcmNo
aXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJyZXNv
dXJjZXMsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3ViZnJhbWVBcmNoaXZlcykKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmUobWFpblJlc291cmNlLCBzdWJyZXNvdXJjZXMs
IHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZl
KG1haW5SZXNvdXJjZSwgc3VicmVzb3VyY2VzLCBzdWJmcmFtZUFyY2hpdmVzKSk7CiB9CiAKLVBh
c3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSkK
K1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRhKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShkYXRhKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShkYXRhKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2
ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gbGVnYWN5
V2ViQXJjaGl2ZSkKK1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUGFzc1JlZlB0
cjxMZWdhY3lXZWJBcmNoaXZlPiBsZWdhY3lXZWJBcmNoaXZlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJBcmNoaXZlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJBcmNoaXZlKSk7CiB9CiAKLVBhc3NSZWZQdHI8
V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxXZWJBcmNo
aXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUocmFuZ2UpKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVh
dGUocmFuZ2UpKSk7CiB9CiAKIFdlYkFyY2hpdmU6OldlYkFyY2hpdmUoV2ViQXJjaGl2ZVJlc291
cmNlKiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQ
YXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmgKaW5kZXggNzNjYmY1NmUzYWI4ZGFmOWQ0
ZjRhZWRkYWE0MDI5ODZkOGJkZTNiMi4uMWViOTI2NGIzZWZkODc1NzkzZTViZmE0ZDllNDhhN2Y5
YmY1Njk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVS
ZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3Vy
Y2UuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBXZWJBcmNoaXZlUmVzb3VyY2UgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlUgogcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYkFyY2hpdmVSZXNvdXJjZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBV
UkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVm
UHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2
ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsKKyAgICBzdGF0aWMg
UmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6QXJjaGl2
ZVJlc291cmNlPik7CiAKICAgICBSZWY8QVBJOjpEYXRhPiBkYXRhKCk7CiAgICAgU3RyaW5nIFVS
TCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0K
aW5kZXggNDUwNDU1ZWYxMTQ5ZmY2YTRiZDVhM2Y0OTk4Nzc0YzgxYTdjZjg2My4uOWUzODNlMTE1
YWVhZGUzZWIxNjg5ZGQxYTQ2NmYxNjNhNWNmMWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCkBAIC0zNywxNCArMzcsMTQgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBBUEkgewogCi1QYXNzUmVmUHRyPFdlYkFy
Y2hpdmVSZXNvdXJjZT4gV2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRh
LCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0RW5jb2RpbmcpCitSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3Vy
Y2U6OmNyZWF0ZShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJp
bmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZykKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNvdXJjZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0
RW5jb2RpbmcpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlUmVzb3VyY2Uo
ZGF0YSwgVVJMLCBNSU1FVHlwZSwgdGV4dEVuY29kaW5nKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2Vi
QXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShQYXNzUmVmUHRyPEFy
Y2hpdmVSZXNvdXJjZT4gYXJjaGl2ZVJlc291cmNlKQorUmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4g
V2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGFy
Y2hpdmVSZXNvdXJjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNv
dXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNo
aXZlUmVzb3VyY2UoYXJjaGl2ZVJlc291cmNlKSk7CiB9CiAKIFdlYkFyY2hpdmVSZXNvdXJjZTo6
V2ViQXJjaGl2ZVJlc291cmNlKEFQSTo6RGF0YSogZGF0YSwgY29uc3QgU3RyaW5nJiBVUkwsIGNv
bnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oCmluZGV4IGJmZGUxOTg0NjE0NzE0OGZmZjg5YTE0OGQ4
NzE3NDZjNmE2NmRlMzEuLmUxMDZkNWI4YTA0OGNiN2VjODlhMDk3YjM2NmY0YmRkYWI0MmE1NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmgKQEAgLTYwLDE0ICs2MCwxNCBAQCBj
bGFzcyBBc3luY1JlcXVlc3RJbXBsIGZpbmFsIDogcHVibGljIEFzeW5jUmVxdWVzdCB7CiBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgQXJndW1lbnRUeXBlID0gdHlwZW5h
bWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgVCwgY29uc3Qg
VCY+Ojp0eXBlOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUo
c3RkOjpmdW5jdGlvbjx2b2lkIChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRp
b25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5j
dGlvbjx2b2lkKEFyZ3VtZW50VHlwZTxBcmd1bWVudHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFzeW5jUmVxdWVzdEltcGw8QXJn
dW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFzeW5jUmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihX
VEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkIChB
cmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKKyAgICBzdGF0aWMgUmVmPEFzeW5jUmVxdWVzdD4g
Y3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNv
bXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gYWJvcnRIYW5kbGVyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBc3luY1JlcXVlc3RJbXBsPEFyZ3VtZW50
cy4uLj4oV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgV1RGOjptb3ZlKGFib3J0SGFuZGxl
cikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1
bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURjo6bW92ZShhYm9ydEhh
bmRsZXIpKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+QXN5bmNSZXF1ZXN0SW1wbCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Rf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaAppbmRleCA5NDVmYzgzNTM1ODMxMDUxYjFiOWFkODg3Njg4MzkyMjQxNDlk
Mjc5Li4zNzY3NTVmN2M4NmJlMDI5MTFhZGQxZGM3ZWI3NmZiZmE5NjBkOGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVz
dF9wcml2YXRlLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgRXdrVXJsUmVxdWVzdCA6IHB1Ymxp
YyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxSZXF1
ZXN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4gY3JlYXRlKFdLVVJM
UmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgIHN0YXRpYyBSZWY8RXdrVXJsUmVxdWVzdD4gY3Jl
YXRlKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBFd2tVcmxSZXF1ZXN0KHJlcXVlc3RSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRXdrVXJsUmVxdWVzdChyZXF1ZXN0UmVmKSk7CiAgICAgfQogCiAgICAgY29u
c3QgY2hhciogdXJsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCmluZGV4IDRlYTgyNzQ5
ODMzNTc1MTMxZjUzM2IwY2JhY2M0NjAwZTUzMTQ4YzAuLjJmZmRiN2IyMjAwYjhmZWRjNGY4NzUy
Zjg5MGM2MjgwZDkyZTE4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCkBAIC00MCwxMCArNDAs
MTAgQEAgY2xhc3MgRXdrVXJsUmVzcG9uc2UgOiBwdWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJsUmVzcG9uc2UpCiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tVcmxSZXNwb25zZT4gY3JlYXRlKFdLVVJMUmVzcG9uc2VSZWYgd2tSZXNwb25z
ZSkKKyAgICBzdGF0aWMgUmVmUHRyPEV3a1VybFJlc3BvbnNlPiBjcmVhdGUoV0tVUkxSZXNwb25z
ZVJlZiB3a1Jlc3BvbnNlKQogICAgIHsKICAgICAgICAgaWYgKCF3a1Jlc3BvbnNlKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlc3BvbnNlKHdrUmVzcG9uc2UpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVt
ZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDlhNDA0YzcwOWE0ZDU1NTRiYTE3
MjFiNDAyNTBiZWRmYjM1YzhiYTcuLmEzOTg5MmI0MGZiNWVmYjhlOTI3NzA0YWJjN2U1Yjg5N2Jk
ZmU1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC00MSwxMCArNDEs
MTAgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVi
bGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxS
ZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCisgICAgc3RhdGljIFJlZlB0cjxFd2tVcmxTY2hl
bWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBt
YW5hZ2VyLCBBUEk6OlVSTFJlcXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkK
ICAgICB7CiAgICAgICAgIGlmICghbWFuYWdlciB8fCAhdXJsUmVxdWVzdCkKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFd2tVcmxTY2hlbWVSZXF1ZXN0KG1hbmFnZXIsIHVybFJlcXVlc3QsIHJl
cXVlc3RJRCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a193aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKaW5kZXggZTUyMDE2
NzNhZmI1MjRmMTRlNmI3MjAwYzRkMGFmMmJjMWM1YTJjZi4uOTUyYTc3NDFlMWQwZDc0MjliMTEz
M2FiN2NiN2ZjZmIwZjBiMWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKQEAgLTM3
LDkgKzM3LDkgQEAgY2xhc3MgRXdrV2luZG93RmVhdHVyZXMgOiBwdWJsaWMgRXdrT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrV2luZG93RmVhdHVyZXMpCiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFy
eVJlZiB3aW5kb3dGZWF0dXJlcywgRXdrVmlldyogdmlld0ltcGwpCisgICAgc3RhdGljIFJlZjxF
d2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFyeVJlZiB3aW5kb3dGZWF0dXJlcywg
RXdrVmlldyogdmlld0ltcGwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3
a1dpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVzLCB2aWV3SW1wbCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBFd2tXaW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0dXJlcywgdmlld0lt
cGwpKTsKICAgICB9CiAKICAgICBjb25zdCBFdmFzX0Nvb3JkX1JlY3RhbmdsZSYgZ2VvbWV0cnko
KSBjb25zdCB7IHJldHVybiBtX2dlb21ldHJ5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCmluZGV4
IDcwY2VlYTVlNWQxYjYyMDNhZjUyZDc4NjA0OTMzZDNiN2FjMjQzMTUuLmNjZDJjMDVlZWVhMGVk
NDllZjY4NDAyYzc4M2EzMzNiZDE3ZDE2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIu
aCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0
X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgRVdLMlVuaXRUZXN0OwogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTQwLDEwICszOSwxMCBA
QCBjbGFzcyBUZXN0RXdrT2JqZWN0MSA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAg
IEVXS19PQkpFQ1RfREVDTEFSRShUZXN0RXdrT2JqZWN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8VGVzdEV3a09iamVjdDE+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxUZXN0RXdrT2JqZWN0
MT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHdhc0RlbGV0ZWQgPSBmYWxzZTsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0MSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGVzdEV3a09iamVjdDEoKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wg
d2FzRGVsZXRlZDsgLy8gV2UgYWx3YXlzIHRlc3Qgb25seSBvbmUgaW5zdGFuY2Ugb2YgVGVzdEV3
a09iamVjdC4KQEAgLTYwLDkgKzU5LDkgQEAgY2xhc3MgVGVzdEV3a09iamVjdDIgOiBwdWJsaWMg
RXdrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoVGVzdEV3a09iamVj
dDIpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0RXdrT2JqZWN0Mj4gY3JlYXRlKCkKKyAg
ICBzdGF0aWMgUmVmPFRlc3RFd2tPYmplY3QyPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0MigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGVzdEV3a09iamVjdDIoKSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5j
cHAKaW5kZXggM2MxZTRjNmE4NjcwMDhkNTQ2NDY0OWVhMzc3MjM5MTQ2ZTRmYjI5YS4uNmI5YjRj
YmVmNTY3ZTA1OWZhZWFlMmU2OGM1MjY1NjY3Nzg0Y2JkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuY3Bw
CkBAIC00Myw5ICs0Myw5IEBAIHN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqCiAgICAgdG9CYXR0ZXJ5
UHJvdmlkZXIoY2xpZW50SW5mbyktPnN0b3BVcGRhdGluZygpOwogfQogCi1QYXNzUmVmUHRyPFdl
YktpdEJhdHRlcnlQcm92aWRlcj4gV2ViS2l0QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUoV2ViQmF0
dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1hbmFnZXIpCitSZWY8V2ViS2l0QmF0dGVyeVByb3Zp
ZGVyPiBXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0ZShXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
KiBiYXR0ZXJ5TWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdEJhdHRl
cnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YktpdEJhdHRlcnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOwogfQogCiBXZWJLaXRCYXR0ZXJ5
UHJvdmlkZXI6OldlYktpdEJhdHRlcnlQcm92aWRlcihXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBi
YXR0ZXJ5TWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKaW5kZXggN2YwNWRiNmM3MTY2MTZhMDczMjA2
ZDNlN2M5OWIyNmVhZGJmNDc0Ny4uZTJlOTRiZjA0NDczM2M0ODY3YmU3ODk2NDAxNTY5ODQ4MTdh
M2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QmF0dGVyeVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYktpdEJhdHRlcnlQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YktpdEJhdHRlcnlQcm92aWRlcj4sIHB1YmxpYyBXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJVUG93
ZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdEJhdHRlcnlQ
cm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKKyAgICBzdGF0aWMgUmVm
PFdlYktpdEJhdHRlcnlQcm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsK
ICAgICB2aXJ0dWFsIH5XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIoKTsKIAogICAgIHZvaWQgc3RhcnRV
cGRhdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Q29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbG9yQ2hvb3Nlci5jcHAKaW5kZXggYjI2YmFiNGM3Y2VmZmI0NzJiYjVlNWM5YjU0
OGIyNDA2YzNmNjBlMC4uNzE5MTlkOGY2ZjQ5YTQzYzE0MmI2OWJiNTY3ZjE1NzBhZjI4MzVjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JD
aG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b2xvckNob29zZXIuY3BwCkBAIC0yOSw5ICsyOSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJLaXRDb2xvckNob29zZXI+
IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K1JlZjxXZWJLaXRDb2xvckNob29zZXI+IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBh
Z2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktp
dENvbG9yQ2hvb3NlcihwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJLaXRDb2xvckNob29zZXIocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7
CiB9CiAKIFdlYktpdENvbG9yQ2hvb3Nlcjo6V2ViS2l0Q29sb3JDaG9vc2VyKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYgcmVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9y
Q2hvb3Nlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JD
aG9vc2VyLmgKaW5kZXggMjRhOTQxYTU3NTYwYzFhZWRhZDRhNDY0MDQ2OTI2NGY2ZjBmMzkyMy4u
ZjJiZjM1ZWRmMGIxMDYwOGEyYTQ1OTgxZGRiMWVhODE1MWJjNGRiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmgKQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYktpdENvbG9yQ2hv
b3NlciBmaW5hbCA6IHB1YmxpYyBXZWJDb2xvclBpY2tlckd0ayB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViS2l0Q29sb3JDaG9vc2VyPiBjcmVhdGUoV2ViUGFnZVByb3h5Jiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgc3Rh
dGljIFJlZjxXZWJLaXRDb2xvckNob29zZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIH5X
ZWJLaXRDb2xvckNob29zZXIoKTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1l
bnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50UmVjdDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblBy
b3ZpZGVyLmNwcAppbmRleCBjODE0NjFiZWM1NDdkMmRmMWFhOTcxOGUzNjhiMDY1ZmI5ZWU4MDBh
Li42YWMwZmJjOTg3ODk2YjMwNzZhMjQ2Zjk1NTUwNDA5ZDY4OGVkY2VhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2Nh
dGlvblByb3ZpZGVyLmNwcApAQCAtNTQsOSArNTQsOSBAQCBXZWJLaXRHZW9sb2NhdGlvblByb3Zp
ZGVyOjp+V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcigpCiAgICAgV0tHZW9sb2NhdGlvbk1hbmFn
ZXJTZXRQcm92aWRlcih0b0FQSShtX2dlb2xvY2F0aW9uTWFuYWdlci5nZXQoKSksIG51bGxwdHIp
OwogfQogCi1QYXNzUmVmUHRyPFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI+IFdlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9j
YXRpb25NYW5hZ2VyKQorUmVmPFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI+IFdlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9j
YXRpb25NYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlcihnZW9sb2NhdGlvbk1hbmFnZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKGdlb2xvY2F0aW9uTWFuYWdlcikpOwogfQogCiBX
ZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRp
b25Qcm92aWRlci5jcHAKaW5kZXggZGJjOGZkOGU2Mjk2NzUxMWI5MmJmMjA5YzlmMGY2ZTg4OWIx
YzZmNy4uNzU3NWRmZTg5NDJhMjJhODEwZDhhMmQ2NTEzNGVlOGJkMDQ0ZjMzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5v
dGlmaWNhdGlvblByb3ZpZGVyLmNwcApAQCAtNjEsOSArNjEsOSBAQCBXZWJLaXROb3RpZmljYXRp
b25Qcm92aWRlcjo6fldlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKCkKIHsKIH0KIAotUGFzc1Jl
ZlB0cjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4gV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlk
ZXI6OmNyZWF0ZShXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG5vdGlmaWNhdGlvbk1hbmFn
ZXIpCitSZWY8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IFdlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyOjpjcmVhdGUoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBub3RpZmljYXRpb25N
YW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0Tm90aWZpY2F0aW9uUHJv
dmlkZXIobm90aWZpY2F0aW9uTWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKG5vdGlmaWNhdGlvbk1hbmFnZXIpKTsKIH0KIAogV2Vi
S2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OldlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbm90aWZpY2F0aW9uTWFuYWdlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRp
b25Qcm92aWRlci5oCmluZGV4IDJkYmMyNmRiZmFlNDY2MThjZjY1NjA3ZGU2N2MxODk0OTY3NWNm
MDIuLmFjODc0YjgzMzJmZjA1ODRjOTcxY2U4ZTE5YTE0OTZhMDNjYWNiOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZp
Y2F0aW9uUHJvdmlkZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNs
YXNzIFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0
Tm90aWZpY2F0aW9uUHJvdmlkZXI+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJLaXROb3Rp
ZmljYXRpb25Qcm92aWRlcigpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE5vdGlmaWNh
dGlvblByb3ZpZGVyPiBjcmVhdGUoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAg
c3RhdGljIFJlZjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4gY3JlYXRlKFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSopOwogCiAgICAgdm9pZCBzaG93KFdlYlBhZ2VQcm94eSosIGNvbnN0
IFdlYk5vdGlmaWNhdGlvbiYpOwogICAgIHZvaWQgY2FuY2VsKGNvbnN0IFdlYk5vdGlmaWNhdGlv
biYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViVmlld0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9XZWJWaWV3Q2xpZW50LmNwcAppbmRleCBkMjE1ODA3MzQ3OTg4YjU2MjQ0
ZThiMGI3N2UwYjMxYjQ0NTU3ZDIzLi41ZjhjMTA3MWQ0ZGNhMTNiOTBmOTEwZWNlYmYxZmM1MGRh
M2YzOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9XZWJWaWV3Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3Q2xpZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBA
IHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYlZpZXcq
IHZpZXcsIGNvbnN0IFZpZXdwb3J0QXR0CiAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VWaWV3
cG9ydEF0dHJpYnV0ZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdLUmV0YWluUHRyPFdLVmll
d3BvcnRBdHRyaWJ1dGVzUmVmPiB3a0F0dHJpYnV0ZXMgPSBhZG9wdFdLKHRvQVBJKFdlYlZpZXdw
b3J0QXR0cmlidXRlczo6Y3JlYXRlKGF0dHJpYnV0ZXMpLmxlYWtSZWYoKSkpOworICAgIFdLUmV0
YWluUHRyPFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmPiB3a0F0dHJpYnV0ZXMgPSBhZG9wdFdLKHRv
QVBJKCZXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZShhdHRyaWJ1dGVzKS5sZWFrUmVmKCkp
KTsKICAgICBtX2NsaWVudC5kaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXModG9BUEkodmlldyks
IHdrQXR0cmlidXRlcy5nZXQoKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCmluZGV4IGVmNzE4ZmUyYTg2OWI4N2ViMzRjNTk5MjUyNDY5MzZk
NGE2ZGE1MDAuLjAzZTcyOTY1ZGI5NTc0NmI5YTY0YTFiZDU2OGE2M2JiNDQ0MDBlMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTM1LDkgKzM1LDkgQEAgY2xhc3MgR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlw
ZTo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1hbmFnZXIsIHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQpCisgICAgc3RhdGljIFJlZjxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IGNyZWF0ZShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBt
YW5hZ2VyLCB1aW50NjRfdCBnZW9sb2NhdGlvbklEKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgZ2Vv
bG9jYXRpb25JRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgZ2VvbG9jYXRpb25JRCkpOwogICAgIH0KIAog
ICAgIHZvaWQgYWxsb3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvSFRUUFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvSFRUUFJlcXVlc3QuaAppbmRleCBlY2RhMTRlOTliYzA1MTM5Zjg0NTM5
ODYzMGM2NmMzNzU5NDI5MWQ0Li5mZmIzMTdlYzgxYjEyOGNhOGFmOGY1MzdjODUxMzE2YTkwOGE1
MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L0hUVFBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNl
cnZlci9IVFRQUmVxdWVzdC5oCkBAIC00Myw4ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBIVFRQUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPEhUVFBSZXF1ZXN0PiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRUUFJlcXVlc3Q+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVFRQUmVxdWVzdCgpKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhUVFBSZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZXF1ZXN0TWV0aG9kLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6SFRUUFZlcnNpb24gdmVyc2lvbikgeyByZXR1cm4g
YWRvcHRSZWYobmV3IEhUVFBSZXF1ZXN0KHJlcXVlc3RNZXRob2QsIHVybCwgdmVyc2lvbikpOyB9
CisgICAgc3RhdGljIFJlZjxIVFRQUmVxdWVzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIVFRQUmVxdWVzdCgpKTsgfQorICAgIHN0YXRpYyBSZWY8SFRUUFJlcXVlc3Q+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIHJlcXVlc3RNZXRob2QsIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBX
ZWJDb3JlOjpIVFRQVmVyc2lvbiB2ZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEhUVFBS
ZXF1ZXN0KHJlcXVlc3RNZXRob2QsIHVybCwgdmVyc2lvbikpOyB9CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRUUFJlcXVlc3Q+IHBhcnNlSFRUUFJlcXVlc3RGcm9tQnVmZmVyKGNvbnN0IGNoYXIq
IGRhdGEsIHNpemVfdCBsZW5ndGgsIFN0cmluZyYgZmFpbHVyZVJlYXNvbik7CiAgICAgdmlydHVh
bCB+SFRUUFJlcXVlc3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4
IDFmMmFjOGViY2QzMjZmMTQ5ZDA5M2UxZGZkMzlkMDcyZDg3NzVjOWEuLmQwYmIyMDQyMDYzN2Zh
M2E1OTdjMzk5M2ZhMGVkYzc3NzY3NWJmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
ci5jcHAKQEAgLTQwLDkgKzQwLDkgQEAgY29uc3QgY2hhciogV2ViU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4gIldlYlNvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyIjsKIH0KIAotUGFzc1JlZlB0cjxXZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4gV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXI6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCitSZWY8V2ViU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyOjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIocHJvY2Vzc1Bv
b2wpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlcihwcm9jZXNzUG9vbCkpOwogfQogCiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlcjo6V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIoV2ViUHJvY2Vz
c1Bvb2wqIHByb2Nlc3NQb29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggNGU3
Nzk3ZmEyMjJiYmM3ZTk1YzZjNzk3NGZlYjliMTkzZGVlMDZjNi4uZTE0MzA2YTM4NjM0YzFmODVl
ODQ3Mzc5NjJlZWZhOWQ4ZTk1MGM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVx
dWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oCkBA
IC00NSw3ICs0NSw3IEBAIGNsYXNzIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4gY3JlYXRlKFdlYlByb2Nlc3NQ
b29sKik7CisgICAgc3RhdGljIFJlZjxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
cj4gY3JlYXRlKFdlYlByb2Nlc3NQb29sKik7CiAgICAgdmlydHVhbCB+V2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChjb25z
dCBXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyQ2xpZW50QmFzZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBkNTc5MGMwNjY4NGFhOWU2ZWVkMTZiMGQ2NzE0NzJiMWE3MDI1MjJkLi4w
OThlNDVlZTJkMTZkZjBiZjk5MjMxOGZkMDhmYzNkZDkzMTUxNDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cApAQCAtNTksOSArNTksOSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVDYWxsYmFja0lEKCkK
ICAgICByZXR1cm4gKytjYWxsYmFja0lEOwogfQogCi1QYXNzUmVmUHRyPE5ldHdvcmtQcm9jZXNz
UHJveHk+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vz
c1Bvb2wpCitSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4gTmV0d29ya1Byb2Nlc3NQcm94eTo6Y3Jl
YXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE5ldHdvcmtQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sKSk7CiB9CiAKIE5ldHdvcmtQ
cm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQ
b29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCmluZGV4IDU4ZTU5NjBhNGYwYWZjMWFmNTAwNTQzZWY1ODJjNWJmYjVk
OTBhZmIuLjZiZDViZjI0NTc5NjRmNmExNzI2ZjQ5YWIzYWM5MWY5YzIwM2EzYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IDogcHVibGljIENoaWxkUHJvY2Vz
c1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9v
bCYpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nl
c3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKIAogICAgIHZvaWQgZ2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAyNWQzN2RhNGI5OTRi
NmQwY2RkYmU0MjU0NDAyODNhYzFlMGU2OWE1Li4yMTI4NjI3YzUyYjAyOWI0MTIxMTY0Y2Q3YTNm
Mzg5MjlhNzZkMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwCkBAIC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAotUGFz
c1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK1JlZjxOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6
OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIsIG5vdGlmaWNhdGlv
bklEKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QobWFuYWdlciwgbm90aWZpY2F0aW9uSUQpKTsKIH0KIAogTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRp
b25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCmluZGV4IGZk
YzUyOTRlYzJiYTc3NjRmM2I1Y2RjMTgxYTJmZjMzYzhlOTMyMzkuLmUwNDg0MDY1OTQ2MzQ4MGMz
ZTgwNjBjZTQyZjFjZjEyN2ZhNzQ1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAg
c3RhdGljIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwogCiAgICAgdm9pZCBhbGxvdygpOwogICAgIHZvaWQgZGVueSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
aAppbmRleCBlYTk4MWQyM2Q0ZTVjODA5OGViZDEyZmE4ZTE5MzU0ZjdkMWE1NDFjLi41ZmQzZGE3
MTg4NTkwOWQyNTRjNzRmNTYzOTI0OWIzYmRkODlmOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaApAQCAt
NDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViTm90aWZpY2F0aW9u
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Tm90aWZpY2F0aW9u
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcm
IGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFN0
cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCisgICAgc3RhdGljIFJlZjxXZWJOb3RpZmljYXRpb24+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29u
c3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3RyaW5nJiBkaXIsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uKHRpdGxlLCBib2R5
LCBpY29uVVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2luU3RyaW5nLCBub3RpZmljYXRpb25JRCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJOb3RpZmljYXRpb24odGl0bGUsIGJv
ZHksIGljb25VUkwsIHRhZywgbGFuZywgZGlyLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNhdGlvbklE
KSk7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
MGRjNzNjYjhiYmY0YjU5ZmRiNDQwYjkyZDViMzhiMWQ4ZTRhOTQ2My4uYzA4MDg3NmFlMjJhYjE0
ZDFhMDk0NjBmYWJkYjNmZDRlOWNlNmU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTQ2NTYsNyArNDY1Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
Y3JpcHRWYWx1ZUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSwKICAgICBkYXRhLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZGF0YVJlZmVyZW5jZS5zaXplKCkp
OwogICAgIGRhdGEuYXBwZW5kKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJlbmNlLnNp
emUoKSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKGRh
dGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGRhdGEpLmdldCgp
IDogMCwgaGFkRXhjZXB0aW9uKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0
KGRhdGEpLnB0cigpIDogMCwgaGFkRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmNvbXB1dGVkUGFnZXNDYWxsYmFjayhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhZ2VSZWN0cywg
ZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3QgY2FsbGJhY2tJRCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCmluZGV4
IGExNzMyNDcxNTViYzU3OTJlNWJiODViZGE0NWIzYzE3ZjA2MzdlMTUuLjQ4ZDI5MGNlMzkzMWRi
NTg0ODlhMDljYWQ2ZWY3ZDAzOGMwNGNjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gV2ViVmlicmF0aW9uUHJv
eHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCitSZWY8V2ViVmlicmF0aW9uUHJveHk+IFdl
YlZpYnJhdGlvblByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViVmlicmF0aW9uUHJveHkocGFnZSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlZpYnJhdGlvblByb3h5KHBhZ2UpKTsKIH0KIAogV2ViVmlicmF0aW9uUHJv
eHk6OldlYlZpYnJhdGlvblByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKaW5kZXggYjcyMDk4MTdkZmM4YmMwMGQ4
NDkzNDJmNzRhZTdkMjU5ZGQ5MGI4OC4uNzM4NTY2MGQ2N2QyNDRmOTIyYWNmNmZiMWFlNGM0Zjli
OTIwZjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5
LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJWaWJy
YXRpb25Qcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlZp
YnJhdGlvbj4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5Kik7
CisgICAgc3RhdGljIFJlZjxXZWJWaWJyYXRpb25Qcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSop
OwogICAgIHZpcnR1YWwgfldlYlZpYnJhdGlvblByb3h5KCk7CiAKICAgICB2b2lkIGludmFsaWRh
dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0
dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0
ZXMuaAppbmRleCAwZjUyYjg3MzYzMTQwZTBmYmQzNjgxMmUwMTg0MWEyZTI1YmYyOGY2Li5hMzEw
NjVmZTRjZGQxMmZlY2U4MzcwYjc0ZmQyM2JlOGIyZTUwZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCkBAIC0zNCw5ICszNCw5IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3cG9ydEF0dHJpYnV0ZXM+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWV3cG9ydEF0dHJpYnV0ZXM+
IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCisg
ICAgc3RhdGljIFJlZjxXZWJWaWV3cG9ydEF0dHJpYnV0ZXM+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViVmlld3BvcnRBdHRyaWJ1dGVzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKaW5kZXggOTQzNGI3ODY4MGQyNmMyM2ZiNmQ0NzFlYmY3ZGJlOWZhNDg2YzhmMy4u
MWFmYWZiYWFiMThjZjBiMDlmZWM0NjIyNzIzOTNkZmMyMTY1YTkxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtNTgsMTQgKzU4LDE0IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlkZW50aWZp
ZXIoKQogICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CiAKLVJlZlB0cjxXZWJzaXRlRGF0YVN0
b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkKK1JlZjxXZWJzaXRl
RGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3RvcmUoZ2VuZXJhdGVOb25QZXJzaXN0
ZW50U2Vzc2lvbklEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0
b3JlKGdlbmVyYXRlTm9uUGVyc2lzdGVudFNlc3Npb25JRCgpKSk7CiB9CiAKLVJlZlB0cjxXZWJz
aXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uKQorUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0
ZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJzaXRlRGF0YVN0b3JlKFdURjo6bW92ZShjb25maWd1cmF0aW9uKSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24p
KSk7CiB9CiAKIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNWU0YzcyMmI2NTM2NTE3YWE2MmQ3
MDYzMzNiNTJiY2QwYmVlZDNmYS4uMzZiNjBjN2Q0NDJlOTRmODNhZTIxOTRjNzc5MzNlMWE3NWIy
MDI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Miw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICAgICAg
U3RyaW5nIGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIG1lZGlhS2V5c1N0
b3JhZ2VEaXJlY3Rvcnk7CiAgICAgfTsKLSAgICBzdGF0aWMgUmVmUHRyPFdlYnNpdGVEYXRhU3Rv
cmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKLSAgICBzdGF0aWMgUmVmUHRyPFdlYnNpdGVEYXRh
U3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRh
U3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRh
U3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKICAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0
b3JlKCk7CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bG9yUGlja2VyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQ
aWNrZXJHdGsuY3BwCmluZGV4IGM0ZjY1ODMwOTY0NzAwMjZkZmUwZjEwZWQ1ODk0ODYxMjhiNTQz
MTMuLjMyZGZlODJlY2Q2YzY1MjNiYTU1ZjA1M2EwMjQzMGVjNDhiMTc1YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCkBAIC0z
Nyw5ICszNyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gV2ViQ29sb3JQaWNrZXJHdGs6OmNy
ZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0
IEludFJlY3QmIHJlY3QpCitSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IFdlYkNvbG9yUGlja2VyR3Rr
OjpjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQ
aWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViQ29sb3JQaWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CiB9CiAK
IFdlYkNvbG9yUGlja2VyR3RrOjpXZWJDb2xvclBpY2tlckd0ayhXZWJQYWdlUHJveHkmIHBhZ2Us
IGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludFJlY3QmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oCmluZGV4IDY3MDE4MTVm
M2MzZmZiMzA3MDYzZDk4NzBjNTM1OWU5ZjY4YmYzYTguLjA1YTg0ZGU0YjAyMTgzOGNkNWE5NjVk
MGFiYmJmOGVmMTRlZWI3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViQ29sb3JQaWNrZXJHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkNvbG9yUGlja2VyR3RrLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYkNvbG9yUGlja2VyR3RrIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gY3JlYXRlKFdl
YlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IGNyZWF0ZShXZWJQYWdlUHJv
eHkmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAg
ICB2aXJ0dWFsIH5XZWJDb2xvclBpY2tlckd0aygpOwogCiAgICAgdmlydHVhbCB2b2lkIGVuZFBp
Y2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkNvbnRleHRNZW51UHJveHlHdGsuaAppbmRleCA0YjU4ZmQ1MmFkZDE4ZDY4NWYxZDM3MDNl
MTg1NmFhMmZkZTVjOWRjLi5hODBlYmYyYzkxZGIyNjUyZDYyMjJjM2RlYTUxOTQyNDUxNTNiNDAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51
UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRN
ZW51UHJveHlHdGsuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNs
YXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViQ29udGV4dE1lbnVQcm94eSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eUd0az4g
Y3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIHN0YXRp
YyBSZWY8V2ViQ29udGV4dE1lbnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywg
V2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJDb250ZXh0TWVudVByb3h5R3RrKHdlYlZpZXcsIHBhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBwYWdlKSk7CiAgICAg
fQogICAgIH5XZWJDb250ZXh0TWVudVByb3h5R3RrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAppbmRleCBkOTIwMDM5NTk3
ZmMwOWVjOWExYTc2OWVlOTBjYTk1ODFjYjc1NDQ5Li41ZjgwY2RmN2MyMmYyNjVlZGZhN2Q4YmM5
NDQ0MzFmYzI5NDA1ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlBvcHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCkBAIC0zNyw5ICszNyw5IEBAIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKIAogY2xhc3MgV2ViUG9wdXBNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViUG9wdXBNZW51
UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5
R3RrPiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50
KiBjbGllbnQpCisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnVQcm94eUd0az4gY3JlYXRlKEd0
a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQcm94eUd0ayh3ZWJW
aWV3LCBjbGllbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUG9wdXBNZW51
UHJveHlHdGsod2ViVmlldywgY2xpZW50KSk7CiAgICAgfQogICAgIH5XZWJQb3B1cE1lbnVQcm94
eUd0aygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdT
bmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hv
dFN0b3JlLmgKaW5kZXggMzA1YWRiM2E3NGMwNjhiOWI5OGRmZDM4NzcyMGM4ZTA2MzY4MmExYi4u
YTE0YTEwYzQxNTE2ZmQ1M2U3OTJiNGUyMmE5YTFhMTY5OTZmOTJkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApAQCAtNjIsOSArNjIs
OSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBWaWV3U25hcHNob3QgOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWV3U25hcHNob3Q+IHsKIHB1YmxpYzoKICNpZiBVU0VfSU9TVVJGQUNFX1ZJRVdf
U05BUFNIT1RTCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBjcmVhdGUoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOworICAgIHN0YXRpYyBSZWY8Vmlld1Nu
YXBzaG90PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOwogI2Vs
aWYgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxWaWV3U25hcHNob3Q+IGNyZWF0ZSh1aW50MzJfdCBzbG90SUQsIFdlYkNvcmU6OkludFNpemUs
IHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKTsKKyAgICBzdGF0aWMgUmVmPFZpZXdTbmFwc2hvdD4g
Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6
ZUluQnl0ZXMpOwogI2VuZGlmCiAKICAgICB+Vmlld1NuYXBzaG90KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQppbmRleCA5ZDg3ZTI4
MWQ0NDNlNzZkZGMxMmVkYTZmZGM1MTlmZDExNTI0MDY1Li5iNjA4NDI2NjliNmIwOTI4Y2Q5OTcx
ZjQzM2Y4Y2QyNDA3YmRjYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTEzNCwxNCArMTM0LDE0IEBAIHZvaWQgVmlld1Nu
YXBzaG90U3RvcmU6OmRpc2NhcmRTbmFwc2hvdEltYWdlcygpCiAKIAogI2lmIFVTRV9JT1NVUkZB
Q0VfVklFV19TTkFQU0hPVFMKLVBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6
OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQorUmVmPFZpZXdTbmFw
c2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3Vy
ZmFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZpZXdTbmFwc2hvdChXVEY6Om1vdmUo
c3VyZmFjZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3QoV1RGOjpt
b3ZlKHN1cmZhY2UpKSk7CiB9CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NOQVBTSE9U
UwotUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90
IHNsb3RJRCwgSW50U2l6ZSBzaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcykKK1JlZjxWaWV3
U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgSW50U2l6ZSBz
aXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFZpZXdTbmFwc2hvdChzbG90SUQsIHNpemUsIGltYWdlU2l6ZUluQnl0ZXMpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3Qoc2xvdElELCBzaXplLCBpbWFnZVNpemVJbkJ5
dGVzKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb2xvclBpY2tlck1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb2xvclBpY2tlck1hYy5oCmluZGV4IDQwYzllMmJjZmRkYzAyZmFhMWU5MGI0MmNkMDE1MDZm
MmYzM2Q3MDkuLmNmMmY2ZTg2MDI1NTYyN2QxNDhlOGI3Y2U1NjNlMjY5NTQ2NjM3ZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgKQEAg
LTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBjbGFzcyBXZWJDb2xvclBp
Y2tlck1hYyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBwdWJsaWM6ICAgICAgICAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRlKFdlYkNvbG9yUGlja2Vy
OjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBXS1ZpZXcqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2Vi
Q29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIFdLVmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1hYygpOwogCiAgICAg
dmlydHVhbCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggNzNjNjRhYzVmOGE0NGJk
MGViYTE2MzgyM2NlNmZmZWUzYjVjZWVjNC4uMjZhYzY5ZmVkNjY5ZDk1ZDZlNmU1ZGMxOTlmMzRm
YjcxNjFlOGFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJD
b2xvclBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bG9yUGlja2VyTWFjLm1tCkBAIC03NSw5ICs3NSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBX
ZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdCwgV0tWaWV3KiB2aWV3KQorUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBXZWJDb2xvclBp
Y2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwg
V0tWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJN
YWMoY2xpZW50LCBpbml0aWFsQ29sb3IsIHJlY3QsIHZpZXcpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xvciwgcmVjdCwgdmll
dykpOwogfQogCiBXZWJDb2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2VyTWFjKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
LmgKaW5kZXggMGVlNTQ5NTZhZTI3NTE0ZjZlMjRhNjkxMGE5NWNiNTNkNDNiNGJmNS4uZDhhZDhm
NDVkODUyZTU1MjY3YzliNjU2MWYyZDYwMjEwM2JiMmEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKQEAgLTQzLDkg
KzQzLDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5
TWFjIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcqIHdlYlZpZXcs
IFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICBzdGF0aWMgUmVmPFdlYkNvbnRleHRNZW51UHJveHlN
YWM+IGNyZWF0ZShXS1ZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29udGV4dE1lbnVQcm94eU1hYyh3ZWJWaWV3
LCBwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51UHJv
eHlNYWMod2ViVmlldywgcGFnZSkpOwogICAgIH0KICAgICB+V2ViQ29udGV4dE1lbnVQcm94eU1h
YygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLmgKaW5kZXggZTMyYTQxYjVjMTZjNzY2OTQ0MWJmNjI0MmJkMzY0MjFkMDdkZDc1
Yi4uYjFmNjA2ZjQwMWY2Yzc4YjQ2ZmFhMzNkNjNkNzQ0YWFhMjZlZDQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaApAQCAt
NDAsOSArNDAsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYlBvcHVwTWVudVBy
b3h5TWFjIDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmlldyAqd2ViVmlldywg
V2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KQorICAgIHN0YXRpYyBSZWY8V2ViUG9w
dXBNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcgKndlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5
OjpDbGllbnQqIGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
UG9wdXBNZW51UHJveHlNYWMod2ViVmlldywgY2xpZW50KSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlBvcHVwTWVudVByb3h5TWFjKHdlYlZpZXcsIGNsaWVudCkpOwogICAgIH0K
ICAgICB+V2ViUG9wdXBNZW51UHJveHlNYWMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFj
dG9yeUJhY2tlbmQuaAppbmRleCA5Y2VjYWMxZDllY2NiYzFjZGFkMmY2MWNjZWJmMmQ2Y2RiYjhh
MDA1Li41NzY5OGY5NWIxODY4NTBkNWFjZDVkY2Q4NGIzMjlmNWIwMjQ2NDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFj
dG9yeUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCRmFjdG9yeUJhY2tlbmQgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgV2ViSURCRmFjdG9yeUJhY2tlbmQpOyB9CisgICAgc3RhdGljIFJlZjxXZWJJREJG
YWN0b3J5QmFja2VuZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJGYWN0
b3J5QmFja2VuZCk7IH0KIAogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlCYWNrZW5kKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZWY1YmZjOTMzMTVi
MzdjZjkyZjZjZjIxOGJiNzQwMzlhZGYxYmI1NC4uYzA1MTU4NWM3MDI3NDczMTNjNWFmZjU3YzQ0
ZjFmYWVhMzdlYmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZDsKIAog
Y2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6
Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgc3RhdGljIFJl
ZjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRl
bnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICB9CiAgICAgfldlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5j
cHAKaW5kZXggYTQyMzc1ZDY5MmUyMzkzNTFlODc0YzBmNjlkNzg5Zjc4NWJiMmFlNy4uZmZmYThi
MmQ1MmMyNGI1YjJiN2U3YjdmOTcwZDBmNTAxYmYwMjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRl
bnRzKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNjcmVlblJlY3QoKTsK
IH0KIAotUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVsbFNjcmVlbk1hbmFn
ZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQorUmVmPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJG
dWxsU2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXIocGFnZSkpOwogfQogCiBXZWJGdWxsU2NyZWVu
TWFuYWdlcjo6V2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmgKaW5kZXggZDI4ZDg1YmE0ZTI4OTBiOGNkMGEyNjVkMGM4ZWM3ODE5NDFlY2NhNS4u
N2NkZGRjZmU3ZTQyMWYxYWNhNDUzNGYzN2M0NjNlNjI3NDcxM2MwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViRnVs
bFNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGdWxsU2NyZWVuTWFuYWdlcj4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBj
cmVhdGUoV2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IGNy
ZWF0ZShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXIoKTsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmNwcAppbmRleCAwNzI5ZGU3ZWM5ZGFkMzlhMjAwNjY0NDYxNWY0NzRkMTBjYWY2ZTMwLi4yZTc1
OWRlY2VlMmFjMjRkYjI2OWU2MmY0YWViZTNhYzJhY2Y4YTExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApAQCAtNzUsOSArNzUsOSBAQCBQYXNz
UmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGU6OmdldE9yQ3JlYXRlKFJhbgogICAgIHJldHVybiByYW5nZUhhbmRsZS5yZWxlYXNlKCk7CiB9
CiAKLVBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxJbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZShyYW5n
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUo
cmFuZ2UpKTsKIH0KIAogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6SW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZShSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlLmgKaW5kZXggMTdkZWIyOTk4Y2M2YjA1YThmYTlkYTdlOTQzYzQzNzRmZmFl
MWI3Ny4uYWVlZjY5ZTJjYTRhMTY1YzYzMjc4MThkNTQyZjcwNDg0ZTgxMGFhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaApAQCAtNTUsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UmFuZ2UqIGNvcmVSYW5nZSgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IGNy
ZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CiAgICAgSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZShXZWJDb3JlOjpSYW5nZSopOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBt
X3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCmlu
ZGV4IGNjYmY5N2JkMjg0ZjkxOGY2MjcyZDMzYzRlNzEwNGU4NjBkMTBiMjQuLmE0NGQwYjk2MjAw
YjAyMzFlNmI5ZWE3MTFkYzA4YmJhMjQ1NzE2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgSW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRs
ZUJhY2tGb3J3YXJkTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVj
dGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkKKyAgICBzdGF0
aWMgUmVmPEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFn
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QocGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmplY3Rl
ZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdChwYWdlKSk7CiAgICAgfQogCiAgICAgdm9pZCBkZXRhY2go
KSB7IG1fcGFnZSA9IDA7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254932</attachid>
            <date>2015-06-15 22:10:26 -0700</date>
            <delta_ts>2015-06-16 18:56:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146001-20150616140951.patch</filename>
            <type>text/plain</type>
            <size>67290</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDdhYmMyNmM5ZTc0NzI5
YjhlMjgyNTExZDY1NmJiMjNkNzY2NTc4NS4uZGE4YWMzMTU4MjFmNWM3MTU4YTE5NjVkY2I5Y2Y5
NWMxN2RiNGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wNi0xNSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NjAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFzIHN0ZXAgdG8gcmVtb3ZlIFBhc3NSZWZQdHIsIHRoaXMgcGF0
Y2ggcmVtb3ZlcyBQYXNzUmVmUHRyIGluIFdlYktpdDIuCisgICAgICAgIElmIGZ1bmN0aW9uIGNh
bid0IHJldHVybiBudWxscHRyLCBQYXNzUmVmUHRyIGlzIGNoYW5nZWQgd2l0aCBSZWYuIElmIG5v
dCwgdGhlIGZ1bmN0aW9uCisgICAgICAgIHJldHVybnMgUmVmUHRyLgorCisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJE
YXRhYmFzZS5oOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlKToK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElOdW1iZXIuaDoKKyAgICAgICAgKEFQSTo6
TnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4u
aDoKKyAgICAgICAgKEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcpOgorICAg
ICAgICAoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAoQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQpOgorICAgICAgICAqIFNoYXJlZC9BUElXZWJBcmNoaXZlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmU6OmNyZWF0ZSk6
CisgICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5oOgorICAgICAgICAqIFNo
YXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW06CisgICAgICAgIChBUEk6OldlYkFyY2hpdmVS
ZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQXN5bmNSZXF1ZXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAg
ICAgKEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxSZXNwb25zZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmg6Cisg
ICAgICAgIChFd2tXaW5kb3dGZWF0dXJlczo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcDoKKyAgICAgICAgKFRlc3RFd2tPYmpl
Y3QxOjpjcmVhdGUpOgorICAgICAgICAoVGVzdEV3a09iamVjdDI6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb2xvckNob29zZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRDb2xvckNo
b29zZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9j
YXRpb25Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVz
dC5oOgorICAgICAgICAoV2ViS2l0OjpIVFRQUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1
dGVzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
UGlja2VyR3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNr
ZXJHdGsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0azo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdT
bmFwc2hvdFN0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbG9yUGlja2VyTWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
TWFjOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKToKKwogMjAx
NS0wNi0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TIFdLMl0gcG9zaXRpb246Zml4ZWQgZWxlbWVudHMgc29tZXRpbWVzIHRydW5jYXRlZCBv
biBzY3JvbGwgdmlldyBib3VuY2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCA1ZjgyMjMwYTk3MjIyMWVmM2M0NTA5YjhkM2I4OGEwNTNiMGVhYmI3Li5iYzk2ZGUwZjcz
OWEwMDE4YTE5MTc3MTFlYzY1NmJhOGJhMzE1MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFz
c1JlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK1JlZjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IERhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25u
ZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5k
ZXggNTljNDBkMzczMjliOGJjODM3MjAzM2UzODA1YzkyNmVmYTE2NDNiOC4uMTUwNmVhYmI5MDNj
YmNkMGY2M2E3N2IxYTkwNDVjYWM1YjQ2YmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJs
aWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAgICB+RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5kZXggYjgwMTQwYjA2NzY0MzhhN2QxNmIyNTFm
NWEwZTI5ZGNjMjg1M2NmZC4uMmEyMWEyMGRiMzkzYzk1M2U4MzE3ZGU4MjE1ODBkYjljNjM1OWVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9E
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTQ3
LDkgKzQ3LDkgQEAgY2xhc3MgVW5pcXVlSURCRGF0YWJhc2U7CiAKIGNsYXNzIERhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uPiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjcmVhdGUoRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b24+IGNyZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24oY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5EYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggZGM2YjRmMDAwNzkyNzY0
MDJiY2ZiNjlmZDkxY2E2MGYwNTIxZjIyMi4uYjFkMjRiM2RmNmEzNjE4MTJjMWI5YTZiNjViMzVk
MTNlZWY1MTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtNjIsOSArNjIsOSBAQCBl
bnVtIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHsKIAogY2xhc3MgVW5pcXVl
SURCRGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VW5pcXVlSURCRGF0YWJh
c2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4g
Y3JlYXRlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKKyAg
ICBzdGF0aWMgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0
YWJhc2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBVbmlxdWVJREJEYXRhYmFzZShpZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlKGlkZW50aWZpZXIpKTsKICAgICB9CiAKICAg
ICB+VW5pcXVlSURCRGF0YWJhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCmluZGV4IDk5YzI4YWZmZDE0
ZjNkMDkyYzBiM2Q1NWQ5OTczZTI4Nzk2MzRjMzAuLjEwZWM4ODY0Yjg1YThlMmViZDFkNWU5Yzgx
MTllYWMxNWNkMDE5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFz
cyBTUUxpdGVJREJUcmFuc2FjdGlvbjsKIAogY2xhc3MgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGUgZmluYWwgOiBwdWJsaWMgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQorICAgIHN0YXRpYyBSZWY8VW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmU+IGNyZWF0ZShjb25zdCBVbmlxdWVJREJEYXRhYmFz
ZUlkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3Rvcnkp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlKGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
KGlkZW50aWZpZXIsIGRhdGFiYXNlRGlyZWN0b3J5KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCBhZjhlYWFiNzdiNjVjMzYyMDQ1YzJiZGEwODdhNDQ0MWE3NmIyZjYz
Li5kMWZmZWUzODBmZGU2NzM5ZTNhOTI1Mjk4ZDViNzY2MzQ1OGNiOGUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitSZWY8TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Y29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQogCiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzY3OGMyY2VhMjA2YjIzMmI5MDFjZmNkZjljNzQ4NmYw
MDQ0NWI3My4uMzJhMzEwNTg3ZDMyNWViOTFjZGRhZTY0NWY2NWI2ZWJkMWM3YjZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVkZWYgdWludDY0X3Qg
UmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4s
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmgKaW5kZXggOTlhOTkyYTVmNTE3NzNlY2E3ZjI4ODA2MGM0ODVkMzZhYjUzMWNlNy4uMzI3ZjJj
MzA4MDA2MTI3MzVlN2I5NTNhYmMwYjFjNDg2ZjJlN2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0z
NCw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFJlZjxSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDBmZTM1ZDAxMGViZTIzYWIyYzhi
MThkMDMxNDkxMjQ5MTVhMjU3NTIuLmFiNDAyNTY3NTNmZGVkZmU4OWI5MWRiNDNjOTI2Y2IwYmMz
ODViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00Niw5ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJQcm9jZXNzQ29ubmVj
dGlvbj4gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwogfQog
CiBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRl
eCAxMjIxZjk1OWQyM2I3YWNiNTE1YmE0N2YwYzk0MmZlYTZiMTAyNWY3Li5iYjMzMTdjOTM1Y2E0
NzU3YjE3YTIxN2ViZjJkM2I5YmJiNzE1NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHN0
cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIFdlYlByb2Nlc3NDb25uZWN0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIHN0
YXRpYyBSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfldlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAg
ICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVt
YmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oCmluZGV4IDAyYTRk
YTk3ZmYxODVhYWUzMzE5MGY5NmVmZWFkNjQ1MTQ5MTVmMmIuLmY2NWNkZTAxYWYzODY3NDkxNWMy
YTA2MTZhYjU2ZGY3NDQwMDNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElOdW1iZXIu
aApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgQVBJIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE51
bWJlclR5cGUsIEFQSTo6T2JqZWN0OjpUeXBlIEFQSU9iamVjdFR5cGU+CiBjbGFzcyBOdW1iZXIg
OiBwdWJsaWMgT2JqZWN0SW1wbDxBUElPYmplY3RUeXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TnVtYmVyPiBjcmVhdGUoTnVtYmVyVHlwZSB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmUHRyPE51bWJlcj4gY3JlYXRlKE51bWJlclR5cGUgdmFsdWUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBOdW1iZXIodmFsdWUpKTsKICAgICB9CiAKICAgICBOdW1iZXJUeXBlIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElTZWN1cml0eU9yaWdpbi5oCmluZGV4IGM3NTgwMjU4MDgwYmMxNTZlZWExMDVhMDZkMGVhODMz
OTI1YjIyM2YuLjgxMWQ3ODBmYjg1Nzc1MzYzNzU1YTNjMTY3ZjhmYzk4YTBhNjZmNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKQEAgLTM0LDE3
ICszNCwxNyBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpTZWN1cml0eU9yaWdpbj4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9t
U3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcpCisgICAgc3RhdGljIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYgc3RyaW5nKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFdURjo6U3RyaW5nJiBwcm90b2NvbCwgY29uc3Qg
V1RGOjpTdHJpbmcmIGhvc3QsIGludCBwb3J0KQorICAgIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IGNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFdURjo6U3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCkKICAgICB7CiAgICAgICAgIHJldHVybiBjcmVhdGUoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwcm90b2NvbCwgaG9zdCwgcG9ydCkpOwogICAgIH0K
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCisgICAgc3RhdGljIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luKQogICAgIHsKICAgICAgICAgaWYgKCFzZWN1cml0eU9yaWdp
bikKICAgICAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggY2MwNTc4ODg0ZDQ1NmJiYjNl
OTg0ZDM4YjBlMzFjNTc0Mzg0ZDk0MS4uNGU3YzJlMGNlNjU3MGI3NTY1MTgzYzUxM2U4MjdjNDkw
NjE3OWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zNiwyMiArMzYsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUpCisgICAgc3Rh
dGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShz
ZXJpYWxpemVkVmFsdWUpKTsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVS
ZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKKyAgICBzdGF0aWMgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiAgICAgewogICAgICAgICBSZWZQdHI8V2Vi
Q29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKTsK
ICAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXpl
ZFZhbHVlLmdldCgpKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKHNlcmlhbGl6ZWRWYWx1ZS5n
ZXQoKSkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGFkb3B0KFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQorICAgIHN0YXRpYyBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoYnVmZmVyKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIpKSk7CiAgICAgfQogICAgIAogICAgIEpTVmFs
dWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5oCmluZGV4IDE2ZTgxN2RkMjY5
YTQ1YmQ4NjkzMGZhYjQ5ZDY2MmZiZjAzYzU4NzQuLmQ5NmI1OTZkYWJmYmU5MDY4YWM1MzQxMDY4
N2JmYTJkMTg2MThiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJB
cmNoaXZlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuaApAQCAt
NTAsMTAgKzUwLDEwIEBAIGNsYXNzIFdlYkFyY2hpdmUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
V2ViQXJjaGl2ZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRl
KFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+
IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVzKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBjcmVhdGUoQVBJOjpEYXRhKik7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+
IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3Jl
YXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVmUHRyPEFQSTo6QXJy
YXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJmcmFtZUFyY2hpdmVz
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShBUEk6OkRhdGEqKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdl
YkFyY2hpdmU+KTsKKyAgICBzdGF0aWMgUmVmPFdlYkFyY2hpdmU+IGNyZWF0ZShXZWJDb3JlOjpS
YW5nZSopOwogCiAgICAgV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UoKTsKICAgICBB
UEk6OkFycmF5KiBzdWJyZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElXZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hp
dmUubW0KaW5kZXggNjczNzY0NWI3ZDZmMWY0ODljMjdmNTEyODRhNTA3ZjJjMWM2ZmZjOS4uYWMw
MDc4OWIwNmZmZDAzYTYwNDIyNzYzMTI0ODFlMDFmYmRlMDliZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSVdlYkFyY2hpdmUubW0KQEAgLTM4LDI0ICszOCwyNCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2Vi
QXJjaGl2ZTo6Y3JlYXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVm
UHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJm
cmFtZUFyY2hpdmVzKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0ZShXZWJBcmNo
aXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJyZXNv
dXJjZXMsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3ViZnJhbWVBcmNoaXZlcykKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmUobWFpblJlc291cmNlLCBzdWJyZXNvdXJjZXMs
IHN1YmZyYW1lQXJjaGl2ZXMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZl
KG1haW5SZXNvdXJjZSwgc3VicmVzb3VyY2VzLCBzdWJmcmFtZUFyY2hpdmVzKSk7CiB9CiAKLVBh
c3NSZWZQdHI8V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSkK
K1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRhKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShkYXRhKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShkYXRhKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2
ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gbGVnYWN5
V2ViQXJjaGl2ZSkKK1JlZjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUGFzc1JlZlB0
cjxMZWdhY3lXZWJBcmNoaXZlPiBsZWdhY3lXZWJBcmNoaXZlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJBcmNoaXZlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXJjaGl2ZShsZWdhY3lXZWJBcmNoaXZlKSk7CiB9CiAKLVBhc3NSZWZQdHI8
V2ViQXJjaGl2ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxXZWJBcmNo
aXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUocmFuZ2UpKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXJjaGl2ZShMZWdhY3lXZWJBcmNoaXZlOjpjcmVh
dGUocmFuZ2UpKSk7CiB9CiAKIFdlYkFyY2hpdmU6OldlYkFyY2hpdmUoV2ViQXJjaGl2ZVJlc291
cmNlKiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQ
YXNzUmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmgKaW5kZXggNzNjYmY1NmUzYWI4ZGFmOWQ0
ZjRhZWRkYWE0MDI5ODZkOGJkZTNiMi4uMWViOTI2NGIzZWZkODc1NzkzZTViZmE0ZDllNDhhN2Y5
YmY1Njk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVS
ZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3Vy
Y2UuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBXZWJBcmNoaXZlUmVzb3VyY2UgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlUgogcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYkFyY2hpdmVSZXNvdXJjZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBV
UkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVm
UHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2
ZVJlc291cmNlPiBjcmVhdGUoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsKKyAgICBzdGF0aWMg
UmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6QXJjaGl2
ZVJlc291cmNlPik7CiAKICAgICBSZWY8QVBJOjpEYXRhPiBkYXRhKCk7CiAgICAgU3RyaW5nIFVS
TCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0K
aW5kZXggNDUwNDU1ZWYxMTQ5ZmY2YTRiZDVhM2Y0OTk4Nzc0YzgxYTdjZjg2My4uOWUzODNlMTE1
YWVhZGUzZWIxNjg5ZGQxYTQ2NmYxNjNhNWNmMWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCkBAIC0zNywxNCArMzcsMTQgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBBUEkgewogCi1QYXNzUmVmUHRyPFdlYkFy
Y2hpdmVSZXNvdXJjZT4gV2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoQVBJOjpEYXRhKiBkYXRh
LCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0RW5jb2RpbmcpCitSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3Vy
Y2U6OmNyZWF0ZShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJp
bmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZykKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNvdXJjZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0
RW5jb2RpbmcpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlUmVzb3VyY2Uo
ZGF0YSwgVVJMLCBNSU1FVHlwZSwgdGV4dEVuY29kaW5nKSk7CiB9CiAKLVBhc3NSZWZQdHI8V2Vi
QXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShQYXNzUmVmUHRyPEFy
Y2hpdmVSZXNvdXJjZT4gYXJjaGl2ZVJlc291cmNlKQorUmVmPFdlYkFyY2hpdmVSZXNvdXJjZT4g
V2ViQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGFy
Y2hpdmVSZXNvdXJjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNv
dXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNo
aXZlUmVzb3VyY2UoYXJjaGl2ZVJlc291cmNlKSk7CiB9CiAKIFdlYkFyY2hpdmVSZXNvdXJjZTo6
V2ViQXJjaGl2ZVJlc291cmNlKEFQSTo6RGF0YSogZGF0YSwgY29uc3QgU3RyaW5nJiBVUkwsIGNv
bnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oCmluZGV4IGJmZGUxOTg0NjE0NzE0OGZmZjg5YTE0OGQ4
NzE3NDZjNmE2NmRlMzEuLmUxMDZkNWI4YTA0OGNiN2VjODlhMDk3YjM2NmY0YmRkYWI0MmE1NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmgKQEAgLTYwLDE0ICs2MCwxNCBAQCBj
bGFzcyBBc3luY1JlcXVlc3RJbXBsIGZpbmFsIDogcHVibGljIEFzeW5jUmVxdWVzdCB7CiBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgQXJndW1lbnRUeXBlID0gdHlwZW5h
bWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgVCwgY29uc3Qg
VCY+Ojp0eXBlOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUo
c3RkOjpmdW5jdGlvbjx2b2lkIChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRp
b25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5j
dGlvbjx2b2lkKEFyZ3VtZW50VHlwZTxBcmd1bWVudHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFzeW5jUmVxdWVzdEltcGw8QXJn
dW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFzeW5jUmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihX
VEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkIChB
cmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNvbXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKKyAgICBzdGF0aWMgUmVmPEFzeW5jUmVxdWVzdD4g
Y3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZChBcmd1bWVudFR5cGU8QXJndW1lbnRzPi4uLik+IGNv
bXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gYWJvcnRIYW5kbGVyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBc3luY1JlcXVlc3RJbXBsPEFyZ3VtZW50
cy4uLj4oV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgV1RGOjptb3ZlKGFib3J0SGFuZGxl
cikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1
bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURjo6bW92ZShhYm9ydEhh
bmRsZXIpKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+QXN5bmNSZXF1ZXN0SW1wbCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Rf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaAppbmRleCA5NDVmYzgzNTM1ODMxMDUxYjFiOWFkODg3Njg4MzkyMjQxNDlk
Mjc5Li4zNzY3NTVmN2M4NmJlMDI5MTFhZGQxZGM3ZWI3NmZiZmE5NjBkOGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVz
dF9wcml2YXRlLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgRXdrVXJsUmVxdWVzdCA6IHB1Ymxp
YyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxSZXF1
ZXN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4gY3JlYXRlKFdLVVJM
UmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgIHN0YXRpYyBSZWY8RXdrVXJsUmVxdWVzdD4gY3Jl
YXRlKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBFd2tVcmxSZXF1ZXN0KHJlcXVlc3RSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRXdrVXJsUmVxdWVzdChyZXF1ZXN0UmVmKSk7CiAgICAgfQogCiAgICAgY29u
c3QgY2hhciogdXJsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCmluZGV4IDRlYTgyNzQ5
ODMzNTc1MTMxZjUzM2IwY2JhY2M0NjAwZTUzMTQ4YzAuLjJmZmRiN2IyMjAwYjhmZWRjNGY4NzUy
Zjg5MGM2MjgwZDkyZTE4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCkBAIC00MCwxMCArNDAs
MTAgQEAgY2xhc3MgRXdrVXJsUmVzcG9uc2UgOiBwdWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJsUmVzcG9uc2UpCiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tVcmxSZXNwb25zZT4gY3JlYXRlKFdLVVJMUmVzcG9uc2VSZWYgd2tSZXNwb25z
ZSkKKyAgICBzdGF0aWMgUmVmUHRyPEV3a1VybFJlc3BvbnNlPiBjcmVhdGUoV0tVUkxSZXNwb25z
ZVJlZiB3a1Jlc3BvbnNlKQogICAgIHsKICAgICAgICAgaWYgKCF3a1Jlc3BvbnNlKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlc3BvbnNlKHdrUmVzcG9uc2UpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVt
ZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDlhNDA0YzcwOWE0ZDU1NTRiYTE3
MjFiNDAyNTBiZWRmYjM1YzhiYTcuLmEzOTg5MmI0MGZiNWVmYjhlOTI3NzA0YWJjN2U1Yjg5N2Jk
ZmU1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC00MSwxMCArNDEs
MTAgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVi
bGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxS
ZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCisgICAgc3RhdGljIFJlZlB0cjxFd2tVcmxTY2hl
bWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBt
YW5hZ2VyLCBBUEk6OlVSTFJlcXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkK
ICAgICB7CiAgICAgICAgIGlmICghbWFuYWdlciB8fCAhdXJsUmVxdWVzdCkKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFd2tVcmxTY2hlbWVSZXF1ZXN0KG1hbmFnZXIsIHVybFJlcXVlc3QsIHJl
cXVlc3RJRCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a193aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKaW5kZXggZTUyMDE2
NzNhZmI1MjRmMTRlNmI3MjAwYzRkMGFmMmJjMWM1YTJjZi4uOTUyYTc3NDFlMWQwZDc0MjliMTEz
M2FiN2NiN2ZjZmIwZjBiMWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgKQEAgLTM3
LDkgKzM3LDkgQEAgY2xhc3MgRXdrV2luZG93RmVhdHVyZXMgOiBwdWJsaWMgRXdrT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrV2luZG93RmVhdHVyZXMpCiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFy
eVJlZiB3aW5kb3dGZWF0dXJlcywgRXdrVmlldyogdmlld0ltcGwpCisgICAgc3RhdGljIFJlZjxF
d2tXaW5kb3dGZWF0dXJlcz4gY3JlYXRlKFdLRGljdGlvbmFyeVJlZiB3aW5kb3dGZWF0dXJlcywg
RXdrVmlldyogdmlld0ltcGwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3
a1dpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVzLCB2aWV3SW1wbCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBFd2tXaW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0dXJlcywgdmlld0lt
cGwpKTsKICAgICB9CiAKICAgICBjb25zdCBFdmFzX0Nvb3JkX1JlY3RhbmdsZSYgZ2VvbWV0cnko
KSBjb25zdCB7IHJldHVybiBtX2dlb21ldHJ5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfb2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCmluZGV4
IDcwY2VlYTVlNWQxYjYyMDNhZjUyZDc4NjA0OTMzZDNiN2FjMjQzMTUuLmNjZDJjMDVlZWVhMGVk
NDllZjY4NDAyYzc4M2EzMzNiZDE3ZDE2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9vYmplY3QuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIu
aCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0
X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgRVdLMlVuaXRUZXN0OwogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTQwLDEwICszOSwxMCBA
QCBjbGFzcyBUZXN0RXdrT2JqZWN0MSA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAg
IEVXS19PQkpFQ1RfREVDTEFSRShUZXN0RXdrT2JqZWN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8VGVzdEV3a09iamVjdDE+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxUZXN0RXdrT2JqZWN0
MT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHdhc0RlbGV0ZWQgPSBmYWxzZTsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0MSgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGVzdEV3a09iamVjdDEoKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wg
d2FzRGVsZXRlZDsgLy8gV2UgYWx3YXlzIHRlc3Qgb25seSBvbmUgaW5zdGFuY2Ugb2YgVGVzdEV3
a09iamVjdC4KQEAgLTYwLDkgKzU5LDkgQEAgY2xhc3MgVGVzdEV3a09iamVjdDIgOiBwdWJsaWMg
RXdrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoVGVzdEV3a09iamVj
dDIpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0RXdrT2JqZWN0Mj4gY3JlYXRlKCkKKyAg
ICBzdGF0aWMgUmVmPFRlc3RFd2tPYmplY3QyPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUZXN0RXdrT2JqZWN0MigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGVzdEV3a09iamVjdDIoKSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5j
cHAKaW5kZXggM2MxZTRjNmE4NjcwMDhkNTQ2NDY0OWVhMzc3MjM5MTQ2ZTRmYjI5YS4uNmI5YjRj
YmVmNTY3ZTA1OWZhZWFlMmU2OGM1MjY1NjY3Nzg0Y2JkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuY3Bw
CkBAIC00Myw5ICs0Myw5IEBAIHN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqCiAgICAgdG9CYXR0ZXJ5
UHJvdmlkZXIoY2xpZW50SW5mbyktPnN0b3BVcGRhdGluZygpOwogfQogCi1QYXNzUmVmUHRyPFdl
YktpdEJhdHRlcnlQcm92aWRlcj4gV2ViS2l0QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUoV2ViQmF0
dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1hbmFnZXIpCitSZWY8V2ViS2l0QmF0dGVyeVByb3Zp
ZGVyPiBXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0ZShXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
KiBiYXR0ZXJ5TWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdEJhdHRl
cnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YktpdEJhdHRlcnlQcm92aWRlcihiYXR0ZXJ5TWFuYWdlcikpOwogfQogCiBXZWJLaXRCYXR0ZXJ5
UHJvdmlkZXI6OldlYktpdEJhdHRlcnlQcm92aWRlcihXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBi
YXR0ZXJ5TWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKaW5kZXggN2YwNWRiNmM3MTY2MTZhMDczMjA2
ZDNlN2M5OWIyNmVhZGJmNDc0Ny4uZTJlOTRiZjA0NDczM2M0ODY3YmU3ODk2NDAxNTY5ODQ4MTdh
M2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QmF0dGVyeVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QmF0dGVyeVByb3ZpZGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYktpdEJhdHRlcnlQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YktpdEJhdHRlcnlQcm92aWRlcj4sIHB1YmxpYyBXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJVUG93
ZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdEJhdHRlcnlQ
cm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKKyAgICBzdGF0aWMgUmVm
PFdlYktpdEJhdHRlcnlQcm92aWRlcj4gY3JlYXRlKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsK
ICAgICB2aXJ0dWFsIH5XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIoKTsKIAogICAgIHZvaWQgc3RhcnRV
cGRhdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Q29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbG9yQ2hvb3Nlci5jcHAKaW5kZXggYjI2YmFiNGM3Y2VmZmI0NzJiYjVlNWM5YjU0
OGIyNDA2YzNmNjBlMC4uNzE5MTlkOGY2ZjQ5YTQzYzE0MmI2OWJiNTY3ZjE1NzBhZjI4MzVjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JD
aG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b2xvckNob29zZXIuY3BwCkBAIC0yOSw5ICsyOSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJLaXRDb2xvckNob29zZXI+
IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K1JlZjxXZWJLaXRDb2xvckNob29zZXI+IFdlYktpdENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKFdlYlBh
Z2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktp
dENvbG9yQ2hvb3NlcihwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJLaXRDb2xvckNob29zZXIocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7
CiB9CiAKIFdlYktpdENvbG9yQ2hvb3Nlcjo6V2ViS2l0Q29sb3JDaG9vc2VyKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYgcmVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9y
Q2hvb3Nlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JD
aG9vc2VyLmgKaW5kZXggMjRhOTQxYTU3NTYwYzFhZWRhZDRhNDY0MDQ2OTI2NGY2ZjBmMzkyMy4u
ZjJiZjM1ZWRmMGIxMDYwOGEyYTQ1OTgxZGRiMWVhODE1MWJjNGRiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmgKQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYktpdENvbG9yQ2hv
b3NlciBmaW5hbCA6IHB1YmxpYyBXZWJDb2xvclBpY2tlckd0ayB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViS2l0Q29sb3JDaG9vc2VyPiBjcmVhdGUoV2ViUGFnZVByb3h5Jiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgc3Rh
dGljIFJlZjxXZWJLaXRDb2xvckNob29zZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIH5X
ZWJLaXRDb2xvckNob29zZXIoKTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1l
bnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50UmVjdDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblBy
b3ZpZGVyLmNwcAppbmRleCBjODE0NjFiZWM1NDdkMmRmMWFhOTcxOGUzNjhiMDY1ZmI5ZWU4MDBh
Li42YWMwZmJjOTg3ODk2YjMwNzZhMjQ2Zjk1NTUwNDA5ZDY4OGVkY2VhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2Nh
dGlvblByb3ZpZGVyLmNwcApAQCAtNTQsOSArNTQsOSBAQCBXZWJLaXRHZW9sb2NhdGlvblByb3Zp
ZGVyOjp+V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcigpCiAgICAgV0tHZW9sb2NhdGlvbk1hbmFn
ZXJTZXRQcm92aWRlcih0b0FQSShtX2dlb2xvY2F0aW9uTWFuYWdlci5nZXQoKSksIG51bGxwdHIp
OwogfQogCi1QYXNzUmVmUHRyPFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI+IFdlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9j
YXRpb25NYW5hZ2VyKQorUmVmPFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI+IFdlYktpdEdlb2xv
Y2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9j
YXRpb25NYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlcihnZW9sb2NhdGlvbk1hbmFnZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKGdlb2xvY2F0aW9uTWFuYWdlcikpOwogfQogCiBX
ZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblBy
b3ZpZGVyLmgKaW5kZXggZTZiZTNlYWMyY2Y4YmVhZWYzYWRhZThmMjY1YjRhNDdhZWI1NGFhOC4u
OTI1ODZjZTA1YTQ5OGQ0OWQ0MjgzY2RkNGVmY2JkYzAxNjBjYWIzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9u
UHJvdmlkZXIuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdl
YktpdEdlb2xvY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXRHZW9sb2Nh
dGlvblByb3ZpZGVyPiwgcHVibGljIFdlYkNvcmU6Okdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVl
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVy
KCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcj4gY3Jl
YXRlKFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAgc3RhdGljIFJlZjxXZWJLaXRH
ZW9sb2NhdGlvblByb3ZpZGVyPiBjcmVhdGUoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqKTsK
IAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKaW5kZXggZGJjOGZkOGU2Mjk2NzUxMWI5MmJmMjA5
YzlmMGY2ZTg4OWIxYzZmNy4uNzU3NWRmZTg5NDJhMjJhODEwZDhhMmQ2NTEzNGVlOGJkMDQ0ZjMz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApAQCAtNjEsOSArNjEsOSBAQCBXZWJL
aXROb3RpZmljYXRpb25Qcm92aWRlcjo6fldlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKCkKIHsK
IH0KIAotUGFzc1JlZlB0cjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4gV2ViS2l0Tm90aWZp
Y2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG5vdGlm
aWNhdGlvbk1hbmFnZXIpCitSZWY8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IFdlYktpdE5v
dGlmaWNhdGlvblByb3ZpZGVyOjpjcmVhdGUoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBu
b3RpZmljYXRpb25NYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0Tm90
aWZpY2F0aW9uUHJvdmlkZXIobm90aWZpY2F0aW9uTWFuYWdlcikpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKG5vdGlmaWNhdGlvbk1hbmFnZXIp
KTsKIH0KIAogV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OldlYktpdE5vdGlmaWNhdGlvblBy
b3ZpZGVyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbm90aWZpY2F0aW9uTWFuYWdlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlm
aWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXROb3RpZmljYXRpb25Qcm92aWRlci5oCmluZGV4IDJkYmMyNmRiZmFlNDY2MThjZjY1NjA3ZGU2
N2MxODk0OTY3NWNmMDIuLmFjODc0YjgzMzJmZjA1ODRjOTcxY2U4ZTE5YTE0OTZhMDNjYWNiOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlm
aWNhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcigpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YktpdE5vdGlmaWNhdGlvblByb3ZpZGVyPiBjcmVhdGUoV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Kik7CisgICAgc3RhdGljIFJlZjxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4gY3JlYXRl
KFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwogCiAgICAgdm9pZCBzaG93KFdlYlBhZ2VQ
cm94eSosIGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYpOwogICAgIHZvaWQgY2FuY2VsKGNvbnN0IFdl
Yk5vdGlmaWNhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlld0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3Q2xpZW50LmNwcAppbmRleCBkMjE1ODA3
MzQ3OTg4YjU2MjQ0ZThiMGI3N2UwYjMxYjQ0NTU3ZDIzLi41ZjhjMTA3MWQ0ZGNhMTNiOTBmOTEw
ZWNlYmYxZmM1MGRhM2YzOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3Q2xpZW50LmNwcApAQCAtMTA1
LDcgKzEwNSw3IEBAIHZvaWQgV2ViVmlld0NsaWVudDo6ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1
dGVzKFdlYlZpZXcqIHZpZXcsIGNvbnN0IFZpZXdwb3J0QXR0CiAgICAgaWYgKCFtX2NsaWVudC5k
aWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdLUmV0
YWluUHRyPFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmPiB3a0F0dHJpYnV0ZXMgPSBhZG9wdFdLKHRv
QVBJKFdlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKGF0dHJpYnV0ZXMpLmxlYWtSZWYoKSkp
OworICAgIFdLUmV0YWluUHRyPFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmPiB3a0F0dHJpYnV0ZXMg
PSBhZG9wdFdLKHRvQVBJKCZXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZShhdHRyaWJ1dGVz
KS5sZWFrUmVmKCkpKTsKICAgICBtX2NsaWVudC5kaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMo
dG9BUEkodmlldyksIHdrQXR0cmlidXRlcy5nZXQoKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCmluZGV4IGVmNzE4ZmUyYTg2OWI4N2ViMzRj
NTk5MjUyNDY5MzZkNGE2ZGE1MDAuLjAzZTcyOTY1ZGI5NTc0NmI5YTY0YTFiZDU2OGE2M2JiNDQ0
MDBlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTM1LDkgKzM1LDkgQEAgY2xhc3Mg
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eT4g
Y3JlYXRlKEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1hbmFnZXIs
IHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQpCisgICAgc3RhdGljIFJlZjxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCBnZW9sb2NhdGlvbklEKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHko
bWFuYWdlciwgZ2VvbG9jYXRpb25JRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgZ2VvbG9jYXRpb25JRCkp
OwogICAgIH0KIAogICAgIHZvaWQgYWxsb3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJlcXVlc3QuaAppbmRleCBlY2RhMTRlOTli
YzA1MTM5Zjg0NTM5ODYzMGM2NmMzNzU5NDI5MWQ0Li5mZmIzMTdlYzgxYjEyOGNhOGFmOGY1Mzdj
ODUxMzE2YTkwOGE1MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL0hUVFBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0luc3BlY3RvclNlcnZlci9IVFRQUmVxdWVzdC5oCkBAIC00Myw4ICs0Myw4IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBIVFRQUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPEhUVFBS
ZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRUUFJlcXVlc3Q+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVFRQUmVxdWVzdCgpKTsgfQotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEhUVFBSZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZXF1ZXN0TWV0
aG9kLCBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6SFRUUFZlcnNpb24gdmVyc2lv
bikgeyByZXR1cm4gYWRvcHRSZWYobmV3IEhUVFBSZXF1ZXN0KHJlcXVlc3RNZXRob2QsIHVybCwg
dmVyc2lvbikpOyB9CisgICAgc3RhdGljIFJlZjxIVFRQUmVxdWVzdD4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVFRQUmVxdWVzdCgpKTsgfQorICAgIHN0YXRpYyBSZWY8SFRUUFJl
cXVlc3Q+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlcXVlc3RNZXRob2QsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsLCBXZWJDb3JlOjpIVFRQVmVyc2lvbiB2ZXJzaW9uKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IEhUVFBSZXF1ZXN0KHJlcXVlc3RNZXRob2QsIHVybCwgdmVyc2lvbikpOyB9CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRUUFJlcXVlc3Q+IHBhcnNlSFRUUFJlcXVlc3RGcm9tQnVmZmVy
KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIFN0cmluZyYgZmFpbHVyZVJlYXNvbik7
CiAgICAgdmlydHVhbCB+SFRUUFJlcXVlc3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIuY3BwCmluZGV4IDFmMmFjOGViY2QzMjZmMTQ5ZDA5M2UxZGZkMzlkMDcyZDg3NzVjOWEuLmQw
YmIyMDQyMDYzN2ZhM2E1OTdjMzk5M2ZhMGVkYzc3NzY3NWJmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTQwLDkgKzQwLDkgQEAgY29uc3QgY2hhciogV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4g
IldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyIjsKIH0KIAotUGFzc1JlZlB0cjxX
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4gV2ViU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCitSZWY8
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IFdlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIocHJvY2Vzc1Bvb2wpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlcihwcm9jZXNzUG9vbCkpOwogfQogCiBXZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmgKaW5kZXggNGU3Nzk3ZmEyMjJiYmM3ZTk1YzZjNzk3NGZlYjliMTkzZGVlMDZjNi4uZTE0MzA2
YTM4NjM0YzFmODVlODQ3Mzc5NjJlZWZhOWQ4ZTk1MGM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlci5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4gY3JlYXRl
KFdlYlByb2Nlc3NQb29sKik7CisgICAgc3RhdGljIFJlZjxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlcj4gY3JlYXRlKFdlYlByb2Nlc3NQb29sKik7CiAgICAgdmlydHVhbCB+V2Vi
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6
ZUNsaWVudChjb25zdCBXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyQ2xpZW50QmFz
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkNTc5MGMwNjY4NGFhOWU2ZWVkMTZiMGQ2NzE0NzJi
MWE3MDI1MjJkLi4wOThlNDVlZTJkMTZkZjBiZjk5MjMxOGZkMDhmYzNkZDkzMTUxNDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNTksOSArNTksOSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVD
YWxsYmFja0lEKCkKICAgICByZXR1cm4gKytjYWxsYmFja0lEOwogfQogCi1QYXNzUmVmUHRyPE5l
dHdvcmtQcm9jZXNzUHJveHk+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNz
UG9vbCYgcHJvY2Vzc1Bvb2wpCitSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4gTmV0d29ya1Byb2Nl
c3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE5ldHdvcmtQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sKSk7CiB9
CiAKIE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bv
b2wmIHByb2Nlc3NQb29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDU4ZTU5NjBhNGYwYWZjMWFmNTAwNTQz
ZWY1ODJjNWJmYjVkOTBhZmIuLjZiZDViZjI0NTc5NjRmNmExNzI2ZjQ5YWIzYWM5MWY5YzIwM2Ez
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IDogcHVibGlj
IENoaWxkUHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IGNyZWF0ZShX
ZWJQcm9jZXNzUG9vbCYpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4gY3Jl
YXRlKFdlYlByb2Nlc3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKIAogICAg
IHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAy
NWQzN2RhNGI5OTRiNmQwY2RkYmU0MjU0NDAyODNhYzFlMGU2OWE1Li4yMTI4NjI3YzUyYjAyOWI0
MTIxMTY0Y2Q3YTNmMzg5MjlhNzZkMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwCkBAIC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogICAgIAotUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKK1JlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIs
IG5vdGlmaWNhdGlvbklEKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QobWFuYWdlciwgbm90aWZpY2F0aW9uSUQpKTsKIH0KIAogTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oCmluZGV4IGZkYzUyOTRlYzJiYTc3NjRmM2I1Y2RjMTgxYTJmZjMzYzhlOTMyMzkuLmUwNDg0
MDY1OTQ2MzQ4MGMzZTgwNjBjZTQyZjFjZjEyN2ZhNzQ1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CisgICAgc3RhdGljIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3Jl
YXRlKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOwogCiAgICAgdm9pZCBhbGxvdygpOwogICAgIHZvaWQgZGVueSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb24uaAppbmRleCBlYTk4MWQyM2Q0ZTVjODA5OGViZDEyZmE4ZTE5MzU0ZjdkMWE1
NDFjLi41ZmQzZGE3MTg4NTkwOWQyNTRjNzRmNTYzOTI0OWIzYmRkODlmOGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb24uaApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
Tm90aWZpY2F0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZp
Y2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBj
b25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxh
bmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgc3RhdGljIFJlZjxXZWJOb3RpZmljYXRpb24+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYg
aWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3Ry
aW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRp
b25JRCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9u
KHRpdGxlLCBib2R5LCBpY29uVVJMLCB0YWcsIGxhbmcsIGRpciwgb3JpZ2luU3RyaW5nLCBub3Rp
ZmljYXRpb25JRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJOb3RpZmljYXRp
b24odGl0bGUsIGJvZHksIGljb25VUkwsIHRhZywgbGFuZywgZGlyLCBvcmlnaW5TdHJpbmcsIG5v
dGlmaWNhdGlvbklEKSk7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMGRjNzNjYjhiYmY0YjU5ZmRiNDQwYjkyZDViMzhiMWQ4ZTRhOTQ2My4uYzA4
MDg3NmFlMjJhYjE0ZDFhMDk0NjBmYWJkYjNmZDRlOWNlNmU5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ2NTYsNyArNDY1Niw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzY3JpcHRWYWx1ZUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YVJlZmVyZW5jZSwKICAgICBkYXRhLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZGF0YVJlZmVy
ZW5jZS5zaXplKCkpOwogICAgIGRhdGEuYXBwZW5kKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRh
UmVmZXJlbmNlLnNpemUoKSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0
KGRhdGEpLmdldCgpIDogMCwgaGFkRXhjZXB0aW9uKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKGRhdGEuc2l6ZSgpID8gQVBJOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmFkb3B0KGRhdGEpLnB0cigpIDogMCwgaGFkRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmNvbXB1dGVkUGFnZXNDYWxsYmFjayhjb25zdCBWZWN0b3I8SW50UmVjdD4m
IHBhZ2VSZWN0cywgZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJy
YXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJv
eHkuY3BwCmluZGV4IGExNzMyNDcxNTViYzU3OTJlNWJiODViZGE0NWIzYzE3ZjA2MzdlMTUuLjQ4
ZDI5MGNlMzkzMWRiNTg0ODlhMDljYWQ2ZWY3ZDAzOGMwNGNjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcApAQCAtMzUsOSArMzUsOSBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gV2Vi
VmlicmF0aW9uUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCitSZWY8V2ViVmlicmF0
aW9uUHJveHk+IFdlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVmlicmF0aW9uUHJveHkocGFnZSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZpYnJhdGlvblByb3h5KHBhZ2UpKTsKIH0KIAogV2Vi
VmlicmF0aW9uUHJveHk6OldlYlZpYnJhdGlvblByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKaW5kZXggYjcyMDk4
MTdkZmM4YmMwMGQ4NDkzNDJmNzRhZTdkMjU5ZGQ5MGI4OC4uNzM4NTY2MGQ2N2QyNDRmOTIyYWNm
NmZiMWFlNGM0ZjliOTIwZjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlZpYnJhdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZp
YnJhdGlvblByb3h5LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBj
bGFzcyBXZWJWaWJyYXRpb25Qcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6OlZpYnJhdGlvbj4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBjcmVhdGUoV2Vi
UGFnZVByb3h5Kik7CisgICAgc3RhdGljIFJlZjxXZWJWaWJyYXRpb25Qcm94eT4gY3JlYXRlKFdl
YlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgfldlYlZpYnJhdGlvblByb3h5KCk7CiAKICAgICB2
b2lkIGludmFsaWRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuaAppbmRleCAwZjUyYjg3MzYzMTQwZTBmYmQzNjgxMmUwMTg0MWEyZTI1
YmYyOGY2Li5hMzEwNjVmZTRjZGQxMmZlY2U4MzcwYjc0ZmQyM2JlOGIyZTUwZjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCkBAIC0z
NCw5ICszNCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJWaWV3cG9ydEF0dHJp
YnV0ZXMgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3cG9y
dEF0dHJpYnV0ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWV3cG9y
dEF0dHJpYnV0ZXM+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0
dHJpYnV0ZXMpCisgICAgc3RhdGljIFJlZjxXZWJWaWV3cG9ydEF0dHJpYnV0ZXM+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhhdHRyaWJ1dGVz
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZpZXdwb3J0QXR0cmlidXRlcyhh
dHRyaWJ1dGVzKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViVmlld3BvcnRBdHRyaWJ1dGVz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggOTQzNGI3ODY4MGQyNmMyM2ZiNmQ0NzFlYmY3ZGJl
OWZhNDg2YzhmMy4uMWFmYWZiYWFiMThjZjBiMDlmZWM0NjIyNzIzOTNkZmMyMTY1YTkxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcApAQCAtNTgsMTQgKzU4LDE0IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZUlkZW50aWZpZXIoKQogICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CiAKLVJlZlB0cjxX
ZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KCkK
K1JlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0
ZW50KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3RvcmUoZ2VuZXJh
dGVOb25QZXJzaXN0ZW50U2Vzc2lvbklEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJzaXRlRGF0YVN0b3JlKGdlbmVyYXRlTm9uUGVyc2lzdGVudFNlc3Npb25JRCgpKSk7CiB9CiAK
LVJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKQorUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRh
U3RvcmU6OmNyZWF0ZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKFdURjo6bW92ZShjb25maWd1cmF0aW9uKSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoV1RGOjptb3ZlKGNv
bmZpZ3VyYXRpb24pKSk7CiB9CiAKIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUo
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNWU0YzcyMmI2
NTM2NTE3YWE2MmQ3MDYzMzNiNTJiY2QwYmVlZDNmYS4uMzZiNjBjN2Q0NDJlOTRmODNhZTIxOTRj
Nzc5MzNlMWE3NWIyMDI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Miw4ICs2Miw4IEBAIHB1Ymxp
YzoKICAgICAgICAgU3RyaW5nIGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5n
IG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgfTsKLSAgICBzdGF0aWMgUmVmUHRyPFdl
YnNpdGVEYXRhU3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKLSAgICBzdGF0aWMgUmVmUHRy
PFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKKyAgICBzdGF0aWMgUmVm
PFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnQoKTsKKyAgICBzdGF0aWMgUmVm
PFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9uKTsKICAgICB2aXJ0dWFsIH5X
ZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCmluZGV4IGM0ZjY1ODMwOTY0NzAwMjZkZmUwZjEwZWQ1
ODk0ODYxMjhiNTQzMTMuLjMyZGZlODJlY2Q2YzY1MjNiYTU1ZjA1M2EwMjQzMGVjNDhiMTc1YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJH
dGsuY3BwCkBAIC0zNyw5ICszNyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0az4gV2ViQ29sb3JQ
aWNrZXJHdGs6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFs
Q29sb3IsIGNvbnN0IEludFJlY3QmIHJlY3QpCitSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IFdlYkNv
bG9yUGlja2VyR3RrOjpjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5p
dGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29sb3JQaWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29sb3JQaWNrZXJHdGsocGFnZSwgaW5pdGlhbENvbG9yLCBy
ZWN0KSk7CiB9CiAKIFdlYkNvbG9yUGlja2VyR3RrOjpXZWJDb2xvclBpY2tlckd0ayhXZWJQYWdl
UHJveHkmIHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludFJlY3QmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0
ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5oCmlu
ZGV4IDY3MDE4MTVmM2MzZmZiMzA3MDYzZDk4NzBjNTM1OWU5ZjY4YmYzYTguLjA1YTg0ZGU0YjAy
MTgzOGNkNWE5NjVkMGFiYmJmOGVmMTRlZWI3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbG9yUGlja2VyR3RrIDogcHVibGljIFdlYkNvbG9y
UGlja2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckd0
az4gY3JlYXRlKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJHdGs+IGNyZWF0
ZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKTsKICAgICB2aXJ0dWFsIH5XZWJDb2xvclBpY2tlckd0aygpOwogCiAgICAgdmlydHVh
bCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuaAppbmRleCA0YjU4ZmQ1MmFkZDE4
ZDY4NWYxZDM3MDNlMTg1NmFhMmZkZTVjOWRjLi5hODBlYmYyYzkxZGIyNjUyZDYyMjJjM2RlYTUx
OTQyNDUxNTNiNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dl
YkNvbnRleHRNZW51UHJveHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkNvbnRleHRNZW51UHJveHlHdGsuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJQYWdl
UHJveHk7CiAKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlHdGsgOiBwdWJsaWMgV2ViQ29udGV4
dE1lbnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1l
bnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUGFnZVByb3h5KiBwYWdl
KQorICAgIHN0YXRpYyBSZWY8V2ViQ29udGV4dE1lbnVQcm94eUd0az4gY3JlYXRlKEd0a1dpZGdl
dCogd2ViVmlldywgV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJDb250ZXh0TWVudVByb3h5R3RrKHdlYlZpZXcsIHBhZ2UpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBw
YWdlKSk7CiAgICAgfQogICAgIH5XZWJDb250ZXh0TWVudVByb3h5R3RrKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAppbmRl
eCBkOTIwMDM5NTk3ZmMwOWVjOWExYTc2OWVlOTBjYTk1ODFjYjc1NDQ5Li41ZjgwY2RmN2MyMmYy
NjVlZGZhN2Q4YmM5NDQ0MzFmYzI5NDA1ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCkBAIC0zNyw5ICszNyw5IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgV2ViUG9wdXBNZW51UHJveHlHdGsgOiBwdWJsaWMg
V2ViUG9wdXBNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBv
cHVwTWVudVByb3h5R3RrPiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQ
cm94eTo6Q2xpZW50KiBjbGllbnQpCisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnVQcm94eUd0
az4gY3JlYXRlKEd0a1dpZGdldCogd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCog
Y2xpZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQ
cm94eUd0ayh3ZWJWaWV3LCBjbGllbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViUG9wdXBNZW51UHJveHlHdGsod2ViVmlldywgY2xpZW50KSk7CiAgICAgfQogICAgIH5XZWJQ
b3B1cE1lbnVQcm94eUd0aygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1ZpZXdTbmFwc2hvdFN0b3JlLmgKaW5kZXggMzA1YWRiM2E3NGMwNjhiOWI5OGRmZDM4NzcyMGM4
ZTA2MzY4MmExYi4uYTE0YTEwYzQxNTE2ZmQ1M2U3OTJiNGUyMmE5YTFhMTY5OTZmOTJkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApA
QCAtNjIsOSArNjIsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBWaWV3U25hcHNob3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxWaWV3U25hcHNob3Q+IHsKIHB1YmxpYzoKICNpZiBVU0VfSU9T
VVJGQUNFX1ZJRVdfU05BUFNIT1RTCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90
PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOworICAgIHN0YXRp
YyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4pOwogI2VsaWYgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IGNyZWF0ZSh1aW50MzJfdCBzbG90SUQsIFdlYkNv
cmU6OkludFNpemUsIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKTsKKyAgICBzdGF0aWMgUmVmPFZp
ZXdTbmFwc2hvdD4gY3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6
ZV90IGltYWdlU2l6ZUluQnl0ZXMpOwogI2VuZGlmCiAKICAgICB+Vmlld1NuYXBzaG90KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQpp
bmRleCA5ZDg3ZTI4MWQ0NDNlNzZkZGMxMmVkYTZmZGM1MTlmZDExNTI0MDY1Li5iNjA4NDI2Njli
NmIwOTI4Y2Q5OTcxZjQzM2Y4Y2QyNDA3YmRjYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTEzNCwxNCArMTM0LDE0IEBA
IHZvaWQgVmlld1NuYXBzaG90U3RvcmU6OmRpc2NhcmRTbmFwc2hvdEltYWdlcygpCiAKIAogI2lm
IFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKLVBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBW
aWV3U25hcHNob3Q6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQor
UmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gc3VyZmFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZpZXdTbmFwc2hv
dChXVEY6Om1vdmUoc3VyZmFjZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25h
cHNob3QoV1RGOjptb3ZlKHN1cmZhY2UpKSk7CiB9CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9W
SUVXX1NOQVBTSE9UUwotUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3Jl
YXRlKHVpbnQzMl90IHNsb3RJRCwgSW50U2l6ZSBzaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRl
cykKK1JlZjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90IHNsb3RJ
RCwgSW50U2l6ZSBzaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcykKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFZpZXdTbmFwc2hvdChzbG90SUQsIHNpemUsIGltYWdlU2l6ZUluQnl0ZXMp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3Qoc2xvdElELCBzaXplLCBp
bWFnZVNpemVJbkJ5dGVzKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oCmluZGV4IDQwYzllMmJjZmRkYzAyZmFhMWU5
MGI0MmNkMDE1MDZmMmYzM2Q3MDkuLmNmMmY2ZTg2MDI1NTYyN2QxNDhlOGI3Y2U1NjNlMjY5NTQ2
NjM3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQ
aWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlj
a2VyTWFjLmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBjbGFz
cyBXZWJDb2xvclBpY2tlck1hYyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBwdWJsaWM6ICAg
ICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRlKFdl
YkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBXS1ZpZXcqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyTWFj
PiBjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdLVmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1h
YygpOwogCiAgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggNzNj
NjRhYzVmOGE0NGJkMGViYTE2MzgyM2NlNmZmZWUzYjVjZWVjNC4uMjZhYzY5ZmVkNjY5ZDk1ZDZl
NmU1ZGMxOTlmMzRmYjcxNjFlOGFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCkBAIC03NSw5ICs3NSw5IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkNvbG9y
UGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQorUmVmPFdlYkNvbG9yUGlja2VyTWFj
PiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
Q29sb3JQaWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3IsIHJlY3QsIHZpZXcpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xv
ciwgcmVjdCwgdmlldykpOwogfQogCiBXZWJDb2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2Vy
TWFjKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLmgKaW5kZXggMGVlNTQ5NTZhZTI3NTE0ZjZlMjRhNjkxMGE5NWNiNTNkNDNi
NGJmNS4uZDhhZDhmNDVkODUyZTU1MjY3YzliNjU2MWYyZDYwMjEwM2JiMmEzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
LmgKQEAgLTQzLDkgKzQzLDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJDb250
ZXh0TWVudVByb3h5TWFjIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHlNYWM+IGNyZWF0ZShXS1Zp
ZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICBzdGF0aWMgUmVmPFdlYkNvbnRl
eHRNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSogcGFn
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29udGV4dE1lbnVQcm94
eU1hYyh3ZWJWaWV3LCBwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNv
bnRleHRNZW51UHJveHlNYWMod2ViVmlldywgcGFnZSkpOwogICAgIH0KICAgICB+V2ViQ29udGV4
dE1lbnVQcm94eU1hYygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYlBvcHVwTWVudVByb3h5TWFjLmgKaW5kZXggZTMyYTQxYjVjMTZjNzY2OTQ0MWJmNjI0MmJk
MzY0MjFkMDdkZDc1Yi4uYjFmNjA2ZjQwMWY2Yzc4YjQ2ZmFhMzNkNjNkNzQ0YWFhMjZlZDQ1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94
eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJv
eHlNYWMuaApAQCAtNDAsOSArNDAsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdl
YlBvcHVwTWVudVByb3h5TWFjIDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmll
dyAqd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KQorICAgIHN0YXRp
YyBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcgKndlYlZpZXcsIFdlYlBv
cHVwTWVudVByb3h5OjpDbGllbnQqIGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViUG9wdXBNZW51UHJveHlNYWMod2ViVmlldywgY2xpZW50KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlBvcHVwTWVudVByb3h5TWFjKHdlYlZpZXcsIGNsaWVu
dCkpOwogICAgIH0KICAgICB+V2ViUG9wdXBNZW51UHJveHlNYWMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3Rv
cnlCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaAppbmRleCA5Y2VjYWMxZDllY2NiYzFjZGFkMmY2MWNj
ZWJmMmQ2Y2RiYjhhMDA1Li41NzY5OGY5NWIxODY4NTBkNWFjZDVkY2Q4NGIzMjlmNWIwMjQ2NDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaApAQCAtMzUsNyArMzUs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCRmFjdG9yeUJhY2tlbmQgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViSURCRmFjdG9yeUJhY2tlbmQpOyB9CisgICAgc3RhdGlj
IFJlZjxXZWJJREJGYWN0b3J5QmFja2VuZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJJREJGYWN0b3J5QmFja2VuZCk7IH0KIAogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlC
YWNrZW5kKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXgg
ZWY1YmZjOTMzMTViMzdjZjkyZjZjZjIxOGJiNzQwMzlhZGYxYmI1NC4uYzA1MTU4NWM3MDI3NDcz
MTNjNWFmZjU3YzQ0ZjFmYWVhMzdlYmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgV2ViUHJvY2Vzc0lEQkRhdGFiYXNl
QmFja2VuZDsKIAogY2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNy
ZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisg
ICAgc3RhdGljIFJlZjxXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihj
b25uZWN0aW9uSWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICB9
CiAgICAgfldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAKaW5kZXggYTQyMzc1ZDY5MmUyMzkzNTFlODc0YzBmNjlkNzg5Zjc4NWJi
MmFlNy4uZmZmYThiMmQ1MmMyNGI1YjJiN2U3YjdmOTcwZDBmNTAxYmYwMjNhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVl
blJlY3RPZkNvbnRlbnRzKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNj
cmVlblJlY3QoKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gV2ViRnVs
bFNjcmVlbk1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQorUmVmPFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyPiBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJGdWxsU2NyZWVuTWFuYWdlcihwYWdlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnVsbFNjcmVlbk1hbmFnZXIocGFnZSkpOwogfQogCiBX
ZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxs
U2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmgKaW5kZXggZDI4ZDg1YmE0ZTI4OTBiOGNkMGEyNjVkMGM4ZWM3
ODE5NDFlY2NhNS4uN2NkZGRjZmU3ZTQyMWYxYWNhNDUzNGYzN2M0NjNlNjI3NDcxM2MwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAog
Y2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGdWxsU2Ny
ZWVuTWFuYWdlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnVsbFNjcmVl
bk1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1h
bmFnZXIoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlLmNwcAppbmRleCAwNzI5ZGU3ZWM5ZGFkMzlhMjAwNjY0NDYxNWY0NzRkMTBj
YWY2ZTMwLi4yZTc1OWRlY2VlMmFjMjRkYjI2OWU2MmY0YWViZTNhYzJhY2Y4YTExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApAQCAtNzUsOSAr
NzUsOSBAQCBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKFJhbgogICAgIHJldHVybiByYW5nZUhhbmRsZS5y
ZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Y3JlYXRlKFJhbmdlKiByYW5nZSkKK1JlZjxJbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUoUmFu
Z2UqIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZShyYW5nZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGUocmFuZ2UpKTsKIH0KIAogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6SW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZShSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgKaW5kZXggMTdkZWIyOTk4Y2M2YjA1YThmYTlkYTdl
OTQzYzQzNzRmZmFlMWI3Ny4uYWVlZjY5ZTJjYTRhMTY1YzYzMjc4MThkNTQyZjcwNDg0ZTgxMGFh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaApAQCAt
NTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UmFuZ2UqIGNvcmVSYW5nZSgpIGNv
bnN0OwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIHN0YXRpYyBSZWY8SW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CiAgICAgSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZShXZWJDb3JlOjpSYW5nZSopOwogCiAgICAgUmVmUHRyPFdlYkNv
cmU6OlJhbmdlPiBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdC5oCmluZGV4IGNjYmY5N2JkMjg0ZjkxOGY2MjcyZDMzYzRlNzEwNGU4NjBkMTBiMjQu
LmE0NGQwYjk2MjAwYjAyMzFlNmI5ZWE3MTFkYzA4YmJhMjQ1NzE2MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xh
c3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOwogCiBjbGFzcyBJbmplY3RlZEJ1
bmRsZUJhY2tGb3J3YXJkTGlzdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6OkJ1bmRsZUJhY2tGb3J3YXJkTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFn
ZSkKKyAgICBzdGF0aWMgUmVmPEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUo
V2ViUGFnZSogcGFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0
ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QocGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdChwYWdlKSk7CiAgICAgfQogCiAgICAg
dm9pZCBkZXRhY2goKSB7IG1fcGFnZSA9IDA7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254994</attachid>
            <date>2015-06-16 18:56:47 -0700</date>
            <delta_ts>2015-06-16 20:34:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146001-20150617105613.patch</filename>
            <type>text/plain</type>
            <size>67376</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTY1NmYzYWZmOWI2MjI4
NjM0NjI1NGY1ZDUxMjE1YzBjODVlNWQxZi4uNTU2MDFiOTQwNzQ1YmY4MDU0NjkxNzQ3ZWZkODhj
ZmUxZWE4OThmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wNi0xNiAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NjAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIEFzIHN0ZXAgdG8gcmVtb3ZlIFBhc3NSZWZQdHIsIHRoaXMgcGF0Y2gg
cmVkdWNlcyB1c2Ugb2YgUGFzc1JlZlB0ciBpbiBXZWJLaXQyLgorICAgICAgICBJZiBmdW5jdGlv
biBjYW4ndCByZXR1cm4gbnVsbHB0ciwgUGFzc1JlZlB0ciBpcyBjaGFuZ2VkIHdpdGggUmVmLiBJ
ZiBub3QsIHRoZSBmdW5jdGlvbgorICAgICAgICByZXR1cm5zIFJlZlB0ci4KKworICAgICAgICAq
IERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVl
SURCRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0
ZSk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURC
RGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNz
L1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJTnVtYmVyLmg6CisgICAgICAgIChB
UEk6Ok51bWJlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3Jp
Z2luLmg6CisgICAgICAgIChBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKToK
KyAgICAgICAgKEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSk6CisgICAgICAgICogU2hhcmVk
L0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKEFQSTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmFkb3B0KToKKyAgICAgICAgKiBTaGFyZWQvQVBJV2ViQXJjaGl2ZS5oOgorICAgICAgICAq
IFNoYXJlZC9BUElXZWJBcmNoaXZlLm1tOgorICAgICAgICAoQVBJOjpXZWJBcmNoaXZlOjpjcmVh
dGUpOgorICAgICAgICAqIFNoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tOgorICAgICAgICAoQVBJOjpXZWJBcmNo
aXZlUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogU2hhcmVkL0FzeW5jUmVxdWVzdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmg6Cisg
ICAgICAgIChFd2tVcmxSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrVXJsUmVzcG9uc2U6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVx
dWVzdF9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxTY2hlbWVSZXF1ZXN0OjpjcmVhdGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a193aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5o
OgorICAgICAgICAoRXdrV2luZG93RmVhdHVyZXM6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX29iamVjdC5jcHA6CisgICAgICAgIChUZXN0RXdr
T2JqZWN0MTo6Y3JlYXRlKToKKyAgICAgICAgKFRlc3RFd2tPYmplY3QyOjpjcmVhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhdHRlcnlQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0Q29s
b3JDaG9vc2VyOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdl
b2xvY2F0aW9uUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRp
b25Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92
aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJl
cXVlc3QuaDoKKyAgICAgICAgKFdlYktpdDo6SFRUUFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2NyaXB0VmFsdWVDYWxsYmFj
ayk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlicmF0aW9uUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlZpYnJhdGlvblByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0
cmlidXRlcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvclBpY2tlckd0azo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbG9y
UGlja2VyR3RrLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5
R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGs6OmNyZWF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9W
aWV3U25hcHNob3RTdG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVh
dGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVBy
b3h5TWFjLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5TWFjOjpjcmVhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5
QmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1h
bmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00v
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSk6CisK
IDIwMTUtMDYtMTYgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBHZXQgcmlkIG9mIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFW
ZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNWY4MjIzMGE5NzIy
MjFlZjNjNDUwOWI4ZDNiODhhMDUzYjBlYWJiNy4uYmM5NmRlMGY3MzlhMDAxOGExOTE3NzExZWM2
NTZiYThiYTMxNTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTM1
LDkgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8RGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uPiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitS
ZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIp
KTsKIH0KIAogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDU5YzQwZDM3MzI5Yjhi
YzgzNzIwMzNlMzgwNWM5MjZlZmExNjQzYjguLjE1MDZlYWJiOTAzY2JjZDBmNjNhNzdiMWE5MDQ1
Y2FjNWI0NmJhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTM4LDcgKzM4
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bj4sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHVibGljIElQQzo6TWVzc2FnZVNl
bmRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICBz
dGF0aWMgUmVmPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllcik7CiAgICAgfkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bigpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbi5oCmluZGV4IGI4MDE0MGIwNjc2NDM4YTdkMTZiMjUxZjVhMGUyOWRjYzI4NTNjZmQu
LjJhMjFhMjBkYjM5M2M5NTNlODMxN2RlODIxNTgwZGI5YzYzNTllYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5oCkBAIC00Nyw5ICs0Nyw5IEBAIGNsYXNz
IFVuaXF1ZUlEQkRhdGFiYXNlOwogCiBjbGFzcyBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4sIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gY3JlYXRlKERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisg
ICAgc3RhdGljIFJlZjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjcmVhdGUoRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbihjb25uZWN0aW9uLCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhYmFzZVByb2Nlc3NJ
REJDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCB+RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9V
bmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDM3ZDU1NzYxMDliNzUyM2YwY2RmZGIwZGM2YjkzNDMx
MmUxN2E1MjQuLmEyMDQyNTlmZDg1YmEzOGY0MjAzYzUyYmM5YWVlYjVhOTg0NmM0MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURC
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTY4LDkgKzY4LDkgQEAgZW51bSBjbGFzcyBVbmlxdWVJ
REJEYXRhYmFzZVNodXRkb3duVHlwZSB7CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFVuaXF1ZUlEQkRhdGFiYXNlPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2U+IGNyZWF0ZShjb25zdCBVbmlx
dWVJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCisgICAgc3RhdGljIFJlZjxVbmlx
dWVJREJEYXRhYmFzZT4gY3JlYXRlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYg
aWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVW5pcXVlSURC
RGF0YWJhc2UoaWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVbmlx
dWVJREJEYXRhYmFzZShpZGVudGlmaWVyKSk7CiAgICAgfQogCiAgICAgflVuaXF1ZUlEQkRhdGFi
YXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGUuaAppbmRleCA5OWMyOGFmZmQxNGYzZDA5MmMwYjNkNTVkOTk3
M2UyODc5NjM0YzMwLi4xMGVjODg2NGI4NWE4ZTJlYmQxZDVlOWM4MTE5ZWFjMTVjZDAxOTVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlLmgKQEAgLTUxLDkgKzUxLDkgQEAgY2xhc3MgU1FMaXRlSURCVHJhbnNh
Y3Rpb247CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlIGZpbmFs
IDogcHVibGljIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZT4gY3JlYXRlKGNv
bnN0IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZURpcmVjdG9yeSkKKyAgICBzdGF0aWMgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlPiBjcmVhdGUoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZShp
ZGVudGlmaWVyLCBkYXRhYmFzZURpcmVjdG9yeSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZShpZGVudGlmaWVyLCBkYXRh
YmFzZURpcmVjdG9yeSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflVuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
YWY4ZWFhYjc3YjY1YzM2MjA0NWMyYmRhMDg3YTQ0NDFhNzZiMmY2My4uZDFmZmVlMzgwZmRlNjcz
OWUzYTkyNTI5OGQ1Yjc2NjM0NThjYjhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtNDcsOSArNDcsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorUmVmPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvbklkZW50aWZpZXIpKTsKIH0KIAogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CmluZGV4IDM2NzhjMmNlYTIwNmIyMzJiOTAxY2ZjZGY5Yzc0ODZmMDA0NDViNzMuLjMyYTMxMDU4
N2QzMjVlYjkxY2RkYWU2NDVmNjViNmViZDFjN2I2ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaApAQCAtNDgsNyArNDgsNyBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50
aWZpZXI7CiAKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIDogcHVibGljIFJl
ZkNvdW50ZWQ8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+LCBJUEM6OkNvbm5lY3Rpb246
OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAg
IHN0YXRpYyBSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IGNyZWF0ZShJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDk5YTk5MmE1
ZjUxNzczZWNhN2YyODgwNjBjNDg1ZDM2YWI1MzFjZTcuLjMyN2YyYzMwODAwNjEyNzM1ZTdiOTUz
YWJjMGIxYzQ4NmYyZTdhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KQorICAgIHN0YXRpYyBSZWY8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dChzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpKTsKICAgICB9CiAgICAgdmlydHVhbCB+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcAppbmRleCAwZmUzNWQwMTBlYmUyM2FiMmM4YjE4ZDAzMTQ5MTI0OTE1YTI1
NzUyLi5hYjQwMjU2NzUzZmRlZGZlODliOTFkYjQzYzkyNmNiMGJjMzg1YjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cApAQCAtNDYsOSArNDYsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFdlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyKQorUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlByb2Nlc3NDb25uZWN0aW9uKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKIH0KIAogV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246On5XZWJQcm9jZXNzQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTIyMWY5NTlkMjNiN2Fj
YjUxNWJhNDdmMGM5NDJmZWE2YjEwMjVmNy4uYmIzMzE3YzkzNWNhNDc1N2IxN2EyMTdlYmYyZDNi
OWJiYjcxNTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDQsNyArNDQsNyBAQCBzdHJ1Y3QgUGx1Z2luQ3JlYXRp
b25QYXJhbWV0ZXJzOwogCiBjbGFzcyBXZWJQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYlByb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBjcmVh
dGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmUHRyPFdlYlBy
b2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAg
ICB2aXJ0dWFsIH5XZWJQcm9jZXNzQ29ubmVjdGlvbigpOwogCiAgICAgSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElOdW1iZXIuaAppbmRleCAwMmE0ZGE5N2ZmMTg1YWFlMzMxOTBm
OTZlZmVhZDY0NTE0OTE1ZjJiLi5kM2M3ZmQwYjdhYjlkNGUwMWI4YjNkMzA3NzliZDVmNTA3ZmZk
MDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJTnVtYmVyLmgKQEAgLTM2LDkgKzM2LDkg
QEAgbmFtZXNwYWNlIEFQSSB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBOdW1iZXJUeXBlLCBBUEk6Ok9i
amVjdDo6VHlwZSBBUElPYmplY3RUeXBlPgogY2xhc3MgTnVtYmVyIDogcHVibGljIE9iamVjdElt
cGw8QVBJT2JqZWN0VHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE51bWJl
cj4gY3JlYXRlKE51bWJlclR5cGUgdmFsdWUpCisgICAgc3RhdGljIFJlZjxOdW1iZXI+IGNyZWF0
ZShOdW1iZXJUeXBlIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBO
dW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTnVtYmVyKHZhbHVl
KSk7CiAgICAgfQogCiAgICAgTnVtYmVyVHlwZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFs
dWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlP
cmlnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4uaApp
bmRleCBjNzU4MDI1ODA4MGJjMTU2ZWVhMTA1YTA2ZDBlYTgzMzkyNWIyMjNmLi5hMzU1YjhhMWVi
MmMwMjRkYTRkY2EwNGM5N2Q1YzljZGVlYjBkOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oCkBAIC0zNCwyMCArMzQsMjAgQEAgbmFtZXNwYWNl
IEFQSSB7CiAKIGNsYXNzIFNlY3VyaXR5T3JpZ2luIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxB
UEk6Ok9iamVjdDo6VHlwZTo6U2VjdXJpdHlPcmlnaW4+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBXVEY6OlN0
cmluZyYgc3RyaW5nKQorICAgIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZy
b21TdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmIHN0cmluZykKICAgICB7CiAgICAgICAgIHJldHVy
biBjcmVhdGUoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc3RyaW5n
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0
ZShjb25zdCBXVEY6OlN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFdURjo6U3RyaW5nJiBob3N0LCBp
bnQgcG9ydCkKKyAgICBzdGF0aWMgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29uc3Qg
V1RGOjpTdHJpbmcmIHByb3RvY29sLCBjb25zdCBXVEY6OlN0cmluZyYgaG9zdCwgaW50IHBvcnQp
CiAgICAgewogICAgICAgICByZXR1cm4gY3JlYXRlKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpj
cmVhdGUocHJvdG9jb2wsIGhvc3QsIHBvcnQpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luKQorICAgIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdp
bikKICAgICB7CiAgICAgICAgIGlmICghc2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKSk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaApp
bmRleCBjYzA1Nzg4ODRkNDU2YmJiM2U5ODRkMzhiMGUzMWM1NzQzODRkOTQxLi40ZTdjMmUwY2U2
NTcwYjc1NjUxODNjNTEzZTgyN2M0OTA2MTc5YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTM2LDIyICszNiwy
MiBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNl
cmlhbGl6ZWRWYWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVk
VmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShzZXJpYWxpemVkVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VyaWFsaXplZFNjcmlwdFZhbHVlKHNlcmlhbGl6ZWRWYWx1ZSkpOwogICAgIH0KICAgICAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQor
ICAgIHN0YXRpYyBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKICAg
ICB7CiAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlh
bGl6ZWRWYWx1ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnRl
eHQsIHZhbHVlLCBleGNlcHRpb24pOwogICAgICAgICBpZiAoIXNlcmlhbGl6ZWRWYWx1ZSkKLSAg
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkVmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0
VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBi
dWZmZXIpCisgICAgc3RhdGljIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGFkb3B0KFZlY3Rv
cjx1aW50OF90PiYgYnVmZmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9w
dChidWZmZXIpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KGJ1ZmZlcikpKTsK
ICAgICB9CiAgICAgCiAgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSVdlYkFyY2hpdmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNo
aXZlLmgKaW5kZXggMTZlODE3ZGQyNjlhNDViZDg2OTMwZmFiNDlkNjYyZmJmMDNjNTg3NC4uZDk2
YjU5NmRhYmZiZTkwNjhhYzUzNDEwNjg3YmZhMmQxODYxOGIyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJV2ViQXJjaGl2ZS5oCkBAIC01MCwxMCArNTAsMTAgQEAgY2xhc3MgV2ViQXJjaGl2ZSA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OldlYkFyY2hpdmU+IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJBcmNoaXZlKCk7CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJBcmNoaXZlPiBjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2Us
IFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQSTo6QXJy
YXk+IHN1YmZyYW1lQXJjaGl2ZXMpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+
IGNyZWF0ZShBUEk6OkRhdGEqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBj
cmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlPik7Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViQXJjaGl2ZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CisgICAgc3Rh
dGljIFJlZjxXZWJBcmNoaXZlPiBjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3Vy
Y2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQSTo6
QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3Jl
YXRlKEFQSTo6RGF0YSopOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZT4gY3JlYXRlKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOworICAgIHN0YXRpYyBSZWY8V2ViQXJj
aGl2ZT4gY3JlYXRlKFdlYkNvcmU6OlJhbmdlKik7CiAKICAgICBXZWJBcmNoaXZlUmVzb3VyY2Uq
IG1haW5SZXNvdXJjZSgpOwogICAgIEFQSTo6QXJyYXkqIHN1YnJlc291cmNlcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5tbQppbmRleCA2NzM3NjQ1YjdkNmYxZjQ4OWMyN2Y1
MTI4NGE1MDdmMmMxYzZmZmM5Li5hYzAwNzg5YjA2ZmZkMDNhNjA0MjI3NjMxMjQ4MWUwMWZiZGUw
OWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5tbQpAQCAtMzgsMjQgKzM4
LDI0IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgQVBJIHsKIAotUGFz
c1JlZlB0cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNl
KiBtYWluUmVzb3VyY2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNz
UmVmUHRyPEFQSTo6QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpCitSZWY8V2ViQXJjaGl2ZT4gV2Vi
QXJjaGl2ZTo6Y3JlYXRlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVm
UHRyPEFQSTo6QXJyYXk+IHN1YnJlc291cmNlcywgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJm
cmFtZUFyY2hpdmVzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZShtYWlu
UmVzb3VyY2UsIHN1YnJlc291cmNlcywgc3ViZnJhbWVBcmNoaXZlcykpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkFyY2hpdmUobWFpblJlc291cmNlLCBzdWJyZXNvdXJjZXMsIHN1YmZy
YW1lQXJjaGl2ZXMpKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpj
cmVhdGUoQVBJOjpEYXRhKiBkYXRhKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0
ZShBUEk6OkRhdGEqIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcmNoaXZl
KGRhdGEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlKGRhdGEpKTsKIH0K
IAotUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUGFzc1JlZlB0cjxM
ZWdhY3lXZWJBcmNoaXZlPiBsZWdhY3lXZWJBcmNoaXZlKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFy
Y2hpdmU6OmNyZWF0ZShQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGxlZ2FjeVdlYkFyY2hp
dmUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcmNoaXZlKGxlZ2FjeVdlYkFyY2hp
dmUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZlKGxlZ2FjeVdlYkFyY2hp
dmUpKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJBcmNoaXZlPiBXZWJBcmNoaXZlOjpjcmVhdGUoUmFu
Z2UqIHJhbmdlKQorUmVmPFdlYkFyY2hpdmU+IFdlYkFyY2hpdmU6OmNyZWF0ZShSYW5nZSogcmFu
Z2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcmNoaXZlKExlZ2FjeVdlYkFyY2hp
dmU6OmNyZWF0ZShyYW5nZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBcmNoaXZl
KExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShyYW5nZSkpKTsKIH0KIAogV2ViQXJjaGl2ZTo6V2Vi
QXJjaGl2ZShXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0cjxBUEk6
OkFycmF5PiBzdWJyZXNvdXJjZXMsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3ViZnJhbWVBcmNo
aXZlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UuaApp
bmRleCA3M2NiZjU2ZTNhYjhkYWY5ZDRmNGFlZGRhYTQwMjk4NmQ4YmRlM2IyLi4xZWI5MjY0YjNl
ZmQ4NzU3OTNlNWJmYTRkOWU0OGE3ZjliZjU2OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5oCkBAIC00OCw4ICs0OCw4IEBAIGNsYXNzIFdlYkFy
Y2hpdmVSZXNvdXJjZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6
OldlYkFyY2hpdmVSCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQXJjaGl2ZVJlc291cmNlKCk7
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShBUEk6
OkRhdGEqLCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0RW5jb2RpbmcpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmVS
ZXNvdXJjZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPik7Cisg
ICAgc3RhdGljIFJlZjxXZWJBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShBUEk6OkRhdGEqLCBjb25z
dCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
RW5jb2RpbmcpOworICAgIHN0YXRpYyBSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoUGFz
c1JlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KTsKIAogICAgIFJlZjxBUEk6OkRhdGE+
IGRhdGEoKTsKICAgICBTdHJpbmcgVVJMKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SVdlYkFyY2hpdmVSZXNvdXJjZS5tbQppbmRleCA0NTA0NTVlZjExNDlmZjZhNGJkNWEzZjQ5OTg3
NzRjODFhN2NmODYzLi45ZTM4M2UxMTVhZWFkZTNlYjE2ODlkZDFhNDY2ZjE2M2E1Y2YxYTQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0KQEAg
LTM3LDE0ICszNywxNCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIEFQ
SSB7CiAKLVBhc3NSZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6
OmNyZWF0ZShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcm
IE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZykKK1JlZjxXZWJBcmNoaXZlUmVz
b3VyY2U+IFdlYkFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSwgY29uc3Qg
U3RyaW5nJiBVUkwsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVu
Y29kaW5nKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXJjaGl2ZVJlc291cmNlKGRh
dGEsIFVSTCwgTUlNRVR5cGUsIHRleHRFbmNvZGluZykpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkFyY2hpdmVSZXNvdXJjZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0RW5jb2Rpbmcp
KTsKIH0KIAotUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IFdlYkFyY2hpdmVSZXNvdXJj
ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBhcmNoaXZlUmVzb3VyY2UpCitS
ZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShQYXNzUmVm
UHRyPEFyY2hpdmVSZXNvdXJjZT4gYXJjaGl2ZVJlc291cmNlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQXJjaGl2ZVJlc291cmNlKGFyY2hpdmVSZXNvdXJjZSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkFyY2hpdmVSZXNvdXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKIH0K
IAogV2ViQXJjaGl2ZVJlc291cmNlOjpXZWJBcmNoaXZlUmVzb3VyY2UoQVBJOjpEYXRhKiBkYXRh
LCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0RW5jb2RpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmgKaW5kZXggYmZk
ZTE5ODQ2MTQ3MTQ4ZmZmODlhMTQ4ZDg3MTc0NmM2YTY2ZGUzMS4uZTEwNmQ1YjhhMDQ4Y2I3ZWM4
OWEwOTdiMzY2ZjRiZGRhYjQyYTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FzeW5jUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3Qu
aApAQCAtNjAsMTQgKzYwLDE0IEBAIGNsYXNzIEFzeW5jUmVxdWVzdEltcGwgZmluYWwgOiBwdWJs
aWMgQXN5bmNSZXF1ZXN0IHsKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2lu
ZyBBcmd1bWVudFR5cGUgPSB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfaW50ZWdy
YWw8VD46OnZhbHVlLCBULCBjb25zdCBUJj46OnR5cGU7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBc3luY1JlcXVlc3Q+IGNyZWF0ZShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFyZ3VtZW50VHlwZTxB
cmd1bWVudHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIpCisgICAgc3RhdGljIFJlZjxBc3luY1Jl
cXVlc3Q+IGNyZWF0ZShzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJndW1lbnRUeXBlPEFyZ3VtZW50cz4u
Li4pPiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIG51bGxwdHIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXN5bmNSZXF1
ZXN0SW1wbDxBcmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIG51bGxw
dHIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBc3luY1JlcXVlc3Q+IGNyZWF0
ZShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFyZ3VtZW50VHlwZTxBcmd1bWVudHM+Li4uKT4gY29tcGxl
dGlvbkhhbmRsZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYWJvcnRIYW5kbGVyKQorICAgIHN0
YXRpYyBSZWY8QXN5bmNSZXF1ZXN0PiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lkKEFyZ3VtZW50
VHlwZTxBcmd1bWVudHM+Li4uKT4gY29tcGxldGlvbkhhbmRsZXIsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBhYm9ydEhhbmRsZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFz
eW5jUmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBXVEY6Om1vdmUoYWJvcnRIYW5kbGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBc3luY1JlcXVlc3RJbXBsPEFyZ3VtZW50cy4uLj4oV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgV1RGOjptb3ZlKGFib3J0SGFuZGxlcikpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5B
c3luY1JlcXVlc3RJbXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDk0NWZjODM1MzU4MzEw
NTFiMWI5YWQ4ODc2ODgzOTIyNDE0OWQyNzkuLjM3Njc1NWY3Yzg2YmUwMjkxMWFkZDFkYzdlYjc2
ZmJmYTk2MGQ4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtNDAsOSArNDAsOSBAQCBjbGFz
cyBFd2tVcmxSZXF1ZXN0IDogcHVibGljIEV3a09iamVjdCB7CiBwdWJsaWM6CiAgICAgRVdLX09C
SkVDVF9ERUNMQVJFKEV3a1VybFJlcXVlc3QpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tV
cmxSZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCisgICAgc3RhdGlj
IFJlZjxFd2tVcmxSZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlcXVlc3QocmVxdWVzdFJl
ZikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFd2tVcmxSZXF1ZXN0KHJlcXVlc3RS
ZWYpKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyKiB1cmwoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9w
cml2YXRlLmgKaW5kZXggNGVhODI3NDk4MzM1NzUxMzFmNTMzYjBjYmFjYzQ2MDBlNTMxNDhjMC4u
MmZmZGI3YjIyMDBiOGZlZGM0Zjg3NTJmODkwYzYyODBkOTJlMThjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9w
cml2YXRlLmgKQEAgLTQwLDEwICs0MCwxMCBAQCBjbGFzcyBFd2tVcmxSZXNwb25zZSA6IHB1Ymxp
YyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxSZXNw
b25zZSkKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1VybFJlc3BvbnNlPiBjcmVhdGUoV0tV
UkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlKQorICAgIHN0YXRpYyBSZWZQdHI8RXdrVXJsUmVzcG9u
c2U+IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9uc2UpCiAgICAgewogICAgICAgICBp
ZiAoIXdrUmVzcG9uc2UpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJsUmVzcG9uc2Uo
d2tSZXNwb25zZSkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKaW5k
ZXggOWE0MDRjNzA5YTRkNTU1NGJhMTcyMWI0MDI1MGJlZGZiMzVjOGJhNy4uYTM5ODkyYjQwZmI1
ZWZiOGU5Mjc3MDRhYmM3ZTViODk3YmRmZTUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9w
cml2YXRlLmgKQEAgLTQxLDEwICs0MSwxMCBAQCBjbGFzcyBFd2tVcmxTY2hlbWVSZXF1ZXN0IDog
cHVibGljIEV3a09iamVjdCB7CiBwdWJsaWM6CiAgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a1Vy
bFNjaGVtZVJlcXVlc3QpCiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxTY2hlbWVSZXF1
ZXN0PiBjcmVhdGUoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2Vy
LCBBUEk6OlVSTFJlcXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBz
dGF0aWMgUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1NvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVz
dCwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIHsKICAgICAgICAgaWYgKCFtYW5hZ2VyIHx8ICF1
cmxSZXF1ZXN0KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFNjaGVtZVJlcXVlc3Qo
bWFuYWdlciwgdXJsUmVxdWVzdCwgcmVxdWVzdElEKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2ZlYXR1cmVz
X3ByaXZhdGUuaAppbmRleCBlNTIwMTY3M2FmYjUyNGYxNGU2YjcyMDBjNGQwYWYyYmMxYzVhMmNm
Li45NTJhNzc0MWUxZDBkNzQyOWIxMTMzYWI3Y2I3ZmNmYjBmMGIxYjQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2luZG93X2Zl
YXR1cmVzX3ByaXZhdGUuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBFd2tXaW5kb3dGZWF0dXJl
cyA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShF
d2tXaW5kb3dGZWF0dXJlcykKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1dpbmRvd0ZlYXR1
cmVzPiBjcmVhdGUoV0tEaWN0aW9uYXJ5UmVmIHdpbmRvd0ZlYXR1cmVzLCBFd2tWaWV3KiB2aWV3
SW1wbCkKKyAgICBzdGF0aWMgUmVmPEV3a1dpbmRvd0ZlYXR1cmVzPiBjcmVhdGUoV0tEaWN0aW9u
YXJ5UmVmIHdpbmRvd0ZlYXR1cmVzLCBFd2tWaWV3KiB2aWV3SW1wbCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRXdrV2luZG93RmVhdHVyZXMod2luZG93RmVhdHVyZXMsIHZp
ZXdJbXBsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV3a1dpbmRvd0ZlYXR1cmVz
KHdpbmRvd0ZlYXR1cmVzLCB2aWV3SW1wbCkpOwogICAgIH0KIAogICAgIGNvbnN0IEV2YXNfQ29v
cmRfUmVjdGFuZ2xlJiBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml9vYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX29iamVjdC5jcHAKaW5kZXggNzBjZWVhNWU1ZDFiNjIwM2FmNTJkNzg2MDQ5MzNkM2I3
YWMyNDMxNS4uY2NkMmMwNWVlZWEwZWQ0OWVmNjg0MDJjNzgzYTMzM2JkMTdkMTZlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX29i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX29iamVjdC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJVbml0VGVzdFV0
aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oIgogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5o
IgogI2luY2x1ZGUgImV3a19vYmplY3RfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBFV0syVW5pdFRlc3Q7CiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwpAQCAtNDAsMTAgKzM5LDEwIEBAIGNsYXNzIFRlc3RFd2tPYmplY3QxIDogcHVibGljIEV3
a09iamVjdCB7CiBwdWJsaWM6CiAgICAgRVdLX09CSkVDVF9ERUNMQVJFKFRlc3RFd2tPYmplY3Qp
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0RXdrT2JqZWN0MT4gY3JlYXRlKCkKKyAgICBz
dGF0aWMgUmVmPFRlc3RFd2tPYmplY3QxPiBjcmVhdGUoKQogICAgIHsKICAgICAgICAgd2FzRGVs
ZXRlZCA9IGZhbHNlOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RFd2tPYmplY3Qx
KCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXN0RXdrT2JqZWN0MSgpKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgYm9vbCB3YXNEZWxldGVkOyAvLyBXZSBhbHdheXMgdGVzdCBvbmx5
IG9uZSBpbnN0YW5jZSBvZiBUZXN0RXdrT2JqZWN0LgpAQCAtNjAsOSArNTksOSBAQCBjbGFzcyBU
ZXN0RXdrT2JqZWN0MiA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpF
Q1RfREVDTEFSRShUZXN0RXdrT2JqZWN0MikKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRlc3RF
d2tPYmplY3QyPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8VGVzdEV3a09iamVjdDI+IGNyZWF0
ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RFd2tPYmplY3QyKCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXN0RXdrT2JqZWN0MigpKTsKICAgICB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRCYXR0ZXJ5UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QmF0dGVyeVByb3ZpZGVyLmNwcAppbmRleCAzYzFlNGM2YTg2NzAwOGQ1NDY0NjQ5ZWEz
NzcyMzkxNDZlNGZiMjlhLi42YjliNGNiZWY1NjdlMDU5ZmFlYWUyZTY4YzUyNjU2Njc3ODRjYmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0
ZXJ5UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEJhdHRlcnlQcm92aWRlci5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgc3RhdGljIHZvaWQgc3Rv
cFVwZGF0aW5nQ2FsbGJhY2soV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29u
c3Qgdm9pZCoKICAgICB0b0JhdHRlcnlQcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5n
KCk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiBXZWJLaXRCYXR0ZXJ5
UHJvdmlkZXI6OmNyZWF0ZShXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikK
K1JlZjxXZWJLaXRCYXR0ZXJ5UHJvdmlkZXI+IFdlYktpdEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRl
KFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqIGJhdHRlcnlNYW5hZ2VyKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViS2l0QmF0dGVyeVByb3ZpZGVyKGJhdHRlcnlNYW5hZ2VyKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0QmF0dGVyeVByb3ZpZGVyKGJhdHRlcnlNYW5hZ2Vy
KSk7CiB9CiAKIFdlYktpdEJhdHRlcnlQcm92aWRlcjo6V2ViS2l0QmF0dGVyeVByb3ZpZGVyKFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHkqIGJhdHRlcnlNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmF0dGVyeVByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaAppbmRl
eCA3ZjA1ZGI2YzcxNjYxNmEwNzMyMDZkM2U3Yzk5YjI2ZWFkYmY0NzQ3Li5lMmU5NGJmMDQ0NzMz
YzQ4NjdiZTc4OTY0MDE1Njk4NDgxN2EzZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYXR0ZXJ5UHJvdmlkZXIuaApAQCAtMzIsNyAr
MzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViS2l0QmF0dGVyeVByb3ZpZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiwgcHVibGljIFdlYkNv
cmU6OkJhdHRlcnlQcm92aWRlclVQb3dlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiBjcmVhdGUoV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eSopOworICAgIHN0YXRpYyBSZWY8V2ViS2l0QmF0dGVyeVByb3ZpZGVyPiBjcmVhdGUoV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eSopOwogICAgIHZpcnR1YWwgfldlYktpdEJhdHRlcnlQcm92aWRl
cigpOwogCiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmNwcAppbmRleCBiMjZi
YWI0YzdjZWZmYjQ3MmJiNWU1YzliNTQ4YjI0MDZjM2Y2MGUwLi43MTkxOWQ4ZjZmNDlhNDNjMTQy
YjY5YmI1NjdmMTU3MGFmMjgzNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9yQ2hvb3Nlci5jcHAKQEAgLTI5LDkgKzI5LDkgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVm
UHRyPFdlYktpdENvbG9yQ2hvb3Nlcj4gV2ViS2l0Q29sb3JDaG9vc2VyOjpjcmVhdGUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiByZWN0KQorUmVmPFdlYktpdENvbG9yQ2hvb3Nlcj4gV2ViS2l0Q29s
b3JDaG9vc2VyOjpjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViS2l0Q29sb3JDaG9vc2VyKHBhZ2UsIGluaXRpYWxDb2xvciwg
cmVjdCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdENvbG9yQ2hvb3NlcihwYWdl
LCBpbml0aWFsQ29sb3IsIHJlY3QpKTsKIH0KIAogV2ViS2l0Q29sb3JDaG9vc2VyOjpXZWJLaXRD
b2xvckNob29zZXIoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9y
LCBjb25zdCBJbnRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXIuaAppbmRleCAyNGE5NDFhNTc1NjBjMWFlZGFk
NGE0NjQwNDY5MjY0ZjZmMGYzOTIzLi5mMmJmMzVlZGYwYjEwNjA4YTJhNDU5ODFkZGIxZWE4MTUx
YmM0ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRDb2xvckNob29zZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRDb2xvckNob29zZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgV2ViS2l0Q29sb3JDaG9vc2VyIGZpbmFsIDogcHVibGljIFdlYkNvbG9yUGlja2Vy
R3RrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDb2xvckNob29zZXI+
IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKKyAgICBzdGF0aWMgUmVmPFdlYktpdENvbG9yQ2hvb3Nlcj4gY3JlYXRl
KFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpOwogICAgIHZpcnR1YWwgfldlYktpdENvbG9yQ2hvb3NlcigpOwogCiAgICAgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRS
ZWN0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCmluZGV4IGM4MTQ2MWJlYzU0N2QyZGYx
YWE5NzE4ZTM2OGIwNjVmYjllZTgwMGEuLjZhYzBmYmM5ODc4OTZiMzA3NmEyNDZmOTU1NTA0MDlk
Njg4ZWRjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCkBAIC01NCw5ICs1NCw5IEBA
IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6On5XZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKCkK
ICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKHRvQVBJKG1fZ2VvbG9jYXRpb25N
YW5hZ2VyLmdldCgpKSwgbnVsbHB0cik7CiB9CiAKLVBhc3NSZWZQdHI8V2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlcj4gV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIpCitSZWY8V2ViS2l0R2VvbG9jYXRp
b25Qcm92aWRlcj4gV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyKGdlb2xvY2F0aW9uTWFuYWdlcikpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoZ2VvbG9j
YXRpb25NYW5hZ2VyKSk7CiB9CiAKIFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6OldlYktpdEdl
b2xvY2F0aW9uUHJvdmlkZXIoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9u
TWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuaAppbmRleCBlNmJlM2VhYzJjZjhiZWFlZjNh
ZGFlOGYyNjViNGE0N2FlYjU0YWE4Li45MjU4NmNlMDVhNDk4ZDQ5ZDQyODNjZGQ0ZWZjYmRjMDE2
MGNhYjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRHZW9sb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgV2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI+LCBwdWJsaWMgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qcm92aWRlckdlb2NsdWVDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfldl
YktpdEdlb2xvY2F0aW9uUHJvdmlkZXIoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRH
ZW9sb2NhdGlvblByb3ZpZGVyPiBjcmVhdGUoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqKTsK
KyAgICBzdGF0aWMgUmVmPFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI+IGNyZWF0ZShXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSopOwogCiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAg
dm9pZCBzdG9wVXBkYXRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAppbmRleCBk
YmM4ZmQ4ZTYyOTY3NTExYjkyYmYyMDljOWYwZjZlODg5YjFjNmY3Li43NTc1ZGZlODk0MmEyMmE4
MTBkOGEyZDY1MTM0ZWU4YmQwNDRmMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
CkBAIC02MSw5ICs2MSw5IEBAIFdlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyOjp+V2ViS2l0Tm90
aWZpY2F0aW9uUHJvdmlkZXIoKQogewogfQogCi1QYXNzUmVmUHRyPFdlYktpdE5vdGlmaWNhdGlv
blByb3ZpZGVyPiBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSogbm90aWZpY2F0aW9uTWFuYWdlcikKK1JlZjxXZWJLaXROb3RpZmlj
YXRpb25Qcm92aWRlcj4gV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OmNyZWF0ZShXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkqIG5vdGlmaWNhdGlvbk1hbmFnZXIpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcihub3RpZmljYXRpb25NYW5h
Z2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlk
ZXIobm90aWZpY2F0aW9uTWFuYWdlcikpOwogfQogCiBXZWJLaXROb3RpZmljYXRpb25Qcm92aWRl
cjo6V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
KiBub3RpZmljYXRpb25NYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmgKaW5kZXggMmRi
YzI2ZGJmYWU0NjYxOGNmNjU2MDdkZTY3YzE4OTQ5Njc1Y2YwMi4uYWM4NzRiODMzMmZmMDU4NGM5
NzFjZThlMTlhMTQ5NmEwM2NhY2I5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViS2l0Tm90aWZpY2F0aW9u
UHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXROb3RpZmljYXRpb25Qcm92aWRlcj4g
ewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyKCk7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXI+IGNyZWF0ZShX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKKyAgICBzdGF0aWMgUmVmPFdlYktpdE5vdGlm
aWNhdGlvblByb3ZpZGVyPiBjcmVhdGUoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Kik7CiAK
ICAgICB2b2lkIHNob3coV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViTm90aWZpY2F0aW9uJik7CiAg
ICAgdm9pZCBjYW5jZWwoY29uc3QgV2ViTm90aWZpY2F0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3Q2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXdD
bGllbnQuY3BwCmluZGV4IGQyMTU4MDczNDc5ODhiNTYyNDRlOGIwYjc3ZTBiMzFiNDQ1NTdkMjMu
LjVmOGMxMDcxZDRkY2ExM2I5MGY5MTBlY2ViZjFmYzUwZGEzZjM4YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXdDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dl
YlZpZXdDbGllbnQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBXZWJWaWV3Q2xpZW50Ojpk
aWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2ViVmlldyogdmlldywgY29uc3QgVmlld3BvcnRB
dHQKICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgV0tSZXRhaW5QdHI8V0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWY+IHdr
QXR0cmlidXRlcyA9IGFkb3B0V0sodG9BUEkoV2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpjcmVhdGUo
YXR0cmlidXRlcykubGVha1JlZigpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tWaWV3cG9ydEF0dHJp
YnV0ZXNSZWY+IHdrQXR0cmlidXRlcyA9IGFkb3B0V0sodG9BUEkoJldlYlZpZXdwb3J0QXR0cmli
dXRlczo6Y3JlYXRlKGF0dHJpYnV0ZXMpLmxlYWtSZWYoKSkpOwogICAgIG1fY2xpZW50LmRpZENo
YW5nZVZpZXdwb3J0QXR0cmlidXRlcyh0b0FQSSh2aWV3KSwgd2tBdHRyaWJ1dGVzLmdldCgpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5k
ZXggZWY3MThmZTJhODY5Yjg3ZWIzNGM1OTkyNTI0NjkzNmQ0YTZkYTUwMC4uMDNlNzI5NjVkYjk1
NzQ2YjlhNjRhMWJkNTY4YTYzYmI0NDQwMGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApA
QCAtMzUsOSArMzUsOSBAQCBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OwogCiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0X3QgZ2VvbG9jYXRpb25JRCkKKyAgICBzdGF0
aWMgUmVmPEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1hbmFnZXIsIHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCBnZW9sb2NhdGlvbklEKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSht
YW5hZ2VyLCBnZW9sb2NhdGlvbklEKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbGxvdygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVx
dWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9IVFRQUmVx
dWVzdC5oCmluZGV4IGVjZGExNGU5OWJjMDUxMzlmODQ1Mzk4NjMwYzY2YzM3NTk0MjkxZDQuLmZm
YjMxN2VjODFiMTI4Y2E4YWY4ZjUzN2M4NTEzMTZhOTA4YTUxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvSFRUUFJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL0hUVFBSZXF1ZXN0LmgKQEAg
LTQzLDggKzQzLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEhUVFBSZXF1ZXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8SFRUUFJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVFRQUmVxdWVzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEhUVFBS
ZXF1ZXN0KCkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRUUFJlcXVlc3Q+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHJlcXVlc3RNZXRob2QsIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBXZWJD
b3JlOjpIVFRQVmVyc2lvbiB2ZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSFRUUFJlcXVl
c3QocmVxdWVzdE1ldGhvZCwgdXJsLCB2ZXJzaW9uKSk7IH0KKyAgICBzdGF0aWMgUmVmPEhUVFBS
ZXF1ZXN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEhUVFBSZXF1ZXN0KCkpOyB9
CisgICAgc3RhdGljIFJlZjxIVFRQUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVxdWVz
dE1ldGhvZCwgY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIFdlYkNvcmU6OkhUVFBWZXJzaW9uIHZl
cnNpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRUUFJlcXVlc3QocmVxdWVzdE1ldGhvZCwg
dXJsLCB2ZXJzaW9uKSk7IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVFRQUmVxdWVzdD4gcGFy
c2VIVFRQUmVxdWVzdEZyb21CdWZmZXIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwg
U3RyaW5nJiBmYWlsdXJlUmVhc29uKTsKICAgICB2aXJ0dWFsIH5IVFRQUmVxdWVzdCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggMWYyYWM4ZWJjZDMyNmYxNDlkMDkz
ZTFkZmQzOWQwNzJkODc3NWM5YS4uZDBiYjIwNDIwNjM3ZmEzYTU5N2MzOTkzZmEwZWRjNzc3Njc1
YmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3Vw
L1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNDAsOSArNDAsOSBA
QCBjb25zdCBjaGFyKiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6c3VwcGxl
bWVudE5hbWUoKQogICAgIHJldHVybiAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIiOwogfQogCi1QYXNzUmVmUHRyPFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
PiBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKFdlYlByb2Nlc3NQ
b29sKiBwcm9jZXNzUG9vbCkKK1JlZjxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
cj4gV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2wpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcihwcm9jZXNzUG9vbCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKHByb2Nlc3NQb29s
KSk7CiB9CiAKIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpXZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcihXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaAppbmRleCA0ZTc3OTdmYTIyMmJiYzdlOTVjNmM3OTc0
ZmViOWIxOTNkZWUwNmM2Li5lMTQzMDZhMzg2MzRjMWY4NWU4NDczNzk2MmVlZmE5ZDhlOTUwYzZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3Mg
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgQVBJOjpPYmplY3RJ
bXBsPEFQSTo6T2JqZWN0OjoKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxl
bWVudE5hbWUoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqKTsKKyAgICBzdGF0aWMgUmVm
PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUHJvY2Vzc1Bv
b2wqKTsKICAgICB2aXJ0dWFsIH5XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcigp
OwogCiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXJDbGllbnRCYXNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ1NzkwYzA2
Njg0YWE5ZTZlZWQxNmIwZDY3MTQ3MmIxYTcwMjUyMmQuLjA5OGU0NWVlMmQxNmRmMGJmOTkyMzE4
ZmQwOGZjM2RkOTMxNTE0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHN0
YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNhbGxiYWNrSUQoKQogICAgIHJldHVybiArK2NhbGxiYWNr
SUQ7CiB9CiAKLVBhc3NSZWZQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gTmV0d29ya1Byb2Nlc3NQ
cm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKK1JlZjxOZXR3b3JrUHJv
Y2Vzc1Byb3h5PiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHBy
b2Nlc3NQb29sKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya1Byb2Nlc3NQcm94
eShwcm9jZXNzUG9vbCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9jZXNz
UHJveHkocHJvY2Vzc1Bvb2wpKTsKIH0KIAogTmV0d29ya1Byb2Nlc3NQcm94eTo6TmV0d29ya1By
b2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
NThlNTk2MGE0ZjBhZmMxYWY1MDA1NDNlZjU4MmM1YmZiNWQ5MGFmYi4uNmJkNWJmMjQ1Nzk2NGY2
YTE3MjZmNDlhYjNhYzkxZjljMjAzYTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNTQsNyArNTQsNyBA
QCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIE5ldHdv
cmtQcm9jZXNzUHJveHkgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vz
c1Rocm90dGxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0d29y
a1Byb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sJik7CisgICAgc3RhdGljIFJlZjxO
ZXR3b3JrUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29y
a1Byb2Nlc3NQcm94eSgpOwogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
UGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwCmluZGV4IDI1ZDM3ZGE0Yjk5NGI2ZDBjZGRiZTQyNTQ0MDI4M2FjMWUw
ZTY5YTUuLjIxMjg2MjdjNTJiMDI5YjQxMjExNjRjZDdhM2YzODkyOWE3NmQyZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTMwLDkgKzMwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCi1QYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0PiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdl
YktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgKm1hbmFnZXIs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorUmVmPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0PiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgKm1hbmFnZXIsIHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QobWFuYWdlciwgbm90aWZpY2F0aW9uSUQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChtYW5hZ2VyLCBub3RpZmlj
YXRpb25JRCkpOwogfQogCiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkqIG1hbmFnZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggZmRjNTI5NGVjMmJhNzc2NGYzYjVjZGMx
ODFhMmZmMzNjOGU5MzIzOS4uZTA0ODQwNjU5NDYzNDgwYzNlODA2MGNlNDJmMWNmMTI3ZmE3NDUw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OwogCiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBBUEk6Ok9i
amVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3Q+IGNyZWF0ZShOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSosIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAKICAgICB2b2lkIGFsbG93
KCk7CiAgICAgdm9pZCBkZW55KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCmluZGV4IGVhOTgxZDIzZDRlNWM4
MDk4ZWJkMTJmYThlMTkzNTRmN2QxYTU0MWMuLjVmZDNkYTcxODg1OTA5ZDI1NGM3NGY1NjM5MjQ5
YjNiZGQ4OWY4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCkBAIC00Myw5ICs0Myw5IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJOb3RpZmljYXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJ
bXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpOb3RpZmljYXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5n
JiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICBzdGF0aWMgUmVm
PFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3Qg
U3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJp
bmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJOb3RpZmljYXRpb24odGl0bGUsIGJvZHksIGljb25VUkwsIHRhZywgbGFuZywg
ZGlyLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNhdGlvbklEKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgaWNvblVSTCwgdGFnLCBsYW5n
LCBkaXIsIG9yaWdpblN0cmluZywgbm90aWZpY2F0aW9uSUQpKTsKICAgICB9CiAKICAgICBjb25z
dCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwZGM3M2NiOGJiZjRiNTlmZGI0NDBi
OTJkNWIzOGIxZDhlNGE5NDYzLi5iN2U0OWIwNjg2MzBhOWM2ODc1NTg0MmJiOTcwNjAzYTM1NjZj
ODkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDY1
Niw3ICs0NjU2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLAogICAgIGRhdGEucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShkYXRhUmVmZXJlbmNlLnNpemUoKSk7CiAgICAgZGF0YS5hcHBlbmQoZGF0
YVJlZmVyZW5jZS5kYXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKIAotICAgIGNhbGxiYWNr
LT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkgPyBBUEk6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YSkuZ2V0KCkgOiAwLCBoYWRFeGNlcHRpb24pOwor
ICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoZGF0YS5zaXplKCkg
PyBBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQoZGF0YSkucHRyKCkgOiBudWxscHRy
LCBoYWRFeGNlcHRpb24pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0ZWRQYWdlc0Nh
bGxiYWNrKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUgdG90YWxTY2Fs
ZUZhY3RvckZvclByaW50aW5nLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKaW5kZXggYTE3MzI0NzE1NWJjNTc5
MmU1YmI4NWJkYTQ1YjNjMTdmMDYzN2UxNS4uNDhkMjkwY2UzOTMxZGI1ODQ4OWEwOWNhZDZlZjdk
MDM4YzA0Y2MzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJh
dGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9u
UHJveHkuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNz
UmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRlKFdlYlBh
Z2VQcm94eSogcGFnZSkKK1JlZjxXZWJWaWJyYXRpb25Qcm94eT4gV2ViVmlicmF0aW9uUHJveHk6
OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJWaWJyYXRpb25Qcm94eShwYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVmli
cmF0aW9uUHJveHkocGFnZSkpOwogfQogCiBXZWJWaWJyYXRpb25Qcm94eTo6V2ViVmlicmF0aW9u
UHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuaAppbmRleCBiNzIwOTgxN2RmYzhiYzAwZDg0OTM0MmY3NGFlN2QyNTlk
ZDkwYjg4Li43Mzg1NjYwZDY3ZDI0NGY5MjJhY2Y2ZmIxYWU0YzRmOWI5MjBmNmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaApAQCAtMzksNyArMzks
NyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYlZpYnJhdGlvblByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VmlicmF0aW9uPiwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViVmlicmF0aW9uUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqKTsKKyAgICBzdGF0aWMgUmVm
PFdlYlZpYnJhdGlvblByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5Kik7CiAgICAgdmlydHVhbCB+
V2ViVmlicmF0aW9uUHJveHkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCmluZGV4IDBmNTJi
ODczNjMxNDBlMGZiZDM2ODEyZTAxODQxYTJlMjViZjI4ZjYuLmEzMTA2NWZlNGNkZDEyZmVjZTgz
NzBiNzRmZDIzYmU4YjJlNTBmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKQEAgLTM0LDkgKzM0LDkgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYlZpZXdwb3J0QXR0cmlidXRlcyA6IHB1YmxpYyBBUEk6Ok9iamVjdElt
cGw8QVBJOjpPYmplY3Q6OlR5cGU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZXdwb3J0QXR0cmlidXRlcz4gY3JlYXRlKGNvbnN0IFdl
YkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cmlidXRlcykKKyAgICBzdGF0aWMgUmVmPFdl
YlZpZXdwb3J0QXR0cmlidXRlcz4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmli
dXRlcyYgYXR0cmlidXRlcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViVmlld3BvcnRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIH5XZWJWaWV3cG9ydEF0dHJpYnV0ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5
NDM0Yjc4NjgwZDI2YzIzZmI2ZDQ3MWViZjdkYmU5ZmE0ODZjOGYzLi4xYWZhZmJhYWIxOGNmMGIw
OWZlYzQ2MjI3MjM5M2RmYzIxNjVhOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC01OCwxNCAr
NTgsMTQgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSWRlbnRpZmllcigpCiAgICAgcmV0dXJu
ICsraWRlbnRpZmllcjsKIH0KIAotUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRh
U3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQoKQorUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNp
dGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQoKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2Vic2l0ZURhdGFTdG9yZShnZW5lcmF0ZU5vblBlcnNpc3RlbnRTZXNzaW9uSUQoKSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoZ2VuZXJhdGVOb25Q
ZXJzaXN0ZW50U2Vzc2lvbklEKCkpKTsKIH0KIAotUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+IFdl
YnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCitSZWY8
V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKENvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3Rv
cmUoV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2Vic2l0ZURhdGFTdG9yZShXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpKTsKIH0KIAogV2Vic2l0
ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAppbmRleCA1ZTRjNzIyYjY1MzY1MTdhYTYyZDcwNjMzM2I1MmJjZDBiZWVk
M2ZhLi4zNmI2MGM3ZDQ0MmU5NGY4M2FlMjE5NGM3NzkzM2UxYTc1YjIwMjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKQEAgLTYyLDggKzYyLDggQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgbG9jYWxTdG9y
YWdlRGlyZWN0b3J5OwogICAgICAgICBTdHJpbmcgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeTsK
ICAgICB9OwotICAgIHN0YXRpYyBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVy
c2lzdGVudCgpOwotICAgIHN0YXRpYyBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENv
bmZpZ3VyYXRpb24pOworICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9u
UGVyc2lzdGVudCgpOworICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENv
bmZpZ3VyYXRpb24pOwogICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmUoKTsKIAogICAgIHVp
bnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKaW5k
ZXggYzRmNjU4MzA5NjQ3MDAyNmRmZTBmMTBlZDU4OTQ4NjEyOGI1NDMxMy4uMzJkZmU4MmVjZDZj
NjUyM2JhNTVmMDUzYTAyNDMwZWM0OGIxNzVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKQEAgLTM3LDkgKzM3LDkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRy
PFdlYkNvbG9yUGlja2VyR3RrPiBXZWJDb2xvclBpY2tlckd0azo6Y3JlYXRlKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYgcmVjdCkK
K1JlZjxXZWJDb2xvclBpY2tlckd0az4gV2ViQ29sb3JQaWNrZXJHdGs6OmNyZWF0ZShXZWJQYWdl
UHJveHkmIHBhZ2UsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlckd0ayhwYWdlLCBp
bml0aWFsQ29sb3IsIHJlY3QpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb2xvclBp
Y2tlckd0ayhwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QpKTsKIH0KIAogV2ViQ29sb3JQaWNrZXJH
dGs6OldlYkNvbG9yUGlja2VyR3RrKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29sb3ImIGlu
aXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmgKaW5kZXggNjcwMTgxNWYzYzNmZmIzMDcwNjNkOTg3
MGM1MzU5ZTlmNjhiZjNhOC4uMDVhODRkZTRiMDIxODM4Y2Q1YTk2NWQwYWJiYmY4ZWYxNGVlYjdj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tl
ckd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJH
dGsuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29s
b3JQaWNrZXJHdGsgOiBwdWJsaWMgV2ViQ29sb3JQaWNrZXIgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyR3RrPiBjcmVhdGUoV2ViUGFnZVByb3h5JiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgc3RhdGlj
IFJlZjxXZWJDb2xvclBpY2tlckd0az4gY3JlYXRlKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgfldlYkNv
bG9yUGlja2VyR3RrKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51
UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQ
cm94eUd0ay5oCmluZGV4IDRiNThmZDUyYWRkMThkNjg1ZjFkMzcwM2UxODU2YWEyZmRlNWM5ZGMu
LmE4MGViZjJjOTFkYjI2NTJkNjIyMmMzZGVhNTE5NDI0NTE1M2I0MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oCkBA
IC00MSw5ICs0MSw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgV2ViQ29udGV4dE1l
bnVQcm94eUd0ayA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5R3RrPiBjcmVhdGUoR3RrV2lkZ2V0
KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgc3RhdGljIFJlZjxXZWJDb250ZXh0
TWVudVByb3h5R3RrPiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkqIHBh
Z2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbnRleHRNZW51UHJv
eHlHdGsod2ViVmlldywgcGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJD
b250ZXh0TWVudVByb3h5R3RrKHdlYlZpZXcsIHBhZ2UpKTsKICAgICB9CiAgICAgfldlYkNvbnRl
eHRNZW51UHJveHlHdGsoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oCmluZGV4IGQ5MjAwMzk1OTdmYzA5ZWM5YTFhNzY5ZWU5
MGNhOTU4MWNiNzU0NDkuLjVmODBjZGY3YzIyZjI2NWVkZmE3ZDhiYzk0NDQzMWZjMjk0MDVmMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJv
eHlHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVBy
b3h5R3RrLmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBX
ZWJQb3B1cE1lbnVQcm94eUd0ayA6IHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHlHdGs+IGNyZWF0ZShHdGtX
aWRnZXQqIHdlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQqIGNsaWVudCkKKyAgICBz
dGF0aWMgUmVmPFdlYlBvcHVwTWVudVByb3h5R3RrPiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3
LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50KiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlBvcHVwTWVudVByb3h5R3RrKHdlYlZpZXcsIGNsaWVudCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJQb3B1cE1lbnVQcm94eUd0ayh3ZWJWaWV3
LCBjbGllbnQpKTsKICAgICB9CiAgICAgfldlYlBvcHVwTWVudVByb3h5R3RrKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAppbmRleCAz
MDVhZGIzYTc0YzA2OGI5Yjk4ZGZkMzg3NzIwYzhlMDYzNjgyYTFiLi5hMTRhMTBjNDE1MTZmZDUz
ZTc5MmI0ZTIyYTlhMWExNjk5NmY5MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCkBAIC02Miw5ICs2Miw5IEBAIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIGNsYXNzIFZpZXdTbmFwc2hvdCA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZXdTbmFw
c2hvdD4gewogcHVibGljOgogI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6SU9TdXJmYWNlPik7CisgICAgc3RhdGljIFJlZjxWaWV3U25hcHNob3Q+IGNyZWF0ZShz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik7CiAjZWxpZiBVU0VfUkVOREVSX1NF
UlZFUl9WSUVXX1NOQVBTSE9UUwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4g
Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6
ZUluQnl0ZXMpOworICAgIHN0YXRpYyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUodWludDMyX3Qg
c2xvdElELCBXZWJDb3JlOjpJbnRTaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcyk7CiAjZW5k
aWYKIAogICAgIH5WaWV3U25hcHNob3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCmluZGV4IDlkODdlMjgxZDQ0M2U3NmRkYzEyZWRh
NmZkYzUxOWZkMTE1MjQwNjUuLmI2MDg0MjY2OWI2YjA5MjhjZDk5NzFmNDMzZjhjZDI0MDdiZGNj
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90
U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RT
dG9yZS5tbQpAQCAtMTM0LDE0ICsxMzQsMTQgQEAgdm9pZCBWaWV3U25hcHNob3RTdG9yZTo6ZGlz
Y2FyZFNuYXBzaG90SW1hZ2VzKCkKIAogCiAjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9U
UwotUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+IHN1cmZhY2UpCitSZWY8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNo
b3Q6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgVmlld1NuYXBzaG90KFdURjo6bW92ZShzdXJmYWNlKSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdTbmFwc2hvdChXVEY6Om1vdmUoc3VyZmFjZSkpKTsK
IH0KICNlbGlmIFVTRV9SRU5ERVJfU0VSVkVSX1ZJRVdfU05BUFNIT1RTCi1QYXNzUmVmUHRyPFZp
ZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUodWludDMyX3Qgc2xvdElELCBJbnRTaXpl
IHNpemUsIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKQorUmVmPFZpZXdTbmFwc2hvdD4gVmlld1Nu
YXBzaG90OjpjcmVhdGUodWludDMyX3Qgc2xvdElELCBJbnRTaXplIHNpemUsIHNpemVfdCBpbWFn
ZVNpemVJbkJ5dGVzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlld1NuYXBzaG90KHNs
b3RJRCwgc2l6ZSwgaW1hZ2VTaXplSW5CeXRlcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFZpZXdTbmFwc2hvdChzbG90SUQsIHNpemUsIGltYWdlU2l6ZUluQnl0ZXMpKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlj
a2VyTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFj
LmgKaW5kZXggNDBjOWUyYmNmZGRjMDJmYWExZTkwYjQyY2QwMTUwNmYyZjMzZDcwOS4uY2YyZjZl
ODYwMjU1NjI3ZDE0OGU4YjdjZTU2M2UyNjk1NDY2MzdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaApAQCAtNjAsNyArNjAsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKICAgICAKIGNsYXNzIFdlYkNvbG9yUGlja2VyTWFjIDogcHVibGlj
IFdlYkNvbG9yUGlja2VyIHsKIHB1YmxpYzogICAgICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdLVmlldyopOworICAg
IHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJNYWM+IGNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xp
ZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tW
aWV3Kik7CiAgICAgfldlYkNvbG9yUGlja2VyTWFjKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5k
UGlja2VyKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb2xvclBpY2tlck1hYy5tbQppbmRleCA3M2M2NGFjNWY4YTQ0YmQwZWJhMTYzODIzY2U2ZmZl
ZTNiNWNlZWM0Li4yNmFjNjlmZWQ2NjlkOTVkNmU2ZTVkYzE5OWYzNGZiNzE2MWU4YWY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0K
QEAgLTc1LDkgKzc1LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJNYWM+IFdlYkNvbG9yUGlja2VyTWFj
OjpjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpD
b2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcq
IHZpZXcpCitSZWY8V2ViQ29sb3JQaWNrZXJNYWM+IFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUo
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5p
dGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRp
YWxDb2xvciwgcmVjdCwgdmlldykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvbG9y
UGlja2VyTWFjKGNsaWVudCwgaW5pdGlhbENvbG9yLCByZWN0LCB2aWV3KSk7CiB9CiAKIFdlYkNv
bG9yUGlja2VyTWFjOjp+V2ViQ29sb3JQaWNrZXJNYWMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAppbmRleCAwZWU1NDk1
NmFlMjc1MTRmNmUyNGE2OTEwYTk1Y2I1M2Q0M2I0YmY1Li5kOGFkOGY0NWQ4NTJlNTUyNjdjOWI2
NTYxZjJkNjAyMTAzYmIyYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBX
ZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlNYWMgOiBwdWJsaWMgV2Vi
Q29udGV4dE1lbnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29u
dGV4dE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmlldyogd2ViVmlldywgV2ViUGFnZVByb3h5KiBw
YWdlKQorICAgIHN0YXRpYyBSZWY8V2ViQ29udGV4dE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmll
dyogd2ViVmlldywgV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJDb250ZXh0TWVudVByb3h5TWFjKHdlYlZpZXcsIHBhZ2UpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnVQcm94eU1hYyh3ZWJWaWV3LCBw
YWdlKSk7CiAgICAgfQogICAgIH5XZWJDb250ZXh0TWVudVByb3h5TWFjKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaAppbmRl
eCBlMzJhNDFiNWMxNmM3NjY5NDQxYmY2MjQyYmQzNjQyMWQwN2RkNzViLi5iMWY2MDZmNDAxZjZj
NzhiNDZmYWEzM2Q2M2Q3NDRhYWEyNmVkNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCkBAIC00MCw5ICs0MCw5IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgV2ViUG9wdXBNZW51UHJveHlNYWMgOiBwdWJsaWMg
V2ViUG9wdXBNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBv
cHVwTWVudVByb3h5TWFjPiBjcmVhdGUoV0tWaWV3ICp3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94
eTo6Q2xpZW50KiBjbGllbnQpCisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4g
Y3JlYXRlKFdLVmlldyAqd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQcm94eU1h
Yyh3ZWJWaWV3LCBjbGllbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUG9w
dXBNZW51UHJveHlNYWMod2ViVmlldywgY2xpZW50KSk7CiAgICAgfQogICAgIH5XZWJQb3B1cE1l
bnVQcm94eU1hYygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCmlu
ZGV4IDljZWNhYzFkOWVjY2JjMWNkYWQyZjYxY2NlYmYyZDZjZGJiOGEwMDUuLjU3Njk4Zjk1YjE4
Njg1MGQ1YWNkNWRjZDg0YjMyOWY1YjAyNDY0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJG
YWN0b3J5QmFja2VuZC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBXZWJJREJGYWN0b3J5QmFja2VuZCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
SURCRmFjdG9yeUJhY2tlbmQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJJREJG
YWN0b3J5QmFja2VuZCk7IH0KKyAgICBzdGF0aWMgUmVmPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQkZhY3RvcnlCYWNrZW5kKTsgfQog
CiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeUJhY2tlbmQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBlZjViZmM5MzMxNWIzN2NmOTJmNmNmMjE4YmI3
NDAzOWFkZjFiYjU0Li5jMDUxNTg1YzcwMjc0NzMxM2M1YWZmNTdjNDRmMWZhZWEzN2ViZGJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDAsOSArNDAsOSBA
QCBjbGFzcyBXZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kOwogCiBjbGFzcyBXZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24+LCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPFdlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihj
b25uZWN0aW9uSWRlbnRpZmllcikpOwogICAgIH0KICAgICB+V2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBhNDIzNzVk
NjkyZTIzOTM1MWU4NzRjMGY2OWQ3ODlmNzg1YmIyYWU3Li5mZmZhOGIyZDUyYzI0YjViMmI3ZTdi
N2Y5NzBkMGY1MDFiZjAyM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTU5LDkg
KzU5LDkgQEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbWVudCogZWxl
bWVudCkKICAgICByZXR1cm4gZWxlbWVudC0+c2NyZWVuUmVjdCgpOwogfQogCi1QYXNzUmVmUHRy
PFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBh
Z2UqIHBhZ2UpCitSZWY8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
OjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyKHBhZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGdWxs
U2NyZWVuTWFuYWdlcihwYWdlKSk7CiB9CiAKIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXZWJGdWxs
U2NyZWVuTWFuYWdlcihXZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCBk
MjhkODViYTRlMjg5MGI4Y2QwYTI2NWQwYzhlYzc4MTk0MWVjY2E1Li43Y2RkZGNmZTdlNDIxZjFh
Y2E0NTM0ZjM3YzQ2M2U2Mjc0NzEzYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtNDgs
NyArNDgsNyBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBXZWJGdWxsU2NyZWVuTWFuYWdlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7
CisgICAgc3RhdGljIFJlZjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsK
ICAgICB2aXJ0dWFsIH5XZWJGdWxsU2NyZWVuTWFuYWdlcigpOwogCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IDA3Mjlk
ZTdlYzlkYWQzOWEyMDA2NjQ0NjE1ZjQ3NGQxMGNhZjZlMzAuLjJlNzU5ZGVjZWUyYWMyNGRiMjY5
ZTYyZjRhZWJlM2FjMmFjZjhhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuY3BwCkBAIC03NSw5ICs3NSw5IEBAIFBhc3NSZWZQdHI8SW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUo
UmFuCiAgICAgcmV0dXJuIHJhbmdlSGFuZGxlLnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVh
dGUoUmFuZ2UqIHJhbmdlKQorUmVmPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGU6OmNyZWF0ZShSYW5nZSogcmFuZ2UpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKHJhbmdlKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZShyYW5nZSkpOwogfQogCiBJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKFJhbmdl
KiByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaApp
bmRleCAxN2RlYjI5OThjYzZiMDVhOGZhOWRhN2U5NDNjNDM3NGZmYWUxYjc3Li5hZWVmNjllMmNh
NGExNjVjNjMyNzgxOGQ1NDJmNzA0ODRlODEwYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICBX
ZWJDb3JlOjpSYW5nZSogY29yZVJhbmdlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OlJh
bmdlKik7CisgICAgc3RhdGljIFJlZjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBjcmVhdGUo
V2ViQ29yZTo6UmFuZ2UqKTsKICAgICBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKFdlYkNvcmU6
OlJhbmdlKik7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1fcmFuZ2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlQmFja0ZvcndhcmRMaXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKaW5kZXggY2NiZjk3YmQyODRm
OTE4ZjYyNzJkMzNjNGU3MTA0ZTg2MGQxMGIyNC4uYTQ0ZDBiOTYyMDBiMDIzMWU2YjllYTcxMWRj
MDhiYmEyNDU3MTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW07CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0IDogcHVibGlj
IEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlQmFja0ZvcndhcmRMaXN0
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVCYWNrRm9y
d2FyZExpc3Q+IGNyZWF0ZShXZWJQYWdlKiBwYWdlKQorICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3Q+IGNyZWF0ZShXZWJQYWdlKiBwYWdlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdChwYWdl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxlQmFja0Zvcndh
cmRMaXN0KHBhZ2UpKTsKICAgICB9CiAKICAgICB2b2lkIGRldGFjaCgpIHsgbV9wYWdlID0gMDsg
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>