<?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>55172</bug_id>
          
          <creation_ts>2011-02-24 12:10:27 -0800</creation_ts>
          <short_desc>Need WK2 API to view/manage origins with LocalStorage</short_desc>
          <delta_ts>2011-03-14 00:44:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>51878</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>357255</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-24 12:10:27 -0800</bug_when>
    <thetext>Need WK2 API to view/manage origins with LocalStorage

In radar as &lt;rdar://problem/8762095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357303</commentid>
    <comment_count>1</comment_count>
      <attachid>83705</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-24 12:52:37 -0800</bug_when>
    <thetext>Created attachment 83705
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357305</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-24 12:54:48 -0800</bug_when>
    <thetext>Attachment 83705 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 28 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>357314</commentid>
    <comment_count>3</comment_count>
      <attachid>83705</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-24 13:02:45 -0800</bug_when>
    <thetext>Comment on attachment 83705
Patch v1

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

Looks good, just a few style nits.

&gt; Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp:95
&gt; +        return;

The spacing with the early return for hasValidProcess is different here than in deleteEntriesForOrigin and getKeyValueStorageOrigins. I&apos;d say add a blank line here to be consistent.

&gt; Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:75
&gt; +        identifiers.uncheckedAppend(originData);

Do you ever expect the SecurityOrigin to be null? If not - you could do Vector&lt;SecurityOriginData&gt; identifiers(size) - and then just do identifiers[i] = originData

&gt; Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:83
&gt; +    // FIXME &lt;rdar://problem/8762095&gt; and https://bugs.webkit.org/show_bug.cgi?id=55172: Implement once https://bugs.webkit.org/show_bug.cgi?id=51878 is resolved.

Colon after the FIXME - and maybe a notImplemented would be nice?

&gt; Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:88
&gt; +    // FIXME &lt;rdar://problem/8762095&gt; and https://bugs.webkit.org/show_bug.cgi?id=55172: Implement once https://bugs.webkit.org/show_bug.cgi?id=51878 is resolved.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357535</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-24 16:13:06 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 83705 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83705&amp;action=review
&gt; 
&gt; Looks good, just a few style nits.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp:95
&gt; &gt; +        return;
&gt; 
&gt; The spacing with the early return for hasValidProcess is different here than in deleteEntriesForOrigin and getKeyValueStorageOrigins. I&apos;d say add a blank line here to be consistent.

Done.

&gt; &gt; Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:75
&gt; &gt; +        identifiers.uncheckedAppend(originData);
&gt; 
&gt; Do you ever expect the SecurityOrigin to be null? If not - you could do Vector&lt;SecurityOriginData&gt; identifiers(size) - and then just do identifiers[i] = originData

If it was null, it&apos;d be indicative of both a WebCore bug and a HashSet bug.  This is a Vector of SecurityOriginDatas I&apos;m uncheckedAppend()&apos;ing to, so no, it can&apos;t be null.

&gt; &gt; Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:83
&gt; &gt; +    // FIXME &lt;rdar://problem/8762095&gt; and https://bugs.webkit.org/show_bug.cgi?id=55172: Implement once https://bugs.webkit.org/show_bug.cgi?id=51878 is resolved.
&gt; 
&gt; Colon after the FIXME - and maybe a notImplemented would be nice?
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:88
&gt; &gt; +    // FIXME &lt;rdar://problem/8762095&gt; and https://bugs.webkit.org/show_bug.cgi?id=55172: Implement once https://bugs.webkit.org/show_bug.cgi?id=51878 is resolved.
&gt; 
&gt; Ditto.

Both of these done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357620</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-24 18:16:06 -0800</bug_when>
    <thetext>Landed first piece in r79654</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357621</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-24 18:17:02 -0800</bug_when>
    <thetext>Remaining work is blocked on https://bugs.webkit.org/show_bug.cgi?id=51878</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366879</commentid>
    <comment_count>7</comment_count>
      <attachid>85655</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-14 00:16:06 -0700</bug_when>
    <thetext>Created attachment 85655
2nd Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366881</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-14 00:44:32 -0700</bug_when>
    <thetext>Landed in r81005</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83705</attachid>
            <date>2011-02-24 12:52:37 -0800</date>
            <delta_ts>2011-02-24 18:06:01 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>69796</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NjAwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODMgQEAKKzIwMTEtMDItMjQgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzg3NjIwOTU+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxNzIKKyAgICAgICAgTmVl
