<?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>142096</bug_id>
          
          <creation_ts>2015-02-27 13:12:49 -0800</creation_ts>
          <short_desc>Make ActiveDOMObject::canSuspend() pure virtual</short_desc>
          <delta_ts>2015-02-27 17:05:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</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>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1072790</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 13:12:49 -0800</bug_when>
    <thetext>Make ActiveDOMObject::canSuspend() pure virtual so that people at least try to provide an implementation for it. The default implementation was returning false unconditionally and thus was preventing pages from entering the PageCache.

Radar: &lt;rdar://problem/19923085&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072794</commentid>
    <comment_count>1</comment_count>
      <attachid>247540</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 13:15:49 -0800</bug_when>
    <thetext>Created attachment 247540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072797</commentid>
    <comment_count>2</comment_count>
      <attachid>247541</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 13:22:10 -0800</bug_when>
    <thetext>Created attachment 247541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072817</commentid>
    <comment_count>3</comment_count>
      <attachid>247547</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 13:45:18 -0800</bug_when>
    <thetext>Created attachment 247547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072855</commentid>
    <comment_count>4</comment_count>
      <attachid>247559</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 15:02:01 -0800</bug_when>
    <thetext>Created attachment 247559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072891</commentid>
    <comment_count>5</comment_count>
      <attachid>247568</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 15:50:19 -0800</bug_when>
    <thetext>Created attachment 247568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072931</commentid>
    <comment_count>6</comment_count>
      <attachid>247568</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 17:05:42 -0800</bug_when>
    <thetext>Comment on attachment 247568
Patch

Clearing flags on attachment: 247568

Committed r180801: &lt;http://trac.webkit.org/changeset/180801&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072932</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-27 17:05:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247540</attachid>
            <date>2015-02-27 13:15:49 -0800</date>
            <delta_ts>2015-02-27 13:22:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142096-20150227131535.patch</filename>
            <type>text/plain</type>
            <size>55688</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjEwYTI3NWI4MDBjZjQ2
NzFiZWRkMWFhZThmMDUxYjY4NjNmOTJmYS4uMmZiZWI4ZWI3NTdjNDkxNGU3YmQ2ZWJlNDUyMjVj
MGExOTVhMGVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE1LTAyLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBBY3RpdmVET01PYmpl
Y3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5
MjMwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBBY3RpdmVET01PYmplY3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwgc28gdGhhdCBw
ZW9wbGUgYXQgbGVhc3QKKyAgICAgICAgdHJ5IHRvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24g
Zm9yIGl0LiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3YXMKKyAgICAgICAgcmV0dXJuaW5n
IGZhbHNlIHVuY29uZGl0aW9uYWxseSBhbmQgdGh1cyB3YXMgcHJldmVudGluZyBwYWdlcyBmcm9t
CisgICAgICAgIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCisKKzIwMTUtMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBNYWtlIElEQkRhdGFiYXNlIC8gSURC
UmVxdWVzdCBzdXNwZW5kYWJsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQyMDc2CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTkyMzA4NT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCmlu
ZGV4IDIwYzQxMzQ1OTUyYzM1MmVjMWU1MDUyYjNmMWNkMDcxNzM5OTlmZjMuLmY2NzA1OGRhOWVm
OWY1MGQ2OWIzYTg5MzhkZDI1MDdmM2NlM2I2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNwcApAQCAtODgsNiArODgsMTEgQEAgdm9p
ZCBCYXR0ZXJ5TWFuYWdlcjo6dXBkYXRlQmF0dGVyeVN0YXR1cyhQYXNzUmVmUHRyPEJhdHRlcnlT
dGF0dXM+IGJhdHRlcnlTdGF0dXMKICAgICBtX2JhdHRlcnlTdGF0dXMgPSBiYXR0ZXJ5U3RhdHVz
OwogfQogCit2b2lkIEJhdHRlcnlNYW5hZ2VyOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXR0ZXJ5TWFuYWdlcjo6c3VzcGVuZChSZWFzb25Gb3JT
dXNwZW5zaW9uKQogewogICAgIGlmIChtX2JhdHRlcnlDb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuaAppbmRleCAzMmUyMTUyODEw
NDE4ZTA3YzE1Yzg0NDE5YmM4MDI5MDJhYWI3NTU2Li41NmNjODEyM2E0MDBlNTkzY2VjMzhjNWE3
NGM1NjFmM2Q4YzUxMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRl
cnkvQmF0dGVyeU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkv
QmF0dGVyeU1hbmFnZXIuaApAQCAtNTgsMTIgKzU4LDYgQEAgcHVibGljOgogICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8QmF0dGVyeU1hbmFnZXI+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxCYXR0
ZXJ5TWFuYWdlcj46OmRlcmVmOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGltcGxlbWVudGF0
aW9uLgotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24p
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIG92ZXJyaWRlIHsgcmV0dXJuICZtX2V2ZW50
VGFyZ2V0RGF0YTsgfQogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRh
cmdldERhdGEoKSBvdmVycmlkZSB7IHJldHVybiBtX2V2ZW50VGFyZ2V0RGF0YTsgfQpAQCAtNzEs
NiArNjUsMTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBCYXR0ZXJ5TWFu
YWdlcihOYXZpZ2F0b3IqKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgYm9v
bCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisKICAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlv
bi4KICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9
CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcAppbmRleCA0N2U5ODRiZWJiYjMwZjQ3NmNmZDk2YWNhOWQ3NzQy
ZjFjMGVlMDM0Li4yM2Y5ZDBkMTA1Njc4MjkzOTUwZWRlMmIyNjIwNmJiMDZmYjA1ODExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVNlc3Npb24uY3BwCkBAIC0yNTAsNiArMjUwLDI3IEBAIFN0cmluZyBNZWRpYUtleVNlc3Np
b246Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdAogICAgIHJldHVybiBwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50
aWZpZXIoKSk7CiB9CiAKK2Jvb2wgTWVkaWFLZXlTZXNzaW9uOjpoYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdAoreworICAgIHJldHVybiAobV9rZXlzICYmICFpc0Nsb3NlZCgpKSB8fCBtX2FzeW5j
RXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTZXNzaW9u
OjpzdG9wKCkKK3sKKyAgICBjbG9zZSgpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtleVNlc3Np
b246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiTWVkaWFLZXlT
ZXNzaW9uIjsKK30KKworYm9vbCBNZWRpYUtleVNlc3Npb246OmNhblN1c3BlbmQoKSBjb25zdAor
eworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAppbmRleCA0ZGU0NmY3
OTdiN2FhMmJkZWRhNDExOGM4ZmZmMWFlMGZjYWJkOTY0Li43ODM1YzQ5ZjQzNTAxMmVmOWI4ZTA1
MmU4ZjdiNTc4ZTU3MzFiY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTczLDEwICs3Myw2IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKIAotICAg
IC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAobV9rZXlzICYmICFpc0Nsb3NlZCgpKSB8fCBtX2Fz
eW5jRXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlIHsgY2xvc2UoKTsgfQotCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUih3ZWJraXRrZXlhZGRlZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUih3ZWJraXRrZXllcnJvcik7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
Uih3ZWJraXRrZXltZXNzYWdlKTsKQEAgLTg0LDYgKzgwLDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBNZWRpYUtleVNlc3Npb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
ICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAgICAg
TWVkaWFLZXlTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNZWRpYUtleXMqLCBjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSk7CiAgICAgdm9pZCBrZXlSZXF1ZXN0VGltZXJGaXJlZCgpOwpA
QCAtMTE2LDcgKzExNSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhS2V5U2Vz
c2lvbiI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAK
aW5kZXggN2RhYjgwNDE2ODczYjZmZjJjODE4ZTM3ZTMyMGUwNTg0NTMyNTlmNi4uNjgzN2E0ZWM2
OWEyM2UyYmI4MDVkMThmZDhhMWQwYjZkMDFkZTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTI5Myw2ICsyOTMsMTEg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcCgpCiAgICAgbV9wZW5kaW5nRm9yUGVybWlzc2lvbk5v
dGlmaWVycy5jbGVhcigpOwogfQogCitjb25zdCBjaGFyKiBHZW9sb2NhdGlvbjo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJHZW9sb2NhdGlvbiI7Cit9CisKIEdl
b3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkKIHsKICAgICBQYWdlKiBwYWdl
ID0gdGhpcy0+cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5oCmluZGV4IDM1OTNmMTM0NmE5MzI1MTkzNDY2NDBiNTMzODM0YWY4ZTI2
N2EwZTkuLjBiMzBkMzJjYThlMzM1YWUzOGExN2RiZjRkOTg3MzM3MTVkNzMxZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTU3
LDkgKzU3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8R2VvbG9jYXRpb24+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgfkdlb2xvY2F0aW9u
KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CkBAIC04
MCw3ICs3NywxMSBAQCBwcml2YXRlOgogICAgIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsK
IAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJy
aWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc0RlbmllZCgpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dHZW9sb2NhdGlvbiA9PSBObzsgfQogCkBAIC0xNDAsOCArMTQx
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGhhdmVTdWl0YWJsZUNhY2hlZFBvc2l0aW9uKFBvc2l0
aW9uT3B0aW9ucyopOwogICAgIHZvaWQgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiAK
LSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiR2VvbG9jYXRpb24iOyB9Ci0KICAgICBHZW9Ob3RpZmllclNldCBtX29u
ZVNob3RzOwogICAgIFdhdGNoZXJzIG1fd2F0Y2hlcnM7CiAgICAgR2VvTm90aWZpZXJTZXQgbV9w
ZW5kaW5nRm9yUGVybWlzc2lvbk5vdGlmaWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA1OWVmZjFjZTBhM2Y1MWRmODkxZmQ0
OTM1M2ZmZGVkZDQzY2Q0ZDg1Li40MjNmNDFkZjYzMWU5ZGQ4MDA0MjcxZmEyYTBlYjhjMjQ4ZWIw
NzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwCkBAIC0zNjEsNiArMzYxLDExIEBAIHZvaWQgSURCRGF0YWJhc2U6OnN0b3AoKQogICAg
IG1fY29udGV4dFN0b3BwZWQgPSB0cnVlOwogfQogCitjb25zdCBjaGFyKiBJREJEYXRhYmFzZTo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJJREJEYXRhYmFzZSI7
Cit9CisKIGJvb2wgSURCRGF0YWJhc2U6OmNhblN1c3BlbmQoKSBjb25zdAogewogICAgIHJldHVy
biBtX2lzQ2xvc2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmgKaW5kZXggOWM5Yzc2MGNiOGRjZTYwN2ZjNjM4OTEyOGVlZWE0OTA5NWNhYWVmZC4u
MDNlNWVlYTM4M2MzYWUxY2NiMTAzNDE3OTVmZTVlYTViMDgxMTQ2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC04MCw5ICs4MCw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChpbnQ2NF90LCBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShpbnQ2NF90KTsK
IAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKLQogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmlydHVh
bCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIGZpbmFsIHsgcmV0dXJuIElEQkRhdGFiYXNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7IH0KQEAgLTEwOCwxMiArMTA1LDE1IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBSZWZDb3VudGVkPElEQkRhdGFiYXNlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8SURCRGF0YWJhc2U+OjpkZXJlZjsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogcHJpdmF0ZToK
ICAgICBJREJEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmQ+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKLSAg
ICAvLyBBY3RpdmVET01PYmplY3QKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiSURCRGF0YWJhc2UiOyB9CisgICAgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY2FuU3Vz
cGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggNDk0NzBlYWJi
MWYyOTNmZDc1MDk2OTQ5YTI1ZjgzODkzYWZkNTBjZS4uMzk2OTgwMDRkNWViYjZlNGZhMDNmOTZm
MGNiYzg3Mjk3ZmUyNzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQ0OCw2ICs0NDgsMTEgQEAgYm9vbCBJREJSZXF1ZXN0Ojpj
YW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gIW1faGFzUGVuZGluZ0FjdGl2aXR5OwogfQog
Citjb25zdCBjaGFyKiBJREJSZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIklEQlJlcXVlc3QiOworfQorCiBFdmVudFRhcmdldEludGVyZmFjZSBJREJS
ZXF1ZXN0OjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElEQlJl
cXVlc3RFdmVudFRhcmdldEludGVyZmFjZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggOWZkMjYyODYwYTAyYjMxYWE3MDJkN2QxYmIz
NjdmNDgyNDgxODViMi4uMzQyNWM3YjRhM2E4ZDRmZTc5OWZkYzBjN2FlNjA3MjFlMTljNjQ4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAt
OTMsOSArOTMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOwogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElE
QktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKIAotICAgIC8vIEFj
dGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25z
dCBvdmVycmlkZTsKLQogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmlydHVhbCBFdmVudFRhcmdl
dEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CkBAIC0xMTMsNiArMTEwLDkgQEAgcHVibGljOgogCiAgICAgRE9NUmVx
dWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUoKSB7IHJldHVybiAmbV9yZXF1ZXN0U3RhdGU7IH0KIAor
ICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIElEQlJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIElEQkRhdGFiYXNlQmFj
a2VuZDo6VGFza1R5cGUsIElEQlRyYW5zYWN0aW9uKik7CiAgICAgdm9pZCBlbnF1ZXVlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4pOwpAQCAtMTMwLDEyICsxMzAsMTIgQEAgcHJvdGVjdGVkOgogICAg
IGJvb2wgbV9yZXF1ZXN0QWJvcnRlZDsgLy8gTWF5IGJlIGFib3J0ZWQgYnkgdHJhbnNhY3Rpb24g
dGhlbiByZWNlaXZlIGFzeW5jIG9uc3VjY2VzczsgaWdub3JlIHZzLiBhc3NlcnQuCiAKIHByaXZh
dGU6Ci0gICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
ICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIklEQlJlcXVlc3QiOyB9CisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgLy8gRXZlbnRUYXJnZXQKKyAgICAv
LyBFdmVudFRhcmdldCBBUEkuCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgZmluYWwgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0
KCkgb3ZlcnJpZGUgZmluYWwgeyBkZXJlZigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCBjNDJmOTQ1YzQxMTM0
NzlmZTcxODNkMTA4OTgxZTBjMTBkNjU3ODQ4Li5lMjQ5YjRmYzE0NTBlYTBjNzA5MGQzYzU5ZTE5
ZDNlM2EwNmRmMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC00MDgsNiArNDA4LDExIEBAIHZvaWQgSURCVHJhbnNh
Y3Rpb246OnN0b3AoKQogICAgIGFib3J0KElHTk9SRV9FWENFUFRJT04pOwogfQogCitjb25zdCBj
aGFyKiBJREJUcmFuc2FjdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICJJREJUcmFuc2FjdGlvbiI7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OmVucXVl
dWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKG1fc3RhdGUgIT0gRmluaXNoZWQsICJBIGZpbmlzaGVkIHRyYW5zYWN0aW9uIHRyaWVkIHRv
IGVucXVldWUgYW4gZXZlbnQgb2YgdHlwZSAlcy4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmgKaW5kZXggZjVjZDM0ZDk4YTBlZGY4ZTM4N2U2NDRhMTRkZGViMTFmNTE2
MDdkYS4uNWU5ZTA0MmExZmFlZjRlZjM4MjliZWJjMjY5YTI2NjhlZGE0YmRjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBAIC0x
MTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBh
c3NSZWZQdHI8RXZlbnQ+KSBvdmVycmlkZTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAg
IHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdXNpbmcgUmVm
Q291bnRlZDxJREJUcmFuc2FjdGlvbj46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPElEQlRy
YW5zYWN0aW9uPjo6ZGVyZWY7CkBAIC0xMjUsMTIgKzEyNSwxMiBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJPcGVuQ3Vyc29yKElEQkN1cnNvciopOwogICAgIHZvaWQgdW5yZWdpc3Rlck9w
ZW5DdXJzb3IoSURCQ3Vyc29yKik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0
dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIklEQlRyYW5zYWN0aW9uIjsgfQorICAgIC8v
IEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgLy8gRXZlbnRUYXJnZXQKKyAgICAv
LyBFdmVudFRhcmdldCBBUEkuCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgeyBkZXJlZigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggMmMzOTNjMjk2ODExYTRkNmYwZTg3NWIzZTVl
MzQyMjc4MzAzZGRkMS4uY2RjMzkxODE1ZGEzY2Q1ODRiMDMwN2VlYmI1NWFiN2E1ZjhmZjdhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKQEAgLTgwOSw2ICs4MDksMTcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAg
bV9wcml2YXRlLmNsZWFyKCk7CiB9CiAKK2Jvb2wgTWVkaWFTb3VyY2U6OmNhblN1c3BlbmQoKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBXZSBjYW4gZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJu
IGZhbHNlOworfQorCitjb25zdCBjaGFyKiBNZWRpYVNvdXJjZTo6YWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJNZWRpYVNvdXJjZSI7Cit9CisKIHZvaWQgTWVkaWFT
b3VyY2U6Om9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcmIG9sZFN0YXRlLCBj
b25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKQogewogICAgIGlmIChpc09wZW4oKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4
IGJlYzJjMWI1YmQxMWFhYzk2YmY0NjY2MWVhMzY4NTcxMjNhMDA2NzQuLmMyY2NkOTc1MzMyOTkz
ZWFjNGMwYzk0OWJiMjk0NTEyNTUxOWU4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKQEAgLTk5LDEwICs5OSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgc3RhdGljIGJvb2wgaXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSk7
CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCi0gICAgdmlydHVhbCBib29sIGhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBv
dmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSBmaW5hbCB7IHJlZigpOyB9CkBAIC0xMTUsMTAgKzExMSwxNiBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+OjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+OjpkZXJlZjsKIAorICAgIC8vIEFj
dGl2ZURPTU9iamVjdCBBUEkuCisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBv
dmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1lZGlhU291cmNlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVNvdXJjZSI7IH0KKyAgICAv
LyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJv
b2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgb25SZWFkeVN0YXRlQ2hh
bmdlKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
U3RhdGUpOwogICAgIFZlY3RvcjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGFjdGl2ZVJhbmdlcygpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCmluZGV4IDVkMzNmYjFkNjczMDIxN2UyMjJmYmU3NzYyMDI5NzI2YTMyYmUzOWYu
LjVmZDIxZTU4MzRjNjU3NGM2YmMxZmQ3N2FkZTdjYTNhNzNlMzliNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTUx
MCw2ICs1MTAsMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnN0b3AoKQogICAgIG1fcmVtb3ZlVGlt
ZXIuc3RvcCgpOwogfQogCitjb25zdCBjaGFyKiBTb3VyY2VCdWZmZXI6OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiU291cmNlQnVmZmVyIjsKK30KKworYm9vbCBT
b3VyY2VCdWZmZXI6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wg
U291cmNlQnVmZmVyOjppc1JlbW92ZWQoKSBjb25zdAogewogICAgIHJldHVybiAhbV9zb3VyY2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
aAppbmRleCA0NzI2NmJiYWYxZDY0MTk2MmU0NTA2Y2Q5Y2MwNmFhNjgyYzQzNjVmLi40OTI2OWZm
ZTJjNzdmODk3ZWU3ODFiM2IwMzRkYWEyNDllZjE2MjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTEwNiwxMCArMTA2LDYg
QEAgcHVibGljOgogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsg
fQogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVyZmFjZQotICAgIHZpcnR1YWwgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlOwotCiAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVh
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOyB9CkBAIC0xMjgsNiArMTI0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNo
b3VsZEdlbmVyYXRlVGltZXN0YW1wcyhib29sIGZsYWcpIHsgbV9zaG91bGRHZW5lcmF0ZVRpbWVz
dGFtcHMgPSBmbGFnOyB9CiAKICAgICB2b2lkIHJhbmdlUmVtb3ZhbChjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBNZWRpYVRpbWUmKTsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgog
ICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KQEAgLTEzNiw3ICsxMzYsMTAgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICBTb3VyY2VCdWZmZXIoUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGU+JiYs
IE1lZGlhU291cmNlKik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiU291cmNlQnVmZmVyIjsgfQorICAgIC8v
IEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gU291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkRW5kU3RyZWFt
KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKaW5kZXggMzFmYzE5OGIxNzE2YzEzY2E4OTI2ZGY5ZWY0MjUwMjE1OGMz
YzRmYS4uZGJiMTA1Y2FhYjhhYzNlNDZmZWE1MGFlNWEyMGViMjUxMzljMTMwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCkBAIC0yODgsNiArMjg4LDE3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcCgp
CiAgICAgbV9wcml2YXRlVHJhY2stPnN0b3AoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OlN0b3BU
cmFja09ubHkpOwogfQogCitjb25zdCBjaGFyKiBNZWRpYVN0cmVhbVRyYWNrOjphY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlhU3RyZWFtVHJhY2siOworfQor
Citib29sIE1lZGlhU3RyZWFtVHJhY2s6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c2NoZWR1bGVFdmVudERpc3BhdGNoKFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50KQogewogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggYTc2OWE5ZTZjOGUx
MDRlZTM2ZjYxOGI2ODc3MmJmZTYwNGRmOTJhZS4uZWNlODUwNGQ5OTk5MzJlNDJlMjNhYWNhOWMx
NjAzNGFhNTQ5NjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTExMiwxNCArMTEyLDE0IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHNldFNvdXJjZShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPik7CiAK
IHByaXZhdGU6Ci0KICAgICB2b2lkIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CiAgICAgdm9p
ZCB0cmFja0RpZEVuZCgpOwogICAgIHZvaWQgc2NoZWR1bGVFdmVudERpc3BhdGNoKFBhc3NSZWZQ
dHI8RXZlbnQ+KTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhU3RyZWFtVHJhY2siOyB9
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZSBm
aW5hbDsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgZmluYWw7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAK
ICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCmluZGV4IDkyMzE2NTQxZDdjYWNmMmIwZjAy
M2ZjMWNhMTRmZDZjZWY2ZDU1NWQuLjZiYzQ1ZWQ0ZjE1NzZkNDZlODI3ZmM4Y2FkMWI4YjU1NDBk
MGZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENEVE1GU2VuZGVyLmNwcApAQCAtMTMxLDcgKzEzMSwxMiBAQCB2b2lkIFJUQ0RUTUZTZW5kZXI6
OmRpZFBsYXlUb25lKGNvbnN0IFN0cmluZyYgdG9uZSkKIHZvaWQgUlRDRFRNRlNlbmRlcjo6c3Rv
cCgpCiB7CiAgICAgbV9zdG9wcGVkID0gdHJ1ZTsKLSAgICBtX2hhbmRsZXItPnNldENsaWVudCgw
KTsKKyAgICBtX2hhbmRsZXItPnNldENsaWVudChudWxscHRyKTsKK30KKworY29uc3QgY2hhciog
UlRDRFRNRlNlbmRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICJSVENEVE1GU2VuZGVyIjsKIH0KIAogdm9pZCBSVENEVE1GU2VuZGVyOjpzY2hlZHVsZURpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCmluZGV4IGZjNzE3Zjk0MjZkYzU3
YzYwNWQ0YWEyMTgwNTlmZjA0YjFkNjBmMmEuLmM2OTEyYmRiZDZhZTY1ZWJmNGNkNjc2ZjI2N2E0
YmViMzliZDJiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oCkBAIC02MiwxNiArNjIsMTUgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBSVENEVE1GU2VuZGVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAg
ICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgb3ZlcnJpZGU7Ci0KICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ0RUTUZTZW5kZXI+
OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENEVE1GU2VuZGVyPjo6ZGVyZWY7CiAKIHBy
aXZhdGU6CiAgICAgUlRDRFRNRlNlbmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJIYW5k
bGVyPik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDRFRNRlNlbmRlciI7IH0KKyAgICAvLyBBY3RpdmVE
T01PYmplY3QKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNjaGVkdWxlRGlz
cGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9pZCBzY2hlZHVsZWRFdmVudFRp
bWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNzJlMWZmYTlkODg4NmFkOTI0MDNhMmEz
ZDdmMjIxNDhhNGVhZWNhYS4uMDVlYzE4MWZhMDJjNGE1MTE2OGU3NzUyNjBjNzkyNjgyMWRlZmMz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTY5MCw2ICs2OTAsMTEgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6c3RvcCgpCiAgICAgICAgICgqaSktPnN0b3AoKTsKIH0KIAorY29uc3QgY2hhciog
UlRDUGVlckNvbm5lY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJl
dHVybiAiUlRDUGVlckNvbm5lY3Rpb24iOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpk
aWRBZGRPclJlbW92ZVRyYWNrKCkKIHsKICAgICBuZWdvdGlhdGlvbk5lZWRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5oCmluZGV4IGU1N2E0ZjgzNmU4NzU2NTU3ZDFiZGFmNzAxMjhlZDk4NzI5MWU1YTUuLmQxNmEz
Mjc2OTcxMjYzNzA2YTczOTMwYjZlNzBiOWQ5ZDgxMGNiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTEy
NSw5ICsxMjUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJUQ1BlZXJDb25u
ZWN0aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAotICAg
IC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0K
ICAgICAvLyBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkT3JS
ZW1vdmVUcmFjaygpIG92ZXJyaWRlOwogCkBAIC0xNDYsNyArMTQzLDkgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAg
dmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJSVENQZWVyQ29ubmVjdGlvbiI7IH0KKyAgICAvLyBBY3RpdmVET01PYmpl
Y3QKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNoYW5nZVNpZ25hbGluZ1N0
YXRlKFNpZ25hbGluZ1N0YXRlKTsKICAgICB2b2lkIGNoYW5nZUljZUdhdGhlcmluZ1N0YXRlKElj
ZUdhdGhlcmluZ1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKaW5kZXggMDgyMzkxYTA1NTQwMjFkNWVkMjgyMzFkN2VlZjJhOTBjZjU1ZWVmNS4uNDMx
NDg1ZWI0NTY0ZmM2NTYzNjczMjNiZDk1ZmNjZTM3M2ZhNzA1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTg0LDYgKzg0LDE3IEBAIHZvaWQgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnN0b3AoKQogICAgIGNsZWFyKCk7CiB9CiAK
K2NvbnN0IGNoYXIqIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjphY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsIjsKK30KKworYm9vbCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6
Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRv
IGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewogICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNs
ZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKaW5kZXggNWI5
NDMzZTBiYTUwZWViZTllZmRjOWM0Yjg5MjQxY2Q1MjI5NjA3MS4uNjdmOGNlM2YyNDkyYTFkMzA4
YjIyNDY5OGZjYmZlN2YyYjIwMTNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuaApAQCAtNTEsMTMgKzUxLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I+KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJp
bmcmIGVycm9yKSBvdmVycmlkZTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1
YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9u
RXJyb3JDYWxsYmFjaz4pOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCBjbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAppbmRleCBkMTBkMWI0NTBlZTBjMzBj
YWEwODdjOTUwMWQyNmI2NGE0Mzg3M2Y3Li4yYTI0MDhhMzQxY2VhYzViODMyMjVmNzkwN2YwMmU0
NGUwZWUzZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKQEAgLTkxLDYgKzkxLDE3IEBAIHZvaWQg
UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCgpCiAgICAgY2xlYXIoKTsKIH0KIAorY29uc3QgY2hh
ciogUlRDU3RhdHNSZXF1ZXN0SW1wbDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJSVENTdGF0c1JlcXVlc3RJbXBsIjsKK30KKworYm9vbCBSVENTdGF0c1JlcXVl
c3RJbXBsOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRy
eSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFJUQ1N0
YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdEltcGwuaAppbmRleCA5NzNhNmFjYWExYzg5NmY2NzRlZGRjOWQ3MWVlZDVkNmQ0
N2ZmNjM3Li5jYjVkODVlZmI2ZWY5YWRlYmRiMDE5NTJiYzZjNTNlNjMwZTRhZGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVx
dWVzdEltcGwuaApAQCAtNTEsMTMgKzUxLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwotCiBwcml2YXRlOgogICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRD
UGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4pOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJUQ1N0YXRzUmVxdWVzdEltcGwiOyB9CisgICAg
Ly8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsZWFyKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVl
c3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJl
cXVlc3RJbXBsLmNwcAppbmRleCBkOTA3NTc4ZTQ2ZTU5NWRmNzhmY2UyNGZmYmM0ODhjZjhlY2Jl
NjBhLi5jZjA2NTNiYzBlYjk5MjE3NGZhMTA4NjFiMzExM2JjMWNjNGRmMTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuY3BwCkBAIC04MSw2ICs4MSwxNyBAQCB2b2lkIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6c3Rv
cCgpCiAgICAgY2xlYXIoKTsKIH0KIAorY29uc3QgY2hhciogUlRDVm9pZFJlcXVlc3RJbXBsOjph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJUQ1ZvaWRSZXF1ZXN0
SW1wbCI7Cit9CisKK2Jvb2wgUlRDVm9pZFJlcXVlc3RJbXBsOjpjYW5TdXNwZW5kKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewog
ICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaAppbmRleCA3NDhjOTZj
YTQwMjg1MWIwZWMyYTVmYWQzMmE4Y2Y4NmRhZGJkYzViLi43YTE4Yjg4Njc3OTZiMzNmMTRhMDA0
NjE2ZDgyZjA3YzVkNTZiMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgKQEAgLTUwLDE2ICs1MCwxNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKTsKIAotICAgIC8vIEFjdGl2
ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6
CiAgICAgUlRDVm9pZFJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxi
YWNrPik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDVm9pZFJlcXVlc3RJbXBsIjsgfQotCiAgICAgdm9p
ZCBjbGVhcigpOwogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PFZvaWRDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CiAgICAgUmVmUHRyPFJUQ1BlZXJDb25u
ZWN0aW9uRXJyb3JDYWxsYmFjaz4gbV9lcnJvckNhbGxiYWNrOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXgg
OWJkMDQ0Njg2ZTFjZjc3ZmFlYmI2OTY5YzVmYzY0NjAwMTdmMWZkNi4uZTRkOGQ3YWQxZjFjZDRi
NzMxYjFkNDI2ZWViZGU5NmEyZGIzNzEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTE3MCw2ICsxNzAsMTcg
QEAgdm9pZCBOb3RpZmljYXRpb246OmNvbnRleHREZXN0cm95ZWQoKQogICAgICAgICBtX25vdGlm
aWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPm5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZCh0aGlz
KTsKIH0KIAorY29uc3QgY2hhciogTm90aWZpY2F0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gIk5vdGlmaWNhdGlvbiI7Cit9CisKK2Jvb2wgTm90aWZpY2F0
aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBh
bmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE5vdGlmaWNh
dGlvbjo6ZmluYWxpemUoKQogewogICAgIGlmIChtX3N0YXRlID09IENsb3NlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAppbmRl
eCBkMTdjZWY4ZDczMWZiOWEyOWU1ZDE4NTdjNDRhZGRhMDM3OTMyZjA5Li4zODk0YmUyNmY3MzUx
ZjJlZTQ1YzBmNDU5OGIzN2RmYzdmYjk0ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC0xNDYsMTUgKzE0NiwxNSBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRCb2R5KGNvbnN0IFN0cmluZyYgYm9keSkgeyBtX2Jv
ZHkgPSBib2R5OyB9CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCi0gICAgdmly
dHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICAvLyBBY3RpdmVET01P
YmplY3QgQVBJLgorICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29s
IGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZQorICAgIC8vIEV2ZW50VGFyZ2V0IEFQSS4KICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRU
YXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJOb3RpZmljYXRp
b24iOyB9Ci0KICAgICB2b2lkIHN0YXJ0TG9hZGluZ0ljb24oKTsKICAgICB2b2lkIGZpbmlzaExv
YWRpbmdJY29uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXggMDk1ODJmNTc3MDVhODhi
OWJhMDUzMGQzNTYwZmUzNDc5MjRkMDVhZi4uYjJjODEzY2Y5ZmJiZjI1MTY0OWI5NjkzMjY4MTI5
MDRiMmZkNmUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKQEAgLTEwMiw3ICsxMDIsMTggQEAg
dm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OnN0b3AoKQogICAgICAgICByZXR1cm47CiAgICAgbV9j
bGllbnQtPmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwogICAgIG1fY2xpZW50LT5jbGVhck5vdGlmaWNhdGlvbnMoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKLSAgICBtX2NsaWVudCA9IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRyOworfQor
Citjb25zdCBjaGFyKiBOb3RpZmljYXRpb25DZW50ZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdAoreworICAgIHJldHVybiAiTm90aWZpY2F0aW9uQ2VudGVyIjsKK30KKworYm9vbCBOb3Rp
ZmljYXRpb25DZW50ZXI6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZv
aWQgTm90aWZpY2F0aW9uQ2VudGVyOjpyZXF1ZXN0VGltZWRPdXQoTm90aWZpY2F0aW9uQ2VudGVy
OjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2sqIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgK
aW5kZXggNmYyYjgwODczN2FmMzU5MGM2MDBiNzE5ODU4MDNkMTU4ZjA0ZWY2Ny4uYjNiMWEyNjVl
ZWM5YjU4NWJjNmY4MWJjN2FlMzY2ZDU4OGFiZTlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaApAQCAt
NzMsOSArNzMsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBOb3RpZmljYXRpb25DZW50ZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCi0gICAgLy8g
QWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiTm90aWZpY2F0aW9uQ2VudGVyIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgY2xhc3MgTm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrIDogcHVi
bGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrPiB7CiAgICAgcHVibGlj
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5j
cHAKaW5kZXggM2U0ZmM2NTk5MDc5YzAwZmI2Nzk0NzYwOWRkM2FjNjJiNWRkOWE0ZS4uZjc2Mjc1
YTM3MDkxMDdlMDdlMjYzMmI2MDA0MmE4ZDQ4YTFiZjcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCkBAIC05MCw2ICs5MCwxNyBA
QCB2b2lkIFJlYWRhYmxlU3RyZWFtOjpyZWFkeShTdWNjZXNzQ2FsbGJhY2spCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAorY29uc3QgY2hhciogUmVhZGFibGVTdHJlYW06OmFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUmVhZGFibGVTdHJlYW0iOworfQorCiti
b29sIFJlYWRhYmxlU3RyZWFtOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW0uaAppbmRleCBjODQ1ZmVkYjg2ZGE3YWViN2I3YTBiYzY4OWRkOGY1ZTFhYTFjOWEw
Li4wMGI0OTUwMmJjNjMwNmRlZWFkODU1NTAwYTJiMmJjNTJiNDU1MWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaApAQCAtNTgsOCArNTgs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJlYW1Tb3VyY2U+JiYpOwogICAgIHZp
cnR1YWwgflJlYWRhYmxlU3RyZWFtKCk7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVhZGFibGVTdHJlYW0i
OyB9Ci0KICAgICAvLyBKUyBBUEkgaW1wbGVtZW50YXRpb24uCiAgICAgU3RyaW5nIHN0YXRlKCkg
Y29uc3Q7CiAKQEAgLTcwLDYgKzY4LDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUmVhZGFi
bGVTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxSZWFkYWJsZVN0cmVhbVNvdXJj
ZT4mJik7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKKwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgUmVmPFJlYWRhYmxl
U3RyZWFtU291cmNlPiBtX3NvdXJjZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNzc4NjgzN2RmZjAxNTEwNzY3ZTM5MmQ4
ZGM1YzVjYjRlOTYwYjAyOS4uY2Q0Mjc3ZDVkYjBlY2E5ZGUxY2ZiYTdkMzJhNTk5NGFlN2I4NDAw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcApAQCAtMzEzLDYgKzMxMywxNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6c3RvcCgpCiAgICAg
Y2FsbE9uTWFpblRocmVhZChzdG9wRGlzcGF0Y2gsIHRoaXMpOwogfQogCitib29sIEF1ZGlvQ29u
dGV4dDo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkg
YW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKworY29uc3QgY2hhciog
QXVkaW9Db250ZXh0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IkF1ZGlvQ29udGV4dCI7Cit9CisKIERvY3VtZW50KiBBdWRpb0NvbnRleHQ6OmRvY3VtZW50KCkg
Y29uc3QKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDI1MmRiZTFk
ODAzYzM0ZjhiYTgwYWY1MDNlYmM0NzBiMWU3MjU2YTAuLmIzYjg5YzMwYzc2ZTg1MWRmMTVkNmQ5
YTVkM2UzZDUwMWQyNDE0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaApAQCAtODUsOSArODUsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9v
bCBpc09mZmxpbmVDb250ZXh0KCkgeyByZXR1cm4gbV9pc09mZmxpbmVDb250ZXh0OyB9CiAKLSAg
ICAvLyBEb2N1bWVudCBub3RpZmljYXRpb24KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJy
aWRlOwotCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7IC8vIEFTU0VSVHMgaWYgZG9j
dW1lbnQgbm8gbG9uZ2VyIGV4aXN0cy4KIAogICAgIEF1ZGlvRGVzdGluYXRpb25Ob2RlKiBkZXN0
aW5hdGlvbigpIHsgcmV0dXJuIG1fZGVzdGluYXRpb25Ob2RlLmdldCgpOyB9CkBAIC0yNjQsOCAr
MjYxLDYgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBib29sIGlzU2FtcGxlUmF0ZVJhbmdlR29v
ZChmbG9hdCBzYW1wbGVSYXRlKTsKICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkF1ZGlv
Q29udGV4dCI7IH0KLQogICAgIHZvaWQgY29uc3RydWN0Q29tbW9uKCk7CiAKICAgICB2b2lkIGxh
enlJbml0aWFsaXplKCk7CkBAIC0yOTYsNiArMjkxLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBy
ZWZOb2RlKEF1ZGlvTm9kZSopOwogICAgIHZvaWQgZGVyZWZOb2RlKEF1ZGlvTm9kZSopOwogCisg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAg
ICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICAvLyBXaGVuIHRoZSBjb250
ZXh0IGdvZXMgYXdheSwgdGhlcmUgbWlnaHQgc3RpbGwgYmUgc29tZSBzb3VyY2VzIHdoaWNoIGhh
dmVuJ3QgZmluaXNoZWQgcGxheWluZy4KICAgICAvLyBNYWtlIHN1cmUgdG8gZGVyZWZlcmVuY2Ug
dGhlbSBoZXJlLgogICAgIHZvaWQgZGVyZWZVbmZpbmlzaGVkU291cmNlTm9kZXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZTA0
ODNjNTU4NTAzMDYzNGEwN2EyOGIyYTg4ODY2ZjkxZDQ1ZTk4Mi4uNTc4NzhlNzYyYWE4ZmE4NTE2
NzBjNTNlMWU5NmYxODcwNTNkMzQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTQ4OSw2ICs0ODksMTEgQEAgdm9pZCBXZWJTb2Nr
ZXQ6OnN0b3AoKQogICAgICAgICBBY3RpdmVET01PYmplY3Q6OnVuc2V0UGVuZGluZ0FjdGl2aXR5
KHRoaXMpOwogfQogCitjb25zdCBjaGFyKiBXZWJTb2NrZXQ6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiAiV2ViU29ja2V0IjsKK30KKwogdm9pZCBXZWJTb2NrZXQ6
OmRpZENvbm5lY3QoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZENvbm5l
Y3QoKSIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5oCmluZGV4IDRmM2NlNzI4YTkxMzU4NzY4MDY0YTU4NGExYzAyMGE3ZWYzZDUwZGUuLjg2
YmUyYmI0MTc3NzYxN2ZlNmYxZWRmZTBmMThhMDc4ZDAzZjJjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTExMywxMyArMTEzLDEzIEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBmdW5jdGlvbnMuCi0gICAgdmly
dHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJXZWJTb2NrZXQiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIGNv
bnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
KyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAppbmRleCBmNDVmMzAyMGE3YzNiNGJiZTQ5ZmRkMjRl
ZDNhODU2OTE2ODBhZTZiLi4wNWY2NjIzYjAwYzRlM2FlM2RjNjQzMDMyOGQzOWI0NTlkMzkwYWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0xNTYsNiArMTU2LDE2IEBAIHZvaWQg
Rm9udExvYWRlcjo6ZGlkTGF5b3V0KCkKICAgICBsb2FkaW5nRG9uZSgpOwogfQogCitjb25zdCBj
aGFyKiBGb250TG9hZGVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gIkZvbnRMb2FkZXIiOworfQorCitib29sIEZvbnRMb2FkZXI6OmNhblN1c3BlbmQoKSBjb25z
dAoreworICAgIHJldHVybiAhbV9udW1Mb2FkaW5nRnJvbUNTUyAmJiAhbV9udW1Mb2FkaW5nRnJv
bUpTOworfQorCiB2b2lkIEZvbnRMb2FkZXI6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQpCiB7CiAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChldmVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRMb2FkZXIuaAppbmRleCA3ZTAwYWIxNTYwNWY0MDVlMWYyYmUzZTVhY2NjNDAxMGI4MWVj
NDZmLi42MjRkMTYxYjdmZTBjMzZlOTAxZTYxMzhhNWJjNWFmMzdkMzE1MjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250TG9hZGVyLmgKQEAgLTg1LDggKzg1LDYgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZEVy
cm9yKENTU0ZvbnRGYWNlUnVsZSosIENTU0ZvbnRGYWNlU291cmNlKik7CiAgICAgdm9pZCBsb2Fk
aW5nRG9uZSgpOwogCi0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAhbV9udW1Mb2FkaW5nRnJvbUNTUyAmJiAhbV9udW1Mb2FkaW5nRnJvbUpTOyB9
Ci0KIHByaXZhdGU6CiAgICAgRm9udExvYWRlcihEb2N1bWVudCopOwogCkBAIC05NSw3ICs5Myw5
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0
YSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRh
cmdldERhdGEoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJGb250TG9hZGVyIjsgfQorICAg
IC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdm9pZCBwZW5kaW5nRXZlbnRzVGltZXJGaXJlZCgpIHsgZmlyZVBlbmRpbmdF
dmVudHMoKTsgfQogICAgIHZvaWQgc2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggZTFlYzc3NWNhMGNkMzJlM2E3N2E2
YmZhZDkyOGMzNDliZDk4OTUyNS4uMWU1Y2MxZmZjNDcxMTIwNjgyZWZmMmFhNDY0ZjZmMzNiYjMz
MDRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaApAQCAtNjIsNyArNjIsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgbXVzdCBub3QgaGF2ZSBh
IHNpZGUgZWZmZWN0IG9mIGNyZWF0aW5nIG9yIGRlc3Ryb3lpbmcKICAgICAvLyBhbnkgQWN0aXZl
RE9NT2JqZWN0LiBUaGF0IG1lYW5zIHRoZXkgbXVzdCBub3QgcmVzdWx0IGluIGNhbGxzIHRvIGFy
Yml0cmFyeSBKYXZhU2NyaXB0LgotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCA9IDA7IC8vIFJldHVybmluZyBm
YWxzZSBpbiBjYW5TdXNwZW5kKCkgd2lsbCBwcmV2ZW50IHRoZSBwYWdlIGZyb20gZW50ZXJpbmcg
dGhlIFBhZ2VDYWNoZS4KICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXIuY3BwCmluZGV4IDczMTgxODhjN2RhNDVhMDhlMzVhMDFiZjU5YTdiMWNlMGY1ZDVl
MzUuLmU2MWUzZjE5ZTMzMTMyODBiMjgyZmNiZWFhN2E2NjJiNTMxZTFhY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcApAQCAtNzEsNiArNzEsMTEgQEAgYm9vbCBGaWxlUmVh
ZGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2NvbnN0IGNo
YXIqIEZpbGVSZWFkZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biAiRmlsZVJlYWRlciI7Cit9CisKIHZvaWQgRmlsZVJlYWRlcjo6c3RvcCgpCiB7CiAgICAgdGVy
bWluYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4IGM0NzU2MmZlMGJk
ZDExMGI0MjYzMTZiNmI5YzkzMmJiMjcyMTdiYzEuLjg5ZmNiMmEwYjdmODM3ZjMwZmE3ZTU4NGJh
MTNhNTYxM2MwNWY3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJl
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCkBAIC0xMDIs
MTAgKzEwMiwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEZpbGVSZWFkZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIkZpbGVSZWFkZXIiOyB9Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBj
b25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIC8v
IEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2
aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2YmJmMWYxYjE3MWIzOTljZDRl
MmRiZGU2OWQ2ZWNjMzQ3MGI1ZmM4Li41MTEyY2YyZWNjMzFlNjk1MDAzZTM5ZDRlY2VkYjQ5MDg2
YzRhZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ3
MTMsNiArNDcxMywxMSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblN1c3BlbmQoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOyAKIH0KIAorY29uc3QgY2hhciogSFRNTE1lZGlhRWxlbWVudDo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJIVE1MTWVkaWFFbGVt
ZW50IjsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKIHsKICAgICBMT0coTWVk
aWEsICJIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCVwKSIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAxNmUxZGEyMDI0ZWUyNDU4MDNmYmI4NGI4ZjA4OGFi
MmEyZGIwNGE0Li4yNDE5NDE2MWZiZWI5ZjAxYTE4MDJlNjE3ZjJmZDE1MmE3YTg4YzU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTIxLDEyICs1MjEsMTIgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50
KCkgb3ZlcnJpZGU7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgZnVuY3Rpb25zLgotICAgIHZp
cnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJIVE1MTWVkaWFFbGVtZW50IjsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5k
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0
IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lk
IG1lZGlhVm9sdW1lRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1
YmxpY1VSTE1hbmFnZXIuY3BwCmluZGV4IDI5MGJiYmQ2OWEzNmJiYTI1M2QzYmMzMmNkZmY0ZTM4
MGVjZjI5NDguLjA3YWEwZGZiNjc3NGJhMmE0OTViYzc0YThiZDhmZGM2ZGFmODk0NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcApAQCAtODYsNCArODYsOSBAQCBi
b29sIFB1YmxpY1VSTE1hbmFnZXI6OmNhblN1c3BlbmQoKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCitjb25zdCBjaGFyKiBQdWJsaWNVUkxNYW5hZ2VyOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlB1YmxpY1VSTE1hbmFnZXIiOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VS
TE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCmluZGV4
IGQ0NzA3MThmYzdlZDZlYWMyOTdlOTM2YjA0ZGE5ZGQ4MjlhMjk3NjQuLjkwZGEwZDhhYzQxZTM4
M2M1NGMwZTY3MjRkYTUwMzAwMDQ1N2UyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUHVibGljVVJMTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJM
TWFuYWdlci5oCkBAIC01MCwxMiArNTAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJV
UkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBVUkxSZWdpc3RyYWJsZSopOwogICAgIHZv
aWQgcmV2b2tlKGNvbnN0IFVSTCYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVyZmFj
ZS4KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBj
YW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlB1
YmxpY1VSTE1hbmFnZXIiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lk
IHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgCiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZz4gVVJMU2V0OwogICAgIHR5cGVkZWYgSGFz
aE1hcDxVUkxSZWdpc3RyeSosIFVSTFNldCA+IFJlZ2lzdHJ5VVJMTWFwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cAppbmRleCAxMzE4OWFkNmFmY2QxYTc3MzhjMzQ1MGQxZDgzZTVlMmVhNWFjZDM0Li44ZmMwZTAy
ZjlkMDcxNDQ4MWNjNDIyYzhhZmJjMTdhYzZiYTM0YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAt
MzkzNCw2ICszOTM0LDE3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c3RvcCgp
CiAgICAgfQogfQogCitjb25zdCBjaGFyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIldlYkdMUmVuZGVyaW5nQ29u
dGV4dCI7Cit9CisKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3VzcGVuZCgp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJl
LgorICAgIHJldHVybiBmYWxzZTsKK30KKwogV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0Mz
RGJvb2xlYW4gdmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDA2ODA4NDRiMmYzM2U4ZTBiMjdi
MDY0OTRmMDkwMThmYWM5NDcyMjUuLjBkNjQzZmUzY2M4Mjc4YmJjYzEwMDlkMTE5MmQ4NzkyY2Vi
NzA2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQwNCw3ICs0MDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ly8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIldlYkdMUmVuZGVyaW5nQ29udGV4dCI7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1
c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdM
U2hhcmVkT2JqZWN0Kik7CiAgICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9i
amVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCA5YzNkNzk0ODA0OTFiOTk4ZDE5
YjY0Zjk3NzBlYTRmNjBmMWUzMzM0Li41YTQ3ZTJjODMwODFjMjAzOWRjYjk5ZWFlYzdlNDZkZWU5
YjQ3NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtNTIwLDQgKzUyMCw5IEBAIGRv
dWJsZSBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkgY29uc3QKICAg
ICByZXR1cm4gZmlyZVRpbWU7CiB9CiAKK2NvbnN0IGNoYXIqIERPTVRpbWVyOjphY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkRPTVRpbWVyIjsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmluZGV4IGQ4OTVlYTQ3ZmFkODJh
ZDM2Nzg2ZWJjNjMzNWI1ODNlNzU4NGFlOTQuLjY5MWM1YjA0NWIzZTcxODYxMDk4ODk3NGUwMWMx
NTVmZjUxODY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTc5LDYgKzc5LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRl
OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91YmxlKSBjb25zdCBv
dmVycmlkZTsKIAorICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgICAgICBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICAgICAg
ZW51bSBUaW1lclRocm90dGxlU3RhdGUgewogICAgICAgICAgICAgVW5kZXRlcm1pbmVkLAogICAg
ICAgICAgICAgU2hvdWxkVGhyb3R0bGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCmlu
ZGV4IDcxYWQ4MmM1NmJiZGIyMzNmMmU4NTQ4MjBjNjZhOGYwY2Y5ZTE3YmIuLmE5ZjQ2N2ZmNGU3
NTM3OGZiZWIyMjdiYjA4NzkyYjAyNjJiZmRiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuY3BwCkBAIC00MTYsNiArNDE2LDE3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OnN0b3AoKQogICAg
IGNsb3NlKCk7CiB9CiAKK2NvbnN0IGNoYXIqIEV2ZW50U291cmNlOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkV2ZW50U291cmNlIjsKK30KKworYm9vbCBFdmVu
dFNvdXJjZTo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0
cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0
cjxNZXNzYWdlRXZlbnQ+IEV2ZW50U291cmNlOjpjcmVhdGVNZXNzYWdlRXZlbnQoKQogewogICAg
IFJlZlB0cjxNZXNzYWdlRXZlbnQ+IGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVhdGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRTb3VyY2UuaAppbmRleCBlMDhjZTQyZWYwNTM2ZWEzMWMwNzU5MWZmZWY0
MWM4NDE1MDNiODY5Li45ZTRmNTU3MDk1ZWQ2NmIyNGU0Y2I3MmRkY2NmNGZmNGY0ODI0N2ViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCkBAIC05MSw4ICs5MSwxMCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsQWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJlc291cmNl
RXJyb3ImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGlyZWN0Q2hlY2so
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIkV2ZW50U291cmNlIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
dm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdm9pZCBjb25uZWN0KCk7CiAgICAgdm9pZCBuZXR3b3JrUmVxdWVzdEVuZGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCmluZGV4IDllMjliN2Y3NTAwNTYy
M2YyZGVlZTI3ZTc0ZTQ3NDIwNTUyYTJmZGEuLmY0YWYxNWY0M2ZhMzczMzY1YjQyNGU5NTEwOTJi
YTM1NWU1NTE1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVU
aW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCkBAIC01
NywxMyArNTcsMTIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQo
KSBvdmVycmlkZSA9IDA7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIHN0b3AoKSBmaW5hbCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVu
ZCgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24pIGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUo
KSBmaW5hbCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiU3VzcGVuZGFibGVUaW1lciI7IH0KKyAg
ICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGUgZmluYWw7Cisg
ICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCBzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZvaWQgcmVzdW1l
KCkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBib29sIG1fc3VzcGVuZGVkOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCmluZGV4IDg1YjliNTQwOGVlMzM3NzJkMWJm
ZDkzMDQ0MTUyMzA1OWMxY2EyODUuLjVlZWU3ZWIxZjBlYzc1NzMwNjNkZDgzYTIyYmI5NTkwM2Vk
ZjNkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCkBAIC00
NCwxMSArNDQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFic3RyYWN0V29ya2VyOjpB
YnN0cmFjdFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQotICAgIDogQWN0
aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotewotfQotCiBBYnN0cmFjdFdvcmtlcjo6fkFic3RyYWN0
V29ya2VyKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJh
Y3RXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaAppbmRl
eCBiZDc5MzY4YzgwNjY1Zjc2YmY3OTdkZDU1MmMyZDdhMmFjZTExYjBkLi5iZThkMWM0OTMyOTgw
MmNjMmFmYjc2MGI5ZWI0MmFjNjI5M2Y3YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0Fic3RyYWN0V29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0
cmFjdFdvcmtlci5oCkBAIC00MywxMSArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBVUkw7CiAKLSAgICBjbGFzcyBBYnN0cmFjdFdvcmtlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEFic3RyYWN0V29ya2VyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEgeworICAgIGNsYXNzIEFic3RyYWN0V29ya2VyIDogcHVibGlj
IFJlZkNvdW50ZWQ8QWJzdHJhY3RXb3JrZXI+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSB7CiAgICAgcHVibGljOgotICAgICAgICAvLyBFdmVudFRhcmdldCBBUElzCi0gICAgICAg
IHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOyB9Ci0KICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihlcnJvcik7CiAKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxBYnN0cmFjdFdvcmtlcj46
OnJlZjsKQEAgLTU2LDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIH5BYnN0cmFjdFdvcmtlcigpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBleHBsaWNp
dCBBYnN0cmFjdFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgICAgIEFic3Ry
YWN0V29ya2VyKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0aGF0
IGNvbnZlcnRzIGEgVVJMIHRvIGFuIGFic29sdXRlIFVSTCBhbmQgY2hlY2tzIHRoZSByZXN1bHQg
Zm9yIHZhbGlkaXR5LgogICAgICAgICBVUkwgcmVzb2x2ZVVSTChjb25zdCBTdHJpbmcmIHVybCwg
RXhjZXB0aW9uQ29kZSYgZWMpOwpAQCAtNjUsOCArNjIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgZmluYWwgeyByZWYoKTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQotCi0gICAgICAgIHZpcnR1YWwgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJB
YnN0cmFjdFdvcmtlciI7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMTNiZDZkNmI3Zjc1MmQ1NGNlMzhlNWEyY2I5NWM1
ZmQ4MDM3ZWY5OS4uYmNiMmMxNDcyMjMyMjNlMjEwYTI1ZTdhYWMzZTE4YmQyOTgyZTRmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIG5ldHdvcmtT
dGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSkKIH0KIAogaW5saW5lIFdvcmtlcjo6V29ya2VyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgOiBBYnN0cmFjdFdvcmtlcihjb250
ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9jb250ZXh0UHJv
eHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKHRoaXMpKQogewogICAgIGlmICghYWxs
V29ya2VycykgewpAQCAtMTMyLDYgKzEzMiwxMSBAQCBib29sIFdvcmtlcjo6Y2FuU3VzcGVuZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitjb25zdCBjaGFyKiBXb3JrZXI6OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiV29ya2VyIjsKK30KKwogdm9p
ZCBXb3JrZXI6OnN0b3AoKQogewogICAgIHRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmgKaW5kZXggOTUwZThhYThmMGE5Y2FhN2Q0NTQwN2QyZTk4MDFlZTA4MTRiZjc5ZC4uZGIxYTgy
OWE5N2YwZWFiN2MzZjY1ZjA5YzEyN2ZhNmNlZmM3ODlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5oCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7CiAKLSAgICBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJz
dHJhY3RXb3JrZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKKyAgICBjbGFz
cyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICB2aXJ0
dWFsIH5Xb3JrZXIoKTsKQEAgLTU4LDEzICs1OCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgICAgIHZvaWQg
dGVybWluYXRlKCk7Ci0KLSAgICAgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICAgICAg
dmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAog
ICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKG1lc3NhZ2UpOwogCisgICAg
ICAgIC8vIEV2ZW50VGFyZ2V0IEFQSS4KKyAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAg
ICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgICAgICBib29sIGhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQg
V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIApAQCAtNzQsNiArNzYsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJy
aWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBvdmVycmlkZTsKIAor
ICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgICAgICBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKwogICAg
ICAgICBmcmllbmQgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpOwogCiAg
ICAgICAgIFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNTU2MGYzYzkzNDM3MzhhNDRhMzk5Yjdk
OWQ4ZmY2YmIwZmRiODdlMy4uYzA5NmNiMWFjMGEwZWY5ZGQ5MTE2YWQwNjVjNTc3MjIxMzY1ZWRm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xMjU2LDYgKzEyNTYs
MTEgQEAgYm9vbCBYTUxIdHRwUmVxdWVzdDo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJu
ICFtX2xvYWRlcjsKIH0KIAorY29uc3QgY2hhciogWE1MSHR0cFJlcXVlc3Q6OmFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiWE1MSHR0cFJlcXVlc3QiOworfQorCiB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiB7CiAgICAg
bV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuc3VzcGVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaAppbmRleCBkNGJiMTIxZWI0NDcyMDdiNTEyZWUyNTk1ZjdkNmY2MjgwNjZhZGFkLi5m
NWViNzdmYzA0ZWYxODYxMjljZTUwZmJkZjJmNTAxZjg3ZDEzMzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaApAQCAtMTYyLDEyICsxNjIsMTIgQEAgcHJpdmF0ZToKICAgICBleHBs
aWNpdCBYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAgICAvLyBB
Y3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlhNTEh0dHBSZXF1ZXN0IjsgfQorICAgIHZvaWQgY29u
dGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247541</attachid>
            <date>2015-02-27 13:22:10 -0800</date>
            <delta_ts>2015-02-27 13:45:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142096-20150227132155.patch</filename>
            <type>text/plain</type>
            <size>55665</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJhYjI3N2I3Njg5ZjYw
