<?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>167810</bug_id>
          
          <creation_ts>2017-02-03 12:16:42 -0800</creation_ts>
          <short_desc>[Mac][WK2] Add SPI to override the Content Security Policy of a page</short_desc>
          <delta_ts>2017-02-03 15:16:26 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1273014</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-03 12:16:42 -0800</bug_when>
    <thetext>An embedding client may want to impose content restrictions when loading third-party web pages to prevent content injections and ensure a consistent user experience regardless of how the third party content was produced.

One way to do this is to make use of a Content Security Policy to impose content restrictions. An embedding client could use API/SPI to define a Content Security Policy to be applied to all subsequently loaded pages that takes precedence over the Content Security Policy delivered with a page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273016</commentid>
    <comment_count>1</comment_count>
      <attachid>300556</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-03 12:22:36 -0800</bug_when>
    <thetext>Created attachment 300556
Patch and unit tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273017</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-03 12:25:34 -0800</bug_when>
    <thetext>Attachment 300556 did not pass style-queue:


ERROR: Source/WebCore/page/csp/ContentSecurityPolicy.h:77:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273074</commentid>
    <comment_count>3</comment_count>
      <attachid>300568</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-03 15:01:21 -0800</bug_when>
    <thetext>Created attachment 300568
Patch and unit tests

Moved _setOverrideContentSecurityPolicy: SPI from WKWebViewPrivate to WKWebViewConfigurationPrivate based on a conversation with Anders Carlsson. In its preferred embodiment an embedding client will call _setOverrideContentSecurityPolicy: once so that the custom Content Security Policy applies to all page loads. That is, it is unlikely that an embedding client will want to change the custom Content Security Policy per load. So, it more appropriate to add this SPI to WKWebViewConfigurationPrivate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273075</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-03 15:03:42 -0800</bug_when>
    <thetext>Attachment 300568 did not pass style-queue:


ERROR: Source/WebCore/page/csp/ContentSecurityPolicy.h:77:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273076</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-03 15:06:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/30102568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273079</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-03 15:16:26 -0800</bug_when>
    <thetext>Committed r211656: &lt;http://trac.webkit.org/changeset/211656&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300556</attachid>
            <date>2017-02-03 12:22:36 -0800</date>
            <delta_ts>2017-02-03 15:01:16 -0800</delta_ts>
            <desc>Patch and unit tests</desc>
            <filename>bug-167810-20170203122020.patch</filename>
            <type>text/plain</type>
            <size>30260</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY2YTA0ZTJmOGJmNTRi
