<?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>154733</bug_id>
          
          <creation_ts>2016-02-26 10:41:35 -0800</creation_ts>
          <short_desc>Add WTF::OptionSet and use it for the website data types enum</short_desc>
          <delta_ts>2016-02-26 11:49:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1168564</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-26 10:41:35 -0800</bug_when>
    <thetext>Add WTF::OptionSet and use it for the website data types enum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168572</commentid>
    <comment_count>1</comment_count>
      <attachid>272339</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-26 10:48:54 -0800</bug_when>
    <thetext>Created attachment 272339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168577</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 10:51:43 -0800</bug_when>
    <thetext>Attachment 272339 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h:63:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h:64:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:86:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:104:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp:153:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp:478:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp:698:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h:78:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:121:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:135:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:146:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebProcessProxy.cpp:724:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebProcessProxy.cpp:738:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebProcessProxy.cpp:751:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebProcessProxy.h:124:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebProcessProxy.h:125:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebProcessProxy.h:126:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h:52:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h:53:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h:54:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 24 in 32 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>1168603</commentid>
    <comment_count>3</comment_count>
      <attachid>272339</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-02-26 11:34:16 -0800</bug_when>
    <thetext>Comment on attachment 272339
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168605</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-02-26 11:38:43 -0800</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168610</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-26 11:49:32 -0800</bug_when>
    <thetext>Committed r197191: &lt;http://trac.webkit.org/changeset/197191&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272339</attachid>
            <date>2016-02-26 10:48:54 -0800</date>
            <delta_ts>2016-02-26 11:34:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154733-20160226104837.patch</filename>
            <type>text/plain</type>
            <size>101371</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDBmOWJkZjdjMGRmMzZlMmZiYTg4Yjg2