NWNlYzUwNGY1YWJiMWM5ODA5ZTE0ZGM0MS4uZGUyNGI4MGQ3NDI0MDA2YWYyMTc2NTVhMGVhZmFl
YjhhMTMyYzkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE1LTAyLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBBY3RpdmVET01PYmpl
Y3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5
MjMwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBBY3RpdmVET01PYmplY3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwgc28gdGhhdCBw
ZW9wbGUgYXQgbGVhc3QKKyAgICAgICAgdHJ5IHRvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24g
Zm9yIGl0LiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3YXMKKyAgICAgICAgcmV0dXJuaW5n
IGZhbHNlIHVuY29uZGl0aW9uYWxseSBhbmQgdGh1cyB3YXMgcHJldmVudGluZyBwYWdlcyBmcm9t
CisgICAgICAgIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCisKKzIwMTUtMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYVNvdXJjZSBzaG91bGQgYmUg
c3VzcGVuZGFibGUgd2hlbiBjbG9zZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjA4OQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5MjMwODU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNw
cAppbmRleCAyMGM0MTM0NTk1MmMzNTJlYzFlNTA1MmIzZjFjZDA3MTczOTk5ZmYzLi5mNjcwNThk
YTllZjlmNTBkNjliM2E4OTM4ZGQyNTA3ZjNjZTNiNmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTg4LDYgKzg4LDExIEBA
IHZvaWQgQmF0dGVyeU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoUGFzc1JlZlB0cjxCYXR0
ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzCiAgICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0
YXR1czsKIH0KIAordm9pZCBCYXR0ZXJ5TWFuYWdlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQmF0dGVyeU1hbmFnZXI6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikKIHsKICAgICBpZiAobV9iYXR0ZXJ5Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKaW5kZXggMzJlMjE1
MjgxMDQxOGUwN2MxNWM4NDQxOWJjODAyOTAyYWFiNzU1Ni4uNTZjYzgxMjNhNDAwZTU5M2NlYzM4
YzVhNzRjNTYxZjNkOGM1MTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0
ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKQEAgLTU4LDEyICs1OCw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBSZWZDb3VudGVkPEJhdHRlcnlNYW5hZ2VyPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8
QmF0dGVyeU1hbmFnZXI+OjpkZXJlZjsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbXBsZW1l
bnRhdGlvbi4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBvdmVycmlkZSB7IHJldHVybiAmbV9l
dmVudFRhcmdldERhdGE7IH0KICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZl
bnRUYXJnZXREYXRhKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFRhcmdldERhdGE7IH0KQEAg
LTcxLDYgKzY1LDEyIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQmF0dGVy
eU1hbmFnZXIoTmF2aWdhdG9yKik7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50
YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggNDdlOTg0YmViYmIzMGY0NzZjZmQ5NmFjYTlk
Nzc0MmYxYzBlZTAzNC4uMjNmOWQwZDEwNTY3ODI5Mzk1MGVkZTJiMjYyMDZiYjA2ZmIwNTgxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMjUwLDYgKzI1MCwyNyBAQCBTdHJpbmcgTWVkaWFLZXlT
ZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gcGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksIG9yaWdpbi0+ZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOwogfQogCitib29sIE1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwgbV9h
c3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIE1lZGlhS2V5U2Vz
c2lvbjo6c3RvcCgpCit7CisgICAgY2xvc2UoKTsKK30KKworY29uc3QgY2hhciogTWVkaWFLZXlT
ZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlh
S2V5U2Vzc2lvbiI7Cit9CisKK2Jvb2wgTWVkaWFLZXlTZXNzaW9uOjpjYW5TdXNwZW5kKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggNGRl
NDZmNzk3YjdhYTJiZGVkYTQxMThjOGZmZjFhZTBmY2FiZDk2NC4uNzgzNWM0OWY0MzUwMTJlZjli
OGUwNTJlOGY3YjU3OGU1NzMxYmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCkBAIC03MywxMCArNzMsNiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwg
bV9hc3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KLQogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIod2Via2l0a2V5YWRkZWQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIod2Via2l0a2V5ZXJyb3IpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIod2Via2l0a2V5bWVzc2FnZSk7CkBAIC04NCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgog
ICAgIE1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFLZXlzKiwg
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwogICAgIHZvaWQga2V5UmVxdWVzdFRpbWVyRmlyZWQo
KTsKQEAgLTExNiw3ICsxMTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYUtl
eVNlc3Npb24iOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCmluZGV4IDdkYWI4MDQxNjg3M2I2ZmYyYzgxOGUzN2UzMjBlMDU4NDUzMjU5ZjYuLjY4Mzdh
NGVjNjlhMjNlMmJiODA1ZDE4ZmQ4YTFkMGI2ZDAxZGU3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0yOTMsNiArMjkz
LDExIEBAIHZvaWQgR2VvbG9jYXRpb246OnN0b3AoKQogICAgIG1fcGVuZGluZ0ZvclBlcm1pc3Np
b25Ob3RpZmllcnMuY2xlYXIoKTsKIH0KIAorY29uc3QgY2hhciogR2VvbG9jYXRpb246OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiR2VvbG9jYXRpb24iOworfQor
CiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uaAppbmRleCAzNTkzZjEzNDZhOTMyNTE5MzQ2NjQwYjUzMzgzNGFm
OGUyNjdhMGU5Li4wYjMwZDMyY2E4ZTMzNWFlMzhhMTdkYmY0ZDk4NzMzNzE1ZDczMWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBA
IC01Nyw5ICs1Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5HZW9sb2Nh
dGlvbigpOwogCi0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwpA
QCAtODAsNyArNzcsMTEgQEAgcHJpdmF0ZToKICAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9u
KCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNEZW5pZWQo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93R2VvbG9jYXRpb24gPT0gTm87IH0KIApAQCAtMTQwLDgg
KzE0MSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihQ
b3NpdGlvbk9wdGlvbnMqKTsKICAgICB2b2lkIG1ha2VDYWNoZWRQb3NpdGlvbkNhbGxiYWNrcygp
OwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIkdlb2xvY2F0aW9uIjsgfQotCiAgICAgR2VvTm90aWZpZXJTZXQg
bV9vbmVTaG90czsKICAgICBXYXRjaGVycyBtX3dhdGNoZXJzOwogICAgIEdlb05vdGlmaWVyU2V0
IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggNTllZmYxY2UwYTNmNTFkZjg5
MWZkNDkzNTNmZmRlZGQ0M2NkNGQ4NS4uNDIzZjQxZGY2MzFlOWRkODAwNDI3MWZhMmEwZWI4YzI0
OGViMDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcApAQCAtMzYxLDYgKzM2MSwxMSBAQCB2b2lkIElEQkRhdGFiYXNlOjpzdG9wKCkK
ICAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAorY29uc3QgY2hhciogSURCRGF0YWJh
c2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiSURCRGF0YWJh
c2UiOworfQorCiBib29sIElEQkRhdGFiYXNlOjpjYW5TdXNwZW5kKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9pc0Nsb3NlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oCmluZGV4IDljOWM3NjBjYjhkY2U2MDdmYzYzODkxMjhlZWVhNDkwOTVjYWFl
ZmQuLjAzZTVlZWEzODNjM2FlMWNjYjEwMzQxNzk1ZmU1ZWE1YjA4MTE0NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtODAsOSArODAs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRf
dCk7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZSBmaW5hbCB7IHJldHVybiBJREJEYXRhYmFzZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC0xMDgsMTIgKzEwNSwxNSBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJEYXRhYmFzZT46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPElEQkRhdGFiYXNlPjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJ
LgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByaXZh
dGU6CiAgICAgSURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwog
Ci0gICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAg
ICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIklEQkRhdGFiYXNlIjsgfQorICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDQ5NDcw
ZWFiYjFmMjkzZmQ3NTA5Njk0OWEyNWY4Mzg5M2FmZDUwY2UuLjM5Njk4MDA0ZDVlYmI2ZTRmYTAz
Zjk2ZjBjYmM4NzI5N2ZlMjcxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00NDgsNiArNDQ4LDExIEBAIGJvb2wgSURCUmVxdWVz
dDo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX2hhc1BlbmRpbmdBY3Rpdml0eTsK
IH0KIAorY29uc3QgY2hhciogSURCUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJJREJSZXF1ZXN0IjsKK30KKwogRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
SURCUmVxdWVzdDo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogewogICAgIHJldHVybiBJ
REJSZXF1ZXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDlmZDI2Mjg2MGEwMmIzMWFhNzAyZDdk
MWJiMzY3ZjQ4MjQ4MTg1YjIuLjM0MjVjN2I0YTNhOGQ0ZmU3OTlmZGMwYzdhZTYwNzIxZTE5YzY0
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgK
QEAgLTkzLDkgKzkzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQpAQCAtMTEzLDYgKzExMCw5IEBAIHB1YmxpYzoKIAogICAgIERP
TVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlKCkgeyByZXR1cm4gJm1fcmVxdWVzdFN0YXRlOyB9
CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZvaWQgZW5xdWV1ZUV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKQEAgLTEzMCwxMiArMTMwLDEyIEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVkIGJ5IHRyYW5zYWN0
aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4gYXNzZXJ0LgogCiBw
cml2YXRlOgotICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJSZXF1ZXN0IjsgfQorICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzQyZjk0NWM0
MTEzNDc5ZmU3MTgzZDEwODk4MWUwYzEwZDY1Nzg0OC4uZTI0OWI0ZmMxNDUwZWEwYzcwOTBkM2M1
OWUxOWQzZTNhMDZkZjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNDA4LDYgKzQwOCwxMSBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uOjpzdG9wKCkKICAgICBhYm9ydChJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAorY29u
c3QgY2hhciogSURCVHJhbnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiSURCVHJhbnNhY3Rpb24iOworfQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpl
bnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShtX3N0YXRlICE9IEZpbmlzaGVkLCAiQSBmaW5pc2hlZCB0cmFuc2FjdGlvbiB0cmll
ZCB0byBlbnF1ZXVlIGFuIGV2ZW50IG9mIHR5cGUgJXMuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGY1Y2QzNGQ5OGEwZWRmOGUzODdlNjQ0YTE0ZGRlYjEx
ZjUxNjA3ZGEuLjVlOWUwNDJhMWZhZWY0ZWYzODI5YmViYzI2OWEyNjY4ZWRhNGJkYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApA
QCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVu
dChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJ
REJUcmFuc2FjdGlvbj46OmRlcmVmOwpAQCAtMTI1LDEyICsxMjUsMTIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZ2lzdGVyT3BlbkN1cnNvcihJREJDdXJzb3IqKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJPcGVuQ3Vyc29yKElEQkN1cnNvciopOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJUcmFuc2FjdGlvbiI7IH0KKyAg
ICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDcwODY0MTc1YWFmZjUxZDljOGI2N2Iw
NzhjYTUyMDM4ODJlYTQwM2IuLjkwYWNhNmQ0ZjQ1MWVkZjU0N2JlY2U4ODVhNjI2YjhkYzk3NjEx
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC04MTQsNiArODE0LDExIEBAIGJvb2wgTWVkaWFTb3VyY2U6OmNhblN1c3Bl
bmQoKSBjb25zdAogICAgIHJldHVybiBpc0Nsb3NlZCgpICYmICFtX2FzeW5jRXZlbnRRdWV1ZS5o
YXNQZW5kaW5nRXZlbnRzKCk7CiB9CiAKK2NvbnN0IGNoYXIqIE1lZGlhU291cmNlOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlhU291cmNlIjsKK30KKwog
dm9pZCBNZWRpYVNvdXJjZTo6b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYg
b2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3RhdGUpCiB7CiAgICAgaWYgKGlzT3Bl
bigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmgKaW5kZXggYWU4OWIwNGMxNjlkZGE4YTM0NjI0YWM2MzBkNDg1M2M5NjAxMWUxNS4uYzJj
Y2Q5NzUzMzI5OTNlYWM0YzBjOTQ5YmIyOTQ1MTI1NTE5ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtOTksMTEgKzk5LDYg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciosIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3Ry
aW5nJiB0eXBlKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwotICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8g
RXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpAQCAt
MTE2LDEwICsxMTEsMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50Pjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBNZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiTWVkaWFTb3VyY2UiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcm
IG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKTsKICAgICBWZWN0b3I8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBhY3RpdmVSYW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA1ZDMzZmIx
ZDY3MzAyMTdlMjIyZmJlNzc2MjAyOTcyNmEzMmJlMzlmLi41ZmQyMWU1ODM0YzY1NzRjNmJjMWZk
NzdhZGU3Y2EzYTczZTM5YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC01MTAsNiArNTEwLDE3IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzdG9wKCkKICAgICBtX3JlbW92ZVRpbWVyLnN0b3AoKTsKIH0KIAorY29uc3Qg
Y2hhciogU291cmNlQnVmZmVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gIlNvdXJjZUJ1ZmZlciI7Cit9CisKK2Jvb2wgU291cmNlQnVmZmVyOjpjYW5TdXNwZW5k
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhl
cmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNvdXJjZUJ1ZmZlcjo6aXNSZW1vdmVk
KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggNDcyNjZiYmFmMWQ2NDE5
NjJlNDUwNmNkOWNjMDZhYTY4MmM0MzY1Zi4uNDkyNjlmZmUyYzc3Zjg5N2VlNzgxYjNiMDM0ZGFh
MjQ5ZWYxNjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5oCkBAIC0xMDYsMTAgKzEwNiw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
YWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogICAgIC8v
IEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFNvdXJjZUJ1ZmZlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAtMTI4LDYg
KzEyNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMo
Ym9vbCBmbGFnKSB7IG1fc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzID0gZmxhZzsgfQogCiAgICAg
dm9pZCByYW5nZVJlbW92YWwoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJik7CisK
KyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICAvLyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CkBAIC0xMzYsNyArMTM2LDEwIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgU291cmNl
QnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmLCBNZWRpYVNvdXJjZSopOwogCi0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIlNvdXJjZUJ1ZmZlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEVuZFN0cmVhbShTb3VyY2VCdWZmZXJQcml2YXRlKiwg
Y29uc3QgV1RGOjpBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDMx
ZmMxOThiMTcxNmMxM2NhODkyNmRmOWVmNDI1MDIxNThjM2M0ZmEuLmRiYjEwNWNhYWI4YWMzZTQ2
ZmVhNTBhZTVhMjBlYjI1MTM5YzEzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtMjg4LDYgKzI4OCwx
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnN0b3AoKQogICAgIG1fcHJpdmF0ZVRyYWNrLT5z
dG9wKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpTdG9wVHJhY2tPbmx5KTsKIH0KIAorY29uc3Qg
Y2hhciogTWVkaWFTdHJlYW1UcmFjazo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJNZWRpYVN0cmVhbVRyYWNrIjsKK30KKworYm9vbCBNZWRpYVN0cmVhbVRyYWNr
OjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQg
ZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE1lZGlhU3RyZWFt
VHJhY2s6OnNjaGVkdWxlRXZlbnREaXNwYXRjaChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oCmluZGV4IGE3NjlhOWU2YzhlMTA0ZWUzNmY2MThiNjg3NzJiZmU2MDRk
ZjkyYWUuLmVjZTg1MDRkOTk5OTMyZTQyZTIzYWFjYTljMTYwMzRhYTU0OTY4MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRTb3VyY2Uo
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOwogCiBwcml2YXRlOgotCiAgICAgdm9pZCBj
b25maWd1cmVUcmFja1JlbmRlcmluZygpOwogICAgIHZvaWQgdHJhY2tEaWRFbmQoKTsKICAgICB2
b2lkIHNjaGVkdWxlRXZlbnREaXNwYXRjaChQYXNzUmVmUHRyPEV2ZW50Pik7CiAKLSAgICAvLyBB
Y3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlIGZpbmFsOwot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJNZWRpYVN0cmVhbVRyYWNrIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVj
dCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIGJvb2wgY2Fu
U3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAg
ICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSBmaW5hbCB7IHJlZigpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZT
ZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2Vu
ZGVyLmNwcAppbmRleCA5MjMxNjU0MWQ3Y2FjZjJiMGYwMjNmYzFjYTE0ZmQ2Y2VmNmQ1NTVkLi42
YmM0NWVkNGYxNTc2ZDQ2ZTgyN2ZjOGNhZDFiOGI1NTQwZDBmYzhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKQEAgLTEz
MSw3ICsxMzEsMTIgQEAgdm9pZCBSVENEVE1GU2VuZGVyOjpkaWRQbGF5VG9uZShjb25zdCBTdHJp
bmcmIHRvbmUpCiB2b2lkIFJUQ0RUTUZTZW5kZXI6OnN0b3AoKQogewogICAgIG1fc3RvcHBlZCA9
IHRydWU7Ci0gICAgbV9oYW5kbGVyLT5zZXRDbGllbnQoMCk7CisgICAgbV9oYW5kbGVyLT5zZXRD
bGllbnQobnVsbHB0cik7Cit9CisKK2NvbnN0IGNoYXIqIFJUQ0RUTUZTZW5kZXI6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUlRDRFRNRlNlbmRlciI7CiB9CiAK
IHZvaWQgUlRDRFRNRlNlbmRlcjo6c2NoZWR1bGVEaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+IGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEVE1GU2VuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0RUTUZTZW5kZXIuaAppbmRleCBmYzcxN2Y5NDI2ZGM1N2M2MDVkNGFhMjE4MDU5ZmYwNGIxZDYw
ZjJhLi5jNjkxMmJkYmQ2YWU2NWViZjRjZDY3NmYyNjdhNGJlYjM5YmQyYjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaApAQCAt
NjIsMTYgKzYyLDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUlRDRFRNRlNl
bmRlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiAg
ICAgdXNpbmcgUmVmQ291bnRlZDxSVENEVE1GU2VuZGVyPjo6cmVmOwogICAgIHVzaW5nIFJlZkNv
dW50ZWQ8UlRDRFRNRlNlbmRlcj46OmRlcmVmOwogCiBwcml2YXRlOgogICAgIFJUQ0RUTUZTZW5k
ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4s
IHN0ZDo6dW5pcXVlX3B0cjxSVENEVE1GU2VuZGVySGFuZGxlcj4pOwogCi0gICAgdmlydHVhbCBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
IlJUQ0RUTUZTZW5kZXIiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzY2hlZHVsZURpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4pOwogICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDcyZTFmZmE5ZDg4ODZhZDkyNDAzYTJhM2Q3ZjIyMTQ4YTRlYWVjYWEuLjA1ZWMx
ODFmYTAyYzRhNTExNjhlNzc1MjYwYzc5MjY4MjFkZWZjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBA
IC02OTAsNiArNjkwLDExIEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN0b3AoKQogICAgICAg
ICAoKmkpLT5zdG9wKCk7CiB9CiAKK2NvbnN0IGNoYXIqIFJUQ1BlZXJDb25uZWN0aW9uOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJUQ1BlZXJDb25uZWN0aW9u
IjsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCiB7
CiAgICAgbmVnb3RpYXRpb25OZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBlNTdhNGY4MzZlODc1
NjU1N2QxYmRhZjcwMTI4ZWQ5ODcyOTFlNWE1Li5kMTZhMzI3Njk3MTI2MzcwNmE3MzkzMGI2ZTcw
YjlkOWQ4MTBjYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xMjUsOSArMTI1LDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBSVENQZWVyQ29ubmVjdGlvbkV2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiAgICAgLy8gTWVkaWFTdHJlYW06Ok9i
c2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZE9yUmVtb3ZlVHJhY2soKSBvdmVycmlkZTsK
IApAQCAtMTQ2LDcgKzE0Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50
VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDUGVlckNv
bm5lY3Rpb24iOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdm9pZCBjaGFuZ2VTaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZSk7CiAg
ICAgdm9pZCBjaGFuZ2VJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCmluZGV4IDA4MjM5MWEwNTU0
MDIxZDVlZDI4MjMxZDdlZWYyYTkwY2Y1NWVlZjUuLjQzMTQ4NWViNDU2NGZjNjU2MzY3MzIzYmQ5
NWZjY2UzNzNmYTcwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGwuY3BwCkBAIC04NCw2ICs4NCwxNyBAQCB2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsOjpzdG9wKCkKICAgICBjbGVhcigpOwogfQogCitjb25zdCBjaGFyKiBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbCI7Cit9CisKK2Jvb2wg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNhblN1c3BlbmQoKSBjb25zdAorewor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNs
ZWFyKCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCmluZGV4IDViOTQzM2UwYmE1MGVlYmU5ZWZkYzljNGI4
OTI0MWNkNTIyOTYwNzEuLjY3ZjhjZTNmMjQ5MmExZDMwOGIyMjQ2OThmY2JmZTdmMmIyMDEzZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKQEAgLTUxLDEzICs1
MSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1Jl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcikgb3ZlcnJpZGU7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OwotCiBwcml2YXRlOgogICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxi
YWNrPiwgUGFzc1JlZlB0cjxSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s+KTsKIAotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbCI7IH0KKyAgICAvLyBB
Y3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXIoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5jcHAKaW5kZXggZDEwZDFiNDUwZWUwYzMwY2FhMDg3Yzk1MDFkMjZiNjRhNDM4NzNm
Ny4uMmEyNDA4YTM0MWNlYWM1YjgzMjI1Zjc5MDdmMDJlNDRlMGVlM2U3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwCkBAIC05MSw2ICs5MSwxNyBAQCB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnN0
b3AoKQogICAgIGNsZWFyKCk7CiB9CiAKK2NvbnN0IGNoYXIqIFJUQ1N0YXRzUmVxdWVzdEltcGw6
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUlRDU3RhdHNSZXF1
ZXN0SW1wbCI7Cit9CisKK2Jvb2wgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZCgpIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigp
CiB7CiAgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKaW5kZXgg
OTczYTZhY2FhMWM4OTZmNjc0ZWRkYzlkNzFlZWQ1ZDZkNDdmZjYzNy4uY2I1ZDg1ZWZiNmVmOWFk
ZWJkYjAxOTUyYmM2YzUzZTYzMGU0YWRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTUxLDEzICs1
MSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1Jl
ZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCi0gICAgLy8gQWN0aXZlRE9N
T2JqZWN0Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAg
ICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PFJUQ1N0YXRzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxs
YmFjaz4sIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+KTsKIAotICAgIHZpcnR1
YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICJSVENTdGF0c1JlcXVlc3RJbXBsIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEku
CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdm9pZCBjbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDkw
NzU3OGU0NmU1OTVkZjc4ZmNlMjRmZmJjNDg4Y2Y4ZWNiZTYwYS4uY2YwNjUzYmMwZWI5OTIxNzRm
YTEwODYxYjMxMTNiYzFjYzRkZjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtODEsNiArODEs
MTcgQEAgdm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OnN0b3AoKQogICAgIGNsZWFyKCk7CiB9CiAK
K2NvbnN0IGNoYXIqIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICJSVENWb2lkUmVxdWVzdEltcGwiOworfQorCitib29sIFJUQ1Zv
aWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBSVENWb2lkUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5j
bGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVm9pZFJlcXVlc3RJbXBsLmgKaW5kZXggNzQ4Yzk2Y2E0MDI4NTFiMGVjMmE1ZmFkMzJhOGNm
ODZkYWRiZGM1Yi4uN2ExOGI4ODY3Nzk2YjMzZjE0YTAwNDYxNmQ4MmYwN2M1ZDU2YjBmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRS
ZXF1ZXN0SW1wbC5oCkBAIC01MCwxNiArNTAsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0U3VjY2VlZGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29u
c3QgU3RyaW5nJiBlcnJvcik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgogICAgIFJUQ1ZvaWRSZXF1ZXN0SW1w
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNz
UmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaz4pOwogCi0gICAgdmlydHVhbCBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
IlJUQ1ZvaWRSZXF1ZXN0SW1wbCI7IH0KLQogICAgIHZvaWQgY2xlYXIoKTsKIAorICAgIC8vIEFj
dGl2ZURPTU9iamVjdAorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3Bl
bmQoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fc3VjY2Vz
c0NhbGxiYWNrOwogICAgIFJlZlB0cjxSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s+IG1f
ZXJyb3JDYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDliZDA0NDY4NmUxY2Y3N2ZhZWJiNjk2
OWM1ZmM2NDYwMDE3ZjFmZDYuLmU0ZDhkN2FkMWYxY2Q0YjczMWIxZDQyNmVlYmRlOTZhMmRiMzcx
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uY3BwCkBAIC0xNzAsNiArMTcwLDE3IEBAIHZvaWQgTm90aWZpY2F0aW9uOjpj
b250ZXh0RGVzdHJveWVkKCkKICAgICAgICAgbV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgp
LT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQodGhpcyk7CiB9CiAKK2NvbnN0IGNoYXIqIE5v
dGlmaWNhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJO
b3RpZmljYXRpb24iOworfQorCitib29sIE5vdGlmaWNhdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0
Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAg
IHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBOb3RpZmljYXRpb246OmZpbmFsaXplKCkKIHsKICAg
ICBpZiAobV9zdGF0ZSA9PSBDbG9zZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKaW5kZXggZDE3Y2VmOGQ3MzFmYjlhMjllNWQx
ODU3YzQ0YWRkYTAzNzkzMmYwOS4uMzg5NGJlMjZmNzM1MWYyZWU0NWMwZjQ1OThiMzdkZmM3ZmI5
NGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uaApAQCAtMTQ2LDE1ICsxNDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0Qm9keShjb25zdCBTdHJpbmcmIGJvZHkpIHsgbV9ib2R5ID0gYm9keTsgfQogCi0gICAgLy8g
QWN0aXZlRE9NT2JqZWN0IGludGVyZmFjZQotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJv
eWVkKCkgb3ZlcnJpZGU7CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIGNv
bnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAgICAvLyBFdmVudFRhcmdl
dCBBUEkuCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiTm90aWZpY2F0aW9uIjsgfQotCiAgICAgdm9pZCBzdGFy
dExvYWRpbmdJY29uKCk7CiAgICAgdm9pZCBmaW5pc2hMb2FkaW5nSWNvbigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DZW50ZXIuY3BwCmluZGV4IDA5NTgyZjU3NzA1YTg4YjliYTA1MzBkMzU2MGZlMzQ3OTI0ZDA1
YWYuLmIyYzgxM2NmOWZiYmYyNTE2NDliOTY5MzI2ODEyOTA0YjJmZDZlMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DZW50ZXIuY3BwCkBAIC0xMDIsNyArMTAyLDE4IEBAIHZvaWQgTm90aWZpY2F0aW9uQ2VudGVy
OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY2xpZW50LT5jYW5jZWxSZXF1ZXN0c0Zv
clBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX2NsaWVudC0+Y2xl
YXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9jbGllbnQg
PSAwOworICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKK30KKworY29uc3QgY2hhciogTm90aWZpY2F0
aW9uQ2VudGVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk5v
dGlmaWNhdGlvbkNlbnRlciI7Cit9CisKK2Jvb2wgTm90aWZpY2F0aW9uQ2VudGVyOjpjYW5TdXNw
ZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVy
IGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6
cmVxdWVzdFRpbWVkT3V0KE5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdENh
bGxiYWNrKiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCmluZGV4IDZmMmI4MDg3MzdhZjM1OTBj
NjAwYjcxOTg1ODAzZDE1OGYwNGVmNjcuLmIzYjFhMjY1ZWVjOWI1ODViYzZmODFiYzdhZTM2NmQ1
ODhhYmU5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKQEAgLTczLDkgKzczLDEwIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBOb3RpZmljYXRpb25DbGllbnQqKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZp
cnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk5vdGlmaWNhdGlvbkNl
bnRlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGNsYXNz
IE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNh
dGlvblJlcXVlc3RDYWxsYmFjaz4gewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCmluZGV4IDNlNGZjNjU5OTA3OWMw
MGZiNjc5NDc2MDlkZDNhYzYyYjVkZDlhNGUuLmY3NjI3NWEzNzA5MTA3ZTA3ZTI2MzJiNjAwNDJh
OGQ0OGExYmY3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtLmNwcApAQCAtOTAsNiArOTAsMTcgQEAgdm9pZCBSZWFkYWJsZVN0cmVhbTo6
cmVhZHkoU3VjY2Vzc0NhbGxiYWNrKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2NvbnN0
IGNoYXIqIFJlYWRhYmxlU3RyZWFtOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIlJlYWRhYmxlU3RyZWFtIjsKK30KKworYm9vbCBSZWFkYWJsZVN0cmVhbTo6Y2Fu
U3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJl
dHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggYzg0NWZl
ZGI4NmRhN2FlYjdiN2EwYmM2ODlkZDhmNWUxYWExYzlhMC4uMDBiNDk1MDJiYzYzMDZkZWVhZDg1
NTUwMGEyYjJiYzUyYjQ1NTFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8UmVhZGFibGVTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
PFJlYWRhYmxlU3RyZWFtU291cmNlPiYmKTsKICAgICB2aXJ0dWFsIH5SZWFkYWJsZVN0cmVhbSgp
OwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIlJlYWRhYmxlU3RyZWFtIjsgfQotCiAgICAgLy8gSlMgQVBJIGlt
cGxlbWVudGF0aW9uLgogICAgIFN0cmluZyBzdGF0ZSgpIGNvbnN0OwogCkBAIC03MCw2ICs2OCwx
MCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFJlYWRhYmxlU3RyZWFtKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJlYW1Tb3VyY2U+JiYpOwogCisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAg
ICBTdGF0ZSBtX3N0YXRlOwogICAgIFJlZjxSZWFkYWJsZVN0cmVhbVNvdXJjZT4gbV9zb3VyY2U7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwCmluZGV4IDc3ODY4MzdkZmYwMTUxMDc2N2UzOTJkOGRjNWM1Y2I0ZTk2MGIwMjkuLmNkNDI3
N2Q1ZGIwZWNhOWRlMWNmYmE3ZDMyYTU5OTRhZTdiODQwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTMxMyw2ICszMTMsMTcg
QEAgdm9pZCBBdWRpb0NvbnRleHQ6OnN0b3AoKQogICAgIGNhbGxPbk1haW5UaHJlYWQoc3RvcERp
c3BhdGNoLCB0aGlzKTsKIH0KIAorYm9vbCBBdWRpb0NvbnRleHQ6OmNhblN1c3BlbmQoKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2NvbnN0IGNoYXIqIEF1ZGlvQ29udGV4dDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJBdWRpb0NvbnRleHQiOworfQorCiBE
b2N1bWVudCogQXVkaW9Db250ZXh0Ojpkb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaAppbmRleCAyNTJkYmUxZDgwM2MzNGY4YmE4MGFmNTAzZWJjNDcw
YjFlNzI1NmEwLi5iM2I4OWMzMGM3NmU4NTFkZjE1ZDZkOWE1ZDNlM2Q1MDFkMjQxNDcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTg1
LDkgKzg1LDYgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgaXNPZmZsaW5lQ29udGV4dCgpIHsg
cmV0dXJuIG1faXNPZmZsaW5lQ29udGV4dDsgfQogCi0gICAgLy8gRG9jdW1lbnQgbm90aWZpY2F0
aW9uCi0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogICAgIERvY3VtZW50KiBk
b2N1bWVudCgpIGNvbnN0OyAvLyBBU1NFUlRzIGlmIGRvY3VtZW50IG5vIGxvbmdlciBleGlzdHMu
CiAKICAgICBBdWRpb0Rlc3RpbmF0aW9uTm9kZSogZGVzdGluYXRpb24oKSB7IHJldHVybiBtX2Rl
c3RpbmF0aW9uTm9kZS5nZXQoKTsgfQpAQCAtMjY0LDggKzI2MSw2IEBAIHByb3RlY3RlZDoKICAg
ICBzdGF0aWMgYm9vbCBpc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQgc2FtcGxlUmF0ZSk7CiAg
ICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBdWRpb0NvbnRleHQiOyB9Ci0KICAgICB2b2lk
IGNvbnN0cnVjdENvbW1vbigpOwogCiAgICAgdm9pZCBsYXp5SW5pdGlhbGl6ZSgpOwpAQCAtMjk2
LDYgKzI5MSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmTm9kZShBdWRpb05vZGUqKTsKICAg
ICB2b2lkIGRlcmVmTm9kZShBdWRpb05vZGUqKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
IG92ZXJyaWRlOworCiAgICAgLy8gV2hlbiB0aGUgY29udGV4dCBnb2VzIGF3YXksIHRoZXJlIG1p
Z2h0IHN0aWxsIGJlIHNvbWUgc291cmNlcyB3aGljaCBoYXZlbid0IGZpbmlzaGVkIHBsYXlpbmcu
CiAgICAgLy8gTWFrZSBzdXJlIHRvIGRlcmVmZXJlbmNlIHRoZW0gaGVyZS4KICAgICB2b2lkIGRl
cmVmVW5maW5pc2hlZFNvdXJjZU5vZGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGUwNDgzYzU1ODUwMzA2MzRhMDdhMjhiMmE4
ODg2NmY5MWQ0NWU5ODIuLjU3ODc4ZTc2MmFhOGZhODUxNjcwYzUzZTFlOTZmMTg3MDUzZDM0ODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CkBAIC00ODksNiArNDg5LDExIEBAIHZvaWQgV2ViU29ja2V0OjpzdG9wKCkKICAgICAgICAgQWN0
aXZlRE9NT2JqZWN0Ojp1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAorY29uc3QgY2hh
ciogV2ViU29ja2V0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IldlYlNvY2tldCI7Cit9CisKIHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0KCkKIHsKICAgICBM
T0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDb25uZWN0KCkiLCB0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCA0ZjNjZTcyOGE5
MTM1ODc2ODA2NGE1ODRhMWMwMjBhN2VmM2Q1MGRlLi44NmJlMmJiNDE3Nzc2MTdmZTZmMWVkZmUw
ZjE4YTA3OGQwM2YyYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5oCkBAIC0xMTMsMTMgKzExMywxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICAvLyBB
Y3RpdmVET01PYmplY3QgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJv
eWVkKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiV2ViU29ja2V0IjsgfQorICAgIC8v
IEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5j
cHAKaW5kZXggZjQ1ZjMwMjBhN2MzYjRiYmU0OWZkZDI0ZWQzYTg1NjkxNjgwYWU2Yi4uMDVmNjYy
M2IwMGM0ZTNhZTNkYzY0MzAzMjhkMzliNDU5ZDM5MGFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9h
ZGVyLmNwcApAQCAtMTU2LDYgKzE1NiwxNiBAQCB2b2lkIEZvbnRMb2FkZXI6OmRpZExheW91dCgp
CiAgICAgbG9hZGluZ0RvbmUoKTsKIH0KIAorY29uc3QgY2hhciogRm9udExvYWRlcjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJGb250TG9hZGVyIjsKK30KKwor
Ym9vbCBGb250TG9hZGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fbnVt
TG9hZGluZ0Zyb21DU1MgJiYgIW1fbnVtTG9hZGluZ0Zyb21KUzsKK30KKwogdm9pZCBGb250TG9h
ZGVyOjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewogICAgIG1fcGVu
ZGluZ0V2ZW50cy5hcHBlbmQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKaW5kZXggN2Uw
MGFiMTU2MDVmNDA1ZTFmMmJlM2U1YWNjYzQwMTBiODFlYzQ2Zi4uNjI0ZDE2MWI3ZmUwYzM2ZTkw
MWU2MTM4YTViYzVhZjM3ZDMxNTIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0Zv
bnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCkBAIC04NSw4
ICs4NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRFcnJvcihDU1NGb250RmFjZVJ1bGUqLCBD
U1NGb250RmFjZVNvdXJjZSopOwogICAgIHZvaWQgbG9hZGluZ0RvbmUoKTsKIAotICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fbnVtTG9hZGlu
Z0Zyb21DU1MgJiYgIW1fbnVtTG9hZGluZ0Zyb21KUzsgfQotCiBwcml2YXRlOgogICAgIEZvbnRM
b2FkZXIoRG9jdW1lbnQqKTsKIApAQCAtOTUsNyArOTMsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiRm9udExvYWRlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJ
LgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgcGVuZGlu
Z0V2ZW50c1RpbWVyRmlyZWQoKSB7IGZpcmVQZW5kaW5nRXZlbnRzKCk7IH0KICAgICB2b2lkIHNj
aGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oCmluZGV4IGUxZWM3NzVjYTBjZDMyZTNhNzdhNmJmYWQ5MjhjMzQ5YmQ5ODk1MjUuLjFl
NWNjMWZmYzQ3MTEyMDY4MmVmZjJhYTQ2NGY2ZjMzYmIzMzA0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
QWN0aXZlRE9NT2JqZWN0LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhl
c2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90IGhhdmUgYSBzaWRlIGVmZmVjdCBvZiBjcmVhdGlu
ZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55IEFjdGl2ZURPTU9iamVjdC4gVGhhdCBtZWFucyB0
aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxscyB0byBhcmJpdHJhcnkgSmF2YVNjcmlwdC4KLSAg
ICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjYW5T
dXNwZW5kKCkgY29uc3QgPSAwOyAvLyBSZXR1cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZCgpIHdp
bGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCiAgICAgdmly
dHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CiAgICAgdmlydHVhbCB2b2lk
IHJlc3VtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCA3MzE4
MTg4YzdkYTQ1YTA4ZTM1YTAxYmY1OWE3YjFjZTBmNWQ1ZTM1Li5lNjFlM2YxOWUzMzEzMjgwYjI4
MmZjYmVhYTdhNjYyYjUzMWUxYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5j
cHAKQEAgLTcxLDYgKzcxLDExIEBAIGJvb2wgRmlsZVJlYWRlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitjb25zdCBjaGFyKiBGaWxlUmVhZGVyOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkZpbGVSZWFkZXIiOworfQorCiB2
b2lkIEZpbGVSZWFkZXI6OnN0b3AoKQogewogICAgIHRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXIuaAppbmRleCBjNDc1NjJmZTBiZGQxMTBiNDI2MzE2YjZiOWM5MzJiYjI3
MjE3YmMxLi44OWZjYjJhMGI3ZjgzN2YzMGZhN2U1ODRiYTEzYTU2MTNjMDVmN2VkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaApAQCAtMTAyLDEwICsxMDIsMTAgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBGaWxlUmVhZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJGaWxlUmVhZGVyIjsg
fQotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVy
cmlkZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggNmJiZjFmMWIxNzFiMzk5Y2Q0ZTJkYmRlNjlkNmVjYzM0NzBiNWZjOC4u
NTExMmNmMmVjYzMxZTY5NTAwM2UzOWQ0ZWNlZGI0OTA4NmM0YWY1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NzEzLDYgKzQ3MTMsMTEgQEAgYm9vbCBI
VE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsgCiB9
CiAKK2NvbnN0IGNoYXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdAoreworICAgIHJldHVybiAiSFRNTE1lZGlhRWxlbWVudCI7Cit9CisKIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c3RvcCgpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6
c3RvcCglcCkiLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggMTZlMWRhMjAyNGVlMjQ1ODAzZmJiODRiOGYwODhhYjJhMmRiMDRhNC4uMjQxOTQxNjFmYmVi
OWYwMWExODAyZTYxN2YyZmQxNTJhN2E4OGM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTUyMSwxMiArNTIxLDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRlOwogCi0gICAgLy8g
QWN0aXZlRE9NT2JqZWN0IGZ1bmN0aW9ucy4KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiSFRNTE1lZGlhRWxlbWVu
dCI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgp
IG92ZXJyaWRlOworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVu
ZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9u
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgp
IG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVZvbHVtZURpZENoYW5nZSgp
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcAppbmRl
eCAyOTBiYmJkNjlhMzZiYmEyNTNkM2JjMzJjZGZmNGUzODBlY2YyOTQ4Li4wN2FhMGRmYjY3NzRi
YTJhNDk1YmM3NGE4YmQ4ZmRjNmRhZjg5NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGlj
VVJMTWFuYWdlci5jcHAKQEAgLTg2LDQgKzg2LDkgQEAgYm9vbCBQdWJsaWNVUkxNYW5hZ2VyOjpj
YW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorY29uc3QgY2hhciogUHVi
bGljVVJMTWFuYWdlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICJQdWJsaWNVUkxNYW5hZ2VyIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuaAppbmRleCBkNDcwNzE4ZmM3ZWQ2ZWFjMjk3ZTkz
NmIwNGRhOWRkODI5YTI5NzY0Li45MGRhMGQ4YWM0MWUzODNjNTRjMGU2NzI0ZGE1MDMwMDA0NTdl
MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuaApAQCAtNTAsMTIgKzUw
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgVVJMJiwgVVJMUmVnaXN0cmFibGUqKTsKICAgICB2b2lkIHJldm9rZShjb25zdCBVUkwmKTsK
IAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJy
aWRlOwotCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJQdWJsaWNVUkxNYW5hZ2VyIjsgfQorICAg
IC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAg
Ym9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIHR5cGVkZWYgSGFzaFNl
dDxTdHJpbmc+IFVSTFNldDsKICAgICB0eXBlZGVmIEhhc2hNYXA8VVJMUmVnaXN0cnkqLCBVUkxT
ZXQgPiBSZWdpc3RyeVVSTE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMTMxODlhZDZhZmNkMWE3
NzM4YzM0NTBkMWQ4M2U1ZTJlYTVhY2QzNC4uOGZjMGUwMmY5ZDA3MTQ0ODFjYzQyMmM4YWZiYzE3
YWM2YmEzNGI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTM5MzQsNiArMzkzNCwxNyBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN0b3AoKQogICAgIH0KIH0KIAorY29uc3QgY2hh
ciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiOworfQorCitib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0Rib29sZWFuIHZhbHVlID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaAppbmRleCAwNjgwODQ0YjJmMzNlOGUwYjI3YjA2NDk0ZjA5MDE4ZmFjOTQ3MjI1Li4w
ZDY0M2ZlM2NjODI3OGJiY2MxMDA5ZDExOTJkODc5MmNlYjcwNmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBA
IC00MDQsNyArNDA0LDggQEAgcHJvdGVjdGVkOgogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAg
IHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHQiOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwogICAgIHZv
aWQgYWRkQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5jcHAKaW5kZXggOWMzZDc5NDgwNDkxYjk5OGQxOWI2NGY5NzcwZWE0ZjYwZjFlMzMzNC4u
NWE0N2UyYzgzMDgxYzIwMzlkY2I5OWVhZWM3ZTQ2ZGVlOWI0NzRjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01UaW1lci5jcHAKQEAgLTUyMCw0ICs1MjAsOSBAQCBkb3VibGUgRE9NVGltZXI6OmFsaWduZWRG
aXJlVGltZShkb3VibGUgZmlyZVRpbWUpIGNvbnN0CiAgICAgcmV0dXJuIGZpcmVUaW1lOwogfQog
Citjb25zdCBjaGFyKiBET01UaW1lcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJET01UaW1lciI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NVGltZXIuaAppbmRleCBkODk1ZWE0N2ZhZDgyYWQzNjc4NmViYzYzMzViNTgzZTc1ODRh
ZTk0Li42OTFjNWIwNDViM2U3MTg2MTA5ODg5NzRlMDFjMTU1ZmY1MTg2NzUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5oCkBAIC03OSw2ICs3OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCBkb3Vi
bGUgYWxpZ25lZEZpcmVUaW1lKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICAgICAgLy8g
QWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgICAgIGVudW0gVGltZXJUaHJvdHRsZVN0YXRl
IHsKICAgICAgICAgICAgIFVuZGV0ZXJtaW5lZCwKICAgICAgICAgICAgIFNob3VsZFRocm90dGxl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAppbmRleCA3MWFkODJjNTZiYmRiMjMzZjJl
ODU0ODIwYzY2YThmMGNmOWUxN2JiLi5hOWY0NjdmZjRlNzUzNzhmYmViMjI3YmIwODc5MmIwMjYy
YmZkYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcApAQCAtNDE2LDYgKzQxNiwx
NyBAQCB2b2lkIEV2ZW50U291cmNlOjpzdG9wKCkKICAgICBjbG9zZSgpOwogfQogCitjb25zdCBj
aGFyKiBFdmVudFNvdXJjZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJFdmVudFNvdXJjZSI7Cit9CisKK2Jvb2wgRXZlbnRTb3VyY2U6OmNhblN1c3BlbmQoKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBFdmVudFNv
dXJjZTo6Y3JlYXRlTWVzc2FnZUV2ZW50KCkKIHsKICAgICBSZWZQdHI8TWVzc2FnZUV2ZW50PiBl
dmVudCA9IE1lc3NhZ2VFdmVudDo6Y3JlYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgK
aW5kZXggZTA4Y2U0MmVmMDUzNmVhMzFjMDc1OTFmZmVmNDFjODQxNTAzYjg2OS4uOWU0ZjU1NzA5
NWVkNjZiMjRlNGNiNzJkZGNjZjRmZjRmNDgyNDdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuaApAQCAtOTEsOCArOTEsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bEFjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJFdmVudFNvdXJjZSI7IH0K
KyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY29ubmVjdCgp
OwogICAgIHZvaWQgbmV0d29ya1JlcXVlc3RFbmRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3Bl
bmRhYmxlVGltZXIuaAppbmRleCA5ZTI5YjdmNzUwMDU2MjNmMmRlZWUyN2U3NGU0NzQyMDU1MmEy
ZmRhLi5mNGFmMTVmNDNmYTM3MzM2NWI0MjRlOTUxMDkyYmEzNTVlNTUxNWRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaApAQCAtNTcsMTMgKzU3LDEyIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUgPSAwOwogCi0gICAg
Ly8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgZmluYWwgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBmaW5hbCBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgZmluYWwgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIlN1c3BlbmRhYmxlVGltZXIiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQ
SS4KKyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlIGZpbmFsOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9u
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlIGZpbmFsOwogCiAg
ICAgYm9vbCBtX3N1c3BlbmRlZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9BYnN0cmFjdFdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29y
a2VyLmNwcAppbmRleCA4NWI5YjU0MDhlZTMzNzcyZDFiZmQ5MzA0NDE1MjMwNTljMWNhMjg1Li41
ZWVlN2ViMWYwZWM3NTczMDYzZGQ4M2EyMmJiOTU5MDNlZGYzZDc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcApAQCAtNDQsMTEgKzQ0LDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1BYnN0cmFjdFdvcmtlcjo6QWJzdHJhY3RXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
LXsKLX0KLQogQWJzdHJhY3RXb3JrZXI6On5BYnN0cmFjdFdvcmtlcigpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmgKaW5kZXggYmQ3OTM2OGM4MDY2NWY3NmJmNzk3
ZGQ1NTJjMmQ3YTJhY2UxMWIwZC4uYmU4ZDFjNDkzMjk4MDJjYzJhZmI3NjBiOWViNDJhYzYyOTNm
N2JiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaApAQCAtNDMsMTEg
KzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVVJMOwogCi0gICAgY2xh
c3MgQWJzdHJhY3RXb3JrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxBYnN0cmFjdFdvcmtlcj4sIHB1
YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsK
KyAgICBjbGFzcyBBYnN0cmFjdFdvcmtlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFic3RyYWN0V29y
a2VyPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgLy8gRXZlbnRUYXJnZXQgQVBJcwotICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQotCiAg
ICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOwogCiAgICAgICAg
IHVzaW5nIFJlZkNvdW50ZWQ8QWJzdHJhY3RXb3JrZXI+OjpyZWY7CkBAIC01Niw3ICs1Myw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB+QWJzdHJhY3RXb3JrZXIoKTsK
IAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgZXhwbGljaXQgQWJzdHJhY3RXb3JrZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOworICAgICAgICBBYnN0cmFjdFdvcmtlcigpID0gZGVmYXVsdDsK
IAogICAgICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyBhIFVSTCB0byBhbiBh
YnNvbHV0ZSBVUkwgYW5kIGNoZWNrcyB0aGUgcmVzdWx0IGZvciB2YWxpZGl0eS4KICAgICAgICAg
VVJMIHJlc29sdmVVUkwoY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKQEAg
LTY1LDggKzYyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0K
ICAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSBmaW5hbCB7
IGRlcmVmKCk7IH0KLQotICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQWJzdHJhY3RXb3JrZXIiOyB9CiAgICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmlu
ZGV4IDEzYmQ2ZDZiN2Y3NTJkNTRjZTM4ZTVhMmNiOTVjNWZkODAzN2VmOTkuLmJjYjJjMTQ3MjIz
MjIzZTIxMGEyNWU3YWFjM2UxOGJkMjk4MmU0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5j
cHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxp
bmUpCiB9CiAKIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KQotICAgIDogQWJzdHJhY3RXb3JrZXIoY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9i
amVjdCgmY29udGV4dCkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJv
eHk6OmNyZWF0ZSh0aGlzKSkKIHsKICAgICBpZiAoIWFsbFdvcmtlcnMpIHsKQEAgLTEzMiw2ICsx
MzIsMTEgQEAgYm9vbCBXb3JrZXI6OmNhblN1c3BlbmQoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIldvcmtlciI7Cit9CisKIHZvaWQgV29ya2VyOjpzdG9wKCkKIHsKICAg
ICB0ZXJtaW5hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDk1MGU4YWE4ZjBhOWNh
YTdkNDU0MDdkMmU5ODAxZWUwODE0YmY3OWQuLmRiMWE4MjlhOTdmMGVhYjdjM2Y2NWYwOWMxMjdm
YTZjZWZjNzg5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtNDYsNyArNDYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi0g
ICAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwcml2YXRlIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudCB7CisgICAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGlj
IEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXb3JrZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1
cmwsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdmlydHVhbCB+V29ya2VyKCk7CkBAIC01OCwx
MyArNTgsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHBvc3RNZXNzYWdl
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCos
IEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwotCi0gICAgICAg
IHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihtZXNzYWdlKTsKIAorICAgICAgICAvLyBFdmVudFRhcmdldCBBUEku
CisgICAgICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKKyAgICAgICAgLy8gQWN0aXZlRE9NT2JqZWN0
IEFQSS4KKyAgICAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsK
KwogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik7CiAKQEAgLTc0LDYgKzc2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgb3ZlcnJpZGU7CiAKKyAgICAgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0IEFQSS4KKyAgICAgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICAgICAgZnJpZW5kIHZvaWQgbmV0d29y
a1N0YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKTsKIAogICAgICAgICBSZWZQdHI8V29ya2VyU2Ny
aXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCmluZGV4IDU1NjBmM2M5MzQzNzM4YTQ0YTM5OWI3ZDlkOGZmNmJiMGZkYjg3ZTMuLmMwOTZj
YjFhYzBhMGVmOWRkOTExNmFkMDY1YzU3NzIyMTM2NWVkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcApAQCAtMTI1Niw2ICsxMjU2LDExIEBAIGJvb2wgWE1MSHR0cFJlcXVl
c3Q6OmNhblN1c3BlbmQoKSBjb25zdAogICAgIHJldHVybiAhbV9sb2FkZXI7CiB9CiAKK2NvbnN0
IGNoYXIqIFhNTEh0dHBSZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIlhNTEh0dHBSZXF1ZXN0IjsKK30KKwogdm9pZCBYTUxIdHRwUmVxdWVzdDo6c3Vz
cGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogewogICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxl
LnN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZDRiYjEyMWVi
NDQ3MjA3YjUxMmVlMjU5NWY3ZDZmNjI4MDY2YWRhZC4uZjVlYjc3ZmMwNGVmMTg2MTI5Y2U1MGZi
ZGYyZjUwMWY4N2QxMzM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTE2
MiwxMiArMTYyLDEyIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgWE1MSHR0cFJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmly
dHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJYTUxIdHRwUmVxdWVzdCI7IH0KKyAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlk
ZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXN1bWUoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247547</attachid>
            <date>2015-02-27 13:45:18 -0800</date>
            <delta_ts>2015-02-27 15:01:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142096-20150227134503.patch</filename>
            <type>text/plain</type>
            <size>56485</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJhYjI3N2I3Njg5ZjYw