NTNiMDNiNTdkMTUyNTA0MTU2NDM3Y2MyMy4uNDkwZTEwY2JmMzQ1OGQ4ZDg0M2MwZjM3ZjQ4ZTg5
NTBkYmYxMTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAyLTAzICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXVtXSzJdIEFkZCBT
UEkgdG8gb3ZlcnJpZGUgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIGEgcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODEwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQp
OiBBcHBseSB0aGUgZW1iZWRkaW5nIGNsaWVudCdzIG92ZXJyaWRlIENvbnRlbnQgU2VjdXJpdHkK
KyAgICAgICAgUG9saWN5IHRvIHRoZSBkb2N1bWVudCBpZiBvbmUgZXhpc3RzLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOiBBZGQgZnVuY3Rpb24gb3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3koKSB0aGF0IGEgRnJhbWVMb2FkZXJDbGllbnQKKyAgICAgICAgY2FuIG92
ZXJyaWRlIHRvIHByb3ZpZGUgYSBjdXN0b20gQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZm9yIGEg
ZG9jdW1lbnQgKGRlZmF1bHRzOiBudWxsIHN0cmluZyAtIG5vIHBvbGljeSkuCisgICAgICAgIEFz
IGl0cyBuYW1lIGltcGxpZXMsIHRoZSBwb2xpY3kgcmV0dXJuZWQgYnkgb3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3koKSB3aWxsIGRlZmluZSB0aGUgQ29udGVudAorICAgICAgICBTZWN1cml0
eSBQb2xpY3kgZm9yIHRoZSBkb2N1bWVudCwgb3ZlcnJpZGluZyBhbnkgc3Vic2VxdWVudGx5IHJl
Y2VpdmVkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGZvcgorICAgICAgICB0aGUgZG9jdW1lbnQu
CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6Y29weVN0YXRlRnJvbSk6IE9ubHkgY29w
eSBwb2xpY2llcyBmcm9tIHRoZSBzcGVjaWZpZWQgQ29udGVudFNlY3VyaXR5UG9saWN5CisgICAg
ICAgIG9iamVjdCBpZiBvdXIgcG9saWN5IHdhcyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSBlbWJlZGRp
bmcgY2xpZW50LgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRS
ZWNlaXZlSGVhZGVyKTogU2V0IENvbnRlbnRTZWN1cml0eVBvbGljeTo6bV9oYXNBUElQb2xpY3kg
dG8gdHJ1ZQorICAgICAgICB3aGVuIHdlIHJlY2VpdmUgYW4gQVBJIHBvbGljeSBmcm9tIHRoZSBl
bWJlZGRpbmcgY2xpZW50IChDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206OkFQSSku
IEFuCisgICAgICAgIEFQSSBwb2xpY3kgbXVzdCBiZSBkZWZpbmVkIGJlZm9yZSBhIHBvbGljeSBy
ZWNlaXZlZCBmcm9tIGEgZG9jdW1lbnQuIERvIG5vdCBwcm9jZXNzIGEgcmVjZWl2ZWQgaGVhZGVy
CisgICAgICAgIGlmIHdlIGFscmVhZHkgaGF2ZSBhbiBBUEkgcG9saWN5IGFzIHRoZSBBUEkgcG9s
aWN5IG92ZXJyaWRlcyBhbGwgb3RoZXIgcG9saWNpZXMuCisgICAgICAgICogcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5Lmg6CisKIDIwMTctMDItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
MTE1NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmRmYTU0MDkwMTE3NDJiMzFmMDY5MDlkNDRlZGQ1ZGUzNWFk
Y2FjMy4uNDMyOThkNTVmNDExMzM3YjhjZDlhZThiNzllODM5ZGVjZWE0MGFmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAyLTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbTWFjXVtXSzJdIEFkZCBTUEkgdG8gb3ZlcnJpZGUgdGhlIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIGEgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBTUEkgdG8gV0tXZWJWaWV3IHNvIHRoYXQgYW4g
ZW1iZWRkaW5nIGNsaWVudCBjYW4gZGVmaW5lIGEgY3VzdG9tIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5CisgICAgICAgIHRoYXQgb3ZlcnJpZGVzIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBv
ZiBhbnkgc3Vic2VxdWVudGx5IGxvYWRlZCB3ZWIgcGFnZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE92ZXJy
aWRlQ29udGVudFNlY3VyaXR5UG9saWN5Ol0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZUNv
bnRlbnRTZWN1cml0eVBvbGljeSk6IEFkZGVkLiBTZW5kcyB0aGUgc3BlY2lmaWVkIHBvbGljeQor
ICAgICAgICB0byB0aGUgV2ViUHJvY2VzcywgaWYgYXBwbGljYWJsZS4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSk6IEFkZGVkLiBSZXR1cm5z
IHRoZSBjdXN0b20KKyAgICAgICAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgdG8gYXBwbHkgdG8g
YSBuZXcgZG9jdW1lbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9s
aWN5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldE92ZXJyaWRlQ29udGVu
dFNlY3VyaXR5UG9saWN5KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46IEFkZGVkIG1lc3NhZ2UgU2V0T3ZlcnJpZGVDb250ZW50U2VjdXJp
dHlQb2xpY3kuCisKIDIwMTctMDItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTE1NzEgYW5kIHIy
MTE1ODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNWI3ZTMzMGQzYTYwYzk5MzVlMWU3
ZTcyYWUzMmE5YWU3NzhhMjczLi5mMWZmNjcyZWZlOWU1NDQyZWNhYmFkNjhjNmNjOWQxN2MwNDY2
NTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTUxNTYsNiArNTE1NiwxMCBAQCB2b2lk
IERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKICAgICBzZXRTZWN1cml0eU9yaWdpblBv
bGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKGlzU2FuZGJveGVkKFNhbmRib3hPcmln
aW4pID8gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpIDogU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShtX3VybCkpKTsKICAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koc3RkOjptYWtlX3Vu
aXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KCp0aGlzKSk7CiAKKyAgICBTdHJpbmcgb3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5vdmVy
cmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSgpOworICAgIGlmICghb3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3kuaXNOdWxsKCkpCisgICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5k
aWRSZWNlaXZlSGVhZGVyKG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lIZWFkZXJUeXBlOjpFbmZvcmNlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBv
bGljeUZyb206OkFQSSk7CisKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAoc2hvdWxkRW5m
b3JjZVF1aWNrTG9va1NhbmRib3goKSkKICAgICAgICAgYXBwbHlRdWlja0xvb2tTYW5kYm94KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDRkZjIzZDJh
YzgxYmQxMDQ5NTFmNDJlNjcyMjZjMDA0MDgxZTVjZTAuLmU5YWNkNGJjNDQwN2M1YWU1ZGFkYmYy
NDIyODA2MDMzZGY4MzY3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0yNTYsNiArMjU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRU
aXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgVVJMJikgPSAwOwogCiAgICAg
dmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpID0gMDsKKworICAgIHZpcnR1YWwg
U3RyaW5nIG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3QgeyByZXR1cm4gU3Ry
aW5nKCk7IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVk
RnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGJkODhjOWQ4
ZjM0MTVhZDllZjMxODUwYzg2NjhkZjM5MzQzZDdiMDAuLjljYWFhNmRkYTAwNjcxODhhMzIwZWZh
NWJkNzcxOTllYWM0NGU2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMTEwLDYgKzExMCw4IEBAIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6fkNvbnRlbnRTZWN1cml0eVBvbGljeSgpCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5Ojpjb3B5U3RhdGVGcm9tKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeSogb3RoZXIp
IAogeworICAgIGlmIChtX2hhc0FQSVBvbGljeSkKKyAgICAgICAgcmV0dXJuOwogICAgIEFTU0VS
VChtX3BvbGljaWVzLmlzRW1wdHkoKSk7CiAgICAgZm9yIChhdXRvJiBwb2xpY3kgOiBvdGhlci0+
bV9wb2xpY2llcykKICAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3ktPmhlYWRlcigpLCBw
b2xpY3ktPmhlYWRlclR5cGUoKSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpQb2xpY3lGcm9tOjpJ
bmhlcml0ZWQpOwpAQCAtMTc3LDYgKzE3OSwxNCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6ZGlkUmVjZWl2ZUhlYWRlcnMoY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9ucwog
CiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJp
bmcmIGhlYWRlciwgQ29udGVudFNlY3VyaXR5UG9saWN5SGVhZGVyVHlwZSB0eXBlLCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb20gcG9saWN5RnJvbSkKIHsKKyAgICBpZiAobV9oYXNB
UElQb2xpY3kpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChwb2xpY3lGcm9tID09IFBvbGlj
eUZyb206OkFQSSkgeworICAgICAgICBBU1NFUlQobV9wb2xpY2llcy5pc0VtcHR5KCkpOworICAg
ICAgICBtX2hhc0FQSVBvbGljeSA9IHRydWU7CisgICAgfQorCiAgICAgLy8gUkZDMjYxNiwgc2Vj
dGlvbiA0LjIgc3BlY2lmaWVzIHRoYXQgaGVhZGVycyBhcHBlYXJpbmcgbXVsdGlwbGUgdGltZXMg
Y2FuCiAgICAgLy8gYmUgY29tYmluZWQgd2l0aCBhIGNvbW1hLiBXYWxrIHRoZSBoZWFkZXIgc3Ry
aW5nLCBhbmQgcGFyc2UgZWFjaCBjb21tYQogICAgIC8vIHNlcGFyYXRlZCBjaHVuayBhcyBhIHNl
cGFyYXRlIGhlYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmgKaW5kZXggNmZkN2IwYmY4ZWY2ZDMzNWRjYmYxNTgxMjA0YTBmMTA2NjFlZTFh
ZS4uNTI4NmE4NmE2YzgxYjkzODgzNDMwOWJiNDU3OWNhZWIyY2M4ZGUzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKQEAgLTc0LDYgKzc0
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93U2hlbGwoSlNET01XaW5kb3dT
aGVsbCYpIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBQb2xpY3lGcm9tIHsKKyAgICAgICAgQVBJ
LAogICAgICAgICBIVFRQRXF1aXZNZXRhLAogICAgICAgICBIVFRQSGVhZGVyLAogICAgICAgICBJ
bmhlcml0ZWQsCkBAIC0yMTAsNiArMjExLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fb3ZlcnJp
ZGVJbmxpbmVTdHlsZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlcG9ydGluZ0Vu
YWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3VwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faGFzQVBJUG9saWN5IHsgZmFsc2UgfTsKICAgICBPcHRpb25TZXQ8
Q29udGVudFNlY3VyaXR5UG9saWN5SGFzaEFsZ29yaXRobT4gbV9oYXNoQWxnb3JpdGhtc0Zvcklu
bGluZVNjcmlwdHM7CiAgICAgT3B0aW9uU2V0PENvbnRlbnRTZWN1cml0eVBvbGljeUhhc2hBbGdv
cml0aG0+IG1faGFzaEFsZ29yaXRobXNGb3JJbmxpbmVTdHlsZXNoZWV0czsKICAgICBIYXNoU2V0
PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG1faW5zZWN1cmVOYXZpZ2F0aW9uUmVxdWVzdHNUb1Vw
Z3JhZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCmluZGV4IDEwNDAyZDg2MDg4MzE3NTVmNGQ0MjE4NjhiYTI0Y2Y4NTNkZGRhNTUuLmM5YWM2
MGIxMmM3N2U1ZGQ1ZTRkZDg1MWUwODJkZDFjNWFhZGUyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNDMzLDYgKzM0MzMsMTEg
QEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAgICAgc2VsZi5jdXN0b21Vc2VyQWdl
bnQgPSBjdXN0b21Vc2VyQWdlbnQ7CiB9CiAKKy0gKHZvaWQpX3NldE92ZXJyaWRlQ29udGVudFNl
Y3VyaXR5UG9saWN5OihOU1N0cmluZyAqKW92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Cit7
CisgICAgX3BhZ2UtPnNldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KG92ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5KTsKK30KKwogLSAodm9pZClfc2V0VXNlckNvbnRlbnRFeHRlbnNp
b25zRW5hYmxlZDooQk9PTCl1c2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVkCiB7CiAgICAgLy8g
VGhpcyBpcyBrZXB0IGZvciBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIGlPUyA5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAppbmRleCBiMGVmYzM2OTY0OGIzNDlkMzMxNTUzYmIyNDc2MjA2OGIzZjJiZGM4Li45OWIzODA3
N2JmNDcwYzI5ODY4OGU4NTVmNWY1MThjNThmZDQ2MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjIyLDYg
KzIyMiw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5
cGUpIHsKIAogLSAoV0tOYXZpZ2F0aW9uICopX3JlbG9hZFdpdGhvdXRDb250ZW50QmxvY2tlcnMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogCistICh2b2lkKV9z
ZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTooTlNTdHJpbmcgKilvdmVycmlkZUNvbnRl
bnRTZWN1cml0eVBvbGljeTsKKwogLSAodm9pZClfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVz
ZXRTdGF0ZTsKIAogLSAodm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBjNzY0ZDk2NDcz
MmE3NTE1NjE0NTk1Nzg2MmIwN2IwODQ1NjNhMmIuLjY3MzBmNjMzMTA3YjExMjk4NjhlM2MyNmY2
MWNkMjViMWI3OTRkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMzAxLDYgKzIzMDEsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlNldFVzZXJBZ2VudChtX3VzZXJBZ2VudCksIG1fcGFnZUlEKTsKIH0KIAordm9p
ZCBXZWJQYWdlUHJveHk6OnNldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0
cmluZyYgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kpCit7CisgICAgaWYgKG1fb3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgPT0gb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kp
CisgICAgICAgIHJldHVybjsKKyAgICBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5ID0g
b3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kob3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xp
Y3kpLCBtX3BhZ2VJRCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBcHBsaWNhdGlvbk5h
bWVGb3JVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUpCiB7CiAgICAgaWYg
KG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50ID09IGFwcGxpY2F0aW9uTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlNTQyZWY0OWM4ZjNlNDg5MzRm
MDhiZWQ1NDM1ZjY0NTNkY2I1OTE4Li5lZTE1MmEyZmY4Nzg2ZmJkNGE5NzU4ZGQyNGMyNzJkNThj
YzUxZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02NzQs
NiArNjc0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShj
b25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgY3VzdG9tVGV4dEVuY29kaW5nTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY3VzdG9tVGV4dEVuY29kaW5nTmFtZTsgfQogCisgICAgdm9pZCBzZXRPdmVy
cmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmKTsKKwogICAgIGJvb2wgYXJl
QWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBt
X2lzUGFnZVN1c3BlbmRlZDsgfQogICAgIHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFu
aW1hdGlvbnMoKTsKICAgICB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9u
cygpOwpAQCAtMTY2Myw2ICsxNjY1LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9hcHBsaWNh
dGlvbk5hbWVGb3JVc2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fY3VzdG9tVXNlckFnZW50OwogICAg
IFN0cmluZyBtX2N1c3RvbVRleHRFbmNvZGluZ05hbWU7CisgICAgU3RyaW5nIG1fb3ZlcnJpZGVD
b250ZW50U2VjdXJpdHlQb2xpY3k7CiAKICAgICBib29sIG1fdHJlYXRzU0hBMUNlcnRpZmljYXRl
c0FzSW5zZWN1cmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmMw
YWMyZTM1YTJiMGE4YjYwMjg4ZDIzMTkwY2JkYmViNDRhYmM3Yi4uMjVlMDYyNTQ3YTIwODlkZTQ4
MzEzMGJkMzRmNjgzYjQyZTI1ZGNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTEyOTcsNiArMTI5NywxNSBAQCBTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnVz
ZXJBZ2VudChjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gd2ViUGFnZS0+dXNlckFnZW50KG1f
ZnJhbWUsIHVybCk7CiB9CiAKK1N0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6b3ZlcnJpZGVD
b250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdAoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CisKKyAgICByZXR1cm4gd2ViUGFnZS0+b3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3ko
KTsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVBsYXRmb3JtRGF0YVRvQ2Fj
aGVkRnJhbWUoQ2FjaGVkRnJhbWUqIGNhY2hlZEZyYW1lKQogewogICAgIFdlYlBhZ2UqIHdlYlBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MjQ4Y2NjNDE5MmUyMmVlNjlmNzY1M2FlNWE1ODBjODNjNDk2NzQxMi4uNWY0ZjFjODQ3YWM2ZTNl
MDc5ZTk2OTk4YThhMTI5MGRiMzQ1NGE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTc5LDcgKzE3OSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRUaXRsZShjb25zdCBX
ZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJikgZmluYWw7
CiAgICAgCiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpVUkwmKSBmaW5hbDsK
LSAgICAKKworICAgIFN0cmluZyBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0
IGZpbmFsOworCiAgICAgdm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZShXZWJDb3Jl
OjpDYWNoZWRGcmFtZSopIGZpbmFsOwogICAgIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJv
bUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKikgZmluYWw7CiAjaWYgUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
MzU0YjExMDVhOTYxMTQ4NGNkMDkwYzEyOWYyMTgwMWE3YWZiNTUxOC4uODVjNzFiZDVlMTNmZGNh
YjJhMGY5NWEyNzQxZTRmYmY4NDk2NjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTMsNiArMjkzLDggQEAgcHVibGljOgogICAgIFN0cmlu
ZyBwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdDsKICAgICBXZWJD
b3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpOwogCisgICAgY29uc3QgU3RyaW5n
JiBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7IH0KKwogICAgIFdlYlVuZG9TdGVwKiB3ZWJVbmRvU3Rl
cCh1aW50NjRfdCk7CiAgICAgdm9pZCBhZGRXZWJVbmRvU3RlcCh1aW50NjRfdCwgV2ViVW5kb1N0
ZXAqKTsKICAgICB2b2lkIHJlbW92ZVdlYkVkaXRDb21tYW5kKHVpbnQ2NF90KTsKQEAgLTExMjQs
NiArMTEyNiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIHJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKCk7CiAKKyAgICB2b2lkIHNldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0
IFN0cmluZyYgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kpIHsgbV9vdmVycmlkZUNvbnRl
bnRTZWN1cml0eVBvbGljeSA9IG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CisKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2Nh
dGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBwZXJmb3JtRGljdGlv
bmFyeUxvb2t1cE9mQ3VycmVudFNlbGVjdGlvbigpOwpAQCAtMTI3NCw2ICsxMjc4LDcgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8V2ViUGFnZUdyb3VwUHJveHk+IG1fcGFnZUdyb3VwOwogCiAgICAg
U3RyaW5nIG1fdXNlckFnZW50OworICAgIFN0cmluZyBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5
UG9saWN5OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEcmF3aW5nQXJlYT4gbV9kcmF3aW5nQXJlYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMWJkMTEw
ODczNWIyYThhZmVjZDI1YjYyNjhhZTlkNGMyNTlkNDE0Mi4uN2YzZjg0ZDEwMTQ0YmRkYWI0OTU4
ZThkZmI0ZTMxMDlhNWEyZmNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE4NCw2ICsxODQsOCBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRVc2VyQWdlbnQoU3RyaW5n
IHVzZXJBZ2VudCkKICAgICBTZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKFN0cmluZyBlbmNvZGlu
Z05hbWUpCiAKKyAgICBTZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeShTdHJpbmcgY29u
dGVudFNlY3VyaXR5UG9saWN5KQorCiAgICAgU3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmlt
YXRpb25zKCkKICAgICBSZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmZjdhMGQ1
N2ZhZWIwNTgyZjEzOTAwMTZlOTY4MjczMmRhZTU1ZDNkLi4wN2E0NzM3M2RmYzUyZDI3MGRjYTU2
ZWZhNDkyZDY1YjQ4N2QzNzRkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDItMDMgIERhbmllbCBCYXRlcyAg
PGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdW1dLMl0gQWRkIFNQSSB0byBvdmVy
cmlkZSB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb2YgYSBwYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc4MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdG8gZW5zdXJlIHRo
YXQgd2UgZG8gbm90IHJlZ3Jlc3MgLVtXS1dlYlZpZXcgX3NldE92ZXJyaWRlQ29udGVudFNlY3Vy
aXR5UG9saWN5Ol0uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9PdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbTogQWRkZWQuCisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9w
YWdlLXdpdGgtY3NwLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGgtY3NwLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AtaWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L3BhZ2Utd2l0aG91dC1jc3AuaHRtbDogQWRkZWQuCisKIDIwMTctMDItMDIgIEpvbmF0aGFuIEJl
ZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVuZGVmaW5lZCBzdWJyb3V0aW5l
IGluIHN2bi1jcmVhdGUtcGF0Y2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTc0YmMzZWNk
NTczZjU2OGViODk1Y2E5ZTBkNjE3ZTQ1MzU4NTk2Yi4uMzg0OTI1ZDM1MTc4YThmNjQ4ZWQzYTgz
Mzk2OGJkZTczYzNkZjdkNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzOSw2ICs1Mzks
MTEgQEAKIAkJQ0UzNTI0RkExQjE0NDM4OTAwMjhBN0M1IC8qIGlucHV0LWZvY3VzLWJsdXIuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUgLyogaW5wdXQtZm9jdXMtYmx1ci5odG1sICovOyB9Owog
CQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VB
NkNGMjcxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICovOyB9
OwogCQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2No
ZW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENFQkFCRDQ4MUI3MTY4N0MwMDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5hbC1z
Y2hlbWVzLmh0bWwgKi87IH07CisJCUNFQkNBMTJGMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENFQkNBMTJFMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNvbnRl
bnRTZWN1cml0eVBvbGljeS5tbSAqLzsgfTsKKwkJQ0VCQ0ExMzgxRTNBODA3QTAwQzczMjkzIC8q
IHBhZ2Utd2l0aC1jc3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRUJDQTEzNTFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRoLWNz
cC5odG1sICovOyB9OworCQlDRUJDQTEzOTFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRoLWNz
cC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRUJDQTEzNDFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRoLWNzcC1pZnJh
bWUuaHRtbCAqLzsgfTsKKwkJQ0VCQ0ExM0ExRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aG91
dC1jc3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRUJDQTEzNzFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC5odG1s
ICovOyB9OworCQlDRUJDQTEzQjFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC1p
ZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRUJDQTEzNjFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC1pZnJh
bWUuaHRtbCAqLzsgfTsKIAkJRTEyMjBEQ0ExNTVCMjhBQTAwMTNFMkZDIC8qIE1lbW9yeUNhY2hl
RGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyMjBEQzkxNTVCMjg3RDAwMTNF
MkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwg
Ki87IH07CiAJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRS
ZWNlaXZlUmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3RvcExvYWRpbmdG
cm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi87IH07CiAJCUY0MTUwODZEMURBMDQwQzUwMDQ0
QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8q
IHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAqLzsgfTsKQEAgLTc0Niw2ICs3NTEsMTAgQEAKIAkJ
CQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRvdy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUExQzRGQjczMUJBQ0QxQ0EwMDM3NDJEMCAvKiBwYWdlcy5wYWdl
cyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlBNTdBMzRGMjE2QUY2QjJCMDBDMjUwMUYgLyog
UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJQ0VCQ0ExMzgxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlDRUJDQTEzOTFFM0E4MDdBMDBDNzMyOTMgLyog
cGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlDRUJD
QTEzQTFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCUNFQkNBMTNCMUUzQTgwN0EwMEM3MzI5MyAvKiBwYWdlLXdpdGhvdXQt
Y3NwLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY2RkREREQ2MTQyNDFD
NkYwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTJCOENGOTgxNTg2OEQ5MTAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQUJENDkxQjcxNjg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVu
LWV4dGVybmFsLXNjaGVtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEzMzEsNiAr
MTM0MCwxMSBAQAogCQlDRUE2Q0YyMjE5Q0NGNUJEMDA2NEY1QTcgLyogT3BlbkFuZENsb3NlV2lu
ZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gT3BlbkFuZENs
b3NlV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUE2Q0YyNzE5Q0NG
NjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAib3Bl
bi1hbmQtY2xvc2Utd2luZG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RUJBQkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gInNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFQkNBMTJFMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVy
cmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRUJDQTEzNDFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRo
LWNzcC1pZnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwYWdlLXdpdGgt
Y3NwLWlmcmFtZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0VCQ0ExMzUx
RTNBODAzNDAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJwYWdlLXdpdGgtY3NwLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRUJDQTEzNjFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwYWdlLXdpdGhvdXQtY3NwLWlmcmFt
ZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0VCQ0ExMzcxRTNBODAzNDAw
QzczMjkzIC8qIHBhZ2Utd2l0aG91dC1jc3AuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJwYWdlLXdpdGhvdXQtY3NwLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQzY5QUE2MjFDRjc3QzY1MDBDNjI3MkYgLyogU2NvcGVkTGFtYmRhLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjb3BlZExhbWJkYS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxMjIwRDlGMTU1QjI1NDgwMDEzRTJGQyAvKiBNZW1vcnlDYWNo
ZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9h
ZERlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTIyMERDOTE1NUIy
ODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdh
dGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IE1lbW9yeUNhY2hlRGlzYWJsZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNTQ1LDYgKzE1NTksNyBAQAogCQkJCUExMEYwNDdDMUUzQUQyOUMwMEM5NUUxOSAvKiBO
U0ZpbGVNYW5hZ2VyRXh0cmFzLm1tICovLAogCQkJCTM3QTIyQUE1MURDQUEyNzIwMEFGQkZDNCAv
KiBPYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzQWZ0ZXJDcmFzaC5tbSAqLywKIAkJCQlD
RUE2Q0YyMjE5Q0NGNUJEMDA2NEY1QTcgLyogT3BlbkFuZENsb3NlV2luZG93Lm1tICovLAorCQkJ
CUNFQkNBMTJFMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eS5tbSAqLywKIAkJCQlDOTU1MDFCRTE5QUQyRkFGMDA0OUJFM0UgLyogUHJlZmVyZW5jZXMubW0g
Ki8sCiAJCQkJNTc5OEUyQUYxQ0FGNUMyODAwQzVDQkEwIC8qIFByb3Zpc2lvbmFsVVJMTm90Q2hh
bmdlLm1tICovLAogCQkJCUExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0g
Ki8sCkBAIC0xNzI4LDYgKzE3NDMsMTAgQEAKIAkJCQk0NkM1MTlFMzFEMzU2Mjk2MDBEQUE1MUEg
LyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlICovLAogCQkJCTQ2QzUxOUU0
MUQzNTYyOTYwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5sb2NhbHN0b3JhZ2Ut
c2htICovLAogCQkJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4
dGVybmFsLXVybC5odG1sICovLAorCQkJCUNFQkNBMTM1MUUzQTgwMzQwMEM3MzI5MyAvKiBwYWdl
LXdpdGgtY3NwLmh0bWwgKi8sCisJCQkJQ0VCQ0ExMzQxRTNBODAzNDAwQzczMjkzIC8qIHBhZ2Ut
d2l0aC1jc3AtaWZyYW1lLmh0bWwgKi8sCisJCQkJQ0VCQ0ExMzcxRTNBODAzNDAwQzczMjkzIC8q
IHBhZ2Utd2l0aG91dC1jc3AuaHRtbCAqLywKKwkJCQlDRUJDQTEzNjFFM0E4MDM0MDBDNzMyOTMg
LyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCAqLywKIAkJCQlGNEY0MDVCQjFENEMwQ0Y4
MDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLywK
IAkJCQk1MTVCRTE2RTFENDI4OEZGMDBERDdDNjggLyogU3RvcmVCbG9iVG9CZURlbGV0ZWQuaHRt
bCAqLywKIAkJCQk1MTcxNEVCMjFDRjhDNzYxMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJD
bGVhbnVwLTEuaHRtbCAqLywKQEAgLTI2NDgsNiArMjY2Nyw3IEBACiAJCQkJMzc2QzhDMDYxRDZF
MTk3QzAwN0QyQkI5IC8qIEZyYW1lSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjA1MUE0MTFBRTYwMDQ0N0M0QyAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFt
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjUxQTQxMUFGNjAwNDQ3QzRDIC8qIE9w
ZW5BbmRDbG9zZVdpbmRvdy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNFQkNBMTJGMUUzQTY2MDEw
MEM3MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTc2OUM1MEIxRDlCMDAwMjAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDcxQTQxMUFFNjAwNDQ3QzRDIC8q
IFBhZ2VMb2FkQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9PdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL092ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1YTNmMmYxMjI5YzBkNzcwMWY4Mjhk
NjYyNjEwYjI0NjMwYTc0ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9PdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbQpAQCAt
MCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQg
IlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitURVNUKFdL
V2ViVmlldywgU2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3lXaXRoRW1wdHlTdHJpbmdG
b3JQYWdlV2l0aENTUCkKK3sKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgUmV0YWlu
UHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJwYWdlLXdpdGgtY3NwIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07
CisgICAgICAgIFt3ZWJWaWV3IF9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTpAIiJd
OworICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgICAgICBbd2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAIk1haW5GcmFtZTogQSJdOworICAgICAgICBbd2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpAIk1haW5GcmFtZTogQiJdOworICAgICAgICBbd2ViVmlldyB3YWl0Rm9y
TWVzc2FnZTpAIlN1YmZyYW1lOiBBIl07CisgICAgICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdl
OkAiU3ViZnJhbWU6IEIiXTsKKyAgICB9Cit9CisKK1RFU1QoV0tXZWJWaWV3LCBTZXRPdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeUZvclBhZ2VXaXRoQ1NQKQoreworICAgIEBhdXRvcmVsZWFz
ZXBvb2wgeworICAgICAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApXSk7CisgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
InBhZ2Utd2l0aC1jc3AiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICAgICAgW3dlYlZpZXcgX3NldE92ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5OkAic2NyaXB0LXNyYyAnbm9uY2UtYiciXTsKKyAgICAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICAgICAgW3dlYlZpZXcgd2FpdEZvck1l
c3NhZ2U6QCJNYWluRnJhbWU6IEIiXTsKKyAgICAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJTdWJmcmFtZTogQiJdOworICAgIH0KK30KKworVEVTVChXS1dlYlZpZXcsIFNldE92ZXJyaWRl
Q29udGVudFNlY3VyaXR5UG9saWN5Rm9yUGFnZVdpdGhvdXRDU1ApCit7CisgICAgQGF1dG9yZWxl
YXNlcG9vbCB7CisgICAgICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldKTsKKyAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAicGFnZS13aXRob3V0LWNzcCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgICAgICBbd2ViVmlldyBfc2V0T3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6QCJzY3JpcHQtc3JjICdub25jZS1iJyJdOworICAgICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgICAgICBbd2ViVmlldyB3YWl0
Rm9yTWVzc2FnZTpAIk1haW5GcmFtZTogQiJdOworICAgICAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAIlN1YmZyYW1lOiBCIl07CisgICAgfQorfQorCitURVNUKFdLV2ViVmlldywgU2V0T3Zl
cnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3lUd2ljZUJlZm9yZUxvYWRpbmdQYWdlV2l0aENTUCkK
K3sKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZp
ZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJwYWdlLXdpdGgtY3NwIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgICAgIFt3ZWJW
aWV3IF9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTpAInNjcmlwdC1zcmMgJ25vbmNl
LWInIl07CisgICAgICAgIFt3ZWJWaWV3IF9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eTpAInNjcmlwdC1zcmMgJ25vbmNlLWEnIl07IC8vIE92ZXJyaWRlcyBwcmV2aW91cyBwb2xpY3kK
KyAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICAgICAgW3dlYlZp
ZXcgd2FpdEZvck1lc3NhZ2U6QCJNYWluRnJhbWU6IEEiXTsKKyAgICAgICAgW3dlYlZpZXcgd2Fp
dEZvck1lc3NhZ2U6QCJTdWJmcmFtZTogQSJdOworICAgIH0KK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGgtY3Nw
LWlmcmFtZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcGFn
ZS13aXRoLWNzcC1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzJhOWRiYjYwNTZiMGQ2OTM5ZGVj
ZWJlMzEzYzQ5NjRkY2EyOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvcGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAnbm9uZSciPgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IG5vbmNlPSJhIj4KK3dpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWJmcmFtZTogQSIpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IG5vbmNlPSJiIj4KK3dpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWJmcmFtZTogQiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9wYWdlLXdpdGgtY3NwLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9wYWdlLXdpdGgtY3NwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZiNzZmZTg0MTEwY2U0NzI1
MzVkNTlmZDM1NGVlZDM0Zjg3NjA5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aC1jc3AuaHRtbApAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAnbm9uZSciPgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IG5vbmNlPSJhIj4KK3dpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJNYWluRnJhbWU6IEEiKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBub25jZT0iYiI+Cit3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgiTWFpbkZyYW1lOiBCIik7Cis8L3NjcmlwdD4KKzxpZnJhbWUg
aWQ9ImlmcmFtZSIgc3JjPSJwYWdlLXdpdGgtY3NwLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AtaWZyYW1lLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGhvdXQtY3NwLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg0YTIzZDVmMDkwYWI4MTc5ZmNlNGUxYTBlYTY1YjM5N2YwMWE1ZGQKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdp
dGhvdXQtY3NwLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgbm9uY2U9ImEiPgord2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1YmZyYW1lOiBBIik7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgbm9uY2U9ImIiPgord2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1YmZyYW1lOiBCIik7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL3BhZ2Utd2l0aG91dC1jc3AuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGNlY2FmZTg3MDFj
NTllODkwMzBiYWI2MGVlNWY2MzlkMjFmMzZhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcGFnZS13aXRob3V0LWNzcC5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgbm9u
Y2U9ImEiPgord2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoIk1haW5GcmFtZTogQSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IG5vbmNlPSJiIj4KK3dp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJNYWlu
RnJhbWU6IEIiKTsKKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0iaWZyYW1lIiBzcmM9InBhZ2Utd2l0
aG91dC1jc3AtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300568</attachid>
            <date>2017-02-03 15:01:21 -0800</date>
            <delta_ts>2017-02-03 15:02:31 -0800</delta_ts>
            <desc>Patch and unit tests</desc>
            <filename>bug-167810-20170203145905.patch</filename>
            <type>text/plain</type>
            <size>36320</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY2YTA0ZTJmOGJmNTRi