ZCBXZWJLaXQyIEFQSSB0byB2aWV3L21hbmFnZSBvcmlnaW5zIHdpdGggTG9jYWxTdG9yYWdlLgor
CisgICAgICAgIFByb2plY3QgZmlsZSBzdHVmZjoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBXZWJLaXQyLnByaToKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAg
KiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktp
dDIudmNwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6CisgICAgICAg
ICogd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKworICAgICAgICBXSzIgZGVyaXZlZCBzb3Vy
Y2VzIGFuZCBBUEkgc3R1ZmY6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5wcm86CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoK
KworICAgICAgICBBZGQgYW4gS2V5VmFsdWVTdG9yYWdlTWFuYWdlciB0byB0aGUgY29udGV4dCBh
bmQgaW52YWxpZGF0ZSBpdCBhdCB0aGUgYXBwcm9wcmlhdGUgdGltZXM6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpXZWJD
b250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6fldlYkNvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjprZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHkpOgorCisgICAgICAgIEFkZCBBUEkgdG8gZ2V0IHRoZSBLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyIGZvciBhIGNvbnRleHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisKKyAgICAgICAg
Um91dGUgbWVzc2FnZXMgdG8gdGhlIHJpZ2h0IHBsYWNlOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisKKyAgICAg
ICAgQWRkIHRoZSBBUEkgb2JqZWN0LCB3aGljaCB3cmFwcyB0byBXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0
VHlwZUlEKToKKyAgICAgICAgKFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVlU3Rv
cmFnZU9yaWdpbnMpOgorICAgICAgICAoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyRGVsZXRlRW50
cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJEZWxldGVB
bGxFbnRyaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgIFRoZSBVSVByb2Nlc3MgaW1wbGVtZW50YXRpb24g
b2YgdGhlIG1hbmFnZXIgdG8gc2VuZCBtZXNzYWdlcyB0byB0aGUgV2ViUHJvY2VzcyBhbmQgcGlw
ZSBhIGNhbGxiYWNrIGJhY2sgdXAgdG8gdGhlIGNsaWVudDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHk6On5XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpnZXRL
ZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5OjpkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKToKKyAgICAgICAg
KFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9y
T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5
OjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAg
ICAgVGhlIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gdG8gcmVzcG9uc2UgdG8gVUlQcm9jZXNz
IG1lc3NhZ2VzIGFuZCBhY3R1YWxseSBkbyB0aGUgZGlydHktd29yayBpbiBXZWJDb3JlOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OnNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OldlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXI6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmll
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFn
ZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMS0w
Mi0yNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBSb2JlbiBhbmQgbG9va2VkIGF0IGJ5IEJyaWFuIFdlaW5zdGVpbi4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNzk2MDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0tleVZhbHVl
U3RvcmFnZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtNTgsNiArNTksOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9
IFwKICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSBcCiAgICAgV2ViSW5zcGVjdG9yIFwK
ICAgICBXZWJJbnNwZWN0b3JQcm94eSBcCisgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlciBc
CisgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5IFwKICAgICBXZWJQYWdlIFwKICAg
ICBXZWJQYWdlUHJveHkgXAogICAgIFdlYlByb2Nlc3MgXApJbmRleDogU291cmNlL1dlYktpdDIv
RGVyaXZlZFNvdXJjZXMucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLnBybwkocmV2aXNpb24gNzk2MDApCisrKyBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291
cmNlcy5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAgVlBBVEggPSBcCiAgICAg
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAgICAgV2ViUHJvY2Vzcy9Db29raWVzIFwKICAg
ICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKyAgICBXZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFn
ZSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtOTUsNiArOTYsOCBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluIFwKICAg
ICBQbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFBsdWdpblByb3h5Lm1lc3Nh
Z2VzLmluIFwKKyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCisg
ICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2Vi
Q29udGV4dC5tZXNzYWdlcy5pbiBcCiAgICAgV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiBc
CiAgICAgV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKQEAgLTEwMyw4ICsxMDYs
OCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVz
c2FnZXMuaW4gXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwK
ICAgICBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBcCi0gICAgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAotICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gXAorICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBc
CiAgICAgV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIFwKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA3OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIGxpYldlYktpdDJf
bGFfSEVBREVSUyA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oIFwKKwkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS05hdmlnYXRpb25EYXRhLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dL
T3BlblBhbmVsUGFyYW1ldGVycy5oIFwKQEAgLTMxOSw2ICszMjAsOCBAQCBsaWJXZWJLaXQyX2xh
X1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xp
Y3lMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0
b3IuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuaCBc
CisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZl
bnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5o
IFwKQEAgLTQzNiw2ICs0MzksOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkluc3BlY3RvclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJL
ZXlWYWx1ZU1hbmFnZXJQcm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJL
ZXlWYWx1ZU1hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9h
ZGVyQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVu
dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwK
QEAgLTUzOSw2ICs1NDQsOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9LZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvS2V5VmFsdWVT
dG9yYWdlTWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvZ3RrL05ldHNjYXBlUGx1Z2luR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIFwKQEAgLTY4MCw2ICs2ODcs
NyBAQCBsaWJXZWJLaXQyX2xhX0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL2d0ayBcCisJLUkkKHNyY2Rp
cikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTGF1bmNoaW5nIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAogCS1JJChzcmNkaXIpL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC04NDMsNiArODUxLDEwIEBAIHdl
YmtpdDJfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNw
ZWN0b3JNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlTWVzc2FnZVJlY2Vp
dmVyLmNwcCBcCkBAIC04ODEsNiArODkzLDcgQEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9Db29raWVzIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAorCSQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UgXAogCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYktpdDIucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJp
CShyZXZpc2lvbiA3OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIFdFQktJVDJfSU5DTFVERVBBVEggPSBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00gXAogICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MgXAorICAgICQk
U09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVNYW5hZ2VyIFwKICAgICAkJFNP
VVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQkU09VUkNFX0RJUi9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZp
c2lvbiA3OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw2ICs0Myw4IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBcCiAgICAgJCRX
RUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViSW5zcGVj
dG9yTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJJ
bnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVz
c2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQYWdlTWVz
c2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJv
eHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBcCkBAIC02OSw2ICs3MSw4IEBAIFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNw
cCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCkBAIC0xODQsNiArMTg4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9j
ZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkhpc3RvcnlD
bGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggXAorICAgIFVJUHJv
Y2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YkxvYWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBcCkBAIC0yMTcs
NiArMjIyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggXAorICAgIFdlYlByb2Nl
c3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAgICAgV2Vi
UHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggXAogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggXApAQCAtMzU4LDYgKzM2NCw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCBcCiAgICAg
VUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCkBAIC00MDUsNiArNDEyLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRC
dW5kbGVRdC5jcHAgXAorICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJ
RC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgJKHJldmlzaW9uIDc5NjAwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBlbnVtIE1lc3Nh
Z2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyLAogICAgIE1lc3Nh
Z2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYklu
c3BlY3RvciwKKyAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLAogICAg
IE1lc3NhZ2VDbGFzc1dlYlBhZ2UsCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2VzcywKICAgICBN
ZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciwKQEAgLTU5LDYgKzYwLDcgQEAgZW51
bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5
LAogICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlciwKICAgICBNZXNzYWdlQ2xh
c3NXZWJJbnNwZWN0b3JQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHlMZWdh
Y3ksCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShyZXZpc2lvbiA3OTYwMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzYs
NiArNzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LAogICAgICAgICBUeXBlR2VvbG9jYXRpb25Qb3NpdGlvbiwKICAgICAgICAgVHlwZUluc3Bl
Y3RvciwKKyAgICAgICAgVHlwZUtleVZhbHVlU3RvcmFnZU1hbmFnZXIsCiAgICAgICAgIFR5cGVO
YXZpZ2F0aW9uRGF0YSwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAg
IFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgJKHJldmlzaW9uIDc5NjAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBAIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb24KIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tHZW9sb2NhdGlvblBvc2l0
aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0luc3BlY3RvciogV0tJbnNwZWN0b3JSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIqIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlv
bkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRl
cnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiA3
OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlTYW1wbGVyLmgiCkBA
IC0xMTUsNiArMTE2LDcgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJv
YwogICAgICwgbV9jb29raWVNYW5hZ2VyUHJveHkoV2ViQ29va2llTWFuYWdlclByb3h5OjpjcmVh
dGUodGhpcykpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclByb3h5KFdlYkRhdGFiYXNlTWFuYWdl
clByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCisgICAgLCBtX2tleVZhbHVl
U3RvcmFnZU1hbmFnZXJQcm94eShXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmNyZWF0
ZSh0aGlzKSkKICAgICAsIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdlYlBsdWdpblNpdGVEYXRh
TWFuYWdlcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
KFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQTEFURk9S
TShXSU4pCkBAIC0xNTAsNiArMTUyLDkgQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogCiAg
ICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZGF0YWJhc2VN
YW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOworICAgIAorICAgIG1fa2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9rZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHktPmNsZWFyQ29udGV4dCgpOwogCiAgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXItPmlu
dmFsaWRhdGUoKTsKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+Y2xlYXJDb250ZXh0KCk7
CkBAIC0zMDAsNiArMzA1LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2VzcyhX
ZWJQcgogICAgIG1fY29va2llTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9kYXRh
YmFzZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2tleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS0+
aW52YWxpZGF0ZSgpOwogICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0
ZSgpOwogCiAgICAgLy8gV2hlbiBvdXQgb2YgcHJvY2VzcyBwbHVnLWlucyBhcmUgZW5hYmxlZCwg
d2UgZG9uJ3Qgd2FudCB0byBpbnZhbGlkYXRlIHRoZSBwbHVnLWluIHNpdGUgZGF0YQpAQCAtNTg1
LDYgKzU5MSwxMSBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBt
X2tleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlk
UmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiA3OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAg
Y2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwpAQCAtMTQwLDYgKzE0MSw3IEBAIHB1YmxpYzoKICAg
ICBXZWJDb29raWVNYW5hZ2VyUHJveHkqIGNvb2tpZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0
dXJuIG1fY29va2llTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHkqIGRhdGFiYXNlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1h
bmFnZXJQcm94eS5nZXQoKTsgfQogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkuZ2V0KCk7IH0KKyAgICBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkqIGtleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBwbHVn
aW5TaXRlRGF0YU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpblNpdGVEYXRhTWFuYWdl
ci5nZXQoKTsgfQogICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkqIHJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkuZ2V0KCk7IH0KIApAQCAtMjI2LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdl
YkNvb2tpZU1hbmFnZXJQcm94eT4gbV9jb29raWVNYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdl
YkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdlclByb3h5OwogICAgIFJlZlB0
cjxXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsK
KyAgICBSZWZQdHI8V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5PiBtX2tleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiBt
X3BsdWdpblNpdGVEYXRhTWFuYWdlcjsKICAgICBSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eT4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRh
LmgiCisjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQ
cm94eT4gV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eTo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisg
ICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKK3sKK30KKworV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5Ojp+V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9p
ZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIGlu
dmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKK30KKwordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmdldEtleVZh
bHVlU3RvcmFnZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykK
K3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKyAg
ICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpIHsKKyAgICAgICAgY2FsbGJh
Y2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX2FycmF5Q2Fs
bGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworICAgIG1fd2ViQ29u
dGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
OjpHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKGNhbGxiYWNrSUQpLCAwKTsKK30KKyAgICAKK3Zv
aWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VP
cmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sg
PSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgcGVyZm9ybUFQSUNhbGxi
YWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvcihvcmlnaW5EYXRhcywgY2FsbGJhY2suZ2V0
KCkpOworfQorCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50
cmllc0Zvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlmICghbV93
ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGE7CisgICAgc2VjdXJpdHlPcmln
aW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgIHNlY3VyaXR5T3JpZ2lu
RGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQg
PSBvcmlnaW4tPnBvcnQoKTsKKworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KHNlY3VyaXR5T3JpZ2luRGF0YSksIDApOworfQorCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcygpCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQt
Pmhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5w
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OkRlbGV0
ZUFsbEVudHJpZXMoKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5
X2gKKyNkZWZpbmUgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgIklt
bXV0YWJsZUFycmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3Jl
SVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsK
KyAgICBjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3Qg
U2VjdXJpdHlPcmlnaW5EYXRhOworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNzIFdlYlNlY3VyaXR5
T3JpZ2luOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxi
YWNrOworCitjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJ
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUtl
eVZhbHVlU3RvcmFnZU1hbmFnZXI7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUo
KTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV93ZWJDb250ZXh0ID0gMDsgfQorICAgIAor
ICAgIHZvaWQgZ2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJh
Y2s+KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4q
KTsKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgdm9pZCBkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmln
aW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2Fs
bGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHlfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitt
ZXNzYWdlcyAtPiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkgeworICAgIERpZEdldEtl
eVZhbHVlU3RvcmFnZU9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBv
cmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7Cit9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gNzk2MDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUyLDYgKzI1Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZSgKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYkNvb2tpZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKICAgICAg
ICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc5NjAwKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3
IEBAIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb247CiBjbGFzcyBXZWJJbnNwZWN0b3JQcm94
eTsKK2NsYXNzIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYk5hdmln
YXRpb25EYXRhOwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CkBAIC04NSw2ICs4Niw3IEBAIFdLX0FERF9BUElfTUFQ
UElORyhXS0ZyYW1lUmVmLCBXZWJGcmFtZVAKIFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0
aW9uTWFuYWdlclJlZiwgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvblBvc2l0
aW9uUmVmLCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclJlZiwgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25EYXRh
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBh
bmVsUGFyYW1ldGVycykKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHJldmlzaW9uIDc5NjAwKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3OCw2ICsxNzgsMTEgQEAgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250
ZXh0R2V0R2VvbAogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPmdlb2xvY2F0
aW9uTWFuYWdlclByb3h5KCkpOwogfQogCitXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0S2V5VmFsdWVTdG9yYWdlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikK
K3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5rZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkoKSk7Cit9CisKIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4
dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5wbHVnaW5TaXRlRGF0YU1hbmFnZXIo
KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCShy
ZXZpc2lvbiA3OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYgKzEyNyw3IEBAIFdLX0VYUE9SVCBXS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIFcKIFdLX0VYUE9SVCBXS0Nvb2tpZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0Q29va2llTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQg
V0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JU
IFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRh
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0
R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldFR5cGVJ
RCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6
QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVT
dG9yYWdlT3JpZ2lucyhXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYga2V5VmFsdWVTdG9yYWdl
TWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5
VmFsdWVTdG9yYWdlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChrZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmKS0+Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhBcnJheUNh
bGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwordm9pZCBXS0tleVZhbHVl
U3RvcmFnZU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclJlZiBrZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpblJlZikKK3sKKyAgICB0b0ltcGwoa2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiktPmRlbGV0
ZUVudHJpZXNGb3JPcmlnaW4odG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lkIFdLS2V5VmFs
dWVTdG9yYWdlTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UmVmIGtleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYpCit7CisgICAgdG9JbXBsKGtleVZhbHVlU3Rv
cmFnZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRyaWVzKCk7Cit9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLS2V5VmFsdWVTdG9yYWdlTWFu
YWdlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
S2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJfaAorI2RlZmluZSBX
S0tleVZhbHVlU3RvcmFnZU1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
KworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQg
V0tUeXBlSUQgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYg
dm9pZCAoKldLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnNG
dW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQg
V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhXS0tleVZh
bHVlU3RvcmFnZU1hbmFnZXJSZWYga2V5VmFsdWVTdG9yYWdlTWFuYWdlciwgdm9pZCogY29udGV4
dCwgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2luc0Z1bmN0
aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
RGVsZXRlRW50cmllc0Zvck9yaWdpbihXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYga2V5VmFs
dWVTdG9yYWdlTWFuYWdlciwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pOworV0tfRVhQT1JU
IHZvaWQgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS0tleVZhbHVl
U3RvcmFnZU1hbmFnZXJSZWYga2V5VmFsdWVTdG9yYWdlTWFuYWdlcik7CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJf
aApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gNzk2MDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMyNyw2ICszMjcsMTggQEAK
IAkJNTFBN0YyRjMxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTdGMkYyMTI1QkY4MjAwMDhBRUIxRCAv
KiBMb2dnaW5nLmggKi87IH07CiAJCTUxQTdGMkY1MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5n
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTdG
MkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAqLzsgfTsKIAkJNTFBODRDRTMxMjdG
Mzg2QjAwQ0E2RUE0IC8qIFdlYkNvbnRleHRNZW51UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBODRDRTIxMjdGMzg2QjAwQ0E2RUE0IC8q
IFdlYkNvbnRleHRNZW51UHJveHkuY3BwICovOyB9OworCQk1MUE5RTBGRjEzMTVDQ0RFMDA5RTcw
MzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE5RTBGQzEzMTVDQ0RFMDA5RTcwMzEgLyogV2Vi
S2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgKi87IH07CisJCTUxQTlFMTAwMTMxNUNDREUwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE5RTBGRDEzMTVDQ0RFMDA5RTcwMzEgLyogV2Vi
S2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oICovOyB9OworCQk1MUE5RTEwMTEzMTVDQ0RFMDA5RTcw
MzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUUwRkUxMzE1Q0NERTAwOUU3
MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gKi87IH07CisJCTUx
QTlFMTA1MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUUx
MDIxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAg
Ki87IH07CisJCTUxQTlFMTA2MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxQTlFMTAzMTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkuaCAqLzsgfTsKKwkJNTFBOUUxMDcxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUUxMDQxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNTFBOUUxMEEx
MzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE5RTEwODEzMTVDRDE4MDA5
RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNTFBOUUxMEIx
MzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUUxMDkxMzE1Q0QxODAwOUU3
MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNTFBOUUxMjgxMzE1RUQzNTAwOUU3MDMxIC8qIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUUxMjQxMzE1RUQzNTAwOUU3MDMx
IC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owor
CQk1MUE5RTEyOTEzMTVFRDM1MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUE5RTEyNTEzMTVFRDM1MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3Nh
Z2VzLmggKi87IH07CisJCTUxQTlFMTJBMTMxNUVEMzUwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUUxMjYxMzE1RUQzNTAwOUU3MDMxIC8qIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CTUxQTlFMTJCMTMxNUVEMzUwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFBOUUxMjcxMzE1RUQzNTAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxQUNCQjgyMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJD
b250ZXh0TWVudVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUFDQkI4MTEyN0E4QkFEMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eS5o
ICovOyB9OwogCQk1MUFDQkJBMDEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFB
Q0JCOUUxMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCAqLzsgfTsK
IAkJNTFBQ0JCQTExMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFDQkI5RjEy
N0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSAqLzsgfTsKQEAgLTEx
NDIsNiArMTE1NCwxOCBAQAogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2Vi
Q29udGV4dE1lbnVQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDb250ZXh0TWVudVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTFBOUUwRkMxMzE1Q0NERTAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5jcHA7IHBhdGggPSBLZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTlFMEZEMTMxNUNDREUw
MDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaDsgcGF0aCA9IEtleVZh
bHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxQTlFMEZFMTMxNUNDREUwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBLZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFBOUUxMDIxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MUE5RTEwMzEzMTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE5RTEwNDEz
MTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBOUUxMDgxMzE1
Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE5RTEwOTEzMTVDRDE4MDA5RTcwMzEgLyog
V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MUE5RTEyNDEzMTVFRDM1MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBOUUxMjUxMzE1RUQzNTAwOUU3MDMxIC8qIFdlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTFBOUUxMjYxMzE1RUQzNTAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE5RTEyNzEzMTVFRDM1
MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQ0JCODExMjdB
OEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUFDQkI5RTEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudVBy
b3h5TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUNCQjlGMTI3QThGMkMw
MEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNjIsNiArMjE4NiwxNiBAQAogCQkJcGF0aCA9IEF1dGhl
bnRpY2F0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTFBOUUwRkIx
MzE1Q0MwRTAwOUU3MDMxIC8qIEtleVZhbHVlU3RvcmFnZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTFBOUUwRkMxMzE1Q0NERTAwOUU3MDMxIC8qIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwICovLAorCQkJCTUxQTlFMEZEMTMxNUNDREUwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggKi8sCisJCQkJNTFBOUUwRkUxMzE1
Q0NERTAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
CisJCQkpOworCQkJbmFtZSA9IEtleVZhbHVlU3RvcmFnZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTUxQjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTgxLDYgKzIyMTUsNyBAQAog
CQkJCTFBNjE2MTRDMTI3Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZHMgKi8sCiAJCQkJQkMwRTVG
Q0IxMkQ2OTZERDAwMTJBNzJBIC8qIEdlb2xvY2F0aW9uICovLAogCQkJCUJDMjA0RURGMTFDODNF
NzIwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZSAqLywKKwkJCQk1MUE5RTBGQjEzMTVDQzBFMDA5
RTcwMzEgLyogS2V5VmFsdWVTdG9yYWdlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3
MSAvKiBtYWMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8s
CiAJCQkJMzMzNjc2MkIxMzBDOTk3ODAwNkM5REUyIC8qIFJlc291cmNlQ2FjaGUgKi8sCkBAIC0y
MzU4LDYgKzIzOTMsOSBAQAogCQkJCTFDOEUyODMzMTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNw
ZWN0b3JQcm94eS5jcHAgKi8sCiAJCQkJMUM4RTI4MzIxMjc1RDczODAwQkM3QkQwIC8qIFdlYklu
c3BlY3RvclByb3h5LmggKi8sCiAJCQkJMUM3N0MxOTUxMjg4QTg3MjAwNkE3NDJGIC8qIFdlYklu
c3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTUxQTlFMTAyMTMxNUNDRkMwMDlFNzAz
MSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTUxQTlFMTAz
MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCAqLywK
KwkJCQk1MUE5RTEwNDEzMTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDQjlFNzYxMTEyMzJCOUUwMEExMzdFMCAvKiBX
ZWJMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUJDNTk1MzQwMTBGQzA0NTIwMDk4RjgyRCAvKiBX
ZWJMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlCQ0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogV2Vi
TmF2aWdhdGlvbkRhdGEuY3BwICovLApAQCAtMjQ0Myw2ICsyNDgxLDggQEAKIAkJCQlCQzBFNjE5
NjEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8sCiAJCQkJMUM4
RTI5MzgxMjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5zcGVjdG9yLmNwcCAqLywKIAkJCQkxQzhFMjkz
NzEyNzYxRTVCMDBCQzdCRDAgLyogV0tJbnNwZWN0b3IuaCAqLywKKwkJCQk1MUE5RTEwODEzMTVD
RDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk1MUE5
RTEwOTEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggKi8sCiAJ
CQkJQzA5QUU1RTgxMjUyNTdDMjAwMjU4MjVEIC8qIFdLTmF0aXZlRXZlbnQuaCAqLywKIAkJCQlC
Q0Y2OUZBODExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJ
QkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLywKQEAgLTI5
MjgsNiArMjk2OCwxMCBAQAogCQkJCTFDOEUyQTMyMTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNw
ZWN0b3JNZXNzYWdlcy5oICovLAogCQkJCTFDQThCOTQzMTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJ
bnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUNBOEI5NDQxMjdDODgy
QTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQk1MUE5RTEy
NDEzMTVFRDM1MDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJNTFBOUUxMjUxMzE1RUQzNTAwOUU3MDMxIC8qIFdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTUxQTlFMTI2MTMxNUVEMzUwMDlFNzAz
MSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTUxQTlFMTI3MTMxNUVEMzUwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUMwQ0U3MjlFMTI0N0U3MUQwMEJDMEVDNCAvKiBX
ZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDMENFNzI5RjEyNDdFNzFEMDBCQzBF
QzQgLyogV2ViUGFnZU1lc3NhZ2VzLmggKi8sCiAJCQkJQkNCRDM5MTIxMjVCQjFBODAwRDJDMjlG
IC8qIFdlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0yOTg1LDYgKzMwMjks
NyBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJNTFBOUUxMEIxMzE1Q0QxODAwOUU3MDMx
IC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFRkQy
NzkxMUQxNkM4MTAwODIxOUQzIC8qIEFyZ3VtZW50Q29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBRUZEMkY3MTFEMTgwN0IwMDgyMTlEMyAvKiBBcmd1bWVudENvZGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMwMzJEQTYxMEY0MzdEMTAwNThDMTVBIC8qIEFyZ3VtZW50RGVjb2Rlci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMzQxLDYgKzMzODYsMTAgQEAKIAkJCQkzMzM2NzY1NjEzMEM5RUNB
MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzMzNjc2NTgxMzBDOUVDQjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMxNTI5NzYxMzBEMENCMjAw
RUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTFBOUUx
MDAxMzE1Q0NERTAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUxQTlFMTA2MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxQTlFMTI5MTMxNUVEMzUwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTUxQTlFMTJCMTMxNUVEMzUwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMwOTM0NDgxMzE1QjkyMjAw
OTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzMwOTM0NEExMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzA5MzQ1MDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29v
a2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU0LDYgKzM1MDMsOCBAQAogCQkJCTUx
MkY1ODhDMTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4gaW4gUmVzb3VyY2VzICovLAogCQkJCTUxMkUzNTMwMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTEyRTM1RjExMzBCNjM4QzAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovLAorCQkJCTUxQTlFMTAxMTMxNUNDREUwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNl
cyAqLywKKwkJCQk1MUE5RTEwNzEzMTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM4MzksNiArMzg5
MCwxMSBAQAogCQkJCTMzMzY3NjU3MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMTUy
OTc1MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzNGOUQ1QjkxMzEyRjFFRTAwMEQ2ODNGIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFBOUUwRkYxMzE1Q0NERTAwOUU3MDMx
IC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFB
OUUxMDUxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUE5RTEwQTEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxQTlFMTI4MTMxNUVE
MzUwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTUxQTlFMTJBMTMxNUVEMzUwMDlFNzAzMSAvKiBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NDkxMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMzA5MzQ0RjEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAkocmV2aXNpb24gNzk2MDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiV2Vi
RGF0YWJhc2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlTYW1wbGVyLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTU1Miw2
ICs1NTMsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyPigpKSB7CisgICAgICAgIFdlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXI+KCkpIHsKICAgICAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAg
cmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2Uv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3Rv
cmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luSGFzaC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXImIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXI6OnNoYXJlZCgpCit7CisgICAgc3RhdGljIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIm
IHNoYXJlZCA9ICpuZXcgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKKyAgICByZXR1cm4gc2hh
cmVkOworfQorCitXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyKCkKK3sKK30KKwordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sK
KyAgICBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXI6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKK3sK
KyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD4g
b3JpZ2luczsKKworICAgIC8vIEZJWE1FIDxyZGFyOi8vcHJvYmxlbS84NzYyMDk1PiBhbmQgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTcyOiBBY3R1YWxseSBnZXQg
dGhlIG9yaWdpbnMgZnJvbSBXZWJDb3JlIG9uY2UgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxODc4IGlzIHJlc29sdmVkLgorCisgICAgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNhcGFjaXR5KG9y
aWdpbnMuc2l6ZSgpKTsKKworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Vj
dXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNo
U2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD46Oml0ZXJhdG9y
IGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsKKyAgICAg
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKyAgICAgICAgCisgICAgICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhOworICAgICAgICBvcmlnaW5EYXRhLnByb3Rv
Y29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhvc3QgPSBvcmln
aW4tPmhvc3QoKTsKKyAgICAgICAgb3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisK
KyAgICAgICAgaWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbkRhdGEpOworICAgIH0K
KworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpEaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmln
aW5zKGlkZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbkRhdGEpCit7CisgICAgLy8gRklYTUUgPHJkYXI6Ly9wcm9ibGVtLzg3NjIw
OTU+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxNzI6IElt
cGxlbWVudCBvbmNlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg3
OCBpcyByZXNvbHZlZC4KK30KKwordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpkZWxl
dGVBbGxFbnRyaWVzKCkKK3sKKyAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODc2MjA5NT4g
YW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTE3MjogSW1wbGVt
ZW50IG9uY2UgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxODc4IGlz
IHJlc29sdmVkLgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFn
ZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJfaAorI2RlZmluZSBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKworY2xh
c3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcik7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlciYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXIoKTsKKyAgICAKKyAgICB2b2lkIGdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnModWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYpOworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcygpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0
b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyIHsKKyAgICB2b2lkIEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnModWludDY0X3QgY2FsbGJh
Y2tJRCkKKyAgICB2b2lkIERlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViS2l0OjpTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXMoKQor
fQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzk2MDApCisrKyBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNzEs
NiArMTM3MSwyMiBAQAogCQkJCTwvRmlsZT4KIAkJCTwvRmlsdGVyPgogICAgICAgICAgICAgPEZp
bHRlcgorICAgICAgICAgICAgICAgIE5hbWU9IktleVZhbHVlU3RvcmFnZSIKKyAgICAgICAgICAg
ICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQ
cm9jZXNzXEtleVZhbHVlU3RvcmFnZVxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlBy
b2Nlc3NcS2V5VmFsdWVTdG9yYWdlXFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nl
c3NcS2V5VmFsdWVTdG9yYWdlXFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4i
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisgICAgICAgICAgICA8L0ZpbHRlcj4KKyAgICAgICAgICAg
IDxGaWx0ZXIKICAgICAgICAgICAgICAgICBOYW1lPSJSZXNvdXJjZUNhY2hlIgogICAgICAgICAg
ICAgICAgID4KICAgICAgICAgICAgICAgICA8RmlsdGVyCkBAIC0yNTE1LDYgKzI1MzEsMTggQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXFdlYkxvYWRlckNsaWVudC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpA
QCAtMjc4NCw2ICsyODEyLDE0IEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xB
UElcQ1xXS0luc3BlY3Rvci5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CisgICAgICAgICAgICAg
ICAgICAgIDxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0tl
eVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxG
aWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0tleVZhbHVlU3Rv
cmFnZU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQogCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tOYXRpdmVFdmVudC5oIgogCQkJCQkJ
PgpAQCAtMzUzNCw2ICszNTcwLDIyIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2Vi
UGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgpJbmRleDogU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiA3OTYwMCkKKysrIFNvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBA
CiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJ
XEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lu
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5q
ZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVj
dGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJ
bmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lu
c1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
SW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5j
bHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQ
QyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQ
SVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9y
dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlv
bkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNh
dGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2llcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVv
dDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRl
XHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVh
ZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIK
IAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVX
T1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9
IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIgpJbmRleDog
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCShyZXZpc2lvbiA3OTYwMCkK
KysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDcgKzU1LDggQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3Nc
QVBJXENcV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tHZW9s
b2NhdGlvblBvc2l0aW9uLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktp
dDIiCi0gICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcY1xXS0luc3BlY3Rvci5oIiAi
JUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9k
ICIuLlxVSVByb2Nlc3NcQVBJXENcV0tJbnNwZWN0b3IuaCIgIiVDb25maWd1cmF0aW9uQnVpbGRE
aXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxD
XFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tOYXRp
dmVFdmVudC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tOYXZpZ2F0aW9uRGF0YS5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiICIlQ29uZmlndXJhdGlv
bkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCg==
</data>
<flag name="review"
          id="75571"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="75572"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85655</attachid>
            <date>2011-03-14 00:16:06 -0700</date>
            <delta_ts>2011-03-14 00:37:14 -0700</delta_ts>
            <desc>2nd Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5414</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMDA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDMtMTQgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDk1PiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTcyCisgICAgICAgIE5lZWQgV0syIEFQ