NWNlYzUwNGY1YWJiMWM5ODA5ZTE0ZGM0MS4uZGUyNGI4MGQ3NDI0MDA2YWYyMTc2NTVhMGVhZmFl
YjhhMTMyYzkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE1LTAyLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBBY3RpdmVET01PYmpl
Y3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5
MjMwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBBY3RpdmVET01PYmplY3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwgc28gdGhhdCBw
ZW9wbGUgYXQgbGVhc3QKKyAgICAgICAgdHJ5IHRvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24g
Zm9yIGl0LiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3YXMKKyAgICAgICAgcmV0dXJuaW5n
IGZhbHNlIHVuY29uZGl0aW9uYWxseSBhbmQgdGh1cyB3YXMgcHJldmVudGluZyBwYWdlcyBmcm9t
CisgICAgICAgIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCisKKzIwMTUtMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYVNvdXJjZSBzaG91bGQgYmUg
c3VzcGVuZGFibGUgd2hlbiBjbG9zZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjA4OQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5MjMwODU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNw
cAppbmRleCAyMGM0MTM0NTk1MmMzNTJlYzFlNTA1MmIzZjFjZDA3MTczOTk5ZmYzLi5jZjYyYTA4
NDMwYzc5NzMyNjU5NmJmZmU3NjU4YzE2NmQ5MjZjMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTg4LDYgKzg4LDExIEBA
IHZvaWQgQmF0dGVyeU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoUGFzc1JlZlB0cjxCYXR0
ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzCiAgICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0
YXR1czsKIH0KIAorYm9vbCBCYXR0ZXJ5TWFuYWdlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQmF0dGVyeU1hbmFnZXI6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikKIHsKICAgICBpZiAobV9iYXR0ZXJ5Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKaW5kZXggMzJlMjE1
MjgxMDQxOGUwN2MxNWM4NDQxOWJjODAyOTAyYWFiNzU1Ni4uNTZjYzgxMjNhNDAwZTU5M2NlYzM4
YzVhNzRjNTYxZjNkOGM1MTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0
ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKQEAgLTU4LDEyICs1OCw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBSZWZDb3VudGVkPEJhdHRlcnlNYW5hZ2VyPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8
QmF0dGVyeU1hbmFnZXI+OjpkZXJlZjsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbXBsZW1l
bnRhdGlvbi4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBvdmVycmlkZSB7IHJldHVybiAmbV9l
dmVudFRhcmdldERhdGE7IH0KICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZl
bnRUYXJnZXREYXRhKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFRhcmdldERhdGE7IH0KQEAg
LTcxLDYgKzY1LDEyIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQmF0dGVy
eU1hbmFnZXIoTmF2aWdhdG9yKik7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50
YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggNDdlOTg0YmViYmIzMGY0NzZjZmQ5NmFjYTlk
Nzc0MmYxYzBlZTAzNC4uMjNmOWQwZDEwNTY3ODI5Mzk1MGVkZTJiMjYyMDZiYjA2ZmIwNTgxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMjUwLDYgKzI1MCwyNyBAQCBTdHJpbmcgTWVkaWFLZXlT
ZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gcGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksIG9yaWdpbi0+ZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOwogfQogCitib29sIE1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwgbV9h
c3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIE1lZGlhS2V5U2Vz
c2lvbjo6c3RvcCgpCit7CisgICAgY2xvc2UoKTsKK30KKworY29uc3QgY2hhciogTWVkaWFLZXlT
ZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlh
S2V5U2Vzc2lvbiI7Cit9CisKK2Jvb2wgTWVkaWFLZXlTZXNzaW9uOjpjYW5TdXNwZW5kKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggNGRl
NDZmNzk3YjdhYTJiZGVkYTQxMThjOGZmZjFhZTBmY2FiZDk2NC4uNzgzNWM0OWY0MzUwMTJlZjli
OGUwNTJlOGY3YjU3OGU1NzMxYmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCkBAIC03MywxMCArNzMsNiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwg
bV9hc3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KLQogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIod2Via2l0a2V5YWRkZWQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIod2Via2l0a2V5ZXJyb3IpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIod2Via2l0a2V5bWVzc2FnZSk7CkBAIC04NCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgog
ICAgIE1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFLZXlzKiwg
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwogICAgIHZvaWQga2V5UmVxdWVzdFRpbWVyRmlyZWQo
KTsKQEAgLTExNiw3ICsxMTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYUtl
eVNlc3Npb24iOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCmluZGV4IDdkYWI4MDQxNjg3M2I2ZmYyYzgxOGUzN2UzMjBlMDU4NDUzMjU5ZjYuLjY4Mzdh
NGVjNjlhMjNlMmJiODA1ZDE4ZmQ4YTFkMGI2ZDAxZGU3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0yOTMsNiArMjkz
LDExIEBAIHZvaWQgR2VvbG9jYXRpb246OnN0b3AoKQogICAgIG1fcGVuZGluZ0ZvclBlcm1pc3Np
b25Ob3RpZmllcnMuY2xlYXIoKTsKIH0KIAorY29uc3QgY2hhciogR2VvbG9jYXRpb246OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiR2VvbG9jYXRpb24iOworfQor
CiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uaAppbmRleCAzNTkzZjEzNDZhOTMyNTE5MzQ2NjQwYjUzMzgzNGFm
OGUyNjdhMGU5Li4wYjMwZDMyY2E4ZTMzNWFlMzhhMTdkYmY0ZDk4NzMzNzE1ZDczMWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBA
IC01Nyw5ICs1Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5HZW9sb2Nh
dGlvbigpOwogCi0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwpA
QCAtODAsNyArNzcsMTEgQEAgcHJpdmF0ZToKICAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9u
KCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNEZW5pZWQo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93R2VvbG9jYXRpb24gPT0gTm87IH0KIApAQCAtMTQwLDgg
KzE0MSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihQ
b3NpdGlvbk9wdGlvbnMqKTsKICAgICB2b2lkIG1ha2VDYWNoZWRQb3NpdGlvbkNhbGxiYWNrcygp
OwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIkdlb2xvY2F0aW9uIjsgfQotCiAgICAgR2VvTm90aWZpZXJTZXQg
bV9vbmVTaG90czsKICAgICBXYXRjaGVycyBtX3dhdGNoZXJzOwogICAgIEdlb05vdGlmaWVyU2V0
IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggNTllZmYxY2UwYTNmNTFkZjg5
MWZkNDkzNTNmZmRlZGQ0M2NkNGQ4NS4uNDIzZjQxZGY2MzFlOWRkODAwNDI3MWZhMmEwZWI4YzI0
OGViMDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcApAQCAtMzYxLDYgKzM2MSwxMSBAQCB2b2lkIElEQkRhdGFiYXNlOjpzdG9wKCkK
ICAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAorY29uc3QgY2hhciogSURCRGF0YWJh
c2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiSURCRGF0YWJh
c2UiOworfQorCiBib29sIElEQkRhdGFiYXNlOjpjYW5TdXNwZW5kKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9pc0Nsb3NlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oCmluZGV4IDljOWM3NjBjYjhkY2U2MDdmYzYzODkxMjhlZWVhNDkwOTVjYWFl
ZmQuLjAzZTVlZWEzODNjM2FlMWNjYjEwMzQxNzk1ZmU1ZWE1YjA4MTE0NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtODAsOSArODAs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRf
dCk7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZSBmaW5hbCB7IHJldHVybiBJREJEYXRhYmFzZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC0xMDgsMTIgKzEwNSwxNSBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJEYXRhYmFzZT46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPElEQkRhdGFiYXNlPjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJ
LgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByaXZh
dGU6CiAgICAgSURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwog
Ci0gICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAg
ICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIklEQkRhdGFiYXNlIjsgfQorICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDQ5NDcw
ZWFiYjFmMjkzZmQ3NTA5Njk0OWEyNWY4Mzg5M2FmZDUwY2UuLjM5Njk4MDA0ZDVlYmI2ZTRmYTAz
Zjk2ZjBjYmM4NzI5N2ZlMjcxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00NDgsNiArNDQ4LDExIEBAIGJvb2wgSURCUmVxdWVz
dDo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX2hhc1BlbmRpbmdBY3Rpdml0eTsK
IH0KIAorY29uc3QgY2hhciogSURCUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJJREJSZXF1ZXN0IjsKK30KKwogRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
SURCUmVxdWVzdDo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogewogICAgIHJldHVybiBJ
REJSZXF1ZXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDlmZDI2Mjg2MGEwMmIzMWFhNzAyZDdk
MWJiMzY3ZjQ4MjQ4MTg1YjIuLjM0MjVjN2I0YTNhOGQ0ZmU3OTlmZGMwYzdhZTYwNzIxZTE5YzY0
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgK
QEAgLTkzLDkgKzkzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQpAQCAtMTEzLDYgKzExMCw5IEBAIHB1YmxpYzoKIAogICAgIERP
TVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlKCkgeyByZXR1cm4gJm1fcmVxdWVzdFN0YXRlOyB9
CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZvaWQgZW5xdWV1ZUV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKQEAgLTEzMCwxMiArMTMwLDEyIEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVkIGJ5IHRyYW5zYWN0
aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4gYXNzZXJ0LgogCiBw
cml2YXRlOgotICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJSZXF1ZXN0IjsgfQorICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzQyZjk0NWM0
MTEzNDc5ZmU3MTgzZDEwODk4MWUwYzEwZDY1Nzg0OC4uZTI0OWI0ZmMxNDUwZWEwYzcwOTBkM2M1
OWUxOWQzZTNhMDZkZjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNDA4LDYgKzQwOCwxMSBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uOjpzdG9wKCkKICAgICBhYm9ydChJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAorY29u
c3QgY2hhciogSURCVHJhbnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiSURCVHJhbnNhY3Rpb24iOworfQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpl
bnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShtX3N0YXRlICE9IEZpbmlzaGVkLCAiQSBmaW5pc2hlZCB0cmFuc2FjdGlvbiB0cmll
ZCB0byBlbnF1ZXVlIGFuIGV2ZW50IG9mIHR5cGUgJXMuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGY1Y2QzNGQ5OGEwZWRmOGUzODdlNjQ0YTE0ZGRlYjEx
ZjUxNjA3ZGEuLjVlOWUwNDJhMWZhZWY0ZWYzODI5YmViYzI2OWEyNjY4ZWRhNGJkYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApA
QCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVu
dChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJ
REJUcmFuc2FjdGlvbj46OmRlcmVmOwpAQCAtMTI1LDEyICsxMjUsMTIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZ2lzdGVyT3BlbkN1cnNvcihJREJDdXJzb3IqKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJPcGVuQ3Vyc29yKElEQkN1cnNvciopOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJUcmFuc2FjdGlvbiI7IH0KKyAg
ICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDcwODY0MTc1YWFmZjUxZDljOGI2N2Iw
NzhjYTUyMDM4ODJlYTQwM2IuLjkwYWNhNmQ0ZjQ1MWVkZjU0N2JlY2U4ODVhNjI2YjhkYzk3NjEx
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC04MTQsNiArODE0LDExIEBAIGJvb2wgTWVkaWFTb3VyY2U6OmNhblN1c3Bl
bmQoKSBjb25zdAogICAgIHJldHVybiBpc0Nsb3NlZCgpICYmICFtX2FzeW5jRXZlbnRRdWV1ZS5o
YXNQZW5kaW5nRXZlbnRzKCk7CiB9CiAKK2NvbnN0IGNoYXIqIE1lZGlhU291cmNlOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlhU291cmNlIjsKK30KKwog
dm9pZCBNZWRpYVNvdXJjZTo6b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYg
b2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3RhdGUpCiB7CiAgICAgaWYgKGlzT3Bl
bigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmgKaW5kZXggYWU4OWIwNGMxNjlkZGE4YTM0NjI0YWM2MzBkNDg1M2M5NjAxMWUxNS4uYzJj
Y2Q5NzUzMzI5OTNlYWM0YzBjOTQ5YmIyOTQ1MTI1NTE5ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtOTksMTEgKzk5LDYg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciosIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3Ry
aW5nJiB0eXBlKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwotICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8g
RXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpAQCAt
MTE2LDEwICsxMTEsMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50Pjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBNZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiTWVkaWFTb3VyY2UiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcm
IG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKTsKICAgICBWZWN0b3I8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBhY3RpdmVSYW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA1ZDMzZmIx
ZDY3MzAyMTdlMjIyZmJlNzc2MjAyOTcyNmEzMmJlMzlmLi41ZmQyMWU1ODM0YzY1NzRjNmJjMWZk
NzdhZGU3Y2EzYTczZTM5YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC01MTAsNiArNTEwLDE3IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzdG9wKCkKICAgICBtX3JlbW92ZVRpbWVyLnN0b3AoKTsKIH0KIAorY29uc3Qg
Y2hhciogU291cmNlQnVmZmVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gIlNvdXJjZUJ1ZmZlciI7Cit9CisKK2Jvb2wgU291cmNlQnVmZmVyOjpjYW5TdXNwZW5k
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhl
cmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNvdXJjZUJ1ZmZlcjo6aXNSZW1vdmVk
KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggNDcyNjZiYmFmMWQ2NDE5
NjJlNDUwNmNkOWNjMDZhYTY4MmM0MzY1Zi4uNDkyNjlmZmUyYzc3Zjg5N2VlNzgxYjNiMDM0ZGFh
MjQ5ZWYxNjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5oCkBAIC0xMDYsMTAgKzEwNiw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
YWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogICAgIC8v
IEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFNvdXJjZUJ1ZmZlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAtMTI4LDYg
KzEyNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMo
Ym9vbCBmbGFnKSB7IG1fc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzID0gZmxhZzsgfQogCiAgICAg
dm9pZCByYW5nZVJlbW92YWwoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJik7CisK
KyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICAvLyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CkBAIC0xMzYsNyArMTM2LDEwIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgU291cmNl
QnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmLCBNZWRpYVNvdXJjZSopOwogCi0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIlNvdXJjZUJ1ZmZlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEVuZFN0cmVhbShTb3VyY2VCdWZmZXJQcml2YXRlKiwg
Y29uc3QgV1RGOjpBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDMx
ZmMxOThiMTcxNmMxM2NhODkyNmRmOWVmNDI1MDIxNThjM2M0ZmEuLmRiYjEwNWNhYWI4YWMzZTQ2
ZmVhNTBhZTVhMjBlYjI1MTM5YzEzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtMjg4LDYgKzI4OCwx
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnN0b3AoKQogICAgIG1fcHJpdmF0ZVRyYWNrLT5z
dG9wKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpTdG9wVHJhY2tPbmx5KTsKIH0KIAorY29uc3Qg
Y2hhciogTWVkaWFTdHJlYW1UcmFjazo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJNZWRpYVN0cmVhbVRyYWNrIjsKK30KKworYm9vbCBNZWRpYVN0cmVhbVRyYWNr
OjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQg
ZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE1lZGlhU3RyZWFt
VHJhY2s6OnNjaGVkdWxlRXZlbnREaXNwYXRjaChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oCmluZGV4IGE3NjlhOWU2YzhlMTA0ZWUzNmY2MThiNjg3NzJiZmU2MDRk
ZjkyYWUuLmVjZTg1MDRkOTk5OTMyZTQyZTIzYWFjYTljMTYwMzRhYTU0OTY4MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRTb3VyY2Uo
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOwogCiBwcml2YXRlOgotCiAgICAgdm9pZCBj
b25maWd1cmVUcmFja1JlbmRlcmluZygpOwogICAgIHZvaWQgdHJhY2tEaWRFbmQoKTsKICAgICB2
b2lkIHNjaGVkdWxlRXZlbnREaXNwYXRjaChQYXNzUmVmUHRyPEV2ZW50Pik7CiAKLSAgICAvLyBB
Y3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlIGZpbmFsOwot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJNZWRpYVN0cmVhbVRyYWNrIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVj
dCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIGJvb2wgY2Fu
U3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAg
ICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSBmaW5hbCB7IHJlZigpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZT
ZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2Vu
ZGVyLmNwcAppbmRleCA5MjMxNjU0MWQ3Y2FjZjJiMGYwMjNmYzFjYTE0ZmQ2Y2VmNmQ1NTVkLi5m
MDE0YjRjNzAzOWY3ZGYxNzZkYjFlNmY4Zjg4NjM3ODc2OGRmMDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKQEAgLTEz
MSw3ICsxMzEsMTggQEAgdm9pZCBSVENEVE1GU2VuZGVyOjpkaWRQbGF5VG9uZShjb25zdCBTdHJp
bmcmIHRvbmUpCiB2b2lkIFJUQ0RUTUZTZW5kZXI6OnN0b3AoKQogewogICAgIG1fc3RvcHBlZCA9
IHRydWU7Ci0gICAgbV9oYW5kbGVyLT5zZXRDbGllbnQoMCk7CisgICAgbV9oYW5kbGVyLT5zZXRD
bGllbnQobnVsbHB0cik7Cit9CisKK2NvbnN0IGNoYXIqIFJUQ0RUTUZTZW5kZXI6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUlRDRFRNRlNlbmRlciI7Cit9CisK
K2Jvb2wgUlRDRFRNRlNlbmRlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6
IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKIH0K
IAogdm9pZCBSVENEVE1GU2VuZGVyOjpzY2hlZHVsZURpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RUTUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRFRNRlNlbmRlci5oCmluZGV4IGZjNzE3Zjk0MjZkYzU3YzYwNWQ0YWEyMTgwNTlmZjA0YjFk
NjBmMmEuLmQyZGYxZTUzZjNjNDYwMWZlYjA0M2FjMzk1MGFiNTY3NTJjZmEwYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCkBA
IC02MiwxNiArNjIsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSVENEVE1G
U2VuZGVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAotICAg
IC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0K
ICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ0RUTUZTZW5kZXI+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxSVENEVE1GU2VuZGVyPjo6ZGVyZWY7CiAKIHByaXZhdGU6CiAgICAgUlRDRFRNRlNl
bmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
Piwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJIYW5kbGVyPik7CiAKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUlRDRFRNRlNlbmRlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9p
ZCBzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNzJlMWZm
YTlkODg4NmFkOTI0MDNhMmEzZDdmMjIxNDhhNGVhZWNhYS4uZTg0MzNlNWU3Y2ZlYmFmZGVlYjM4
NjE4NDU4OGRjZTBhNGJkMjBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTY5MCw2ICs2OTAsMTcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiAgICAgICAgICgqaSktPnN0b3AoKTsK
IH0KIAorY29uc3QgY2hhciogUlRDUGVlckNvbm5lY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiAiUlRDUGVlckNvbm5lY3Rpb24iOworfQorCitib29sIFJU
Q1BlZXJDb25uZWN0aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRPclJlbW92ZVRyYWNrKCkKIHsKICAgICBuZWdv
dGlhdGlvbk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGU1N2E0ZjgzNmU4NzU2NTU3ZDFiZGFm
NzAxMjhlZDk4NzI5MWU1YTUuLmRlZWY2MDExOTZlYTIwYmNlZDVkYWVkZGVjOTM4NTkyOWRhNzQ2
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmgKQEAgLTEyNSw5ICsxMjUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFJUQ1BlZXJDb25uZWN0aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0KICAgICAvLyBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpIG92ZXJyaWRlOwogCkBAIC0xNDYs
NyArMTQzLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDUGVlckNvbm5lY3Rpb24i
OyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Cisg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjaGFuZ2VTaWdu
YWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZSk7CiAgICAgdm9pZCBjaGFuZ2VJY2VHYXRoZXJpbmdT
dGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuY3BwCmluZGV4IDA4MjM5MWEwNTU0MDIxZDVlZDI4MjMxZDdlZWYyYTkwY2Y1NWVl
ZjUuLjQzMTQ4NWViNDU2NGZjNjU2MzY3MzIzYmQ5NWZjY2UzNzNmYTcwNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCkBAIC04NCw2ICs4NCwxNyBAQCB2
b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpzdG9wKCkKICAgICBjbGVhcigp
OwogfQogCitjb25zdCBjaGFyKiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCI7Cit9CisKK2Jvb2wgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5
IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxs
YmFjay5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCmlu
ZGV4IDViOTQzM2UwYmE1MGVlYmU5ZWZkYzljNGI4OTI0MWNkNTIyOTYwNzEuLjY3ZjhjZTNmMjQ5
MmExZDMwOGIyMjQ2OThmY2JmZTdmMmIyMDEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmgKQEAgLTUxLDEzICs1MSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29u
c3QgU3RyaW5nJiBlcnJvcikgb3ZlcnJpZGU7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgogICAgIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENQZWVyQ29u
bmVjdGlvbkVycm9yQ2FsbGJhY2s+KTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHZvaWQgY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDEwZDFiNDUw
ZWUwYzMwY2FhMDg3Yzk1MDFkMjZiNjRhNDM4NzNmNy4uMmEyNDA4YTM0MWNlYWM1YjgzMjI1Zjc5
MDdmMDJlNDRlMGVlM2U3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC05MSw2ICs5MSwxNyBA
QCB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnN0b3AoKQogICAgIGNsZWFyKCk7CiB9CiAKK2Nv
bnN0IGNoYXIqIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiUlRDU3RhdHNSZXF1ZXN0SW1wbCI7Cit9CisKK2Jvb2wgUlRDU3Rh
dHNSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCiB7CiAgICAgbV9zdWNjZXNzQ2FsbGJhY2su
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKaW5kZXggOTczYTZhY2FhMWM4OTZmNjc0ZWRkYzlkNzFl
ZWQ1ZDZkNDdmZjYzNy4uY2I1ZDg1ZWZiNmVmOWFkZWJkYjAxOTUyYmM2YzUzZTYzMGU0YWRmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmgKQEAgLTUxLDEzICs1MSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4p
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+KTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSVENTdGF0c1JlcXVlc3RJbXBsIjsg
fQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjbGVhcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDkwNzU3OGU0NmU1OTVkZjc4ZmNlMjRmZmJjNDg4
Y2Y4ZWNiZTYwYS4uY2YwNjUzYmMwZWI5OTIxNzRmYTEwODYxYjMxMTNiYzFjYzRkZjE3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9p
ZFJlcXVlc3RJbXBsLmNwcApAQCAtODEsNiArODEsMTcgQEAgdm9pZCBSVENWb2lkUmVxdWVzdElt
cGw6OnN0b3AoKQogICAgIGNsZWFyKCk7CiB9CiAKK2NvbnN0IGNoYXIqIFJUQ1ZvaWRSZXF1ZXN0
SW1wbDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSVENWb2lk
UmVxdWVzdEltcGwiOworfQorCitib29sIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZCgp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJl
LgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OmNsZWFy
KCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgKaW5kZXgg
NzQ4Yzk2Y2E0MDI4NTFiMGVjMmE1ZmFkMzJhOGNmODZkYWRiZGM1Yi4uN2ExOGI4ODY3Nzk2YjMz
ZjE0YTAwNDYxNmQ4MmYwN2M1ZDU2YjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCkBAIC01MCwxNiArNTAs
MTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiBw
cml2YXRlOgogICAgIFJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uRXJy
b3JDYWxsYmFjaz4pOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJUQ1ZvaWRSZXF1ZXN0SW1wbCI7IH0KLQog
ICAgIHZvaWQgY2xlYXIoKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKwogICAg
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOwogICAgIFJlZlB0cjxSVENQ
ZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
CmluZGV4IDliZDA0NDY4NmUxY2Y3N2ZhZWJiNjk2OWM1ZmM2NDYwMDE3ZjFmZDYuLmU0ZDhkN2Fk
MWYxY2Q0YjczMWIxZDQyNmVlYmRlOTZhMmRiMzcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0xNzAsNiAr
MTcwLDE3IEBAIHZvaWQgTm90aWZpY2F0aW9uOjpjb250ZXh0RGVzdHJveWVkKCkKICAgICAgICAg
bV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95
ZWQodGhpcyk7CiB9CiAKK2NvbnN0IGNoYXIqIE5vdGlmaWNhdGlvbjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJOb3RpZmljYXRpb24iOworfQorCitib29sIE5v
dGlmaWNhdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBO
b3RpZmljYXRpb246OmZpbmFsaXplKCkKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBDbG9zZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmgKaW5kZXggZDE3Y2VmOGQ3MzFmYjlhMjllNWQxODU3YzQ0YWRkYTAzNzkzMmYwOS4uMzg5NGJl
MjZmNzM1MWYyZWU0NWMwZjQ1OThiMzdkZmM3ZmI5NGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaApAQCAtMTQ2LDE1ICsx
NDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0Qm9keShjb25zdCBTdHJpbmcmIGJvZHkp
IHsgbV9ib2R5ID0gYm9keTsgfQogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVyZmFjZQot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgLy8gQWN0
aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsK
KyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAvLyBFdmVudFRhcmdl
dCBpbnRlcmZhY2UKKyAgICAvLyBFdmVudFRhcmdldCBBUEkuCiAgICAgdmlydHVhbCB2b2lkIHJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTm90
aWZpY2F0aW9uIjsgfQotCiAgICAgdm9pZCBzdGFydExvYWRpbmdJY29uKCk7CiAgICAgdm9pZCBm
aW5pc2hMb2FkaW5nSWNvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCmluZGV4IDA5NTgyZjU3
NzA1YTg4YjliYTA1MzBkMzU2MGZlMzQ3OTI0ZDA1YWYuLmIyYzgxM2NmOWZiYmYyNTE2NDliOTY5
MzI2ODEyOTA0YjJmZDZlMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0xMDIsNyArMTAy
LDE4IEBAIHZvaWQgTm90aWZpY2F0aW9uQ2VudGVyOjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwog
ICAgIG1fY2xpZW50LT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKICAgICBtX2NsaWVudC0+Y2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9jbGllbnQgPSAwOworICAgIG1fY2xpZW50ID0gbnVsbHB0
cjsKK30KKworY29uc3QgY2hhciogTm90aWZpY2F0aW9uQ2VudGVyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk5vdGlmaWNhdGlvbkNlbnRlciI7Cit9CisKK2Jv
b2wgTm90aWZpY2F0aW9uQ2VudGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOwog
fQogCiB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6cmVxdWVzdFRpbWVkT3V0KE5vdGlmaWNhdGlv
bkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrKiByZXF1ZXN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oCmluZGV4IDZmMmI4MDg3MzdhZjM1OTBjNjAwYjcxOTg1ODAzZDE1OGYwNGVmNjcuLmIz
YjFhMjY1ZWVjOWI1ODViYzZmODFiYzdhZTM2NmQ1ODhhYmU5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmgKQEAgLTczLDkgKzczLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9u
Q2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25DbGllbnQqKTsKIAot
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIk5vdGlmaWNhdGlvbkNlbnRlciI7IH0KKyAgICAvLyBBY3RpdmVET01P
YmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGNsYXNzIE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFj
ayA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjaz4gewogICAg
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uY3BwCmluZGV4IDNlNGZjNjU5OTA3OWMwMGZiNjc5NDc2MDlkZDNhYzYyYjVkZDlhNGUu
LmY3NjI3NWEzNzA5MTA3ZTA3ZTI2MzJiNjAwNDJhOGQ0OGExYmY3MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcApAQCAtOTAsNiAr
OTAsMTcgQEAgdm9pZCBSZWFkYWJsZVN0cmVhbTo6cmVhZHkoU3VjY2Vzc0NhbGxiYWNrKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2NvbnN0IGNoYXIqIFJlYWRhYmxlU3RyZWFtOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJlYWRhYmxlU3RyZWFtIjsK
K30KKworYm9vbCBSZWFkYWJsZVN0cmVhbTo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxz
ZTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggYzg0NWZlZGI4NmRhN2FlYjdiN2EwYmM2ODlkZDhmNWUx
YWExYzlhMC4uMDBiNDk1MDJiYzYzMDZkZWVhZDg1NTUwMGEyYjJiYzUyYjQ1NTFhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTU4
LDggKzU4LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhZGFibGVTdHJlYW0+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlPiYmKTsK
ICAgICB2aXJ0dWFsIH5SZWFkYWJsZVN0cmVhbSgpOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFy
KiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlYWRhYmxl
U3RyZWFtIjsgfQotCiAgICAgLy8gSlMgQVBJIGltcGxlbWVudGF0aW9uLgogICAgIFN0cmluZyBz
dGF0ZSgpIGNvbnN0OwogCkBAIC03MCw2ICs2OCwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IFJlYWRhYmxlU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJl
YW1Tb3VyY2U+JiYpOwogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5T
dXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFJlZjxS
ZWFkYWJsZVN0cmVhbVNvdXJjZT4gbV9zb3VyY2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDc3ODY4MzdkZmYwMTUxMDc2
N2UzOTJkOGRjNWM1Y2I0ZTk2MGIwMjkuLmNkNDI3N2Q1ZGIwZWNhOWRlMWNmYmE3ZDMyYTU5OTRh
ZTdiODQwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKQEAgLTMxMyw2ICszMTMsMTcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnN0b3Ao
KQogICAgIGNhbGxPbk1haW5UaHJlYWQoc3RvcERpc3BhdGNoLCB0aGlzKTsKIH0KIAorYm9vbCBB
dWRpb0NvbnRleHQ6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2NvbnN0
IGNoYXIqIEF1ZGlvQ29udGV4dDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICJBdWRpb0NvbnRleHQiOworfQorCiBEb2N1bWVudCogQXVkaW9Db250ZXh0Ojpkb2N1
bWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCAy
NTJkYmUxZDgwM2MzNGY4YmE4MGFmNTAzZWJjNDcwYjFlNzI1NmEwLi5iM2I4OWMzMGM3NmU4NTFk
ZjE1ZDZkOWE1ZDNlM2Q1MDFkMjQxNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTg1LDkgKzg1LDYgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgaXNPZmZsaW5lQ29udGV4dCgpIHsgcmV0dXJuIG1faXNPZmZsaW5lQ29udGV4dDsg
fQogCi0gICAgLy8gRG9jdW1lbnQgbm90aWZpY2F0aW9uCi0gICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKLQogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OyAvLyBBU1NFUlRz
IGlmIGRvY3VtZW50IG5vIGxvbmdlciBleGlzdHMuCiAKICAgICBBdWRpb0Rlc3RpbmF0aW9uTm9k
ZSogZGVzdGluYXRpb24oKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS5nZXQoKTsgfQpAQCAt
MjY0LDggKzI2MSw2IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBpc1NhbXBsZVJhdGVS
YW5nZUdvb2QoZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJBdWRpb0NvbnRleHQiOyB9Ci0KICAgICB2b2lkIGNvbnN0cnVjdENvbW1vbigpOwogCiAgICAg
dm9pZCBsYXp5SW5pdGlhbGl6ZSgpOwpAQCAtMjk2LDYgKzI5MSwxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVmTm9kZShBdWRpb05vZGUqKTsKICAgICB2b2lkIGRlcmVmTm9kZShBdWRpb05vZGUq
KTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgLy8gV2hlbiB0
aGUgY29udGV4dCBnb2VzIGF3YXksIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIHNvbWUgc291cmNlcyB3
aGljaCBoYXZlbid0IGZpbmlzaGVkIHBsYXlpbmcuCiAgICAgLy8gTWFrZSBzdXJlIHRvIGRlcmVm
ZXJlbmNlIHRoZW0gaGVyZS4KICAgICB2b2lkIGRlcmVmVW5maW5pc2hlZFNvdXJjZU5vZGVzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmlu
ZGV4IGUwNDgzYzU1ODUwMzA2MzRhMDdhMjhiMmE4ODg2NmY5MWQ0NWU5ODIuLjU3ODc4ZTc2MmFh
OGZhODUxNjcwYzUzZTFlOTZmMTg3MDUzZDM0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC00ODksNiArNDg5LDExIEBAIHZvaWQg
V2ViU29ja2V0OjpzdG9wKCkKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojp1bnNldFBlbmRpbmdB
Y3Rpdml0eSh0aGlzKTsKIH0KIAorY29uc3QgY2hhciogV2ViU29ja2V0OjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIldlYlNvY2tldCI7Cit9CisKIHZvaWQgV2Vi
U29ja2V0OjpkaWRDb25uZWN0KCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBk
aWRDb25uZWN0KCkiLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaAppbmRleCA0ZjNjZTcyOGE5MTM1ODc2ODA2NGE1ODRhMWMwMjBhN2VmM2Q1
MGRlLi44NmJlMmJiNDE3Nzc2MTdmZTZmMWVkZmUwZjE4YTA3OGQwM2YyYzI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC0xMTMsMTMgKzEx
MywxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlNvY2tldChTY3JpcHRF
eGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgZnVuY3Rpb25zLgot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Vz
cGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVz
dW1lKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiV2ViU29ja2V0IjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
dm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92
ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAKaW5kZXggZjQ1ZjMwMjBhN2MzYjRiYmU0
OWZkZDI0ZWQzYTg1NjkxNjgwYWU2Yi4uMDVmNjYyM2IwMGM0ZTNhZTNkYzY0MzAzMjhkMzliNDU5
ZDM5MGFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcApAQCAtMTU2LDYgKzE1NiwxNiBA
QCB2b2lkIEZvbnRMb2FkZXI6OmRpZExheW91dCgpCiAgICAgbG9hZGluZ0RvbmUoKTsKIH0KIAor
Y29uc3QgY2hhciogRm9udExvYWRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJGb250TG9hZGVyIjsKK30KKworYm9vbCBGb250TG9hZGVyOjpjYW5TdXNwZW5k
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fbnVtTG9hZGluZ0Zyb21DU1MgJiYgIW1fbnVtTG9h
ZGluZ0Zyb21KUzsKK30KKwogdm9pZCBGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+IGV2ZW50KQogewogICAgIG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQoZXZlbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250TG9hZGVyLmgKaW5kZXggN2UwMGFiMTU2MDVmNDA1ZTFmMmJlM2U1YWNjYzQw
MTBiODFlYzQ2Zi4uNjI0ZDE2MWI3ZmUwYzM2ZTkwMWU2MTM4YTViYzVhZjM3ZDMxNTIyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udExvYWRlci5oCkBAIC04NSw4ICs4NSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IGxvYWRFcnJvcihDU1NGb250RmFjZVJ1bGUqLCBDU1NGb250RmFjZVNvdXJjZSopOwogICAgIHZv
aWQgbG9hZGluZ0RvbmUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIW1fbnVtTG9hZGluZ0Zyb21DU1MgJiYgIW1fbnVtTG9hZGluZ0Zy
b21KUzsgfQotCiBwcml2YXRlOgogICAgIEZvbnRMb2FkZXIoRG9jdW1lbnQqKTsKIApAQCAtOTUs
NyArOTMsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRh
cmdldERhdGEoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiRm9udExvYWRlciI7
IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZvaWQgcGVuZGluZ0V2ZW50c1RpbWVyRmlyZWQoKSB7IGZpcmVQ
ZW5kaW5nRXZlbnRzKCk7IH0KICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IGUxZWM3NzVjYTBjZDMy
ZTNhNzdhNmJmYWQ5MjhjMzQ5YmQ5ODk1MjUuLjFlNWNjMWZmYzQ3MTEyMDY4MmVmZjJhYTQ2NGY2
ZjMzYmIzMzA0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAgLTYyLDcg
KzYyLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90
IGhhdmUgYSBzaWRlIGVmZmVjdCBvZiBjcmVhdGluZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55
IEFjdGl2ZURPTU9iamVjdC4gVGhhdCBtZWFucyB0aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxs
cyB0byBhcmJpdHJhcnkgSmF2YVNjcmlwdC4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgPSAwOyAvLyBSZXR1
cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZCgpIHdpbGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVu
dGVyaW5nIHRoZSBQYWdlQ2FjaGUuCiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCmluZGV4IGQ3MTQxZjIxMjZhOTEwNTQ2ZWI0NDM2
NGI0MjMxYTk2NDA1MTBkMTguLjU4NTBmOWQ2NWY0NjcyZDE5YjM5MmRiOTg0MmQzMDdmOTU5MzI3
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC01MSw2
ICs1MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIG1fZXZlbnRRdWV1ZS5wZW5kaW5nRXZlbnRUaW1l
ckZpcmVkKCk7CiAgICAgfQogCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0IHsgcmV0dXJuICJEb2N1bWVudEV2ZW50UXVldWVUaW1lciI7IH0KKwogICAgIERvY3Vt
ZW50RXZlbnRRdWV1ZSYgbV9ldmVudFF1ZXVlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlci5jcHAKaW5kZXggNzMxODE4OGM3ZGE0NWEwOGUzNWEwMWJmNTlhN2IxY2UwZjVkNWUz
NS4uZTYxZTNmMTllMzMxMzI4MGIyODJmY2JlYWE3YTY2MmI1MzFlMWFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC03MSw2ICs3MSwxMSBAQCBib29sIEZpbGVSZWFk
ZXI6OmNhblN1c3BlbmQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorY29uc3QgY2hh
ciogRmlsZVJlYWRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICJGaWxlUmVhZGVyIjsKK30KKwogdm9pZCBGaWxlUmVhZGVyOjpzdG9wKCkKIHsKICAgICB0ZXJt
aW5hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKaW5kZXggYzQ3NTYyZmUwYmRk
MTEwYjQyNjMxNmI2YjljOTMyYmIyNzIxN2JjMS4uODlmY2IyYTBiN2Y4MzdmMzBmYTdlNTg0YmEx
M2E1NjEzYzA1ZjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKQEAgLTEwMiwx
MCArMTAyLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRmlsZVJlYWRlcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiRmlsZVJlYWRlciI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgLy8g
QWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDZiYmYxZjFiMTcxYjM5OWNkNGUy
ZGJkZTY5ZDZlY2MzNDcwYjVmYzguLjUxMTJjZjJlY2MzMWU2OTUwMDNlMzlkNGVjZWRiNDkwODZj
NGFmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDcx
Myw2ICs0NzEzLDExIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6Y2FuU3VzcGVuZCgpIGNvbnN0
CiAgICAgcmV0dXJuIHRydWU7IAogfQogCitjb25zdCBjaGFyKiBIVE1MTWVkaWFFbGVtZW50Ojph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkhUTUxNZWRpYUVsZW1l
bnQiOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogewogICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoJXApIiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE2ZTFkYTIwMjRlZTI0NTgwM2ZiYjg0YjhmMDg4YWIy
YTJkYjA0YTQuLjI0MTk0MTYxZmJlYjlmMDFhMTgwMmU2MTdmMmZkMTUyYTdhODhjNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01MjEsMTIgKzUyMSwxMiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQo
KSBvdmVycmlkZTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBmdW5jdGlvbnMuCi0gICAgdmly
dHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIkhUTUxNZWRpYUVsZW1lbnQiOyB9Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNw
ZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICAvLyBBY3RpdmVET01PYmplY3Qg
QVBJLgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXN1bWUoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFWb2x1bWVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVi
bGljVVJMTWFuYWdlci5jcHAKaW5kZXggMjkwYmJiZDY5YTM2YmJhMjUzZDNiYzMyY2RmZjRlMzgw
ZWNmMjk0OC4uMDdhYTBkZmI2Nzc0YmEyYTQ5NWJjNzRhOGJkOGZkYzZkYWY4OTQ1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCkBAIC04Niw0ICs4Niw5IEBAIGJv
b2wgUHVibGljVVJMTWFuYWdlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK2NvbnN0IGNoYXIqIFB1YmxpY1VSTE1hbmFnZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiAiUHVibGljVVJMTWFuYWdlciI7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJM
TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmgKaW5kZXgg
ZDQ3MDcxOGZjN2VkNmVhYzI5N2U5MzZiMDRkYTlkZDgyOWEyOTc2NC4uOTBkYTBkOGFjNDFlMzgz
YzU0YzBlNjcyNGRhNTAzMDAwNDU3ZTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QdWJsaWNVUkxNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxN
YW5hZ2VyLmgKQEAgLTUwLDEyICs1MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclVS
TChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYsIFVSTFJlZ2lzdHJhYmxlKik7CiAgICAgdm9p
ZCByZXZva2UoY29uc3QgVVJMJik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNl
LgotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUHVi
bGljVVJMTWFuYWdlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQg
c3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICAKICAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nPiBVUkxTZXQ7CiAgICAgdHlwZWRlZiBIYXNo
TWFwPFVSTFJlZ2lzdHJ5KiwgVVJMU2V0ID4gUmVnaXN0cnlVUkxNYXA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IDEzMTg5YWQ2YWZjZDFhNzczOGMzNDUwZDFkODNlNWUyZWE1YWNkMzQuLjhmYzBlMDJm
OWQwNzE0NDgxY2M0MjJjOGFmYmMxN2FjNmJhMzRiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0z
OTM0LDYgKzM5MzQsMTcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzdG9wKCkK
ICAgICB9CiB9CiAKK2NvbnN0IGNoYXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0IjsKK30KKworYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW5TdXNwZW5kKCkg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUu
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNE
Ym9vbGVhbiB2YWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggMDY4MDg0NGIyZjMzZThlMGIyN2Iw
NjQ5NGYwOTAxOGZhYzk0NzIyNS4uMGQ2NDNmZTNjYzgyNzhiYmNjMTAwOWQxMTkyZDg3OTJjZWI3
MDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNDA0LDcgKzQwNCw4IEBAIHByb3RlY3RlZDoKICAgICAv
LyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IjsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3Vz
cGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xT
aGFyZWRPYmplY3QqKTsKICAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2Jq
ZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDljM2Q3OTQ4MDQ5MWI5OThkMTli
NjRmOTc3MGVhNGY2MGYxZTMzMzQuLjVhNDdlMmM4MzA4MWMyMDM5ZGNiOTllYWVjN2U0NmRlZTli
NDc0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC01MjAsNCArNTIwLDkgQEAgZG91
YmxlIERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoZG91YmxlIGZpcmVUaW1lKSBjb25zdAogICAg
IHJldHVybiBmaXJlVGltZTsKIH0KIAorY29uc3QgY2hhciogRE9NVGltZXI6OmFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiRE9NVGltZXIiOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKaW5kZXggZDg5NWVhNDdmYWQ4MmFk
MzY3ODZlYmM2MzM1YjU4M2U3NTg0YWU5NC4uNjkxYzViMDQ1YjNlNzE4NjEwOTg4OTc0ZTAxYzE1
NWZmNTE4Njc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaApAQCAtNzksNiArNzksOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7
CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIGFsaWduZWRGaXJlVGltZShkb3VibGUpIGNvbnN0IG92
ZXJyaWRlOwogCisgICAgICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKwogICAgICAgICBl
bnVtIFRpbWVyVGhyb3R0bGVTdGF0ZSB7CiAgICAgICAgICAgICBVbmRldGVybWluZWQsCiAgICAg
ICAgICAgICBTaG91bGRUaHJvdHRsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5k
ZXggNzFhZDgyYzU2YmJkYjIzM2YyZTg1NDgyMGM2NmE4ZjBjZjllMTdiYi4uYTlmNDY3ZmY0ZTc1
Mzc4ZmJlYjIyN2JiMDg3OTJiMDI2MmJmZGIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJj
ZS5jcHAKQEAgLTQxNiw2ICs0MTYsMTcgQEAgdm9pZCBFdmVudFNvdXJjZTo6c3RvcCgpCiAgICAg
Y2xvc2UoKTsKIH0KIAorY29uc3QgY2hhciogRXZlbnRTb3VyY2U6OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdAoreworICAgIHJldHVybiAiRXZlbnRTb3VyY2UiOworfQorCitib29sIEV2ZW50
U291cmNlOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRy
eSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRy
PE1lc3NhZ2VFdmVudD4gRXZlbnRTb3VyY2U6OmNyZWF0ZU1lc3NhZ2VFdmVudCgpCiB7CiAgICAg
UmVmUHRyPE1lc3NhZ2VFdmVudD4gZXZlbnQgPSBNZXNzYWdlRXZlbnQ6OmNyZWF0ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudFNvdXJjZS5oCmluZGV4IGUwOGNlNDJlZjA1MzZlYTMxYzA3NTkxZmZlZjQx
Yzg0MTUwM2I4NjkuLjllNGY1NTcwOTVlZDY2YjI0ZTRjYjcyZGRjY2Y0ZmY0ZjQ4MjQ3ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKQEAgLTkxLDggKzkxLDEwIEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWxBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VF
cnJvciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsUmVkaXJlY3RDaGVjaygp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiRXZlbnRTb3VyY2UiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2
b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGNvbm5lY3QoKTsKICAgICB2b2lkIG5ldHdvcmtSZXF1ZXN0RW5kZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKaW5kZXggOWUyOWI3Zjc1MDA1NjIz
ZjJkZWVlMjdlNzRlNDc0MjA1NTJhMmZkYS4uZjRhZjE1ZjQzZmEzNzMzNjViNDI0ZTk1MTA5MmJh
MzU1ZTU1MTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKQEAgLTU3
LDEzICs1NywxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgp
IG92ZXJyaWRlID0gMDsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbCBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpIGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5k
KCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikgZmluYWwgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZSgp
IGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJTdXNwZW5kYWJsZVRpbWVyIjsgfQorICAg
IC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBj
b25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZSBmaW5hbDsKKyAg
ICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCByZXN1bWUo
KSBvdmVycmlkZSBmaW5hbDsKIAogICAgIGJvb2wgbV9zdXNwZW5kZWQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAKaW5kZXggODViOWI1NDA4ZWUzMzc3MmQxYmZk
OTMwNDQxNTIzMDU5YzFjYTI4NS4uNWVlZTdlYjFmMGVjNzU3MzA2M2RkODNhMjJiYjk1OTAzZWRm
M2Q3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAKQEAgLTQ0
LDExICs0NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQWJzdHJhY3RXb3JrZXI6OkFi
c3RyYWN0V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgOiBBY3Rp
dmVET01PYmplY3QoJmNvbnRleHQpCi17Ci19Ci0KIEFic3RyYWN0V29ya2VyOjp+QWJzdHJhY3RX
b3JrZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFj
dFdvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5oCmluZGV4
IGJkNzkzNjhjODA2NjVmNzZiZjc5N2RkNTUyYzJkN2EyYWNlMTFiMGQuLmJlOGQxYzQ5MzI5ODAy
Y2MyYWZiNzYwYjllYjQyYWM2MjkzZjdiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvQWJzdHJhY3RXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3Ry
YWN0V29ya2VyLmgKQEAgLTQzLDExICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IGNsYXNzIFVSTDsKIAotICAgIGNsYXNzIEFic3RyYWN0V29ya2VyIDogcHVibGljIFJlZkNvdW50
ZWQ8QWJzdHJhY3RXb3JrZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSB7CisgICAgY2xhc3MgQWJzdHJhY3RXb3JrZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxBYnN0cmFjdFdvcmtlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIC8vIEV2ZW50VGFyZ2V0IEFQSXMKLSAgICAgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KLQogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RF
TkVSKGVycm9yKTsKIAogICAgICAgICB1c2luZyBSZWZDb3VudGVkPEFic3RyYWN0V29ya2VyPjo6
cmVmOwpAQCAtNTYsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgfkFic3RyYWN0V29ya2VyKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIGV4cGxpY2l0
IEFic3RyYWN0V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICAgICAgQWJzdHJh
Y3RXb3JrZXIoKSA9IGRlZmF1bHQ7CiAKICAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRoYXQg
Y29udmVydHMgYSBVUkwgdG8gYW4gYWJzb2x1dGUgVVJMIGFuZCBjaGVja3MgdGhlIHJlc3VsdCBm
b3IgdmFsaWRpdHkuCiAgICAgICAgIFVSTCByZXNvbHZlVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBF
eGNlcHRpb25Db2RlJiBlYyk7CkBAIC02NSw4ICs2Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSBmaW5hbCB7IHJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgZmluYWwgeyBkZXJlZigpOyB9Ci0KLSAgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFi
c3RyYWN0V29ya2VyIjsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAxM2JkNmQ2YjdmNzUyZDU0Y2UzOGU1YTJjYjk1YzVm
ZDgwMzdlZjk5Li5iY2IyYzE0NzIyMzIyM2UyMTBhMjVlN2FhYzNlMThiZDI5ODJlNGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgbmV0d29ya1N0
YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKQogfQogCiBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICA6IEFic3RyYWN0V29ya2VyKGNvbnRl
eHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2NvbnRleHRQcm94
eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUodGhpcykpCiB7CiAgICAgaWYgKCFhbGxX
b3JrZXJzKSB7CkBAIC0xMzIsNiArMTMyLDExIEBAIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kKCkg
Y29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2NvbnN0IGNoYXIqIFdvcmtlcjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJXb3JrZXIiOworfQorCiB2b2lk
IFdvcmtlcjo6c3RvcCgpCiB7CiAgICAgdGVybWluYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAppbmRleCA5NTBlOGFhOGYwYTljYWE3ZDQ1NDA3ZDJlOTgwMWVlMDgxNGJmNzlkLi5kYjFhODI5
YTk3ZjBlYWI3YzNmNjVmMDljMTI3ZmE2Y2VmYzc4OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKIAotICAgIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0
cmFjdFdvcmtlciwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgeworICAgIGNsYXNz
IFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIHB1YmxpYzoKICAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2VyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZpcnR1
YWwgfldvcmtlcigpOwpAQCAtNTgsMTMgKzU4LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bWVzc2FnZSwgTWVzc2FnZVBvcnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgdm9pZCB0
ZXJtaW5hdGUoKTsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobWVzc2FnZSk7CiAKKyAgICAg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgorICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJl
dHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAg
ICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBX
b3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCkBAIC03NCw2ICs3NiwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJp
ZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZCgpIG92ZXJyaWRlOwogCisg
ICAgICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICAgICAg
Y29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAg
ICAgIGZyaWVuZCB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSk7CiAKICAg
ICAgICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA1NTYwZjNjOTM0MzczOGE0NGEzOTliN2Q5
ZDhmZjZiYjBmZGI4N2UzLi5jMDk2Y2IxYWMwYTBlZjlkZDkxMTZhZDA2NWM1NzcyMjEzNjVlZGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTEyNTYsNiArMTI1Niwx
MSBAQCBib29sIFhNTEh0dHBSZXF1ZXN0OjpjYW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4g
IW1fbG9hZGVyOwogfQogCitjb25zdCBjaGFyKiBYTUxIdHRwUmVxdWVzdDo6YWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYTUxIdHRwUmVxdWVzdCI7Cit9CisKIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKIHsKICAgICBt
X3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5zdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5oCmluZGV4IGQ0YmIxMjFlYjQ0NzIwN2I1MTJlZTI1OTVmN2Q2ZjYyODA2NmFkYWQuLmY1
ZWI3N2ZjMDRlZjE4NjEyOWNlNTBmYmRmMmY1MDFmODdkMTMzODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oCkBAIC0xNjIsMTIgKzE2MiwxMiBAQCBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIC8vIEFj
dGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiWE1MSHR0cFJlcXVlc3QiOyB9CisgICAgdm9pZCBjb250
ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Cisg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247559</attachid>
            <date>2015-02-27 15:02:01 -0800</date>
            <delta_ts>2015-02-27 15:50:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142096-20150227150147.patch</filename>
            <type>text/plain</type>
            <size>57410</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJhYjI3N2I3Njg5ZjYw
