<?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>159739</bug_id>
          
          <creation_ts>2016-07-13 14:48:23 -0700</creation_ts>
          <short_desc>[WK2] Use more references for connections</short_desc>
          <delta_ts>2016-07-13 15:43:39 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159526</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1210719</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-13 14:48:23 -0700</bug_when>
    <thetext>Use more references for connections to make it more obvious they cannot be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210733</commentid>
    <comment_count>1</comment_count>
      <attachid>283572</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-13 14:56:54 -0700</bug_when>
    <thetext>Created attachment 283572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210759</commentid>
    <comment_count>2</comment_count>
      <attachid>283572</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-13 15:43:34 -0700</bug_when>
    <thetext>Comment on attachment 283572
Patch

Clearing flags on attachment: 283572

Committed r203196: &lt;http://trac.webkit.org/changeset/203196&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210760</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-13 15:43:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283572</attachid>
            <date>2016-07-13 14:56:54 -0700</date>
            <delta_ts>2016-07-13 15:43:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159739-20160713145609.patch</filename>
            <type>text/plain</type>
            <size>36072</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjk1OGQ5NTllNjgxNTEy
OTQ3ZDA4OTIxYjc5YmUwNjhkMWFmMjQxMS4uMjgzM2UwMmM5NmFkODg1MGE1ZjUyNGYyYmQxYmU5
ZmI2MTA4NjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc1IEBACiAyMDE2LTA3LTEzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dLMl0gVXNlIG1vcmUgcmVm
ZXJlbmNlcyBmb3IgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1OTczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBtb3JlIHJlZmVyZW5jZXMgZm9yIGNvbm5lY3Rpb25zIHRvIG1h
a2UgaXQgbW9yZSBvYnZpb3VzIHRoZXkgY2Fubm90CisgICAgICAgIGJlIG51bGwuCisKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpEYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBEYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24p
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29ubmVjdGlvbik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjptZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbik6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAg
ICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9y
VVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OnByZXJl
Z2lzdGVyU2FuZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmls
ZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JSZWdpc3Ry
eVByb3h5OjpyZWdpc3RlckZpbGVCbG9iVVJMKToKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lz
dHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTCk6CisgICAgICAgIChXZWJLaXQ6OkJsb2JSZWdpc3Ry
eVByb3h5OjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5Ojp1bnJlZ2lzdGVyQmxvYlVSTCk6CisgICAgICAgIChX
ZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZSk6CisgICAg
ICAgIChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZSk6CisgICAgICAgIChXZWJL
aXQ6OkJsb2JSZWdpc3RyeVByb3h5Ojp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjp3
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0
ZWd5OjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6
cmVtb3ZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNldERlZmVyc0xv
YWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpjcmVh
dGVQaW5nSGFuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29va2llc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmFkZENvb2tpZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OnN0
YXJ0RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uSW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
Om5ldHdvcmtDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0
Y2hETlMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCisyMDE2LTA3LTEz
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgV2ViS2l0MiBzaG91
bGRuJ3Qgc2lnbmFsIGN1c3RvbSBwcm90b2NvbCBjbGllbnRzIGZyb20gdGhlIE5TVVJMQ29ubmVj
dGlvbiBsb2FkZXIgdGhyZWFkLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NzI1CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzMyMzEzMT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMzlmNDk4MzhlZTNkOWQ1YjE4ZGQw
OTc1ZjEyNTJjZWUxZWNkMTVhMC4uN2E4NmZlMmZjNDY0ODYzYTIxZmM2YmU0NmI3YzYyYmI1Yjc5
Y2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTQyLDggKzQyLDgg
QEAgUmVmPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjoKIH0KIAogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpKQogewotICAgIG1fY29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2Vy
dmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwogICAgIG1fY29ubmVj
dGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpOwogICAgIG1fY29ubmVjdGlvbi0+b3Bl
bigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGRhZDE0NTM3ZjMwYjZj
MzkwYzQ1MDc4ZjY2ODYyOWY2YzgxYzEwNGIuLmZhZTVlYmRiOWJkMDkwZjc4MmE5ZTNiYmIwYTc0
MjFmZjBlOWMzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQyLDcgKzQy
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAgICB+RGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKLSAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogcHJp
dmF0ZToKICAgICBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKTsKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2Fn
ZUVuY29kZXI+Jik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKLSAgICBJUEM6OkNvbm5l
Y3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25u
ZWN0aW9uLmdldCgpOyB9CisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQogICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4+
IG1fd2ViSURCQ29ubmVjdGlvbnM7CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAKLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZTI5NjA1MTBh
ZTEwZGI0M2VhNjBmMTQyZTVlOWUyYWJhMjQ3YjE0YS4uNzk4MTdmYmI0NDc4ZWYxMGU3YTM5NDc3
YWQ0ZjljODQyZDUwMzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlz
Y29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKQogCiBJUEM6OkNvbm5lY3Rpb24qIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKQogewotICAgIHJldHVybiBt
X2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsKKyAgICByZXR1cm4gJm1fY29ubmVjdGlvbi0+Y29u
bmVjdGlvbigpOwogfQogCiBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVu
dCYgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb25uZWN0aW9uVG9DbGllbnQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDc3MzQ5NzA1YWZmZTk5NjRmMjc3MmNjZjg2MTRi
NjA5YTQyY2Y1NWIuLmYzN2VlNGI2YTMzNGNiOTNhY2Y1ZjEzNmY3MGY4YjQ3ZjE5YmQ0NGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTYwLDggKzYwLDggQEAgUmVmPE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y3JlYXRlKElQQzo6Q28KIH0KIAogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKIHsKLSAg
ICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsK
IH0KIApAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpCiAgICAgICAg
ICAgICBmaWxlLT5yZXZva2VGaWxlQWNjZXNzKCk7CiAKICAgICAgICAgTmV0d29ya1Byb2Nlc3M6
OnNpbmdsZXRvbigpLmdyYW50U2FuZGJveEV4dGVuc2lvbnNUb0RhdGFiYXNlUHJvY2Vzc0ZvckJs
b2JzKGZpbGVOYW1lcywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCByZXF1ZXN0SWRlbnRpZmllciwgZmlsZU5hbWVzXSgpIHsKLSAgICAgICAgICAgIGlmICgh
bV9jb25uZWN0aW9uIHx8ICFtX2Nvbm5lY3Rpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgICAgIGlm
ICghbV9jb25uZWN0aW9uLT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6RGlkV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMocmVxdWVzdElkZW50aWZpZXIs
IGZpbGVOYW1lcyksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZmE1ZjZlOGVk
Yjk1ODQ4Y2FmYjBkNTg1NjA4YmJlYzQ1YjE2ZjA4Ny4uMzg2NWJkMzkwODQxODNiZTVkNGJlN2U4
ZjUyOGY2ODA3ZjNmNDk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC01MCw3ICs1
MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwogCi0gICAgSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisgICAgSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9
CiAKICAgICB2b2lkIGRpZENsZWFudXBSZXNvdXJjZUxvYWRlcihOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXImKTsKIApAQCAtMTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVuc3VyZUxl
Z2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIAotICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CiAKICAgICBIYXNoTWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIsIFJlZlB0cjxOZXR3b3JrUmVz
b3VyY2VMb2FkZXI+PiBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnM7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBtX2Jsb2JEYXRhRmls
ZVJlZmVyZW5jZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA2OTUyODZlOGFhMmQ4NTQ1N2YzNzE4NGQw
YTg4OWFmZDQyYjRlYjY1Li5lOTQ0YjJjZjliY2YwMjlkOTkzZTkyNDQ3NTkwMzI3MDAxYWNiN2E5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU5OSw3ICs1OTksNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KHN0ZDo6dW5pcXVl
X3B0cgogCiBJUEM6OkNvbm5lY3Rpb24qIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKQogewotICAgIHJldHVybiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCku
Y29ubmVjdGlvbigpOworICAgIHJldHVybiAmY29ubmVjdGlvblRvV2ViUHJvY2VzcygpLmNvbm5l
Y3Rpb24oKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnN1bWVTYW5kYm94
RXh0ZW5zaW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tp
ZVN0b3JhZ2VTaGltLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdl
U2hpbS5tbQppbmRleCAwOWNmMWNjYzk2NTM0Nzg5YzM1OTZiOGEwNjFjNWU1ZWMxYjcxMTI0Li5m
NmU0MGUzZjYyNWIxNWIzYzUwODBlMDRkMDQ0NzBlYjc5NDE5MmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTYwLDcgKzYwLDcgQEAg
c3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFk
ZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ28KIHsKICAgICBTdHJpbmcgY29va2llczsKICAgICBVUkwg
Zmlyc3RQYXJ0eUZvckNvb2tpZXNVUkw7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJM
LCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JD
b29raWVzVVJMLCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBpZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggZjZmODBkNTI3YmU3OTMzMjk3YWNk
ODk4NTRmZTU2NzkwNmI4ZGZjMi4uNmE5MDhhZDgwODllN2YzZGMzOTcyYmQwOGM3MmQ4OWNlZTRl
OTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAKQEAgLTc1LDcgKzc1LDcgQEAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjp+V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyKCkKIAogSVBDOjpDb25uZWN0aW9uKiBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKIHsKLSAgICByZXR1cm4gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCktPmNvbm5lY3Rp
b24oKTsKKyAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCk7CiB9CiAKIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblRvU2VydmVyJiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvcmVDb25uZWN0aW9u
VG9TZXJ2ZXIoKQpAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyB2b2lkIHByZXJlZ2lzdGVyU2Fu
ZGJveEV4dGVuc2lvbnNJZk5lY2Vzc2FyeShjb25zdCBXZWJJREJSZXN1bHQmIHJlc3VsdCkKICAg
ICBBU1NFUlQoZmlsZVBhdGhzLnNpemUoKSA9PSByZXN1bHQuaGFuZGxlcygpLnNpemUoKSk7CiAK
ICAgICBpZiAoIWZpbGVQYXRocy5pc0VtcHR5KCkpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZXJlZ2lzdGVyU2FuZGJveEV4dGVuc2lv
bnNGb3JPcHRpb25hbGx5RmlsZUJhY2tlZEJsb2IoZmlsZVBhdGhzLCByZXN1bHQuaGFuZGxlcygp
KSwgMCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpQcmVyZWdpc3RlclNhbmRib3hFeHRlbnNpb25zRm9yT3B0aW9uYWxseUZpbGVCYWNrZWRC
bG9iKGZpbGVQYXRocywgcmVzdWx0LmhhbmRsZXMoKSksIDApOwogfQogCiB2b2lkIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0UmVjb3JkKGNvbnN0IFdlYklEQlJlc3VsdCYgcmVzdWx0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggYjcxZmM3
N2E0NDhjYjFmYmViYjI2YzA2YTQwOTY5ZDJkMDA5MTA1My4uMGYxNDY2MjkxYWVjMzBhN2Y2MzNi
ZDk4NmY4NTFhODZjNzA5MmI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCkBAIC0zOSw4ICszOSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKIHsKLSAg
ICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA5YTk1YTNk
NmVhODEwYzc3NDAzYTdmOTM4NDQwZjZlNTI3YmMzNjkzLi5lNTliMzE2MWQ3NmFkOTE3MjNhM2Fl
NjYwMTVjYjg0N2MzYzAwMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5XZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAKLSAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYg
aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQm
KTsKQEAgLTY2LDEwICs2NiwxMCBAQCBwcml2YXRlOgogICAgIElQQzo6UHJvY2Vzc1R5cGUgcmVt
b3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRh
YmFzZTsgfQogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgSVBDOjpDb25uZWN0aW9u
KiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlv
bi5nZXQoKTsgfQorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KICAgICB1aW50NjRfdCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAotICAg
IFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAppbmRleCAy
YWRkNzQ2ODkzN2RlMDFmZmY2ZDZlN2I3Y2QwMzIwNThiOWZkOTVhLi43ZDg1NmRiOGU3Y2NmZWJj
N2Y3ZjQxNmNmYjRiMDIyYTE1NjBkYmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKQEAgLTQ0LDQ2ICs0NCw0
NiBAQCB2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFdl
YkNvcmU6OlVSTCYgdXJsLCBSZWY8QmxvYkRhdAogICAgIGlmICghZmlsZS0+cGF0aCgpLmlzRW1w
dHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGZpbGUtPnBhdGgo
KSwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9ubHksIGV4dGVuc2lvbkhhbmRsZSk7CiAKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckZp
bGVCbG9iVVJMKHVybCwgZmlsZS0+cGF0aCgpLCBleHRlbnNpb25IYW5kbGUsIGNvbnRlbnRUeXBl
KSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OlJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBmaWxlLT5wYXRoKCksIGV4dGVuc2lvbkhhbmRsZSwg
Y29udGVudFR5cGUpLCAwKTsKIH0KIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3
b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkwodXJsLCBibG9iUGFydHMsIGNvbnRl
bnRUeXBlKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTCh1cmwsIGJsb2JQYXJ0cywgY29udGVudFR5cGUpLCAwKTsK
IH0KIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBVUkwmIHNyY1VSTCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5u
ZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxGcm9tVVJMKHVybCwgc3JjVVJM
KSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OlJlZ2lzdGVyQmxvYlVSTEZyb21VUkwodXJsLCBzcmNVUkwpLCAwKTsKIH0KIAogdm9pZCBCbG9i
UmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPiYmIGZpbGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgQVNT
RVJUKGZpbGUpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBm
aWxlLT5wYXRoKCksIGNvbnRlbnRUeXBlKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKHVybCwgc3JjVVJMLCBmaWxlLT5wYXRoKCksIGNvbnRlbnRUeXBlKSwgMCk7CiB9CiAKIHZv
aWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsKQog
ewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlVu
cmVnaXN0ZXJCbG9iVVJMKHVybCksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5l
dHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpVbnJlZ2lzdGVyQmxvYlVSTCh1cmwpLCAwKTsKIH0KIAogdm9p
ZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpCiB7
Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVn
aXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpLCAwKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpLCAwKTsKIH0KIAogdW5zaWduZWQg
bG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZShjb25zdCBVUkwmIHVybCkKIHsK
ICAgICB1aW50NjRfdCByZXN1bHRTaXplOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkJsb2JTaXplKHVybCksIE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemU6OlJlcGx5KHJlc3VsdFNpemUp
LCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6QmxvYlNpemUodXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpCbG9iU2l6ZTo6UmVwbHkocmVzdWx0U2l6ZSksIDApKQogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gcmVzdWx0U2l6ZTsKIH0KIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6
d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxz
LCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVBhdGhzKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29u
bmVjdGlvbigpLT53cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcywgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtD
b25uZWN0aW9uKCkud3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCA4Zjc3YWJiNmJlZjA2OTI0M2NlZWQzMTUxZTY0M2MyMzcxNGIzZjQ1Li4yMTM2Y2Y4MDhj
MWIyNzFmM2NiZGIzNTdkMTIzNzU2YWZhYjM2NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtNDIsOCArNDIsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIp
CisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0
aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCiB7Ci0gICAgbV9jb25uZWN0aW9uID0g
SVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlm
aWVyLCAqdGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiB9CiAKQEAgLTkyLDcgKzky
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFy
eUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogCiAgICAgbV93cml0ZUJsb2JUb0ZpbGVDb21w
bGV0aW9uSGFuZGxlcnMuc2V0KHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlv
bigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcywgcmVxdWVzdElkZW50
aWZpZXIpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIHJlcXVlc3RJZGVudGlm
aWVyKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBlZjhl
MGZiYWU0OWY3MmEwNzllY2Y0OGZlYTlkZTQxYTJmMWFjM2FmLi44OGQzOWUzNWExY2FjYjA2MzMx
NTZhMDg1NjlmMzk1Y2ZkMjQ1OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01NCw3
ICs1NCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgfk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
OwogICAgIAotICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fY29ubmVjdGlvbi5nZXQoKTsgfQorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigp
IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
Ly8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJv
Y2Vzcy4KLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4+IG1fd3JpdGVCbG9iVG9GaWxl
Q29tcGxldGlvbkhhbmRsZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGZlYTJlNzU1MjJkZjA3
NWYzMDNmMDAxMjFjMDM2MTFlN2RhNzRmYTQuLmJmMmQwNDdjMDEzNzI2ODY4YjIzN2QxMzFlNTE3
NDAzNjU1MzU5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2Fk
ZXIsIENhY2hlZFJlc291CiAKICAgICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCAm
JiBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVk
ZW50aWFsUG9saWN5ID09IERvTm90QXNrQ2xpZW50Rm9yQW55Q3JlZGVudGlhbHMpOwogCi0gICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hl
ZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDApKSB7CisgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxv
YWQobG9hZFBhcmFtZXRlcnMpLCAwKSkgewogICAgICAgICBXRUJMT0FERVJTVFJBVEVHWV9MT0df
QUxXQVlTX0VSUk9SKCJXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkOiBVbmFibGUgdG8g
c2NoZWR1bGUgcmVzb3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSA9
ICVkLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSIsIHN0YXRpY19jYXN0PGludD4ocmVz
b3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmcgbG9uZz4obG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCkpOwogICAgICAgICAvLyBXZSBw
cm9iYWJseSBmYWlsZWQgdG8gc2NoZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9j
ZXNzIGJlY2F1c2UgaXQgaGFkIGNyYXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5l
dmVyIHN1Y2NlZWQgc28gd2Ugd2lsbCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5
LgpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZShSZXNv
dXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlJlbW92ZUxvYWRJZGVudGlmaWVyKGlkZW50aWZpZXIpLCAwKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVtb3ZlTG9hZElkZW50aWZpZXIo
aWRlbnRpZmllciksIDApOwogCiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoaXMgV2ViUmVz
b3VyY2VMb2FkZXIgbWlnaHQgYmUganVzdCBhYm91dCB0byBtZXNzYWdlIGJhY2sgdG8gdGhlIE5l
dHdvcmtQcm9jZXNzIChlLmcuIENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KQogICAgIC8vIGJ1dCB0
aGVyZSdzIG5vIHBvaW50IGluIGRvaW5nIHNvIGFueW1vcmUuCkBAIC0yNjcsNyArMjY3LDcgQEAg
dm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3ZlKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxv
YWRlcikKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VM
b2FkZXIqIHJlc291cmNlTG9hZGVyLCBib29sIGRlZmVycykKIHsKICAgICBSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigpOwotICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldERlZmVy
c0xvYWRpbmcoaWRlbnRpZmllciwgZGVmZXJzKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldERlZmVyc0xvYWRpbmcoaWRlbnRpZmllciwg
ZGVmZXJzKSwgMCk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmNyb3NzT3JpZ2luUmVk
aXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFVSTCYpCkBAIC0zMjUsNyArMzI1
LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgdW4KIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxl
ciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkKGxv
YWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQ
ZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJvciwgcmVzcG9uc2UsIGRhdGEpLCAwKSkg
eworICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBs
eShlcnJvciwgcmVzcG9uc2UsIGRhdGEpLCAwKSkgewogICAgICAgICByZXNwb25zZSA9IFJlc291
cmNlUmVzcG9uc2UoKTsKICAgICAgICAgZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJs
KCkpOwogICAgIH0KQEAgLTM0OSw3ICszNDksNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpj
cmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgUgog
ICAgIGxvYWRQYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMgPSBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVk
Q3JlZGVudGlhbHM7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCA9IG5ldHdvcmtpbmdDb250ZXh0LT5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KCk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5u
ZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhsb2FkUGFyYW1ldGVycyksIDApOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhs
b2FkUGFyYW1ldGVycyksIDApOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGMyYmZjMmIxNTBl
NGU0YWI4MzI5MjYyMzcyOWJhZjU4ZTQ0NjhjYjYuLjViMzM2MjM4YzExYzE2NmRjZDI1ODdkNmU0
YzM4YjgwNWQ5MzNhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXZWJSZXNv
dXJjZUxvYWRlcjo6fldlYlJlc291cmNlTG9hZGVyKCkKIAogSVBDOjpDb25uZWN0aW9uKiBXZWJS
ZXNvdXJjZUxvYWRlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKQogewotICAgIHJldHVybiBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCk7
CisgICAgcmV0dXJuICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKTsKIH0KIAogdWludDY0X3QgV2ViUmVzb3VyY2VMb2FkZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApp
bmRleCAyZTJiODEzYTViNmY1YTFhZmEyMDVlMDUxZmRhYjhlODEzMGVhY2ZlLi45NGU5YzE2YmZi
NmE5NGMxM2IwODNmODc3NWY1NzVkOGU5MDY2MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCkBAIC0xMTcsMjAgKzExNywyMCBAQCBCbG9iUmVnaXN0cnkqIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIFN0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIFN0cmlu
ZyByZXN1bHQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVj
dGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNl
c3Npb24pLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5KHJlc3VsdCksIDApKQorICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9y
RE9NKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCks
IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6
UmVwbHkocmVzdWx0KSwgMCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0Q29va2llc0Zyb21E
T00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDb29r
aWVzRnJvbURPTShTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5
LCB1cmwsIGNvb2tpZVN0cmluZyksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5l
dHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDb29raWVzRnJvbURPTShTZXNzaW9uVHJhY2tlcjo6c2Vz
c2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwsIGNvb2tpZVN0cmluZyksIDApOwogfQog
CiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVS
TCYgdXJsKQogewogICAgIGJvb2wgcmVzdWx0OwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkKFNlc3Npb25U
cmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQ6OlJlcGx5KHJlc3Vs
dCksIDApKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZChTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Np
b24pLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkNvb2tpZXNFbmFibGVkOjpSZXBseShyZXN1bHQpLCAwKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDMsMjYgKzE0MywyNiBAQCBTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBOZXR3b3JrU3RvcmFnZQogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKIHsKICAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb25JRCwgZmlyc3RQYXJ0eSwgdXJsKSwg
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZTo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKHNlc3Npb25JRCwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZTo6UmVw
bHkocmVzdWx0KSwgMCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0UmF3Q29va2llcyhjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKQogewotICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldFJh
d0Nvb2tpZXMoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwg
dXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHZXRSYXdDb29r
aWVzOjpSZXBseShyYXdDb29raWVzKSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldFJhd0Nvb2tpZXMoU2Vzc2lvblRyYWNr
ZXI6OnNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzOjpSZXBseShyYXdDb29raWVz
KSwgMCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6RGVsZXRlQ29va2llKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIHVybCwg
Y29va2llTmFtZSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpEZWxldGVDb29raWUoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRChzZXNzaW9u
KSwgdXJsLCBjb29raWVOYW1lKSwgMCk7CiB9CiAKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjphZGRDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBV
UkwmIHVybCwgY29uc3QgQ29va2llJiBjb29raWUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QWRkQ29va2llKFNlc3Npb25UcmFja2VyOjpz
ZXNzaW9uSUQoc2Vzc2lvbiksIHVybCwgY29va2llKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkFkZENvb2tpZShTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbklEKHNlc3Npb24pLCB1cmwsIGNvb2tpZSksIDApOwogfQogCiAvLyBQbHVnaW5TdHJh
dGVneQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAK
aW5kZXggOWVjMjY0NTdjYzI0Mzk0MzI1ZGZlNGQyZWI1NzJlYzNkZDFiZDQ1ZC4uYzQzOGUwNDI5
NTBkNWRjYmIyYjY2YTRiYWM0M2JlODkzZmQ5MTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBX
ZWJGcmFtZTo6c3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmkKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKTsKICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSgpID8gcGFnZSgpLT5z
ZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwotICAgIHdlYlByb2Nl
c3MubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U3RhcnREb3dubG9hZChzZXNzaW9uSUQsIHBvbGlj
eURvd25sb2FkSUQsIHJlcXVlc3QsIHN1Z2dlc3RlZE5hbWUpLCAwKTsKKyAgICB3ZWJQcm9jZXNz
Lm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTdGFydERvd25sb2FkKHNlc3Npb25JRCwgcG9saWN5RG93
bmxvYWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkTmFtZSksIDApOwogfQogCiB2b2lkIFdlYkZyYW1l
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3Vt
ZW50TG9hZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtMjc4LDcgKzI3OCw3
IEBAIHZvaWQgV2ViRnJhbWU6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1
bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsCiAgICAgZWxzZQogICAgICAgICBtYWluUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciA9IDA7CiAKLSAgICB3ZWJQcm9jZXNzLm5ldHdvcmtDb25uZWN0aW9u
KCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChzZXNzaW9uSUQsIG1haW5S
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBwb2xpY3lEb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25z
ZSksIDApOworICAgIHdlYlByb2Nlc3MubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvbnZlcnRNYWlu
UmVzb3VyY2VMb2FkVG9Eb3dubG9hZChzZXNzaW9uSUQsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBwb2xpY3lEb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSksIDApOwogfQogCiBTdHJp
bmcgV2ViRnJhbWU6OnNvdXJjZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCA2ZDQzMjIzMDlhZjBkM2Q3ZGZjMzMxMDk5OGQ2NWUxYmM3YzgwMjQx
Li4xMmRhZDBiMTE1Yzk4YWI4MWRhYWRlZDE2ZWE0Njc1NWUwNDRhOTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFdl
YlByb2Nlc3M6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9u
SUQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bkluTmV0d29ya1Byb2Nlc3MoKQogewotICAgIG5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3Vy
ZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSwgMCk7CisgICAgbmV0d29ya0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSwgMCk7CiB9CiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6c2V0SW5qZWN0ZWRCdW5kbGVQYXJhbWV0ZXJzKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgdmFsdWUpCiAgICAgaW5qZWN0ZWRCdW5kbGUtPnNldEJ1bmRsZVBhcmFtZXRlcnMo
dmFsdWUpOwogfQogCi1OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6Om5ldHdv
cmtDb25uZWN0aW9uKCkKK05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6bmV0
d29ya0Nvbm5lY3Rpb24oKQogewogICAgIC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24g
dG8gdGhlIG5ldHdvcmsgcHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJs
aXNoIGl0LgogICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pCkBAIC0xMDI0LDcg
KzEwMjQsNyBAQCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6Om5ldHdvcmtD
b25uZWN0aW9uKCkKICAgICBpZiAoIW1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKQogICAgICAg
ICBDUkFTSCgpOwogICAgIAotICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5n
ZXQoKTsKKyAgICByZXR1cm4gKm1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwogfQogCiB2b2lk
IFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCkBAIC0xNDc0LDcgKzE0NzQsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChtX2Ruc1ByZWZldGNoZWRIb3N0cy5hZGQoaG9zdG5hbWUpLmlzTmV3RW50
cnkpCi0gICAgICAgIG5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZWZldGNoRE5TKGhvc3RuYW1l
KSwgMCk7CisgICAgICAgIG5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVmZXRjaEROUyhob3N0bmFt
ZSksIDApOwogICAgIC8vIFRoZSBETlMgcHJlZmV0Y2hlZCBob3N0cyBjYWNoZSBpcyBvbmx5IHRv
IGF2b2lkIGFza2luZyBmb3IgdGhlIHNhbWUgaG9zdHMgdG9vIG1hbnkgdGltZXMKICAgICAvLyBp
biBhIHZlcnkgc2hvcnQgcGVyaW9kIG9mIHRpbWUsIHByb2R1Y2luZyBhIGxvdCBvZiBJUEMgdHJh
ZmZpYy4gU28gd2UgY2xlYXIgdGhpcyBjYWNoZSBhZnRlcgogICAgIC8vIHNvbWUgdGltZSBvZiBu
byBETlMgcmVxdWVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IDM1MGJkZjcyOTU2YzFkN2U4MzhlMDFkNTgzMmEyODI5YTU1Y2M4NTguLjljOGMzNDg2NTc0ZDAz
NzBkYmU5MTU5NjE3ZDkzNTU0M2I2YTQ5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC0xNTQsNyArMTU0LDcgQEAgcHVibGljOgogCiAgICAgRXZlbnREaXNwYXRj
aGVyJiBldmVudERpc3BhdGNoZXIoKSB7IHJldHVybiAqbV9ldmVudERpc3BhdGNoZXI7IH0KIAot
ICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiogbmV0d29ya0Nvbm5lY3Rpb24oKTsKKyAgICBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIG5ldHdvcmtDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBu
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKik7
CiAgICAgV2ViTG9hZGVyU3RyYXRlZ3kmIHdlYkxvYWRlclN0cmF0ZWd5KCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>