SSB0byB2aWV3L21hbmFnZSBvcmlnaW5zIHdpdGggTG9jYWxTdG9yYWdlCisKKyAgICAgICAgKiBz
dG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjppbml0aWFsaXplVHJhY2tlcik6IE1ha2Ugc3VyZSB0aGUgVGV4dEVuY29kaW5nIG1hcCBp
cyBpbml0aWFsaXplZCBvbiB0aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgICBiZWZvcmUgdGhlIFN0
b3JhZ2VUcmFja2VyIHRocmVhZCBjYW4gZG8gaXQgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkLgor
CiAyMDExLTAzLTEzICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uIGFuZCBEYXZpZCBMZXZpbiwgbGFuZGVkIGJ5IEJy
YWR5IEVpZHNvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
Y3BwCShyZXZpc2lvbiA4MTAwMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU1FM
aXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
dG9yYWdlVHJhY2tlckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUzLDYgKzU0LDkgQEAgdm9pZCBTdG9yYWdlVHJhY2tl
cjo6aW5pdGlhbGl6ZVRyYWNrZXIoYwogICAgIGlmICghc3RvcmFnZVRyYWNrZXIpCiAgICAgICAg
IHN0b3JhZ2VUcmFja2VyID0gbmV3IFN0b3JhZ2VUcmFja2VyKHN0b3JhZ2VQYXRoKTsKICAgICAK
KyAgICAvLyBNYWtlIHN1cmUgdGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0
aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBTdG9yYWdlVHJhY2tlciB0aHJlYWQgbWlnaHQgdHJ5IHRv
IGRvIGl0IHRoZXJlIGluc3RlYWQuCisgICAgVVRGOEVuY29kaW5nKCk7CisgICAgCiAgICAgU1FM
aXRlRmlsZVN5c3RlbTo6cmVnaXN0ZXJTUUxpdGVWRlMoKTsKICAgICBzdG9yYWdlVHJhY2tlci0+
c2V0SXNBY3RpdmUodHJ1ZSk7CiAgICAgc3RvcmFnZVRyYWNrZXItPm1fdGhyZWFkLT5zdGFydCgp
OyAgCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTAwNCkKKysrIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTAzLTE0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc2MjA5NT4gYW5kIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTE3MgorICAgICAgICBOZWVkIFdL
MiBBUEkgdG8gdmlldy9tYW5hZ2Ugb3JpZ2lucyB3aXRoIExvY2FsU3RvcmFnZQorCisgICAgICAg
IEhvb2t1cCB0aGUgZXhpc3RpbmcgQVBJIHN0dWJzIHRvIHRoZSBXZWJDb3JlIGltcGxlbWVudGF0
aW9uczoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlcjo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKwog
MjAxMS0wMy0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
S2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIuY3BwCShyZXZpc2lvbiA4MTAwMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFn
ZVRyYWNrZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU2LDIyICs1Nywy
MCBAQCB2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRpZFJlY2VpCiAKIHZvaWQgV2Vi
S2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyh1aW50NjRf
dCBjYWxsYmFja0lEKQogewotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Vj
dXJpdHlPcmlnaW5IYXNoPiBvcmlnaW5zOworICAgIFZlY3RvcjxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+ID4gY29yZU9yaWdpbnM7CiAKLSAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzg3NjIw
OTU+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxNzIgLSBB
Y3R1YWxseSBnZXQgdGhlIG9yaWdpbnMgZnJvbSBXZWJDb3JlIG9uY2UgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxODc4IGlzIHJlc29sdmVkLgorICAgIFN0b3JhZ2VU
cmFja2VyOjp0cmFja2VyKCkub3JpZ2lucyhjb3JlT3JpZ2lucyk7CiAKKyAgICBzaXplX3Qgc2l6
ZSA9IGNvcmVPcmlnaW5zLnNpemUoKTsKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBp
ZGVudGlmaWVyczsKLSAgICBpZGVudGlmaWVycy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXpl
KCkpOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShzaXplKTsKIAotICAgIEhhc2hT
ZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3Ig
ZW5kID0gb3JpZ2lucy5lbmQoKTsKLSAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4s
IFNlY3VyaXR5T3JpZ2luSGFzaD46Oml0ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7Ci0gICAg
Zm9yICg7IGkgIT0gZW5kOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBv
cmlnaW4gPSAqaTsKLSAgICAgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsgICAgICAgIAogICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YTsKLSAg
ICAgICAgb3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKLSAgICAgICAg
b3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7Ci0gICAgICAgIG9yaWdpbkRhdGEucG9y
dCA9IG9yaWdpbi0+cG9ydCgpOworICAgICAgICAKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2Nv
bCA9IGNvcmVPcmlnaW5zW2ldLT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhvc3Qg
PSBjb3JlT3JpZ2luc1tpXS0+aG9zdCgpOworICAgICAgICBvcmlnaW5EYXRhLnBvcnQgPSBjb3Jl
T3JpZ2luc1tpXS0+cG9ydCgpOwogCiAgICAgICAgIGlkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVu
ZChvcmlnaW5EYXRhKTsKICAgICB9CkBAIC04MSwxNCArODAsMTYgQEAgdm9pZCBXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyOjpnZXRLZXlWYQogCiB2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW5EYXRhKQogewotICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vODc2MjA5NT4gYW5kIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTE3MiAtIEltcGxlbWVudCBv
bmNlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg3OCBpcyByZXNv
bHZlZC4KLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4g
b3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmln
aW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAg
IHJldHVybjsKKworICAgIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlT3JpZ2luKG9y
aWdpbi5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6ZGVsZXRl
QWxsRW50cmllcygpCiB7Ci0gICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS84NzYyMDk1PiBh
bmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTcyIC0gSW1wbGVt
ZW50IG9uY2UgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxODc4IGlz
IHJlc29sdmVkLgotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgU3RvcmFnZVRyYWNrZXI6OnRy
YWNrZXIoKS5kZWxldGVBbGxPcmlnaW5zKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="77809"
          type_id="1"
          status="+"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="77810"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>