NWNlYzUwNGY1YWJiMWM5ODA5ZTE0ZGM0MS4uZGUyNGI4MGQ3NDI0MDA2YWYyMTc2NTVhMGVhZmFl
YjhhMTMyYzkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE1LTAyLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBBY3RpdmVET01PYmpl
Y3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5
MjMwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBBY3RpdmVET01PYmplY3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwgc28gdGhhdCBw
ZW9wbGUgYXQgbGVhc3QKKyAgICAgICAgdHJ5IHRvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24g
Zm9yIGl0LiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3YXMKKyAgICAgICAgcmV0dXJuaW5n
IGZhbHNlIHVuY29uZGl0aW9uYWxseSBhbmQgdGh1cyB3YXMgcHJldmVudGluZyBwYWdlcyBmcm9t
CisgICAgICAgIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCisKKzIwMTUtMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYVNvdXJjZSBzaG91bGQgYmUg
c3VzcGVuZGFibGUgd2hlbiBjbG9zZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjA4OQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5MjMwODU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNw
cAppbmRleCAyMGM0MTM0NTk1MmMzNTJlYzFlNTA1MmIzZjFjZDA3MTczOTk5ZmYzLi5jZjYyYTA4
NDMwYzc5NzMyNjU5NmJmZmU3NjU4YzE2NmQ5MjZjMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTg4LDYgKzg4LDExIEBA
IHZvaWQgQmF0dGVyeU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoUGFzc1JlZlB0cjxCYXR0
ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzCiAgICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0
YXR1czsKIH0KIAorYm9vbCBCYXR0ZXJ5TWFuYWdlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQmF0dGVyeU1hbmFnZXI6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikKIHsKICAgICBpZiAobV9iYXR0ZXJ5Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKaW5kZXggMzJlMjE1
MjgxMDQxOGUwN2MxNWM4NDQxOWJjODAyOTAyYWFiNzU1Ni4uNTZjYzgxMjNhNDAwZTU5M2NlYzM4
YzVhNzRjNTYxZjNkOGM1MTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0
ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKQEAgLTU4LDEyICs1OCw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBSZWZDb3VudGVkPEJhdHRlcnlNYW5hZ2VyPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8
QmF0dGVyeU1hbmFnZXI+OjpkZXJlZjsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbXBsZW1l
bnRhdGlvbi4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBvdmVycmlkZSB7IHJldHVybiAmbV9l
dmVudFRhcmdldERhdGE7IH0KICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZl
bnRUYXJnZXREYXRhKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFRhcmdldERhdGE7IH0KQEAg
LTcxLDYgKzY1LDEyIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQmF0dGVy
eU1hbmFnZXIoTmF2aWdhdG9yKik7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50
YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggNDdlOTg0YmViYmIzMGY0NzZjZmQ5NmFjYTlk
Nzc0MmYxYzBlZTAzNC4uMjNmOWQwZDEwNTY3ODI5Mzk1MGVkZTJiMjYyMDZiYjA2ZmIwNTgxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMjUwLDYgKzI1MCwyNyBAQCBTdHJpbmcgTWVkaWFLZXlT
ZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gcGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksIG9yaWdpbi0+ZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOwogfQogCitib29sIE1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwgbV9h
c3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIE1lZGlhS2V5U2Vz
c2lvbjo6c3RvcCgpCit7CisgICAgY2xvc2UoKTsKK30KKworY29uc3QgY2hhciogTWVkaWFLZXlT
ZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlh
S2V5U2Vzc2lvbiI7Cit9CisKK2Jvb2wgTWVkaWFLZXlTZXNzaW9uOjpjYW5TdXNwZW5kKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggNGRl
NDZmNzk3YjdhYTJiZGVkYTQxMThjOGZmZjFhZTBmY2FiZDk2NC4uNzgzNWM0OWY0MzUwMTJlZjli
OGUwNTJlOGY3YjU3OGU1NzMxYmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCkBAIC03MywxMCArNzMsNiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwg
bV9hc3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KLQogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIod2Via2l0a2V5YWRkZWQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIod2Via2l0a2V5ZXJyb3IpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIod2Via2l0a2V5bWVzc2FnZSk7CkBAIC04NCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgog
ICAgIE1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFLZXlzKiwg
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwogICAgIHZvaWQga2V5UmVxdWVzdFRpbWVyRmlyZWQo
KTsKQEAgLTExNiw3ICsxMTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYUtl
eVNlc3Npb24iOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCmluZGV4IDdkYWI4MDQxNjg3M2I2ZmYyYzgxOGUzN2UzMjBlMDU4NDUzMjU5ZjYuLjY4Mzdh
NGVjNjlhMjNlMmJiODA1ZDE4ZmQ4YTFkMGI2ZDAxZGU3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0yOTMsNiArMjkz
LDExIEBAIHZvaWQgR2VvbG9jYXRpb246OnN0b3AoKQogICAgIG1fcGVuZGluZ0ZvclBlcm1pc3Np
b25Ob3RpZmllcnMuY2xlYXIoKTsKIH0KIAorY29uc3QgY2hhciogR2VvbG9jYXRpb246OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiR2VvbG9jYXRpb24iOworfQor
CiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uaAppbmRleCAzNTkzZjEzNDZhOTMyNTE5MzQ2NjQwYjUzMzgzNGFm
OGUyNjdhMGU5Li4wYjMwZDMyY2E4ZTMzNWFlMzhhMTdkYmY0ZDk4NzMzNzE1ZDczMWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBA
IC01Nyw5ICs1Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5HZW9sb2Nh
dGlvbigpOwogCi0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwpA
QCAtODAsNyArNzcsMTEgQEAgcHJpdmF0ZToKICAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9u
KCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNEZW5pZWQo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93R2VvbG9jYXRpb24gPT0gTm87IH0KIApAQCAtMTQwLDgg
KzE0MSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihQ
b3NpdGlvbk9wdGlvbnMqKTsKICAgICB2b2lkIG1ha2VDYWNoZWRQb3NpdGlvbkNhbGxiYWNrcygp
OwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIkdlb2xvY2F0aW9uIjsgfQotCiAgICAgR2VvTm90aWZpZXJTZXQg
bV9vbmVTaG90czsKICAgICBXYXRjaGVycyBtX3dhdGNoZXJzOwogICAgIEdlb05vdGlmaWVyU2V0
IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggNTllZmYxY2UwYTNmNTFkZjg5
MWZkNDkzNTNmZmRlZGQ0M2NkNGQ4NS4uNDIzZjQxZGY2MzFlOWRkODAwNDI3MWZhMmEwZWI4YzI0
OGViMDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcApAQCAtMzYxLDYgKzM2MSwxMSBAQCB2b2lkIElEQkRhdGFiYXNlOjpzdG9wKCkK
ICAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAorY29uc3QgY2hhciogSURCRGF0YWJh
c2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiSURCRGF0YWJh
c2UiOworfQorCiBib29sIElEQkRhdGFiYXNlOjpjYW5TdXNwZW5kKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9pc0Nsb3NlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oCmluZGV4IDljOWM3NjBjYjhkY2U2MDdmYzYzODkxMjhlZWVhNDkwOTVjYWFl
ZmQuLjAzZTVlZWEzODNjM2FlMWNjYjEwMzQxNzk1ZmU1ZWE1YjA4MTE0NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtODAsOSArODAs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRf
dCk7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZSBmaW5hbCB7IHJldHVybiBJREJEYXRhYmFzZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC0xMDgsMTIgKzEwNSwxNSBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJEYXRhYmFzZT46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPElEQkRhdGFiYXNlPjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJ
LgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByaXZh
dGU6CiAgICAgSURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwog
Ci0gICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAg
ICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIklEQkRhdGFiYXNlIjsgfQorICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDQ5NDcw
ZWFiYjFmMjkzZmQ3NTA5Njk0OWEyNWY4Mzg5M2FmZDUwY2UuLjM5Njk4MDA0ZDVlYmI2ZTRmYTAz
Zjk2ZjBjYmM4NzI5N2ZlMjcxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00NDgsNiArNDQ4LDExIEBAIGJvb2wgSURCUmVxdWVz
dDo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX2hhc1BlbmRpbmdBY3Rpdml0eTsK
IH0KIAorY29uc3QgY2hhciogSURCUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJJREJSZXF1ZXN0IjsKK30KKwogRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
SURCUmVxdWVzdDo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogewogICAgIHJldHVybiBJ
REJSZXF1ZXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDlmZDI2Mjg2MGEwMmIzMWFhNzAyZDdk
MWJiMzY3ZjQ4MjQ4MTg1YjIuLjM0MjVjN2I0YTNhOGQ0ZmU3OTlmZGMwYzdhZTYwNzIxZTE5YzY0
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgK
QEAgLTkzLDkgKzkzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQpAQCAtMTEzLDYgKzExMCw5IEBAIHB1YmxpYzoKIAogICAgIERP
TVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlKCkgeyByZXR1cm4gJm1fcmVxdWVzdFN0YXRlOyB9
CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZvaWQgZW5xdWV1ZUV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKQEAgLTEzMCwxMiArMTMwLDEyIEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVkIGJ5IHRyYW5zYWN0
aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4gYXNzZXJ0LgogCiBw
cml2YXRlOgotICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJSZXF1ZXN0IjsgfQorICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzQyZjk0NWM0
MTEzNDc5ZmU3MTgzZDEwODk4MWUwYzEwZDY1Nzg0OC4uZTI0OWI0ZmMxNDUwZWEwYzcwOTBkM2M1
OWUxOWQzZTNhMDZkZjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNDA4LDYgKzQwOCwxMSBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uOjpzdG9wKCkKICAgICBhYm9ydChJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAorY29u
c3QgY2hhciogSURCVHJhbnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiSURCVHJhbnNhY3Rpb24iOworfQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpl
bnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShtX3N0YXRlICE9IEZpbmlzaGVkLCAiQSBmaW5pc2hlZCB0cmFuc2FjdGlvbiB0cmll
ZCB0byBlbnF1ZXVlIGFuIGV2ZW50IG9mIHR5cGUgJXMuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGY1Y2QzNGQ5OGEwZWRmOGUzODdlNjQ0YTE0ZGRlYjEx
ZjUxNjA3ZGEuLjVlOWUwNDJhMWZhZWY0ZWYzODI5YmViYzI2OWEyNjY4ZWRhNGJkYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApA
QCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVu
dChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJ
REJUcmFuc2FjdGlvbj46OmRlcmVmOwpAQCAtMTI1LDEyICsxMjUsMTIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZ2lzdGVyT3BlbkN1cnNvcihJREJDdXJzb3IqKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJPcGVuQ3Vyc29yKElEQkN1cnNvciopOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJUcmFuc2FjdGlvbiI7IH0KKyAg
ICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDcwODY0MTc1YWFmZjUxZDljOGI2N2Iw
NzhjYTUyMDM4ODJlYTQwM2IuLjkwYWNhNmQ0ZjQ1MWVkZjU0N2JlY2U4ODVhNjI2YjhkYzk3NjEx
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC04MTQsNiArODE0LDExIEBAIGJvb2wgTWVkaWFTb3VyY2U6OmNhblN1c3Bl
bmQoKSBjb25zdAogICAgIHJldHVybiBpc0Nsb3NlZCgpICYmICFtX2FzeW5jRXZlbnRRdWV1ZS5o
YXNQZW5kaW5nRXZlbnRzKCk7CiB9CiAKK2NvbnN0IGNoYXIqIE1lZGlhU291cmNlOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlhU291cmNlIjsKK30KKwog
dm9pZCBNZWRpYVNvdXJjZTo6b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYg
b2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3RhdGUpCiB7CiAgICAgaWYgKGlzT3Bl
bigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmgKaW5kZXggYWU4OWIwNGMxNjlkZGE4YTM0NjI0YWM2MzBkNDg1M2M5NjAxMWUxNS4uYzJj
Y2Q5NzUzMzI5OTNlYWM0YzBjOTQ5YmIyOTQ1MTI1NTE5ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtOTksMTEgKzk5LDYg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciosIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3Ry
aW5nJiB0eXBlKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwotICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8g
RXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpAQCAt
MTE2LDEwICsxMTEsMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50Pjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBNZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiTWVkaWFTb3VyY2UiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcm
IG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKTsKICAgICBWZWN0b3I8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBhY3RpdmVSYW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA1ZDMzZmIx
ZDY3MzAyMTdlMjIyZmJlNzc2MjAyOTcyNmEzMmJlMzlmLi41ZmQyMWU1ODM0YzY1NzRjNmJjMWZk
NzdhZGU3Y2EzYTczZTM5YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC01MTAsNiArNTEwLDE3IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzdG9wKCkKICAgICBtX3JlbW92ZVRpbWVyLnN0b3AoKTsKIH0KIAorY29uc3Qg
Y2hhciogU291cmNlQnVmZmVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gIlNvdXJjZUJ1ZmZlciI7Cit9CisKK2Jvb2wgU291cmNlQnVmZmVyOjpjYW5TdXNwZW5k
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhl
cmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNvdXJjZUJ1ZmZlcjo6aXNSZW1vdmVk
KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggNDcyNjZiYmFmMWQ2NDE5
NjJlNDUwNmNkOWNjMDZhYTY4MmM0MzY1Zi4uNDkyNjlmZmUyYzc3Zjg5N2VlNzgxYjNiMDM0ZGFh
MjQ5ZWYxNjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5oCkBAIC0xMDYsMTAgKzEwNiw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
YWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogICAgIC8v
IEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFNvdXJjZUJ1ZmZlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpAQCAtMTI4LDYg
KzEyNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMo
Ym9vbCBmbGFnKSB7IG1fc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzID0gZmxhZzsgfQogCiAgICAg
dm9pZCByYW5nZVJlbW92YWwoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJik7CisK
KyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICAvLyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CkBAIC0xMzYsNyArMTM2LDEwIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgU291cmNl
QnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmLCBNZWRpYVNvdXJjZSopOwogCi0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIlNvdXJjZUJ1ZmZlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEVuZFN0cmVhbShTb3VyY2VCdWZmZXJQcml2YXRlKiwg
Y29uc3QgV1RGOjpBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDMx
ZmMxOThiMTcxNmMxM2NhODkyNmRmOWVmNDI1MDIxNThjM2M0ZmEuLmRiYjEwNWNhYWI4YWMzZTQ2
ZmVhNTBhZTVhMjBlYjI1MTM5YzEzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtMjg4LDYgKzI4OCwx
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnN0b3AoKQogICAgIG1fcHJpdmF0ZVRyYWNrLT5z
dG9wKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpTdG9wVHJhY2tPbmx5KTsKIH0KIAorY29uc3Qg
Y2hhciogTWVkaWFTdHJlYW1UcmFjazo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJNZWRpYVN0cmVhbVRyYWNrIjsKK30KKworYm9vbCBNZWRpYVN0cmVhbVRyYWNr
OjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQg
ZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE1lZGlhU3RyZWFt
VHJhY2s6OnNjaGVkdWxlRXZlbnREaXNwYXRjaChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oCmluZGV4IGE3NjlhOWU2YzhlMTA0ZWUzNmY2MThiNjg3NzJiZmU2MDRk
ZjkyYWUuLmVjZTg1MDRkOTk5OTMyZTQyZTIzYWFjYTljMTYwMzRhYTU0OTY4MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRTb3VyY2Uo
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pOwogCiBwcml2YXRlOgotCiAgICAgdm9pZCBj
b25maWd1cmVUcmFja1JlbmRlcmluZygpOwogICAgIHZvaWQgdHJhY2tEaWRFbmQoKTsKICAgICB2
b2lkIHNjaGVkdWxlRXZlbnREaXNwYXRjaChQYXNzUmVmUHRyPEV2ZW50Pik7CiAKLSAgICAvLyBB
Y3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlIGZpbmFsOwot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJNZWRpYVN0cmVhbVRyYWNrIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVj
dCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIGJvb2wgY2Fu
U3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAg
ICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSBmaW5hbCB7IHJlZigpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZT
ZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2Vu
ZGVyLmNwcAppbmRleCA5MjMxNjU0MWQ3Y2FjZjJiMGYwMjNmYzFjYTE0ZmQ2Y2VmNmQ1NTVkLi5m
MDE0YjRjNzAzOWY3ZGYxNzZkYjFlNmY4Zjg4NjM3ODc2OGRmMDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKQEAgLTEz
MSw3ICsxMzEsMTggQEAgdm9pZCBSVENEVE1GU2VuZGVyOjpkaWRQbGF5VG9uZShjb25zdCBTdHJp
bmcmIHRvbmUpCiB2b2lkIFJUQ0RUTUZTZW5kZXI6OnN0b3AoKQogewogICAgIG1fc3RvcHBlZCA9
IHRydWU7Ci0gICAgbV9oYW5kbGVyLT5zZXRDbGllbnQoMCk7CisgICAgbV9oYW5kbGVyLT5zZXRD
bGllbnQobnVsbHB0cik7Cit9CisKK2NvbnN0IGNoYXIqIFJUQ0RUTUZTZW5kZXI6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUlRDRFRNRlNlbmRlciI7Cit9CisK
K2Jvb2wgUlRDRFRNRlNlbmRlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6
IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKIH0K
IAogdm9pZCBSVENEVE1GU2VuZGVyOjpzY2hlZHVsZURpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RUTUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRFRNRlNlbmRlci5oCmluZGV4IGZjNzE3Zjk0MjZkYzU3YzYwNWQ0YWEyMTgwNTlmZjA0YjFk
NjBmMmEuLmQyZGYxZTUzZjNjNDYwMWZlYjA0M2FjMzk1MGFiNTY3NTJjZmEwYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCkBA
IC02MiwxNiArNjIsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSVENEVE1G
U2VuZGVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAotICAg
IC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0K
ICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ0RUTUZTZW5kZXI+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxSVENEVE1GU2VuZGVyPjo6ZGVyZWY7CiAKIHByaXZhdGU6CiAgICAgUlRDRFRNRlNl
bmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
Piwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJIYW5kbGVyPik7CiAKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUlRDRFRNRlNlbmRlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9p
ZCBzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNzJlMWZm
YTlkODg4NmFkOTI0MDNhMmEzZDdmMjIxNDhhNGVhZWNhYS4uZTg0MzNlNWU3Y2ZlYmFmZGVlYjM4
NjE4NDU4OGRjZTBhNGJkMjBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTY5MCw2ICs2OTAsMTcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiAgICAgICAgICgqaSktPnN0b3AoKTsK
IH0KIAorY29uc3QgY2hhciogUlRDUGVlckNvbm5lY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiAiUlRDUGVlckNvbm5lY3Rpb24iOworfQorCitib29sIFJU
Q1BlZXJDb25uZWN0aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRPclJlbW92ZVRyYWNrKCkKIHsKICAgICBuZWdv
dGlhdGlvbk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGU1N2E0ZjgzNmU4NzU2NTU3ZDFiZGFm
NzAxMjhlZDk4NzI5MWU1YTUuLmRlZWY2MDExOTZlYTIwYmNlZDVkYWVkZGVjOTM4NTkyOWRhNzQ2
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmgKQEAgLTEyNSw5ICsxMjUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFJUQ1BlZXJDb25uZWN0aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0KICAgICAvLyBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpIG92ZXJyaWRlOwogCkBAIC0xNDYs
NyArMTQzLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDUGVlckNvbm5lY3Rpb24i
OyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Cisg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjaGFuZ2VTaWdu
YWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZSk7CiAgICAgdm9pZCBjaGFuZ2VJY2VHYXRoZXJpbmdT
dGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuY3BwCmluZGV4IDA4MjM5MWEwNTU0MDIxZDVlZDI4MjMxZDdlZWYyYTkwY2Y1NWVl
ZjUuLjQzMTQ4NWViNDU2NGZjNjU2MzY3MzIzYmQ5NWZjY2UzNzNmYTcwNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCkBAIC04NCw2ICs4NCwxNyBAQCB2
b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpzdG9wKCkKICAgICBjbGVhcigp
OwogfQogCitjb25zdCBjaGFyKiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCI7Cit9CisKK2Jvb2wgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5
IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxs
YmFjay5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCmlu
ZGV4IDViOTQzM2UwYmE1MGVlYmU5ZWZkYzljNGI4OTI0MWNkNTIyOTYwNzEuLjY3ZjhjZTNmMjQ5
MmExZDMwOGIyMjQ2OThmY2JmZTdmMmIyMDEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmgKQEAgLTUxLDEzICs1MSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29u
c3QgU3RyaW5nJiBlcnJvcikgb3ZlcnJpZGU7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgogICAgIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENQZWVyQ29u
bmVjdGlvbkVycm9yQ2FsbGJhY2s+KTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHZvaWQgY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDEwZDFiNDUw
ZWUwYzMwY2FhMDg3Yzk1MDFkMjZiNjRhNDM4NzNmNy4uMmEyNDA4YTM0MWNlYWM1YjgzMjI1Zjc5
MDdmMDJlNDRlMGVlM2U3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC05MSw2ICs5MSwxNyBA
QCB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnN0b3AoKQogICAgIGNsZWFyKCk7CiB9CiAKK2Nv
bnN0IGNoYXIqIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiUlRDU3RhdHNSZXF1ZXN0SW1wbCI7Cit9CisKK2Jvb2wgUlRDU3Rh
dHNSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCiB7CiAgICAgbV9zdWNjZXNzQ2FsbGJhY2su
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKaW5kZXggOTczYTZhY2FhMWM4OTZmNjc0ZWRkYzlkNzFl
ZWQ1ZDZkNDdmZjYzNy4uY2I1ZDg1ZWZiNmVmOWFkZWJkYjAxOTUyYmM2YzUzZTYzMGU0YWRmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmgKQEAgLTUxLDEzICs1MSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4p
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+KTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSVENTdGF0c1JlcXVlc3RJbXBsIjsg
fQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjbGVhcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDkwNzU3OGU0NmU1OTVkZjc4ZmNlMjRmZmJjNDg4
Y2Y4ZWNiZTYwYS4uY2YwNjUzYmMwZWI5OTIxNzRmYTEwODYxYjMxMTNiYzFjYzRkZjE3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9p
ZFJlcXVlc3RJbXBsLmNwcApAQCAtODEsNiArODEsMTcgQEAgdm9pZCBSVENWb2lkUmVxdWVzdElt
cGw6OnN0b3AoKQogICAgIGNsZWFyKCk7CiB9CiAKK2NvbnN0IGNoYXIqIFJUQ1ZvaWRSZXF1ZXN0
SW1wbDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSVENWb2lk
UmVxdWVzdEltcGwiOworfQorCitib29sIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZCgp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJl
LgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OmNsZWFy
KCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgKaW5kZXgg
NzQ4Yzk2Y2E0MDI4NTFiMGVjMmE1ZmFkMzJhOGNmODZkYWRiZGM1Yi4uN2ExOGI4ODY3Nzk2YjMz
ZjE0YTAwNDYxNmQ4MmYwN2M1ZDU2YjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCkBAIC01MCwxNiArNTAs
MTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiBw
cml2YXRlOgogICAgIFJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uRXJy
b3JDYWxsYmFjaz4pOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJUQ1ZvaWRSZXF1ZXN0SW1wbCI7IH0KLQog
ICAgIHZvaWQgY2xlYXIoKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKwogICAg
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOwogICAgIFJlZlB0cjxSVENQ
ZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
CmluZGV4IDliZDA0NDY4NmUxY2Y3N2ZhZWJiNjk2OWM1ZmM2NDYwMDE3ZjFmZDYuLmU0ZDhkN2Fk
MWYxY2Q0YjczMWIxZDQyNmVlYmRlOTZhMmRiMzcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0xNzAsNiAr
MTcwLDE3IEBAIHZvaWQgTm90aWZpY2F0aW9uOjpjb250ZXh0RGVzdHJveWVkKCkKICAgICAgICAg
bV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95
ZWQodGhpcyk7CiB9CiAKK2NvbnN0IGNoYXIqIE5vdGlmaWNhdGlvbjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJOb3RpZmljYXRpb24iOworfQorCitib29sIE5v
dGlmaWNhdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBO
b3RpZmljYXRpb246OmZpbmFsaXplKCkKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBDbG9zZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmgKaW5kZXggZDE3Y2VmOGQ3MzFmYjlhMjllNWQxODU3YzQ0YWRkYTAzNzkzMmYwOS4uMzg5NGJl
MjZmNzM1MWYyZWU0NWMwZjQ1OThiMzdkZmM3ZmI5NGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaApAQCAtMTQ2LDE1ICsx
NDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0Qm9keShjb25zdCBTdHJpbmcmIGJvZHkp
IHsgbV9ib2R5ID0gYm9keTsgfQogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVyZmFjZQot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgLy8gQWN0
aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsK
KyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAvLyBFdmVudFRhcmdl
dCBpbnRlcmZhY2UKKyAgICAvLyBFdmVudFRhcmdldCBBUEkuCiAgICAgdmlydHVhbCB2b2lkIHJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTm90
aWZpY2F0aW9uIjsgfQotCiAgICAgdm9pZCBzdGFydExvYWRpbmdJY29uKCk7CiAgICAgdm9pZCBm
aW5pc2hMb2FkaW5nSWNvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCmluZGV4IDA5NTgyZjU3
NzA1YTg4YjliYTA1MzBkMzU2MGZlMzQ3OTI0ZDA1YWYuLmIyYzgxM2NmOWZiYmYyNTE2NDliOTY5
MzI2ODEyOTA0YjJmZDZlMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0xMDIsNyArMTAy
LDE4IEBAIHZvaWQgTm90aWZpY2F0aW9uQ2VudGVyOjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwog
ICAgIG1fY2xpZW50LT5jYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKICAgICBtX2NsaWVudC0+Y2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9jbGllbnQgPSAwOworICAgIG1fY2xpZW50ID0gbnVsbHB0
cjsKK30KKworY29uc3QgY2hhciogTm90aWZpY2F0aW9uQ2VudGVyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk5vdGlmaWNhdGlvbkNlbnRlciI7Cit9CisKK2Jv
b2wgTm90aWZpY2F0aW9uQ2VudGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOwog
fQogCiB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6cmVxdWVzdFRpbWVkT3V0KE5vdGlmaWNhdGlv
bkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrKiByZXF1ZXN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oCmluZGV4IDZmMmI4MDg3MzdhZjM1OTBjNjAwYjcxOTg1ODAzZDE1OGYwNGVmNjcuLmIz
YjFhMjY1ZWVjOWI1ODViYzZmODFiYzdhZTM2NmQ1ODhhYmU5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmgKQEAgLTczLDkgKzczLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9u
Q2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25DbGllbnQqKTsKIAot
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIk5vdGlmaWNhdGlvbkNlbnRlciI7IH0KKyAgICAvLyBBY3RpdmVET01P
YmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGNsYXNzIE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFj
ayA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjaz4gewogICAg
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uY3BwCmluZGV4IDNlNGZjNjU5OTA3OWMwMGZiNjc5NDc2MDlkZDNhYzYyYjVkZDlhNGUu
LmY3NjI3NWEzNzA5MTA3ZTA3ZTI2MzJiNjAwNDJhOGQ0OGExYmY3MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcApAQCAtOTAsNiAr
OTAsMTcgQEAgdm9pZCBSZWFkYWJsZVN0cmVhbTo6cmVhZHkoU3VjY2Vzc0NhbGxiYWNrKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2NvbnN0IGNoYXIqIFJlYWRhYmxlU3RyZWFtOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJlYWRhYmxlU3RyZWFtIjsK
K30KKworYm9vbCBSZWFkYWJsZVN0cmVhbTo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxz
ZTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggYzg0NWZlZGI4NmRhN2FlYjdiN2EwYmM2ODlkZDhmNWUx
YWExYzlhMC4uMDBiNDk1MDJiYzYzMDZkZWVhZDg1NTUwMGEyYjJiYzUyYjQ1NTFhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTU4
LDggKzU4LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhZGFibGVTdHJlYW0+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlPiYmKTsK
ICAgICB2aXJ0dWFsIH5SZWFkYWJsZVN0cmVhbSgpOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFy
KiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlYWRhYmxl
U3RyZWFtIjsgfQotCiAgICAgLy8gSlMgQVBJIGltcGxlbWVudGF0aW9uLgogICAgIFN0cmluZyBz
dGF0ZSgpIGNvbnN0OwogCkBAIC03MCw2ICs2OCwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IFJlYWRhYmxlU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJl
YW1Tb3VyY2U+JiYpOwogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5T
dXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFJlZjxS
ZWFkYWJsZVN0cmVhbVNvdXJjZT4gbV9zb3VyY2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDc3ODY4MzdkZmYwMTUxMDc2
N2UzOTJkOGRjNWM1Y2I0ZTk2MGIwMjkuLmNkNDI3N2Q1ZGIwZWNhOWRlMWNmYmE3ZDMyYTU5OTRh
ZTdiODQwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKQEAgLTMxMyw2ICszMTMsMTcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnN0b3Ao
KQogICAgIGNhbGxPbk1haW5UaHJlYWQoc3RvcERpc3BhdGNoLCB0aGlzKTsKIH0KIAorYm9vbCBB
dWRpb0NvbnRleHQ6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2NvbnN0
IGNoYXIqIEF1ZGlvQ29udGV4dDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICJBdWRpb0NvbnRleHQiOworfQorCiBEb2N1bWVudCogQXVkaW9Db250ZXh0Ojpkb2N1
bWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCAy
NTJkYmUxZDgwM2MzNGY4YmE4MGFmNTAzZWJjNDcwYjFlNzI1NmEwLi5iM2I4OWMzMGM3NmU4NTFk
ZjE1ZDZkOWE1ZDNlM2Q1MDFkMjQxNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTg1LDkgKzg1LDYgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgaXNPZmZsaW5lQ29udGV4dCgpIHsgcmV0dXJuIG1faXNPZmZsaW5lQ29udGV4dDsg
fQogCi0gICAgLy8gRG9jdW1lbnQgbm90aWZpY2F0aW9uCi0gICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKLQogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OyAvLyBBU1NFUlRz
IGlmIGRvY3VtZW50IG5vIGxvbmdlciBleGlzdHMuCiAKICAgICBBdWRpb0Rlc3RpbmF0aW9uTm9k
ZSogZGVzdGluYXRpb24oKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uTm9kZS5nZXQoKTsgfQpAQCAt
MjY0LDggKzI2MSw2IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBpc1NhbXBsZVJhdGVS
YW5nZUdvb2QoZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJBdWRpb0NvbnRleHQiOyB9Ci0KICAgICB2b2lkIGNvbnN0cnVjdENvbW1vbigpOwogCiAgICAg
dm9pZCBsYXp5SW5pdGlhbGl6ZSgpOwpAQCAtMjk2LDYgKzI5MSwxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVmTm9kZShBdWRpb05vZGUqKTsKICAgICB2b2lkIGRlcmVmTm9kZShBdWRpb05vZGUq
KTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgLy8gV2hlbiB0
aGUgY29udGV4dCBnb2VzIGF3YXksIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIHNvbWUgc291cmNlcyB3
aGljaCBoYXZlbid0IGZpbmlzaGVkIHBsYXlpbmcuCiAgICAgLy8gTWFrZSBzdXJlIHRvIGRlcmVm
ZXJlbmNlIHRoZW0gaGVyZS4KICAgICB2b2lkIGRlcmVmVW5maW5pc2hlZFNvdXJjZU5vZGVzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmlu
ZGV4IGUwNDgzYzU1ODUwMzA2MzRhMDdhMjhiMmE4ODg2NmY5MWQ0NWU5ODIuLjU3ODc4ZTc2MmFh
OGZhODUxNjcwYzUzZTFlOTZmMTg3MDUzZDM0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC00ODksNiArNDg5LDExIEBAIHZvaWQg
V2ViU29ja2V0OjpzdG9wKCkKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0Ojp1bnNldFBlbmRpbmdB
Y3Rpdml0eSh0aGlzKTsKIH0KIAorY29uc3QgY2hhciogV2ViU29ja2V0OjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIldlYlNvY2tldCI7Cit9CisKIHZvaWQgV2Vi
U29ja2V0OjpkaWRDb25uZWN0KCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBk
aWRDb25uZWN0KCkiLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaAppbmRleCA0ZjNjZTcyOGE5MTM1ODc2ODA2NGE1ODRhMWMwMjBhN2VmM2Q1
MGRlLi44NmJlMmJiNDE3Nzc2MTdmZTZmMWVkZmUwZjE4YTA3OGQwM2YyYzI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC0xMTMsMTMgKzEx
MywxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlNvY2tldChTY3JpcHRF
eGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgZnVuY3Rpb25zLgot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Vz
cGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVz
dW1lKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiV2ViU29ja2V0IjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
dm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92
ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAKaW5kZXggZjQ1ZjMwMjBhN2MzYjRiYmU0
OWZkZDI0ZWQzYTg1NjkxNjgwYWU2Yi4uMDVmNjYyM2IwMGM0ZTNhZTNkYzY0MzAzMjhkMzliNDU5
ZDM5MGFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcApAQCAtMTU2LDYgKzE1NiwxNiBA
QCB2b2lkIEZvbnRMb2FkZXI6OmRpZExheW91dCgpCiAgICAgbG9hZGluZ0RvbmUoKTsKIH0KIAor
Y29uc3QgY2hhciogRm9udExvYWRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJGb250TG9hZGVyIjsKK30KKworYm9vbCBGb250TG9hZGVyOjpjYW5TdXNwZW5k
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fbnVtTG9hZGluZ0Zyb21DU1MgJiYgIW1fbnVtTG9h
ZGluZ0Zyb21KUzsKK30KKwogdm9pZCBGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+IGV2ZW50KQogewogICAgIG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQoZXZlbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250TG9hZGVyLmgKaW5kZXggN2UwMGFiMTU2MDVmNDA1ZTFmMmJlM2U1YWNjYzQw
MTBiODFlYzQ2Zi4uNjI0ZDE2MWI3ZmUwYzM2ZTkwMWU2MTM4YTViYzVhZjM3ZDMxNTIyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udExvYWRlci5oCkBAIC04NSw4ICs4NSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IGxvYWRFcnJvcihDU1NGb250RmFjZVJ1bGUqLCBDU1NGb250RmFjZVNvdXJjZSopOwogICAgIHZv
aWQgbG9hZGluZ0RvbmUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIW1fbnVtTG9hZGluZ0Zyb21DU1MgJiYgIW1fbnVtTG9hZGluZ0Zy
b21KUzsgfQotCiBwcml2YXRlOgogICAgIEZvbnRMb2FkZXIoRG9jdW1lbnQqKTsKIApAQCAtOTUs
NyArOTMsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRh
cmdldERhdGEoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiRm9udExvYWRlciI7
IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZvaWQgcGVuZGluZ0V2ZW50c1RpbWVyRmlyZWQoKSB7IGZpcmVQ
ZW5kaW5nRXZlbnRzKCk7IH0KICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IGUxZWM3NzVjYTBjZDMy
ZTNhNzdhNmJmYWQ5MjhjMzQ5YmQ5ODk1MjUuLjFlNWNjMWZmYzQ3MTEyMDY4MmVmZjJhYTQ2NGY2
ZjMzYmIzMzA0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAgLTYyLDcg
KzYyLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90
IGhhdmUgYSBzaWRlIGVmZmVjdCBvZiBjcmVhdGluZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55
IEFjdGl2ZURPTU9iamVjdC4gVGhhdCBtZWFucyB0aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxs
cyB0byBhcmJpdHJhcnkgSmF2YVNjcmlwdC4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgPSAwOyAvLyBSZXR1
cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZCgpIHdpbGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVu
dGVyaW5nIHRoZSBQYWdlQ2FjaGUuCiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCmluZGV4IGQ3MTQxZjIxMjZhOTEwNTQ2ZWI0NDM2
NGI0MjMxYTk2NDA1MTBkMTguLmE3YmI1ZGZlMmNhZjg0OGQ0ZjVmOTJlMjgxYzk3MzJlNDhhMmU5
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC01MSw2
ICs1MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIG1fZXZlbnRRdWV1ZS5wZW5kaW5nRXZlbnRUaW1l
ckZpcmVkKCk7CiAgICAgfQogCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJEb2N1bWVudEV2ZW50UXVldWVUaW1lciI7IH0KKwog
ICAgIERvY3VtZW50RXZlbnRRdWV1ZSYgbV9ldmVudFF1ZXVlOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggNzMxODE4OGM3ZGE0NWEwOGUzNWEwMWJmNTlhN2Ix
Y2UwZjVkNWUzNS4uZTYxZTNmMTllMzMxMzI4MGIyODJmY2JlYWE3YTY2MmI1MzFlMWFjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC03MSw2ICs3MSwxMSBAQCBib29s
IEZpbGVSZWFkZXI6OmNhblN1c3BlbmQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Y29uc3QgY2hhciogRmlsZVJlYWRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICJGaWxlUmVhZGVyIjsKK30KKwogdm9pZCBGaWxlUmVhZGVyOjpzdG9wKCkKIHsK
ICAgICB0ZXJtaW5hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKaW5kZXggYzQ3
NTYyZmUwYmRkMTEwYjQyNjMxNmI2YjljOTMyYmIyNzIxN2JjMS4uODlmY2IyYTBiN2Y4MzdmMzBm
YTdlNTg0YmExM2E1NjEzYzA1ZjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgK
QEAgLTEwMiwxMCArMTAyLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRmls
ZVJlYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAgICAvLyBBY3RpdmVET01PYmpl
Y3QKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAiRmlsZVJlYWRlciI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3Vz
cGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBFdmVudFRhcmdl
dAogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDZiYmYxZjFiMTcx
YjM5OWNkNGUyZGJkZTY5ZDZlY2MzNDcwYjVmYzguLjUxMTJjZjJlY2MzMWU2OTUwMDNlMzlkNGVj
ZWRiNDkwODZjNGFmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDcxMyw2ICs0NzEzLDExIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6Y2FuU3VzcGVu
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7IAogfQogCitjb25zdCBjaGFyKiBIVE1MTWVkaWFF
bGVtZW50OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkhUTUxN
ZWRpYUVsZW1lbnQiOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogewogICAg
IExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoJXApIiwgdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDE2ZTFkYTIwMjRlZTI0NTgwM2ZiYjg0
YjhmMDg4YWIyYTJkYjA0YTQuLjI0MTk0MTYxZmJlYjlmMDFhMTgwMmU2MTdmMmZkMTUyYTdhODhj
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01MjEsMTIgKzUy
MSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxl
bWVudCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJlaW5nRnVsbHNjcmVl
bkVsZW1lbnQoKSBvdmVycmlkZTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBmdW5jdGlvbnMu
Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIkhUTUxNZWRpYUVsZW1lbnQiOyB9Ci0gICAgdmlydHVhbCBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICAvLyBBY3RpdmVE
T01PYmplY3QgQVBJLgorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXN1
bWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgbWVkaWFWb2x1bWVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAKaW5kZXggMjkwYmJiZDY5YTM2YmJhMjUzZDNiYzMy
Y2RmZjRlMzgwZWNmMjk0OC4uMDdhYTBkZmI2Nzc0YmEyYTQ5NWJjNzRhOGJkOGZkYzZkYWY4OTQ1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCkBAIC04Niw0ICs4
Niw5IEBAIGJvb2wgUHVibGljVVJMTWFuYWdlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK2NvbnN0IGNoYXIqIFB1YmxpY1VSTE1hbmFnZXI6OmFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUHVibGljVVJMTWFuYWdlciI7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UHVibGljVVJMTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2Vy
LmgKaW5kZXggZDQ3MDcxOGZjN2VkNmVhYzI5N2U5MzZiMDRkYTlkZDgyOWEyOTc2NC4uOTBkYTBk
OGFjNDFlMzgzYzU0YzBlNjcyNGRhNTAzMDAwNDU3ZTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Q
dWJsaWNVUkxNYW5hZ2VyLmgKQEAgLTUwLDEyICs1MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYsIFVSTFJlZ2lzdHJhYmxlKik7
CiAgICAgdm9pZCByZXZva2UoY29uc3QgVVJMJik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3Qg
aW50ZXJmYWNlLgotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKLSAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiUHVibGljVVJMTWFuYWdlciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICAKICAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nPiBVUkxTZXQ7CiAgICAgdHlw
ZWRlZiBIYXNoTWFwPFVSTFJlZ2lzdHJ5KiwgVVJMU2V0ID4gUmVnaXN0cnlVUkxNYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCmluZGV4IDEzMTg5YWQ2YWZjZDFhNzczOGMzNDUwZDFkODNlNWUyZWE1YWNkMzQu
LjhmYzBlMDJmOWQwNzE0NDgxY2M0MjJjOGFmYmMxN2FjNmJhMzRiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCkBAIC0zOTM0LDYgKzM5MzQsMTcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpzdG9wKCkKICAgICB9CiB9CiAKK2NvbnN0IGNoYXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0IjsKK30KKworYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW5T
dXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0
dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsK
ICAgICBHQzNEYm9vbGVhbiB2YWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggMDY4MDg0NGIyZjMz
ZThlMGIyN2IwNjQ5NGYwOTAxOGZhYzk0NzIyNS4uMGQ2NDNmZTNjYzgyNzhiYmNjMTAwOWQxMTky
ZDg3OTJjZWI3MDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNDA0LDcgKzQwNCw4IEBAIHByb3RlY3Rl
ZDoKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IjsgfQorICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJv
b2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKICAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xD
b250ZXh0T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDljM2Q3OTQ4MDQ5
MWI5OThkMTliNjRmOTc3MGVhNGY2MGYxZTMzMzQuLjVhNDdlMmM4MzA4MWMyMDM5ZGNiOTllYWVj
N2U0NmRlZTliNDc0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC01MjAsNCArNTIw
LDkgQEAgZG91YmxlIERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoZG91YmxlIGZpcmVUaW1lKSBj
b25zdAogICAgIHJldHVybiBmaXJlVGltZTsKIH0KIAorY29uc3QgY2hhciogRE9NVGltZXI6OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiRE9NVGltZXIiOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKaW5kZXggZDg5NWVh
NDdmYWQ4MmFkMzY3ODZlYmM2MzM1YjU4M2U3NTg0YWU5NC4uNjkxYzViMDQ1YjNlNzE4NjEwOTg4
OTc0ZTAxYzE1NWZmNTE4Njc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaApAQCAtNzksNiArNzks
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCkg
b3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIGFsaWduZWRGaXJlVGltZShkb3VibGUp
IGNvbnN0IG92ZXJyaWRlOwogCisgICAgICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKwog
ICAgICAgICBlbnVtIFRpbWVyVGhyb3R0bGVTdGF0ZSB7CiAgICAgICAgICAgICBVbmRldGVybWlu
ZWQsCiAgICAgICAgICAgICBTaG91bGRUaHJvdHRsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJj
ZS5jcHAKaW5kZXggNzFhZDgyYzU2YmJkYjIzM2YyZTg1NDgyMGM2NmE4ZjBjZjllMTdiYi4uYTlm
NDY3ZmY0ZTc1Mzc4ZmJlYjIyN2JiMDg3OTJiMDI2MmJmZGIyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudFNvdXJjZS5jcHAKQEAgLTQxNiw2ICs0MTYsMTcgQEAgdm9pZCBFdmVudFNvdXJjZTo6c3Rv
cCgpCiAgICAgY2xvc2UoKTsKIH0KIAorY29uc3QgY2hhciogRXZlbnRTb3VyY2U6OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiRXZlbnRTb3VyY2UiOworfQorCiti
b29sIEV2ZW50U291cmNlOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQ
YXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gRXZlbnRTb3VyY2U6OmNyZWF0ZU1lc3NhZ2VFdmVudCgp
CiB7CiAgICAgUmVmUHRyPE1lc3NhZ2VFdmVudD4gZXZlbnQgPSBNZXNzYWdlRXZlbnQ6OmNyZWF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCmluZGV4IGUwOGNlNDJlZjA1MzZlYTMxYzA3
NTkxZmZlZjQxYzg0MTUwM2I4NjkuLjllNGY1NTcwOTVlZDY2YjI0ZTRjYjcyZGRjY2Y0ZmY0ZjQ4
MjQ3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKQEAgLTkxLDggKzkxLDEwIEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxBY2Nlc3NDb250cm9sQ2hlY2soY29uc3Qg
UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsUmVkaXJl
Y3RDaGVjaygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiRXZlbnRTb3VyY2UiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQ
SS4KKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGNvbm5lY3QoKTsKICAgICB2b2lkIG5ldHdvcmtSZXF1ZXN0
RW5kZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKaW5kZXggOWUyOWI3
Zjc1MDA1NjIzZjJkZWVlMjdlNzRlNDc0MjA1NTJhMmZkYS4uZjRhZjE1ZjQzZmEzNzMzNjViNDI0
ZTk1MTA5MmJhMzU1ZTU1MTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNw
ZW5kYWJsZVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVy
LmgKQEAgLTU3LDEzICs1NywxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpIG92ZXJyaWRlID0gMDsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZp
cnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbCBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBj
YW5TdXNwZW5kKCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWwgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3VtZSgpIGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJTdXNwZW5kYWJsZVRpbWVy
IjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZSBm
aW5hbDsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2
b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9p
ZCByZXN1bWUoKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIGJvb2wgbV9zdXNwZW5kZWQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAKaW5kZXggODViOWI1NDA4ZWUz
Mzc3MmQxYmZkOTMwNDQxNTIzMDU5YzFjYTI4NS4uNWVlZTdlYjFmMGVjNzU3MzA2M2RkODNhMjJi
Yjk1OTAzZWRmM2Q3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFj
dFdvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5j
cHAKQEAgLTQ0LDExICs0NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQWJzdHJhY3RX
b3JrZXI6OkFic3RyYWN0V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi0g
ICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCi17Ci19Ci0KIEFic3RyYWN0V29ya2VyOjp+
QWJzdHJhY3RXb3JrZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9BYnN0cmFjdFdvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtl
ci5oCmluZGV4IGJkNzkzNjhjODA2NjVmNzZiZjc5N2RkNTUyYzJkN2EyYWNlMTFiMGQuLmJlOGQx
YzQ5MzI5ODAyY2MyYWZiNzYwYjllYjQyYWM2MjkzZjdiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0Fic3RyYWN0V29ya2VyLmgKQEAgLTQzLDExICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIFVSTDsKIAotICAgIGNsYXNzIEFic3RyYWN0V29ya2VyIDogcHVibGlj
IFJlZkNvdW50ZWQ8QWJzdHJhY3RXb3JrZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJs
aWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CisgICAgY2xhc3MgQWJzdHJhY3RXb3JrZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxBYnN0cmFjdFdvcmtlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIC8vIEV2ZW50VGFyZ2V0IEFQSXMK
LSAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0Ojpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KLQogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKGVycm9yKTsKIAogICAgICAgICB1c2luZyBSZWZDb3VudGVkPEFic3RyYWN0
V29ya2VyPjo6cmVmOwpAQCAtNTYsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgfkFic3RyYWN0V29ya2VyKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IGV4cGxpY2l0IEFic3RyYWN0V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICAg
ICAgQWJzdHJhY3RXb3JrZXIoKSA9IGRlZmF1bHQ7CiAKICAgICAgICAgLy8gSGVscGVyIGZ1bmN0
aW9uIHRoYXQgY29udmVydHMgYSBVUkwgdG8gYW4gYWJzb2x1dGUgVVJMIGFuZCBjaGVja3MgdGhl
IHJlc3VsdCBmb3IgdmFsaWRpdHkuCiAgICAgICAgIFVSTCByZXNvbHZlVVJMKGNvbnN0IFN0cmlu
ZyYgdXJsLCBFeGNlcHRpb25Db2RlJiBlYyk7CkBAIC02NSw4ICs2Miw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBvdmVycmlkZSBmaW5hbCB7IHJlZigpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgZmluYWwgeyBkZXJlZigpOyB9Ci0KLSAgICAgICAgdmly
dHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIkFic3RyYWN0V29ya2VyIjsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAxM2JkNmQ2YjdmNzUyZDU0Y2UzOGU1
YTJjYjk1YzVmZDgwMzdlZjk5Li5iY2IyYzE0NzIyMzIyM2UyMTBhMjVlN2FhYzNlMThiZDI5ODJl
NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQg
bmV0d29ya1N0YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKQogfQogCiBpbmxpbmUgV29ya2VyOjpX
b3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICA6IEFic3RyYWN0V29y
a2VyKGNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2Nv
bnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUodGhpcykpCiB7CiAgICAg
aWYgKCFhbGxXb3JrZXJzKSB7CkBAIC0xMzIsNiArMTMyLDExIEBAIGJvb2wgV29ya2VyOjpjYW5T
dXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2NvbnN0IGNoYXIqIFdvcmtl
cjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJXb3JrZXIiOwor
fQorCiB2b2lkIFdvcmtlcjo6c3RvcCgpCiB7CiAgICAgdGVybWluYXRlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuaAppbmRleCA5NTBlOGFhOGYwYTljYWE3ZDQ1NDA3ZDJlOTgwMWVlMDgxNGJmNzlk
Li5kYjFhODI5YTk3ZjBlYWI3YzNmNjVmMDljMTI3ZmE2Y2VmYzc4OWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
dHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotICAgIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1
YmxpYyBBYnN0cmFjdFdvcmtlciwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgewor
ICAgIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIHB1
YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2VyPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
ICAgIHZpcnR1YWwgfldvcmtlcigpOwpAQCAtNTgsMTMgKzU4LDE1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAg
ICAgdm9pZCB0ZXJtaW5hdGUoKTsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobWVzc2FnZSk7
CiAKKyAgICAgICAgLy8gRXZlbnRUYXJnZXQgQVBJLgorICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSBm
aW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsg
fQorCisgICAgICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgICAgIGJvb2wgaGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBwcml2YXRlOgogICAgICAgICBl
eHBsaWNpdCBXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCkBAIC03NCw2ICs3Niwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZCgpIG92ZXJy
aWRlOwogCisgICAgICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgICAgIGJvb2wgY2Fu
U3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
KyAgICAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
OworCiAgICAgICAgIGZyaWVuZCB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGlu
ZSk7CiAKICAgICAgICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA1NTYwZjNjOTM0MzczOGE0
NGEzOTliN2Q5ZDhmZjZiYjBmZGI4N2UzLi5jMDk2Y2IxYWMwYTBlZjlkZDkxMTZhZDA2NWM1Nzcy
MjEzNjVlZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTEyNTYs
NiArMTI1NiwxMSBAQCBib29sIFhNTEh0dHBSZXF1ZXN0OjpjYW5TdXNwZW5kKCkgY29uc3QKICAg
ICByZXR1cm4gIW1fbG9hZGVyOwogfQogCitjb25zdCBjaGFyKiBYTUxIdHRwUmVxdWVzdDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYTUxIdHRwUmVxdWVzdCI7
Cit9CisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikK
IHsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5zdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oCmluZGV4IGQ0YmIxMjFlYjQ0NzIwN2I1MTJlZTI1OTVmN2Q2ZjYyODA2
NmFkYWQuLmY1ZWI3N2ZjMDRlZjE4NjEyOWNlNTBmYmRmMmY1MDFmODdkMTMzODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0xNjIsMTIgKzE2MiwxMiBAQCBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVk
KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiWE1MSHR0cFJlcXVlc3QiOyB9CisgICAg
dm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92
ZXJyaWRlOworICAgIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQ0NDI2OTJiNGE0NmY0NzI3MDkzNjllN2Nk
NmNmYzU2ODhmODY3MTYuLjMzM2Y0NjdiMDdhMDlmNzE0ZmJhMGM1N2FkODM2MjVmZjk2MWQyMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0xMjY0LDE0ICsxMjY0LDE5IEBAIHZvaWQgV2ViVmll
dzo6ZnJhbWVSZWN0KFJFQ1QqIHJlY3QpCiAgICAgOjpHZXRXaW5kb3dSZWN0KG1fdmlld1dpbmRv
dywgcmVjdCk7CiB9CiAKLWNsYXNzIFdpbmRvd0Nsb3NlVGltZXIgOiBwdWJsaWMgV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lciB7CitjbGFzcyBXaW5kb3dDbG9zZVRpbWVyIGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXaW5kb3dD
bG9zZVRpbWVyKiBjcmVhdGUoV2ViVmlldyopOwogCiBwcml2YXRlOgogICAgIFdpbmRvd0Nsb3Nl
VGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYlZpZXcqKTsKLSAgICB2aXJ0dWFsIHZv
aWQgY29udGV4dERlc3Ryb3llZCgpOwotICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpOworCisgICAg
Ly8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVy
cmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIldpbmRvd0Nsb3NlVGltZXIiOyB9CisKKyAgICAvLyBTdXNwZW5kYWJsZVRp
bWVyIEFQSS4KKyAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGU7CiAKICAgICBXZWJWaWV3KiBtX3dl
YlZpZXc7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247568</attachid>
            <date>2015-02-27 15:50:19 -0800</date>
            <delta_ts>2015-02-27 17:05:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142096-20150227155004.patch</filename>
            <type>text/plain</type>
            <size>57354</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc4NjNiYjUzMDgwMWQ0