ZjU5MGI4M2U5NjI5NTYwYzMuLmQzM2YxYmEwYjg4ODhkMjdhZmRmMWQ3Y2FlNzg1NTJlNjZhNWVl
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDItMjYgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpPcHRpb25TZXQgYW5kIHVzZSBp
dCBmb3IgdGhlIHdlYnNpdGUgZGF0YSB0eXBlcyBlbnVtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ3MzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV1RGOjpPcHRpb25TZXQgd2hpY2ggbWFrZXMg
aXQgZWFzaWVyIHRvIHVzZSBzdHJvbmcgZW51bXMgYXMgZmxhZ3MuCisKKyAgICAgICAgKiBXVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRm9yd2FyZC5oOgorICAg
ICAgICAqIHd0Zi9PcHRpb25TZXQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmguCisgICAgICAgIChXVEY6Ok9wdGlvblNldDo6ZnJv
bVJhdyk6CisgICAgICAgIChXVEY6Ok9wdGlvblNldDo6T3B0aW9uU2V0KToKKyAgICAgICAgKFdU
Rjo6T3B0aW9uU2V0Ojp0b1Jhdyk6CisgICAgICAgIChXVEY6Ok9wdGlvblNldDo6Y29udGFpbnMp
OgorICAgICAgICAoV1RGOjpPcHRpb25TZXQ6Om9wZXJhdG9yfD0pOgorCiAyMDE2LTAyLTI2ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTk3MTY4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRjMTg4NDFiYjAzMTQxNDVm
ZjkzNjA1NDEyNjRkZTNmYjFjZTI2ODMuLmU2MjM4MWJmMGUxNzI5ZGU1YTE5ZDcxYzAzNjhkOTZi
YzI0MmU1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAxNi0wMi0yNiAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXVEY6Ok9wdGlv
blNldCBhbmQgdXNlIGl0IGZvciB0aGUgd2Vic2l0ZSBkYXRhIHR5cGVzIGVudW0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDczMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBwcmV0dHkg
bWVjaGFuaWNhbCBjaGFuZ2U6CisgICAgICAgIAorICAgICAgICBDb252ZXJ0IGFsbCB1c2VzIG9m
IHRoZSBXZWJzaXRlRGF0YVR5cGVzIGVudW0gdG8gV1RGOjpPcHRpb25TZXQuIFJlbmFtZSB0aGUg
V2Vic2l0ZURhdGFUeXBlcyBlbnVtIHRvCisgICAgICAgIFdlYnNpdGVEYXRhVHlwZSAoc2luY2Ug
aXQgb25seSByZXByZXNlbnRzIGEgc2luZ2xlIGRhdGEgdHlwZSksIGFuZCByZW5hbWUgaGVhZGVy
cy4gRW5jb2RlIGFuZCBkZWNvZGUgV1RGOjpPcHRpb25TZXQgcHJvcGVybHkuCisKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
RGF0YWJhc2VQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6RGF0
YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFi
YXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBEYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmZldGNoRGlza0NhY2hlRW50cmll
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxPcHRpb25TZXQ8VD4+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE9w
dGlvblNldDxUPj46OmRlY29kZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHk6CisgICAgICAgIChjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKToKKyAgICAgICAgKiBTaGFyZWQv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFUeXBlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFUeXBlcy5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChXS0FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAodG9XZWJzaXRlRGF0
YVR5cGVzKToKKyAgICAgICAgKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJDbGVhckNhY2hlRm9yT3Jp
Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMpOgorICAgICAg
ICAoV2ViS2l0Ojp0b1dLV2Vic2l0ZURhdGFUeXBlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0Rh
dGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFi
YXNlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6RGF0
YWJhc2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
RGF0YWJhc2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhUmVjb3JkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFS
ZWNvcmQ6OmFkZCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkOjphZGRDb29r
aWVIb3N0TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkOjphZGRQbHVn
aW5EYXRhSG9zdE5hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVJlY29yZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29tcHV0ZU5ldHdvcmtQcm9jZXNzQWNjZXNz
VHlwZUZvckRhdGFGZXRjaCk6CisgICAgICAgIChXZWJLaXQ6OmNvbXB1dGVXZWJQcm9jZXNzQWNj
ZXNzVHlwZUZvckRhdGFGZXRjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OmZldGNoRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OmNvbXB1dGVOZXR3b3JrUHJvY2Vzc0FjY2Vz
c1R5cGVGb3JEYXRhUmVtb3ZhbCk6CisgICAgICAgIChXZWJLaXQ6OmNvbXB1dGVXZWJQcm9jZXNz
QWNjZXNzVHlwZUZvckRhdGFSZW1vdmFsKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6cmVtb3ZlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMTYtMDItMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDYWNoZTo6dHJhdmVyc2Ugc2hvdWxkIHBhc3MgdGhlIHJlY29yZCBpbmZvIHRvIGl0cyB0
cmF2ZXJzYWwgaGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOWFjNTYwZWJiODJlYzU0ZDNjMWFkNjYzMmQzMzBhMzIzY2RjOGJkMy4uOTFlNzE3ZjMz
OTExZWIzM2VlNzFkODZlMGU2ODJlM2Y3NGYxMzA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MSw2ICs4MSw3IEBACiAJCTFBMUQ4QjlDMTczMTg2Q0Uw
MDE0MURBNCAvKiBGdW5jdGlvbkRpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMUQ4QjlCMTczMTg2Q0UwMDE0MURBNCAvKiBGdW5jdGlv
bkRpc3BhdGNoZXIuaCAqLzsgfTsKIAkJMUExRDhCOUUxNzMxODc5ODAwMTQxREE0IC8qIEZ1bmN0
aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTFEOEI5RDE3MzE4Nzk4MDAxNDFEQTQgLyogRnVuY3Rpb25EaXNwYXRjaGVyLmNw
cCAqLzsgfTsKIAkJMUEyMzNDN0QxN0RBQTZFMzAwQTkzQUNGIC8qIE1hbGxvY1B0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMzNDN0MxN0RBQTZF
MzAwQTkzQUNGIC8qIE1hbGxvY1B0ci5oICovOyB9OworCQkxQTQ2NTYxOTFDN0ZDNjhFMDBGNTky
MEYgLyogT3B0aW9uU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTQ2NTYxODFDN0ZDNjhFMDBGNTkyMEYgLyogT3B0aW9uU2V0LmggKi87IH07CiAJ
CTFBNkJCNzY5MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkJCNzY4MTYyRjMwMDUwMEREMTZE
QiAvKiBTdHJlYW1CdWZmZXIuaCAqLzsgfTsKIAkJMUE2RUIxRTAxODdEMEJEMzAwMzAxMjZGIC8q
IFN0cmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBNkVCMURGMTg3RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggKi87IH07CiAJCTFB
OTQ0RjQ3MUMzRDg4MTQwMDVCRDI4QyAvKiBCbG9ja1B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE5NDRGNDYxQzNEODgxNDAwNUJEMjhDIC8qIEJs
b2NrUHRyLmggKi87IH07CkBAIC0zODksNiArMzkwLDcgQEAKIAkJMUExRDhCOUQxNzMxODc5ODAw
MTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGdW5jdGlvbkRpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTIzM0M3QzE3REFBNkUzMDBBOTNBQ0YgLyogTWFsbG9jUHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hbGxvY1B0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTNGNkJFNjE3NEFEQTIxMDBCMkVFQTcgLyogTmV2ZXJEZXN0cm95ZWQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTmV2ZXJEZXN0cm95ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUE0NjU2MTgxQzdGQzY4RTAwRjU5MjBGIC8qIE9wdGlvblNldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25TZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUE2QkI3NjgxNjJGMzAwNTAwREQxNkRCIC8qIFN0cmVhbUJ1ZmZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1CdWZmZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RUIxREYxODdEMEJEMzAwMzAxMjZGIC8qIFN0cmluZ1Zp
ZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nVmlldy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTk0NEY0NjFDM0Q4ODE0MDA1QkQyOEMgLyogQmxv
Y2tQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tQdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg1MCw2ICs4NTIsNyBAQAogCQkJCUE4QTQ3MkQ2
MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmggKi8sCiAJCQkJN0UyOUMzM0QxNUZG
RDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi8sCiAJCQkJMUFGREU2NTIxOTUz
QjIzRDAwQzQ4RkZBIC8qIE9wdGlvbmFsLmggKi8sCisJCQkJMUE0NjU2MTgxQzdGQzY4RTAwRjU5
MjBGIC8qIE9wdGlvblNldC5oICovLAogCQkJCTBGOTQ5NTgzMUM1NzFDQzkwMDQxM0E0OCAvKiBP
cmRlck1ha2VyLmggKi8sCiAJCQkJQThBNDcyRDcxNTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2Nh
dG9yLmggKi8sCiAJCQkJQThBNDcyRDgxNTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9z
aXguY3BwICovLApAQCAtMTExNyw3ICsxMTIwLDYgQEAKIAkJCQlBOEE0NzM4NTE1MUE4MjVCMDA0
MTIzRkYgLyogQVNDSUlDVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MzQxNTFBODI1
QjAwNDEyM0ZGIC8qIEFTQ0lJRmFzdFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3Mzg3
MTUxQTgyNUIwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjM1
MDE2NDFCQjI1OEQ1MDBGMEEyQTMgLyogV2Vha1JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThBNDczODgxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDM2MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3NDM3MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmdIYXNoLmggaW4g
SGVhZGVycyAqLywKQEAgLTExMjcsMTYgKzExMjksMTYgQEAKIAkJCQkwRkIxNEUxOTE4MEZBMjE4
MDA5QjZCNEQgLyogQmFnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxNEUxQjE4MTBFMURDMDA5
QjZCNEQgLyogQmFnVG9IYXNoTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MTM0MDEzOTE1QjA5
MkZEMDAxRkYwQjggLyogQmFzZTY0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVCM0REMTFCQjcz
NjZCMDA5RDdBQUQgLyogUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDczQTkxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEE0NzNBQjE1MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVtLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkZGMTlERDFCQjMzNEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ1MjE1MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2Vt
YXBob3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM4QTE1MUE4MjVCMDA0MTIzRkYgLyog
Qml0bWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM4QzE1MUE4MjVCMDA0MTIzRkYgLyog
Qml0VmVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTA5OEIwMjFDMTZBNEY5MDAwODc3OTcg
LyogU2VjdXJpdHlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBOTQ0RjQ3MUMzRDg4MTQwMDVC
RDI4QyAvKiBCbG9ja1B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOEUxNTFBODI1QjAw
NDEyM0ZGIC8qIEJsb2NrU3RhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3MzhGMTUxQTgy
NUIwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5MzI3NEIx
QzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0NTcwNDUxQkU4
MzQ0MTAwNjJBNjI5IC8qIEJ1YmJsZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3Mzkx
MTUxQTgyNUIwMDQxMjNGRiAvKiBCdW1wUG9pbnRlckFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRUI5NUUxRjAxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDczQUQxNTFBODI1QjAwNDEyM0ZGIC8qIGNhY2hlZC1wb3dlcnMuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTE2MiwxNiArMTE2NCwxNSBAQAogCQkJCUE4QTQ3M0E1MTUxQTgyNUIw
MDQxMjNGRiAvKiBEZXF1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTYxNTFBODI1QjAw
NDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0FGMTUx
QTgyNUIwMDQxMjNGRiAvKiBkaXktZnAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDU3MDQzMUJF
NUI1OEYwMDYyQTYyOSAvKiBEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNC
MTE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4QTQ3M0IyMTUxQTgyNUIwMDQxMjNGRiAvKiBkb3VibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEE0NzNCQjE1MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDczQzExNTFBODI1QjAwNDEyM0ZGIC8qIEV4cG9ydE1hY3Jvcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMUE5NDRGNDcxQzNEODgxNDAwNUJEMjhDIC8qIEJsb2NrUHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNCNDE1MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9h
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4MUFDNTE1NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJp
dFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQzQxNTFBODI1QjAwNDEyM0ZGIC8q
IEZhc3RNYWxsb2MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNzI1Q0FDMUM1MDQ2MTYwMEFEOTQz
QSAvKiBSYW5nZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjM4RkQ3QkQxNjg5NTNFODAwNjVD
OTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlEMzM2MTE2NURC
QTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzNCNjE1MUE4MjVCMDA0MTIzRkYgLyogZml4ZWQtZHRvYS5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MTgwLDIxICsxMTgxLDIxIEBACiAJCQkJQThBNDczQzkxNTFBODI1QjAwNDEyM0ZGIC8qIEZ1bmN0
aW9uYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMUQ4QjlDMTczMTg2Q0UwMDE0MURBNCAvKiBG
dW5jdGlvbkRpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0NBMTUxQTgyNUIw
MDQxMjNGRiAvKiBHZXRQdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NEFGMUJEODI1MzEw
MDgwRkY3NCAvKiBHcmFwaE5vZGVXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkMwNTM4
NTQxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzNEMzE1MUE4MjVCMDA0MTIzRkYgLyogSGFzaENvdW50ZWRTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3NDJEMTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3M0Q0MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoRnVuY3Rpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNENTE1MUE4MjVCMDA0MTIzRkYgLyogSGFzaEl0ZXJh
dG9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRDYxNTFBODI1QjAwNDEyM0ZGIC8qIEhh
c2hNYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUIzRENGMUJCNUQ2ODQwMDlEN0FBRCAvKiBT
aGFyZWRUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNENzE1MUE4MjVCMDA0MTIzRkYg
LyogSGFzaFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRDkxNTFBODI1QjAwNDEyM0ZG
IC8qIEhhc2hUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczREExNTFBODI1QjAwNDEy
M0ZGIC8qIEhhc2hUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0RCMTUxQTgyNUIw
MDQxMjNGRiAvKiBIZXhOdW1iZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTI2ODRENDM2MUMwMDBE
NDAwMDgxRDY2MyAvKiBJbmRleFNwYXJzZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDcz
REMxNTFBODI1QjAwNDEyM0ZGIC8qIElubGluZUFTTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcw
REEwODQxNzk5RjA0RDAwNTI5QTlCIC8qIEluc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovLAotCQkJCTBGQjMxN0M0MUM0ODgwMDEwMDdFMzk1QSAvKiBTeXN0ZW1UcmFj
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0REN0ZGODE4NkQyOTFFMDA3NDMzQ0QgLyogSXRl
cmF0b3JBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NERDdGRkExODZEMkE1NDAwNzQz
M0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQUM5MUE4MTg5NDJG
QzQwMDI0NDkzOSAvKiBMQ2hhci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjA4LDcgKzEyMDksNiBA
QAogCQkJCUE4QTQ3M0VBMTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0VCMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdlUXVldWUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGOTQ5NTg0MUM1NzFDQzkwMDQxM0E0OCAvKiBPcmRlck1ha2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNFRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUUxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFB
bGxvY2F0b3JIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODIyNTMxMUIyQTFFNUIwMEJB
NjhGRCAvKiBOYWtlZFB0ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjE4LDI3ICsxMjE4LDMxIEBA
CiAJCQkJQThBNDczRjUxNTFBODI1QjAwNDEyM0ZGIC8qIE51bWJlck9mQ29yZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJh
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NTMxOTUzQjIzRDAwQzQ4RkZBIC8qIE9wdGlv
bmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTQ2NTYxOTFDN0ZDNjhFMDBGNTkyMEYgLyogT3B0
aW9uU2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjk0OTU4NDFDNTcxQ0M5MDA0MTNBNDggLyog
T3JkZXJNYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRjYxNTFBODI1QjAwNDEyM0ZG
IC8qIE9TQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0JCQTA3NDE5QkI3RkRDMDBC
QkYwMjUgLyogT1NPYmplY3RQdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDU3MDQzMUJFNUI1
OEYwMDYyQTYyOSAvKiBEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNGQTE1
MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0ZGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThBNDc0MDMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VCbG9jay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MDQxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRjE5REQxQkIzMzRFQjAwODg2RDkxIC8qIFBh
cmFsbGVsSGVscGVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MDUxNTFBODI1QjAw
NDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MDgxNTFB
ODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVCM0REMTFCQjczNjZCMDA5RDdBQUQgLyogUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4MjRBNjkxQjc0NDNBMDAwMkUzNDVEIC8qIFBhcmtpbmdM
b3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDBDMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNz
UmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODc2REJEODE1MTgxNkU1MDBEQURCOTUgLyog
UGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjg2MDk1MUJDQ0JENzQwMDQ1MTI3RiAv
KiBQb2ludGVyQ29tcGFyaXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RDMzNjMxNjVEQkE3
MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0NDg4MzE2
RkU5RkUxMDA4NDRCRTkgLyogUHJvY2Vzc0lELmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDNGNjEy
MDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0
MTUxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThBNDc0MTYxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlclNlZWQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNzI1Q0FDMUM1MDQ2MTYwMEFEOTQzQSAvKiBSYW5nZVNldC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY4NzEwNUExNjY0M0YxOTAwOTBCMEFEIC8qIFJhd1BvaW50ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3NDE3MTUxQTgyNUIwMDQxMjNGRiAvKiBSZWRCbGFja1RyZWUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTU1MzA3MUNBMUM0MDQyNzIwMDM4NDg5OCAvKiBUaW55TFJV
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2Mjk5QjZFMTdBOUU1QjgwMEFERUJFNSAvKiBS
ZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDE4MTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZD
b3VudGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQxOTE1MUE4MjVCMDA0MTIzRkYgLyog
UmVmQ291bnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywKQEAgLTEyNDgsMjkgKzEyNTIsMjkgQEAK
IAkJCQlBOEE0NzQxRTE1MUE4MjVCMDA0MTIzRkYgLyogUmV0YWluUHRyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyQ0RFRDBGNDE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQ2OTQxOTIxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTUwOThCMDAxQzE2OUUwNzAwMDg3Nzk3IC8qIFNhbmRib3hTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0RjNCMEY3MTVFNDVFNDYwMDIxMDA2OSAvKiBTYXR1cmF0ZWRB
cml0aG1ldGljLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYg
LyogU2NoZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODRCMTFCREFDRDM5MDA4
MEZGNzQgLyogU2NvcGVkTGFtYmRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTA5OEIwMjFDMTZB
NEY5MDAwODc3OTcgLyogU2VjdXJpdHlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDFG
MTUxQTgyNUIwMDQxMjNGRiAvKiBTZWdtZW50ZWRWZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDIwMTUxQTgyNUIwMDQxMjNGRiAvKiBTZW50aW5lbExpbmtlZExpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3NDIyMTUxQTgyNUIwMDQxMjNGRiAvKiBTSEExLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkVCM0RDRjFCQjVENjg0MDA5RDdBQUQgLyogU2hhcmVkVGFzay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThBNDc0MjMxNTFBODI1QjAwNDEyM0ZGIC8qIFNpbXBsZVN0YXRzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkY4NjA5NTFCQ0NCRDc0MDA0NTEyN0YgLyogUG9pbnRlckNv
bXBhcmlzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDI0MTUxQTgyNUIwMDQxMjNGRiAv
KiBTaW5nbHlMaW5rZWRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQ4NzQ1MzE3QTBCREFF
MDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVySGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0
MjYxNTFBODI1QjAwNDEyM0ZGIC8qIFNwZWN0cnVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQyODE1MUE4MjVCMDA0MTIzRkYgLyogU3RhY2tCb3VuZHMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTI2ODRENDM2MUMwMDBENDAwMDgxRDY2MyAvKiBJbmRleFNwYXJzZVNldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkVEQUNEM0UxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3NDI5MTUxQTgyNUIwMDQxMjNGRiAvKiBTdGF0aWNDb25zdHJ1Y3Rv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDJBMTUxQTgyNUIwMDQxMjNGRiAvKiBTdGRM
aWJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDU3MDQ1MUJFODM0NDEwMDYyQTYyOSAv
KiBCdWJibGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIx
NUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZCQjc2OTE2MkYzMDA1MDBE
RDE2REIgLyogU3RyZWFtQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzQjE1MUE4
MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQz
RDE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDMwQjQ3ODkxQUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDc0M0UxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjkzMjc0QjFDMTdGNEI3MDBDRjY1NjQgLyogQm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEE0NzQyQzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0cmFzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzRjE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFz
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0ODc0NTQxN0EwQkRBRTAwRkEwNENCIC8qIFN0cmlu
Z0hhc2hEdW1wQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjgxLDMwICsxMjg1LDMwIEBA
CiAJCQkJQThBNDczQjgxNTFBODI1QjAwNDEyM0ZGIC8qIHN0cnRvZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzBFQ0E2MEUxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbEltcGwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTcwQTk5M0ZGMUFENzE1MTMwMEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZCMzE3QzQxQzQ4ODAwMTAwN0UzOTVBIC8qIFN5c3RlbVRyYWNp
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1w
b3JhcnlDaGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ0MTUxQTgyNUIwMDQxMjNG
RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ3MTUxQTgyNUIw
MDQxMjNGRiAvKiBUaHJlYWRGdW5jdGlvbkludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDQ5MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0QjE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFk
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0RDE1MUE4MjVCMDA0MTIzRkYgLyogVGhy
ZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg0QjExQkRBQ0QzOTAw
ODBGRjc0IC8qIFNjb3BlZExhbWJkYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NTQxNTFB
ODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQ1NTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkU3BlY2lmaWMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU1MzA3MUNBMUM0MDQyNzIwMDM4NDg5OCAvKiBUaW55TFJVQ2FjaGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRUQ2N0I2MUIyMkQ0RDgwMDY2Q0UxNSAvKiBUaW55UHRyU2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNDlFRjE2MzE2QkJGRTBEMDAwQTQzMzEgLyogVHJpU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzRkJBOTMyMTlERjQ1OTcwMEYzMEFEQiAvKiBUeXBlQ2Fz
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkRFNjQ4MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBl
Q2FzdHNDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NkQxNTFBODI1QjAwNDEyM0ZGIC8q
IFVuaW9uRmluZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQ0E2MEYxQjAyNDI2ODAwNDQ5NzM5
IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODRBRjFCRDgy
NTMxMDA4MEZGNzQgLyogR3JhcGhOb2RlV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3NDZBMTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzNCOTE1MUE4MjVCMDA0MTIzRkYgLyogdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
NDdEMTUxQTgyNUIwMDQxMjNGRiAvKiBWYWx1ZUNoZWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQ3RTE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQ3RjE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yVHJhaXRzLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBNTA5OEIwMDFDMTY5RTA3MDAwODc3OTcgLyogU2FuZGJveFNQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0ODAxNTFBODI1QjAwNDEyM0ZGIC8qIFZNVGFncy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTc0Q0ZDOEUxNkE0RjMyNzAwNkQ1NDA0IC8qIFdlYWtQdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGMzUwMTY0MUJCMjU4RDUwMEYwQTJBMyAvKiBXZWFrUmFuZG9tLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxRkE0N0M4QjE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNDQ3OUQxQjdBQUEwMzAwOTQ5OEVCIC8qIFdvcmRMb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEEwQUQzQTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1
ZXVlLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NTUsNiArMTQ1OSw3IEBACiAJCQkJQThBNDczRjcx
NTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczRjkxNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3NDAyMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQmxvY2suY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVsSGVs
cGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0NUQg
LyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM2MjE2NURCQTczMDA1
QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYxMUYxNTY1
RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNDYzLDcgKzE0
NjgsNiBAQAogCQkJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BU
aW1lckNGLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRkYxOURDMUJCMzM0RUIwMDg4NkQ5MSAv
KiBQYXJhbGxlbEhlbHBlclBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2OTQxOTkxNkVB
QjA0MTAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0
Njk0MTk3MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQyMTE1MUE4MjVCMDA0MTIzRkYgLyogU0hBMS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3Rm
L0ZvcndhcmQuaAppbmRleCA1NDM0Mjg0MThlZmIyOGIwOTNiNjYzZmYxNGUxMWYxMzhjOWZhMGUw
Li4wNTFjZDA0MmFlNGRmZDJjZjI5NTkzOWJmYTI0NDM2MjBkYzFjMzM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBA
IC0yOCwxMCArMjgsMTEgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBGdW5jdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRlc3Ry
b3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwordGVtcGxh
dGU8dHlwZW5hbWUgVD4gY2xhc3MgT3B0aW9uU2V0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xh
c3MgT3B0aW9uYWw7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYXNzUmVmUHRyOwotdGVt
cGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xh
c3MgUmVmOwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmUHRyOwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgU3RyaW5nQnVmZmVyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNh
cGFjaXR5PiBjbGFzcyBWZWN0b3I7CkBAIC02Myw2ICs2NCw3IEBAIHVzaW5nIFdURjo6RnVuY3Rp
b247CiB1c2luZyBXVEY6OkZ1bmN0aW9uRGlzcGF0Y2hlcjsKIHVzaW5nIFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOwogdXNpbmcgV1RGOjpOZXZlckRlc3Ryb3llZDsKK3VzaW5nIFdURjo6T3B0aW9u
U2V0OwogdXNpbmcgV1RGOjpPcHRpb25hbDsKIHVzaW5nIFdURjo6T3JkaW5hbE51bWJlcjsKIHVz
aW5nIFdURjo6UGFzc1JlZlB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09wdGlvblNl
dC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJkYmM2ODA0YjAx
MGZiMDI4ZmJmODY5MTI5ZWU5NWNiMWNlNjNjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL09wdGlvblNldC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE9wdGlvblNldF9oCisjZGVmaW5lIE9wdGlvblNldF9oCisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0
cz4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE9wdGlv
blNldCB7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2VudW08VD46OnZhbHVlLCAiVCBpcyBu
b3QgYW4gZW51bSB0eXBlIik7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Om1ha2VfdW5zaWdu
ZWQ8dHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8VD46OnR5cGU+Ojp0eXBlIFN0b3JhZ2VU
eXBlOworCitwdWJsaWM6CisgICAgc3RhdGljIE9wdGlvblNldCBmcm9tUmF3KFN0b3JhZ2VUeXBl
IHN0b3JhZ2VUeXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQ+KHN0b3Jh
Z2VUeXBlKTsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0KCkKKyAgICAgICAgOiBt
X3N0b3JhZ2UoMCkKKyAgICB7CisgICAgfQorCisgICAgY29uc3RleHByIE9wdGlvblNldChUIHQp
CisgICAgICAgIDogbV9zdG9yYWdlKHN0YXRpY19jYXN0PFN0b3JhZ2VUeXBlPih0KSkKKyAgICB7
CisgICAgfQorCisgICAgY29uc3RleHByIFN0b3JhZ2VUeXBlIHRvUmF3KCkgY29uc3QgeyByZXR1
cm4gbV9zdG9yYWdlOyB9CisKKyAgICBjb25zdGV4cHIgYm9vbCBjb250YWlucyhPcHRpb25TZXQg
b3B0aW9uU2V0KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc3RvcmFnZSAmIG9wdGlv
blNldC5tX3N0b3JhZ2U7CisgICAgfQorCisgICAgZnJpZW5kIE9wdGlvblNldCYgb3BlcmF0b3J8
PShPcHRpb25TZXQmIGxocywgT3B0aW9uU2V0IHJocykKKyAgICB7CisgICAgICAgIGxocy5tX3N0
b3JhZ2UgfD0gcmhzLm1fc3RvcmFnZTsKKworICAgICAgICByZXR1cm4gbGhzOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBTdG9yYWdlVHlwZSBtX3N0b3JhZ2U7Cit9OworCit9CisKK3VzaW5nIFdU
Rjo6T3B0aW9uU2V0OworCisjZW5kaWYgLy8gT3B0aW9uU2V0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggZTI2NzEzMGU4
NTg4YzdhNDNkNGI4ZTg0MjZhMDc2YTU4MTY2NjVhMi4uZjZlYmZkYzNjZmZlZGJiZGEwNjUxNjAx
OWY3ZTlhYmZmNDYxZjc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIERhdGFiYXNl
UHJvY2Vzczo6Y3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKICNlbmRpZgog
fQogCi12b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQsIHVp
bnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIERhdGFi
YXNlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAg
c3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+IHsKICAgICAgICAgZXhwbGljaXQgQ2FsbGJhY2tBZ2dy
ZWdhdG9yKHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRl
RGF0YShTZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVpbgogICAgIH0pKTsK
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVz
ICYgV2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzKSB7CisgICAgaWYgKHdlYnNpdGVE
YXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBQaWNrIHRoZSByaWdodCBkYXRhYmFzZSBzdG9yZSBiYXNlZCBv
biB0aGUgc2Vzc2lvbiBJRC4KICAgICAgICAgcG9zdERhdGFiYXNlVGFzayhzdGQ6Om1ha2VfdW5p
cXVlPENyb3NzVGhyZWFkVGFzaz4oW2NhbGxiYWNrQWdncmVnYXRvciwgd2Vic2l0ZURhdGFUeXBl
cywgdGhpc10gewogCkBAIC0yMjgsMTQgKzIyOCwxNCBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6
ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVp
bgogCiAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrQWdncmVn
YXRvciwgc2VjdXJpdHlPcmlnaW5zXSB7CiAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRv
JiBzZWN1cml0eU9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykKLSAgICAgICAgICAgICAgICAgICAg
Y2FsbGJhY2tBZ2dyZWdhdG9yLT5tX3dlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kKFdlYnNpdGVE
YXRhOjpFbnRyeSB7IHNlY3VyaXR5T3JpZ2luLCBXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRh
YmFzZXMgfSk7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJz
aXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBzZWN1cml0eU9yaWdp
biwgV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMgfSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSkpOwogICAgIH0KICNlbmRpZgogfQogCi12b2lkIERhdGFiYXNlUHJvY2Vz
czo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRl
RGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVk
U2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGVsZXRl
V2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgc3RydWN0IENhbGxi
YWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxsYmFj
a0FnZ3JlZ2F0b3I+IHsKICAgICAgICAgZXhwbGljaXQgQ2FsbGJhY2tBZ2dyZWdhdG9yKHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpCkBAIC0yNTgsNyArMjU4LDcgQEAg
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25J
RCwgdWludDY0X3Qgd2Vic2l0ZURhdGEKICAgICB9KSk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLSAgICBpZiAod2Vic2l0ZURhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZUluZGV4
ZWREQkRhdGFiYXNlcykgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0YWJhc2VzKSkgewogICAgICAgICBwb3N0RGF0YWJhc2VU
YXNrKHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNrPihbdGhpcywgY2FsbGJhY2tBZ2dy
ZWdhdG9yLCBtb2RpZmllZFNpbmNlXSB7CiAKICAgICAgICAgICAgIGRlbGV0ZUluZGV4ZWREYXRh
YmFzZUVudHJpZXNNb2RpZmllZFNpbmNlKG1vZGlmaWVkU2luY2UpOwpAQCAtMjY4LDcgKzI2OCw3
IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNz
aW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhCiAjZW5kaWYKIH0KIAotdm9pZCBEYXRhYmFzZVBy
b2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIHVp
bnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+
JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBEYXRhYmFz
ZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQogewogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgZmluYWwgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CiAgICAgICAgIGV4cGxp
Y2l0IENhbGxiYWNrQWdncmVnYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25I
YW5kbGVyKQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVX
ZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3CiAgICAg
fSkpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgaWYgKHdlYnNpdGVEYXRh
VHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMpIHsKKyAgICBpZiAod2Vi
c2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNl
cykpIHsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IHNl
Y3VyaXR5T3JpZ2luczsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzZWN1cml0eU9yaWdpbkRh
dGEgOiBzZWN1cml0eU9yaWdpbkRhdGFzKQogICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW5zLmFw
cGVuZChzZWN1cml0eU9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKaW5kZXggZDg3OTY2Yzky
MzY1MGY1YjYwODkzMjdlMjM3OTdhZDVmYmZlYzE1NS4uZjlhNTlkM2JiOThkZDFkODNkODMwZDkx
NmU0MzkwNjBmYzMxNGI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuaApAQCAtNDIsNyArNDIsNyBAQCBzdHJ1Y3QgU2VjdXJpdHlPcmln
aW5EYXRhOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjsKLQorZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgRGF0YWJh
c2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBEYXRhYmFzZVByb2Nlc3MgOiBw
dWJsaWMgQ2hpbGRQcm9jZXNzIHsKQEAgLTg3LDkgKzg3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGluaXRpYWxpemVEYXRhYmFzZVByb2Nlc3MoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CiAgICAgdm9pZCBjcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIHVp
bnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0
YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IGluZGV4ZWREYXRhYmFzZU9yaWdp
bnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFz
ZVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGJmNGU4OGZjNGJjMjc3ZWYyYTRiMWFlYjQ3
NjM0MmE5NWRjYjA2NGYuLjRjYjlkYTBiYzFkMjRmZDdkMWFiZmRkNDYxNWQ3ZDlhNzYyYTgyMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjksOSArMjksOSBAQCBtZXNzYWdlcyAtPiBEYXRh
YmFzZVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24g
Zm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKICAgICBDcmVhdGVEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogCi0gICAgRmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQotICAgIERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gb3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBGZXRjaFdlYnNpdGVEYXRh
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxl
dGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0
ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkK
KyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCB1aW50NjRfdCBj
YWxsYmFja0lEKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
NThjYjE2OTMxYzk4YzZjNDYzMGY2ZjM3NWY5MTgzNWVlMzI0N2U1MC4uMTg2MmE3N2EwZGQ4MmIz
NDkyZmUxMWZhODJjMGMzODk1ZjA2NjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlw
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRE5TLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgpAQCAtNTQs
NiArNTUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMjkwLDcgKzI5Miw3
IEBAIHN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhTZXNzaW9uSUQgc2Vzc2lvbklE
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFZlY3RvCiAgICAgICAgICAgICAgICAgVmVjdG9yPFdlYnNp
dGVEYXRhOjpFbnRyeT4gZW50cmllczsKIAogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgb3Jp
Z2luIDogKm9yaWdpbnMpCi0gICAgICAgICAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKFdlYnNp
dGVEYXRhOjpFbnRyeSB7IG9yaWdpbiwgV2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlIH0pOworICAg
ICAgICAgICAgICAgICAgICBlbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBvcmln
aW4sIFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlIH0pOwogCiAgICAgICAgICAgICAgICAgZGVs
ZXRlIG9yaWdpbnM7CiAKQEAgLTMxMiw3ICszMTQsNyBAQCBzdGF0aWMgdm9pZCBmZXRjaERpc2tD
YWNoZUVudHJpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0
bwogCiAjaWYgVVNFKENGVVJMQ0FDSEUpCiAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBOZXR3b3Jr
UHJvY2Vzczo6Y2ZVUkxDYWNoZU9yaWdpbnMoKSkKLSAgICAgICAgZW50cmllcy5hcHBlbmQoV2Vi
c2l0ZURhdGE6OkVudHJ5IHsgV1RGTW92ZShvcmlnaW4pLCBXZWJzaXRlRGF0YVR5cGVEaXNrQ2Fj
aGUgfSk7CisgICAgICAgIGVudHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IFdURk1v
dmUob3JpZ2luKSwgV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUgfSk7CiAjZW5kaWYKIAogICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIsIGVudHJpZXNdIHsK
QEAgLTMyMCw3ICszMjIsNyBAQCBzdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoU2Vz
c2lvbklEIHNlc3Npb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0bwogICAgIH0pOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9u
SUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiB7CiAgICAgc3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewogICAgICAgICBleHBsaWNpdCBDYWxsYmFj
a0FnZ3JlZ2F0b3Ioc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+IGNvbXBsZXRpb25I
YW5kbGVyKQpAQCAtMzQ4LDI4ICszNTAsMjggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hX
ZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVQKICAg
ICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3NQcm94eTo6RGlkRmV0Y2hXZWJzaXRlRGF0YShjYWxsYmFja0lELCB3ZWJzaXRlRGF0YSks
IDApOwogICAgIH0pKTsKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFU
eXBlQ29va2llcykgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVE
YXRhVHlwZTo6Q29va2llcykpIHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiA9IFNlc3Npb25UcmFja2VyOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAg
ICAgICAgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY2Fs
bGJhY2tBZ2dyZWdhdG9yLT5tX3dlYnNpdGVEYXRhLmhvc3ROYW1lc1dpdGhDb29raWVzKTsKICAg
ICB9CiAKLSAgICBpZiAod2Vic2l0ZURhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZURpc2tDYWNo
ZSkgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
RGlza0NhY2hlKSkgewogICAgICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbklELCBb
Y2FsbGJhY2tBZ2dyZWdhdG9yXShWZWN0b3I8V2Vic2l0ZURhdGE6OkVudHJ5PiBlbnRyaWVzKSB7
CiAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fd2Vic2l0ZURhdGEuZW50cmllcy5h
cHBlbmRWZWN0b3IoZW50cmllcyk7CiAgICAgICAgIH0pOwogICAgIH0KIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3Qgd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6
dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBl
SFNUU0NhY2hlKSB7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURh
dGFUeXBlOjpIU1RTQ2FjaGUpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNl
c3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAg
ICAgICAgIGNsZWFySFNUU0NhY2hlKCpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIG1vZGlmaWVkU2lu
Y2UpOwogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMgJiBXZWJzaXRl
RGF0YVR5cGVDb29raWVzKSB7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vi
c2l0ZURhdGFUeXBlOjpDb29raWVzKSkgewogICAgICAgICBpZiAoYXV0byogbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAg
ICAgICAgICAgICBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZSgqbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLCBtb2RpZmllZFNpbmNlKTsKICAgICB9CkBAIC0zNzgsNyArMzgwLDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgdWlu
dDY0X3Qgd2Vic2l0ZURhdGEKICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGEoY2Fs
bGJhY2tJRCksIDApOwogICAgIH07CiAKLSAgICBpZiAoKHdlYnNpdGVEYXRhVHlwZXMgJiBXZWJz
aXRlRGF0YVR5cGVEaXNrQ2FjaGUpICYmICFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgeworICAg
IGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hl
KSAmJiAhc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgY2xlYXJEaXNrQ2FjaGUo
bW9kaWZpZWRTaW5jZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtNDI3LDkgKzQyOSw5IEBAIHN0YXRpYyB2b2lkIGNsZWFyRGlza0NhY2hl
RW50cmllcyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgc3RkCiAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNl
c3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29v
a2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5h
bWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYg
V2Vic2l0ZURhdGFUeXBlQ29va2llcykgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRh
aW5zKFdlYnNpdGVEYXRhVHlwZTo6Q29va2llcykpIHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpKQogICAgICAgICAgICAgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcygqbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLCBjb29raWVIb3N0TmFtZXMpOwogICAgIH0KQEAgLTQzOCw3ICs0NDAsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklE
IHNlc3Npb25JRCwgdWludDY0X3QgdwogICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWREZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoY2FsbGJhY2tJRCksIDApOwogICAgIH07CiAKLSAgICBpZiAoKHdlYnNpdGVE
YXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUpICYmICFzZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSkgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRh
VHlwZTo6RGlza0NhY2hlKSAmJiAhc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAg
Y2xlYXJEaXNrQ2FjaGVFbnRyaWVzKG9yaWdpbnMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGEwOWMzNGVhY2E4ZWEwZWU5NmIwNTc2NmU0OTBk
YzQ3ZjE0MTAwMGYuLjVkYzBlNGNhNDg3NzE0MmIzMDI2YmI3NGE1Mjc0MmYwYjljYzU2ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAt
NTQsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uTWFu
YWdlcjsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgTmV0d29y
a1Byb2Nlc3NTdXBwbGVtZW50OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNz
IDogcHVibGljIENoaWxkUHJvY2VzcywgcHJpdmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCB7
CkBAIC0xNTAsOSArMTUxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2b2lkIGRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIGZldGNoV2Vi
c2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6
OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsK
LSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQs
IHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5h
bWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IGU2YTVhOTM3NzdkNTA5NjE4MGUwOGQ4MzFlNjMyMDU4MWRk
MzFkYzkuLjg4NzAxMDM5NGJmMjNhZDY0NzljY2YzMWJlMTY2OTU2ZDYyMzQ4MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC0zNyw5ICszNyw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgRGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAotICAgIEZldGNoV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
Ci0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+IG9yaWdpbnMsIFZlY3RvcjxTdHJpbmc+IGNvb2tpZUhvc3ROYW1lcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKKyAgICBGZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCBWZWN0b3I8U3RyaW5nPiBjb29raWVIb3N0TmFt
ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKICAgICBEb3dubG9hZFJlcXVlc3QoV2ViQ29yZTo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQogICAgIFJlc3VtZURvd25sb2FkKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6
OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGI2YjhmZmIzNWIzNzY5YTRkOTc0
Yzc5Y2YxYTljNmE1NDJiZTg4MDAuLjZmYzJjZmRiY2ZmNDdlZjBjODgwYjgzZWVjYmU5OGRjYzMy
ZWMwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL09w
dGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIApAQCAtNTQsNiArNTUsMjMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNp
bXBsZUFyZ3VtZW50Q29kZXIgewogICAgIH0KIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4geworICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlvblNldDxUPiYgb3B0aW9uU2V0
KQorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wdGlv
blNldC50b1JhdygpKSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCisgICAgeworICAgICAg
ICB1aW50NjRfdCB2YWx1ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgb3B0aW9uU2V0ID0gT3B0aW9uU2V0
PFQ+Ojpmcm9tUmF3KHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpPcHRpb25hbDxU
Pj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFdURjo6T3B0aW9uYWw8VD4mIG9wdGlvbmFsKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYjcxZGY5MWI2M2ZlYjRiNjdiMGU2ZTQ4NGE3
NTRlYTEzOTU2MjllZi4uZGNmM2Q2NzQ1MGIwNGEyYTc3MjYxOTcwNTllOTYwYzRjYTQ4ZWFlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysr
IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTI5Niw2ICsy
OTYsNyBAQCBkZWYgY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0ZW1wbGF0ZV9zdHJpbmcpOgogICAg
IGNsYXNzX3RlbXBsYXRlX3R5cGVzID0gewogICAgICAgICAnSGFzaE1hcCc6IHsnaGVhZGVycyc6
IFsnPHd0Zi9IYXNoTWFwLmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1l
bnRDb2RlcnMuaCInXX0sCiAgICAgICAgICdPcHRpb25hbCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9P
cHRpb25hbC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJz
LmgiJ119LAorICAgICAgICAnT3B0aW9uU2V0JzogeydoZWFkZXJzJzogWyc8d3RmL09wdGlvblNl
dC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119
LAogICAgICAgICAnVmVjdG9yJzogeydoZWFkZXJzJzogWyc8d3RmL1ZlY3Rvci5oPiddLCAnYXJn
dW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAn
c3RkOjpwYWlyJzogeydoZWFkZXJzJzogWyc8dXRpbGl0eT4nXSwgJ2FyZ3VtZW50X2NvZGVyX2hl
YWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oCmluZGV4IDFlMmYzNzMwMjYyOWUy
Y2E3MmI5MTEwOTI2MWM3OGJiMDE2MGFmYzYuLjIwODgwODYxMzE0YWQyOTg4ZjYwYjFlNjIyOWQ3
MjQ4MTRkYmFkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIFdlYnNpdGVEYXRhX2gKICNk
ZWZpbmUgV2Vic2l0ZURhdGFfaAogCi0jaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM4LDEwICszNywxMiBAQCBjbGFzcyBBcmd1
bWVudEVuY29kZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFdlYnNpdGVE
YXRhVHlwZTsKKwogc3RydWN0IFdlYnNpdGVEYXRhIHsKICAgICBzdHJ1Y3QgRW50cnkgewogICAg
ICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG9yaWdpbjsKLSAgICAgICAgV2Vi
c2l0ZURhdGFUeXBlcyB0eXBlOworICAgICAgICBXZWJzaXRlRGF0YVR5cGUgdHlwZTsKIAogICAg
ICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJzaXRlRGF0YTo6RW50
cnkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVR5cGUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzNlNGIzZTRhNjMxMDcxOGY1YjkxNTQ2Y2VjNmYzMjIy
NWY5NmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhVHlwZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYnNpdGVEYXRhVHlwZV9oCisjZGVmaW5lIFdlYnNpdGVEYXRhVHlwZV9oCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZSB7CisgICAgQ29va2ll
cyA9IDEgPDwgMCwKKyAgICBEaXNrQ2FjaGUgPSAxIDw8IDEsCisgICAgTWVtb3J5Q2FjaGUgPSAx
IDw8IDIsCisgICAgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUgPSAxIDw8IDMsCisgICAgU2Vz
c2lvblN0b3JhZ2UgPSAxIDw8IDQsCisgICAgTG9jYWxTdG9yYWdlID0gMSA8PCA1LAorICAgIFdl
YlNRTERhdGFiYXNlcyA9IDEgPDwgNiwKKyAgICBJbmRleGVkREJEYXRhYmFzZXMgPSAxIDw8IDcs
CisgICAgTWVkaWFLZXlzID0gMSA8PCA4LAorICAgIEhTVFNDYWNoZSA9IDEgPDwgOSwKKyAgICBT
ZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzID0gMSA8PCAxMCwKKyNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKKyAgICBQbHVnSW5EYXRhID0gMSA8PCAxMSwKKyNlbmRpZgorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgTWVkaWFEZXZpY2VJZGVudGlmaWVyID0gMSA8PCAxMiwKKyNl
bmRpZgorfTsKKworfTsKKworI2VuZGlmIC8vIFdlYnNpdGVEYXRhVHlwZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFUeXBlcy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGEzMzJjMmVjYWVlMjAzNmE5YTI5NzE4ZDljNjky
MzE4NTI4ZGJlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFUeXBlcy5oCisr
KyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2Vic2l0
ZURhdGFUeXBlc19oCi0jZGVmaW5lIFdlYnNpdGVEYXRhVHlwZXNfaAotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotZW51bSBXZWJzaXRlRGF0YVR5cGVzIHsKLSAgICBXZWJzaXRlRGF0YVR5cGVDb29r
aWVzID0gMSA8PCAwLAotICAgIFdlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSA9IDEgPDwgMSwKLSAg
ICBXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSA9IDEgPDwgMiwKLSAgICBXZWJzaXRlRGF0YVR5
cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSA9IDEgPDwgMywKLSAgICBXZWJzaXRlRGF0YVR5
cGVTZXNzaW9uU3RvcmFnZSA9IDEgPDwgNCwKLSAgICBXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3Jh
Z2UgPSAxIDw8IDUsCi0gICAgV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzID0gMSA8PCA2
LAotICAgIFdlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyA9IDEgPDwgNywKLSAgICBX
ZWJzaXRlRGF0YVR5cGVNZWRpYUtleXMgPSAxIDw8IDgsCi0gICAgV2Vic2l0ZURhdGFUeXBlSFNU
U0NhY2hlID0gMSA8PCA5LAotICAgIFdlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2Vh
cmNoZXMgPSAxIDw8IDEwLAotI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIFdl
YnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgPSAxIDw8IDExLAotI2VuZGlmCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSAgICBXZWJzaXRlRGF0YVR5cGVNZWRpYURldmljZUlkZW50aWZpZXIgPSAx
IDw8IDEyLAotI2VuZGlmCi19OwotCi19OwotCi0jZW5kaWYgLy8gV2Vic2l0ZURhdGFUeXBlc19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKaW5kZXggNzJiM2ZhNWM4MjQ5ZTgyZjExOWVjYTAxNDA5
YjZjMzg1MmYwYzBkMi4uMDdhYThmMmRiMDljZTU1ZGQ4ZWVkM2Q1YzRmZTM2ODllZGM1NWFlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcApAQCAtNDAsNyArNDAsNyBAQCBXS1R5cGVJRCBXS0Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKCkKIHZvaWQgV0tBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNr
KQogewogICAgIGF1dG8mIHdlYnNpdGVEYXRhU3RvcmUgPSB0b0ltcGwocmVpbnRlcnByZXRfY2Fz
dDxXS1dlYnNpdGVEYXRhU3RvcmVSZWY+KGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKSktPndlYnNp
dGVEYXRhU3RvcmUoKTsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlLmZldGNoRGF0YShXZWJzaXRlRGF0
YVR5cGVzOjpXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSwgW2NvbnRl
eHQsIGNhbGxiYWNrXShWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+IGRhdGFSZWNvcmRzKSB7Cisg
ICAgd2Vic2l0ZURhdGFTdG9yZS5mZXRjaERhdGEoV2Vic2l0ZURhdGFUeXBlOjpPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZSwgW2NvbnRleHQsIGNhbGxiYWNrXShWZWN0b3I8V2Vic2l0ZURhdGFS
ZWNvcmQ+IGRhdGFSZWNvcmRzKSB7CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+
PiBzZWN1cml0eU9yaWdpbnM7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGF0YVJlY29yZCA6
IGRhdGFSZWNvcmRzKSB7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdpbiA6IGRh
dGFSZWNvcmQub3JpZ2lucykKQEAgLTU2LDEzICs1NiwxMyBAQCB2b2lkIFdLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJSZQogICAgIGF1dG8mIHdlYnNpdGVEYXRhU3RvcmUgPSB0b0ltcGwocmVpbnRlcnByZXRfY2Fz
dDxXS1dlYnNpdGVEYXRhU3RvcmVSZWY+KGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKSktPndlYnNp
dGVEYXRhU3RvcmUoKTsKIAogICAgIFdlYnNpdGVEYXRhUmVjb3JkIGRhdGFSZWNvcmQ7Ci0gICAg
ZGF0YVJlY29yZC5hZGQoV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdl
YkFwcGxpY2F0aW9uQ2FjaGUsICZ0b0ltcGwob3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4oKSk7Cisg
ICAgZGF0YVJlY29yZC5hZGQoV2Vic2l0ZURhdGFUeXBlOjpPZmZsaW5lV2ViQXBwbGljYXRpb25D
YWNoZSwgJnRvSW1wbChvcmlnaW4pLT5zZWN1cml0eU9yaWdpbigpKTsKIAotICAgIHdlYnNpdGVE
YXRhU3RvcmUucmVtb3ZlRGF0YShXZWJzaXRlRGF0YVR5cGVzOjpXZWJzaXRlRGF0YVR5cGVPZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZSwgeyBkYXRhUmVjb3JkIH0sIFtdIHsgfSk7CisgICAgd2Vi
c2l0ZURhdGFTdG9yZS5yZW1vdmVEYXRhKFdlYnNpdGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGUsIHsgZGF0YVJlY29yZCB9LCBbXSB7IH0pOwogfQogCiB2b2lkIFdLQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXIpCiB7CiAgICAgYXV0byYgd2Vic2l0ZURhdGFT
dG9yZSA9IHRvSW1wbChyZWludGVycHJldF9jYXN0PFdLV2Vic2l0ZURhdGFTdG9yZVJlZj4oYXBw
bGljYXRpb25DYWNoZU1hbmFnZXIpKS0+d2Vic2l0ZURhdGFTdG9yZSgpOwotICAgIHdlYnNpdGVE
YXRhU3RvcmUucmVtb3ZlRGF0YShXZWJzaXRlRGF0YVR5cGVzOjpXZWJzaXRlRGF0YVR5cGVPZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZSwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludDo6bWluKCksIFtdIHsgfSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZS5yZW1vdmVEYXRhKFdl
YnNpdGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpLCBbXSB7IH0pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIu
Y3BwCmluZGV4IDBlM2M3YTJkNjU2ZTExYmVhNWUzNzE5ZTg1MDI2ODg4MGJlYTlmYTMuLjUwODEz
NjQ3MTk0NDljYzE4Y2IzNWM4Mjk4NjM2OTAzODE4OGZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAK
QEAgLTM3LDE2ICszNywxNiBAQCBXS1R5cGVJRCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyR2V0VHlw
ZUlEKCkKICAgICByZXR1cm4gdG9BUEkoQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpBUElUeXBlKTsK
IH0KIAotc3RhdGljIFdlYnNpdGVEYXRhVHlwZXMgdG9XZWJzaXRlRGF0YVR5cGVzKFdLUmVzb3Vy
Y2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIpCitzdGF0aWMgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gdG9XZWJzaXRlRGF0YVR5cGVzKFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hl
c1RvQ2xlYXIpCiB7Ci0gICAgdXNpbmcgV2Vic2l0ZURhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0
ZURhdGFUeXBlczsKKyAgICBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzOwogCi0gICAgaW50IHdlYnNpdGVEYXRhVHlwZXMgPSBXZWJzaXRlRGF0YVR5cGVNZW1vcnlD
YWNoZTsKKyAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZTo6TWVtb3J5Q2Fj
aGU7CiAKICAgICBpZiAoY2FjaGVzVG9DbGVhciA9PSBXS1Jlc291cmNlQ2FjaGVzVG9DbGVhckFs
bCkKLSAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGU7
CisgICAgICAgIHdlYnNpdGVEYXRhVHlwZXMgfD0gV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGU7
CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2Vic2l0ZURhdGFUeXBlcz4od2Vic2l0ZURhdGFU
eXBlcyk7CisgICAgcmV0dXJuIHdlYnNpdGVEYXRhVHlwZXM7CiB9CiAKIHZvaWQgV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlckdldENhY2hlT3JpZ2lucyhXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNh
Y2hlTWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tSZXNvdXJjZUNhY2hlTWFuYWdlckdldENhY2hl
T3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQpAQCAtNzEsMTQgKzcxLDE0IEBAIHZvaWQgV0tSZXNv
dXJjZUNhY2hlTWFuYWdlckNsZWFyQ2FjaGVGb3JPcmlnaW4oV0tSZXNvdXJjZUNhY2hlTWFuYWdl
clJlZiBjYWNoZU1hCiAKICAgICB7CiAgICAgICAgIFdlYnNpdGVEYXRhUmVjb3JkIGRhdGFSZWNv
cmQ7Ci0gICAgICAgIGRhdGFSZWNvcmQuYWRkKFdlYnNpdGVEYXRhVHlwZXM6OldlYnNpdGVEYXRh
VHlwZU1lbW9yeUNhY2hlLCAmdG9JbXBsKG9yaWdpbiktPnNlY3VyaXR5T3JpZ2luKCkpOworICAg
ICAgICBkYXRhUmVjb3JkLmFkZChXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlLCAmdG9JbXBs
KG9yaWdpbiktPnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIGRhdGFSZWNvcmRzLmFwcGVu
ZChkYXRhUmVjb3JkKTsKICAgICB9CiAKICAgICBpZiAoY2FjaGVzVG9DbGVhciA9PSBXS1Jlc291
cmNlQ2FjaGVzVG9DbGVhckFsbCkgewogICAgICAgICBXZWJzaXRlRGF0YVJlY29yZCBkYXRhUmVj
b3JkOwotICAgICAgICBkYXRhUmVjb3JkLmFkZChXZWJzaXRlRGF0YVR5cGVzOjpXZWJzaXRlRGF0
YVR5cGVEaXNrQ2FjaGUsICZ0b0ltcGwob3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAg
ICAgIGRhdGFSZWNvcmQuYWRkKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlLCAmdG9JbXBsKG9y
aWdpbiktPnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIGRhdGFSZWNvcmRzLmFwcGVuZChk
YXRhUmVjb3JkKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaAppbmRleCBh
YmU4YjU3MTllYjg2MjFlYTRiMjg1ZDcyNjM5YWQ3OTk2ZGYzNjk4Li42ZGMzMThiNDZlYWE5NzY3
ZDc4NmI1YWY3N2NmMDcyZDc5NjQyY2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFs
LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2ltcG9ydCAiQVBJV2Vic2l0ZURhdGFSZWNvcmQuaCIK
ICNpbXBvcnQgIldLT2JqZWN0LmgiCisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC0zOCw3MSArMzksNzIgQEAgaW5saW5lIFdLV2Vic2l0ZURhdGFS
ZWNvcmQgKndyYXBwZXIoQVBJOjpXZWJzaXRlRGF0YVJlY29yZCYgd2Vic2l0ZURhdGFSZWNvcmQp
CiAgICAgcmV0dXJuIChXS1dlYnNpdGVEYXRhUmVjb3JkICopd2Vic2l0ZURhdGFSZWNvcmQud3Jh
cHBlcigpOwogfQogCi1zdGF0aWMgaW5saW5lIFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlcyB0b1dl
YnNpdGVEYXRhVHlwZXMoTlNTZXQgKndrV2Vic2l0ZURhdGFUeXBlcykKK3N0YXRpYyBpbmxpbmUg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB0b1dlYnNpdGVEYXRhVHlwZXMoTlNT
ZXQgKndrV2Vic2l0ZURhdGFUeXBlcykKIHsKLSAgICB1c2luZyBXZWJzaXRlRGF0YVR5cGVzID0g
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGVzOworICAgIHVzaW5nIFdlYnNpdGVEYXRhVHlwZSA9IFdl
YktpdDo6V2Vic2l0ZURhdGFUeXBlOwogCi0gICAgaW50IHdlYnNpdGVEYXRhVHlwZXMgPSAwOwor
ICAgIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlczsK
IAogICAgIGlmIChbd2tXZWJzaXRlRGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0OldLV2Vic2l0ZURh
dGFUeXBlQ29va2llc10pCi0gICAgICAgIHdlYnNpdGVEYXRhVHlwZXMgfD0gV2Vic2l0ZURhdGFU
eXBlczo6V2Vic2l0ZURhdGFUeXBlQ29va2llczsKKyAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8
PSBXZWJzaXRlRGF0YVR5cGU6OkNvb2tpZXM7CiAgICAgaWYgKFt3a1dlYnNpdGVEYXRhVHlwZXMg
Y29udGFpbnNPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGVdKQotICAgICAgICB3ZWJz
aXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZXM6OldlYnNpdGVEYXRhVHlwZURpc2tDYWNo
ZTsKKyAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNo
ZTsKICAgICBpZiAoW3drV2Vic2l0ZURhdGFUeXBlcyBjb250YWluc09iamVjdDpXS1dlYnNpdGVE
YXRhVHlwZU1lbW9yeUNhY2hlXSkKLSAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRl
RGF0YVR5cGVzOjpXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZTsKKyAgICAgICAgd2Vic2l0ZURh
dGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlOwogICAgIGlmIChbd2tXZWJz
aXRlRGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVdKQotICAgICAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRh
VHlwZXM6OldlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlOworICAgICAg
ICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGU7CiAgICAgaWYgKFt3a1dlYnNpdGVEYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6V0tX
ZWJzaXRlRGF0YVR5cGVTZXNzaW9uU3RvcmFnZV0pCi0gICAgICAgIHdlYnNpdGVEYXRhVHlwZXMg
fD0gV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2U7CisgICAg
ICAgIHdlYnNpdGVEYXRhVHlwZXMgfD0gV2Vic2l0ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFnZTsK
ICAgICBpZiAoW3drV2Vic2l0ZURhdGFUeXBlcyBjb250YWluc09iamVjdDpXS1dlYnNpdGVEYXRh
VHlwZUxvY2FsU3RvcmFnZV0pCi0gICAgICAgIHdlYnNpdGVEYXRhVHlwZXMgfD0gV2Vic2l0ZURh
dGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlOworICAgICAgICB3ZWJzaXRlRGF0
YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZTo6TG9jYWxTdG9yYWdlOwogICAgIGlmIChbd2tXZWJz
aXRlRGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJh
c2VzXSkKLSAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGVzOjpXZWJz
aXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXM7CisgICAgICAgIHdlYnNpdGVEYXRhVHlwZXMgfD0g
V2Vic2l0ZURhdGFUeXBlOjpXZWJTUUxEYXRhYmFzZXM7CiAgICAgaWYgKFt3a1dlYnNpdGVEYXRh
VHlwZXMgY29udGFpbnNPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXNd
KQotICAgICAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZXM6OldlYnNpdGVE
YXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlczsKKyAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBX
ZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlczsKICAgICBpZiAoW3drV2Vic2l0ZURh
dGFUeXBlcyBjb250YWluc09iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVIU1RTQ2FjaGVdKQotICAg
ICAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZXM6OldlYnNpdGVEYXRhVHlw
ZUhTVFNDYWNoZTsKKyAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGU6
OkhTVFNDYWNoZTsKICAgICBpZiAoW3drV2Vic2l0ZURhdGFUeXBlcyBjb250YWluc09iamVjdDpf
V0tXZWJzaXRlRGF0YVR5cGVNZWRpYUtleXNdKQotICAgICAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9
IFdlYnNpdGVEYXRhVHlwZXM6OldlYnNpdGVEYXRhVHlwZU1lZGlhS2V5czsKKyAgICAgICAgd2Vi
c2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGU6Ok1lZGlhS2V5czsKICAgICBpZiAoW3dr
V2Vic2l0ZURhdGFUeXBlcyBjb250YWluc09iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVTZWFyY2hG
aWVsZFJlY2VudFNlYXJjaGVzXSkKLSAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRl
RGF0YVR5cGVzOjpXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzOworICAg
ICAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZTo6U2VhcmNoRmllbGRSZWNl
bnRTZWFyY2hlczsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBpZiAoW3dr
V2Vic2l0ZURhdGFUeXBlcyBjb250YWluc09iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVQbHVnSW5E
YXRhXSkKLSAgICAgICAgd2Vic2l0ZURhdGFUeXBlcyB8PSBXZWJzaXRlRGF0YVR5cGVzOjpXZWJz
aXRlRGF0YVR5cGVQbHVnSW5EYXRhOworICAgICAgICB3ZWJzaXRlRGF0YVR5cGVzIHw9IFdlYnNp
dGVEYXRhVHlwZTo6UGx1Z0luRGF0YTsKICNlbmRpZgotICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJzaXRlRGF0YVR5cGVzPih3ZWJzaXRlRGF0YVR5cGVzKTsKKworICAgIHJldHVybiB3ZWJzaXRl
RGF0YVR5cGVzOwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxOU1NldD4gdG9XS1dlYnNp
dGVEYXRhVHlwZXMoaW50IHdlYnNpdGVEYXRhVHlwZXMpCitzdGF0aWMgaW5saW5lIFJldGFpblB0
cjxOU1NldD4gdG9XS1dlYnNpdGVEYXRhVHlwZXMoT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKQogewotICAgIHVzaW5nIFdlYnNpdGVEYXRhVHlwZXMg
PSBXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZXM7CisvLyAgICB1c2luZyBXZWJzaXRlRGF0YVR5cGVz
ID0gV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU7CiAKICAgICBhdXRvIHdrV2Vic2l0ZURhdGFUeXBl
cyA9IGFkb3B0TlMoW1tOU011dGFibGVTZXQgYWxsb2NdIGluaXRdKTsKIAotICAgIGlmICh3ZWJz
aXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlQ29va2llcykK
KyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkNvb2tp
ZXMpKQogICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpXS1dlYnNpdGVEYXRh
VHlwZUNvb2tpZXNdOwotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBl
czo6V2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlKQorICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkKICAgICAgICAgW3drV2Vic2l0ZURh
dGFUeXBlcyBhZGRPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGVdOwotICAgIGlmICh3
ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlTWVtb3J5
Q2FjaGUpCisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpNZW1vcnlDYWNoZSkpCiAgICAgICAgIFt3a1dlYnNpdGVEYXRhVHlwZXMgYWRkT2JqZWN0OldL
V2Vic2l0ZURhdGFUeXBlTWVtb3J5Q2FjaGVdOwotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYg
V2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGUpCisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSkpCiAgICAgICAgIFt3a1dlYnNpdGVEYXRhVHlwZXMg
YWRkT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVdOwot
ICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFU
eXBlU2Vzc2lvblN0b3JhZ2UpCisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vi
c2l0ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFnZSkpCiAgICAgICAgIFt3a1dlYnNpdGVEYXRhVHlw
ZXMgYWRkT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2VdOwotICAgIGlmICh3
ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlTG9jYWxT
dG9yYWdlKQorICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlw
ZTo6TG9jYWxTdG9yYWdlKSkKICAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6
V0tXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3JhZ2VdOwotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVz
ICYgV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzKQorICAg
IGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6V2ViU1FMRGF0
YWJhc2VzKSkKICAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6V0tXZWJzaXRl
RGF0YVR5cGVXZWJTUUxEYXRhYmFzZXNdOwotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vi
c2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzKQorICAgIGlm
ICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0
YWJhc2VzKSkKICAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6V0tXZWJzaXRl
RGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXNdOwotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYg
V2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlSFNUU0NhY2hlKQorICAgIGlmICh3ZWJz
aXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SFNUU0NhY2hlKSkKICAgICAg
ICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlSFNUU0Nh
Y2hlXTsKLSAgICBpZiAod2Vic2l0ZURhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZXM6OldlYnNp
dGVEYXRhVHlwZU1lZGlhS2V5cykKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6Ok1lZGlhS2V5cykpCiAgICAgICAgIFt3a1dlYnNpdGVEYXRhVHlwZXMg
YWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5c107Ci0gICAgaWYgKHdlYnNpdGVE
YXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVzOjpXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJl
Y2VudFNlYXJjaGVzKQorICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVE
YXRhVHlwZTo6U2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcykpCiAgICAgICAgIFt3a1dlYnNpdGVE
YXRhVHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2Vh
cmNoZXNdOwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlczo6V2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSkK
KyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlBsdWdJ
bkRhdGEpKQogICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRl
RGF0YVR5cGVQbHVnSW5EYXRhXTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDdlZDAyZDZkY2Y5YWE0NjY0YjlkNzI2Y2JmZjBjMmUzMzhhYTg3ZjAuLjEwOGI4YWY5Njk2Zjlk
ZjIyZjI1MDA1ZTAwYzJhMmQ3NjM4YjNhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwCkBAIC04
Myw3ICs4Myw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNCiAgICAgfQogfQogCi12b2lkIERh
dGFiYXNlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVE
YXRhKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpmZXRj
aFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+IGRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+IGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApAQCAtOTMsNyAr
OTMsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYnNpdGVEYXRhVHlwZQogICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFi
YXNlUHJvY2Vzczo6RmV0Y2hXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgY2FsbGJh
Y2tJRCksIDApOwogfQogCi12b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRl
RGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJzaXRlRGF0YVR5cGVzIGRhdGFU
eXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNl
LCAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgRGF0YWJh
c2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCAgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5l
cmF0ZUNhbGxiYWNrSUQoKTsKIApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgRGF0YWJhc2VQcm9j
ZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYnNpCiAgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpEZWxldGVXZWJzaXRl
RGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDAp
OwogfQogCi12b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vic2l0ZURhdGFUeXBlcyBkYXRhVHlwZXMsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucywgc3Rk
OjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgRGF0YWJhc2VQcm9j
ZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucywgc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJh
c2VQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0
YWJhc2VQcm9jZXNzUHJveHkuaAppbmRleCAzMGJjNDBjNjI5MDQwZjhjZGZkMDhkYjQ2ZWRlMDdk
ODNmOTk5ZGYwLi43ODU3ZDQ2YjBhMTNiYjdmYzlhYmExMjBjYzdkY2MxOGEyMWVlOWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFz
ZVByb2Nlc3NQcm94eS5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZXMuaCIKICNpbmNs
dWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTQyLDE1ICs0MiwxNiBAQCBjbGFz
cyBTZXNzaW9uSUQ7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIAogY2xhc3MgRGF0YWJhc2VQcm9jZXNzUHJv
eHkgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
RGF0YWJhc2VQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCopOwogICAgIH5EYXRh
YmFzZVByb2Nlc3NQcm94eSgpOwogCi0gICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6
OlNlc3Npb25JRCwgV2Vic2l0ZURhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJzaXRl
RGF0YSk+IGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCwgV2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNv
bXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhX
ZWJDb3JlOjpTZXNzaW9uSUQsIFdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucywgc3RkOjpmdW5jdGlvbjx2b2lkICgp
PiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoV2Vic2l0ZURhdGEpPiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJz
aXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBz
dGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYg
b3JpZ2lucywgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcik7CiAKICAg
ICB2b2lkIGdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVw
bHk+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzZmI0ODU1ZDgxMzk4MzQyMDYzZTBjMDMzN2E5
MDQxODkwNzgzNTlhLi4wM2Y0M2YzYjVmZDE0MDU0MTliZjRiODkxNWI5NTIzOTZiMzg1MjgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIERvd25sb2FkUHJveHkqIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByCiAgICAgcmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eSht
X3Byb2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3QpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vic2l0ZURhdGFU
eXBlcyBkYXRhVHlwZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25J
RCwgV2Vic2l0ZURhdGFUeXBlcwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkZldGNo
V2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCAgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVs
ZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IG1vZGlmaWVkU2luY2UsICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwog
ICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwpA
QCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0
ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vic2l0CiAgICAgc2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5
cGVzLCBtb2RpZmllZFNpbmNlLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29r
aWVIb3N0TmFtZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgc3RkOjpmdW5jdGlvbjx2b2lkICgp
PiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAppbmRleCBiYmRkN2ZiZDJmYTM1ODliYTMyMDA2OWRhZTUxNTUyMGQ3YzY0OGRm
Li5mMzdhYjZlNzRhZmVmNmJlZTdlMTIzNjI4ZGIyMjljMWE3NTI3MmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1
ZGUgIlByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZXMuaCIKICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKQEAgLTQ4LDYgKzQ3LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgRG93bmxvYWRQcm94eU1hcDsK
IGNsYXNzIFdlYlByb2Nlc3NQb29sOworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIE5ldHdvcmtQcm9j
ZXNzUHJveHkgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90
dGxlckNsaWVudCB7CkBAIC01OSw5ICs1OSw5IEBAIHB1YmxpYzoKIAogICAgIERvd25sb2FkUHJv
eHkqIGNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBXZWJzaXRl
RGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4gY29tcGxldGlvbkhh
bmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBX
ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWVkU2luY2UsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwot
ICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwg
V2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGZldGNo
V2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
Piwgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+IGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQg
bW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcik7
CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8UmVmUHRy
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBjb29raWVIb3N0TmFtZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRs
ZXIpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAppbmRleCA2MmRmOWQzOGQxNDVkMzY1OTdhZjM1NjU0MDVlMWY4MmE4OTExNTViLi5m
YjA3MzE1MWFiY2YwMzNiMWE1MjA1MGVkNmYyNjc4ZDlmNjNkM2MwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzIxLDcgKzcyMSw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5Ojp3aW5kb3dTZXJ2ZXJDb25uZWN0aW9uU3RhdGVDaGFuZ2VkKCkK
ICAgICAgICAgcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXN1YWxseUlk
bGUpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2
b2lkIChXZWJzaXRlRGF0YSk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4g
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCkBA
IC03MzUsNyArNzM1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEo
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vic2l0ZURhdGFUeXBlcyBkYXQKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBj
YWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRl
RGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRlbGV0ZVdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApAQCAtNzQ4LDcgKzc0OCw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJzaXRlRGF0YVR5cGVzIGRhCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIGNh
bGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJzaXRlRGF0YVR5cGVzIGRhdGFU
eXBlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+JiBvcmln
aW5zLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucywgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2Uo
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA4
MDg1NDlhYmY2YjUyNGVlNzdkNDhiMGQ3NDFkOTcyMTViNjE4MWQzLi4wZTBkMzNkZGU3MDMyYjNh
YmE5ZmNhZjA2MjA0NzJmNjczYWE0OWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlcy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTYxLDYgKzYwLDcgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3NQ
cm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJQYWdlR3JvdXA7
CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK2VudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3Ry
dWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiAgICAgCiBjbGFzcyBXZWJQcm9jZXNzUHJveHkg
OiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHksIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwg
cHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKQEAgLTEyMSw5ICsxMjEsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRTYXZlVG9QYWdlQ2FjaGUoKTsKICAgICB2b2lkIHJlbGVhc2VQYWdl
Q2FjaGUoKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IFdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiBjb21w
bGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNz
aW9uSUQsIFdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVf
cG9pbnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFu
ZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vz
c2lvbklELCBXZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlv
bkhhbmRsZXIpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVE
YXRhKT4gY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBj
b25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMsIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwogCiAgICAgdm9pZCBlbmFi
bGVTdWRkZW5UZXJtaW5hdGlvbigpOwogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9u
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFSZWNvcmQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhUmVjb3JkLmNwcAppbmRleCAxYWEyYzBlYjdlNTkyN2E5ZDllOGQzNWViMzkw
ZWQxZjRkZDUyNzNiLi41ZmYwOTRjODlhNjU4MDYxZjU3NTNjYzhkZjMyYTJmYmYwNjE2YzcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgU3RyaW5nIFdlYnNpdGVEYXRh
UmVjb3JkOjpkaXNwbGF5TmFtZUZvck9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFSZWNvcmQ6
OmFkZChXZWJzaXRlRGF0YVR5cGVzIHR5cGUsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiBvcmlnaW4pCit2b2lkIFdlYnNpdGVEYXRhUmVjb3JkOjphZGQoV2Vic2l0ZURhdGFUeXBl
IHR5cGUsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBvcmlnaW4pCiB7CiAgICAg
dHlwZXMgfD0gdHlwZTsKIApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYnNpdGVEYXRhUmVjb3Jk
OjphZGQoV2Vic2l0ZURhdGFUeXBlcyB0eXBlLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aQogCiB2b2lkIFdlYnNpdGVEYXRhUmVjb3JkOjphZGRDb29raWVIb3N0TmFtZShjb25zdCBTdHJp
bmcmIGhvc3ROYW1lKQogewotICAgIHR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZUNvb2tpZXM7Cisg
ICAgdHlwZXMgfD0gV2Vic2l0ZURhdGFUeXBlOjpDb29raWVzOwogCiAgICAgY29va2llSG9zdE5h
bWVzLmFkZChob3N0TmFtZSk7CiB9CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFS
ZWNvcmQ6OmFkZENvb2tpZUhvc3ROYW1lKGNvbnN0IFN0cmluZyYgaG9zdE5hbWUpCiAjaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiB2b2lkIFdlYnNpdGVEYXRhUmVjb3JkOjphZGRQbHVn
aW5EYXRhSG9zdE5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSkKIHsKLSAgICB0eXBlcyB8PSBX
ZWJzaXRlRGF0YVR5cGVQbHVnSW5EYXRhOworICAgIHR5cGVzIHw9IFdlYnNpdGVEYXRhVHlwZTo6
UGx1Z0luRGF0YTsKIAogICAgIHBsdWdpbkRhdGFIb3N0TmFtZXMuYWRkKGhvc3ROYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVJlY29yZC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhUmVjb3JkLmgKaW5kZXggNThiM2Y5MTg0N2U5NTliN2YwYzJjYmI0MmQ0MGEzYjRmYjkz
NDdjMS4uMzBjYTM3MmU3NWI0MTNlYzMyY2I0NTQ3MjNkMmZkMDM2YmRkNTBkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3Jk
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
UmVjb3JkLmgKQEAgLTI2LDkgKzI2LDEwIEBACiAjaWZuZGVmIFdlYnNpdGVEYXRhUmVjb3JkX2gK
ICNkZWZpbmUgV2Vic2l0ZURhdGFSZWNvcmRfaAogCi0jaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBl
cy5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW5IYXNoLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NSwxNCArNDYsMTQgQEAgc3RydWN0IFdl
YnNpdGVEYXRhUmVjb3JkIHsKICNlbmRpZgogICAgIHN0YXRpYyBTdHJpbmcgZGlzcGxheU5hbWVG
b3JPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mKTsKIAotICAgIHZvaWQgYWRk
KFdlYnNpdGVEYXRhVHlwZXMsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJik7Cisg
ICAgdm9pZCBhZGQoV2Vic2l0ZURhdGFUeXBlLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYpOwogICAgIHZvaWQgYWRkQ29va2llSG9zdE5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFt
ZSk7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBhZGRQbHVnaW5E
YXRhSG9zdE5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSk7CiAjZW5kaWYKIAogICAgIFN0cmlu
ZyBkaXNwbGF5TmFtZTsKLSAgICB1bnNpZ25lZCB0eXBlcyB7IDAgfTsKKyAgICBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiB0eXBlczsKICAgICBIYXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IGNvb2tpZUhvc3ROYW1l
czsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRl
eCBjZTBhZTdlMjYwMmE4NWFiMWQ2YWJiMzE0MjhmNTI1NzAzOTQ4ZDAzLi5kNzM1M2Q4OWRjYjA4
ZDI1OWM0NWMyNTZmMWJmMTUzZDQ4YjRkYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xMjEs
MzYgKzEyMSwzNiBAQCBlbnVtIGNsYXNzIFByb2Nlc3NBY2Nlc3NUeXBlIHsKICAgICBMYXVuY2gs
CiB9OwogCi1zdGF0aWMgUHJvY2Vzc0FjY2Vzc1R5cGUgY29tcHV0ZU5ldHdvcmtQcm9jZXNzQWNj
ZXNzVHlwZUZvckRhdGFGZXRjaChXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgYm9vbCBpc05v
blBlcnNpc3RlbnRTdG9yZSkKK3N0YXRpYyBQcm9jZXNzQWNjZXNzVHlwZSBjb21wdXRlTmV0d29y
a1Byb2Nlc3NBY2Nlc3NUeXBlRm9yRGF0YUZldGNoKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IGRhdGFUeXBlcywgYm9vbCBpc05vblBlcnNpc3RlbnRTdG9yZSkKIHsKICAgICBQcm9jZXNzQWNj
ZXNzVHlwZSBwcm9jZXNzQWNjZXNzVHlwZSA9IFByb2Nlc3NBY2Nlc3NUeXBlOjpOb25lOwogCi0g
ICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZUNvb2tpZXMpIHsKKyAgICBpZiAoZGF0
YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6Q29va2llcykpIHsKICAgICAgICAgaWYg
KGlzTm9uUGVyc2lzdGVudFN0b3JlKQogICAgICAgICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBz
dGQ6Om1heChwcm9jZXNzQWNjZXNzVHlwZSwgUHJvY2Vzc0FjY2Vzc1R5cGU6Ok9ubHlJZkxhdW5j
aGVkKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6
Om1heChwcm9jZXNzQWNjZXNzVHlwZSwgUHJvY2Vzc0FjY2Vzc1R5cGU6OkxhdW5jaCk7CiAgICAg
fQogCi0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSAmJiAhaXNO
b25QZXJzaXN0ZW50U3RvcmUpCisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSkgJiYgIWlzTm9uUGVyc2lzdGVudFN0b3JlKQogICAgICAgICBwcm9j
ZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNz
VHlwZTo6TGF1bmNoKTsKIAogICAgIHJldHVybiBwcm9jZXNzQWNjZXNzVHlwZTsKIH0KIAotc3Rh
dGljIFByb2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRhdGFG
ZXRjaChXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgYm9vbCBpc05vblBlcnNpc3RlbnRTdG9y
ZSkKK3N0YXRpYyBQcm9jZXNzQWNjZXNzVHlwZSBjb21wdXRlV2ViUHJvY2Vzc0FjY2Vzc1R5cGVG
b3JEYXRhRmV0Y2goT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBib29sIGlz
Tm9uUGVyc2lzdGVudFN0b3JlKQogewogICAgIFVOVVNFRF9QQVJBTShpc05vblBlcnNpc3RlbnRT
dG9yZSk7CiAKICAgICBQcm9jZXNzQWNjZXNzVHlwZSBwcm9jZXNzQWNjZXNzVHlwZSA9IFByb2Nl
c3NBY2Nlc3NUeXBlOjpOb25lOwogCi0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlw
ZU1lbW9yeUNhY2hlKQorICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpNZW1vcnlDYWNoZSkpCiAgICAgICAgIHJldHVybiBQcm9jZXNzQWNjZXNzVHlwZTo6T25seUlm
TGF1bmNoZWQ7CiAKICAgICByZXR1cm4gcHJvY2Vzc0FjY2Vzc1R5cGU7CiB9CiAKLXZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4pPiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURh
dGFSZWNvcmQ+KT4gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc3RydWN0IENhbGxiYWNrQWdn
cmVnYXRvciBmaW5hbCA6IFRocmVhZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4g
ewogICAgICAgICBleHBsaWNpdCBDYWxsYmFja0FnZ3JlZ2F0b3Ioc3RkOjpmdW5jdGlvbjx2b2lk
IChWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+KT4gY29tcGxldGlvbkhhbmRsZXIpCkBAIC0yODks
MzMgKzI4OSwzMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YShXZWJzaXRlRGF0
YVR5cGVzIGRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBpZiAoZGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgJiYgbV9z
dG9yYWdlTWFuYWdlcikgeworICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpTZXNzaW9uU3RvcmFnZSkgJiYgbV9zdG9yYWdlTWFuYWdlcikgewogICAgICAgICBjYWxs
YmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwogCiAgICAgICAgIG1fc3RvcmFn
ZU1hbmFnZXItPmdldFNlc3Npb25TdG9yYWdlT3JpZ2lucyhbY2FsbGJhY2tBZ2dyZWdhdG9yXShI
YXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+JiYgb3JpZ2lucykgewogICAg
ICAgICAgICAgV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGE7CiAKICAgICAgICAgICAgIHdoaWxlICgh
b3JpZ2lucy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5h
cHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgb3JpZ2lucy50YWtlQW55KCksIFdlYnNpdGVEYXRh
VHlwZVNlc3Npb25TdG9yYWdlIH0pOworICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhLmVudHJp
ZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IG9yaWdpbnMudGFrZUFueSgpLCBXZWJzaXRl
RGF0YVR5cGU6OlNlc3Npb25TdG9yYWdlIH0pOwogCiAgICAgICAgICAgICBjYWxsYmFja0FnZ3Jl
Z2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjayhXVEZNb3ZlKHdlYnNpdGVEYXRhKSk7CiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIGlmIChkYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVMb2Nh
bFN0b3JhZ2UgJiYgbV9zdG9yYWdlTWFuYWdlcikgeworICAgIGlmIChkYXRhVHlwZXMuY29udGFp
bnMoV2Vic2l0ZURhdGFUeXBlOjpMb2NhbFN0b3JhZ2UpICYmIG1fc3RvcmFnZU1hbmFnZXIpIHsK
ICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKIAogICAg
ICAgICBtX3N0b3JhZ2VNYW5hZ2VyLT5nZXRMb2NhbFN0b3JhZ2VPcmlnaW5zKFtjYWxsYmFja0Fn
Z3JlZ2F0b3JdKEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mJiBvcmln
aW5zKSB7CiAgICAgICAgICAgICBXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YTsKIAogICAgICAgICAg
ICAgd2hpbGUgKCFvcmlnaW5zLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0
YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBvcmlnaW5zLnRha2VBbnkoKSwg
V2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlIH0pOworICAgICAgICAgICAgICAgIHdlYnNpdGVE
YXRhLmVudHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IG9yaWdpbnMudGFrZUFueSgp
LCBXZWJzaXRlRGF0YVR5cGU6OkxvY2FsU3RvcmFnZSB9KTsKIAogICAgICAgICAgICAgY2FsbGJh
Y2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soV1RGTW92ZSh3ZWJzaXRlRGF0YSkp
OwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAoZGF0YVR5cGVzICYgV2Vic2l0ZURhdGFU
eXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUgJiYgaXNQZXJzaXN0ZW50KCkpIHsKKyAgICBp
ZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGUpICYmIGlzUGVyc2lzdGVudCgpKSB7CiAgICAgICAgIFN0cmluZ0NhcHR1cmUgYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSB7IG1fYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSB9Owog
CiAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CkBAIC0z
MzAsMTQgKzMzMCwxNCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YShXZWJzaXRl
RGF0YVR5cGVzIGRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkCiAgICAgICAgICAgICAgICAg
V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGE7CiAKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIG9y
aWdpbiA6IG9yaWdpbnMpCi0gICAgICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhLmVudHJpZXMu
YXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IG9yaWdpbiwgV2Vic2l0ZURhdGFUeXBlT2ZmbGlu
ZVdlYkFwcGxpY2F0aW9uQ2FjaGUgfSk7CisgICAgICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRh
LmVudHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IG9yaWdpbiwgV2Vic2l0ZURhdGFU
eXBlOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSB9KTsKIAogICAgICAgICAgICAgICAgIGNh
bGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKFdURk1vdmUod2Vic2l0ZURh
dGEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAoZGF0
YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzICYmIGlzUGVyc2lzdGVudCgp
KSB7CisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OldlYlNRTERh
dGFiYXNlcykgJiYgaXNQZXJzaXN0ZW50KCkpIHsKICAgICAgICAgU3RyaW5nQ2FwdHVyZSB3ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeSB7IG1fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgfTsKIAogICAg
ICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwpAQCAtMzQ5LDcg
KzM0OSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKFdlYnNpdGVEYXRhVHlw
ZXMgZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQKICAgICAgICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yLCBvcmlnaW5zXSgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIFdlYnNpdGVEYXRhIHdlYnNpdGVEYXRhOwogICAgICAgICAgICAgICAg
IGZvciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKLSAgICAgICAgICAgICAgICAgICAgd2Vic2l0
ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgV1RGTW92ZShvcmlnaW4p
LCBXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgfSk7CisgICAgICAgICAgICAgICAgICAg
IHdlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IFdURk1vdmUo
b3JpZ2luKSwgV2Vic2l0ZURhdGFUeXBlOjpXZWJTUUxEYXRhYmFzZXMgfSk7CiAKICAgICAgICAg
ICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjayhXVEZNb3Zl
KHdlYnNpdGVEYXRhKSk7CiAgICAgICAgICAgICB9KTsKQEAgLTM1Nyw3ICszNTcsNyBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywg
c3RkOjpmdW5jdGlvbjx2b2lkCiAgICAgfQogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1Mp
Ci0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyAm
JiBpc1BlcnNpc3RlbnQoKSkgeworICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURh
dGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMpICYmIGlzUGVyc2lzdGVudCgpKSB7CiAgICAgICAg
IGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAgICAgICAg
cHJvY2Vzc1Bvb2wtPmVuc3VyZURhdGFiYXNlUHJvY2VzcygpOwogCkBAIC0zNjksNyArMzY5LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGEoV2Vic2l0ZURhdGFUeXBlcyBkYXRh
VHlwZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZAogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGRhdGFU
eXBlcyAmIFdlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyAmJiBpc1BlcnNpc3RlbnQoKSkgeworICAg
IGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpNZWRpYUtleXMpICYmIGlz
UGVyc2lzdGVudCgpKSB7CiAgICAgICAgIFN0cmluZ0NhcHR1cmUgbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSB7IG1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSB9OwogCiAgICAgICAgIGNhbGxi
YWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CkBAIC0zODAsNyArMzgwLDcgQEAg
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGEoV2Vic2l0ZURhdGFUeXBlcyBkYXRhVHlw
ZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZAogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFtjYWxsYmFja0FnZ3JlZ2F0b3IsIG9yaWdpbnNdKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICAgICAgV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGE7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRv
JiBvcmlnaW4gOiBvcmlnaW5zKQotICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRy
aWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBXVEZNb3ZlKG9yaWdpbiksIFdlYnNpdGVE
YXRhVHlwZU1lZGlhS2V5cyB9KTsKKyAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZURhdGEuZW50
cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgV1RGTW92ZShvcmlnaW4pLCBXZWJzaXRl
RGF0YVR5cGU6Ok1lZGlhS2V5cyB9KTsKIAogICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKFdURk1vdmUod2Vic2l0ZURhdGEpKTsKICAgICAg
ICAgICAgIH0pOwpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0
Y2hEYXRhKFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQKICAg
ICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBpZiAoZGF0YVR5cGVz
ICYgV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSAmJiBpc1BlcnNpc3RlbnQoKSkgeworICAgIGlm
IChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpQbHVnSW5EYXRhKSAmJiBpc1Bl
cnNpc3RlbnQoKSkgewogICAgICAgICBjbGFzcyBTdGF0ZSB7CiAgICAgICAgIHB1YmxpYzoKICAg
ICAgICAgICAgIHN0YXRpYyB2b2lkIGZldGNoRGF0YShSZWY8Q2FsbGJhY2tBZ2dyZWdhdG9yPiYm
IGNhbGxiYWNrQWdncmVnYXRvciwgVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+JiYgcGx1Z2lucykK
QEAgLTQ0MywzOSArNDQzLDM5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKFdl
YnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQKICAgICBjYWxsYmFj
a0FnZ3JlZ2F0b3ItPmNhbGxJZk5lZWRlZCgpOwogfQogCi1zdGF0aWMgUHJvY2Vzc0FjY2Vzc1R5
cGUgY29tcHV0ZU5ldHdvcmtQcm9jZXNzQWNjZXNzVHlwZUZvckRhdGFSZW1vdmFsKFdlYnNpdGVE
YXRhVHlwZXMgZGF0YVR5cGVzLCBib29sIGlzTm9uUGVyc2lzdGVudFN0b3JlKQorc3RhdGljIFBy
b2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVOZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGVGb3JEYXRhUmVt
b3ZhbChPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGJvb2wgaXNOb25QZXJz
aXN0ZW50U3RvcmUpCiB7CiAgICAgUHJvY2Vzc0FjY2Vzc1R5cGUgcHJvY2Vzc0FjY2Vzc1R5cGUg
PSBQcm9jZXNzQWNjZXNzVHlwZTo6Tm9uZTsKIAotICAgIGlmIChkYXRhVHlwZXMgJiBXZWJzaXRl
RGF0YVR5cGVDb29raWVzKSB7CisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkNvb2tpZXMpKSB7CiAgICAgICAgIGlmIChpc05vblBlcnNpc3RlbnRTdG9yZSkKICAg
ICAgICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgocHJvY2Vzc0FjY2Vzc1R5cGUs
IFByb2Nlc3NBY2Nlc3NUeXBlOjpPbmx5SWZMYXVuY2hlZCk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgocHJvY2Vzc0FjY2Vzc1R5cGUsIFBy
b2Nlc3NBY2Nlc3NUeXBlOjpMYXVuY2gpOwogICAgIH0KIAotICAgIGlmIChkYXRhVHlwZXMgJiBX
ZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgJiYgIWlzTm9uUGVyc2lzdGVudFN0b3JlKQorICAgIGlm
IChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpICYmICFpc05v
blBlcnNpc3RlbnRTdG9yZSkKICAgICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6Om1heChw
cm9jZXNzQWNjZXNzVHlwZSwgUHJvY2Vzc0FjY2Vzc1R5cGU6OkxhdW5jaCk7CiAKLSAgICBpZiAo
ZGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlSFNUU0NhY2hlKQorICAgIGlmIChkYXRhVHlwZXMu
Y29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpIU1RTQ2FjaGUpKQogICAgICAgICBwcm9jZXNzQWNj
ZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6
TGF1bmNoKTsKIAogICAgIHJldHVybiBwcm9jZXNzQWNjZXNzVHlwZTsKIH0KIAotc3RhdGljIFBy
b2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRhdGFSZW1vdmFs
KFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBib29sIGlzTm9uUGVyc2lzdGVudFN0b3JlKQor
c3RhdGljIFByb2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRh
dGFSZW1vdmFsKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgYm9vbCBpc05v
blBlcnNpc3RlbnRTdG9yZSkKIHsKICAgICBVTlVTRURfUEFSQU0oaXNOb25QZXJzaXN0ZW50U3Rv
cmUpOwogCiAgICAgUHJvY2Vzc0FjY2Vzc1R5cGUgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBQcm9jZXNz
QWNjZXNzVHlwZTo6Tm9uZTsKIAotICAgIGlmIChkYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVN
ZW1vcnlDYWNoZSkKKyAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
TWVtb3J5Q2FjaGUpKQogICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nl
c3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6T25seUlmTGF1bmNoZWQpOwogCiAgICAg
cmV0dXJuIHByb2Nlc3NBY2Nlc3NUeXBlOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJl
bW92ZURhdGEoV2Vic2l0ZURhdGFUeXBlcyBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIDogVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CiAgICAgICAgIGV4cGxpY2l0IENh
bGxiYWNrQWdncmVnYXRvciAoc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTU1Nyw3ICs1NTcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEo
V2Vic2l0ZURhdGFUeXBlcyBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZQogICAgICAgICB9
CiAgICAgfQogCi0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZVNlc3Npb25TdG9y
YWdlICYmIG1fc3RvcmFnZU1hbmFnZXIpIHsKKyAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdl
YnNpdGVEYXRhVHlwZTo6U2Vzc2lvblN0b3JhZ2UpICYmIG1fc3RvcmFnZU1hbmFnZXIpIHsKICAg
ICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKIAogICAgICAg
ICBtX3N0b3JhZ2VNYW5hZ2VyLT5kZWxldGVTZXNzaW9uU3RvcmFnZU9yaWdpbnMoW2NhbGxiYWNr
QWdncmVnYXRvcl0gewpAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlRGF0YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3Rl
CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGlmIChkYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5
cGVMb2NhbFN0b3JhZ2UgJiYgbV9zdG9yYWdlTWFuYWdlcikgeworICAgIGlmIChkYXRhVHlwZXMu
Y29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpMb2NhbFN0b3JhZ2UpICYmIG1fc3RvcmFnZU1hbmFn
ZXIpIHsKICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsK
IAogICAgICAgICBtX3N0b3JhZ2VNYW5hZ2VyLT5kZWxldGVMb2NhbFN0b3JhZ2VPcmlnaW5zTW9k
aWZpZWRTaW5jZShtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7CkBAIC01NzMs
NyArNTczLDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKFdlYnNpdGVEYXRh
VHlwZXMgZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGUKICAgICAgICAgfSk7CiAgICAgfQog
Ci0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlICYmIGlzUGVyc2lzdGVudCgpKSB7CisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlKSAmJiBpc1BlcnNpc3Rl
bnQoKSkgewogICAgICAgICBTdHJpbmdDYXB0dXJlIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnkg
eyBtX2FwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgfTsKIAogICAgICAgICBjYWxsYmFja0FnZ3Jl
Z2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwpAQCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgc3Rk
OjpjaHJvbm86OnN5c3RlCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGlmIChkYXRhVHlwZXMg
JiBXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgJiYgaXNQZXJzaXN0ZW50KCkpIHsKKyAg
ICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6V2ViU1FMRGF0YWJhc2Vz
KSAmJiBpc1BlcnNpc3RlbnQoKSkgewogICAgICAgICBTdHJpbmdDYXB0dXJlIHdlYlNRTERhdGFi
YXNlRGlyZWN0b3J5IHsgbV93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSB9OwogCiAgICAgICAgIGNh
bGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CkBAIC02MDQsNyArNjA0LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKFdlYnNpdGVEYXRhVHlwZXMgZGF0
YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGUKICAgICB9CiAKICNpZiBFTkFCTEUoREFUQUJBU0Vf
UFJPQ0VTUykKLSAgICBpZiAoZGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0
YWJhc2VzICYmIGlzUGVyc2lzdGVudCgpKSB7CisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykgJiYgaXNQZXJzaXN0ZW50KCkpIHsK
ICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKSB7CiAgICAg
ICAgICAgICBwcm9jZXNzUG9vbC0+ZW5zdXJlRGF0YWJhc2VQcm9jZXNzKCk7CiAKQEAgLTYxNiw3
ICs2MTYsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoV2Vic2l0ZURhdGFU
eXBlcyBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZQogICAgIH0KICNlbmRpZgogCi0gICAg
aWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyAmJiBpc1BlcnNpc3RlbnQo
KSkgeworICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpNZWRpYUtl
eXMpICYmIGlzUGVyc2lzdGVudCgpKSB7CiAgICAgICAgIFN0cmluZ0NhcHR1cmUgbWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSB7IG1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSB9OwogCiAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CkBAIC02MzAsNyAr
NjMwLDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKFdlYnNpdGVEYXRhVHlw
ZXMgZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGUKICAgICAgICAgfSk7CiAgICAgfQogCi0g
ICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2VhcmNo
ZXMgJiYgaXNQZXJzaXN0ZW50KCkpIHsKKyAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6U2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcykgJiYgaXNQZXJzaXN0ZW50KCkp
IHsKICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKIAog
ICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7CkBAIC02NDMsNyArNjQzLDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVE
YXRhKFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGUKICAgICB9
CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBpZiAoZGF0YVR5cGVzICYg
V2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSAmJiBpc1BlcnNpc3RlbnQoKSkgeworICAgIGlmIChk
YXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpQbHVnSW5EYXRhKSAmJiBpc1BlcnNp
c3RlbnQoKSkgewogICAgICAgICBjbGFzcyBTdGF0ZSB7CiAgICAgICAgIHB1YmxpYzoKICAgICAg
ICAgICAgIHN0YXRpYyB2b2lkIGRlbGV0ZURhdGEoUmVmPENhbGxiYWNrQWdncmVnYXRvcj4mJiBj
YWxsYmFja0FnZ3JlZ2F0b3IsIFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZvPiYmIHBsdWdpbnMsIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSkKQEAgLTY5
NSw3ICs2OTUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoV2Vic2l0ZURh
dGFUeXBlcyBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZQogICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+Y2FsbElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3Zl
RGF0YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYnNpdGVEYXRh
UmVjb3JkPiYgZGF0YVJlY29yZHMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+JiBk
YXRhUmVjb3Jkcywgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKIApA
QCAtNzkxLDcgKzc5MSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShXZWJz
aXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYnNpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBpZiAoZGF0YVR5cGVzICYgV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2Ug
JiYgbV9zdG9yYWdlTWFuYWdlcikgeworICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0
ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFnZSkgJiYgbV9zdG9yYWdlTWFuYWdlcikgewogICAgICAg
ICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwogCiAgICAgICAgIG1f
c3RvcmFnZU1hbmFnZXItPmRlbGV0ZVNlc3Npb25TdG9yYWdlRW50cmllc0Zvck9yaWdpbnMob3Jp
Z2lucywgW2NhbGxiYWNrQWdncmVnYXRvcl0gewpAQCAtNzk5LDcgKzc5OSw3IEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgY29u
c3QgVmVjdG9yPFdlYnNpCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGlmIChkYXRhVHlwZXMg
JiBXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3JhZ2UgJiYgbV9zdG9yYWdlTWFuYWdlcikgeworICAg
IGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpMb2NhbFN0b3JhZ2UpICYm
IG1fc3RvcmFnZU1hbmFnZXIpIHsKICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5k
aW5nQ2FsbGJhY2soKTsKIAogICAgICAgICBtX3N0b3JhZ2VNYW5hZ2VyLT5kZWxldGVMb2NhbFN0
b3JhZ2VFbnRyaWVzRm9yT3JpZ2lucyhvcmlnaW5zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7CkBA
IC04MDcsNyArODA3LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKFdlYnNp
dGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2Vic2kKICAgICAgICAgfSk7CiAg
ICAgfQogCi0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlICYmIGlzUGVyc2lzdGVudCgpKSB7CisgICAgaWYgKGRhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlKSAmJiBpc1Bl
cnNpc3RlbnQoKSkgewogICAgICAgICBTdHJpbmdDYXB0dXJlIGFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnkgeyBtX2FwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgfTsKIAogICAgICAgICBIYXNoU2V0
PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CkBAIC04MjksNyArODI5
LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKFdlYnNpdGVEYXRhVHlwZXMg
ZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2Vic2kKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
aWYgKGRhdGFUeXBlcyAmIFdlYnNpdGVEYXRhVHlwZVdlYlNRTERhdGFiYXNlcyAmJiBpc1BlcnNp
c3RlbnQoKSkgeworICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpX
ZWJTUUxEYXRhYmFzZXMpICYmIGlzUGVyc2lzdGVudCgpKSB7CiAgICAgICAgIFN0cmluZ0NhcHR1
cmUgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgeyBtX3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5IH07
CiAKICAgICAgICAgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBvcmln
aW5zOwpAQCAtODUyLDcgKzg1Miw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0
YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYnNpCiAgICAgfQog
CiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCi0gICAgaWYgKGRhdGFUeXBlcyAmIFdlYnNp
dGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyAmJiBpc1BlcnNpc3RlbnQoKSkgeworICAgIGlm
IChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMp
ICYmIGlzUGVyc2lzdGVudCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBw
cm9jZXNzUG9vbHMoKSkgewogICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZURhdGFiYXNl
UHJvY2VzcygpOwogCkBAIC04NjQsNyArODY0LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpy
ZW1vdmVEYXRhKFdlYnNpdGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2Vic2kK
ICAgICB9CiAjZW5kaWYKIAotICAgIGlmIChkYXRhVHlwZXMgJiBXZWJzaXRlRGF0YVR5cGVNZWRp
YUtleXMgJiYgaXNQZXJzaXN0ZW50KCkpIHsKKyAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdl
YnNpdGVEYXRhVHlwZTo6TWVkaWFLZXlzKSAmJiBpc1BlcnNpc3RlbnQoKSkgewogICAgICAgICBT
dHJpbmdDYXB0dXJlIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgeyBtX21lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkgfTsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+PiBvcmlnaW5zOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRhdGFSZWNvcmQgOiBk
YXRhUmVjb3JkcykgewpAQCAtODg0LDcgKzg4NCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlRGF0YShXZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYnNp
CiAgICAgfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgaWYgKGRhdGFU
eXBlcyAmIFdlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgJiYgaXNQZXJzaXN0ZW50KCkpIHsKKyAg
ICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6UGx1Z0luRGF0YSkgJiYg
aXNQZXJzaXN0ZW50KCkpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gaG9zdE5hbWVzOwogICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGRhdGFSZWNvcmQgOiBkYXRhUmVjb3JkcykgewogICAgICAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBob3N0TmFtZSA6IGRhdGFSZWNvcmQucGx1Z2luRGF0YUhv
c3ROYW1lcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDBjODI5ZGE5NDYxNDI2ZTRhNjg5ZTIwYjhjZDBk
MzNhNWRkODM2ZGYuLjhlZDkwMzQwNWExNDU3MzZmZGI3ZWYxYTYxMjZmYzQwMzkyYTczYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaApAQCAtMjcsMTEgKzI3LDExIEBACiAjZGVmaW5lIFdlYnNpdGVEYXRhU3Rv
cmVfaAogCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCIKLSNpbmNsdWRl
ICJXZWJzaXRlRGF0YVR5cGVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhh
c2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFN0b3JhZ2VNYW5hZ2VyOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3Mg
V2ViUHJvY2Vzc1Bvb2w7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBXZWJz
aXRlRGF0YVJlY29yZDsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtNzMs
OSArNzQsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBjbG9uZVNlc3Npb25EYXRhKFdl
YlBhZ2VQcm94eSYgc291cmNlUGFnZSwgV2ViUGFnZVByb3h5JiBuZXdQYWdlKTsKIAotICAgIHZv
aWQgZmV0Y2hEYXRhKFdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoVmVjdG9y
PFdlYnNpdGVEYXRhUmVjb3JkPik+IGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIHJlbW92
ZURhdGEoV2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5k
bGVyKTsKLSAgICB2b2lkIHJlbW92ZURhdGEoV2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9y
PFdlYnNpdGVEYXRhUmVjb3JkPiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhh
bmRsZXIpOworICAgIHZvaWQgZmV0Y2hEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4pPiBjb21wbGV0aW9u
SGFuZGxlcik7CisgICAgdm9pZCByZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgcmVtb3Zl
RGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYnNpdGVEYXRh
UmVjb3JkPiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwogCiAg
ICAgU3RvcmFnZU1hbmFnZXIqIHN0b3JhZ2VNYW5hZ2VyKCkgeyByZXR1cm4gbV9zdG9yYWdlTWFu
YWdlci5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNjNhZWFmODA4ZTIyZWM0YjRiNjJhMmU4ZDA2MWVkOWJlYWZm
Nzg3Zi4uYTM4YzZmOGNmNjBhOGEzMGQxMWFkYTg0NmMzZDM1ODZiMzM5MzJjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1
OCw3ICsyMzU4LDcgQEAKIAkJMUFCQzNERjMxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25T
dGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5hdmlnYXRp
b25TdGF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCQzNERjQxODk5RTQz
NzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOYXZpZ2F0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUFCQzNERkIxODk5RjUxQzAwNEYwNjI2IC8qIFdLTmF2aWdhdGlvbkRlbGVnYXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTmF2aWdhdGlvbkRlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBQkY0Mzc5MUEzNjgwNTAwMDNGQjBFNiAvKiBXZWJz
aXRlRGF0YVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVE
YXRhVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCRjQzNzkxQTM2ODA1
MDAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJzaXRlRGF0YVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUFDMDI3M0UxOTY2MjJENjAwQzEyQjc1IC8qIFdlYlBhZ2VQcm94eUNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFnZVByb3h5Q29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzEzMzY1MTg1NjVCNTcwMEYzRUMwNSAvKiBV
c2VyRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzEzMzY2MTg1NjVCNTcwMEYz
RUMwNSAvKiBVc2VyRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2Vy
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDYwNyw3ICs0NjA3LDcgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTFBNDgzMkQ0MUE5Q0RGOTYwMDhCNERGRSAvKiBXZWJzaXRl
RGF0YS5jcHAgKi8sCiAJCQkJMUE0ODMyRDUxQTlDREY5NjAwOEI0REZFIC8qIFdlYnNpdGVEYXRh
LmggKi8sCi0JCQkJMUFCRjQzNzkxQTM2ODA1MDAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhVHlwZXMu
aCAqLywKKwkJCQkxQUJGNDM3OTFBMzY4MDUwMDAzRkIwRTYgLyogV2Vic2l0ZURhdGFUeXBlLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYnNpdGVEYXRhOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGVhNGJj
M2NiOTBmOThlYzVlZTZmNzJkYTIwMWJlYjc4YmFiNDE3YzUuLmZlZTRmYmEzMTVlMDA3NWQxZGRl
MzhmOWU3OGJkZjVmOWI2YjUzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtNjAsNyArNjAsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YnNpdGVEYXRhLmgiCi0jaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlcy5oIgorI2luY2x1ZGUgIldl
YnNpdGVEYXRhVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0FYT2JqZWN0Q2FjaGUuaD4KQEAgLTExMTEsMjMgKzExMTEsMjMgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpyZWxlYXNlUGFnZUNhY2hlKCkKICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5l
VG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlKTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90
IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYlByb2Nlc3M6
OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBX
ZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YTsKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vi
c2l0ZURhdGFUeXBlTWVtb3J5Q2FjaGUpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAgICAgICBmb3IgKGF1dG8m
IG9yaWdpbiA6IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5vcmlnaW5zV2l0aENhY2hlKHNlc3Np
b25JRCkpCi0gICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0
YTo6RW50cnkgeyBvcmlnaW4sIFdlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIH0pOworICAgICAg
ICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgb3Jp
Z2luLCBXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlIH0pOwogICAgIH0KIAogICAgIHBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlk
RmV0Y2hXZWJzaXRlRGF0YShjYWxsYmFja0lELCB3ZWJzaXRlRGF0YSksIDApOwogfQogCi12b2lk
IFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFVOVVNF
RF9QQVJBTShtb2RpZmllZFNpbmNlKTsKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vi
c2l0ZURhdGFUeXBlTWVtb3J5Q2FjaGUpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAgICAgICBQYWdlQ2FjaGU6
OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOwogICAg
ICAgICBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkuZXZpY3RSZXNvdXJjZXMoc2Vzc2lvbklEKTsK
IApAQCAtMTEzNyw5ICsxMTM3LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0
YShTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGUKICAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRp
ZERlbGV0ZVdlYnNpdGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBX
ZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzICYgV2Vic2l0
ZURhdGFUeXBlTWVtb3J5Q2FjaGUpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlu
cyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAgICAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luRGF0
YSA6IG9yaWdpbkRhdGFzKQogICAgICAgICAgICAgb3JpZ2lucy5hZGQob3JpZ2luRGF0YS5zZWN1
cml0eU9yaWdpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXgg
ZDdkOGU0NjgwNmU1ZWE2YjJiYzFmZjQ1ZGM2ZWI4YjRkYmQwZjMyZS4uNWY0ODFhMGRmODM1ZjIz
MjkyY2I1ZjAyMmZiMDc5MjRmN2I0ZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTgyLDYgKzgyLDcgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFz
cyBXZWJQYWdlOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3Vw
cGxlbWVudDsKK2VudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YTsKIHN0cnVjdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlOwpAQCAtMjU1LDkgKzI1Niw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJl
bGVhc2VQYWdlQ2FjaGUoKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpT
ZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRf
dCB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURh
dGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdp
bnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCB1aW50NjRfdCBjYWxs
YmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRp
bWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBk
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAgICAgdm9pZCBzZXRNZW1vcnlD
YWNoZURpc2FibGVkKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODU0ZmNjNjBlZmE1Yzk5YjM4YWJkNDYyNGYzNmZm
ZDlkZWM4NGRmYy4uOTRiZDJjOGJlOWZiNzk4MzI5NTdlZmJjYzQwZTdhMTc5NDJlMzMwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNzUsOSArNzUsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
IAogICAgIFJlbGVhc2VQYWdlQ2FjaGUoKQogCi0gICAgRmV0Y2hXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRf
dCBjYWxsYmFja0lEKQotICAgIERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAg
ICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gb3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBGZXRjaFdlYnNpdGVE
YXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBE
ZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogCiAgICAgU2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZs
YWcpCiAjaWYgUExBVEZPUk0oQ09DT0EpCg==
</data>
<flag name="review"
          id="297112"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>