NTNiMDNiNTdkMTUyNTA0MTU2NDM3Y2MyMy4uNDkwZTEwY2JmMzQ1OGQ4ZDg0M2MwZjM3ZjQ4ZTg5
NTBkYmYxMTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAyLTAzICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXVtXSzJdIEFkZCBT
UEkgdG8gb3ZlcnJpZGUgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIGEgcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODEwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQp
OiBBcHBseSB0aGUgZW1iZWRkaW5nIGNsaWVudCdzIG92ZXJyaWRlIENvbnRlbnQgU2VjdXJpdHkK
KyAgICAgICAgUG9saWN5IHRvIHRoZSBkb2N1bWVudCBpZiBvbmUgZXhpc3RzLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOiBBZGQgZnVuY3Rpb24gb3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3koKSB0aGF0IGEgRnJhbWVMb2FkZXJDbGllbnQKKyAgICAgICAgY2FuIG92
ZXJyaWRlIHRvIHByb3ZpZGUgYSBjdXN0b20gQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZm9yIGEg
ZG9jdW1lbnQgKGRlZmF1bHRzOiBudWxsIHN0cmluZyAtIG5vIHBvbGljeSkuCisgICAgICAgIEFz
IGl0cyBuYW1lIGltcGxpZXMsIHRoZSBwb2xpY3kgcmV0dXJuZWQgYnkgb3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3koKSB3aWxsIGRlZmluZSB0aGUgQ29udGVudAorICAgICAgICBTZWN1cml0
eSBQb2xpY3kgZm9yIHRoZSBkb2N1bWVudCwgb3ZlcnJpZGluZyBhbnkgc3Vic2VxdWVudGx5IHJl
Y2VpdmVkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGZvcgorICAgICAgICB0aGUgZG9jdW1lbnQu
CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6Y29weVN0YXRlRnJvbSk6IE9ubHkgY29w
eSBwb2xpY2llcyBmcm9tIHRoZSBzcGVjaWZpZWQgQ29udGVudFNlY3VyaXR5UG9saWN5CisgICAg
ICAgIG9iamVjdCBpZiBvdXIgcG9saWN5IHdhcyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSBlbWJlZGRp
bmcgY2xpZW50LgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRS
ZWNlaXZlSGVhZGVyKTogU2V0IENvbnRlbnRTZWN1cml0eVBvbGljeTo6bV9oYXNBUElQb2xpY3kg
dG8gdHJ1ZQorICAgICAgICB3aGVuIHdlIHJlY2VpdmUgYW4gQVBJIHBvbGljeSBmcm9tIHRoZSBl
bWJlZGRpbmcgY2xpZW50IChDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206OkFQSSku
IEFuCisgICAgICAgIEFQSSBwb2xpY3kgbXVzdCBiZSBkZWZpbmVkIGJlZm9yZSBhIHBvbGljeSBy
ZWNlaXZlZCBmcm9tIGEgZG9jdW1lbnQuIERvIG5vdCBwcm9jZXNzIGEgcmVjZWl2ZWQgaGVhZGVy
CisgICAgICAgIGlmIHdlIGFscmVhZHkgaGF2ZSBhbiBBUEkgcG9saWN5IGFzIHRoZSBBUEkgcG9s
aWN5IG92ZXJyaWRlcyBhbGwgb3RoZXIgcG9saWNpZXMuCisgICAgICAgICogcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5Lmg6CisKIDIwMTctMDItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
MTE1NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmRmYTU0MDkwMTE3NDJiMzFmMDY5MDlkNDRlZGQ1ZGUzNWFk
Y2FjMy4uZTU5MzA0M2Q3MzJiOWUxODRkZjY5ZTgxMDEyN2ZlN2U2NDM1OGRlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ1IEBACisyMDE3LTAyLTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbTWFjXVtXSzJdIEFkZCBTUEkgdG8gb3ZlcnJpZGUgdGhlIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIGEgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNQSSB0byBXS1dlYlZpZXdDb25maWd1cmF0aW9u
IHNvIHRoYXQgYW4gZW1iZWRkaW5nIGNsaWVudCBjYW4gZGVmaW5lIGEgY3VzdG9tIENvbnRlbnQg
U2VjdXJpdHkKKyAgICAgICAgUG9saWN5IHRoYXQgb3ZlcnJpZGVzIHRoZSBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBvZiBhbnkgcGFnZSBsb2FkZWQgaW4gdGhlIHdlYiB2aWV3LgorCisgICAgICAg
ICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOiBFbmNvZGUgaW5zdGFuY2UgdmFy
aWFibGUgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6IERlY29kZSBpbnN0YW5jZSB2YXJpYWJs
ZSBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS4KKyAgICAgICAgKiBTaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6Y29weSk6
IENvcHkgaW5zdGFuY2UgdmFyaWFibGUgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAo
QVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6b3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kpOiBB
ZGRlZC4KKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldE92ZXJyaWRlQ29udGVu
dFNlY3VyaXR5UG9saWN5KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1
cmF0aW9uOl0pOiBDb3B5IG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IHNldCBvbiB0aGUg
V0tXZWJWaWV3Q29uZmlndXJhdGlvbgorICAgICAgICBvYmplY3QgdG8gdGhlIEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb24gb2JqZWN0IGlmIG5vbi1uaWwuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGNvcHlXaXRoWm9uZTpdKTogIENvcHkgdGhlIGluc3RhbmNlIHZhcmlhYmxlIG92
ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5LgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeV0pOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xp
Y3k6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaDogRGVmaW5lIFNQSSBwcm9wZXJ0eSBfb3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3kuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KTogSW5pdGlhbGl6ZSBt
X292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IGZyb20gdGhlIHBhc3NlZAorICAgICAgICBw
YWdlIGNvbmZpZ3VyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRp
b25QYXJhbWV0ZXJzKTogU2V0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6Om92ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIHNvIHRoYXQgdGhlIFdlYlBhZ2Ugb2JqZWN0IChp
biB0aGUgV2ViUHJvY2Vzcykgd2lsbCBrbm93IHRoZSBvdmVycmlkZGVuIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5CisgICAgICAgIHRvIGFwcGx5IHRvIHRoZSBkb2N1bWVudC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSk6IEFkZGVkLiBSZXR1
cm5zIHRoZSBjdXN0b20gQ29udGVudAorICAgICAgICBTZWN1cml0eSBQb2xpY3kgdG8gYXBwbHkg
dG8gYSBuZXcgZG9jdW1lbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSk6IEFkZGVk
LgorCiAyMDE3LTAyLTAyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjExNTcxIGFuZCByMjExNTgyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYjViN2UzMzBkM2E2MGM5OTM1ZTFlN2U3MmFlMzJh
OWFlNzc4YTI3My4uZjFmZjY3MmVmZTllNTQ0MmVjYWJhZDY4YzZjYzlkMTdjMDQ2NjUyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MTU2LDYgKzUxNTYsMTAgQEAgdm9pZCBEb2N1bWVu
dDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiAgICAgc2V0U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2Vj
dXJpdHlPcmlnaW5Qb2xpY3k6OmNyZWF0ZShpc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSA/IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSA6IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91
cmwpKSk7CiAgICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KHN0ZDo6bWFrZV91bmlxdWU8Q29u
dGVudFNlY3VyaXR5UG9saWN5PigqdGhpcykpOwogCisgICAgU3RyaW5nIG92ZXJyaWRlQ29udGVu
dFNlY3VyaXR5UG9saWN5ID0gbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkub3ZlcnJpZGVDb250
ZW50U2VjdXJpdHlQb2xpY3koKTsKKyAgICBpZiAoIW92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9s
aWN5LmlzTnVsbCgpKQorICAgICAgICBjb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2
ZUhlYWRlcihvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9s
aWN5SGVhZGVyVHlwZTo6RW5mb3JjZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpQb2xpY3lGcm9t
OjpBUEkpOworCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgaWYgKHNob3VsZEVuZm9yY2VRdWlj
a0xvb2tTYW5kYm94KCkpCiAgICAgICAgIGFwcGx5UXVpY2tMb29rU2FuZGJveCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA0ZGYyM2QyYWM4MWJkMTA0
OTUxZjQyZTY3MjI2YzAwNDA4MWU1Y2UwLi5lOWFjZDRiYzQ0MDdjNWFlNWRhZGJmMjQyMjgwNjAz
M2RmODM2NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMjU2LDYgKzI1Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29u
c3QgU3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFVSTCYpID0gMDsKIAogICAgIHZpcnR1YWwg
U3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSA9IDA7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBv
dmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZyYW1lKENh
Y2hlZEZyYW1lKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRG
cm9tQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBiZDg4YzlkOGYzNDE1YWQ5
ZWYzMTg1MGM4NjY4ZGYzOTM0M2Q3YjAwLi45Y2FhYTZkZGEwMDY3MTg4YTMyMGVmYTViZDc3MTk5
ZWFjNDRlNmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKQEAgLTExMCw2ICsxMTAsOCBAQCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
On5Db250ZW50U2VjdXJpdHlQb2xpY3koKQogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
Y29weVN0YXRlRnJvbShjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIG90aGVyKSAKIHsKKyAg
ICBpZiAobV9oYXNBUElQb2xpY3kpCisgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9wb2xp
Y2llcy5pc0VtcHR5KCkpOwogICAgIGZvciAoYXV0byYgcG9saWN5IDogb3RoZXItPm1fcG9saWNp
ZXMpCiAgICAgICAgIGRpZFJlY2VpdmVIZWFkZXIocG9saWN5LT5oZWFkZXIoKSwgcG9saWN5LT5o
ZWFkZXJUeXBlKCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UG9saWN5RnJvbTo6SW5oZXJpdGVk
KTsKQEAgLTE3Nyw2ICsxNzksMTQgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJl
Y2VpdmVIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnMKIAogdm9pZCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFk
ZXIsIENvbnRlbnRTZWN1cml0eVBvbGljeUhlYWRlclR5cGUgdHlwZSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpQb2xpY3lGcm9tIHBvbGljeUZyb20pCiB7CisgICAgaWYgKG1faGFzQVBJUG9saWN5
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocG9saWN5RnJvbSA9PSBQb2xpY3lGcm9tOjpB
UEkpIHsKKyAgICAgICAgQVNTRVJUKG1fcG9saWNpZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgbV9o
YXNBUElQb2xpY3kgPSB0cnVlOworICAgIH0KKwogICAgIC8vIFJGQzI2MTYsIHNlY3Rpb24gNC4y
IHNwZWNpZmllcyB0aGF0IGhlYWRlcnMgYXBwZWFyaW5nIG11bHRpcGxlIHRpbWVzIGNhbgogICAg
IC8vIGJlIGNvbWJpbmVkIHdpdGggYSBjb21tYS4gV2FsayB0aGUgaGVhZGVyIHN0cmluZywgYW5k
IHBhcnNlIGVhY2ggY29tbWEKICAgICAvLyBzZXBhcmF0ZWQgY2h1bmsgYXMgYSBzZXBhcmF0ZSBo
ZWFkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5oCmluZGV4IDZmZDdiMGJmOGVmNmQzMzVkY2JmMTU4MTIwNGEwZjEwNjYxZWUxYWUuLjUyODZh
ODZhNmM4MWI5Mzg4MzQzMDliYjQ1NzljYWViMmNjOGRlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBAIC03NCw2ICs3NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpZENyZWF0ZVdpbmRvd1NoZWxsKEpTRE9NV2luZG93U2hlbGwmKSBj
b25zdDsKIAogICAgIGVudW0gY2xhc3MgUG9saWN5RnJvbSB7CisgICAgICAgIEFQSSwKICAgICAg
ICAgSFRUUEVxdWl2TWV0YSwKICAgICAgICAgSFRUUEhlYWRlciwKICAgICAgICAgSW5oZXJpdGVk
LApAQCAtMjEwLDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX292ZXJyaWRlSW5saW5l
U3R5bGVBbGxvd2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNSZXBvcnRpbmdFbmFibGVkIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV91cGdyYWRlSW5zZWN1cmVSZXF1ZXN0cyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2hhc0FQSVBvbGljeSB7IGZhbHNlIH07CiAgICAgT3B0aW9uU2V0PENvbnRlbnRT
ZWN1cml0eVBvbGljeUhhc2hBbGdvcml0aG0+IG1faGFzaEFsZ29yaXRobXNGb3JJbmxpbmVTY3Jp
cHRzOwogICAgIE9wdGlvblNldDxDb250ZW50U2VjdXJpdHlQb2xpY3lIYXNoQWxnb3JpdGhtPiBt
X2hhc2hBbGdvcml0aG1zRm9ySW5saW5lU3R5bGVzaGVldHM7CiAgICAgSGFzaFNldDxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+PiBtX2luc2VjdXJlTmF2aWdhdGlvblJlcXVlc3RzVG9VcGdyYWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IGI4ZDc4YWQ2MTZmYzM2NDY4MDliMTNlMTBkMmViMjhlZTg4YWM1ZGUuLmQ5OGQw
ZWJkMmU1NmMyMmFjODhjMDFiZDkxOGVjYzg1MWU1NmI1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg5LDYgKzg5
LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1
bWVudDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bik7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG9ic2VydmVkTGF5b3V0TWlsZXN0b25lcyk7Cisg
ICAgZW5jb2RlciA8PCBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIH0KIAogYm9vbCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtMjA0LDYgKzIwNSw5IEBA
IGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFy
YW1ldGVycy5vYnNlcnZlZExheW91dE1pbGVzdG9uZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3kpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggNjExNjgzNTJjYTAxOWE3YTAwNmVmM2IzMDAwZDQxM2Y3MzBiODBlMC4uYTYy
NDRiODc2NzJkYjhjYmZiYzFkOWM0OGFjYTc4MDhhNmU2MGVjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xNDMsNiArMTQz
LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
OwogICAgIFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMgb2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVz
OworCisgICAgU3RyaW5nIG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGJlZmM2OTJjOWJmMjQxMzhmM2U4ZTJj
OTkyODkxMGYzOTU0YjI1ODYuLjMzYzgxOTJlMjIzOTZiYWVhZTJmZWE0ZmY3NTQ1YTFkNzJkZDA3
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZp
Z3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCkBAIC02OSw2ICs2OSw3IEBAIFJlZjxQYWdlQ29uZmlndXJhdGlvbj4g
UGFnZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogI2VuZGlmCiAgICAgY29weS0+bV9pbml0
aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkID0gdGhpcy0+bV9pbml0aWFsQ2FwaXRhbGl6YXRpb25F
bmFibGVkOwogICAgIGNvcHktPm1fY29udHJvbGxlZEJ5QXV0b21hdGlvbiA9IHRoaXMtPm1fY29u
dHJvbGxlZEJ5QXV0b21hdGlvbjsKKyAgICBjb3B5LT5tX292ZXJyaWRlQ29udGVudFNlY3VyaXR5
UG9saWN5ID0gdGhpcy0+bV9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIAogICAgIHJl
dHVybiBjb3B5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElQYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQ
YWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGM1YmQ3MjFmZTQ5YTU2ODA2Mjk4MjE1ZTQ2NWYzZGJm
NmExYTAzZTIuLjk4YWUyYWE3MThlMWNmMmQ2NGMxNTI3YzQ2YzYxNDdjODk0MGY4MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9u
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC05OCw2ICs5OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29udHJv
bGxlZEJ5QXV0b21hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbGxlZEJ5QXV0b21hdGlv
bjsgfQogICAgIHZvaWQgc2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNvbnRyb2xsZWRC
eUF1dG9tYXRpb24pIHsgbV9jb250cm9sbGVkQnlBdXRvbWF0aW9uID0gY29udHJvbGxlZEJ5QXV0
b21hdGlvbjsgfQogCisgICAgY29uc3QgV1RGOjpTdHJpbmcmIG92ZXJyaWRlQ29udGVudFNlY3Vy
aXR5UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eTsgfQorICAgIHZvaWQgc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgV1RG
OjpTdHJpbmcmIG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KSB7IG1fb3ZlcnJpZGVDb250
ZW50U2VjdXJpdHlQb2xpY3kgPSBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsgfQorCiBw
cml2YXRlOgogCiAgICAgUmVmUHRyPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bv
b2w7CkBAIC0xMjAsNiArMTI0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5pdGlhbENhcGl0
YWxpemF0aW9uRW5hYmxlZCA9IHRydWU7CiAgICAgYm9vbCBtX3dhaXRzRm9yUGFpbnRBZnRlclZp
ZXdEaWRNb3ZlVG9XaW5kb3cgPSB0cnVlOwogICAgIGJvb2wgbV9jb250cm9sbGVkQnlBdXRvbWF0
aW9uID0gZmFsc2U7CisKKyAgICBXVEY6OlN0cmluZyBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5
UG9saWN5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDEwNDAyZDg2MDg4MzE3NTVmNGQ0
MjE4NjhiYTI0Y2Y4NTNkZGRhNTUuLjQ2MjAyMzFkNDcwYjVkYjA3MzE0NDU0N2NjOTA5ZDZlMDI4
ZmQyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC00MTQsNiArNDE0LDkgQEAgc3RhdGljIHVpbnQzMl90IGNvbnZlcnRTeXN0ZW1M
YXlvdXREaXJlY3Rpb24oTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIGRpcmUKICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+c2V0V2Vic2l0ZURhdGFTdG9yZShbX2NvbmZpZ3VyYXRpb24gd2Vi
c2l0ZURhdGFTdG9yZV0tPl93ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKICAgICBwYWdlQ29uZmln
dXJhdGlvbi0+c2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUoW19jb25m
aWd1cmF0aW9uIF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZV0pOwogCisg
ICAgaWYgKE5TU3RyaW5nICpvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGNvbmZpZ3Vy
YXRpb24uX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KQorICAgICAgICBwYWdlQ29uZmln
dXJhdGlvbi0+c2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kob3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3kpOworCiAgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZUdyb3VwPiBwYWdl
R3JvdXA7CiAgICAgTlNTdHJpbmcgKmdyb3VwSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24uX2dy
b3VwSWRlbnRpZmllcjsKICAgICBpZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCmluZGV4IGY5MzEzYmFkNzQ5NmQ1YWZkNzllZTg2NWNhZTk2MTc2ZDkz
NmQzZjQuLjUwZGZhMjgxY2RhZTI5M2FiZjcwMDcyODM4MWEyZWJlMTAyZjRjOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0KQEAgLTEzMCw2ICsxMzAsOCBAQCBwcml2YXRlOgogICAgIEJPT0wg
X2FwcGxlUGF5RW5hYmxlZDsKICNlbmRpZgogICAgIEJPT0wgX25lZWRzU3RvcmFnZUFjY2Vzc0Zy
b21GaWxlVVJMc1F1aXJrOworCisgICAgTlNTdHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0
eVBvbGljeTsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXQKQEAgLTMxOCw2ICszMjAsNyBAQCBw
cml2YXRlOgogICAgIGNvbmZpZ3VyYXRpb24tPl9hcHBsZVBheUVuYWJsZWQgPSBzZWxmLT5fYXBw
bGVQYXlFbmFibGVkOwogI2VuZGlmCiAgICAgY29uZmlndXJhdGlvbi0+X25lZWRzU3RvcmFnZUFj
Y2Vzc0Zyb21GaWxlVVJMc1F1aXJrID0gc2VsZi0+X25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxl
VVJMc1F1aXJrOworICAgIGNvbmZpZ3VyYXRpb24tPl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bGljeSA9IHNlbGYtPl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIAogICAgIHJldHVy
biBjb25maWd1cmF0aW9uOwogfQpAQCAtNzUyLDYgKzc1NSwxNiBAQCBzdGF0aWMgTlNTdHJpbmcg
KmRlZmF1bHRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKQogICAgIF9uZWVkc1N0b3JhZ2VB
Y2Nlc3NGcm9tRmlsZVVSTHNRdWlyayA9IG5lZWRzTG9jYWxTdG9yYWdlUXVpcms7CiB9CiAKKy0g
KE5TU3RyaW5nICopX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Cit7CisgICAgcmV0dXJu
IF9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKK30KKworLSAodm9pZClfc2V0T3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6KE5TU3RyaW5nICopb3ZlcnJpZGVDb250ZW50U2VjdXJp
dHlQb2xpY3kKK3sKKyAgICBfb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBvdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tEZXByZWNhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oCmluZGV4IDA0MWQyNWM2MWUwOWMzYTk3NjFhNzRlZTU2ZTQ1YmYwMDI1ZmI3
NGMuLjY2YWZlOGI3OTBiYmZlZmQxZjljY2ZhZjA3OGExNjQ3OGVlOGFlOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
blByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTc0LDYgKzc0LDggQEAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2s6
KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxh
eWJhY2siLCBtYWNvc3goMTAuMTIsIDEwLjEyKSwgaW9zKDEwLjAsIDEwLjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJh
Y2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9y
UGxheWJhY2siLCBtYWNvc3goMTAuMTIsIDEwLjEyKSwgaW9zKDEwLjAsIDEwLjApKTsKIAorQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xp
Y3k6KSBOU1N0cmluZyAqX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwYzc2
NGQ5NjQ3MzJhNzUxNTYxNDU5NTc4NjJiMDdiMDg0NTYzYTJiLi43NDc5M2VjNGE1ZTY1NjNhZWQz
ZTIyNzE3MWM1ODQ0MjZkMDQ1MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMzQzLDYgKzM0Myw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAg
ICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUobV9jb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3Jl
KCktPndlYnNpdGVEYXRhU3RvcmUoKSkKICAgICAsIG1fbWFpbkZyYW1lKG51bGxwdHIpCiAgICAg
LCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQorICAgICwgbV9vdmVycmlkZUNvbnRl
bnRTZWN1cml0eVBvbGljeSB7IG1fY29uZmlndXJhdGlvbi0+b3ZlcnJpZGVDb250ZW50U2VjdXJp
dHlQb2xpY3koKSB9CiAgICAgLCBtX3RyZWF0c1NIQTFDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKG1f
Y29uZmlndXJhdGlvbi0+dHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUoKSkK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2Z1bGxzY3JlZW5DbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+KCkpCkBAIC01NTcwLDYgKzU1NzEs
NyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJh
bWV0ZXJzKCkKICAgICBwYXJhbWV0ZXJzLnNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQgPSBt
X3Nob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQ7CiAgICAgcGFyYW1ldGVycy51c2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uID0gbV9wYWdlQ2xpZW50LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24oKTsKICAgICBwYXJhbWV0ZXJzLm9ic2VydmVkTGF5b3V0TWlsZXN0b25lcyA9IG1fb2Jz
ZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzOworICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3kgPSBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogCiAgICAgcmV0
dXJuIHBhcmFtZXRlcnM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggZTU0MmVmNDljOGYzZTQ4OTM0ZjA4YmVkNTQzNWY2NDUzZGNiNTkxOC4uMDU4MjJlZDcw
YTU4MWJhOGQ3ZWEyNmYzOTZjOGViNGFiODZhZDIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTY2Myw2ICsxNjYzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJp
bmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fY3VzdG9tVXNl
ckFnZW50OwogICAgIFN0cmluZyBtX2N1c3RvbVRleHRFbmNvZGluZ05hbWU7CisgICAgU3RyaW5n
IG1fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKICAgICBib29sIG1fdHJlYXRzU0hB
MUNlcnRpZmljYXRlc0FzSW5zZWN1cmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggZmMwYWMyZTM1YTJiMGE4YjYwMjg4ZDIzMTkwY2JkYmViNDRhYmM3Yi4uMjVlMDYy
NTQ3YTIwODlkZTQ4MzEzMGJkMzRmNjgzYjQyZTI1ZGNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTEyOTcsNiArMTI5NywxNSBAQCBTdHJpbmcgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnVzZXJBZ2VudChjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gd2ViUGFnZS0+
dXNlckFnZW50KG1fZnJhbWUsIHVybCk7CiB9CiAKK1N0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6b3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdAoreworICAgIFdlYlBhZ2Uq
IHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gd2ViUGFnZS0+b3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3koKTsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVBsYXRm
b3JtRGF0YVRvQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqIGNhY2hlZEZyYW1lKQogewogICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggMjQ4Y2NjNDE5MmUyMmVlNjlmNzY1M2FlNWE1ODBjODNjNDk2NzQxMi4uNWY0
ZjFjODQ3YWM2ZTNlMDc5ZTk2OTk4YThhMTI5MGRiMzQ1NGE5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMTc5LDcgKzE3OSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRU
aXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6
VVJMJikgZmluYWw7CiAgICAgCiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpV
UkwmKSBmaW5hbDsKLSAgICAKKworICAgIFN0cmluZyBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bGljeSgpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRG
cmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopIGZpbmFsOwogICAgIHZvaWQgdHJhbnNpdGlvblRv
Q29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKikgZmluYWw7CiAj
aWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDg2NzRhNGRlNmI5ZjViMWM2MGMzNDZlMWM4ZTZiY2UzYjhmNTUyNTgu
LjYzZmVjYzZmMWNmNjM0MmI5OWJiMTA0ZGQ3ZDQwMzQ0ODlkODkwZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM2Miw2ICszNjIsNyBA
QCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCiAgICAgLCBtX3VzZXJBY3Rpdml0eSgiUHJvY2VzcyBzdXBwcmVz
c2lvbiBkaXNhYmxlZCBmb3IgcGFnZS4iKQogICAgICwgbV91c2VyQWN0aXZpdHlIeXN0ZXJlc2lz
KFt0aGlzXShIeXN0ZXJlc2lzU3RhdGUpIHsgdXBkYXRlVXNlckFjdGl2aXR5KCk7IH0pCiAgICAg
LCBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24ocGFyYW1ldGVycy51c2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uKQorICAgICwgbV9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSB7
IHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgfQogewogICAgIEFTU0VS
VChtX3BhZ2VJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDM1NGIxMTA1YTk2MTE0ODRjZDA5MGMxMjlmMjE4MDFhN2FmYjU1MTguLjQzOWUz
ODU0ZDE4ZjEwN2VkMjM5YmI3Y2M0MmQ5NTgwNDBhYzJiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjkzLDYgKzI5Myw4IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgcGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3Q7
CiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKIAorICAgIGNv
bnN0IFN0cmluZyYgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdCB7IHJldHVy
biBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CisKICAgICBXZWJVbmRvU3RlcCog
d2ViVW5kb1N0ZXAodWludDY0X3QpOwogICAgIHZvaWQgYWRkV2ViVW5kb1N0ZXAodWludDY0X3Qs
IFdlYlVuZG9TdGVwKik7CiAgICAgdm9pZCByZW1vdmVXZWJFZGl0Q29tbWFuZCh1aW50NjRfdCk7
CkBAIC0xNTQyLDYgKzE1NDQsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIG1fdXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biB7IFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246OkxUUiB9OworCisgICAg
Y29uc3QgU3RyaW5nIG1fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBmZjdhMGQ1N2ZhZWIwNTgyZjEzOTAwMTZlOTY4MjczMmRhZTU1ZDNkLi4w
N2E0NzM3M2RmYzUyZDI3MGRjYTU2ZWZhNDkyZDY1YjQ4N2QzNzRkIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTct
MDItMDMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNd
W1dLMl0gQWRkIFNQSSB0byBvdmVycmlkZSB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb2Yg
YSBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njc4MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQgd2UgZG8gbm90IHJlZ3Jlc3MgLVtXS1dlYlZpZXcgX3Nl
dE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Ol0uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9PdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bGljeS5tbTogQWRkZWQuCisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGgtY3NwLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGgtY3NwLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3Bh
Z2Utd2l0aG91dC1jc3AtaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AuaHRtbDogQWRkZWQuCisKIDIw
MTctMDItMDIgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVuZGVmaW5lZCBzdWJyb3V0aW5lIGluIHN2bi1jcmVhdGUtcGF0Y2gKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTc0YmMzZWNkNTczZjU2OGViODk1Y2E5ZTBkNjE3ZTQ1MzU4NTk2Yi4uMzg0
OTI1ZDM1MTc4YThmNjQ4ZWQzYTgzMzk2OGJkZTczYzNkZjdkNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTUzOSw2ICs1MzksMTEgQEAKIAkJQ0UzNTI0RkExQjE0NDM4OTAwMjhBN0M1IC8q
IGlucHV0LWZvY3VzLWJsdXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUgLyogaW5wdXQtZm9j
dXMtYmx1ci5odG1sICovOyB9OwogCQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1h
bmQtY2xvc2Utd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0VBNkNGMjcxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNs
b3NlLXdpbmRvdy5odG1sICovOyB9OwogCQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQkFCRDQ4MUI3MTY4N0MwMDUxMjEwQSAvKiBz
aG91bGQtb3Blbi1leHRlcm5hbC1zY2hlbWVzLmh0bWwgKi87IH07CisJCUNFQkNBMTJGMUUzQTY2
MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQkNBMTJFMUUzQTY2MDEwMEM3
MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSAqLzsgfTsKKwkJQ0VCQ0Ex
MzgxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUJDQTEzNTFFM0E4MDM0MDBD
NzMyOTMgLyogcGFnZS13aXRoLWNzcC5odG1sICovOyB9OworCQlDRUJDQTEzOTFFM0E4MDdBMDBD
NzMyOTMgLyogcGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUJDQTEzNDFFM0E4MDM0MDBDNzMyOTMg
LyogcGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbCAqLzsgfTsKKwkJQ0VCQ0ExM0ExRTNBODA3QTAw
QzczMjkzIC8qIHBhZ2Utd2l0aG91dC1jc3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUJDQTEzNzFFM0E4MDM0MDBDNzMyOTMgLyog
cGFnZS13aXRob3V0LWNzcC5odG1sICovOyB9OworCQlDRUJDQTEzQjFFM0E4MDdBMDBDNzMyOTMg
LyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUJDQTEzNjFFM0E4MDM0MDBDNzMyOTMgLyog
cGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCAqLzsgfTsKIAkJRTEyMjBEQ0ExNTVCMjhBQTAw
MTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTEyMjBEQzkxNTVCMjg3RDAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291
cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87IH07CiAJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAv
KiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk0RTFCQzE3N0U1MzRBMDA5
QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi87IH07CiAJ
CUY0MTUwODZEMURBMDQwQzUwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxNTA4
NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAqLzsgfTsKQEAg
LTc0Niw2ICs3NTEsMTAgQEAKIAkJCQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5l
d1dpbmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUExQzRGQjczMUJBQ0QxQ0Ew
MDM3NDJEMCAvKiBwYWdlcy5wYWdlcyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlBNTdBMzRG
MjE2QUY2QjJCMDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2Vz
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJQ0VCQ0ExMzgxRTNBODA3QTAwQzczMjkz
IC8qIHBhZ2Utd2l0aC1jc3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlDRUJDQTEz
OTFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQlDRUJDQTEzQTFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRob3V0
LWNzcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUNFQkNBMTNCMUUzQTgwN0EwMEM3
MzI5MyAvKiBwYWdlLXdpdGhvdXQtY3NwLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUY2RkREREQ2MTQyNDFDNkYwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNTJCOENGOTgxNTg2OEQ5MTAwMjgxMDUzIC8qIFNldERvY3Vt
ZW50VVJJLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQUJENDkxQjcxNjg3QzAw
NTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKQEAgLTEzMzEsNiArMTM0MCwxMSBAQAogCQlDRUE2Q0YyMjE5Q0NGNUJEMDA2NEY1
QTcgLyogT3BlbkFuZENsb3NlV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gT3BlbkFuZENsb3NlV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRUE2Q0YyNzE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAib3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRUJBQkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9w
ZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNob3VsZC1vcGVuLWV4dGVybmFs
LXNjaGVtZXMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFQkNBMTJFMUUz
QTY2MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE92ZXJyaWRlQ29udGVudFNlY3VyaXR5
UG9saWN5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRUJDQTEzNDFFM0E4MDM0
MDBDNzMyOTMgLyogcGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJwYWdlLXdpdGgtY3NwLWlmcmFtZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0VCQ0ExMzUxRTNBODAzNDAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwYWdlLXdpdGgtY3NwLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRUJDQTEzNjFFM0E4MDM0MDBDNzMyOTMgLyogcGFn
ZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJw
YWdlLXdpdGhvdXQtY3NwLWlmcmFtZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0VCQ0ExMzcxRTNBODAzNDAwQzczMjkzIC8qIHBhZ2Utd2l0aG91dC1jc3AuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwYWdlLXdpdGhvdXQtY3NwLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2MjFDRjc3QzY1MDBDNjI3MkYgLyogU2NvcGVk
TGFtYmRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjb3BlZExh
bWJkYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjIwRDlGMTU1QjI1NDgw
MDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlRGlz
YWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0
aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
IE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTQ1LDYgKzE1NTksNyBAQAogCQkJCUExMEYwNDdD
MUUzQUQyOUMwMEM5NUUxOSAvKiBOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tICovLAogCQkJCTM3QTIy
QUE1MURDQUEyNzIwMEFGQkZDNCAvKiBPYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzQWZ0
ZXJDcmFzaC5tbSAqLywKIAkJCQlDRUE2Q0YyMjE5Q0NGNUJEMDA2NEY1QTcgLyogT3BlbkFuZENs
b3NlV2luZG93Lm1tICovLAorCQkJCUNFQkNBMTJFMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSAqLywKIAkJCQlDOTU1MDFCRTE5QUQyRkFGMDA0OUJF
M0UgLyogUHJlZmVyZW5jZXMubW0gKi8sCiAJCQkJNTc5OEUyQUYxQ0FGNUMyODAwQzVDQkEwIC8q
IFByb3Zpc2lvbmFsVVJMTm90Q2hhbmdlLm1tICovLAogCQkJCUExQzRGQjZDMUJBQ0NFNTAwMDM3
NDJEMCAvKiBRdWlja0xvb2subW0gKi8sCkBAIC0xNzI4LDYgKzE3NDMsMTAgQEAKIAkJCQk0NkM1
MTlFMzFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9y
YWdlICovLAogCQkJCTQ2QzUxOUU0MUQzNTYyOTYwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxs
RW50cmllcy5sb2NhbHN0b3JhZ2Utc2htICovLAogCQkJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJG
NiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovLAorCQkJCUNFQkNBMTM1MUUz
QTgwMzQwMEM3MzI5MyAvKiBwYWdlLXdpdGgtY3NwLmh0bWwgKi8sCisJCQkJQ0VCQ0ExMzQxRTNB
ODAzNDAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AtaWZyYW1lLmh0bWwgKi8sCisJCQkJQ0VCQ0Ex
MzcxRTNBODAzNDAwQzczMjkzIC8qIHBhZ2Utd2l0aG91dC1jc3AuaHRtbCAqLywKKwkJCQlDRUJD
QTEzNjFFM0E4MDM0MDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCAqLywK
IAkJCQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbCAqLywKIAkJCQk1MTVCRTE2RTFENDI4OEZGMDBERDdDNjggLyogU3Rv
cmVCbG9iVG9CZURlbGV0ZWQuaHRtbCAqLywKIAkJCQk1MTcxNEVCMjFDRjhDNzYxMDA0NzIzQzQg
LyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCAqLywKQEAgLTI2NDgsNiArMjY2Nyw3
IEBACiAJCQkJMzc2QzhDMDYxRDZFMTk3QzAwN0QyQkI5IC8qIEZyYW1lSGFuZGxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RjA1MUE0MTFBRTYwMDQ0N0M0QyAvKiBOZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjUx
QTQxMUFGNjAwNDQ3QzRDIC8qIE9wZW5BbmRDbG9zZVdpbmRvdy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUNFQkNBMTJGMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bGljeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAvKiBQ
YWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc2OUM1MEIxRDlCMDAwMjAwMDg0N0ZC
IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdG
MDcxQTQxMUFFNjAwNDQ3QzRDIC8qIFBhZ2VMb2FkQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9PdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL092ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2
NTNkNzAyZDFkNGU0MDE2MWFjNDJhMDQ1ZDJjZDIxMWQwMWE2YjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9PdmVycmlkZUNvbnRlbnRT
ZWN1cml0eVBvbGljeS5tbQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworVEVTVChXS1dlYlZpZXcsIFNldE92ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5V2l0aEVtcHR5U3RyaW5nRm9yUGFnZVdpdGhDU1ApCit7CisgICAg
QGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0
aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICAgICAgW2NvbmZpZ3VyYXRpb24gX3NldE92ZXJyaWRlQ29udGVudFNl
Y3VyaXR5UG9saWN5OkAiIl07CisKKyAgICAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKKyAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAicGFnZS13aXRo
LWNzcCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOworICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKwor
ICAgICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk1haW5GcmFtZTogQSJdOworICAgICAg
ICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk1haW5GcmFtZTogQiJdOworICAgICAgICBbd2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1YmZyYW1lOiBBIl07CisgICAgICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZXNzYWdlOkAiU3ViZnJhbWU6IEIiXTsKKyAgICB9Cit9CisKK1RFU1QoV0tXZWJWaWV3
LCBTZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeUZvclBhZ2VXaXRoQ1NQKQoreworICAg
IEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJh
dGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgICAgIFtjb25maWd1cmF0aW9uIF9zZXRPdmVycmlkZUNvbnRlbnRT
ZWN1cml0eVBvbGljeTpAInNjcmlwdC1zcmMgJ25vbmNlLWInIl07CisKKyAgICAgICAgUmV0YWlu
UHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAicGFnZS13aXRoLWNzcCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKKworICAgICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk1h
aW5GcmFtZTogQiJdOworICAgICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1YmZyYW1l
OiBCIl07CisgICAgfQorfQorCitURVNUKFdLV2ViVmlldywgU2V0T3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3lGb3JQYWdlV2l0aG91dENTUCkKK3sKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAg
ICBbY29uZmlndXJhdGlvbiBfc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6QCJzY3Jp
cHQtc3JjICdub25jZS1iJyJdOworCisgICAgICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
XSk7CisgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInBhZ2Utd2l0
aG91dC1jc3AiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXTsKKyAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CisKKyAgICAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJNYWluRnJhbWU6IEIiXTsKKyAg
ICAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWJmcmFtZTogQiJdOworICAgIH0KK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9wYWdlLXdpdGgtY3NwLWlmcmFtZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvcGFnZS13aXRoLWNzcC1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzJh
OWRiYjYwNTZiMGQ2OTM5ZGVjZWJlMzEzYzQ5NjRkY2EyOTM4Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcGFnZS13aXRoLWNzcC1pZnJh
bWUuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2Ny
aXB0LXNyYyAnbm9uZSciPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IG5vbmNlPSJhIj4KK3dp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWJm
cmFtZTogQSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IG5vbmNlPSJiIj4KK3dpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWJmcmFtZTogQiIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGgtY3NwLmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGgtY3NwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2ZiNzZmZTg0MTEwY2U0NzI1MzVkNTlmZDM1NGVlZDM0Zjg3NjA5MQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aC1jc3Au
aHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0
LXNyYyAnbm9uZSciPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IG5vbmNlPSJhIj4KK3dpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJNYWluRnJh
bWU6IEEiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBub25jZT0iYiI+Cit3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiTWFpbkZyYW1lOiBCIik7Cis8
L3NjcmlwdD4KKzxpZnJhbWUgaWQ9ImlmcmFtZSIgc3JjPSJwYWdlLXdpdGgtY3NwLWlmcmFtZS5o
dG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AtaWZyYW1lLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wYWdlLXdpdGhvdXQtY3Nw
LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0YTIzZDVmMDkwYWI4MTc5ZmNlNGUxYTBlYTY1YjM5
N2YwMWE1ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9wYWdlLXdpdGhvdXQtY3NwLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgbm9uY2U9ImEiPgord2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1YmZy
YW1lOiBBIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgbm9uY2U9ImIiPgord2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1YmZyYW1lOiBCIik7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3BhZ2Utd2l0aG91dC1jc3AuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NGNlY2FmZTg3MDFjNTllODkwMzBiYWI2MGVlNWY2MzlkMjFmMzZhCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcGFnZS13aXRo
b3V0LWNzcC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgbm9uY2U9ImEiPgord2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIk1haW5GcmFtZTogQSIpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IG5vbmNlPSJiIj4KK3dpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCJNYWluRnJhbWU6IEIiKTsKKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0iaWZy
YW1lIiBzcmM9InBhZ2Utd2l0aG91dC1jc3AtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="322445"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>