NDZlZTE4ZTlmMWYyZDNmNTFiMzY5Njc0Ny4uM2QxYjM3ZmVjMjM3Nzk5YmZjNjRiY2NkYjc4YmQy
ODcyMTcxZjcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE1LTAyLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBBY3RpdmVET01PYmpl
Y3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5
MjMwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBBY3RpdmVET01PYmplY3Q6OmNhblN1c3BlbmQoKSBwdXJlIHZpcnR1YWwgc28gdGhhdCBw
ZW9wbGUgYXQgbGVhc3QKKyAgICAgICAgdHJ5IHRvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24g
Zm9yIGl0LiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3YXMKKyAgICAgICAgcmV0dXJuaW5n
IGZhbHNlIHVuY29uZGl0aW9uYWxseSBhbmQgdGh1cyB3YXMgcHJldmVudGluZyBwYWdlcyBmcm9t
CisgICAgICAgIGVudGVyaW5nIHRoZSBQYWdlQ2FjaGUuCisKKzIwMTUtMDItMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBNYWtlIFNvdXJjZUJ1ZmZlciBBY3Rp
dmVET01PYmplY3Qgc3VzcGVuZGFibGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjEwOAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk5MjMwODU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNw
cAppbmRleCAyMGM0MTM0NTk1MmMzNTJlYzFlNTA1MmIzZjFjZDA3MTczOTk5ZmYzLi5jZjYyYTA4
NDMwYzc5NzMyNjU5NmJmZmU3NjU4YzE2NmQ5MjZjMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTg4LDYgKzg4LDExIEBA
IHZvaWQgQmF0dGVyeU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoUGFzc1JlZlB0cjxCYXR0
ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzCiAgICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0
YXR1czsKIH0KIAorYm9vbCBCYXR0ZXJ5TWFuYWdlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQmF0dGVyeU1hbmFnZXI6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikKIHsKICAgICBpZiAobV9iYXR0ZXJ5Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKaW5kZXggMzJlMjE1
MjgxMDQxOGUwN2MxNWM4NDQxOWJjODAyOTAyYWFiNzU1Ni4uNTZjYzgxMjNhNDAwZTU5M2NlYzM4
YzVhNzRjNTYxZjNkOGM1MTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0
ZXJ5L0JhdHRlcnlNYW5hZ2VyLmgKQEAgLTU4LDEyICs1OCw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBSZWZDb3VudGVkPEJhdHRlcnlNYW5hZ2VyPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8
QmF0dGVyeU1hbmFnZXI+OjpkZXJlZjsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbXBsZW1l
bnRhdGlvbi4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBvdmVycmlkZSB7IHJldHVybiAmbV9l
dmVudFRhcmdldERhdGE7IH0KICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZl
bnRUYXJnZXREYXRhKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFRhcmdldERhdGE7IH0KQEAg
LTcxLDYgKzY1LDEyIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQmF0dGVy
eU1hbmFnZXIoTmF2aWdhdG9yKik7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50
YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXggNDdlOTg0YmViYmIzMGY0NzZjZmQ5NmFjYTlk
Nzc0MmYxYzBlZTAzNC4uMjNmOWQwZDEwNTY3ODI5Mzk1MGVkZTJiMjYyMDZiYjA2ZmIwNTgxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtMjUwLDYgKzI1MCwyNyBAQCBTdHJpbmcgTWVkaWFLZXlT
ZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gcGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksIG9yaWdpbi0+ZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOwogfQogCitib29sIE1lZGlhS2V5U2Vzc2lvbjo6aGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwgbV9h
c3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIE1lZGlhS2V5U2Vz
c2lvbjo6c3RvcCgpCit7CisgICAgY2xvc2UoKTsKK30KKworY29uc3QgY2hhciogTWVkaWFLZXlT
ZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlh
S2V5U2Vzc2lvbiI7Cit9CisKK2Jvb2wgTWVkaWFLZXlTZXNzaW9uOjpjYW5TdXNwZW5kKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggNGRl
NDZmNzk3YjdhYTJiZGVkYTQxMThjOGZmZjFhZTBmY2FiZDk2NC4uNzgzNWM0OWY0MzUwMTJlZjli
OGUwNTJlOGY3YjU3OGU1NzMxYmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCkBAIC03MywxMCArNzMsNiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gKG1fa2V5cyAmJiAhaXNDbG9zZWQoKSkgfHwg
bV9hc3luY0V2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KLQogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIod2Via2l0a2V5YWRkZWQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIod2Via2l0a2V5ZXJyb3IpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIod2Via2l0a2V5bWVzc2FnZSk7CkBAIC04NCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgog
ICAgIE1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFLZXlzKiwg
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwogICAgIHZvaWQga2V5UmVxdWVzdFRpbWVyRmlyZWQo
KTsKQEAgLTExNiw3ICsxMTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYUtl
eVNlc3Npb24iOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCmluZGV4IDdkYWI4MDQxNjg3M2I2ZmYyYzgxOGUzN2UzMjBlMDU4NDUzMjU5ZjYuLjY4Mzdh
NGVjNjlhMjNlMmJiODA1ZDE4ZmQ4YTFkMGI2ZDAxZGU3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0yOTMsNiArMjkz
LDExIEBAIHZvaWQgR2VvbG9jYXRpb246OnN0b3AoKQogICAgIG1fcGVuZGluZ0ZvclBlcm1pc3Np
b25Ob3RpZmllcnMuY2xlYXIoKTsKIH0KIAorY29uc3QgY2hhciogR2VvbG9jYXRpb246OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiR2VvbG9jYXRpb24iOworfQor
CiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uaAppbmRleCAzNTkzZjEzNDZhOTMyNTE5MzQ2NjQwYjUzMzgzNGFm
OGUyNjdhMGU5Li4wYjMwZDMyY2E4ZTMzNWFlMzhhMTdkYmY0ZDk4NzMzNzE1ZDczMWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBA
IC01Nyw5ICs1Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIFdFQkNPUkVfRVhQT1JUIH5HZW9sb2Nh
dGlvbigpOwogCi0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwpA
QCAtODAsNyArNzcsMTEgQEAgcHJpdmF0ZToKICAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9u
KCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNEZW5pZWQo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93R2VvbG9jYXRpb24gPT0gTm87IH0KIApAQCAtMTQwLDgg
KzE0MSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihQ
b3NpdGlvbk9wdGlvbnMqKTsKICAgICB2b2lkIG1ha2VDYWNoZWRQb3NpdGlvbkNhbGxiYWNrcygp
OwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIkdlb2xvY2F0aW9uIjsgfQotCiAgICAgR2VvTm90aWZpZXJTZXQg
bV9vbmVTaG90czsKICAgICBXYXRjaGVycyBtX3dhdGNoZXJzOwogICAgIEdlb05vdGlmaWVyU2V0
IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggNTllZmYxY2UwYTNmNTFkZjg5
MWZkNDkzNTNmZmRlZGQ0M2NkNGQ4NS4uNDIzZjQxZGY2MzFlOWRkODAwNDI3MWZhMmEwZWI4YzI0
OGViMDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcApAQCAtMzYxLDYgKzM2MSwxMSBAQCB2b2lkIElEQkRhdGFiYXNlOjpzdG9wKCkK
ICAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKIH0KIAorY29uc3QgY2hhciogSURCRGF0YWJh
c2U6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiSURCRGF0YWJh
c2UiOworfQorCiBib29sIElEQkRhdGFiYXNlOjpjYW5TdXNwZW5kKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9pc0Nsb3NlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oCmluZGV4IDljOWM3NjBjYjhkY2U2MDdmYzYzODkxMjhlZWVhNDkwOTVjYWFl
ZmQuLjAzZTVlZWEzODNjM2FlMWNjYjEwMzQxNzk1ZmU1ZWE1YjA4MTE0NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtODAsOSArODAs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRf
dCk7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZSBmaW5hbCB7IHJldHVybiBJREJEYXRhYmFzZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC0xMDgsMTIgKzEwNSwxNSBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJEYXRhYmFzZT46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPElEQkRhdGFiYXNlPjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJ
LgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByaXZh
dGU6CiAgICAgSURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwog
Ci0gICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KICAg
ICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIklEQkRhdGFiYXNlIjsgfQorICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDQ5NDcw
ZWFiYjFmMjkzZmQ3NTA5Njk0OWEyNWY4Mzg5M2FmZDUwY2UuLjM5Njk4MDA0ZDVlYmI2ZTRmYTAz
Zjk2ZjBjYmM4NzI5N2ZlMjcxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00NDgsNiArNDQ4LDExIEBAIGJvb2wgSURCUmVxdWVz
dDo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX2hhc1BlbmRpbmdBY3Rpdml0eTsK
IH0KIAorY29uc3QgY2hhciogSURCUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJJREJSZXF1ZXN0IjsKK30KKwogRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
SURCUmVxdWVzdDo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogewogICAgIHJldHVybiBJ
REJSZXF1ZXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDlmZDI2Mjg2MGEwMmIzMWFhNzAyZDdk
MWJiMzY3ZjQ4MjQ4MTg1YjIuLjM0MjVjN2I0YTNhOGQ0ZmU3OTlmZGMwYzdhZTYwNzIxZTE5YzY0
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgK
QEAgLTkzLDkgKzkzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CiAKLSAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQpAQCAtMTEzLDYgKzExMCw5IEBAIHB1YmxpYzoKIAogICAgIERP
TVJlcXVlc3RTdGF0ZSogcmVxdWVzdFN0YXRlKCkgeyByZXR1cm4gJm1fcmVxdWVzdFN0YXRlOyB9
CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZvaWQgZW5xdWV1ZUV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKQEAgLTEzMCwxMiArMTMwLDEyIEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVkIGJ5IHRyYW5zYWN0
aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4gYXNzZXJ0LgogCiBw
cml2YXRlOgotICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJSZXF1ZXN0IjsgfQorICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzQyZjk0NWM0
MTEzNDc5ZmU3MTgzZDEwODk4MWUwYzEwZDY1Nzg0OC4uZTI0OWI0ZmMxNDUwZWEwYzcwOTBkM2M1
OWUxOWQzZTNhMDZkZjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNDA4LDYgKzQwOCwxMSBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uOjpzdG9wKCkKICAgICBhYm9ydChJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAorY29u
c3QgY2hhciogSURCVHJhbnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiSURCVHJhbnNhY3Rpb24iOworfQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpl
bnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShtX3N0YXRlICE9IEZpbmlzaGVkLCAiQSBmaW5pc2hlZCB0cmFuc2FjdGlvbiB0cmll
ZCB0byBlbnF1ZXVlIGFuIGV2ZW50IG9mIHR5cGUgJXMuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGY1Y2QzNGQ5OGEwZWRmOGUzODdlNjQ0YTE0ZGRlYjEx
ZjUxNjA3ZGEuLjVlOWUwNDJhMWZhZWY0ZWYzODI5YmViYzI2OWEyNjY4ZWRhNGJkYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApA
QCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVu
dChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHVzaW5n
IFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJ
REJUcmFuc2FjdGlvbj46OmRlcmVmOwpAQCAtMTI1LDEyICsxMjUsMTIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZ2lzdGVyT3BlbkN1cnNvcihJREJDdXJzb3IqKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJPcGVuQ3Vyc29yKElEQkN1cnNvciopOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJJREJUcmFuc2FjdGlvbiI7IH0KKyAg
ICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDcwODY0MTc1YWFmZjUxZDljOGI2N2Iw
NzhjYTUyMDM4ODJlYTQwM2IuLjkwYWNhNmQ0ZjQ1MWVkZjU0N2JlY2U4ODVhNjI2YjhkYzk3NjEx
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC04MTQsNiArODE0LDExIEBAIGJvb2wgTWVkaWFTb3VyY2U6OmNhblN1c3Bl
bmQoKSBjb25zdAogICAgIHJldHVybiBpc0Nsb3NlZCgpICYmICFtX2FzeW5jRXZlbnRRdWV1ZS5o
YXNQZW5kaW5nRXZlbnRzKCk7CiB9CiAKK2NvbnN0IGNoYXIqIE1lZGlhU291cmNlOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIk1lZGlhU291cmNlIjsKK30KKwog
dm9pZCBNZWRpYVNvdXJjZTo6b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYg
b2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3RhdGUpCiB7CiAgICAgaWYgKGlzT3Bl
bigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmgKaW5kZXggYWU4OWIwNGMxNjlkZGE4YTM0NjI0YWM2MzBkNDg1M2M5NjAxMWUxNS4uYzJj
Y2Q5NzUzMzI5OTNlYWM0YzBjOTQ5YmIyOTQ1MTI1NTE5ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtOTksMTEgKzk5LDYg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciosIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3Ry
aW5nJiB0eXBlKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOwotICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8g
RXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpAQCAt
MTE2LDEwICsxMTEsMTYgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50Pjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBNZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKLSAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiTWVkaWFTb3VyY2UiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcm
IG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKTsKICAgICBWZWN0b3I8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBhY3RpdmVSYW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA5YTY1M2Jh
MjQzOTczNmNmZjUzYmU4YmI2YmQ3Y2NiZTEwZmJjMDUzLi41OWI1NDIwNGE5YTMwMTM4N2M4NzUx
ZDZiOWM0ZmVhNGJhYjYzYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC01MTUsNiArNTE1LDExIEBAIGJvb2wgU291
cmNlQnVmZmVyOjpjYW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gIWhhc1BlbmRpbmdBY3Rp
dml0eSgpOwogfQogCitjb25zdCBjaGFyKiBTb3VyY2VCdWZmZXI6OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdAoreworICAgIHJldHVybiAiU291cmNlQnVmZmVyIjsKK30KKwogYm9vbCBTb3Vy
Y2VCdWZmZXI6OmlzUmVtb3ZlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFtX3NvdXJjZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmlu
ZGV4IGVhMTE2NTAyYTg1NTZmNGQ5ZGI0NDc2YWExZDIwMWVjZWNmOGZhYmUuLjQ5MjY5ZmZlMmM3
N2Y4OTdlZTc4MWIzYjAzNGRhYTI0OWVmMTYyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMTA2LDExICsxMDYsNiBAQCBw
dWJsaWM6CiAKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCi0gICAgdmlydHVhbCBib29sIGhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAv
LyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBTb3VyY2VCdWZmZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KQEAgLTEyOSw2
ICsxMjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBz
KGJvb2wgZmxhZykgeyBtX3Nob3VsZEdlbmVyYXRlVGltZXN0YW1wcyA9IGZsYWc7IH0KIAogICAg
IHZvaWQgcmFuZ2VSZW1vdmFsKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpOwor
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0IG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gRXZlbnRUYXJnZXQgaW50
ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQpAQCAtMTM3LDcgKzEzNiwxMCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFNvdXJj
ZUJ1ZmZlcihSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4mJiwgTWVkaWFTb3VyY2UqKTsKIAotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJTb3VyY2VCdWZmZXIiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRFbmRTdHJlYW0oU291cmNlQnVmZmVyUHJpdmF0ZSos
IGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCAz
MWZjMTk4YjE3MTZjMTNjYTg5MjZkZjllZjQyNTAyMTU4YzNjNGZhLi5kYmIxMDVjYWFiOGFjM2U0
NmZlYTUwYWU1YTIwZWIyNTEzOWMxMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTI4OCw2ICsyODgs
MTcgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKCkKICAgICBtX3ByaXZhdGVUcmFjay0+
c3RvcChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6U3RvcFRyYWNrT25seSk7CiB9CiAKK2NvbnN0
IGNoYXIqIE1lZGlhU3RyZWFtVHJhY2s6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiTWVkaWFTdHJlYW1UcmFjayI7Cit9CisKK2Jvb2wgTWVkaWFTdHJlYW1UcmFj
azo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5k
IGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjpzY2hlZHVsZUV2ZW50RGlzcGF0Y2goUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaAppbmRleCBhNzY5YTllNmM4ZTEwNGVlMzZmNjE4YjY4NzcyYmZlNjA0
ZGY5MmFlLi5lY2U4NTA0ZDk5OTkzMmU0MmUyM2FhY2E5YzE2MDM0YWE1NDk2ODA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0U291cmNl
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KTsKIAogcHJpdmF0ZToKLQogICAgIHZvaWQg
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKICAgICB2b2lkIHRyYWNrRGlkRW5kKCk7CiAgICAg
dm9pZCBzY2hlZHVsZUV2ZW50RGlzcGF0Y2goUGFzc1JlZlB0cjxFdmVudD4pOwogCi0gICAgLy8g
QWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZSBmaW5hbDsK
LSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiTWVkaWFTdHJlYW1UcmFjayI7IH0KKyAgICAvLyBBY3RpdmVET01PYmpl
Y3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlIGZpbmFsOworICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CiAg
ICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1G
U2VuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNl
bmRlci5jcHAKaW5kZXggOTIzMTY1NDFkN2NhY2YyYjBmMDIzZmMxY2ExNGZkNmNlZjZkNTU1ZC4u
ZjAxNGI0YzcwMzlmN2RmMTc2ZGIxZTZmOGY4ODYzNzg3NjhkZjAxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCkBAIC0x
MzEsNyArMTMxLDE4IEBAIHZvaWQgUlRDRFRNRlNlbmRlcjo6ZGlkUGxheVRvbmUoY29uc3QgU3Ry
aW5nJiB0b25lKQogdm9pZCBSVENEVE1GU2VuZGVyOjpzdG9wKCkKIHsKICAgICBtX3N0b3BwZWQg
PSB0cnVlOwotICAgIG1faGFuZGxlci0+c2V0Q2xpZW50KDApOworICAgIG1faGFuZGxlci0+c2V0
Q2xpZW50KG51bGxwdHIpOworfQorCitjb25zdCBjaGFyKiBSVENEVE1GU2VuZGVyOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJUQ0RUTUZTZW5kZXIiOworfQor
Citib29sIFJUQ0RUTUZTZW5kZXI6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgUlRDRFRNRlNlbmRlcjo6c2NoZWR1bGVEaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8
RXZlbnQ+IGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEVE1GU2VuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RUTUZTZW5kZXIuaAppbmRleCBmYzcxN2Y5NDI2ZGM1N2M2MDVkNGFhMjE4MDU5ZmYwNGIx
ZDYwZjJhLi5kMmRmMWU1M2YzYzQ2MDFmZWIwNDNhYzM5NTBhYjU2NzUyY2ZhMGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaApA
QCAtNjIsMTYgKzYyLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUlRDRFRN
RlNlbmRlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKLSAg
ICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwot
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENEVE1GU2VuZGVyPjo6cmVmOwogICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8UlRDRFRNRlNlbmRlcj46OmRlcmVmOwogCiBwcml2YXRlOgogICAgIFJUQ0RUTUZT
ZW5kZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
az4sIHN0ZDo6dW5pcXVlX3B0cjxSVENEVE1GU2VuZGVySGFuZGxlcj4pOwogCi0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIlJUQ0RUTUZTZW5kZXIiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzY2hlZHVsZURpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIHZv
aWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDcyZTFm
ZmE5ZDg4ODZhZDkyNDAzYTJhM2Q3ZjIyMTQ4YTRlYWVjYWEuLmU4NDMzZTVlN2NmZWJhZmRlZWIz
ODYxODQ1ODhkY2UwYTRiZDIwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC02OTAsNiArNjkwLDE3
IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN0b3AoKQogICAgICAgICAoKmkpLT5zdG9wKCk7
CiB9CiAKK2NvbnN0IGNoYXIqIFJUQ1BlZXJDb25uZWN0aW9uOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJUQ1BlZXJDb25uZWN0aW9uIjsKK30KKworYm9vbCBS
VENQZWVyQ29ubmVjdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCiB7CiAgICAgbmVn
b3RpYXRpb25OZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBlNTdhNGY4MzZlODc1NjU1N2QxYmRh
ZjcwMTI4ZWQ5ODcyOTFlNWE1Li5kZWVmNjAxMTk2ZWEyMGJjZWQ1ZGFlZGRlYzkzODU5MjlkYTc0
NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xMjUsOSArMTI1LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBSVENQZWVyQ29ubmVjdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsg
fQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOyB9CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotCiAgICAgLy8gTWVkaWFTdHJlYW06Ok9ic2VydmVyCiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZE9yUmVtb3ZlVHJhY2soKSBvdmVycmlkZTsKIApAQCAtMTQ2
LDcgKzE0MywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJUQ1BlZXJDb25uZWN0aW9u
IjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY2hhbmdlU2ln
bmFsaW5nU3RhdGUoU2lnbmFsaW5nU3RhdGUpOwogICAgIHZvaWQgY2hhbmdlSWNlR2F0aGVyaW5n
U3RhdGUoSWNlR2F0aGVyaW5nU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsLmNwcAppbmRleCAwODIzOTFhMDU1NDAyMWQ1ZWQyODIzMWQ3ZWVmMmE5MGNmNTVl
ZWY1Li40MzE0ODVlYjQ1NjRmYzY1NjM2NzMyM2JkOTVmY2NlMzczZmE3MDU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcApAQCAtODQsNiArODQsMTcgQEAg
dm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6c3RvcCgpCiAgICAgY2xlYXIo
KTsKIH0KIAorY29uc3QgY2hhciogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwiOworfQorCitib29sIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsOjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRy
eSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjbGVhcigpCiB7CiAgICAgbV9zdWNjZXNzQ2Fs
bGJhY2suY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaApp
bmRleCA1Yjk0MzNlMGJhNTBlZWJlOWVmZGM5YzRiODkyNDFjZDUyMjk2MDcxLi42N2Y4Y2UzZjI0
OTJhMWQzMDhiMjI0Njk4ZmNiZmU3ZjJiMjAxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbC5oCkBAIC01MSwxMyArNTEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcj4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVkKGNv
bnN0IFN0cmluZyYgZXJyb3IpIG92ZXJyaWRlOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDUGVlckNv
bm5lY3Rpb25FcnJvckNhbGxiYWNrPik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICB2
b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCmluZGV4IGQxMGQxYjQ1
MGVlMGMzMGNhYTA4N2M5NTAxZDI2YjY0YTQzODczZjcuLjJhMjQwOGEzNDFjZWFjNWI4MzIyNWY3
OTA3ZjAyZTQ0ZTBlZTNlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtOTEsNiArOTEsMTcg
QEAgdm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpzdG9wKCkKICAgICBjbGVhcigpOwogfQogCitj
b25zdCBjaGFyKiBSVENTdGF0c1JlcXVlc3RJbXBsOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlJUQ1N0YXRzUmVxdWVzdEltcGwiOworfQorCitib29sIFJUQ1N0
YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZv
aWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewogICAgIG1fc3VjY2Vzc0NhbGxiYWNr
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oCmluZGV4IDk3M2E2YWNhYTFjODk2ZjY3NGVkZGM5ZDcx
ZWVkNWQ2ZDQ3ZmY2MzcuLmNiNWQ4NWVmYjZlZjlhZGViZGIwMTk1MmJjNmM1M2U2MzBlNGFkZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0SW1wbC5oCkBAIC01MSwxMyArNTEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZUJhc2U+
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgUlRDU3RhdHNSZXF1ZXN0SW1wbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlPik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUlRDU3RhdHNSZXF1ZXN0SW1wbCI7
IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXIo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENW
b2lkUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuY3BwCmluZGV4IGQ5MDc1NzhlNDZlNTk1ZGY3OGZjZTI0ZmZiYzQ4
OGNmOGVjYmU2MGEuLmNmMDY1M2JjMGViOTkyMTc0ZmExMDg2MWIzMTEzYmMxY2M0ZGYxNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVl
c3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5jcHAKQEAgLTgxLDYgKzgxLDE3IEBAIHZvaWQgUlRDVm9pZFJlcXVlc3RJ
bXBsOjpzdG9wKCkKICAgICBjbGVhcigpOwogfQogCitjb25zdCBjaGFyKiBSVENWb2lkUmVxdWVz
dEltcGw6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUlRDVm9p
ZFJlcXVlc3RJbXBsIjsKK30KKworYm9vbCBSVENWb2lkUmVxdWVzdEltcGw6OmNhblN1c3BlbmQo
KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVy
ZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVh
cigpCiB7CiAgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCmluZGV4
IDc0OGM5NmNhNDAyODUxYjBlYzJhNWZhZDMyYThjZjg2ZGFkYmRjNWIuLjdhMThiODg2Nzc5NmIz
M2YxNGEwMDQ2MTZkODJmMDdjNWQ1NmIwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaApAQCAtNTAsMTYgKzUw
LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpOwogCi0gICAg
Ly8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLQog
cHJpdmF0ZToKICAgICBSVENWb2lkUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENQZWVyQ29ubmVjdGlvbkVy
cm9yQ2FsbGJhY2s+KTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSVENWb2lkUmVxdWVzdEltcGwiOyB9Ci0K
ICAgICB2b2lkIGNsZWFyKCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAg
ICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKICAgICBSZWZQdHI8UlRD
UGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrPiBtX2Vycm9yQ2FsbGJhY2s7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cAppbmRleCA5YmQwNDQ2ODZlMWNmNzdmYWViYjY5NjljNWZjNjQ2MDAxN2YxZmQ2Li5lNGQ4ZDdh
ZDFmMWNkNGI3MzFiMWQ0MjZlZWJkZTk2YTJkYjM3MTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcApAQCAtMTcwLDYg
KzE3MCwxNyBAQCB2b2lkIE5vdGlmaWNhdGlvbjo6Y29udGV4dERlc3Ryb3llZCgpCiAgICAgICAg
IG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJv
eWVkKHRoaXMpOwogfQogCitjb25zdCBjaGFyKiBOb3RpZmljYXRpb246OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiTm90aWZpY2F0aW9uIjsKK30KKworYm9vbCBO
b3RpZmljYXRpb246OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQg
Tm90aWZpY2F0aW9uOjpmaW5hbGl6ZSgpCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gQ2xvc2VkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5oCmluZGV4IGQxN2NlZjhkNzMxZmI5YTI5ZTVkMTg1N2M0NGFkZGEwMzc5MzJmMDkuLjM4OTRi
ZTI2ZjczNTFmMmVlNDVjMGY0NTk4YjM3ZGZjN2ZiOTRlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKQEAgLTE0NiwxNSAr
MTQ2LDE1IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldEJvZHkoY29uc3QgU3RyaW5nJiBib2R5
KSB7IG1fYm9keSA9IGJvZHk7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UK
LSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIC8vIEFj
dGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7
CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgLy8gRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlCisgICAgLy8gRXZlbnRUYXJnZXQgQVBJLgogICAgIHZpcnR1YWwgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCi0gICAgdmlydHVhbCBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk5v
dGlmaWNhdGlvbiI7IH0KLQogICAgIHZvaWQgc3RhcnRMb2FkaW5nSWNvbigpOwogICAgIHZvaWQg
ZmluaXNoTG9hZGluZ0ljb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCAwOTU4MmY1
NzcwNWE4OGI5YmEwNTMwZDM1NjBmZTM0NzkyNGQwNWFmLi5iMmM4MTNjZjlmYmJmMjUxNjQ5Yjk2
OTMyNjgxMjkwNGIyZmQ2ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMTAyLDcgKzEw
MiwxOCBAQCB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6c3RvcCgpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX2NsaWVudC0+Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7CiAgICAgbV9jbGllbnQtPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2NsaWVudCA9IG51bGxw
dHI7Cit9CisKK2NvbnN0IGNoYXIqIE5vdGlmaWNhdGlvbkNlbnRlcjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJOb3RpZmljYXRpb25DZW50ZXIiOworfQorCiti
b29sIE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsK
IH0KIAogdm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RUaW1lZE91dChOb3RpZmljYXRp
b25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayogcmVxdWVzdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuaAppbmRleCA2ZjJiODA4NzM3YWYzNTkwYzYwMGI3MTk4NTgwM2QxNThmMDRlZjY3Li5i
M2IxYTI2NWVlYzliNTg1YmM2ZjgxYmM3YWUzNjZkNTg4YWJlOWRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5oCkBAIC03Myw5ICs3MywxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE5vdGlmaWNhdGlv
bkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAK
LSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuICJOb3RpZmljYXRpb25DZW50ZXIiOyB9CisgICAgLy8gQWN0aXZlRE9N
T2JqZWN0IEFQSS4KKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5k
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBjbGFzcyBOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s+IHsKICAg
ICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmNwcAppbmRleCAzZTRmYzY1OTkwNzljMDBmYjY3OTQ3NjA5ZGQzYWM2MmI1ZGQ5YTRl
Li5mNzYyNzVhMzcwOTEwN2UwN2UyNjMyYjYwMDQyYThkNDhhMWJmNzE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTkwLDYg
KzkwLDE3IEBAIHZvaWQgUmVhZGFibGVTdHJlYW06OnJlYWR5KFN1Y2Nlc3NDYWxsYmFjaykKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitjb25zdCBjaGFyKiBSZWFkYWJsZVN0cmVhbTo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSZWFkYWJsZVN0cmVhbSI7
Cit9CisKK2Jvb2wgUmVhZGFibGVTdHJlYW06OmNhblN1c3BlbmQoKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgdHJ5IGFuZCBkbyBiZXR0ZXIgaGVyZS4KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5oCmluZGV4IGM4NDVmZWRiODZkYTdhZWI3YjdhMGJjNjg5ZGQ4ZjVl
MWFhMWM5YTAuLjAwYjQ5NTAyYmM2MzA2ZGVlYWQ4NTU1MDBhMmIyYmM1MmI0NTUxYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC01
OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWRhYmxlU3RyZWFtPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxSZWFkYWJsZVN0cmVhbVNvdXJjZT4mJik7
CiAgICAgdmlydHVhbCB+UmVhZGFibGVTdHJlYW0oKTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZWFkYWJs
ZVN0cmVhbSI7IH0KLQogICAgIC8vIEpTIEFQSSBpbXBsZW1lbnRhdGlvbi4KICAgICBTdHJpbmcg
c3RhdGUoKSBjb25zdDsKIApAQCAtNzAsNiArNjgsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBSZWFkYWJsZVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3Ry
ZWFtU291cmNlPiYmKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2Fu
U3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgU3RhdGUgbV9zdGF0ZTsKICAgICBSZWY8
UmVhZGFibGVTdHJlYW1Tb3VyY2U+IG1fc291cmNlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA3Nzg2ODM3ZGZmMDE1MTA3
NjdlMzkyZDhkYzVjNWNiNGU5NjBiMDI5Li5jZDQyNzdkNWRiMGVjYTlkZTFjZmJhN2QzMmE1OTk0
YWU3Yjg0MDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuY3BwCkBAIC0zMTMsNiArMzEzLDE3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdG9w
KCkKICAgICBjYWxsT25NYWluVGhyZWFkKHN0b3BEaXNwYXRjaCwgdGhpcyk7CiB9CiAKK2Jvb2wg
QXVkaW9Db250ZXh0OjpjYW5TdXNwZW5kKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHRyeSBhbmQgZG8gYmV0dGVyIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCitjb25z
dCBjaGFyKiBBdWRpb0NvbnRleHQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiAiQXVkaW9Db250ZXh0IjsKK30KKwogRG9jdW1lbnQqIEF1ZGlvQ29udGV4dDo6ZG9j
dW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXgg
MjUyZGJlMWQ4MDNjMzRmOGJhODBhZjUwM2ViYzQ3MGIxZTcyNTZhMC4uYjNiODljMzBjNzZlODUx
ZGYxNWQ2ZDlhNWQzZTNkNTAxZDI0MTQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC04NSw5ICs4NSw2IEBAIHB1YmxpYzoKICAgICAK
ICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSB7IHJldHVybiBtX2lzT2ZmbGluZUNvbnRleHQ7
IH0KIAotICAgIC8vIERvY3VtZW50IG5vdGlmaWNhdGlvbgotICAgIHZpcnR1YWwgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7Ci0KICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsgLy8gQVNTRVJU
cyBpZiBkb2N1bWVudCBubyBsb25nZXIgZXhpc3RzLgogCiAgICAgQXVkaW9EZXN0aW5hdGlvbk5v
ZGUqIGRlc3RpbmF0aW9uKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbk5vZGUuZ2V0KCk7IH0KQEAg
LTI2NCw4ICsyNjEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGJvb2wgaXNTYW1wbGVSYXRl
UmFuZ2VHb29kKGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiQXVkaW9Db250ZXh0IjsgfQotCiAgICAgdm9pZCBjb25zdHJ1Y3RDb21tb24oKTsKIAogICAg
IHZvaWQgbGF6eUluaXRpYWxpemUoKTsKQEAgLTI5Niw2ICsyOTEsMTEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZk5vZGUoQXVkaW9Ob2RlKik7CiAgICAgdm9pZCBkZXJlZk5vZGUoQXVkaW9Ob2Rl
Kik7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIHZvaWQgc3RvcCgpIG92ZXJy
aWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IGNo
YXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIC8vIFdoZW4g
dGhlIGNvbnRleHQgZ29lcyBhd2F5LCB0aGVyZSBtaWdodCBzdGlsbCBiZSBzb21lIHNvdXJjZXMg
d2hpY2ggaGF2ZW4ndCBmaW5pc2hlZCBwbGF5aW5nLgogICAgIC8vIE1ha2Ugc3VyZSB0byBkZXJl
ZmVyZW5jZSB0aGVtIGhlcmUuCiAgICAgdm9pZCBkZXJlZlVuZmluaXNoZWRTb3VyY2VOb2Rlcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApp
bmRleCBlMDQ4M2M1NTg1MDMwNjM0YTA3YTI4YjJhODg4NjZmOTFkNDVlOTgyLi41Nzg3OGU3NjJh
YThmYTg1MTY3MGM1M2UxZTk2ZjE4NzA1M2QzNDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNDg5LDYgKzQ4OSwxMSBAQCB2b2lk
IFdlYlNvY2tldDo6c3RvcCgpCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdDo6dW5zZXRQZW5kaW5n
QWN0aXZpdHkodGhpcyk7CiB9CiAKK2NvbnN0IGNoYXIqIFdlYlNvY2tldDo6YWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJXZWJTb2NrZXQiOworfQorCiB2b2lkIFdl
YlNvY2tldDo6ZGlkQ29ubmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAg
ZGlkQ29ubmVjdCgpIiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmgKaW5kZXggNGYzY2U3MjhhOTEzNTg3NjgwNjRhNTg0YTFjMDIwYTdlZjNk
NTBkZS4uODZiZTJiYjQxNzc3NjE3ZmU2ZjFlZGZlMGYxOGEwNzhkMDNmMmMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtMTEzLDEzICsx
MTMsMTMgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJTb2NrZXQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGZ1bmN0aW9ucy4K
LSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJl
c3VtZSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIldlYlNvY2tldCI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCmluZGV4IGY0NWYzMDIwYTdjM2I0YmJl
NDlmZGQyNGVkM2E4NTY5MTY4MGFlNmIuLjA1ZjY2MjNiMDBjNGUzYWUzZGM2NDMwMzI4ZDM5YjQ1
OWQzOTBhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAKQEAgLTE1Niw2ICsxNTYsMTYg
QEAgdm9pZCBGb250TG9hZGVyOjpkaWRMYXlvdXQoKQogICAgIGxvYWRpbmdEb25lKCk7CiB9CiAK
K2NvbnN0IGNoYXIqIEZvbnRMb2FkZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiRm9udExvYWRlciI7Cit9CisKK2Jvb2wgRm9udExvYWRlcjo6Y2FuU3VzcGVu
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX251bUxvYWRpbmdGcm9tQ1NTICYmICFtX251bUxv
YWRpbmdGcm9tSlM7Cit9CisKIHZvaWQgRm9udExvYWRlcjo6c2NoZWR1bGVFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKIHsKICAgICBtX3BlbmRpbmdFdmVudHMuYXBwZW5kKGV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udExvYWRlci5oCmluZGV4IDdlMDBhYjE1NjA1ZjQwNWUxZjJiZTNlNWFjY2M0
MDEwYjgxZWM0NmYuLjYyNGQxNjFiN2ZlMGMzNmU5MDFlNjEzOGE1YmM1YWYzN2QzMTUyMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRMb2FkZXIuaApAQCAtODUsOCArODUsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBsb2FkRXJyb3IoQ1NTRm9udEZhY2VSdWxlKiwgQ1NTRm9udEZhY2VTb3VyY2UqKTsKICAgICB2
b2lkIGxvYWRpbmdEb25lKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICFtX251bUxvYWRpbmdGcm9tQ1NTICYmICFtX251bUxvYWRpbmdG
cm9tSlM7IH0KLQogcHJpdmF0ZToKICAgICBGb250TG9hZGVyKERvY3VtZW50Kik7CiAKQEAgLTk1
LDcgKzkzLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRU
YXJnZXREYXRhKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEmIGVuc3Vy
ZUV2ZW50VGFyZ2V0RGF0YSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkZvbnRMb2FkZXIi
OyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHBlbmRpbmdFdmVudHNUaW1lckZpcmVkKCkgeyBmaXJl
UGVuZGluZ0V2ZW50cygpOyB9CiAgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAppbmRleCBlMWVjNzc1Y2EwY2Qz
MmUzYTc3YTZiZmFkOTI4YzM0OWJkOTg5NTI1Li4xZTVjYzFmZmM0NzExMjA2ODJlZmYyYWE0NjRm
NmYzM2JiMzMwNGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIHRocmVlIGZ1bmN0aW9ucyBtdXN0IG5v
dCBoYXZlIGEgc2lkZSBlZmZlY3Qgb2YgY3JlYXRpbmcgb3IgZGVzdHJveWluZwogICAgIC8vIGFu
eSBBY3RpdmVET01PYmplY3QuIFRoYXQgbWVhbnMgdGhleSBtdXN0IG5vdCByZXN1bHQgaW4gY2Fs
bHMgdG8gYXJiaXRyYXJ5IEphdmFTY3JpcHQuCi0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0ID0gMDsgLy8gUmV0
dXJuaW5nIGZhbHNlIGluIGNhblN1c3BlbmQoKSB3aWxsIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBl
bnRlcmluZyB0aGUgUGFnZUNhY2hlLgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcAppbmRleCBkNzE0MWYyMTI2YTkxMDU0NmViNDQz
NjRiNDIzMWE5NjQwNTEwZDE4Li5hN2JiNWRmZTJjYWY4NDhkNGY1ZjkyZTI4MWM5NzMyZTQ4YTJl
OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApAQCAtNTEs
NiArNTEsOCBAQCBwcml2YXRlOgogICAgICAgICBtX2V2ZW50UXVldWUucGVuZGluZ0V2ZW50VGlt
ZXJGaXJlZCgpOwogICAgIH0KIAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiRG9jdW1lbnRFdmVudFF1ZXVlVGltZXIiOyB9CisK
ICAgICBEb2N1bWVudEV2ZW50UXVldWUmIG1fZXZlbnRRdWV1ZTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmluZGV4IDczMTgxODhjN2RhNDVhMDhlMzVhMDFiZjU5YTdi
MWNlMGY1ZDVlMzUuLmU2MWUzZjE5ZTMzMTMyODBiMjgyZmNiZWFhN2E2NjJiNTMxZTFhY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcApAQCAtNzEsNiArNzEsMTEgQEAgYm9v
bCBGaWxlUmVhZGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K2NvbnN0IGNoYXIqIEZpbGVSZWFkZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiRmlsZVJlYWRlciI7Cit9CisKIHZvaWQgRmlsZVJlYWRlcjo6c3RvcCgpCiB7
CiAgICAgdGVybWluYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4IGM0
NzU2MmZlMGJkZDExMGI0MjYzMTZiNmI5YzkzMmJiMjcyMTdiYzEuLjg5ZmNiMmEwYjdmODM3ZjMw
ZmE3ZTU4NGJhMTNhNTYxM2MwNWY3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5o
CkBAIC0xMDIsMTAgKzEwMiwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEZp
bGVSZWFkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIkZpbGVSZWFkZXIiOyB9Ci0gICAgdmlydHVhbCBib29sIGNhblN1
c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAgICAgLy8gRXZlbnRUYXJn
ZXQKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2YmJmMWYxYjE3
MWIzOTljZDRlMmRiZGU2OWQ2ZWNjMzQ3MGI1ZmM4Li41MTEyY2YyZWNjMzFlNjk1MDAzZTM5ZDRl
Y2VkYjQ5MDg2YzRhZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTQ3MTMsNiArNDcxMywxMSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblN1c3Bl
bmQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOyAKIH0KIAorY29uc3QgY2hhciogSFRNTE1lZGlh
RWxlbWVudDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJIVE1M
TWVkaWFFbGVtZW50IjsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKIHsKICAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCVwKSIsIHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAxNmUxZGEyMDI0ZWUyNDU4MDNmYmI4
NGI4ZjA4OGFiMmEyZGIwNGE0Li4yNDE5NDE2MWZiZWI5ZjAxYTE4MDJlNjE3ZjJmZDE1MmE3YTg4
YzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTIxLDEyICs1
MjEsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVs
ZW1lbnQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCZWluZ0Z1bGxzY3Jl
ZW5FbGVtZW50KCkgb3ZlcnJpZGU7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QgZnVuY3Rpb25z
LgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuICJIVE1MTWVkaWFFbGVtZW50IjsgfQotICAgIHZpcnR1YWwgYm9vbCBj
YW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVh
c29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZvaWQgcmVz
dW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmly
dHVhbCB2b2lkIG1lZGlhVm9sdW1lRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCmluZGV4IDI5MGJiYmQ2OWEzNmJiYTI1M2QzYmMz
MmNkZmY0ZTM4MGVjZjI5NDguLjA3YWEwZGZiNjc3NGJhMmE0OTViYzc0YThiZDhmZGM2ZGFmODk0
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcApAQCAtODYsNCAr
ODYsOSBAQCBib29sIFB1YmxpY1VSTE1hbmFnZXI6OmNhblN1c3BlbmQoKSBjb25zdAogICAgIHJl
dHVybiB0cnVlOwogfQogCitjb25zdCBjaGFyKiBQdWJsaWNVUkxNYW5hZ2VyOjphY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlB1YmxpY1VSTE1hbmFnZXIiOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1B1YmxpY1VSTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdl
ci5oCmluZGV4IGQ0NzA3MThmYzdlZDZlYWMyOTdlOTM2YjA0ZGE5ZGQ4MjlhMjk3NjQuLjkwZGEw
ZDhhYzQxZTM4M2M1NGMwZTY3MjRkYTUwMzAwMDQ1N2UyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UHVibGljVVJMTWFuYWdlci5oCkBAIC01MCwxMiArNTAsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
cmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBVUkxSZWdpc3RyYWJsZSop
OwogICAgIHZvaWQgcmV2b2tlKGNvbnN0IFVSTCYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0
IGludGVyZmFjZS4KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgdmly
dHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIlB1YmxpY1VSTE1hbmFnZXIiOyB9CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4K
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgCiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZz4gVVJMU2V0OwogICAgIHR5
cGVkZWYgSGFzaE1hcDxVUkxSZWdpc3RyeSosIFVSTFNldCA+IFJlZ2lzdHJ5VVJMTWFwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcAppbmRleCAxMzE4OWFkNmFmY2QxYTc3MzhjMzQ1MGQxZDgzZTVlMmVhNWFjZDM0
Li44ZmMwZTAyZjlkMDcxNDQ4MWNjNDIyYzhhZmJjMTdhYzZiYTM0YjViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcApAQCAtMzkzNCw2ICszOTM0LDE3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c3RvcCgpCiAgICAgfQogfQogCitjb25zdCBjaGFyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIldlYkdMUmVu
ZGVyaW5nQ29udGV4dCI7Cit9CisKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2Fu
U3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgYW5kIGRvIGJl
dHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7
CiAgICAgR0MzRGJvb2xlYW4gdmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDA2ODA4NDRiMmYz
M2U4ZTBiMjdiMDY0OTRmMDkwMThmYWM5NDcyMjUuLjBkNjQzZmUzY2M4Mjc4YmJjYzEwMDlkMTE5
MmQ4NzkyY2ViNzA2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQwNCw3ICs0MDQsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIldlYkdMUmVuZGVyaW5nQ29udGV4dCI7IH0KKyAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkU2hhcmVkT2Jq
ZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7CiAgICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdM
Q29udGV4dE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCA5YzNkNzk0ODA0
OTFiOTk4ZDE5YjY0Zjk3NzBlYTRmNjBmMWUzMzM0Li41YTQ3ZTJjODMwODFjMjAzOWRjYjk5ZWFl
YzdlNDZkZWU5YjQ3NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtNTIwLDQgKzUy
MCw5IEBAIGRvdWJsZSBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkg
Y29uc3QKICAgICByZXR1cm4gZmlyZVRpbWU7CiB9CiAKK2NvbnN0IGNoYXIqIERPTVRpbWVyOjph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkRPTVRpbWVyIjsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmluZGV4IGQ4OTVl
YTQ3ZmFkODJhZDM2Nzg2ZWJjNjMzNWI1ODNlNzU4NGFlOTQuLjY5MWM1YjA0NWIzZTcxODYxMDk4
ODk3NGUwMWMxNTVmZjUxODY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTc5LDYgKzc5
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcCgp
IG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91Ymxl
KSBjb25zdCBvdmVycmlkZTsKIAorICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAg
ICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisK
ICAgICAgICAgZW51bSBUaW1lclRocm90dGxlU3RhdGUgewogICAgICAgICAgICAgVW5kZXRlcm1p
bmVkLAogICAgICAgICAgICAgU2hvdWxkVGhyb3R0bGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuY3BwCmluZGV4IDcxYWQ4MmM1NmJiZGIyMzNmMmU4NTQ4MjBjNjZhOGYwY2Y5ZTE3YmIuLmE5
ZjQ2N2ZmNGU3NTM3OGZiZWIyMjdiYjA4NzkyYjAyNjJiZmRiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwCkBAIC00MTYsNiArNDE2LDE3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OnN0
b3AoKQogICAgIGNsb3NlKCk7CiB9CiAKK2NvbnN0IGNoYXIqIEV2ZW50U291cmNlOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkV2ZW50U291cmNlIjsKK30KKwor
Ym9vbCBFdmVudFNvdXJjZTo6Y2FuU3VzcGVuZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCB0cnkgYW5kIGRvIGJldHRlciBoZXJlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwog
UGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IEV2ZW50U291cmNlOjpjcmVhdGVNZXNzYWdlRXZlbnQo
KQogewogICAgIFJlZlB0cjxNZXNzYWdlRXZlbnQ+IGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVh
dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaAppbmRleCBlMDhjZTQyZWYwNTM2ZWEzMWMw
NzU5MWZmZWY0MWM4NDE1MDNiODY5Li45ZTRmNTU3MDk1ZWQ2NmIyNGU0Y2I3MmRkY2NmNGZmNGY0
ODI0N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCkBAIC05MSw4ICs5MSwxMCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsQWNjZXNzQ29udHJvbENoZWNrKGNvbnN0
IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGly
ZWN0Q2hlY2soKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIkV2ZW50U291cmNlIjsgfQorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBB
UEkuCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb25uZWN0KCk7CiAgICAgdm9pZCBuZXR3b3JrUmVxdWVz
dEVuZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGlt
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCmluZGV4IDllMjli
N2Y3NTAwNTYyM2YyZGVlZTI3ZTc0ZTQ3NDIwNTUyYTJmZGEuLmY0YWYxNWY0M2ZhMzczMzY1YjQy
NGU5NTEwOTJiYTM1NWU1NTE1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Vz
cGVuZGFibGVUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5oCkBAIC01NywxMyArNTcsMTIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZmlyZWQoKSBvdmVycmlkZSA9IDA7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2
aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSBmaW5hbCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWUoKSBmaW5hbCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiU3VzcGVuZGFibGVUaW1l
ciI7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgIGJvb2wgaGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGUg
ZmluYWw7CisgICAgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAg
dm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZv
aWQgcmVzdW1lKCkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBib29sIG1fc3VzcGVuZGVkOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCmluZGV4IDg1YjliNTQwOGVl
MzM3NzJkMWJmZDkzMDQ0MTUyMzA1OWMxY2EyODUuLjVlZWU3ZWIxZjBlYzc1NzMwNjNkZDgzYTIy
YmI5NTkwM2VkZjNkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJh
Y3RXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIu
Y3BwCkBAIC00NCwxMSArNDQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFic3RyYWN0
V29ya2VyOjpBYnN0cmFjdFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQot
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotewotfQotCiBBYnN0cmFjdFdvcmtlcjo6
fkFic3RyYWN0V29ya2VyKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvQWJzdHJhY3RXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3Jr
ZXIuaAppbmRleCBiZDc5MzY4YzgwNjY1Zjc2YmY3OTdkZDU1MmMyZDdhMmFjZTExYjBkLi5iZThk
MWM0OTMyOTgwMmNjMmFmYjc2MGI5ZWI0MmFjNjI5M2Y3YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9BYnN0cmFjdFdvcmtlci5oCkBAIC00MywxMSArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBVUkw7CiAKLSAgICBjbGFzcyBBYnN0cmFjdFdvcmtlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPEFic3RyYWN0V29ya2VyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVi
bGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworICAgIGNsYXNzIEFic3RyYWN0V29ya2Vy
IDogcHVibGljIFJlZkNvdW50ZWQ8QWJzdHJhY3RXb3JrZXI+LCBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YSB7CiAgICAgcHVibGljOgotICAgICAgICAvLyBFdmVudFRhcmdldCBBUElz
Ci0gICAgICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9Ci0KICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihlcnJvcik7CiAKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxBYnN0cmFj
dFdvcmtlcj46OnJlZjsKQEAgLTU2LDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIH5BYnN0cmFjdFdvcmtlcigpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAg
ICBleHBsaWNpdCBBYnN0cmFjdFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAg
ICAgIEFic3RyYWN0V29ya2VyKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIC8vIEhlbHBlciBmdW5j
dGlvbiB0aGF0IGNvbnZlcnRzIGEgVVJMIHRvIGFuIGFic29sdXRlIFVSTCBhbmQgY2hlY2tzIHRo
ZSByZXN1bHQgZm9yIHZhbGlkaXR5LgogICAgICAgICBVUkwgcmVzb2x2ZVVSTChjb25zdCBTdHJp
bmcmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpOwpAQCAtNjUsOCArNjIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQotCi0gICAgICAgIHZp
cnR1YWwgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJBYnN0cmFjdFdvcmtlciI7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMTNiZDZkNmI3Zjc1MmQ1NGNlMzhl
NWEyY2I5NWM1ZmQ4MDM3ZWY5OS4uYmNiMmMxNDcyMjMyMjNlMjEwYTI1ZTdhYWMzZTE4YmQyOTgy
ZTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lk
IG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSkKIH0KIAogaW5saW5lIFdvcmtlcjo6
V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgOiBBYnN0cmFjdFdv
cmtlcihjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9j
b250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKHRoaXMpKQogewogICAg
IGlmICghYWxsV29ya2VycykgewpAQCAtMTMyLDYgKzEzMiwxMSBAQCBib29sIFdvcmtlcjo6Y2Fu
U3VzcGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitjb25zdCBjaGFyKiBXb3Jr
ZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiV29ya2VyIjsK
K30KKwogdm9pZCBXb3JrZXI6OnN0b3AoKQogewogICAgIHRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmgKaW5kZXggOTUwZThhYThmMGE5Y2FhN2Q0NTQwN2QyZTk4MDFlZTA4MTRiZjc5
ZC4uZGIxYTgyOWE5N2YwZWFiN2MzZjY1ZjA5YzEyN2ZhNmNlZmM3ODlmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5oCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLSAgICBjbGFzcyBXb3JrZXIgZmluYWwgOiBw
dWJsaWMgQWJzdHJhY3RXb3JrZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsK
KyAgICBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
ICAgICB2aXJ0dWFsIH5Xb3JrZXIoKTsKQEAgLTU4LDEzICs1OCwxNSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
ICAgIHZvaWQgdGVybWluYXRlKCk7Ci0KLSAgICAgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQo
KSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
LSAgICAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIAogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKG1lc3NhZ2Up
OwogCisgICAgICAgIC8vIEV2ZW50VGFyZ2V0IEFQSS4KKyAgICAgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUg
ZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
IH0KKworICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgICAgICBib29sIGhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgcHJpdmF0ZToKICAgICAgICAg
ZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIApAQCAtNzQsNiArNzYs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBvdmVy
cmlkZTsKIAorICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgorICAgICAgICBib29sIGNh
blN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7
CisgICAgICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKKwogICAgICAgICBmcmllbmQgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxp
bmUpOwogCiAgICAgICAgIFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNTU2MGYzYzkzNDM3Mzhh
NDRhMzk5YjdkOWQ4ZmY2YmIwZmRiODdlMy4uYzA5NmNiMWFjMGEwZWY5ZGQ5MTE2YWQwNjVjNTc3
MjIxMzY1ZWRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xMjU2
LDYgKzEyNTYsMTEgQEAgYm9vbCBYTUxIdHRwUmVxdWVzdDo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAg
ICAgcmV0dXJuICFtX2xvYWRlcjsKIH0KIAorY29uc3QgY2hhciogWE1MSHR0cFJlcXVlc3Q6OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiWE1MSHR0cFJlcXVlc3Qi
OworfQorCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24p
CiB7CiAgICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuc3VzcGVuZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaAppbmRleCBkNGJiMTIxZWI0NDcyMDdiNTEyZWUyNTk1ZjdkNmY2Mjgw
NjZhZGFkLi5mNWViNzdmYzA0ZWYxODYxMjljZTUwZmJkZjJmNTAxZjg3ZDEzMzg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtMTYyLDEyICsxNjIsMTIgQEAgcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAK
ICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3ll
ZCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlhNTEh0dHBSZXF1ZXN0IjsgfQorICAg
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA0NDQyNjkyYjRhNDZmNDcyNzA5MzY5ZTdj
ZDZjZmM1Njg4Zjg2NzE2Li4zMzNmNDY3YjA3YTA5ZjcxNGZiYTBjNTdhZDgzNjI1ZmY5NjFkMjBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMTI2NCwxNCArMTI2NCwxOSBAQCB2b2lkIFdlYlZp
ZXc6OmZyYW1lUmVjdChSRUNUKiByZWN0KQogICAgIDo6R2V0V2luZG93UmVjdChtX3ZpZXdXaW5k
b3csIHJlY3QpOwogfQogCi1jbGFzcyBXaW5kb3dDbG9zZVRpbWVyIDogcHVibGljIFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXIgeworY2xhc3MgV2luZG93Q2xvc2VUaW1lciBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2luZG93
Q2xvc2VUaW1lciogY3JlYXRlKFdlYlZpZXcqKTsKIAogcHJpdmF0ZToKICAgICBXaW5kb3dDbG9z
ZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJWaWV3Kik7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKTsKKworICAg
IC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3Zl
cnJpZGU7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJXaW5kb3dDbG9zZVRpbWVyIjsgfQorCisgICAgLy8gU3VzcGVuZGFibGVU
aW1lciBBUEkuCisgICAgdm9pZCBmaXJlZCgpIG92ZXJyaWRlOwogCiAgICAgV2ViVmlldyogbV93
ZWJWaWV3OwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>