<?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>232838</bug_id>
          
          <creation_ts>2021-11-08 12:49:18 -0800</creation_ts>
          <short_desc>Parse redirect and modify-headers actions for WKContentRuleList</short_desc>
          <delta_ts>2021-11-08 16:19:22 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812769</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-08 12:49:18 -0800</bug_when>
    <thetext>Parse redirect and modify-headers actions for WKContentRuleList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812771</commentid>
    <comment_count>1</comment_count>
      <attachid>443591</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-08 12:50:48 -0800</bug_when>
    <thetext>Created attachment 443591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812860</commentid>
    <comment_count>2</comment_count>
      <attachid>443613</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-08 14:59:42 -0800</bug_when>
    <thetext>Created attachment 443613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812861</commentid>
    <comment_count>3</comment_count>
      <attachid>443591</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2021-11-08 15:02:47 -0800</bug_when>
    <thetext>Comment on attachment 443591
Patch

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

&gt; Source/WebCore/contentextensions/ContentExtensionError.cpp:97
&gt; +                return &quot;add-or-replace-parameters value must be an array&quot;;

&quot;A add-or-replace-parameters value…&quot; to match the other errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812864</commentid>
    <comment_count>4</comment_count>
      <attachid>443613</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2021-11-08 15:04:25 -0800</bug_when>
    <thetext>Comment on attachment 443613
Patch

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

&gt; Source/WebCore/contentextensions/ContentExtensionError.cpp:95
&gt; +                return &quot;add-or-replace-parameters value must be an array&quot;;

&quot;A add-or-replace-parameters value…&quot; to match the other errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812874</commentid>
    <comment_count>5</comment_count>
      <attachid>443615</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-08 15:16:10 -0800</bug_when>
    <thetext>Created attachment 443615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812913</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-08 16:18:31 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/285443/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812915</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-08 16:19:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/85178198&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443591</attachid>
            <date>2021-11-08 12:50:48 -0800</date>
            <delta_ts>2021-11-08 15:30:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232838-20211108125047.patch</filename>
            <type>text/plain</type>
            <size>52251</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZWUwMWJiY2Q1OTQ4YTEzZmU2NzgwOTlmMTVhODU0YTU0OGEyOWEwLi41ZDhmNGZhYjNhZmZjYjlj
ZGI0NDM1Yzc3NGQ0MGMzYjU5MGM3ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0xMS0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFBhcnNlIHJlZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBh
Y3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0T2JqZWN0
KToKKwogMjAyMS0xMS0wNSAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIENoZXJyeS1waWNrIHIyODQ2MzUuIHJkYXI6Ly9wcm9ibGVtLzg1MDM5OTc3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IGE4NTZlNzhhMDE4ZTVkMWFmOGYzYjU0MDI3NDA0MWI3MDc0MzZiY2EuLmZmMWJmNjA5Mzk2
YTlkMjE3Mjg0NDMzNDZiMjBmMzk3NmM4Y2MzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MTEtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBQYXJzZSByZWRpcmVjdCBhbmQgbW9kaWZ5LWhlYWRlcnMgYWN0aW9ucyBmb3IgV0tDb250
ZW50UnVsZUxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMjgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0pTT05WYWx1ZXMuY3BwOgorICAgICAgICAoV1RGOjpKU09OSW1wbDo6VmFsdWU6
OmFzT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdURjo6SlNPTkltcGw6Ok9iamVjdEJhc2U6OmFz
T2JqZWN0IGNvbnN0KToKKyAgICAgICAgKiB3dGYvSlNPTlZhbHVlcy5oOgorCiAyMDIxLTExLTA1
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmVzdHJ1Y3R1cmUgV0tDb250ZW50UnVsZUxpc3QgQWN0aW9uIHN0b3JhZ2UgZHVyaW5nIGNvbXBp
bGF0aW9uIGFuZCBpbnRlcnByZXRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5OTliNmUyYTQzZmU2Njk3
MmE1OWUwNmE4NGYxMzBhMDI2M2E4NmMuLjNjOGI5ODU0M2RhY2ZmOWVmM2IxNzllZjAzMzBjMmJm
ODE3NmZlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAyMS0xMS0wOCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFBhcnNlIHJl
ZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6aXNvbGF0ZWRD
b3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlI
ZWFkZXJzQWN0aW9uOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246OmRl
c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlI
ZWFkZXJzQWN0aW9uOjpzZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0Fj
dGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFk
ZXJJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRl
bnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJpYWxpemUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRl
cnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJ
bmZvOjpzZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpSZWRpcmVjdEFjdGlvbjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpvcGVyYXRvcj09IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlv
bjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpSZWRpcmVjdEFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpzZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3Jt
QWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpzZXJpYWxp
emUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0
QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9u
OjpzZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFy
c2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9u
OjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjppc29sYXRlZENvcHkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpV
UkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3Jt
QWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1
ZXJ5VHJhbnNmb3JtOjpzZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRy
YW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJh
bnNmb3JtOjpRdWVyeUtleVZhbHVlOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rp
b246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6c2VyaWFsaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlv
bjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6ZGVz
ZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0
QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVl
OjpzZXJpYWxpemVkTGVuZ3RoKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uQWN0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OkFwcGVuZE9wZXJhdGlvbjo6
aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpBcHBlbmRPcGVyYXRpb246
Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OlNldE9wZXJhdGlvbjo6aXNv
bGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpN
b2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpTZXRPcGVyYXRpb246Om9wZXJh
dG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlm
eUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OlJlbW92ZU9wZXJhdGlvbjo6aXNvbGF0
ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2Rp
ZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpSZW1vdmVPcGVyYXRpb246Om9wZXJh
dG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGly
ZWN0QWN0aW9uOjpFeHRlbnNpb25QYXRoQWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpFeHRlbnNp
b25QYXRoQWN0aW9uOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0dXRpb25BY3Rpb246Omlz
b2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
UmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjpvcGVyYXRvcj09IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6
VVJMQWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxBY3Rpb246Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6c2VyaWFsaXplQWN0aW9u
cyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb250ZW50RXh0ZW5zaW9u
RXJyb3JDYXRlZ29yeSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkVycm9yLmg6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
blBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Z2V0U3Ry
aW5nTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEFjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZFJ1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRFbmNvZGVkUnVsZXMpOgorICAg
ICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRl
bnRSdWxlTGlzdHNGb3JQaW5nTG9hZCk6CisKIDIwMjEtMTEtMDUgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXN0cnVjdHVyZSBXS0NvbnRl
bnRSdWxlTGlzdCBBY3Rpb24gc3RvcmFnZSBkdXJpbmcgY29tcGlsYXRpb24gYW5kIGludGVycHJl
dGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCmluZGV4IDQ4OTVjNWE3MGQ2YTQ3NDU1
OTdmNzcxNjNiYzkyZTA3NDU1OTQ4MjkuLjgyMTI5YjJmNTQzOWZiZjU5ZjZlOGFiM2MyMGEyN2Yz
YjI4N2E5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCkBAIC0zNDYsNyArMzQ2LDkg
QEAgUmVmUHRyPEpTT046OlZhbHVlPiBCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0VmFsdWUoSlNPTjo6
T2JqZWN0KiBwYXJhbXMsIGNvbnN0IFN0cmkKIAogUmVmUHRyPEpTT046Ok9iamVjdD4gQmFja2Vu
ZERpc3BhdGNoZXI6OmdldE9iamVjdChKU09OOjpPYmplY3QqIHBhcmFtcywgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIHJlcXVpcmVkKQogewotICAgIHJldHVybiBnZXRQcm9wZXJ0eVZhbHVlPFJl
ZlB0cjxKU09OOjpPYmplY3Q+PihwYXJhbXMsIG5hbWUsIHJlcXVpcmVkLCAmSlNPTjo6VmFsdWU6
OmFzT2JqZWN0LCAiT2JqZWN0Iik7CisgICAgcmV0dXJuIGdldFByb3BlcnR5VmFsdWU8UmVmUHRy
PEpTT046Ok9iamVjdD4+KHBhcmFtcywgbmFtZSwgcmVxdWlyZWQsIFtdKEpTT046OlZhbHVlJiB2
YWx1ZSkgeworICAgICAgICByZXR1cm4gdmFsdWUuYXNPYmplY3QoKTsKKyAgICB9LCAiT2JqZWN0
Iik7CiB9CiAKIFJlZlB0cjxKU09OOjpBcnJheT4gQmFja2VuZERpc3BhdGNoZXI6OmdldEFycmF5
KEpTT046Ok9iamVjdCogcGFyYW1zLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVxdWlyZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL0pTT05WYWx1ZXMuY3BwCmluZGV4IGM0YmViNmYwMGQwOTRjZjllNzk3NGI1YzQ3OTExZDg1
OTU4N2Q0NTEuLjlkNjljMWI3ZDQ2MWMyMmU5MWEwMTJkZGM3ZjY0NWI2MGU2YTYyNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0pTT05WYWx1ZXMuY3BwCkBAIC00OTQsNiArNDk0LDExIEBAIFJlZlB0cjxPYmplY3Q+IFZhbHVl
Ojphc09iamVjdCgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK1JlZlB0cjxjb25zdCBPYmpl
Y3Q+IFZhbHVlOjphc09iamVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
IFJlZlB0cjxBcnJheT4gVmFsdWU6OmFzQXJyYXkoKQogewogICAgIHJldHVybiBudWxscHRyOwpA
QCAtNjQwLDYgKzY0NSwxMiBAQCBSZWZQdHI8T2JqZWN0PiBPYmplY3RCYXNlOjphc09iamVjdCgp
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE9iamVjdCo+KHRoaXMpOwogfQogCitSZWZQdHI8Y29u
c3QgT2JqZWN0PiBPYmplY3RCYXNlOjphc09iamVjdCgpIGNvbnN0Cit7CisgICAgQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKE9iamVjdCkgPT0gc2l6ZW9mKE9iamVjdEJhc2UpLCBjYW5ub3RfY2FzdCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdCo+KHRoaXMpOworfQorCiBzaXpl
X3QgT2JqZWN0QmFzZTo6bWVtb3J5Q29zdCgpIGNvbnN0CiB7CiAgICAgc2l6ZV90IG1lbW9yeUNv
c3QgPSBWYWx1ZTo6bWVtb3J5Q29zdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNP
TlZhbHVlcy5oIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCmluZGV4IDdiNTY5ZTdiMGVm
NjA1Njg0NTRkYzliYWQ4OWYxZjFiZWMxNWQ1MTcuLmRiYTU3NzIzY2ZlODNiMDA1ZWE4NWZkZjA5
ZTQ0NDg4YmVjZDI4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGlj
OgogICAgIFN0cmluZyBhc1N0cmluZygpIGNvbnN0OwogICAgIFJlZlB0cjxWYWx1ZT4gYXNWYWx1
ZSgpOwogICAgIHZpcnR1YWwgUmVmUHRyPE9iamVjdD4gYXNPYmplY3QoKTsKKyAgICB2aXJ0dWFs
IFJlZlB0cjxjb25zdCBPYmplY3Q+IGFzT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZWZQ
dHI8QXJyYXk+IGFzQXJyYXkoKTsKIAogICAgIHN0YXRpYyBSZWZQdHI8VmFsdWU+IHBhcnNlSlNP
Tihjb25zdCBTdHJpbmcmKTsKQEAgLTE3MCw2ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
Y29uc3RfaXRlcmF0b3IgPSBEYXRhU3RvcmFnZTo6Y29uc3RfaXRlcmF0b3I7CiAKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgUmVmUHRyPE9iamVjdD4gYXNPYmplY3QoKSBmaW5hbDsKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgUmVmUHRyPGNvbnN0IE9iamVjdD4gYXNPYmplY3QoKSBjb25zdCBmaW5h
bDsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgbWVtb3J5Q29zdCgpIGNvbnN0IGZp
bmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGYyZWY1MGJiZDhiNGYxNDc3OWI3NGFjZTkwZTU1YTIw
N2Q1MmI4MTYuLmRmZDI2MDE2NTRiZjE0Yzg1YmVlMDMzZjU0MjU1MDQ0OTJhYTJkNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC02MDcsNiArNjA3LDcgQEAgY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRG
aWx0ZXJzQWxwaGFiZXQuY3BwCiBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMu
Y3BwCiBjb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24uY3BwCiBjb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAorY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQ29tcGlsZXIuY3BwCiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3Iu
Y3BwCiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRh
ZmM1ZDhjNjg3ZmQxNTBiMWU1NTIyNDZlNWRlODc0NGZkMWEzNTEuLmUyMzU5ZWZlY2I2NWU4OGY1
YTYzNjgzNWE4YTkyMmFhNDZjMTE4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk5MTMsNiArOTkxMyw3IEBACiAJCTVDOUVG
MkYyMjFGMDYxNzEwMDNCREM1NiAvKiBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNBMURFQzIxRjcxRTY4NjAwRTcxQkQzIC8qIEhUVFBI
ZWFkZXJGaWVsZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQ
SGVhZGVyRmllbGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0ExREVDNDFG
NzFFNjg3MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUVFBIZWFkZXJGaWVsZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1Q0FCREJGMTI3MzVGNEI3MDBCODhCQ0IgLyogQ29udGVudEV4dGVuc2lvbkFjdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudEV4dGVuc2lv
bkFjdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0FGN0FBRjI2RkE5
OTY4MDAwM0YxOUUgLyogTmV0d29ya0xvYWRNZXRyaWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtMb2FkTWV0cmljcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDQjM3RkZDMUM2MkQyNzgwMEYyMDE4OCAvKiBTY3JvbGxiYXJzQ29u
dHJvbGxlck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
b2xsYmFyc0NvbnRyb2xsZXJNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUNCMzdGRkQxQzYyRDI3ODAwRjIwMTg4IC8qIFNjcm9sbGJhcnNDb250cm9sbGVyTW9jay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxiYXJzQ29udHJvbGxlck1vY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjE2LDExICsxODYxNywxMSBAQAog
CQkxQTU2OUNDNDBEN0UyQjYwMDA3QzM5ODMgLyogYnJpZGdlICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1OUI1OTc3MTExMDg2NTU2MDA3MTU5RTggLyog
anNjICovLAogCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjICovLAogCQkJCTU5
OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJCQkxQTcxRDU3OTBGMzM4
MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJMUE3MUQ1N0EwRjMzODE5
MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKLQkJCQk1OUI1OTc3MTExMDg2NTU2MDA3
MTU5RTggLyoganNjICovLAogCQkJCTFBNTY5Q0VGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X2FycmF5LmNwcCAqLywKIAkJCQkxQTU2OUNGMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9h
cnJheS5oICovLAogCQkJCTFBNTY5Q0YxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhv
ZC5jcHAgKi8sCkBAIC0xOTI4MCw2ICsxOTI4MSw3IEBACiAJCQkJN0M5M0YzNDgxQUE2QkE1RTAw
QTk4QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oICovLAogCQkJCTUxQjQ1RDFFMUFC
OEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmNwcCAqLywKIAkJCQk1MUI0NUQxRjFB
QjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5oICovLAorCQkJCTVDQUJEQkYxMjcz
NUY0QjcwMEI4OEJDQiAvKiBDb250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAgKi8sCiAJCQkJNUNE
RkE2QzcxQUE0RjJEQTAwRUE4NzQ2IC8qIENvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmggKi8sCiAJ
CQkJN0M5M0YzNEIxQUE2QkYwNzAwQTk4QkFCIC8qIENvbnRlbnRFeHRlbnNpb25Db21waWxlci5j
cHAgKi8sCiAJCQkJN0M5M0YzNEMxQUE2QkYwNzAwQTk4QkFCIC8qIENvbnRlbnRFeHRlbnNpb25D
b21waWxlci5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMWQ4YTMx
YzgxNzRmYzJkZWFlZDFhYzVkZGFiZDFhZDg5OTMxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAK
QEAgLTAsMCArMSwzNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaCIKKworI2luY2x1ZGUgIkNvbnRlbnRFeHRl
bnNpb25FcnJvci5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnMgeworCitFeHBlY3RlZDxNb2RpZnlIZWFk
ZXJzQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IE1vZGlmeUhlYWRlcnNBY3Rpb246OnBhcnNlKGNv
bnN0IEpTT046Ok9iamVjdCYgbW9kaWZ5SGVhZGVycykKK3sKKyAgICBhdXRvIGFycmF5ID0gbW9k
aWZ5SGVhZGVycy5nZXRBcnJheSgicmVxdWVzdC1oZWFkZXJzIik7CisgICAgaWYgKCFhcnJheSkK
KyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
Tk1vZGlmeUhlYWRlcnNOb3RBcnJheSk7CisKKyAgICBWZWN0b3I8TW9kaWZ5SGVhZGVyc0FjdGlv
bjo6TW9kaWZ5SGVhZGVySW5mbz4gdmVjdG9yOworICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGFycmF5LT5sZW5ndGgoKSk7CisgICAgZm9yIChhdXRvJiB2YWx1ZSA6ICphcnJheSkg
eworICAgICAgICBhdXRvIGluZm8gPSBNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZSh2YWx1ZS5nZXQo
KSk7CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChpbmZvLmVycm9yKCkpOworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKFdURk1vdmUo
KmluZm8pKTsKKyAgICB9CisgICAgcmV0dXJuIE1vZGlmeUhlYWRlcnNBY3Rpb24geyBXVEZNb3Zl
KHZlY3RvcikgfTsKK30KKworTW9kaWZ5SGVhZGVyc0FjdGlvbiBNb2RpZnlIZWFkZXJzQWN0aW9u
Ojppc29sYXRlZENvcHkoKSBjb25zdAoreworICAgIHJldHVybiB7CisgICAgICAgIGNyb3NzVGhy
ZWFkQ29weShyZXF1ZXN0SGVhZGVycykKKyAgICB9OworfQorCitib29sIE1vZGlmeUhlYWRlcnNB
Y3Rpb246Om9wZXJhdG9yPT0oY29uc3QgTW9kaWZ5SGVhZGVyc0FjdGlvbiYgb3RoZXIpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG90aGVyLnJlcXVlc3RIZWFkZXJzID09IHRoaXMtPnJlcXVlc3RIZWFk
ZXJzOworfQorCisvLyBGSVhNRTogSW1wbGVtZW50IHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFs
aXphdGlvbiBvZiBlYWNoIG9mIHRoZXNlIHR5cGVzLCB0aGVuIGRvIHRoZWlyIGFjdGlvbnMuCit2
b2lkIE1vZGlmeUhlYWRlcnNBY3Rpb246OnNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25z
dAoreworfQorCitNb2RpZnlIZWFkZXJzQWN0aW9uIE1vZGlmeUhlYWRlcnNBY3Rpb246OmRlc2Vy
aWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworc2l6
ZV90IE1vZGlmeUhlYWRlcnNBY3Rpb246OnNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50
OF90PikKK3sKKyAgICByZXR1cm4gMDsKK30KKworYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9uOjpN
b2RpZnlIZWFkZXJJbmZvOjpwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYgaW5mb1ZhbHVlKSAtPiBF
eHBlY3RlZDxNb2RpZnlIZWFkZXJJbmZvLCBzdGQ6OmVycm9yX2NvZGU+Cit7CisgICAgYXV0byBv
YmplY3QgPSBpbmZvVmFsdWUuYXNPYmplY3QoKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhl
YWRlcnNJbmZvTm90QURpY3Rpb25hcnkpOworCisgICAgU3RyaW5nIG9wZXJhdGlvbiA9IG9iamVj
dC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iKTsKKyAgICBpZiAoIW9wZXJhdGlvbikKKyAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhl
YWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKKworICAgIFN0cmluZyBoZWFkZXIgPSBvYmplY3QtPmdl
dFN0cmluZygiaGVhZGVyIik7CisgICAgaWYgKCFoZWFkZXIpCisgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2lu
Z0hlYWRlcik7CisKKyAgICBTdHJpbmcgdmFsdWUgPSBvYmplY3QtPmdldFN0cmluZygidmFsdWUi
KTsKKworICAgIGlmIChvcGVyYXRpb24gPT0gInNldCIpIHsKKyAgICAgICAgaWYgKCF2YWx1ZSkK
KyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ1ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIE1vZGlmeUhl
YWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm8geyBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2Rp
ZnlIZWFkZXJJbmZvOjpTZXRPcGVyYXRpb24geyBXVEZNb3ZlKGhlYWRlciksIFdURk1vdmUodmFs
dWUpIH0gfTsKKyAgICB9CisgICAgaWYgKG9wZXJhdGlvbiA9PSAiYXBwZW5kIikgeworICAgICAg
ICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWUpOworICAgICAgICBy
ZXR1cm4gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5mbyB7IE1vZGlmeUhlYWRl
cnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OkFwcGVuZE9wZXJhdGlvbiB7IFdURk1vdmUoaGVh
ZGVyKSwgV1RGTW92ZSh2YWx1ZSkgfSB9OworICAgIH0KKyAgICBpZiAob3BlcmF0aW9uID09ICJy
ZW1vdmUiKQorICAgICAgICByZXR1cm4gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVy
SW5mbyB7IE1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OlJlbW92ZU9wZXJh
dGlvbiB7IFdURk1vdmUoaGVhZGVyKSB9IH07CisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNJbnZhbGlkT3BlcmF0aW9uKTsK
K30KKworYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjppc29sYXRl
ZENvcHkoKSBjb25zdCAtPiBNb2RpZnlIZWFkZXJJbmZvCit7CisgICAgcmV0dXJuIHsKKyAgICAg
ICAgY3Jvc3NUaHJlYWRDb3B5KG9wZXJhdGlvbikKKyAgICB9OworfQorCitib29sIE1vZGlmeUhl
YWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86Om9wZXJhdG9yPT0oY29uc3QgTW9kaWZ5SGVh
ZGVySW5mbyYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVyLm9wZXJhdGlvbiA9PSB0
aGlzLT5vcGVyYXRpb247Cit9CisKK3ZvaWQgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6c2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0Cit7Cit9CisKK2F1dG8g
TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6ZGVzZXJpYWxpemUoU3Bhbjxj
b25zdCB1aW50OF90PikgLT4gTW9kaWZ5SGVhZGVySW5mbworeworICAgIHJldHVybiB7IH07Cit9
CisKK3NpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJpYWxp
emVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0V4
cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0QWN0aW9uOjpw
YXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0KQoreworICAgIGF1dG8gcmVk
aXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRPYmplY3QoInJlZGlyZWN0Iik7CisgICAgaWYgKCFy
ZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTlJlZGlyZWN0TWlzc2luZyk7CisKKyAgICBpZiAoYXV0byBleHRlbnNpb25QYXRo
ID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBhdGgiKTsgISFleHRlbnNpb25QYXRo
KSB7CisgICAgICAgIGlmICghZXh0ZW5zaW9uUGF0aC5zdGFydHNXaXRoKCcvJykpCisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVk
aXJlY3RFeHRlbnNpb25QYXRoRG9lc05vdFN0YXJ0V2l0aFNsYXNoKTsKKyAgICAgICAgcmV0dXJu
IFJlZGlyZWN0QWN0aW9uIHsgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7IFdURk1vdmUoZXh0ZW5zaW9u
UGF0aCkgfSB9OworICAgIH0KKworICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVk
aXJlY3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIik7ICEhcmVnZXhTdWJzdGl0dXRp
b24pCisgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uIHsgV1RGTW92ZShyZWdleFN1YnN0aXR1dGlvbikgfSB9OworCisgICAgaWYgKGF1dG8gdHJh
bnNmb3JtID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIikpIHsKKyAgICAgICAgYXV0
byBwYXJzZWRUcmFuc2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKCp0cmFuc2Zvcm0p
OworICAgICAgICBpZiAoIXBhcnNlZFRyYW5zZm9ybSkKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChwYXJzZWRUcmFuc2Zvcm0uZXJyb3IoKSk7CisgICAgICAgIHJldHVybiBSZWRp
cmVjdEFjdGlvbiB7IFdURk1vdmUoKnBhcnNlZFRyYW5zZm9ybSkgfTsKKyAgICB9CisKKyAgICBp
ZiAoYXV0byB1cmwgPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJ1cmwiKTsgISF1cmwpIHsKKyAgICAg
ICAgaWYgKHByb3RvY29sSXNKYXZhU2NyaXB0KFN0cmluZ1ZpZXcodXJsKSkpCisgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RVUkxQcm90b2NvbElzSmF2YVNjcmlwdCk7CisgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlv
biB7IFVSTEFjdGlvbiB7IFdURk1vdmUodXJsKSB9IH07CisgICAgfQorCisgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0SW52YWxpZFR5
cGUpOworfQorCitSZWRpcmVjdEFjdGlvbiBSZWRpcmVjdEFjdGlvbjo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4geworICAgICAgICBjcm9zc1RocmVhZENvcHkoYWN0aW9uKQor
ICAgIH07Cit9CisKK2Jvb2wgUmVkaXJlY3RBY3Rpb246Om9wZXJhdG9yPT0oY29uc3QgUmVkaXJl
Y3RBY3Rpb24mIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBvdGhlci5hY3Rpb24gPT0gdGhp
cy0+YWN0aW9uOworfQorCit2b2lkIFJlZGlyZWN0QWN0aW9uOjpzZXJpYWxpemUoVmVjdG9yPHVp
bnQ4X3Q+JikgY29uc3QKK3sKK30KKworUmVkaXJlY3RBY3Rpb24gUmVkaXJlY3RBY3Rpb246OmRl
c2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIHsgfTsKK30KKwor
c2l6ZV90IFJlZGlyZWN0QWN0aW9uOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhf
dD4pCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+IEV4cGVj
dGVkPFVSTFRyYW5zZm9ybUFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPgoreworICAgIFJlZGlyZWN0
QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOworICAgIGFjdGlvbi5mcmFnbWVudCA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Iik7CisgICAgYWN0aW9uLmhvc3QgPSB0cmFu
c2Zvcm0uZ2V0U3RyaW5nKCJob3N0Iik7CisgICAgYWN0aW9uLnBhc3N3b3JkID0gdHJhbnNmb3Jt
LmdldFN0cmluZygicGFzc3dvcmQiKTsKKyAgICBhY3Rpb24ucGF0aCA9IHRyYW5zZm9ybS5nZXRT
dHJpbmcoInBhdGgiKTsKKyAgICBhY3Rpb24ucG9ydCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBv
cnQiKTsKKyAgICAvLyBGSVhNRTogQ2hlY2sgc2NoZW1lIGFnYWluc3QgYSBzZXQgb2YgYWxsb3dl
ZCBzY2hlbWVzIGFuZCByZXR1cm4gYSBzdGQ6OmVycm9yX2NvZGUgaWYgaXQgaXMgbm90IGFsbG93
ZWQuCisgICAgYWN0aW9uLnNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSIpOwor
ICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIik7Cisg
ICAgaWYgKGF1dG8gcXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10
cmFuc2Zvcm0iKSkgeworICAgICAgICBhdXRvIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtID0gUXVlcnlU
cmFuc2Zvcm06OnBhcnNlKCpxdWVyeVRyYW5zZm9ybSk7CisgICAgICAgIGlmICghcGFyc2VkUXVl
cnlUcmFuc2Zvcm0pCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocGFyc2VkUXVl
cnlUcmFuc2Zvcm0uZXJyb3IoKSk7CisgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9ICpw
YXJzZWRRdWVyeVRyYW5zZm9ybTsKKyAgICB9IGVsc2UKKyAgICAgICAgYWN0aW9uLnF1ZXJ5VHJh
bnNmb3JtID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiKTsKKyAgICByZXR1cm4gV1RGTW92
ZShhY3Rpb24pOworfQorCithdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
Omlzb2xhdGVkQ29weSgpIGNvbnN0IC0+IFVSTFRyYW5zZm9ybUFjdGlvbgoreworICAgIHJldHVy
biB7CisgICAgICAgIGNyb3NzVGhyZWFkQ29weShmcmFnbWVudCksCisgICAgICAgIGNyb3NzVGhy
ZWFkQ29weShob3N0KSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHBhc3N3b3JkKSwKKyAgICAg
ICAgY3Jvc3NUaHJlYWRDb3B5KHBhdGgpLAorICAgICAgICBjcm9zc1RocmVhZENvcHkocG9ydCks
CisgICAgICAgIGNyb3NzVGhyZWFkQ29weShxdWVyeVRyYW5zZm9ybSksCisgICAgICAgIGNyb3Nz
VGhyZWFkQ29weShzY2hlbWUpLAorICAgICAgICBjcm9zc1RocmVhZENvcHkodXNlcm5hbWUpCisg
ICAgfTsKK30KKworYm9vbCBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpvcGVy
YXRvcj09KGNvbnN0IFVSTFRyYW5zZm9ybUFjdGlvbiYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG90aGVyLmZyYWdtZW50ID09IHRoaXMtPmZyYWdtZW50CisgICAgICAgICYmIG90aGVyLmhv
c3QgPT0gdGhpcy0+aG9zdAorICAgICAgICAmJiBvdGhlci5wYXNzd29yZCA9PSB0aGlzLT5wYXNz
d29yZAorICAgICAgICAmJiBvdGhlci5wYXRoID09IHRoaXMtPnBhdGgKKyAgICAgICAgJiYgb3Ro
ZXIucG9ydCA9PSB0aGlzLT5wb3J0CisgICAgICAgICYmIG90aGVyLnF1ZXJ5VHJhbnNmb3JtID09
IHRoaXMtPnF1ZXJ5VHJhbnNmb3JtCisgICAgICAgICYmIG90aGVyLnNjaGVtZSA9PSB0aGlzLT5z
Y2hlbWUKKyAgICAgICAgJiYgb3RoZXIudXNlcm5hbWUgPT0gdGhpcy0+dXNlcm5hbWU7Cit9CisK
K3ZvaWQgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6c2VyaWFsaXplKFZlY3Rv
cjx1aW50OF90PiYpIGNvbnN0Cit7Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6ZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90PikgLT4gVVJMVHJhbnNm
b3JtQWN0aW9uCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworc2l6ZV90IFJlZGlyZWN0QWN0aW9u
OjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90
PikKK3sKKyAgICByZXR1cm4gMDsKK30KKworYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNm
b3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiBxdWVy
eVRyYW5zZm9ybSkgLT4gRXhwZWN0ZWQ8UXVlcnlUcmFuc2Zvcm0sIHN0ZDo6ZXJyb3JfY29kZT4K
K3sKKyAgICBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9y
bSBwYXJzZWRRdWVyeVRyYW5zZm9ybTsKKworICAgIGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNW
YWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1vdmUtcGFyYW1ldGVycyIpKSB7Cisg
ICAgICAgIGF1dG8gcmVtb3ZlUGFyYW1ldGVyc0FycmF5ID0gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVl
LT5hc0FycmF5KCk7CisgICAgICAgIGlmICghcmVtb3ZlUGFyYW1ldGVyc0FycmF5KQorICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJl
bW92ZVBhcmFtZXRlcnNOb3RTdHJpbmdBcnJheSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJl
bW92ZVBhcmFtZXRlcnNWZWN0b3I7CisgICAgICAgIHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShyZW1vdmVQYXJhbWV0ZXJzQXJyYXktPmxlbmd0aCgpKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXIgOiAqcmVtb3ZlUGFyYW1ldGVyc0FycmF5KSB7Cisg
ICAgICAgICAgICBpZiAocGFyYW1ldGVyLmdldCgpLnR5cGUoKSAhPSBKU09OOjpWYWx1ZTo6VHlw
ZTo6U3RyaW5nKQorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJhbWV0ZXJzTm90U3RyaW5nQXJyYXkpOworICAg
ICAgICAgICAgcmVtb3ZlUGFyYW1ldGVyc1ZlY3Rvci51bmNoZWNrZWRBcHBlbmQocGFyYW1ldGVy
LmdldCgpLmFzU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHBhcnNlZFF1ZXJ5VHJhbnNm
b3JtLnJlbW92ZVBhcmFtcyA9IFdURk1vdmUocmVtb3ZlUGFyYW1ldGVyc1ZlY3Rvcik7CisgICAg
fQorCisgICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0gcXVlcnlUcmFu
c2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMiKSkgeworICAgICAgICBh
dXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSA9IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNW
YWx1ZS0+YXNBcnJheSgpOworICAgICAgICBpZiAoIWFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJh
eSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzTm90QXJyYXkpOworICAgICAgICBWZWN0b3I8
UXVlcnlLZXlWYWx1ZT4ga2V5VmFsdWVzOworICAgICAgICBrZXlWYWx1ZXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXktPmxlbmd0aCgpKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBxdWVyeUtleVZhbHVlIDogKmFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJh
eSkgeworICAgICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IFF1ZXJ5S2V5VmFsdWU6OnBhcnNlKHF1
ZXJ5S2V5VmFsdWUuZ2V0KCkpOworICAgICAgICAgICAgaWYgKCFrZXlWYWx1ZSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoa2V5VmFsdWUuZXJyb3IoKSk7CisgICAgICAg
ICAgICBrZXlWYWx1ZXMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmtleVZhbHVlKSk7CisgICAg
ICAgIH0KKyAgICAgICAgcGFyc2VkUXVlcnlUcmFuc2Zvcm0uYWRkT3JSZXBsYWNlUGFyYW1zID0g
V1RGTW92ZShrZXlWYWx1ZXMpOworICAgIH0KKworICAgIHJldHVybiBXVEZNb3ZlKHBhcnNlZFF1
ZXJ5VHJhbnNmb3JtKTsKK30KKworYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0
aW9uOjpRdWVyeVRyYW5zZm9ybTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QgLT4gUXVlcnlUcmFuc2Zv
cm0KK3sKKyAgICByZXR1cm4geworICAgICAgICBjcm9zc1RocmVhZENvcHkoYWRkT3JSZXBsYWNl
UGFyYW1zKSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHJlbW92ZVBhcmFtcykKKyAgICB9Owor
fQorCitib29sIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNm
b3JtOjpvcGVyYXRvcj09KGNvbnN0IFF1ZXJ5VHJhbnNmb3JtJiBvdGhlcikgY29uc3QKK3sKKyAg
ICByZXR1cm4gb3RoZXIuYWRkT3JSZXBsYWNlUGFyYW1zID09IHRoaXMtPmFkZE9yUmVwbGFjZVBh
cmFtcworICAgICAgICAmJiBvdGhlci5yZW1vdmVQYXJhbXMgPT0gdGhpcy0+cmVtb3ZlUGFyYW1z
OworfQorCit2b2lkIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJh
bnNmb3JtOjpzZXJpYWxpemUoVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QKK3sKK30KKworYXV0byBS
ZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6ZGVzZXJp
YWxpemUoU3Bhbjxjb25zdCB1aW50OF90PikgLT4gUXVlcnlUcmFuc2Zvcm0KK3sKKyAgICByZXR1
cm4geyB9OworfQorCitzaXplX3QgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6
UXVlcnlUcmFuc2Zvcm06OnNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90PikKK3sK
KyAgICByZXR1cm4gMDsKK30KKworYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0
aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UoY29uc3QgSlNPTjo6VmFs
dWUmIGtleVZhbHVlVmFsdWUpIC0+IEV4cGVjdGVkPFF1ZXJ5S2V5VmFsdWUsIHN0ZDo6ZXJyb3Jf
Y29kZT4KK3sKKyAgICBhdXRvIGtleVZhbHVlID0ga2V5VmFsdWVWYWx1ZS5hc09iamVjdCgpOwor
ICAgIGlmICgha2V5VmFsdWUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGlj
dGlvbmFyeSk7CisKKyAgICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Iik7
CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5
U3RyaW5nKTsKKworICAgIFN0cmluZyB2YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVl
Iik7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3Np
bmdWYWx1ZVN0cmluZyk7CisKKyAgICBib29sIHJlcGxhY2VPbmx5IHsgZmFsc2UgfTsKKyAgICBp
ZiAoYXV0byBib29sZWFuID0ga2V5VmFsdWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSIpKQor
ICAgICAgICByZXBsYWNlT25seSA9ICpib29sZWFuOworCisgICAgcmV0dXJuIHsgeyBXVEZNb3Zl
KGtleSksIHJlcGxhY2VPbmx5LCBXVEZNb3ZlKHZhbHVlKSB9IH07Cit9CisKK2F1dG8gUmVkaXJl
Y3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFs
dWU6Omlzb2xhdGVkQ29weSgpIGNvbnN0IC0+IFF1ZXJ5S2V5VmFsdWUKK3sKKyAgICByZXR1cm4g
eworICAgICAgICBjcm9zc1RocmVhZENvcHkoa2V5KSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5
KHJlcGxhY2VPbmx5KSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHZhbHVlKQorICAgIH07Cit9
CisKK2Jvb2wgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zv
cm06OlF1ZXJ5S2V5VmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgUXVlcnlLZXlWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVyLmtleSA9PSB0aGlzLT5rZXkKKyAgICAgICAgJiYg
b3RoZXIucmVwbGFjZU9ubHkgPT0gdGhpcy0+cmVwbGFjZU9ubHkKKyAgICAgICAgJiYgb3RoZXIu
dmFsdWUgPT0gdGhpcy0+dmFsdWU7Cit9CisKK3ZvaWQgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnNlcmlhbGl6ZShWZWN0
b3I8dWludDhfdD4mKSBjb25zdAoreworfQorCithdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFu
c2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpkZXNlcmlhbGl6ZShT
cGFuPGNvbnN0IHVpbnQ4X3Q+KSAtPiBRdWVyeUtleVZhbHVlCit7CisgICAgcmV0dXJuIHsgfTsK
K30KKworc2l6ZV90IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJh
bnNmb3JtOjpRdWVyeUtleVZhbHVlOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhf
dD4pCit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaAppbmRleCBjYzc4MDM3NzFkYzVhYTQwZmRm
OGVlZTBmZjBmZDY0ZTVkNTFhZTIwLi4zN2Q5ZjgxMTJjY2VlMTUzY2NhNWVlYTdhMjFlMzhiODMy
MTkyNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFC
TEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCiAjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvblN0cmlu
Z1NlcmlhbGl6YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnMgewogCkBAIC01OSwxMyArNjAsMTI2IEBAIHN0
cnVjdCBOb3RpZnlBY3Rpb24gOiBwdWJsaWMgQWN0aW9uV2l0aFN0cmluZ01ldGFkYXRhPE5vdGlm
eUFjdGlvbj4geyB9Owogc3RydWN0IElnbm9yZVByZXZpb3VzUnVsZXNBY3Rpb24gOiBwdWJsaWMg
QWN0aW9uV2l0aG91dE1ldGFkYXRhPElnbm9yZVByZXZpb3VzUnVsZXNBY3Rpb24+IHsgfTsKIHN0
cnVjdCBNYWtlSFRUUFNBY3Rpb24gOiBwdWJsaWMgQWN0aW9uV2l0aG91dE1ldGFkYXRhPE1ha2VI
VFRQU0FjdGlvbj4geyB9OwogCitzdHJ1Y3QgTW9kaWZ5SGVhZGVyc0FjdGlvbiB7CisgICAgc3Ry
dWN0IE1vZGlmeUhlYWRlckluZm8geworICAgICAgICBzdHJ1Y3QgQXBwZW5kT3BlcmF0aW9uIHsK
KyAgICAgICAgICAgIFN0cmluZyBoZWFkZXI7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWU7CisK
KyAgICAgICAgICAgIEFwcGVuZE9wZXJhdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVy
biB7IGhlYWRlci5pc29sYXRlZENvcHkoKSwgdmFsdWUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAg
ICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFwcGVuZE9wZXJhdGlvbiYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuIG90aGVyLmhlYWRlciA9PSB0aGlzLT5oZWFkZXIgJiYgb3RoZXIudmFsdWUg
PT0gdGhpcy0+dmFsdWU7IH0KKyAgICAgICAgfTsKKyAgICAgICAgc3RydWN0IFNldE9wZXJhdGlv
biB7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVyOworICAgICAgICAgICAgU3RyaW5nIHZhbHVl
OworCisgICAgICAgICAgICBTZXRPcGVyYXRpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1
cm4geyBoZWFkZXIuaXNvbGF0ZWRDb3B5KCksIHZhbHVlLmlzb2xhdGVkQ29weSgpIH07IH0KKyAg
ICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZXRPcGVyYXRpb24mIG90aGVyKSBjb25z
dCB7IHJldHVybiBvdGhlci5oZWFkZXIgPT0gdGhpcy0+aGVhZGVyICYmIG90aGVyLnZhbHVlID09
IHRoaXMtPnZhbHVlOyB9CisgICAgICAgIH07CisgICAgICAgIHN0cnVjdCBSZW1vdmVPcGVyYXRp
b24geworICAgICAgICAgICAgU3RyaW5nIGhlYWRlcjsKKworICAgICAgICAgICAgUmVtb3ZlT3Bl
cmF0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgaGVhZGVyLmlzb2xhdGVkQ29w
eSgpIH07IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZW1vdmVPcGVyYXRp
b24mIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci5oZWFkZXIgPT0gdGhpcy0+aGVhZGVyOyB9
CisgICAgICAgIH07CisgICAgICAgIHN0ZDo6dmFyaWFudDxBcHBlbmRPcGVyYXRpb24sIFNldE9w
ZXJhdGlvbiwgUmVtb3ZlT3BlcmF0aW9uPiBvcGVyYXRpb247CisKKyAgICAgICAgc3RhdGljIEV4
cGVjdGVkPE1vZGlmeUhlYWRlckluZm8sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2UoY29uc3QgSlNP
Tjo6VmFsdWUmKTsKKyAgICAgICAgTW9kaWZ5SGVhZGVySW5mbyBpc29sYXRlZENvcHkoKSBjb25z
dDsKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1vZGlmeUhlYWRlckluZm8mKSBjb25z
dDsKKyAgICAgICAgdm9pZCBzZXJpYWxpemUoVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3Q7CisgICAg
ICAgIHN0YXRpYyBNb2RpZnlIZWFkZXJJbmZvIGRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhf
dD4pOworICAgICAgICBzdGF0aWMgc2l6ZV90IHNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1
aW50OF90Pik7CisgICAgfTsKKyAgICBWZWN0b3I8TW9kaWZ5SGVhZGVySW5mbz4gcmVxdWVzdEhl
YWRlcnM7CisKKyAgICBzdGF0aWMgRXhwZWN0ZWQ8TW9kaWZ5SGVhZGVyc0FjdGlvbiwgc3RkOjpl
cnJvcl9jb2RlPiBwYXJzZShjb25zdCBKU09OOjpPYmplY3QmKTsKKyAgICBNb2RpZnlIZWFkZXJz
QWN0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBNb2RpZnlIZWFkZXJzQWN0aW9uJikgY29uc3Q7CisgICAgdm9pZCBzZXJp
YWxpemUoVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3Q7CisgICAgc3RhdGljIE1vZGlmeUhlYWRlcnNB
Y3Rpb24gZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgc3RhdGljIHNpemVf
dCBzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pOworfTsKKworc3RydWN0IFJl
ZGlyZWN0QWN0aW9uIHsKKyAgICBzdHJ1Y3QgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7CisgICAgICAg
IFN0cmluZyBleHRlbnNpb25QYXRoOworCisgICAgICAgIEV4dGVuc2lvblBhdGhBY3Rpb24gaXNv
bGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBleHRlbnNpb25QYXRoLmlzb2xhdGVkQ29weSgp
IH07IH0KKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV4dGVuc2lvblBhdGhBY3Rpb24m
IG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci5leHRlbnNpb25QYXRoID09IHRoaXMtPmV4dGVu
c2lvblBhdGg7IH0KKyAgICB9OworICAgIHN0cnVjdCBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7
CisgICAgICAgIFN0cmluZyByZWdleFN1YnN0aXR1dGlvbjsKKworICAgICAgICBSZWdleFN1YnN0
aXR1dGlvbkFjdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IHJlZ2V4U3Vic3Rp
dHV0aW9uLmlzb2xhdGVkQ29weSgpIH07IH0KKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIucmVn
ZXhTdWJzdGl0dXRpb24gPT0gdGhpcy0+cmVnZXhTdWJzdGl0dXRpb247IH0KKyAgICB9OworICAg
IHN0cnVjdCBVUkxUcmFuc2Zvcm1BY3Rpb24geworICAgICAgICBTdHJpbmcgZnJhZ21lbnQ7Cisg
ICAgICAgIFN0cmluZyBob3N0OworICAgICAgICBTdHJpbmcgcGFzc3dvcmQ7CisgICAgICAgIFN0
cmluZyBwYXRoOworICAgICAgICBTdHJpbmcgcG9ydDsKKyAgICAgICAgc3RydWN0IFF1ZXJ5VHJh
bnNmb3JtIHsKKyAgICAgICAgICAgIHN0cnVjdCBRdWVyeUtleVZhbHVlIHsKKyAgICAgICAgICAg
ICAgICBTdHJpbmcga2V5OworICAgICAgICAgICAgICAgIGJvb2wgcmVwbGFjZU9ubHkgeyBmYWxz
ZSB9OworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZTsKKworICAgICAgICAgICAgICAgIHN0
YXRpYyBFeHBlY3RlZDxRdWVyeUtleVZhbHVlLCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNlKGNvbnN0
IEpTT046OlZhbHVlJik7CisgICAgICAgICAgICAgICAgUXVlcnlLZXlWYWx1ZSBpc29sYXRlZENv
cHkoKSBjb25zdDsKKyAgICAgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUXVlcnlL
ZXlWYWx1ZSYpIGNvbnN0OworICAgICAgICAgICAgICAgIHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1
aW50OF90PiYpIGNvbnN0OworICAgICAgICAgICAgICAgIHN0YXRpYyBRdWVyeUtleVZhbHVlIGRl
c2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pOworICAgICAgICAgICAgICAgIHN0YXRpYyBz
aXplX3Qgc2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBWZWN0b3I8UXVlcnlLZXlWYWx1ZT4gYWRkT3JSZXBsYWNlUGFyYW1z
OworICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVtb3ZlUGFyYW1zOworCisgICAgICAgICAg
ICBzdGF0aWMgRXhwZWN0ZWQ8UXVlcnlUcmFuc2Zvcm0sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2Uo
Y29uc3QgSlNPTjo6T2JqZWN0Jik7CisgICAgICAgICAgICBRdWVyeVRyYW5zZm9ybSBpc29sYXRl
ZENvcHkoKSBjb25zdDsKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRdWVyeVRy
YW5zZm9ybSYpIGNvbnN0OworICAgICAgICAgICAgdm9pZCBzZXJpYWxpemUoVmVjdG9yPHVpbnQ4
X3Q+JikgY29uc3Q7CisgICAgICAgICAgICBzdGF0aWMgUXVlcnlUcmFuc2Zvcm0gZGVzZXJpYWxp
emUoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgICAgICBzdGF0aWMgc2l6ZV90IHNlcmlh
bGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgIH07CisgICAgICAgIHN0
ZDo6dmFyaWFudDxTdHJpbmcsIFF1ZXJ5VHJhbnNmb3JtPiBxdWVyeVRyYW5zZm9ybTsKKyAgICAg
ICAgU3RyaW5nIHNjaGVtZTsKKyAgICAgICAgU3RyaW5nIHVzZXJuYW1lOworCisgICAgICAgIHN0
YXRpYyBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2Uo
Y29uc3QgSlNPTjo6T2JqZWN0Jik7CisgICAgICAgIFVSTFRyYW5zZm9ybUFjdGlvbiBpc29sYXRl
ZENvcHkoKSBjb25zdDsKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFVSTFRyYW5zZm9y
bUFjdGlvbiYpIGNvbnN0OworICAgICAgICB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4m
KSBjb25zdDsKKyAgICAgICAgc3RhdGljIFVSTFRyYW5zZm9ybUFjdGlvbiBkZXNlcmlhbGl6ZShT
cGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICAgICAgc3RhdGljIHNpemVfdCBzZXJpYWxpemVkTGVu
Z3RoKFNwYW48Y29uc3QgdWludDhfdD4pOworICAgIH07CisgICAgc3RydWN0IFVSTEFjdGlvbiB7
CisgICAgICAgIFN0cmluZyB1cmw7CisKKyAgICAgICAgVVJMQWN0aW9uIGlzb2xhdGVkQ29weSgp
IGNvbnN0IHsgcmV0dXJuIHsgdXJsLmlzb2xhdGVkQ29weSgpIH07IH0KKyAgICAgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFVSTEFjdGlvbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLnVy
bCA9PSB0aGlzLT51cmw7IH0KKyAgICB9OworICAgIHVzaW5nIEFjdGlvblZhcmlhbnQgPSBzdGQ6
OnZhcmlhbnQ8RXh0ZW5zaW9uUGF0aEFjdGlvbiwgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24sIFVS
TFRyYW5zZm9ybUFjdGlvbiwgVVJMQWN0aW9uPjsKKyAgICBBY3Rpb25WYXJpYW50IGFjdGlvbjsK
KworICAgIHN0YXRpYyBFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBw
YXJzZShjb25zdCBKU09OOjpPYmplY3QmKTsKKyAgICBSZWRpcmVjdEFjdGlvbiBpc29sYXRlZENv
cHkoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVk
aXJlY3RBY3Rpb24mKSBjb25zdDsKKyAgICB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4m
KSBjb25zdDsKKyAgICBzdGF0aWMgUmVkaXJlY3RBY3Rpb24gZGVzZXJpYWxpemUoU3Bhbjxjb25z
dCB1aW50OF90Pik7CisgICAgc3RhdGljIHNpemVfdCBzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29u
c3QgdWludDhfdD4pOworfTsKKwogdXNpbmcgQWN0aW9uRGF0YSA9IHN0ZDo6dmFyaWFudDwKICAg
ICBCbG9ja0xvYWRBY3Rpb24sCiAgICAgQmxvY2tDb29raWVzQWN0aW9uLAogICAgIENTU0Rpc3Bs
YXlOb25lU2VsZWN0b3JBY3Rpb24sCiAgICAgTm90aWZ5QWN0aW9uLAogICAgIElnbm9yZVByZXZp
b3VzUnVsZXNBY3Rpb24sCi0gICAgTWFrZUhUVFBTQWN0aW9uCisgICAgTWFrZUhUVFBTQWN0aW9u
LAorICAgIE1vZGlmeUhlYWRlcnNBY3Rpb24sCisgICAgUmVkaXJlY3RBY3Rpb24KID47CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcAppbmRleCA3YTgxMjdjMDk0MjUxM2Y2MjEyZTJmNDU1M2VhMDE0ZDZkYjgyMjUwLi5i
Y2ZjMTNmMGY0NzNhNGI4MGVhNzI4MjE2YmRiYjMyYjQ0MWZkNDE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25D
b21waWxlci5jcHAKQEAgLTE1NCw2ICsxNTQsMTAgQEAgc3RhdGljIFZlY3Rvcjx1bnNpZ25lZD4g
c2VyaWFsaXplQWN0aW9ucyhjb25zdCBWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+JiBydWwK
ICAgICAgICAgICAgIGZpbmRPck1ha2VBY3Rpb25Mb2NhdGlvbihtYWtlSFRUUFNBY3Rpb25zTWFw
KTsKICAgICAgICAgfSwgWyZdIChjb25zdCBOb3RpZnlBY3Rpb24mIGFjdGlvbkRhdGEpIHsKICAg
ICAgICAgICAgIGZpbmRPck1ha2VTdHJpbmdBY3Rpb25Mb2NhdGlvbihub3RpZnlBY3Rpb25zTWFw
LCBhY3Rpb25EYXRhKTsKKyAgICAgICAgfSwgWyZdIChjb25zdCBNb2RpZnlIZWFkZXJzQWN0aW9u
JikgeworICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudAorICAgICAgICB9LCBbJl0gKGNv
bnN0IFJlZGlyZWN0QWN0aW9uJikgeworICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudAog
ICAgICAgICB9KSwgYWN0aW9uRGF0YSk7CiAgICAgICAgIGFjdGlvbkxvY2F0aW9ucy5hcHBlbmQo
YWN0aW9uTG9jYXRpb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwCmluZGV4IDI3Y2ZiZDVi
YmMxYTFiNjU5YTk2ZjcxN2ZlNTBmY2MxY2M2YTZhMWYuLjg2Nzk2OGViNDdmZmE3YTE3ODYzN2Q5
NWI2NDVmZTdjYjE1MzU4NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcApAQCAtODksNiArODksMzYg
QEAgY29uc3Qgc3RkOjplcnJvcl9jYXRlZ29yeSYgY29udGVudEV4dGVuc2lvbkVycm9yQ2F0ZWdv
cnkoKQogICAgICAgICAgICAgICAgIHJldHVybiAiQSBub3RpZnkgYWN0aW9uIG11c3QgaGF2ZSBh
IHN0cmluZyBub3RpZmljYXRpb24iOwogICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkVycm9yV3JpdGluZ1NlcmlhbGl6ZWRORkE6CiAgICAgICAgICAgICAgICAgcmV0dXJu
ICJJbnRlcm5hbCBJL08gZXJyb3IiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05SZWRpcmVjdE1pc3Npbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuICJBIHJl
ZGlyZWN0IGFjdGlvbiBtdXN0IGhhdmUgYSByZWRpcmVjdCBtZW1iZXIiOworICAgICAgICAgICAg
Y2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJhbWV0ZXJzTm90U3RyaW5n
QXJyYXk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJBIHJlbW92ZS1wYXJhbWV0ZXJzIHZhbHVl
IG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMgdmFsdWUgbXVzdCBi
ZSBhbiBhcnJheSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5vdEFEaWN0aW9uYXJ5OgorICAgICAgICAg
ICAgICAgIHJldHVybiAiTWVtYmVycyBvZiB0aGUgYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVycyBh
cnJheSBtdXN0IGJlIGEgZGljdGlvbmFyeSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlT
dHJpbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuICJNZW1iZXJzIG9mIHRoZSBhZGQtb3ItcmVw
bGFjZS1wYXJhbWV0ZXJzIGFycmF5IG11c3QgY29udGFpbiBhIGtleSB0aGF0IGlzIGEgc3RyaW5n
IjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBs
YWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ1ZhbHVlU3RyaW5nOgorICAgICAgICAgICAgICAg
IHJldHVybiAiTWVtYmVycyBvZiB0aGUgYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVycyBhcnJheSBt
dXN0IGNvbnRhaW4gYSB2YWx1ZSB0aGF0IGlzIGEgc3RyaW5nIjsKKyAgICAgICAgICAgIGNhc2Ug
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RFeHRlbnNpb25QYXRoRG9lc05vdFN0
YXJ0V2l0aFNsYXNoOgorICAgICAgICAgICAgICAgIHJldHVybiAiQSByZWRpcmVjdCBleHRlbnNp
b24gcGF0aCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaCI7CisgICAgICAgICAgICBjYXNlIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMUHJvdG9jb2xJc0phdmFTY3JpcHQ6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICJBIHJlZGlyZWN0IHVybCBjYW5ub3QgaGF2ZSBhIHByb3Rv
Y29sIG9mIGphdmFzY3JpcHQiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05SZWRpcmVjdEludmFsaWRUeXBlOgorICAgICAgICAgICAgICAgIHJldHVybiAiQSBy
ZWRpcmVjdCBtdXN0IGhhdmUgYSBtZW1iZXIgbmFtZWQgXCJleHRlbnNpb24tcGF0aFwiLCBcInJl
Z2V4LXN1YnN0aXR1dGlvblwiLCBcInRyYW5zZm9ybVwiIG9yIFwidXJsXCIiOworICAgICAgICAg
ICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW52YWxpZE9w
ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgbW9kaWZ5LWhlYWRlcnMgb3BlcmF0
aW9uIG11c3QgaGF2ZSBhbiBvcGVyYXRpb24gdGhhdCBpcyBlaXRoZXIgXCJzZXRcIiwgXCJhcHBl
bmRcIiwgb3IgXCJyZW1vdmVcIiI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuICJBIG1vZGlmeS1oZWFkZXJzIG9wZXJhdGlvbiBtdXN0IGJlIGEgZGljdGlvbmFy
eSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhl
YWRlcnNNaXNzaW5nT3BlcmF0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiAiQSBtb2RpZnkt
aGVhZGVycyBvcGVyYXRpb24gbXVzdCBoYXZlIGFuIG9wZXJhdGlvbiI7CisgICAgICAgICAgICBj
YXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nSGVhZGVy
OgorICAgICAgICAgICAgICAgIHJldHVybiAiQSBtb2RpZnktaGVhZGVycyBvcGVyYXRpb24gbXVz
dCBoYXZlIGEgaGVhZGVyIjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdWYWx1ZToKKyAgICAgICAgICAgICAgICByZXR1cm4g
IkEgbW9kaWZ5LWhlYWRlcnMgb3BlcmF0aW9uIG9mIFwic2V0XCIgb3IgXCJhcHBlbmRcIiBtdXN0
IGhhdmUgYSB2YWx1ZSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTk1vZGlmeUhlYWRlcnNOb3RBcnJheToKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgaGVh
ZGVycyBtZW1iZXIgbXVzdCBiZSBhbiBhcnJheSI7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6OnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaAppbmRleCAxNGE3YjE0Nzlh
YzBmMDlmZDkwNTA1NjMwYTgzNzE3ZTA0OWYwZDVjLi40Nzg5YTNkYTgwOTNhZjJmYTI2YmIzZDJj
MTllZjE1MGMzZGYyOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaApAQCAtNTksNiArNTksMjUgQEAgZW51
bSBjbGFzcyBDb250ZW50RXh0ZW5zaW9uRXJyb3IgewogICAgIEpTT05JbnZhbGlkTm90aWZpY2F0
aW9uLAogICAgIEpTT05JbnZhbGlkUmVnZXgsCiAKKyAgICBKU09OUmVkaXJlY3RNaXNzaW5nLAor
ICAgIEpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gsCisgICAg
SlNPTlJlZGlyZWN0VVJMUHJvdG9jb2xJc0phdmFTY3JpcHQsCisgICAgSlNPTlJlZGlyZWN0SW52
YWxpZFR5cGUsCisKKyAgICBKU09OUmVtb3ZlUGFyYW1ldGVyc05vdFN0cmluZ0FycmF5LAorCisg
ICAgSlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheSwKKyAgICBKU09OQWRkT3JSZXBs
YWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURpY3Rpb25hcnksCisgICAgSlNPTkFkZE9yUmVwbGFj
ZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcsCisgICAgSlNPTkFkZE9yUmVwbGFj
ZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZywKKworICAgIEpTT05Nb2RpZnlI
ZWFkZXJzTm90QXJyYXksCisgICAgSlNPTk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnks
CisgICAgSlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uLAorICAgIEpTT05Nb2RpZnlI
ZWFkZXJzSW52YWxpZE9wZXJhdGlvbiwKKyAgICBKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdIZWFk
ZXIsCisgICAgSlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWUsCisKICAgICBFcnJvcldyaXRp
bmdTZXJpYWxpemVkTkZBLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRleCA3OTc3ZmEw
NDVmYTczNTBkZGExYzc4NTc5NmEyYzhmNGQ5M2JhNjY2Li5iZDVjZDJmZGM0YzJjZDI3MWZmY2Yw
MWUzZjRmYjAxNjI3ZGE5OWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAtNTQsMTEgKzU0
LDEyIEBAIHN0YXRpYyBib29sIGNvbnRhaW5zT25seUFTQ0lJV2l0aE5vVXBwZXJjYXNlKGNvbnN0
IFN0cmluZyYgZG9tYWluKQogc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVy
cm9yX2NvZGU+IGdldFN0cmluZ0xpc3QoY29uc3QgSlNPTjo6QXJyYXkmIGFycmF5KQogewogICAg
IFZlY3RvcjxTdHJpbmc+IHN0cmluZ3M7CisgICAgc3RyaW5ncy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGFycmF5Lmxlbmd0aCgpKTsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogYXJyYXkpIHsKICAg
ICAgICAgU3RyaW5nIHN0cmluZyA9IHZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBpZiAoc3Ry
aW5nLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgICAgIHN0cmlu
Z3MuYXBwZW5kKHN0cmluZyk7CisgICAgICAgIHN0cmluZ3MudW5jaGVja2VkQXBwZW5kKHN0cmlu
Zyk7CiAgICAgfQogICAgIHJldHVybiBzdHJpbmdzOwogfQpAQCAtMTc4LDcgKzE3OSw3IEBAIGJv
b2wgaXNWYWxpZENTU1NlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAgICAgcmV0dXJu
ICEhcGFyc2VyLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8
c3RkOjpvcHRpb25hbDxBY3Rpb24+LCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRBY3Rpb24oY29uc3Qg
SlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0KQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8
QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok9iamVjdCYg
cnVsZU9iamVjdCkKIHsKICAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2Jq
ZWN0KCJhY3Rpb24iKTsKICAgICBpZiAoIWFjdGlvbk9iamVjdCkKQEAgLTE4Nyw0NiArMTg4LDU1
IEBAIHN0YXRpYyBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPEFjdGlvbj4sIHN0ZDo6ZXJyb3JfY29k
ZT4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPCiAgICAgU3RyaW5nIGFjdGlvblR5cGUgPSBhY3Rp
b25PYmplY3QtPmdldFN0cmluZygidHlwZSIpOwogCiAgICAgaWYgKGFjdGlvblR5cGUgPT0gImJs
b2NrIikKLSAgICAgICAgcmV0dXJuIHsgQWN0aW9uKEJsb2NrTG9hZEFjdGlvbigpKSB9OworICAg
ICAgICByZXR1cm4gQWN0aW9uIHsgQmxvY2tMb2FkQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0aW9u
VHlwZSA9PSAiaWdub3JlLXByZXZpb3VzLXJ1bGVzIikKLSAgICAgICAgcmV0dXJuIHsgQWN0aW9u
KElnbm9yZVByZXZpb3VzUnVsZXNBY3Rpb24oKSkgfTsKKyAgICAgICAgcmV0dXJuIEFjdGlvbiB7
IElnbm9yZVByZXZpb3VzUnVsZXNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJi
bG9jay1jb29raWVzIikKLSAgICAgICAgcmV0dXJuIHsgQWN0aW9uKEJsb2NrQ29va2llc0FjdGlv
bigpKSB9OworICAgICAgICByZXR1cm4gQWN0aW9uIHsgQmxvY2tDb29raWVzQWN0aW9uKCkgfTsK
ICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiY3NzLWRpc3BsYXktbm9uZSIpIHsKICAgICAgICAgU3Ry
aW5nIHNlbGVjdG9yU3RyaW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIik7
CiAgICAgICAgIGlmICghc2VsZWN0b3JTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENTU0Rpc3BsYXlOb25l
QWN0aW9uVHlwZSk7Ci0gICAgICAgIGlmICghaXNWYWxpZENTU1NlbGVjdG9yKHNlbGVjdG9yU3Ry
aW5nKSkgewotICAgICAgICAgICAgLy8gU2tpcCBydWxlcyB3aXRoIGludmFsaWQgc2VsZWN0b3Jz
IHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlLgotICAgICAgICAgICAgcmV0dXJuIHsgc3RkOjpu
dWxsb3B0IH07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHsgQWN0aW9uIHsgQ1NTRGlzcGxh
eU5vbmVTZWxlY3RvckFjdGlvbiB7IHsgV1RGTW92ZShzZWxlY3RvclN0cmluZykgfSB9IH0gfTsK
KyAgICAgICAgaWYgKCFpc1ZhbGlkQ1NTU2VsZWN0b3Ioc2VsZWN0b3JTdHJpbmcpKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgLy8gU2tpcCBydWxlcyB3aXRoIGludmFsaWQgc2Vs
ZWN0b3JzIHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlLgorICAgICAgICByZXR1cm4gQWN0aW9u
IHsgQ1NTRGlzcGxheU5vbmVTZWxlY3RvckFjdGlvbiB7IHsgV1RGTW92ZShzZWxlY3RvclN0cmlu
ZykgfSB9IH07CiAgICAgfQogICAgIGlmIChhY3Rpb25UeXBlID09ICJtYWtlLWh0dHBzIikKLSAg
ICAgICAgcmV0dXJuIHsgQWN0aW9uKE1ha2VIVFRQU0FjdGlvbigpKSB9OworICAgICAgICByZXR1
cm4gQWN0aW9uIHsgTWFrZUhUVFBTQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAi
bm90aWZ5IikgewogICAgICAgICBTdHJpbmcgbm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5n
ZXRTdHJpbmcoIm5vdGlmaWNhdGlvbiIpOwogICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbikKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05JbnZhbGlkTm90aWZpY2F0aW9uKTsKLSAgICAgICAgcmV0dXJuIHsgQWN0aW9uIHsgTm90aWZ5
QWN0aW9uIHsgeyBXVEZNb3ZlKG5vdGlmaWNhdGlvbikgfSB9IH0gfTsKKyAgICAgICAgcmV0dXJu
IEFjdGlvbiB7IE5vdGlmeUFjdGlvbiB7IHsgV1RGTW92ZShub3RpZmljYXRpb24pIH0gfSB9Owor
ICAgIH0KKyAgICBpZiAoYWN0aW9uVHlwZSA9PSAicmVkaXJlY3QiKSB7CisgICAgICAgIGF1dG8g
YWN0aW9uID0gUmVkaXJlY3RBY3Rpb246OnBhcnNlKCphY3Rpb25PYmplY3QpOworICAgICAgICBp
ZiAoIWFjdGlvbikKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhY3Rpb24uZXJy
b3IoKSk7CisgICAgICAgIHJldHVybiBBY3Rpb24geyBSZWRpcmVjdEFjdGlvbiB7IFdURk1vdmUo
KmFjdGlvbikgfSB9OworICAgIH0KKyAgICBpZiAoYWN0aW9uVHlwZSA9PSAibW9kaWZ5LWhlYWRl
cnMiKSB7CisgICAgICAgIGF1dG8gYWN0aW9uID0gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6cGFyc2Uo
KmFjdGlvbk9iamVjdCk7CisgICAgICAgIGlmICghYWN0aW9uKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKGFjdGlvbi5lcnJvcigpKTsKKyAgICAgICAgcmV0dXJuIEFjdGlvbiB7
IFdURk1vdmUoKmFjdGlvbikgfTsKICAgICB9CiAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb25UeXBlKTsKIH0KIAotc3RhdGlj
IEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8Q29udGVudEV4dGVuc2lvblJ1bGU+LCBzdGQ6OmVycm9y
X2NvZGU+IGxvYWRSdWxlKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCkKK3N0YXRpYyBz
dGQ6Om9wdGlvbmFsPEV4cGVjdGVkPENvbnRlbnRFeHRlbnNpb25SdWxlLCBzdGQ6OmVycm9yX2Nv
ZGU+PiBsb2FkUnVsZShjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QpCiB7CiAgICAgYXV0
byB0cmlnZ2VyID0gbG9hZFRyaWdnZXIocnVsZU9iamVjdCk7CiAgICAgaWYgKCF0cmlnZ2VyLmhh
c192YWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQodHJpZ2dlci5lcnJvcigp
KTsKIAogICAgIGF1dG8gYWN0aW9uID0gbG9hZEFjdGlvbihydWxlT2JqZWN0KTsKLSAgICBpZiAo
IWFjdGlvbi5oYXNfdmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFjdGlv
bi5lcnJvcigpKTsKLQotICAgIGlmIChhY3Rpb24udmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIHt7
eyBXVEZNb3ZlKHRyaWdnZXIudmFsdWUoKSksIFdURk1vdmUoYWN0aW9uLnZhbHVlKCkudmFsdWUo
KSkgfX19OworICAgIGlmICghYWN0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIGlmICghYWN0aW9uLT5oYXNfdmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKGFjdGlvbi0+ZXJyb3IoKSk7CiAKLSAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQgfTsKKyAg
ICByZXR1cm4geyB7IHsgV1RGTW92ZSh0cmlnZ2VyLnZhbHVlKCkpLCBXVEZNb3ZlKGFjdGlvbi0+
dmFsdWUoKSkgfSB9IH07CiB9CiAKIHN0YXRpYyBFeHBlY3RlZDxWZWN0b3I8Q29udGVudEV4dGVu
c2lvblJ1bGU+LCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRFbmNvZGVkUnVsZXMoY29uc3QgU3RyaW5n
JiBydWxlSlNPTikKQEAgLTI0NSwxNiArMjU1LDE4IEBAIHN0YXRpYyBFeHBlY3RlZDxWZWN0b3I8
Q29udGVudEV4dGVuc2lvblJ1bGU+LCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRFbmNvZGVkUnVsZXMo
CiAgICAgY29uc3RleHByIHNpemVfdCBtYXhSdWxlQ291bnQgPSAxNTAwMDA7CiAgICAgaWYgKHRv
cExldmVsQXJyYXktPmxlbmd0aCgpID4gbWF4UnVsZUNvdW50KQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKyAg
ICBydWxlTGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRvcExldmVsQXJyYXktPmxlbmd0aCgp
KTsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogKnRvcExldmVsQXJyYXkpIHsKICAgICAgICAgYXV0
byBydWxlT2JqZWN0ID0gdmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghcnVsZU9iamVj
dCkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05JbnZhbGlkUnVsZSk7CiAKICAgICAgICAgYXV0byBydWxlID0gbG9hZFJ1bGUoKnJ1
bGVPYmplY3QpOwotICAgICAgICBpZiAoIXJ1bGUuaGFzX3ZhbHVlKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQocnVsZS5lcnJvcigpKTsKLSAgICAgICAgaWYgKHJ1bGUudmFs
dWUoKSkKLSAgICAgICAgICAgIHJ1bGVMaXN0LmFwcGVuZChXVEZNb3ZlKCpydWxlLnZhbHVlKCkp
KTsKKyAgICAgICAgaWYgKCFydWxlKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlm
ICghcnVsZS0+aGFzX3ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
cnVsZS0+ZXJyb3IoKSk7CisgICAgICAgIHJ1bGVMaXN0LnVuY2hlY2tlZEFwcGVuZChXVEZNb3Zl
KHJ1bGUtPnZhbHVlKCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcnVsZUxpc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0Jh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbnNCYWNrZW5kLmNwcAppbmRleCBiZWE2N2JhMDMxZmE3YWRhYThjYzIzYmY3MWM1NzExYmE0
YzRlOTQyLi42ZmNhY2Y0MjA2MWJmZTg5N2I2NmUwZDQxMjZiMGY2YjY2YWFmNmY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0Jh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25zQmFja2VuZC5jcHAKQEAgLTIyOCw2ICsyMjgsMTAgQEAgQ29udGVudFJ1bGVMaXN0
UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3Rz
Rm9yTG9hZCgKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LCBbJl0oY29uc3QgSWdu
b3JlUHJldmlvdXNSdWxlc0FjdGlvbiYpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfSwgWyZdIChjb25zdCBNb2RpZnlIZWFkZXJz
QWN0aW9uJikgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICAgICAg
ICAgIH0sIFsmXSAoY29uc3QgUmVkaXJlY3RBY3Rpb24mKSB7CisgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudAogICAgICAgICAgICAgfSksIGFjdGlvbi5kYXRhKCkpOwogICAgICAg
ICB9CiAKQEAgLTI4Nyw2ICsyOTEsMTAgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50
RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yUGluZ0wKICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUyA9IHRydWU7CiAgICAgICAg
ICAgICB9LCBbJl0oY29uc3QgSWdub3JlUHJldmlvdXNSdWxlc0FjdGlvbiYpIHsKICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfSwgWyZd
IChjb25zdCBNb2RpZnlIZWFkZXJzQWN0aW9uJikgeworICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQKKyAgICAgICAgICAgIH0sIFsmXSAoY29uc3QgUmVkaXJlY3RBY3Rpb24mKSB7
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudAogICAgICAgICAgICAgfSksIGFj
dGlvbi5kYXRhKCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEwMjNhNDY2YWRiNzhjYzE0N2M2ZjNkNTUyMmU4
MGU2ZjA1ODljZWEuLjJiZDE5OGQxNjIxNTk4Nzc4MzgxNTZhNzI2Mjc0MGQyZjc2MjRmZTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0xMS0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIFBhcnNlIHJlZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBhY3Rp
b25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAyMS0x
MS0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlc3RydWN0dXJlIFdLQ29udGVudFJ1bGVMaXN0IEFjdGlvbiBzdG9yYWdlIGR1cmluZyBj
b21waWxhdGlvbiBhbmQgaW50ZXJwcmV0YXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IDYxYjE0Zjgw
YmQyZjQxMGUxYWU0Yjk3M2M3ODlkMDc5MjM4OTUxM2YuLmI2N2IxY2ViMTUwNGVkYmRmOTcxYWMw
ZTlkNmYyMzIxMDE0MjY0OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTU0OSw2ICsxNTQ5LDQwIEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgSW52YWxpZEpTT04pCiAgICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl19fSwg
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOltcImFcIl19fV0iLCBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9wVVJMQW5kRG9tYWluQ29u
ZGl0aW9ucyk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwidGVzdFxcXFwuaHRtbFwi
LCBcInVubGVzcy10b3AtdXJsXCI6W1wiW1wiXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXgpOwogICAgIGNoZWNrQ29tcGlsZXJF
cnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIiwgXCJ1bmV4cGVjdGVkLWlkZW50aWZpZXItc2hvdWxk
LWJlLWlnbm9yZWRcIjo1fX1dIiwgeyB9KTsKKworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tc
ImFjdGlvblwiOntcInR5cGVcIjpcInJlZGlyZWN0XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsCisgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdE1pc3NpbmcpOworICAgIGNoZWNrQ29tcGls
ZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwi
Ont9fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLAorICAg
ICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RJbnZhbGlkVHlwZSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e1widHJhbnNmb3JtXCI6e1wicXVlcnkt
dHJhbnNmb3JtXCI6e1wicmVtb3ZlLXBhcmFtZXRlcnNcIjo1fX19fSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLAorICAgICAgICBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVtb3ZlUGFyYW1ldGVyc05vdFN0cmluZ0Fy
cmF5KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJy
ZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJxdWVyeS10cmFuc2Zvcm1c
Ijp7XCJyZW1vdmUtcGFyYW1ldGVyc1wiOls1XX19fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wifX1dIiwKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJpbmdBcnJheSk7Cisg
ICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVkaXJlY3Rc
IixcInJlZGlyZWN0XCI6e1widHJhbnNmb3JtXCI6e1wicXVlcnktdHJhbnNmb3JtXCI6e1wiYWRk
LW9yLXJlcGxhY2UtcGFyYW1ldGVyc1wiOjV9fX19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIn19XSIsCisgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzTm90QXJyYXkpOworICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcInJlZGlyZWN0XCIs
XCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInF1ZXJ5LXRyYW5zZm9ybVwiOntcImFkZC1v
ci1yZXBsYWNlLXBhcmFtZXRlcnNcIjpbNV19fX19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIn19XSIsCisgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGlj
dGlvbmFyeSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e1widHJhbnNmb3JtXCI6e1wicXVlcnktdHJhbnNm
b3JtXCI6e1wiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVyc1wiOlt7fV19fX19LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsCisgICAgICAgIENvbnRlbnRFeHRl
bnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJz
S2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1c
Ijp7XCJxdWVyeS10cmFuc2Zvcm1cIjp7XCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzXCI6W3tc
ImtleVwiOjV9XX19fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wi
fX1dIiwKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcpOworICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcInJlZGlyZWN0XCIs
XCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInF1ZXJ5LXRyYW5zZm9ybVwiOntcImFkZC1v
ci1yZXBsYWNlLXBhcmFtZXRlcnNcIjpbe1wia2V5XCI6XCJrXCIsXCJ2YWx1ZVwiOjV9XX19fX0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwKKyAgICAgICAg
Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFj
ZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZyk7CisgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6
e1widXJsXCI6XCJqYXZhc2NyaXB0OmRvc3R1ZmZcIn19LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsCisgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTFByb3RvY29sSXNKYXZhU2NyaXB0KTsK
KyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVj
dFwiLFwicmVkaXJlY3RcIjp7XCJleHRlbnNpb24tcGF0aFwiOlwiZG9lcy9ub3Qvc3RhcnQvd2l0
aC9zbGFzaC9cIn19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19
XSIsCisgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gpOworICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm1vZGlmeS1oZWFkZXJzXCIs
XCJyZXF1ZXN0LWhlYWRlcnNcIjo1fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCJ9fV0iLAorICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc05vdEFycmF5KTsKKyAgICBjaGVja0NvbXBpbGVyRXJy
b3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJtb2RpZnktaGVhZGVyc1wiLFwicmVxdWVzdC1o
ZWFkZXJzXCI6WzVdfSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9
fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5
SGVhZGVyc0luZm9Ob3RBRGljdGlvbmFyeSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJlcXVlc3QtaGVhZGVyc1wi
Olt7fV19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsCisg
ICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2Rp
ZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbik7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJlcXVlc3QtaGVhZGVyc1wi
Olt7XCJvcGVyYXRpb25cIjpcInJlbW92ZVwifV19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIn19XSIsCisgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ0hlYWRlcik7CisgICAgY2hl
Y2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNc
IixcInJlcXVlc3QtaGVhZGVyc1wiOlt7XCJvcGVyYXRpb25cIjpcInNldFwiLFwiaGVhZGVyXCI6
XCJ0ZXN0aGVhZGVyXCJ9XX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wifX1dIiwKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWUpOworICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm1vZGlmeS1oZWFkZXJzXCIsXCJyZXF1ZXN0LWhl
YWRlcnNcIjpbe1wib3BlcmF0aW9uXCI6XCJpbnZhbGlkXCIsXCJoZWFkZXJcIjpcInRlc3RoZWFk
ZXJcIn1dfSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLAor
ICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9k
aWZ5SGVhZGVyc0ludmFsaWRPcGVyYXRpb24pOwogfQogCiBURVNUX0YoQ29udGVudEV4dGVuc2lv
blRlc3QsIFN0cmljdFByZWZpeFNlcGFyYXRlZE1hY2hpbmVzMSkK
</data>
<flag name="commit-queue"
          id="468391"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443613</attachid>
            <date>2021-11-08 14:59:42 -0800</date>
            <delta_ts>2021-11-08 15:16:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232838-20211108145941.patch</filename>
            <type>text/plain</type>
            <size>79648</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZWUwMWJiY2Q1OTQ4YTEzZmU2NzgwOTlmMTVhODU0YTU0OGEyOWEwLi41ZDhmNGZhYjNhZmZjYjlj
ZGI0NDM1Yzc3NGQ0MGMzYjU5MGM3ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0xMS0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFBhcnNlIHJlZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBh
Y3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0T2JqZWN0
KToKKwogMjAyMS0xMS0wNSAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIENoZXJyeS1waWNrIHIyODQ2MzUuIHJkYXI6Ly9wcm9ibGVtLzg1MDM5OTc3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IGE4NTZlNzhhMDE4ZTVkMWFmOGYzYjU0MDI3NDA0MWI3MDc0MzZiY2EuLmZmMWJmNjA5Mzk2
YTlkMjE3Mjg0NDMzNDZiMjBmMzk3NmM4Y2MzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MTEtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBQYXJzZSByZWRpcmVjdCBhbmQgbW9kaWZ5LWhlYWRlcnMgYWN0aW9ucyBmb3IgV0tDb250
ZW50UnVsZUxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMjgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0pTT05WYWx1ZXMuY3BwOgorICAgICAgICAoV1RGOjpKU09OSW1wbDo6VmFsdWU6
OmFzT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdURjo6SlNPTkltcGw6Ok9iamVjdEJhc2U6OmFz
T2JqZWN0IGNvbnN0KToKKyAgICAgICAgKiB3dGYvSlNPTlZhbHVlcy5oOgorCiAyMDIxLTExLTA1
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmVzdHJ1Y3R1cmUgV0tDb250ZW50UnVsZUxpc3QgQWN0aW9uIHN0b3JhZ2UgZHVyaW5nIGNvbXBp
bGF0aW9uIGFuZCBpbnRlcnByZXRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5OTliNmUyYTQzZmU2Njk3
MmE1OWUwNmE4NGYxMzBhMDI2M2E4NmMuLjEyZDVlYjYyMzZlZmY2Mjk2YmNmOGYzMzNiNGRkYTQw
MWY3N2ZmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAyMS0xMS0wOCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFBhcnNlIHJl
ZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2VyIGNv
dmVyZWQgYnkgdW5pdCB0ZXN0cywgZnVuY3Rpb25hbGl0eSB5ZXQgdW5pbXBsZW1lbnRlZC4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
QWN0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
Ok1vZGlmeUhlYWRlcnNBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1v
ZGlmeUhlYWRlcnNBY3Rpb246OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246OnNl
cmlhbGl6ZWRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1v
ZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFk
ZXJJbmZvOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86Om9wZXJhdG9y
PT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhl
YWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5
SGVhZGVySW5mbzo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZWRM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0
aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJl
Y3RBY3Rpb246Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpzZXJpYWxpemUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9u
OjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OnNlcmlhbGl6ZWRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJM
VHJhbnNmb3JtQWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6ZWRMZW5n
dGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9u
OjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFj
dGlvbjo6UXVlcnlUcmFuc2Zvcm06Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlv
bjo6UXVlcnlUcmFuc2Zvcm06Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1
ZXJ5VHJhbnNmb3JtOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJh
bnNmb3JtOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnNl
cmlhbGl6ZWRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtl
eVZhbHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5
VmFsdWU6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zv
cm06OlF1ZXJ5S2V5VmFsdWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1
ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1B
Y3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnNlcmlhbGl6ZWRMZW5n
dGgpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0Fj
dGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6QXBwZW5kT3BlcmF0aW9uOjppc29sYXRlZENvcHkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNB
Y3Rpb246Ok1vZGlmeUhlYWRlckluZm86OkFwcGVuZE9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0Fj
dGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6U2V0T3BlcmF0aW9uOjppc29sYXRlZENvcHkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rp
b246Ok1vZGlmeUhlYWRlckluZm86OlNldE9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6
TW9kaWZ5SGVhZGVySW5mbzo6UmVtb3ZlT3BlcmF0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246
Ok1vZGlmeUhlYWRlckluZm86OlJlbW92ZU9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OkV4dGVu
c2lvblBhdGhBY3Rpb246Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OkV4dGVuc2lvblBhdGhBY3Rpb246Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFjdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6
UmVnZXhTdWJzdGl0dXRpb25BY3Rpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxBY3Rpb246Omlzb2xh
dGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OlVSTEFjdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpzZXJpYWxpemVBY3Rpb25zKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmNvbnRlbnRFeHRlbnNpb25FcnJvckNhdGVnb3J5KToK
KyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaDoKKyAg
ICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXRTdHJpbmdMaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6bG9hZEVuY29kZWRSdWxlcyk6CisgICAgICAgICogY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvclBp
bmdMb2FkKToKKwogMjAyMS0xMS0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlc3RydWN0dXJlIFdLQ29udGVudFJ1bGVMaXN0IEFjdGlv
biBzdG9yYWdlIGR1cmluZyBjb21waWxhdGlvbiBhbmQgaW50ZXJwcmV0YXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5jcHAKaW5kZXggNDg5NWM1YTcwZDZhNDc0NTU5N2Y3NzE2M2JjOTJlMDc0
NTU5NDgyOS4uODIxMjliMmY1NDM5ZmJmNTlmNmU4YWIzYzIwYTI3ZjNiMjg3YTlmYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKQEAgLTM0Niw3ICszNDYsOSBAQCBSZWZQdHI8SlNPTjo6
VmFsdWU+IEJhY2tlbmREaXNwYXRjaGVyOjpnZXRWYWx1ZShKU09OOjpPYmplY3QqIHBhcmFtcywg
Y29uc3QgU3RyaQogCiBSZWZQdHI8SlNPTjo6T2JqZWN0PiBCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0
T2JqZWN0KEpTT046Ok9iamVjdCogcGFyYW1zLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVx
dWlyZWQpCiB7Ci0gICAgcmV0dXJuIGdldFByb3BlcnR5VmFsdWU8UmVmUHRyPEpTT046Ok9iamVj
dD4+KHBhcmFtcywgbmFtZSwgcmVxdWlyZWQsICZKU09OOjpWYWx1ZTo6YXNPYmplY3QsICJPYmpl
Y3QiKTsKKyAgICByZXR1cm4gZ2V0UHJvcGVydHlWYWx1ZTxSZWZQdHI8SlNPTjo6T2JqZWN0Pj4o
cGFyYW1zLCBuYW1lLCByZXF1aXJlZCwgW10oSlNPTjo6VmFsdWUmIHZhbHVlKSB7CisgICAgICAg
IHJldHVybiB2YWx1ZS5hc09iamVjdCgpOworICAgIH0sICJPYmplY3QiKTsKIH0KIAogUmVmUHRy
PEpTT046OkFycmF5PiBCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0QXJyYXkoSlNPTjo6T2JqZWN0KiBw
YXJhbXMsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCByZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5j
cHAKaW5kZXggYzRiZWI2ZjAwZDA5NGNmOWU3OTc0YjVjNDc5MTFkODU5NTg3ZDQ1MS4uOWQ2OWMx
YjdkNDYxYzIyZTkxYTAxMmRkYzdmNjQ1YjYwZTZhNjI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvSlNPTlZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAK
QEAgLTQ5NCw2ICs0OTQsMTEgQEAgUmVmUHRyPE9iamVjdD4gVmFsdWU6OmFzT2JqZWN0KCkKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAorUmVmUHRyPGNvbnN0IE9iamVjdD4gVmFsdWU6OmFzT2Jq
ZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogUmVmUHRyPEFycmF5PiBW
YWx1ZTo6YXNBcnJheSgpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02NDAsNiArNjQ1LDEy
IEBAIFJlZlB0cjxPYmplY3Q+IE9iamVjdEJhc2U6OmFzT2JqZWN0KCkKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8T2JqZWN0Kj4odGhpcyk7CiB9CiAKK1JlZlB0cjxjb25zdCBPYmplY3Q+IE9iamVj
dEJhc2U6OmFzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoT2Jq
ZWN0KSA9PSBzaXplb2YoT2JqZWN0QmFzZSksIGNhbm5vdF9jYXN0KTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0Kj4odGhpcyk7Cit9CisKIHNpemVfdCBPYmplY3RCYXNlOjpt
ZW1vcnlDb3N0KCkgY29uc3QKIHsKICAgICBzaXplX3QgbWVtb3J5Q29zdCA9IFZhbHVlOjptZW1v
cnlDb3N0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKaW5kZXggN2I1NjllN2IwZWY2MDU2ODQ1NGRjOWJhZDg5
ZjFmMWJlYzE1ZDUxNy4uZGJhNTc3MjNjZmU4M2IwMDVlYTg1ZmRmMDllNDQ0ODhiZWNkMjhkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0pTT05WYWx1ZXMuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGFz
U3RyaW5nKCkgY29uc3Q7CiAgICAgUmVmUHRyPFZhbHVlPiBhc1ZhbHVlKCk7CiAgICAgdmlydHVh
bCBSZWZQdHI8T2JqZWN0PiBhc09iamVjdCgpOworICAgIHZpcnR1YWwgUmVmUHRyPGNvbnN0IE9i
amVjdD4gYXNPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheT4gYXNBcnJh
eSgpOwogCiAgICAgc3RhdGljIFJlZlB0cjxWYWx1ZT4gcGFyc2VKU09OKGNvbnN0IFN0cmluZyYp
OwpAQCAtMTcwLDYgKzE3MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBjb25zdF9pdGVyYXRvciA9
IERhdGFTdG9yYWdlOjpjb25zdF9pdGVyYXRvcjsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBS
ZWZQdHI8T2JqZWN0PiBhc09iamVjdCgpIGZpbmFsOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBS
ZWZQdHI8Y29uc3QgT2JqZWN0PiBhc09iamVjdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggZjJlZjUwYmJkOGI0ZjE0Nzc5Yjc0YWNlOTBlNTVhMjA3ZDUyYjgxNi4uZGZkMjYw
MTY1NGJmMTRjODViZWUwMzNmNTQyNTUwNDQ5MmFhMmQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYw
Nyw2ICs2MDcsNyBAQCBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZEZpbHRlcnNBbHBoYWJldC5j
cHAKIGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKIGNvbnRlbnRleHRl
bnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5jcHAKIGNvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb24uY3BwCitjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0
aW9ucy5jcHAKIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAK
IGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAKIGNvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGFmYzVkOGM2ODdmZDE1MGIx
ZTU1MjI0NmU1ZGU4NzQ0ZmQxYTM1MS4uZTIzNTllZmVjYjY1ZTg4ZjVhNjM2ODM1YThhOTIyYWE0
NmMxMTg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTkxMyw2ICs5OTEzLDcgQEAKIAkJNUM5RUYyRjIyMUYwNjE3MTAwM0JE
QzU2IC8qIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1Q0ExREVDMjFGNzFFNjg2MDBFNzFCRDMgLyogSFRUUEhlYWRlckZpZWxkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBIZWFkZXJGaWVsZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQTFERUM0MUY3MUU2ODcwMEU3MUJEMyAv
KiBIVFRQSGVhZGVyRmllbGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRU
UEhlYWRlckZpZWxkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDQUJEQkYxMjcz
NUY0QjcwMEI4OEJDQiAvKiBDb250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQUY3QUFGMjZGQTk5NjgwMDAzRjE5RSAvKiBO
ZXR3b3JrTG9hZE1ldHJpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmV0d29ya0xvYWRNZXRyaWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUNCMzdGRkMxQzYyRDI3ODAwRjIwMTg4IC8qIFNjcm9sbGJhcnNDb250cm9sbGVyTW9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxiYXJzQ29udHJvbGxl
ck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IzN0ZGRDFDNjJEMjc4
MDBGMjAxODggLyogU2Nyb2xsYmFyc0NvbnRyb2xsZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcm9sbGJhcnNDb250cm9sbGVyTW9jay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTg2MTYsMTEgKzE4NjE3LDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJC
NjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1
NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAw
RDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJ
ZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRl
bnRpZmllclJlcC5oICovLAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8s
CiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAog
CQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJ
MUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTE5
MjgwLDYgKzE5MjgxLDcgQEAKIAkJCQk3QzkzRjM0ODFBQTZCQTVFMDBBOThCQUIgLyogQ29tcGls
ZWRDb250ZW50RXh0ZW5zaW9uLmggKi8sCiAJCQkJNTFCNDVEMUUxQUI4RDFFMjAwMTE3Q0QyIC8q
IENvbnRlbnRFeHRlbnNpb24uY3BwICovLAogCQkJCTUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAv
KiBDb250ZW50RXh0ZW5zaW9uLmggKi8sCisJCQkJNUNBQkRCRjEyNzM1RjRCNzAwQjg4QkNCIC8q
IENvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcCAqLywKIAkJCQk1Q0RGQTZDNzFBQTRGMkRBMDBF
QTg3NDYgLyogQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaCAqLywKIAkJCQk3QzkzRjM0QjFBQTZC
RjA3MDBBOThCQUIgLyogQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCAqLywKIAkJCQk3Qzkz
RjM0QzFBQTZCRjA3MDBBOThCQUIgLyogQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmggKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uQWN0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ3ZmUzZjhhM2ExOWY5Zjk4YmM2NzI3
MTI3MzkxYWZlN2JmYmNhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcApAQCAtMCwwICsxLDM5MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZW50RXh0
ZW5zaW9uQWN0aW9ucy5oIgorCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKworI2lu
Y2x1ZGUgIkNvbnRlbnRFeHRlbnNpb25FcnJvci5oIgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVh
ZENvcGllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnMgeworCitF
eHBlY3RlZDxNb2RpZnlIZWFkZXJzQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IE1vZGlmeUhlYWRl
cnNBY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgbW9kaWZ5SGVhZGVycykKK3sKKyAg
ICBhdXRvIHBhcnNlSGVhZGVycyA9IFtdIChjb25zdCBKU09OOjpPYmplY3QmIG1vZGlmeUhlYWRl
cnMsIEFTQ0lJTGl0ZXJhbCBhcnJheU5hbWUpIC0+IEV4cGVjdGVkPFZlY3RvcjxNb2RpZnlIZWFk
ZXJJbmZvPiwgc3RkOjplcnJvcl9jb2RlPiB7CisgICAgICAgIGF1dG8gdmFsdWUgPSBtb2RpZnlI
ZWFkZXJzLmdldFZhbHVlKGFycmF5TmFtZSk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICBhdXRvIGFycmF5ID0gdmFsdWUtPmFzQXJyYXkoKTsK
KyAgICAgICAgaWYgKCFhcnJheSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTm90QXJyYXkpOworICAgICAg
ICBWZWN0b3I8TW9kaWZ5SGVhZGVySW5mbz4gdmVjdG9yOworICAgICAgICB2ZWN0b3IucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShhcnJheS0+bGVuZ3RoKCkpOworICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogKmFycmF5KSB7CisgICAgICAgICAgICBhdXRvIGluZm8gPSBNb2RpZnlIZWFkZXJJbmZv
OjpwYXJzZSh2YWx1ZS5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIWluZm8pCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGluZm8uZXJyb3IoKSk7CisgICAgICAgICAgICB2
ZWN0b3IudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmluZm8pKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gdmVjdG9yOworICAgIH07CisKKyAgICBhdXRvIHJlcXVlc3RIZWFkZXJzID0gcGFy
c2VIZWFkZXJzKG1vZGlmeUhlYWRlcnMsICJyZXF1ZXN0LWhlYWRlcnMiX3MpOworICAgIGlmICgh
cmVxdWVzdEhlYWRlcnMpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChyZXF1ZXN0SGVh
ZGVycy5lcnJvcigpKTsKKworICAgIGF1dG8gcmVzcG9uc2VIZWFkZXJzID0gcGFyc2VIZWFkZXJz
KG1vZGlmeUhlYWRlcnMsICJyZXNwb25zZS1oZWFkZXJzIl9zKTsKKyAgICBpZiAoIXJlc3BvbnNl
SGVhZGVycykKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlc3BvbnNlSGVhZGVycy5l
cnJvcigpKTsKKworICAgIHJldHVybiBNb2RpZnlIZWFkZXJzQWN0aW9uIHsgV1RGTW92ZSgqcmVx
dWVzdEhlYWRlcnMpLCBXVEZNb3ZlKCpyZXNwb25zZUhlYWRlcnMpIH07Cit9CisKK01vZGlmeUhl
YWRlcnNBY3Rpb24gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4geworICAgICAgICBjcm9zc1RocmVhZENvcHkocmVxdWVzdEhlYWRlcnMpLAor
ICAgICAgICBjcm9zc1RocmVhZENvcHkocmVzcG9uc2VIZWFkZXJzKQorICAgIH07Cit9CisKK2Jv
b2wgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6b3BlcmF0b3I9PShjb25zdCBNb2RpZnlIZWFkZXJzQWN0
aW9uJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gb3RoZXIucmVxdWVzdEhlYWRlcnMgPT0g
dGhpcy0+cmVxdWVzdEhlYWRlcnMKKyAgICAgICAgJiYgb3RoZXIucmVzcG9uc2VIZWFkZXJzID09
IHRoaXMtPnJlc3BvbnNlSGVhZGVyczsKK30KKworLy8gRklYTUU6IEltcGxlbWVudCBzZXJpYWxp
emF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gb2YgZWFjaCBvZiB0aGVzZSB0eXBlcywgdGhlbiBk
byB0aGVpciBhY3Rpb25zLgordm9pZCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpzZXJpYWxpemUoVmVj
dG9yPHVpbnQ4X3Q+JikgY29uc3QKK3sKK30KKworTW9kaWZ5SGVhZGVyc0FjdGlvbiBNb2RpZnlI
ZWFkZXJzQWN0aW9uOjpkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KQoreworICAgIHJl
dHVybiB7IH07Cit9CisKK3NpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpzZXJpYWxpemVkTGVu
Z3RoKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2F1dG8gTW9k
aWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6cGFyc2UoY29uc3QgSlNPTjo6VmFs
dWUmIGluZm9WYWx1ZSkgLT4gRXhwZWN0ZWQ8TW9kaWZ5SGVhZGVySW5mbywgc3RkOjplcnJvcl9j
b2RlPgoreworICAgIGF1dG8gb2JqZWN0ID0gaW5mb1ZhbHVlLmFzT2JqZWN0KCk7CisgICAgaWYg
KCFvYmplY3QpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW5mb05vdEFEaWN0aW9uYXJ5KTsKKworICAgIFN0cmlu
ZyBvcGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIik7CisgICAgaWYgKCFv
cGVyYXRpb24pCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbik7CisKKyAgICBTdHJpbmcg
aGVhZGVyID0gb2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciIpOworICAgIGlmICghaGVhZGVyKQor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
TW9kaWZ5SGVhZGVyc01pc3NpbmdIZWFkZXIpOworCisgICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0
LT5nZXRTdHJpbmcoInZhbHVlIik7CisKKyAgICBpZiAob3BlcmF0aW9uID09ICJzZXQiKSB7Cisg
ICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdWYWx1ZSk7CisgICAg
ICAgIHJldHVybiBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvIHsgTW9kaWZ5
SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6U2V0T3BlcmF0aW9uIHsgV1RGTW92ZSho
ZWFkZXIpLCBXVEZNb3ZlKHZhbHVlKSB9IH07CisgICAgfQorICAgIGlmIChvcGVyYXRpb24gPT0g
ImFwcGVuZCIpIHsKKyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2lu
Z1ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIE1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRl
ckluZm8geyBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpBcHBlbmRPcGVy
YXRpb24geyBXVEZNb3ZlKGhlYWRlciksIFdURk1vdmUodmFsdWUpIH0gfTsKKyAgICB9CisgICAg
aWYgKG9wZXJhdGlvbiA9PSAicmVtb3ZlIikKKyAgICAgICAgcmV0dXJuIE1vZGlmeUhlYWRlcnNB
Y3Rpb246Ok1vZGlmeUhlYWRlckluZm8geyBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFk
ZXJJbmZvOjpSZW1vdmVPcGVyYXRpb24geyBXVEZNb3ZlKGhlYWRlcikgfSB9OworICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJz
SW52YWxpZE9wZXJhdGlvbik7Cit9CisKK2F1dG8gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5
SGVhZGVySW5mbzo6aXNvbGF0ZWRDb3B5KCkgY29uc3QgLT4gTW9kaWZ5SGVhZGVySW5mbworewor
ICAgIHJldHVybiB7CisgICAgICAgIGNyb3NzVGhyZWFkQ29weShvcGVyYXRpb24pCisgICAgfTsK
K30KKworYm9vbCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpvcGVyYXRv
cj09KGNvbnN0IE1vZGlmeUhlYWRlckluZm8mIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBv
dGhlci5vcGVyYXRpb24gPT0gdGhpcy0+b3BlcmF0aW9uOworfQorCit2b2lkIE1vZGlmeUhlYWRl
cnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBj
b25zdAoreworfQorCithdXRvIE1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86
OmRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pIC0+IE1vZGlmeUhlYWRlckluZm8KK3sK
KyAgICByZXR1cm4geyB9OworfQorCitzaXplX3QgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5
SGVhZGVySW5mbzo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+KQoreworICAg
IHJldHVybiAwOworfQorCitFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2Rl
PiBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9iamVj
dCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhbGxvd2VkUmVkaXJlY3RVUkxTY2hlbWVzKQorewor
ICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRPYmplY3QoInJlZGlyZWN0Iik7
CisgICAgaWYgKCFyZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0TWlzc2luZyk7CisKKyAgICBpZiAoYXV0byBl
eHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBhdGgiKTsgISFl
eHRlbnNpb25QYXRoKSB7CisgICAgICAgIGlmICghZXh0ZW5zaW9uUGF0aC5zdGFydHNXaXRoKCcv
JykpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OUmVkaXJlY3RFeHRlbnNpb25QYXRoRG9lc05vdFN0YXJ0V2l0aFNsYXNoKTsKKyAg
ICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7IFdURk1v
dmUoZXh0ZW5zaW9uUGF0aCkgfSB9OworICAgIH0KKworICAgIGlmIChhdXRvIHJlZ2V4U3Vic3Rp
dHV0aW9uID0gcmVkaXJlY3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIik7ICEhcmVn
ZXhTdWJzdGl0dXRpb24pCisgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vi
c3RpdHV0aW9uQWN0aW9uIHsgV1RGTW92ZShyZWdleFN1YnN0aXR1dGlvbikgfSB9OworCisgICAg
aWYgKGF1dG8gdHJhbnNmb3JtID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIikpIHsK
KyAgICAgICAgYXV0byBwYXJzZWRUcmFuc2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNl
KCp0cmFuc2Zvcm0sIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpOworICAgICAgICBpZiAoIXBh
cnNlZFRyYW5zZm9ybSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChwYXJzZWRU
cmFuc2Zvcm0uZXJyb3IoKSk7CisgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFdURk1v
dmUoKnBhcnNlZFRyYW5zZm9ybSkgfTsKKyAgICB9CisKKyAgICBpZiAoYXV0byB1cmwgPSByZWRp
cmVjdC0+Z2V0U3RyaW5nKCJ1cmwiKTsgISF1cmwpIHsKKyAgICAgICAgaWYgKCFhbGxvd2VkUmVk
aXJlY3RVUkxTY2hlbWVzLmNvbnRhaW5zKFVSTChVUkwoKSwgdXJsKS5wcm90b2NvbCgpLnRvU3Ry
aW5nV2l0aG91dENvcHlpbmcoKSkpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVOb3RBbGxvd2VkKTsK
KyAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgVVJMQWN0aW9uIHsgV1RGTW92ZSh1cmwp
IH0gfTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkVHlwZSk7Cit9CisKK1JlZGlyZWN0QWN0aW9uIFJl
ZGlyZWN0QWN0aW9uOjppc29sYXRlZENvcHkoKSBjb25zdAoreworICAgIHJldHVybiB7CisgICAg
ICAgIGNyb3NzVGhyZWFkQ29weShhY3Rpb24pCisgICAgfTsKK30KKworYm9vbCBSZWRpcmVjdEFj
dGlvbjo6b3BlcmF0b3I9PShjb25zdCBSZWRpcmVjdEFjdGlvbiYgb3RoZXIpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG90aGVyLmFjdGlvbiA9PSB0aGlzLT5hY3Rpb247Cit9CisKK3ZvaWQgUmVkaXJl
Y3RBY3Rpb246OnNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25zdAoreworfQorCitSZWRp
cmVjdEFjdGlvbiBSZWRpcmVjdEFjdGlvbjo6ZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90
PikKK3sKKyAgICByZXR1cm4geyB9OworfQorCitzaXplX3QgUmVkaXJlY3RBY3Rpb246OnNlcmlh
bGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90PikKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
YXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09O
OjpPYmplY3QmIHRyYW5zZm9ybSwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhbGxvd2VkUmVkaXJl
Y3RVUkxTY2hlbWVzKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3Jf
Y29kZT4KK3sKKyAgICBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uIGFjdGlvbjsK
KyAgICBhY3Rpb24uZnJhZ21lbnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJmcmFnbWVudCIpOwor
ICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNmb3JtLmdldFN0cmluZygiaG9zdCIpOworICAgIGFjdGlv
bi5wYXNzd29yZCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhc3N3b3JkIik7CisgICAgYWN0aW9u
LnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXRoIik7CisgICAgYWN0aW9uLnBvcnQgPSB0
cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwb3J0Iik7CisgICAgYXV0byBzY2hlbWUgPSB0cmFuc2Zvcm0u
Z2V0U3RyaW5nKCJzY2hlbWUiKTsKKyAgICBpZiAoISFzY2hlbWUgJiYgIWFsbG93ZWRSZWRpcmVj
dFVSTFNjaGVtZXMuY29udGFpbnMoc2NoZW1lKSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMU2NoZW1lTm90QWxsb3dl
ZCk7CisgICAgYWN0aW9uLnNjaGVtZSA9IFdURk1vdmUoc2NoZW1lKTsKKyAgICBhY3Rpb24udXNl
cm5hbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJ1c2VybmFtZSIpOworICAgIGlmIChhdXRvIHF1
ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdldE9iamVjdCgicXVlcnktdHJhbnNmb3JtIikpIHsK
KyAgICAgICAgYXV0byBwYXJzZWRRdWVyeVRyYW5zZm9ybSA9IFF1ZXJ5VHJhbnNmb3JtOjpwYXJz
ZSgqcXVlcnlUcmFuc2Zvcm0pOworICAgICAgICBpZiAoIXBhcnNlZFF1ZXJ5VHJhbnNmb3JtKQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBhcnNlZFF1ZXJ5VHJhbnNmb3JtLmVy
cm9yKCkpOworICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zvcm0gPSAqcGFyc2VkUXVlcnlUcmFu
c2Zvcm07CisgICAgfSBlbHNlCisgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9IHRyYW5z
Zm9ybS5nZXRTdHJpbmcoInF1ZXJ5Iik7CisgICAgcmV0dXJuIFdURk1vdmUoYWN0aW9uKTsKK30K
KworYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjppc29sYXRlZENvcHko
KSBjb25zdCAtPiBVUkxUcmFuc2Zvcm1BY3Rpb24KK3sKKyAgICByZXR1cm4geworICAgICAgICBj
cm9zc1RocmVhZENvcHkoZnJhZ21lbnQpLAorICAgICAgICBjcm9zc1RocmVhZENvcHkoaG9zdCks
CisgICAgICAgIGNyb3NzVGhyZWFkQ29weShwYXNzd29yZCksCisgICAgICAgIGNyb3NzVGhyZWFk
Q29weShwYXRoKSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHBvcnQpLAorICAgICAgICBjcm9z
c1RocmVhZENvcHkocXVlcnlUcmFuc2Zvcm0pLAorICAgICAgICBjcm9zc1RocmVhZENvcHkoc2No
ZW1lKSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHVzZXJuYW1lKQorICAgIH07Cit9CisKK2Jv
b2wgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6b3BlcmF0b3I9PShjb25zdCBV
UkxUcmFuc2Zvcm1BY3Rpb24mIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBvdGhlci5mcmFn
bWVudCA9PSB0aGlzLT5mcmFnbWVudAorICAgICAgICAmJiBvdGhlci5ob3N0ID09IHRoaXMtPmhv
c3QKKyAgICAgICAgJiYgb3RoZXIucGFzc3dvcmQgPT0gdGhpcy0+cGFzc3dvcmQKKyAgICAgICAg
JiYgb3RoZXIucGF0aCA9PSB0aGlzLT5wYXRoCisgICAgICAgICYmIG90aGVyLnBvcnQgPT0gdGhp
cy0+cG9ydAorICAgICAgICAmJiBvdGhlci5xdWVyeVRyYW5zZm9ybSA9PSB0aGlzLT5xdWVyeVRy
YW5zZm9ybQorICAgICAgICAmJiBvdGhlci5zY2hlbWUgPT0gdGhpcy0+c2NoZW1lCisgICAgICAg
ICYmIG90aGVyLnVzZXJuYW1lID09IHRoaXMtPnVzZXJuYW1lOworfQorCit2b2lkIFJlZGlyZWN0
QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBj
b25zdAoreworfQorCithdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OmRl
c2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pIC0+IFVSTFRyYW5zZm9ybUFjdGlvbgorewor
ICAgIHJldHVybiB7IH07Cit9CisKK3NpemVfdCBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3Jt
QWN0aW9uOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0
dXJuIDA7Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVl
cnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgcXVlcnlUcmFuc2Zvcm0pIC0+
IEV4cGVjdGVkPFF1ZXJ5VHJhbnNmb3JtLCBzdGQ6OmVycm9yX2NvZGU+Cit7CisgICAgUmVkaXJl
Y3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm0gcGFyc2VkUXVlcnlU
cmFuc2Zvcm07CisKKyAgICBpZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRy
YW5zZm9ybS5nZXRWYWx1ZSgicmVtb3ZlLXBhcmFtZXRlcnMiKSkgeworICAgICAgICBhdXRvIHJl
bW92ZVBhcmFtZXRlcnNBcnJheSA9IHJlbW92ZVBhcmFtZXRlcnNWYWx1ZS0+YXNBcnJheSgpOwor
ICAgICAgICBpZiAoIXJlbW92ZVBhcmFtZXRlcnNBcnJheSkKKyAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJhbWV0ZXJz
Tm90U3RyaW5nQXJyYXkpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiByZW1vdmVQYXJhbWV0ZXJz
VmVjdG9yOworICAgICAgICByZW1vdmVQYXJhbWV0ZXJzVmVjdG9yLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkocmVtb3ZlUGFyYW1ldGVyc0FycmF5LT5sZW5ndGgoKSk7CisgICAgICAgIGZvciAoYXV0
byYgcGFyYW1ldGVyIDogKnJlbW92ZVBhcmFtZXRlcnNBcnJheSkgeworICAgICAgICAgICAgaWYg
KHBhcmFtZXRlci5nZXQoKS50eXBlKCkgIT0gSlNPTjo6VmFsdWU6OlR5cGU6OlN0cmluZykKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OUmVtb3ZlUGFyYW1ldGVyc05vdFN0cmluZ0FycmF5KTsKKyAgICAgICAgICAgIHJlbW92
ZVBhcmFtZXRlcnNWZWN0b3IudW5jaGVja2VkQXBwZW5kKHBhcmFtZXRlci5nZXQoKS5hc1N0cmlu
ZygpKTsKKyAgICAgICAgfQorICAgICAgICBwYXJzZWRRdWVyeVRyYW5zZm9ybS5yZW1vdmVQYXJh
bXMgPSBXVEZNb3ZlKHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IpOworICAgIH0KKworICAgIGlmIChh
dXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVl
KCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIikpIHsKKyAgICAgICAgYXV0byBhZGRPclJlcGxh
Y2VQYXJhbWV0ZXJzQXJyYXkgPSBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXko
KTsKKyAgICAgICAgaWYgKCFhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkpCisgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JS
ZXBsYWNlUGFyYW1ldGVyc05vdEFycmF5KTsKKyAgICAgICAgVmVjdG9yPFF1ZXJ5S2V5VmFsdWU+
IGtleVZhbHVlczsKKyAgICAgICAga2V5VmFsdWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYWRk
T3JSZXBsYWNlUGFyYW1ldGVyc0FycmF5LT5sZW5ndGgoKSk7CisgICAgICAgIGZvciAoYXV0byYg
cXVlcnlLZXlWYWx1ZSA6ICphZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkpIHsKKyAgICAgICAg
ICAgIGF1dG8ga2V5VmFsdWUgPSBRdWVyeUtleVZhbHVlOjpwYXJzZShxdWVyeUtleVZhbHVlLmdl
dCgpKTsKKyAgICAgICAgICAgIGlmICgha2V5VmFsdWUpCisgICAgICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKGtleVZhbHVlLmVycm9yKCkpOworICAgICAgICAgICAga2V5VmFsdWVz
LnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCprZXlWYWx1ZSkpOworICAgICAgICB9CisgICAgICAg
IHBhcnNlZFF1ZXJ5VHJhbnNmb3JtLmFkZE9yUmVwbGFjZVBhcmFtcyA9IFdURk1vdmUoa2V5VmFs
dWVzKTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGTW92ZShwYXJzZWRRdWVyeVRyYW5zZm9ybSk7
Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFu
c2Zvcm06Omlzb2xhdGVkQ29weSgpIGNvbnN0IC0+IFF1ZXJ5VHJhbnNmb3JtCit7CisgICAgcmV0
dXJuIHsKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KGFkZE9yUmVwbGFjZVBhcmFtcyksCisgICAg
ICAgIGNyb3NzVGhyZWFkQ29weShyZW1vdmVQYXJhbXMpCisgICAgfTsKK30KKworYm9vbCBSZWRp
cmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6b3BlcmF0b3I9
PShjb25zdCBRdWVyeVRyYW5zZm9ybSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVy
LmFkZE9yUmVwbGFjZVBhcmFtcyA9PSB0aGlzLT5hZGRPclJlcGxhY2VQYXJhbXMKKyAgICAgICAg
JiYgb3RoZXIucmVtb3ZlUGFyYW1zID09IHRoaXMtPnJlbW92ZVBhcmFtczsKK30KKwordm9pZCBS
ZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6c2VyaWFs
aXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0Cit7Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246
OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OmRlc2VyaWFsaXplKFNwYW48Y29u
c3QgdWludDhfdD4pIC0+IFF1ZXJ5VHJhbnNmb3JtCit7CisgICAgcmV0dXJuIHsgfTsKK30KKwor
c2l6ZV90IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3Jt
OjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIDA7
Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFu
c2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKGNvbnN0IEpTT046OlZhbHVlJiBrZXlWYWx1ZVZh
bHVlKSAtPiBFeHBlY3RlZDxRdWVyeUtleVZhbHVlLCBzdGQ6OmVycm9yX2NvZGU+Cit7CisgICAg
YXV0byBrZXlWYWx1ZSA9IGtleVZhbHVlVmFsdWUuYXNPYmplY3QoKTsKKyAgICBpZiAoIWtleVZh
bHVlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURpY3Rpb25hcnkpOworCisg
ICAgU3RyaW5nIGtleSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSIpOworICAgIGlmICgha2V5
KQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ0tleVN0cmluZyk7CisKKyAg
ICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSIpOworICAgIGlmICgh
dmFsdWUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nVmFsdWVTdHJpbmcp
OworCisgICAgYm9vbCByZXBsYWNlT25seSB7IGZhbHNlIH07CisgICAgaWYgKGF1dG8gYm9vbGVh
biA9IGtleVZhbHVlLT5nZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiKSkKKyAgICAgICAgcmVwbGFj
ZU9ubHkgPSAqYm9vbGVhbjsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZShrZXkpLCByZXBsYWNl
T25seSwgV1RGTW92ZSh2YWx1ZSkgfSB9OworfQorCithdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxU
cmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjppc29sYXRlZENv
cHkoKSBjb25zdCAtPiBRdWVyeUtleVZhbHVlCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgY3Jv
c3NUaHJlYWRDb3B5KGtleSksCisgICAgICAgIGNyb3NzVGhyZWFkQ29weShyZXBsYWNlT25seSks
CisgICAgICAgIGNyb3NzVGhyZWFkQ29weSh2YWx1ZSkKKyAgICB9OworfQorCitib29sIFJlZGly
ZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZh
bHVlOjpvcGVyYXRvcj09KGNvbnN0IFF1ZXJ5S2V5VmFsdWUmIG90aGVyKSBjb25zdAoreworICAg
IHJldHVybiBvdGhlci5rZXkgPT0gdGhpcy0+a2V5CisgICAgICAgICYmIG90aGVyLnJlcGxhY2VP
bmx5ID09IHRoaXMtPnJlcGxhY2VPbmx5CisgICAgICAgICYmIG90aGVyLnZhbHVlID09IHRoaXMt
PnZhbHVlOworfQorCit2b2lkIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1
ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpzZXJpYWxpemUoVmVjdG9yPHVpbnQ4X3Q+Jikg
Y29uc3QKK3sKK30KKworYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpR
dWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6ZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50
OF90PikgLT4gUXVlcnlLZXlWYWx1ZQoreworICAgIHJldHVybiB7IH07Cit9CisKK3NpemVfdCBS
ZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlL
ZXlWYWx1ZTo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+KQoreworICAgIHJl
dHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucwor
CisjZW5kaWYgLy8gRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5o
CmluZGV4IGNjNzgwMzc3MWRjNWFhNDBmZGY4ZWVlMGZmMGZkNjRlNWQ1MWFlMjAuLjM1NDE4OGM5
NDg5MjFiNjAxNTYwNjk1ZTZmM2JjY2NkYTUwZjc1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaApA
QCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAKICNpbmNs
dWRlICJDb250ZW50RXh0ZW5zaW9uU3RyaW5nU2VyaWFsaXphdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9KU09OVmFsdWVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucyB7
CiAKQEAgLTU5LDEzICs2MCwxMjcgQEAgc3RydWN0IE5vdGlmeUFjdGlvbiA6IHB1YmxpYyBBY3Rp
b25XaXRoU3RyaW5nTWV0YWRhdGE8Tm90aWZ5QWN0aW9uPiB7IH07CiBzdHJ1Y3QgSWdub3JlUHJl
dmlvdXNSdWxlc0FjdGlvbiA6IHB1YmxpYyBBY3Rpb25XaXRob3V0TWV0YWRhdGE8SWdub3JlUHJl
dmlvdXNSdWxlc0FjdGlvbj4geyB9Owogc3RydWN0IE1ha2VIVFRQU0FjdGlvbiA6IHB1YmxpYyBB
Y3Rpb25XaXRob3V0TWV0YWRhdGE8TWFrZUhUVFBTQWN0aW9uPiB7IH07CiAKK3N0cnVjdCBNb2Rp
ZnlIZWFkZXJzQWN0aW9uIHsKKyAgICBzdHJ1Y3QgTW9kaWZ5SGVhZGVySW5mbyB7CisgICAgICAg
IHN0cnVjdCBBcHBlbmRPcGVyYXRpb24geworICAgICAgICAgICAgU3RyaW5nIGhlYWRlcjsKKyAg
ICAgICAgICAgIFN0cmluZyB2YWx1ZTsKKworICAgICAgICAgICAgQXBwZW5kT3BlcmF0aW9uIGlz
b2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgaGVhZGVyLmlzb2xhdGVkQ29weSgpLCB2YWx1
ZS5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
QXBwZW5kT3BlcmF0aW9uJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIuaGVhZGVyID09IHRo
aXMtPmhlYWRlciAmJiBvdGhlci52YWx1ZSA9PSB0aGlzLT52YWx1ZTsgfQorICAgICAgICB9Owor
ICAgICAgICBzdHJ1Y3QgU2V0T3BlcmF0aW9uIHsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXI7
CisgICAgICAgICAgICBTdHJpbmcgdmFsdWU7CisKKyAgICAgICAgICAgIFNldE9wZXJhdGlvbiBp
c29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGhlYWRlci5pc29sYXRlZENvcHkoKSwgdmFs
dWUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFNldE9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLmhlYWRlciA9PSB0aGlz
LT5oZWFkZXIgJiYgb3RoZXIudmFsdWUgPT0gdGhpcy0+dmFsdWU7IH0KKyAgICAgICAgfTsKKyAg
ICAgICAgc3RydWN0IFJlbW92ZU9wZXJhdGlvbiB7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVy
OworCisgICAgICAgICAgICBSZW1vdmVPcGVyYXRpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyBy
ZXR1cm4geyBoZWFkZXIuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICAgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFJlbW92ZU9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVy
LmhlYWRlciA9PSB0aGlzLT5oZWFkZXI7IH0KKyAgICAgICAgfTsKKyAgICAgICAgc3RkOjp2YXJp
YW50PEFwcGVuZE9wZXJhdGlvbiwgU2V0T3BlcmF0aW9uLCBSZW1vdmVPcGVyYXRpb24+IG9wZXJh
dGlvbjsKKworICAgICAgICBzdGF0aWMgRXhwZWN0ZWQ8TW9kaWZ5SGVhZGVySW5mbywgc3RkOjpl
cnJvcl9jb2RlPiBwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYpOworICAgICAgICBNb2RpZnlIZWFk
ZXJJbmZvIGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgTW9kaWZ5SGVhZGVySW5mbyYpIGNvbnN0OworICAgICAgICB2b2lkIHNlcmlhbGl6ZShWZWN0
b3I8dWludDhfdD4mKSBjb25zdDsKKyAgICAgICAgc3RhdGljIE1vZGlmeUhlYWRlckluZm8gZGVz
ZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgIHN0YXRpYyBzaXplX3Qgc2Vy
aWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICB9OworICAgIFZlY3RvcjxN
b2RpZnlIZWFkZXJJbmZvPiByZXF1ZXN0SGVhZGVyczsKKyAgICBWZWN0b3I8TW9kaWZ5SGVhZGVy
SW5mbz4gcmVzcG9uc2VIZWFkZXJzOworCisgICAgc3RhdGljIEV4cGVjdGVkPE1vZGlmeUhlYWRl
cnNBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0Jik7Cisg
ICAgTW9kaWZ5SGVhZGVyc0FjdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIG9wZXJhdG9yPT0oY29uc3QgTW9kaWZ5SGVhZGVyc0FjdGlvbiYpIGNvbnN0
OworICAgIHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0OworICAgIHN0YXRp
YyBNb2RpZnlIZWFkZXJzQWN0aW9uIGRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pOwor
ICAgIHN0YXRpYyBzaXplX3Qgc2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsK
K307CisKK3N0cnVjdCBSZWRpcmVjdEFjdGlvbiB7CisgICAgc3RydWN0IEV4dGVuc2lvblBhdGhB
Y3Rpb24geworICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uUGF0aDsKKworICAgICAgICBFeHRlbnNp
b25QYXRoQWN0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgZXh0ZW5zaW9uUGF0
aC5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFeHRl
bnNpb25QYXRoQWN0aW9uJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIuZXh0ZW5zaW9uUGF0
aCA9PSB0aGlzLT5leHRlbnNpb25QYXRoOyB9CisgICAgfTsKKyAgICBzdHJ1Y3QgUmVnZXhTdWJz
dGl0dXRpb25BY3Rpb24geworICAgICAgICBTdHJpbmcgcmVnZXhTdWJzdGl0dXRpb247CisKKyAg
ICAgICAgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1
cm4geyByZWdleFN1YnN0aXR1dGlvbi5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG90aGVyLnJlZ2V4U3Vic3RpdHV0aW9uID09IHRoaXMtPnJlZ2V4U3Vic3RpdHV0aW9u
OyB9CisgICAgfTsKKyAgICBzdHJ1Y3QgVVJMVHJhbnNmb3JtQWN0aW9uIHsKKyAgICAgICAgU3Ry
aW5nIGZyYWdtZW50OworICAgICAgICBTdHJpbmcgaG9zdDsKKyAgICAgICAgU3RyaW5nIHBhc3N3
b3JkOworICAgICAgICBTdHJpbmcgcGF0aDsKKyAgICAgICAgU3RyaW5nIHBvcnQ7CisgICAgICAg
IHN0cnVjdCBRdWVyeVRyYW5zZm9ybSB7CisgICAgICAgICAgICBzdHJ1Y3QgUXVlcnlLZXlWYWx1
ZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgICAgICAgICBib29sIHJl
cGxhY2VPbmx5IHsgZmFsc2UgfTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWU7CisKKyAg
ICAgICAgICAgICAgICBzdGF0aWMgRXhwZWN0ZWQ8UXVlcnlLZXlWYWx1ZSwgc3RkOjplcnJvcl9j
b2RlPiBwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYpOworICAgICAgICAgICAgICAgIFF1ZXJ5S2V5
VmFsdWUgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisgICAgICAgICAgICAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFF1ZXJ5S2V5VmFsdWUmKSBjb25zdDsKKyAgICAgICAgICAgICAgICB2b2lkIHNl
cmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25zdDsKKyAgICAgICAgICAgICAgICBzdGF0aWMg
UXVlcnlLZXlWYWx1ZSBkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICAgICAg
ICAgICAgICBzdGF0aWMgc2l6ZV90IHNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90
Pik7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgVmVjdG9yPFF1ZXJ5S2V5VmFsdWU+IGFk
ZE9yUmVwbGFjZVBhcmFtczsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlbW92ZVBhcmFt
czsKKworICAgICAgICAgICAgc3RhdGljIEV4cGVjdGVkPFF1ZXJ5VHJhbnNmb3JtLCBzdGQ6OmVy
cm9yX2NvZGU+IHBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYpOworICAgICAgICAgICAgUXVlcnlU
cmFuc2Zvcm0gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisgICAgICAgICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgUXVlcnlUcmFuc2Zvcm0mKSBjb25zdDsKKyAgICAgICAgICAgIHZvaWQgc2VyaWFs
aXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0OworICAgICAgICAgICAgc3RhdGljIFF1ZXJ5VHJh
bnNmb3JtIGRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pOworICAgICAgICAgICAgc3Rh
dGljIHNpemVfdCBzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pOworICAgICAg
ICB9OworICAgICAgICBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBRdWVyeVRyYW5zZm9ybT4gcXVlcnlU
cmFuc2Zvcm07CisgICAgICAgIFN0cmluZyBzY2hlbWU7CisgICAgICAgIFN0cmluZyB1c2VybmFt
ZTsKKworICAgICAgICBzdGF0aWMgRXhwZWN0ZWQ8VVJMVHJhbnNmb3JtQWN0aW9uLCBzdGQ6OmVy
cm9yX2NvZGU+IHBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYsIGNvbnN0IEhhc2hTZXQ8U3RyaW5n
PiYpOworICAgICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cisg
ICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBVUkxUcmFuc2Zvcm1BY3Rpb24mKSBjb25zdDsK
KyAgICAgICAgdm9pZCBzZXJpYWxpemUoVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3Q7CisgICAgICAg
IHN0YXRpYyBVUkxUcmFuc2Zvcm1BY3Rpb24gZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90
Pik7CisgICAgICAgIHN0YXRpYyBzaXplX3Qgc2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVp
bnQ4X3Q+KTsKKyAgICB9OworICAgIHN0cnVjdCBVUkxBY3Rpb24geworICAgICAgICBTdHJpbmcg
dXJsOworCisgICAgICAgIFVSTEFjdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7
IHVybC5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBV
UkxBY3Rpb24mIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci51cmwgPT0gdGhpcy0+dXJsOyB9
CisgICAgfTsKKyAgICB1c2luZyBBY3Rpb25WYXJpYW50ID0gc3RkOjp2YXJpYW50PEV4dGVuc2lv
blBhdGhBY3Rpb24sIFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uLCBVUkxUcmFuc2Zvcm1BY3Rpb24s
IFVSTEFjdGlvbj47CisgICAgQWN0aW9uVmFyaWFudCBhY3Rpb247CisKKyAgICBzdGF0aWMgRXhw
ZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2UoY29uc3QgSlNPTjo6
T2JqZWN0JiwgY29uc3QgSGFzaFNldDxTdHJpbmc+Jik7CisgICAgUmVkaXJlY3RBY3Rpb24gaXNv
bGF0ZWRDb3B5KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFJlZGlyZWN0QWN0aW9uJikgY29uc3Q7CisgICAgdm9pZCBzZXJpYWxpemUoVmVjdG9yPHVp
bnQ4X3Q+JikgY29uc3Q7CisgICAgc3RhdGljIFJlZGlyZWN0QWN0aW9uIGRlc2VyaWFsaXplKFNw
YW48Y29uc3QgdWludDhfdD4pOworICAgIHN0YXRpYyBzaXplX3Qgc2VyaWFsaXplZExlbmd0aChT
cGFuPGNvbnN0IHVpbnQ4X3Q+KTsKK307CisKIHVzaW5nIEFjdGlvbkRhdGEgPSBzdGQ6OnZhcmlh
bnQ8CiAgICAgQmxvY2tMb2FkQWN0aW9uLAogICAgIEJsb2NrQ29va2llc0FjdGlvbiwKICAgICBD
U1NEaXNwbGF5Tm9uZVNlbGVjdG9yQWN0aW9uLAogICAgIE5vdGlmeUFjdGlvbiwKICAgICBJZ25v
cmVQcmV2aW91c1J1bGVzQWN0aW9uLAotICAgIE1ha2VIVFRQU0FjdGlvbgorICAgIE1ha2VIVFRQ
U0FjdGlvbiwKKyAgICBNb2RpZnlIZWFkZXJzQWN0aW9uLAorICAgIFJlZGlyZWN0QWN0aW9uCiA+
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25Db21waWxlci5jcHAKaW5kZXggN2E4MTI3YzA5NDI1MTNmNjIxMmUyZjQ1NTNlYTAxNGQ2ZGI4
MjI1MC4uZjdkNGI0OTI2MGQwMjJlNDA2YjA1YTllZWJmYjQyM2MxYmNiZDBlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uQ29tcGlsZXIuY3BwCkBAIC0xNTQsNiArMTU0LDEwIEBAIHN0YXRpYyBWZWN0b3I8dW5z
aWduZWQ+IHNlcmlhbGl6ZUFjdGlvbnMoY29uc3QgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxl
PiYgcnVsCiAgICAgICAgICAgICBmaW5kT3JNYWtlQWN0aW9uTG9jYXRpb24obWFrZUhUVFBTQWN0
aW9uc01hcCk7CiAgICAgICAgIH0sIFsmXSAoY29uc3QgTm90aWZ5QWN0aW9uJiBhY3Rpb25EYXRh
KSB7CiAgICAgICAgICAgICBmaW5kT3JNYWtlU3RyaW5nQWN0aW9uTG9jYXRpb24obm90aWZ5QWN0
aW9uc01hcCwgYWN0aW9uRGF0YSk7CisgICAgICAgIH0sIFsmXSAoY29uc3QgTW9kaWZ5SGVhZGVy
c0FjdGlvbiYpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICAgICAgfSwg
WyZdIChjb25zdCBSZWRpcmVjdEFjdGlvbiYpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKICAgICAgICAgfSksIGFjdGlvbkRhdGEpOwogICAgICAgICBhY3Rpb25Mb2NhdGlvbnMu
YXBwZW5kKGFjdGlvbkxvY2F0aW9uKTsKICAgICB9CkBAIC0yNjMsNyArMjY3LDcgQEAgc3RkOjpl
cnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGll
bnQmIGNsaWVudCwgU3RyaW4KIHsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGNhbGxPbk1haW5U
aHJlYWQoW3J1bGVKU09OID0gcnVsZUpTT04uaXNvbGF0ZWRDb3B5KCksIHBhcnNlZFJ1bGVMaXN0
ID0gcGFyc2VkUnVsZUxpc3QuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgQVNTRVJUKHBhcnNl
UnVsZUxpc3QocnVsZUpTT04pLnZhbHVlKCkgPT0gcGFyc2VkUnVsZUxpc3QpOworICAgICAgICBB
U1NFUlQocGFyc2VSdWxlTGlzdChydWxlSlNPTiwgeyB9KS52YWx1ZSgpID09IHBhcnNlZFJ1bGVM
aXN0KTsKICAgICB9KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcAppbmRleCAyN2NmYmQ1
YmJjMWExYjY1OWE5NmY3MTdmZTUwZmNjMWNjNmE2YTFmLi4xZjBhODNiZWVlMTlhNGRkZTRmNzk0
MGZjYzVkNWFjYjFkYjkyZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAKQEAgLTYzLDggKzYzLDYg
QEAgY29uc3Qgc3RkOjplcnJvcl9jYXRlZ29yeSYgY29udGVudEV4dGVuc2lvbkVycm9yQ2F0ZWdv
cnkoKQogICAgICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCB1cmwtZmlsdGVyIG9iamVjdC4i
OwogICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJp
Z2dlckZsYWdzQXJyYXk6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkIHRyaWdnZXIg
ZmxhZ3MgYXJyYXkuIjsKLSAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZE9iamVjdEluVHJpZ2dlckZsYWdzQXJyYXk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuICJJbnZhbGlkIG9iamVjdCBpbiB0aGUgdHJpZ2dlciBmbGFncyBhcnJheS4iOwogICAgICAg
ICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3RyaW5nSW5Ucmln
Z2VyRmxhZ3NBcnJheToKICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgc3RyaW5nIGlu
IHRoZSB0cmlnZ2VyIGZsYWdzIGFycmF5LiI7CiAgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb246CkBAIC04OSw2ICs4NywzNiBAQCBjb25zdCBz
dGQ6OmVycm9yX2NhdGVnb3J5JiBjb250ZW50RXh0ZW5zaW9uRXJyb3JDYXRlZ29yeSgpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuICJBIG5vdGlmeSBhY3Rpb24gbXVzdCBoYXZlIGEgc3RyaW5nIG5v
dGlmaWNhdGlvbiI7CiAgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6RXJy
b3JXcml0aW5nU2VyaWFsaXplZE5GQToKICAgICAgICAgICAgICAgICByZXR1cm4gIkludGVybmFs
IEkvTyBlcnJvciI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TlJlZGlyZWN0TWlzc2luZzoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgcmVkaXJlY3QgYWN0
aW9uIG11c3QgaGF2ZSBhIHJlZGlyZWN0IG1lbWJlciI7CisgICAgICAgICAgICBjYXNlIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJpbmdBcnJheToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gIkEgcmVtb3ZlLXBhcmFtZXRlcnMgdmFsdWUgbXVzdCBiZSBh
biBhcnJheSBvZiBzdHJpbmdzIjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc05vdEFycmF5OgorICAgICAgICAgICAgICAg
IHJldHVybiAiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVycyB2YWx1ZSBtdXN0IGJlIGFuIGFycmF5
IjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBs
YWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURpY3Rpb25hcnk6CisgICAgICAgICAgICAgICAgcmV0
dXJuICJNZW1iZXJzIG9mIHRoZSBhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIGFycmF5IG11c3Qg
YmUgYSBkaWN0aW9uYXJ5IjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ0tleVN0cmluZzoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gIk1lbWJlcnMgb2YgdGhlIGFkZC1vci1yZXBsYWNlLXBhcmFt
ZXRlcnMgYXJyYXkgbXVzdCBjb250YWluIGEga2V5IHRoYXQgaXMgYSBzdHJpbmciOworICAgICAg
ICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0
ZXJzS2V5VmFsdWVNaXNzaW5nVmFsdWVTdHJpbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuICJN
ZW1iZXJzIG9mIHRoZSBhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIGFycmF5IG11c3QgY29udGFp
biBhIHZhbHVlIHRoYXQgaXMgYSBzdHJpbmciOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xh
c2g6CisgICAgICAgICAgICAgICAgcmV0dXJuICJBIHJlZGlyZWN0IGV4dGVuc2lvbiBwYXRoIG11
c3Qgc3RhcnQgd2l0aCBhIHNsYXNoIjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVOb3RBbGxvd2VkOgorICAgICAgICAgICAgICAg
IHJldHVybiAiQSByZWRpcmVjdCB1cmwgc2NoZW1lIG11c3QgYmUgaW4gdGhlIHNldCBvZiBhbGxv
d2VkIHNjaGVtZXMiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05SZWRpcmVjdEludmFsaWRUeXBlOgorICAgICAgICAgICAgICAgIHJldHVybiAiQSByZWRpcmVj
dCBtdXN0IGhhdmUgYSBtZW1iZXIgbmFtZWQgXCJleHRlbnNpb24tcGF0aFwiLCBcInJlZ2V4LXN1
YnN0aXR1dGlvblwiLCBcInRyYW5zZm9ybVwiIG9yIFwidXJsXCIiOworICAgICAgICAgICAgY2Fz
ZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW52YWxpZE9wZXJhdGlv
bjoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgbW9kaWZ5LWhlYWRlcnMgb3BlcmF0aW9uIG11
c3QgaGF2ZSBhbiBvcGVyYXRpb24gdGhhdCBpcyBlaXRoZXIgXCJzZXRcIiwgXCJhcHBlbmRcIiwg
b3IgXCJyZW1vdmVcIiI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnk6CisgICAgICAgICAgICAgICAgcmV0
dXJuICJBIG1vZGlmeS1oZWFkZXJzIG9wZXJhdGlvbiBtdXN0IGJlIGEgZGljdGlvbmFyeSI7Cisg
ICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNN
aXNzaW5nT3BlcmF0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiAiQSBtb2RpZnktaGVhZGVy
cyBvcGVyYXRpb24gbXVzdCBoYXZlIGFuIG9wZXJhdGlvbiI7CisgICAgICAgICAgICBjYXNlIENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nSGVhZGVyOgorICAg
ICAgICAgICAgICAgIHJldHVybiAiQSBtb2RpZnktaGVhZGVycyBvcGVyYXRpb24gbXVzdCBoYXZl
IGEgaGVhZGVyIjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
TW9kaWZ5SGVhZGVyc01pc3NpbmdWYWx1ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgbW9k
aWZ5LWhlYWRlcnMgb3BlcmF0aW9uIG9mIFwic2V0XCIgb3IgXCJhcHBlbmRcIiBtdXN0IGhhdmUg
YSB2YWx1ZSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1v
ZGlmeUhlYWRlcnNOb3RBcnJheToKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgaGVhZGVycyBt
ZW1iZXIgbXVzdCBiZSBhbiBhcnJheSI7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaAppbmRleCAxNGE3YjE0NzlhYzBmMDlm
ZDkwNTA1NjMwYTgzNzE3ZTA0OWYwZDVjLi5lNzA3YjQ2Y2EzOTAzYmExNDIyZTdhNmZkZmRmZDll
NDMxNDBkZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaApAQCAtNDUsNyArNDUsNiBAQCBlbnVtIGNsYXNz
IENvbnRlbnRFeHRlbnNpb25FcnJvciB7CiAgICAgSlNPTkludmFsaWRUcmlnZ2VyLAogICAgIEpT
T05JbnZhbGlkVVJMRmlsdGVySW5UcmlnZ2VyLAogICAgIEpTT05JbnZhbGlkVHJpZ2dlckZsYWdz
QXJyYXksCi0gICAgSlNPTkludmFsaWRPYmplY3RJblRyaWdnZXJGbGFnc0FycmF5LAogICAgIEpT
T05JbnZhbGlkU3RyaW5nSW5UcmlnZ2VyRmxhZ3NBcnJheSwKICAgICBKU09OSW52YWxpZENvbmRp
dGlvbkxpc3QsCiAgICAgSlNPTkRvbWFpbk5vdExvd2VyQ2FzZUFTQ0lJLApAQCAtNTksNiArNTgs
MjUgQEAgZW51bSBjbGFzcyBDb250ZW50RXh0ZW5zaW9uRXJyb3IgewogICAgIEpTT05JbnZhbGlk
Tm90aWZpY2F0aW9uLAogICAgIEpTT05JbnZhbGlkUmVnZXgsCiAKKyAgICBKU09OUmVkaXJlY3RN
aXNzaW5nLAorICAgIEpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xh
c2gsCisgICAgSlNPTlJlZGlyZWN0VVJMU2NoZW1lTm90QWxsb3dlZCwKKyAgICBKU09OUmVkaXJl
Y3RJbnZhbGlkVHlwZSwKKworICAgIEpTT05SZW1vdmVQYXJhbWV0ZXJzTm90U3RyaW5nQXJyYXks
CisKKyAgICBKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc05vdEFycmF5LAorICAgIEpTT05BZGRP
clJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGljdGlvbmFyeSwKKyAgICBKU09OQWRkT3JS
ZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ0tleVN0cmluZywKKyAgICBKU09OQWRkT3JS
ZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ1ZhbHVlU3RyaW5nLAorCisgICAgSlNPTk1v
ZGlmeUhlYWRlcnNOb3RBcnJheSwKKyAgICBKU09OTW9kaWZ5SGVhZGVyc0luZm9Ob3RBRGljdGlv
bmFyeSwKKyAgICBKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdPcGVyYXRpb24sCisgICAgSlNPTk1v
ZGlmeUhlYWRlcnNJbnZhbGlkT3BlcmF0aW9uLAorICAgIEpTT05Nb2RpZnlIZWFkZXJzTWlzc2lu
Z0hlYWRlciwKKyAgICBKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdWYWx1ZSwKKwogICAgIEVycm9y
V3JpdGluZ1NlcmlhbGl6ZWRORkEsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDc5
NzdmYTA0NWZhNzM1MGRkYTFjNzg1Nzk2YTJjOGY0ZDkzYmE2NjYuLmNkNTIwNDMwNmFmMDk5YzNl
NjU1YTMzMGQ5OWZhM2ZjMjVmNmIxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC01NCwx
MSArNTQsMTIgQEAgc3RhdGljIGJvb2wgY29udGFpbnNPbmx5QVNDSUlXaXRoTm9VcHBlcmNhc2Uo
Y29uc3QgU3RyaW5nJiBkb21haW4pCiBzdGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIHN0
ZDo6ZXJyb3JfY29kZT4gZ2V0U3RyaW5nTGlzdChjb25zdCBKU09OOjpBcnJheSYgYXJyYXkpCiB7
CiAgICAgVmVjdG9yPFN0cmluZz4gc3RyaW5nczsKKyAgICBzdHJpbmdzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoYXJyYXkubGVuZ3RoKCkpOwogICAgIGZvciAoYXV0byYgdmFsdWUgOiBhcnJheSkg
ewogICAgICAgICBTdHJpbmcgc3RyaW5nID0gdmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlm
IChzdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKLSAgICAgICAg
c3RyaW5ncy5hcHBlbmQoc3RyaW5nKTsKKyAgICAgICAgc3RyaW5ncy51bmNoZWNrZWRBcHBlbmQo
c3RyaW5nKTsKICAgICB9CiAgICAgcmV0dXJuIHN0cmluZ3M7CiB9CkBAIC0xNzgsNyArMTc5LDcg
QEAgYm9vbCBpc1ZhbGlkQ1NTU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcikKICAgICBy
ZXR1cm4gISFwYXJzZXIucGFyc2VTZWxlY3RvcihzZWxlY3Rvcik7CiB9CiAKLXN0YXRpYyBFeHBl
Y3RlZDxzdGQ6Om9wdGlvbmFsPEFjdGlvbj4sIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZEFjdGlvbihj
b25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBl
Y3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6T2Jq
ZWN0JiBydWxlT2JqZWN0LCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVS
TFNjaGVtZXMpCiB7CiAgICAgYXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVj
dCgiYWN0aW9uIik7CiAgICAgaWYgKCFhY3Rpb25PYmplY3QpCkBAIC0xODcsNDkgKzE4OCw1OCBA
QCBzdGF0aWMgRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxBY3Rpb24+LCBzdGQ6OmVycm9yX2NvZGU+
IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6TwogICAgIFN0cmluZyBhY3Rpb25UeXBlID0gYWN0aW9u
T2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiKTsKIAogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9j
ayIpCi0gICAgICAgIHJldHVybiB7IEFjdGlvbihCbG9ja0xvYWRBY3Rpb24oKSkgfTsKKyAgICAg
ICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrTG9hZEFjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5
cGUgPT0gImlnbm9yZS1wcmV2aW91cy1ydWxlcyIpCi0gICAgICAgIHJldHVybiB7IEFjdGlvbihJ
Z25vcmVQcmV2aW91c1J1bGVzQWN0aW9uKCkpIH07CisgICAgICAgIHJldHVybiBBY3Rpb24geyBJ
Z25vcmVQcmV2aW91c1J1bGVzQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxv
Y2stY29va2llcyIpCi0gICAgICAgIHJldHVybiB7IEFjdGlvbihCbG9ja0Nvb2tpZXNBY3Rpb24o
KSkgfTsKKyAgICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrQ29va2llc0FjdGlvbigpIH07CiAg
ICAgaWYgKGFjdGlvblR5cGUgPT0gImNzcy1kaXNwbGF5LW5vbmUiKSB7CiAgICAgICAgIFN0cmlu
ZyBzZWxlY3RvclN0cmluZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciIpOwog
ICAgICAgICBpZiAoIXNlbGVjdG9yU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5Tm9uZUFj
dGlvblR5cGUpOwotICAgICAgICBpZiAoIWlzVmFsaWRDU1NTZWxlY3RvcihzZWxlY3RvclN0cmlu
ZykpIHsKLSAgICAgICAgICAgIC8vIFNraXAgcnVsZXMgd2l0aCBpbnZhbGlkIHNlbGVjdG9ycyB0
byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZS4KLSAgICAgICAgICAgIHJldHVybiB7IHN0ZDo6bnVs
bG9wdCB9OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7IEFjdGlvbiB7IENTU0Rpc3BsYXlO
b25lU2VsZWN0b3JBY3Rpb24geyB7IFdURk1vdmUoc2VsZWN0b3JTdHJpbmcpIH0gfSB9IH07Cisg
ICAgICAgIGlmICghaXNWYWxpZENTU1NlbGVjdG9yKHNlbGVjdG9yU3RyaW5nKSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7IC8vIFNraXAgcnVsZXMgd2l0aCBpbnZhbGlkIHNlbGVj
dG9ycyB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZS4KKyAgICAgICAgcmV0dXJuIEFjdGlvbiB7
IENTU0Rpc3BsYXlOb25lU2VsZWN0b3JBY3Rpb24geyB7IFdURk1vdmUoc2VsZWN0b3JTdHJpbmcp
IH0gfSB9OwogICAgIH0KICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibWFrZS1odHRwcyIpCi0gICAg
ICAgIHJldHVybiB7IEFjdGlvbihNYWtlSFRUUFNBY3Rpb24oKSkgfTsKKyAgICAgICAgcmV0dXJu
IEFjdGlvbiB7IE1ha2VIVFRQU0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gIm5v
dGlmeSIpIHsKICAgICAgICAgU3RyaW5nIG5vdGlmaWNhdGlvbiA9IGFjdGlvbk9iamVjdC0+Z2V0
U3RyaW5nKCJub3RpZmljYXRpb24iKTsKICAgICAgICAgaWYgKCFub3RpZmljYXRpb24pCiAgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
SW52YWxpZE5vdGlmaWNhdGlvbik7Ci0gICAgICAgIHJldHVybiB7IEFjdGlvbiB7IE5vdGlmeUFj
dGlvbiB7IHsgV1RGTW92ZShub3RpZmljYXRpb24pIH0gfSB9IH07CisgICAgICAgIHJldHVybiBB
Y3Rpb24geyBOb3RpZnlBY3Rpb24geyB7IFdURk1vdmUobm90aWZpY2F0aW9uKSB9IH0gfTsKKyAg
ICB9CisgICAgaWYgKGFjdGlvblR5cGUgPT0gInJlZGlyZWN0IikgeworICAgICAgICBhdXRvIGFj
dGlvbiA9IFJlZGlyZWN0QWN0aW9uOjpwYXJzZSgqYWN0aW9uT2JqZWN0LCBhbGxvd2VkUmVkaXJl
Y3RVUkxTY2hlbWVzKTsKKyAgICAgICAgaWYgKCFhY3Rpb24pCisgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoYWN0aW9uLmVycm9yKCkpOworICAgICAgICByZXR1cm4gQWN0aW9uIHsg
UmVkaXJlY3RBY3Rpb24geyBXVEZNb3ZlKCphY3Rpb24pIH0gfTsKKyAgICB9CisgICAgaWYgKGFj
dGlvblR5cGUgPT0gIm1vZGlmeS1oZWFkZXJzIikgeworICAgICAgICBhdXRvIGFjdGlvbiA9IE1v
ZGlmeUhlYWRlcnNBY3Rpb246OnBhcnNlKCphY3Rpb25PYmplY3QpOworICAgICAgICBpZiAoIWFj
dGlvbikKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhY3Rpb24uZXJyb3IoKSk7
CisgICAgICAgIHJldHVybiBBY3Rpb24geyBXVEZNb3ZlKCphY3Rpb24pIH07CiAgICAgfQogICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
QWN0aW9uVHlwZSk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPENvbnRlbnRF
eHRlbnNpb25SdWxlPiwgc3RkOjplcnJvcl9jb2RlPiBsb2FkUnVsZShjb25zdCBKU09OOjpPYmpl
Y3QmIHJ1bGVPYmplY3QpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxDb250ZW50RXh0
ZW5zaW9uUnVsZSwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZFJ1bGUoY29uc3QgSlNPTjo6T2JqZWN0
JiBydWxlT2JqZWN0LCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNj
aGVtZXMpCiB7CiAgICAgYXV0byB0cmlnZ2VyID0gbG9hZFRyaWdnZXIocnVsZU9iamVjdCk7CiAg
ICAgaWYgKCF0cmlnZ2VyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQodHJpZ2dlci5lcnJvcigpKTsKIAotICAgIGF1dG8gYWN0aW9uID0gbG9hZEFjdGlvbihydWxl
T2JqZWN0KTsKLSAgICBpZiAoIWFjdGlvbi5oYXNfdmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKGFjdGlvbi5lcnJvcigpKTsKLQotICAgIGlmIChhY3Rpb24udmFsdWUoKSkK
LSAgICAgICAgcmV0dXJuIHt7eyBXVEZNb3ZlKHRyaWdnZXIudmFsdWUoKSksIFdURk1vdmUoYWN0
aW9uLnZhbHVlKCkudmFsdWUoKSkgfX19OworICAgIGF1dG8gYWN0aW9uID0gbG9hZEFjdGlvbihy
dWxlT2JqZWN0LCBhbGxvd2VkUmVkaXJlY3RVUkxTY2hlbWVzKTsKKyAgICBpZiAoIWFjdGlvbikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWFjdGlvbi0+aGFzX3ZhbHVl
KCkpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhY3Rpb24tPmVycm9yKCkpOwogCi0g
ICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0IH07CisgICAgcmV0dXJuIHsgeyB7IFdURk1vdmUodHJp
Z2dlci52YWx1ZSgpKSwgV1RGTW92ZShhY3Rpb24tPnZhbHVlKCkpIH0gfSB9OwogfQogCi1zdGF0
aWMgRXhwZWN0ZWQ8VmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiwgc3RkOjplcnJvcl9jb2Rl
PiBsb2FkRW5jb2RlZFJ1bGVzKGNvbnN0IFN0cmluZyYgcnVsZUpTT04pCitzdGF0aWMgRXhwZWN0
ZWQ8VmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiwgc3RkOjplcnJvcl9jb2RlPiBsb2FkRW5j
b2RlZFJ1bGVzKGNvbnN0IFN0cmluZyYgcnVsZUpTT04sIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYg
YWxsb3dlZFJlZGlyZWN0VVJMU2NoZW1lcykKIHsKICAgICBhdXRvIGRlY29kZWRSdWxlcyA9IEpT
T046OlZhbHVlOjpwYXJzZUpTT04ocnVsZUpTT04pOwogCkBAIC0yNDUsMjggKzI1NSwzMCBAQCBz
dGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiwgc3RkOjplcnJvcl9j
b2RlPiBsb2FkRW5jb2RlZFJ1bGVzKAogICAgIGNvbnN0ZXhwciBzaXplX3QgbWF4UnVsZUNvdW50
ID0gMTUwMDAwOwogICAgIGlmICh0b3BMZXZlbEFycmF5LT5sZW5ndGgoKSA+IG1heFJ1bGVDb3Vu
dCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTlRvb01hbnlSdWxlcyk7CisgICAgcnVsZUxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0
b3BMZXZlbEFycmF5LT5sZW5ndGgoKSk7CiAgICAgZm9yIChhdXRvJiB2YWx1ZSA6ICp0b3BMZXZl
bEFycmF5KSB7CiAgICAgICAgIGF1dG8gcnVsZU9iamVjdCA9IHZhbHVlLT5hc09iamVjdCgpOwog
ICAgICAgICBpZiAoIXJ1bGVPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJ1bGUpOwogCi0gICAgICAgIGF1
dG8gcnVsZSA9IGxvYWRSdWxlKCpydWxlT2JqZWN0KTsKLSAgICAgICAgaWYgKCFydWxlLmhhc192
YWx1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJ1bGUuZXJyb3IoKSk7
Ci0gICAgICAgIGlmIChydWxlLnZhbHVlKCkpCi0gICAgICAgICAgICBydWxlTGlzdC5hcHBlbmQo
V1RGTW92ZSgqcnVsZS52YWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcnVsZSA9IGxvYWRSdWxlKCpy
dWxlT2JqZWN0LCBhbGxvd2VkUmVkaXJlY3RVUkxTY2hlbWVzKTsKKyAgICAgICAgaWYgKCFydWxl
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghcnVsZS0+aGFzX3ZhbHVlKCkp
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocnVsZS0+ZXJyb3IoKSk7CisgICAg
ICAgIHJ1bGVMaXN0LnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKHJ1bGUtPnZhbHVlKCkpKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcnVsZUxpc3Q7CiB9CiAKLUV4cGVjdGVkPFZlY3RvcjxDb250ZW50
RXh0ZW5zaW9uUnVsZT4sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2VSdWxlTGlzdChjb25zdCBTdHJp
bmcmIHJ1bGVKU09OKQorRXhwZWN0ZWQ8VmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiwgc3Rk
OjplcnJvcl9jb2RlPiBwYXJzZVJ1bGVMaXN0KGNvbnN0IFN0cmluZyYgcnVsZUpTT04sIGNvbnN0
IEhhc2hTZXQ8U3RyaW5nPiYgYWxsb3dlZFJlZGlyZWN0VVJMU2NoZW1lcykKIHsKICNpZiBDT05U
RU5UX0VYVEVOU0lPTlNfUEVSRk9STUFOQ0VfUkVQT1JUSU5HCiAgICAgTW9ub3RvbmljVGltZSBs
b2FkRXh0ZW5zaW9uU3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAjZW5kaWYKIAot
ICAgIGF1dG8gcnVsZUxpc3QgPSBsb2FkRW5jb2RlZFJ1bGVzKHJ1bGVKU09OKTsKKyAgICBhdXRv
IHJ1bGVMaXN0ID0gbG9hZEVuY29kZWRSdWxlcyhydWxlSlNPTiwgYWxsb3dlZFJlZGlyZWN0VVJM
U2NoZW1lcyk7CiAKICAgICBpZiAoIXJ1bGVMaXN0Lmhhc192YWx1ZSgpKQogICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQocnVsZUxpc3QuZXJyb3IoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmgKaW5k
ZXggZjExMzRiNmZiMjI4YzNhYjZkZmFmMmU2NmUzY2VlMDIxODJhZGE1Zi4uY2E3Mjk0MGU3NDNl
YWIzM2UyZDQyYzU1ZDg0MzZkMzMyMGFhODFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuaApAQCAtMzgs
NyArMzgsNyBAQCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBjbGFzcyBDb250ZW50
RXh0ZW5zaW9uUnVsZTsKIAotV0VCQ09SRV9FWFBPUlQgRXhwZWN0ZWQ8VmVjdG9yPENvbnRlbnRF
eHRlbnNpb25SdWxlPiwgc3RkOjplcnJvcl9jb2RlPiBwYXJzZVJ1bGVMaXN0KGNvbnN0IFN0cmlu
ZyYpOworV0VCQ09SRV9FWFBPUlQgRXhwZWN0ZWQ8VmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxl
Piwgc3RkOjplcnJvcl9jb2RlPiBwYXJzZVJ1bGVMaXN0KGNvbnN0IFN0cmluZyYsIGNvbnN0IEhh
c2hTZXQ8U3RyaW5nPiYgYWxsb3dlZFJlZGlyZWN0VVJMU2NoZW1lcyk7CiBXRUJDT1JFX0VYUE9S
VCBib29sIGlzVmFsaWRDU1NTZWxlY3Rvcihjb25zdCBTdHJpbmcmKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgQ29udGVudEV4dGVuc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmluZGV4IGJlYTY3
YmEwMzFmYTdhZGFhOGNjMjNiZjcxYzU3MTFiYTRjNGU5NDIuLjZmY2FjZjQyMDYxYmZlODk3YjY2
ZTBkNDEyNmIwZjZiNjZhYWY2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApAQCAtMjI4
LDYgKzIyOCwxMCBAQCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKAogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0sIFsmXShjb25zdCBJZ25vcmVQcmV2aW91c1J1bGVzQWN0aW9uJikgewog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICB9LCBbJl0gKGNvbnN0IE1vZGlmeUhlYWRlcnNBY3Rpb24mKSB7CisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudAorICAgICAgICAgICAgfSwgWyZdIChjb25zdCBSZWRpcmVjdEFj
dGlvbiYpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50CiAgICAgICAgICAg
ICB9KSwgYWN0aW9uLmRhdGEoKSk7CiAgICAgICAgIH0KIApAQCAtMjg3LDYgKzI5MSwxMCBAQCBD
b250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JQaW5nTAogICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnN1bW1h
cnkubWFkZUhUVFBTID0gdHJ1ZTsKICAgICAgICAgICAgIH0sIFsmXShjb25zdCBJZ25vcmVQcmV2
aW91c1J1bGVzQWN0aW9uJikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICB9LCBbJl0gKGNvbnN0IE1vZGlmeUhlYWRlcnNBY3Rpb24m
KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudAorICAgICAgICAgICAgfSwg
WyZdIChjb25zdCBSZWRpcmVjdEFjdGlvbiYpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50CiAgICAgICAgICAgICB9KSwgYWN0aW9uLmRhdGEoKSk7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRS
dWxlTGlzdFN0b3JlLmNwcAppbmRleCBlZjljNDE5NDhkMTA1OWI2NDFmNmFlYjU2YzUwOWIzMWZk
NzdiNGFjLi5lZmI4MDcyYjk3MzUyNGQ0ZWY2YTZlODdjYTNjZGNlMzQ3MWQyYWY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RT
dG9yZS5jcHAKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpj
b21waWxlQ29udGVudFJ1bGVMaXN0KGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLAogICAg
IEF0b21TdHJpbmc6OmluaXQoKTsKICAgICBXZWJDb3JlOjpRdWFsaWZpZWROYW1lOjppbml0KCk7
CiAgICAgCi0gICAgYXV0byBwYXJzZWRSdWxlcyA9IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpwYXJzZVJ1bGVMaXN0KGpzb24pOworICAgIGF1dG8gcGFyc2VkUnVsZXMgPSBXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlzdChqc29uLCB7IH0pOwogICAgIGlmICghcGFy
c2VkUnVsZXMuaGFzX3ZhbHVlKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihu
dWxscHRyLCBwYXJzZWRSdWxlcy5lcnJvcigpKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMDIzYTQ2NmFkYjc4Y2MxNDdjNmYzZDU1
MjJlODBlNmYwNTg5Y2VhLi4yYmQxOThkMTYyMTU5ODc3ODM4MTU2YTcyNjI3NDBkMmY3NjI0ZmUx
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMTEtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBQYXJzZSByZWRpcmVjdCBhbmQgbW9kaWZ5LWhlYWRlcnMg
YWN0aW9ucyBmb3IgV0tDb250ZW50UnVsZUxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIw
MjEtMTEtMDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXN0cnVjdHVyZSBXS0NvbnRlbnRSdWxlTGlzdCBBY3Rpb24gc3RvcmFnZSBkdXJp
bmcgY29tcGlsYXRpb24gYW5kIGludGVycHJldGF0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCA2MWIx
NGY4MGJkMmY0MTBlMWFlNGI5NzNjNzg5ZDA3OTIzODk1MTNmLi40NWQ5NTdkZjkzZmM2MzA1MWFm
MWIwMWYwMjIwZWFiYWYyOWU0NjM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTEyOCw3ICsxMjgsNyBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhIGV4
dGVuc2lvbkRhdGE7CiAgICAgICAgIEluTWVtb3J5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9u
Q2xpZW50IGNsaWVudChleHRlbnNpb25EYXRhKTsKLSAgICAgICAgYXV0byBwYXJzZWRSdWxlcyA9
IENvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KGZpbHRlcik7CisgICAgICAgIGF1dG8g
cGFyc2VkUnVsZXMgPSBDb250ZW50RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlzdChmaWx0ZXIsIHsg
fSk7CiAgICAgICAgIGF1dG8gY29tcGlsZXJFcnJvciA9IENvbnRlbnRFeHRlbnNpb25zOjpjb21w
aWxlUnVsZUxpc3QoY2xpZW50LCBXVEZNb3ZlKGZpbHRlciksIFdURk1vdmUocGFyc2VkUnVsZXMu
dmFsdWUoKSkpOwogCiAgICAgICAgIC8vIENvbXBpbGluZyBzaG91bGQgYWx3YXlzIHN1Y2NlZWQg
aGVyZS4gV2UgaGF2ZSBvdGhlciB0ZXN0cyBmb3IgY29tcGlsZSBmYWlsdXJlcy4KQEAgLTEzNjAs
MTEgKzEzNjAsMTEgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBEZWVwTkZBKQogICAg
IEVYUEVDVF9FUSgxdWwsIGNyZWF0ZU5GQXMoY29tYmluZWRVUkxGaWx0ZXJzKS5zaXplKCkpOwog
fQogCi12b2lkIGNoZWNrQ29tcGlsZXJFcnJvcihjb25zdCBjaGFyKiBqc29uLCBzdGQ6OmVycm9y
X2NvZGUgZXhwZWN0ZWRFcnJvcikKK3ZvaWQgY2hlY2tDb21waWxlckVycm9yKGNvbnN0IGNoYXIq
IGpzb24sIHN0ZDo6ZXJyb3JfY29kZSBleHBlY3RlZEVycm9yLCBjb25zdCBIYXNoU2V0PFN0cmlu
Zz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMgPSB7IH0pCiB7CiAgICAgQ29tcGlsZWRDb250
ZW50RXh0ZW5zaW9uRGF0YSBleHRlbnNpb25EYXRhOwogICAgIEluTWVtb3J5Q29udGVudEV4dGVu
c2lvbkNvbXBpbGF0aW9uQ2xpZW50IGNsaWVudChleHRlbnNpb25EYXRhKTsKLSAgICBhdXRvIHBh
cnNlZFJ1bGVzID0gQ29udGVudEV4dGVuc2lvbnM6OnBhcnNlUnVsZUxpc3QoanNvbik7CisgICAg
YXV0byBwYXJzZWRSdWxlcyA9IENvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KGpzb24s
IGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpOwogICAgIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxl
ckVycm9yOwogICAgIGlmIChwYXJzZWRSdWxlcy5oYXNfdmFsdWUoKSkKICAgICAgICAgY29tcGls
ZXJFcnJvciA9IENvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3QoY2xpZW50LCBqc29u
LCBXVEZNb3ZlKHBhcnNlZFJ1bGVzLnZhbHVlKCkpKTsKQEAgLTE0NDAsNTIgKzE0NDAsNTIgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBNYXRjaGVzRXZlcnl0aGluZykKICAgICAKIFRF
U1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgSW52YWxpZEpTT04pCiB7Ci0gICAgY2hlY2tDb21w
aWxlckVycm9yKCJbIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkludmFsaWQpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiMTIzIiwgQ29udGVudEV4dGVu
c2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcExldmVsU3RydWN0dXJlTm90QW5B
cnJheSk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJ7fSIsIENvbnRlbnRFeHRlbnNpb25zOjpD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub3BMZXZlbFN0cnVjdHVyZU5vdEFuQXJyYXkpOwot
ICAgIC8vIEZJWE1FOiBBZGQgdW5pdCB0ZXN0IGZvciBKU09OSW52YWxpZFJ1bGUgaWYgdGhhdCBp
cyBwb3NzaWJsZSB0byBoaXQuCi0gICAgY2hlY2tDb21waWxlckVycm9yKCJbXSIsIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Db250YWluc05vUnVsZXMpOwor
ICAgIHVzaW5nIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9uczsKKyAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlsiLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkKTsKKyAgICBjaGVj
a0NvbXBpbGVyRXJyb3IoIjEyMyIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcExldmVs
U3RydWN0dXJlTm90QW5BcnJheSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJ7fSIsIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcExldmVsU3RydWN0dXJlTm90QW5BcnJheSk7CisgICAg
Y2hlY2tDb21waWxlckVycm9yKCJbNV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkUnVsZSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbXSIsIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkNvbnRhaW5zTm9SdWxlcyk7CiAKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjo1fV0iLAotICAgICAg
ICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRy
aWdnZXIpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dl
cik7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXCJ9fV0iLAotICAgICAgICBDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFVSTEZpbHRl
ckluVHJpZ2dlcik7CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRV
UkxGaWx0ZXJJblRyaWdnZXIpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjp7fX19XSIs
Ci0gICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkVVJMRmlsdGVySW5UcmlnZ2VyKTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFVSTEZpbHRlckluVHJpZ2dlcik7CiAKLSAgICAvLyBGSVhNRTogQWRkIHVu
aXQgdGVzdCBmb3IgSlNPTkludmFsaWRPYmplY3RJblRyaWdnZXJGbGFnc0FycmF5IGlmIHRoYXQg
aXMgcG9zc2libGUgdG8gaGl0LgogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtp
dC5vcmdcIixcImxvYWQtdHlwZVwiOnt9fX1dIiwKLSAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6
OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7Cisg
ICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJh
eSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwibG9hZC10
eXBlXCI6W1wiaW52YWxpZFwiXX19XSIsCi0gICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3RyaW5nSW5UcmlnZ2VyRmxhZ3NBcnJheSk7
CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRTdHJpbmdJblRyaWdn
ZXJGbGFnc0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCIsXCJsb2FkLXR5cGVcIjpbNV19fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFN0cmluZ0luVHJpZ2dlckZsYWdzQXJyYXkp
OworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3RyaW5nSW5Ucmln
Z2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wiLFwibG9hZC10eXBlXCI6NX19XSIsCi0gICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOworICAgICAg
ICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwog
ICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImxvYWQtdHlwZVwi
OlwiZmlyc3QtcGFydHlcIn19XSIsCi0gICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOworICAgICAgICBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwogICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImxvYWQtdHlwZVwiOm51
bGx9fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJsb2FkLXR5cGVcIjpmYWxzZX19XSIsCi0gICAg
ICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
VHJpZ2dlckZsYWdzQXJyYXkpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
IndlYmtpdC5vcmdcIixcInJlc291cmNlLXR5cGVcIjp7fX19XSIsCi0gICAgICAgIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdz
QXJyYXkpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dl
ckZsYWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
IixcInJlc291cmNlLXR5cGVcIjpbXCJpbnZhbGlkXCJdfX1dIiwKLSAgICAgICAgQ29udGVudEV4
dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRTdHJpbmdJblRyaWdn
ZXJGbGFnc0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxp
ZFN0cmluZ0luVHJpZ2dlckZsYWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tc
ImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIixcInJlc291cmNlLXR5cGVcIjpbNV19fV0iLAotICAgICAgICBDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFN0cmluZ0lu
VHJpZ2dlckZsYWdzQXJyYXkpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkU3RyaW5nSW5UcmlnZ2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tDb21waWxlckVycm9y
KCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwid2Via2l0Lm9yZ1wiLFwicmVzb3VyY2UtdHlwZVwiOjV9fV0iLAotICAgICAgICBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdn
ZXJGbGFnc0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxp
ZFRyaWdnZXJGbGFnc0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCIsXCJyZXNvdXJjZS10eXBlXCI6XCJkb2N1bWVudFwifX1dIiwKLSAgICAgICAgQ29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2Vy
RmxhZ3NBcnJheSk7CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRU
cmlnZ2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0
Lm9yZ1wiLFwicmVzb3VyY2UtdHlwZVwiOm51bGx9fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5
KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFn
c0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJy
ZXNvdXJjZS10eXBlXCI6ZmFsc2V9fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKKyAgICAg
ICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsK
ICAgICAKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJu
b3RpZnlcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9u
KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3Rp
ZnlcIixcIm5vdGlmaWNhdGlvblwiOjV9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4q
XCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52
YWxpZE5vdGlmaWNhdGlvbik7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpbXX0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsKKyAgICBjaGVja0NvbXBpbGVyRXJy
b3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRO
b3RpZmljYXRpb24pOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6NX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwiLipcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWROb3Rp
ZmljYXRpb24pOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6W119LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIi4qXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZp
Y2F0aW9uKTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOlwiaGVyZSdzIG15IG5vdGlmaWNhdGlvblwifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKICAgICBjaGVja0Nv
bXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNh
dGlvblwiOlwiXFx1MTIzNFwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwifX1d
IiwgeyB9KTsKICAgICAKQEAgLTE0OTgsNTcgKzE0OTgsNzkgQEAgVEVTVF9GKENvbnRlbnRFeHRl
bnNpb25UZXN0LCBJbnZhbGlkSlNPTikKICAgICBydWxlczE1MDAwMC5hcHBlbmQoIntcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFc
In19XSIpOwogICAgIHJ1bGVzMTUwMDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1d
Iik7CiAgICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzMTUwMDAwLnV0ZjgoKS5kYXRhKCksIHsg
fSk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzMTUwMDAxLnV0ZjgoKS5kYXRhKCksIENv
bnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMp
OworICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczE1MDAwMS51dGY4KCkuZGF0YSgpLCBDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOwogICAgIAotICAgIGNoZWNrQ29t
cGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOnt9fX1dIiwgQ29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRp
b25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJp
Zi1kb21haW5cIjpbNV19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigi
W3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOnt9fX1dIiwgQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOls1XX19XSIsIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKICAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJhXCJdfX1dIiwgeyB9
KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21h
aW5cIjpcImFcIn19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
Olwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6ZmFsc2V9fV0iLCBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOm51
bGx9fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52
YWxpZENvbmRpdGlvbkxpc3QpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtp
dC5vcmdcIixcInVubGVzcy1kb21haW5cIjp7fX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOls1XX19
XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
Q29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wiLFwidW5sZXNzLWRvbWFpblwiOltcIlwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOlwiYVwi
fX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFs
aWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQu
b3JnXCIsXCJ1bmxlc3MtZG9tYWluXCI6bnVsbH19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOmZhbHNl
fX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFs
aWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQu
b3JnXCIsXCJ1bmxlc3MtZG9tYWluXCI6W1wiQVwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Eb21haW5Ob3RMb3dlckNhc2VBU0NJSSk7Ci0gICAg
Y2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0
cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwi
OltcIlxcdTAwRENcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09ORG9tYWluTm90TG93ZXJDYXNlQVNDSUkpOworICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOlwiYVwifX1dIiwgQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGls
ZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOmZhbHNlfX1dIiwgQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOm51bGx9fV0i
LCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CisgICAg
Y2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0
cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwi
Ont9fX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3Qp
OworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2Nr
XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1k
b21haW5cIjpbNV19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0
aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwi
dW5sZXNzLWRvbWFpblwiOltcIlwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTklu
dmFsaWRDb25kaXRpb25MaXN0KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCIsXCJ1bmxlc3MtZG9tYWluXCI6XCJhXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJb
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOm51bGx9fV0iLCBDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOmZhbHNlfX1dIiwg
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNo
ZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJp
Z2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5cIjpb
XCJBXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09ORG9tYWluTm90TG93ZXJDYXNl
QVNDSUkpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVu
bGVzcy1kb21haW5cIjpbXCJcXHUwMERDXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09ORG9tYWluTm90TG93ZXJDYXNlQVNDSUkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tc
ImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5cIjpbXCIwXCJdfX1dIiwgeyB9KTsKICAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1bmxlc3MtZG9tYWlu
XCI6W1wiYVwiXX19XSIsIHsgfSk7CiAKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rp
b25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3
ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXSxcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1d
IiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRD
b25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCIsXCJ1bmxlc3MtZG9tYWluXCI6W119fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAgIGNoZWNrQ29tcGls
ZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOjV9fV0iLCBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxp
c3QpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJs
b2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVz
cy1kb21haW5cIjo1fX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjo1LFwidW5sZXNzLWRvbWFpblwiOjV9fV0i
LCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENv
bmRpdGlvbkxpc3QpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
IixcImlmLWRvbWFpblwiOltdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJy
b3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJhXCJdLFwidW5sZXNzLWRv
bWFpblwiOltdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
d2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W10sXCJ1bmxlc3MtZG9tYWluXCI6W1wiYVwiXX19
XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKKyAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1bmxlc3MtZG9tYWlu
XCI6W119fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlz
dCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9t
YWluXCI6NX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25M
aXN0KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1bmxl
c3MtZG9tYWluXCI6NX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25k
aXRpb25MaXN0KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBl
XCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIs
XCJpZi1kb21haW5cIjo1LFwidW5sZXNzLWRvbWFpblwiOjV9fV0iLCBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVycm9y
KCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W119fV0iLCBDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVy
cm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXSxcInVubGVzcy1k
b21haW5cIjpbXX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0
aW9ucyk7CiAKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjo1LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsCi0gICAgICAgIENvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQWN0aW9uKTsKKyAg
ICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlvbik7CiAgICAgY2hl
Y2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiaW52YWxpZFwifSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLAotICAgICAgICBDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlvblR5
cGUpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQWN0aW9uVHlw
ZSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiY3Nz
LWRpc3BsYXktbm9uZVwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCJ9fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZENTU0Rpc3BsYXlOb25lQWN0aW9uVHlwZSk7CisgICAgICAgIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5Tm9uZUFjdGlvblR5cGUpOwogCiAg
ICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiaWdub3JlLXBy
ZXZpb3VzLXJ1bGVzXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
In19LCIKICAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImNzcy1kaXNwbGF5LW5vbmVc
IixcInNlbGVjdG9yXCI6XCIuaGlkZGVuXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
Ii4qXCJ9fV0iLCB7IH0pOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCIsXCJp
Zi1kb21haW5cIjpbXCJhXCJdfX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCIuKlwiLFwidW5sZXNzLWRvbWFpblwiOltcImFcIl19fV0iLCB7IH0pOwogICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIltcIn19XSIsCi0gICAgICAgIENvbnRlbnRFeHRlbnNpb25z
OjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXgpOwotCi0gICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXSxc
InVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl0sXCJ1bmxl
c3MtdG9wLXVybFwiOltdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJb
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl0sXCJ1bmxlc3MtdG9wLXVy
bFwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJhXCJdLFwiaWYtdG9wLXVybFwiOltcImFc
Il19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTXVs
dGlwbGVDb25kaXRpb25zKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQu
b3JnXCIsXCJpZi10b3AtdXJsXCI6W10sXCJ1bmxlc3MtZG9tYWluXCI6W1wiYVwiXX19XSIsIENv
bnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRp
dGlvbnMpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlm
LXRvcC11cmxcIjpbXCJhXCJdLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19XSIsIENvbnRlbnRFeHRl
bnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRpdGlvbnMpOwot
ICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxc
IjpbXCJhXCJdfX0sIHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltcImFcIl19fV0i
LCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9wVVJMQW5k
RG9tYWluQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0
Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl19fSwge1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5s
ZXNzLWRvbWFpblwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OVG9wVVJMQW5kRG9tYWluQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwidGVzdFxcXFwuaHRtbFwiLCBcInVubGVzcy10b3AtdXJsXCI6W1wi
W1wiXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkUmVnZXgpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
UmVnZXgpOworCisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwi
aWYtZG9tYWluXCI6W1wiYVwiXSxcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKKyAgICBjaGVja0NvbXBp
bGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W1wiYVwiXSxcInVu
bGVzcy10b3AtdXJsXCI6W119fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBs
ZUNvbmRpdGlvbnMpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
IixcImlmLXRvcC11cmxcIjpbXCJhXCJdLFwidW5sZXNzLXRvcC11cmxcIjpbXCJhXCJdfX1dIiwg
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKKyAgICBjaGVj
a0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJhXCJd
LFwiaWYtdG9wLXVybFwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05N
dWx0aXBsZUNvbmRpdGlvbnMpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtp
dC5vcmdcIixcImlmLXRvcC11cmxcIjpbXSxcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwg
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKKyAgICBjaGVj
a0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W1wiYVwi
XSxcImlmLWRvbWFpblwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05N
dWx0aXBsZUNvbmRpdGlvbnMpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtp
dC5vcmdcIixcImlmLXRvcC11cmxcIjpbXCJhXCJdfX0sIHtcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlm
LWRvbWFpblwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub3BVUkxB
bmREb21haW5Db25kaXRpb25zKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W1wiYVwiXX19LCB7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1
bmxlc3MtZG9tYWluXCI6W1wiYVwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRv
cFVSTEFuZERvbWFpbkNvbmRpdGlvbnMpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
InRlc3RcXFxcLmh0bWxcIiwgXCJ1bmxlc3MtdG9wLXVybFwiOltcIltcIl19fV0iLCBDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXgpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcIndlYmtpdC5vcmdcIiwgXCJ1bmV4cGVjdGVkLWlkZW50aWZpZXItc2hvdWxkLWJl
LWlnbm9yZWRcIjo1fX1dIiwgeyB9KTsKKworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcInJlZGlyZWN0XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0
TWlzc2luZyk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e319LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJc
IjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0
SW52YWxpZFR5cGUpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInF1ZXJ5LXRy
YW5zZm9ybVwiOntcInJlbW92ZS1wYXJhbWV0ZXJzXCI6NX19fX0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
UmVtb3ZlUGFyYW1ldGVyc05vdFN0cmluZ0FycmF5KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFu
c2Zvcm1cIjp7XCJxdWVyeS10cmFuc2Zvcm1cIjp7XCJyZW1vdmUtcGFyYW1ldGVyc1wiOls1XX19
fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OUmVtb3ZlUGFyYW1ldGVyc05vdFN0cmluZ0FycmF5KTsKKyAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwi
LFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJxdWVyeS10cmFuc2Zvcm1cIjp7XCJhZGQt
b3ItcmVwbGFjZS1wYXJhbWV0ZXJzXCI6NX19fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
Olwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBs
YWNlUGFyYW1ldGVyc05vdEFycmF5KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rp
b25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7
XCJxdWVyeS10cmFuc2Zvcm1cIjp7XCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzXCI6WzVdfX19
fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGlj
dGlvbmFyeSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e1widHJhbnNmb3JtXCI6e1wicXVlcnktdHJhbnNm
b3JtXCI6e1wiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVyc1wiOlt7fV19fX19LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcpOwor
ICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcInJlZGlyZWN0
XCIsXCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInF1ZXJ5LXRyYW5zZm9ybVwiOntcImFk
ZC1vci1yZXBsYWNlLXBhcmFtZXRlcnNcIjpbe1wia2V5XCI6NX1dfX19fSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKKyAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwi
LFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJxdWVyeS10cmFuc2Zvcm1cIjp7XCJhZGQt
b3ItcmVwbGFjZS1wYXJhbWV0ZXJzXCI6W3tcImtleVwiOlwia1wiLFwidmFsdWVcIjo1fV19fX19
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdW
YWx1ZVN0cmluZyk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e1widXJsXCI6XCJhYm91dDpibGFua1wifX0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVOb3RBbGxvd2VkKTsKKyAgICBjaGVj
a0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVk
aXJlY3RcIjp7XCJ1cmxcIjpcImFib3V0OmJsYW5rXCJ9fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCB7IH0sIHsgImFib3V0IiB9KTsKKyAgICBjaGVja0Nv
bXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVkaXJl
Y3RcIjp7XCJleHRlbnNpb24tcGF0aFwiOlwiZG9lcy9ub3Qvc3RhcnQvd2l0aC9zbGFzaC9cIn19
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0RXh0ZW5zaW9uUGF0aERvZXNOb3RTdGFydFdpdGhT
bGFzaCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
cmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e1wiZXh0ZW5zaW9uLXBhdGhcIjpcIi9kb2VzL3N0YXJ0
L3dpdGgvc2xhc2gvXCJ9fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCJ9fV0iLCB7IH0pOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInNjaGVtZVwi
OlwiYWJvdXRcIn19fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9
fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTFNjaGVtZU5vdEFsbG93
ZWQpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcInJl
ZGlyZWN0XCIsXCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInNjaGVtZVwiOlwiYWJvdXRc
In19fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCB7IH0s
IHsgImFib3V0IiB9KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJtb2RpZnktaGVhZGVyc1wiLFwicmVxdWVzdC1oZWFkZXJzXCI6NX0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OTW9kaWZ5SGVhZGVyc05vdEFycmF5KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJtb2RpZnktaGVhZGVyc1wiLFwicmVxdWVzdC1oZWFk
ZXJzXCI6WzVdfSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0i
LCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW5mb05vdEFEaWN0aW9u
YXJ5KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJt
b2RpZnktaGVhZGVyc1wiLFwicmVxdWVzdC1oZWFkZXJzXCI6W3t9XX0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OTW9kaWZ5SGVhZGVyc01pc3NpbmdPcGVyYXRpb24pOworICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm1vZGlmeS1oZWFkZXJzXCIsXCJyZXF1ZXN0LWhl
YWRlcnNcIjpbe1wib3BlcmF0aW9uXCI6XCJyZW1vdmVcIn1dfSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05N
b2RpZnlIZWFkZXJzTWlzc2luZ0hlYWRlcik7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJlcXVlc3QtaGVhZGVyc1wi
Olt7XCJvcGVyYXRpb25cIjpcInNldFwiLFwiaGVhZGVyXCI6XCJ0ZXN0aGVhZGVyXCJ9XX0sXCJ0
cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdWYWx1ZSk7CisgICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJl
cXVlc3QtaGVhZGVyc1wiOlt7XCJvcGVyYXRpb25cIjpcImludmFsaWRcIixcImhlYWRlclwiOlwi
dGVzdGhlYWRlclwifV19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
In19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNJbnZhbGlkT3Bl
cmF0aW9uKTsKIH0KIAogVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBTdHJpY3RQcmVmaXhT
ZXBhcmF0ZWRNYWNoaW5lczEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443615</attachid>
            <date>2021-11-08 15:16:10 -0800</date>
            <delta_ts>2021-11-08 15:55:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232838-20211108151609.patch</filename>
            <type>text/plain</type>
            <size>80111</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZWUwMWJiY2Q1OTQ4YTEzZmU2NzgwOTlmMTVhODU0YTU0OGEyOWEwLi4zM2E5NWQ4YTFjZTVhM2I4
ODY1NDlkNzFhOGY4NzRiNzlmODA0MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0xMS0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFBhcnNlIHJlZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBh
Y3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhh
dGNoZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0T2JqZWN0KToK
KwogMjAyMS0xMS0wNSAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIENoZXJyeS1waWNrIHIyODQ2MzUuIHJkYXI6Ly9wcm9ibGVtLzg1MDM5OTc3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IGE4NTZlNzhhMDE4ZTVkMWFmOGYzYjU0MDI3NDA0MWI3MDc0MzZiY2EuLjgxODIxYTQ1MDE1ZmU5
ZmMzZTYyMTc4OTUzODk0NzA3OWEzMmIzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEt
MDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBQYXJzZSByZWRpcmVjdCBhbmQgbW9kaWZ5LWhlYWRlcnMgYWN0aW9ucyBmb3IgV0tDb250ZW50
UnVsZUxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIYXRjaGVyLgorCisgICAgICAgICog
d3RmL0pTT05WYWx1ZXMuY3BwOgorICAgICAgICAoV1RGOjpKU09OSW1wbDo6VmFsdWU6OmFzT2Jq
ZWN0IGNvbnN0KToKKyAgICAgICAgKFdURjo6SlNPTkltcGw6Ok9iamVjdEJhc2U6OmFzT2JqZWN0
IGNvbnN0KToKKyAgICAgICAgKiB3dGYvSlNPTlZhbHVlcy5oOgorCiAyMDIxLTExLTA1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzdHJ1
Y3R1cmUgV0tDb250ZW50UnVsZUxpc3QgQWN0aW9uIHN0b3JhZ2UgZHVyaW5nIGNvbXBpbGF0aW9u
IGFuZCBpbnRlcnByZXRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5OTliNmUyYTQzZmU2Njk3MmE1OWUw
NmE4NGYxMzBhMDI2M2E4NmMuLjQ1ZTU0ZWI1MDQyYzhmN2MxZmQ5MTg0ZmZiZmUzYjIyZmFmNmUz
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAyMS0xMS0wOCAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFBhcnNlIHJlZGlyZWN0
IGFuZCBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlzdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyODM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCisKKyAgICAgICAgUGFyc2VyIGNvdmVyZWQgYnkg
dW5pdCB0ZXN0cywgZnVuY3Rpb25hbGl0eSB5ZXQgdW5pbXBsZW1lbnRlZC4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhl
YWRlcnNBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpNb2RpZnlIZWFkZXJzQWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Om9wZXJhdG9yPT0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRl
cnNBY3Rpb246OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246OnNlcmlhbGl6ZWRM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRl
cnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpp
c29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rp
b246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5m
bzo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1v
ZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZWRMZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246
Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpkZXNlcmlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rp
b246OnNlcmlhbGl6ZWRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3Jt
QWN0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246Om9wZXJhdG9yPT0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlv
bjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6ZWRMZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFu
c2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVl
cnlUcmFuc2Zvcm06Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlU
cmFuc2Zvcm06Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNm
b3JtOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpk
ZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJl
Y3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnNlcmlhbGl6ZWRM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpw
YXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rp
b246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6Omlz
b2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5
S2V5VmFsdWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNm
b3JtOjpRdWVyeUtleVZhbHVlOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1
ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlv
bjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnNlcmlhbGl6ZWRMZW5ndGgpOgorICAg
ICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9k
aWZ5SGVhZGVySW5mbzo6QXBwZW5kT3BlcmF0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1v
ZGlmeUhlYWRlckluZm86OkFwcGVuZE9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9k
aWZ5SGVhZGVySW5mbzo6U2V0T3BlcmF0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlm
eUhlYWRlckluZm86OlNldE9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6UmVtb3ZlT3BlcmF0aW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhl
YWRlckluZm86OlJlbW92ZU9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OkV4dGVuc2lvblBhdGhB
Y3Rpb246Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OkV4dGVuc2lvblBhdGhBY3Rpb246Om9wZXJhdG9yPT0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0
aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFjdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJz
dGl0dXRpb25BY3Rpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxBY3Rpb246Omlzb2xhdGVkQ29weSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rp
b246OlVSTEFjdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpzZXJpYWxpemVBY3Rpb25zKToKKyAgICAgICAgKiBjb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OmNvbnRlbnRFeHRlbnNpb25FcnJvckNhdGVnb3J5KToKKyAgICAgICAg
KiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaDoKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXRTdHJpbmdMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpsb2FkUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6bG9hZEVuY29kZWRSdWxlcyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxp
c3RzRm9yTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVu
dEV4dGVuc2lvbnNCYWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvclBpbmdMb2FkKToK
KwogMjAyMS0xMS0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlc3RydWN0dXJlIFdLQ29udGVudFJ1bGVMaXN0IEFjdGlvbiBzdG9yYWdl
IGR1cmluZyBjb21waWxhdGlvbiBhbmQgaW50ZXJwcmV0YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWZlOTQw
ZThmY2JjNjQyYzIzYTFmMzgyOGIyNTYxMDY3ZDFlMDYzNS4uM2I1OGY3NTI1YjA1NTBjNWQ5YWRh
OTgyMTNhZTFjM2Q5NmU4MDg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0w
OCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IFBhcnNlIHJlZGlyZWN0IGFuZCBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRS
dWxlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMyODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6
Q29udGVudFJ1bGVMaXN0U3RvcmU6OmNvbXBpbGVDb250ZW50UnVsZUxpc3QpOgorCiAyMDIxLTEx
LTA1ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2Ugc2Nyb2xsIGVsYXN0aWNpdHkgYW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcAppbmRleCA0ODk1YzVhNzBkNmE0NzQ1NTk3Zjc3MTYzYmM5MmUwNzQ1NTk0ODI5
Li44MjEyOWIyZjU0MzlmYmY1OWY2ZThhYjNjMjBhMjdmM2IyODdhOWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmNwcApAQCAtMzQ2LDcgKzM0Niw5IEBAIFJlZlB0cjxKU09OOjpWYWx1ZT4g
QmFja2VuZERpc3BhdGNoZXI6OmdldFZhbHVlKEpTT046Ok9iamVjdCogcGFyYW1zLCBjb25zdCBT
dHJpCiAKIFJlZlB0cjxKU09OOjpPYmplY3Q+IEJhY2tlbmREaXNwYXRjaGVyOjpnZXRPYmplY3Qo
SlNPTjo6T2JqZWN0KiBwYXJhbXMsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCByZXF1aXJlZCkK
IHsKLSAgICByZXR1cm4gZ2V0UHJvcGVydHlWYWx1ZTxSZWZQdHI8SlNPTjo6T2JqZWN0Pj4ocGFy
YW1zLCBuYW1lLCByZXF1aXJlZCwgJkpTT046OlZhbHVlOjphc09iamVjdCwgIk9iamVjdCIpOwor
ICAgIHJldHVybiBnZXRQcm9wZXJ0eVZhbHVlPFJlZlB0cjxKU09OOjpPYmplY3Q+PihwYXJhbXMs
IG5hbWUsIHJlcXVpcmVkLCBbXShKU09OOjpWYWx1ZSYgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJu
IHZhbHVlLmFzT2JqZWN0KCk7CisgICAgfSwgIk9iamVjdCIpOwogfQogCiBSZWZQdHI8SlNPTjo6
QXJyYXk+IEJhY2tlbmREaXNwYXRjaGVyOjpnZXRBcnJheShKU09OOjpPYmplY3QqIHBhcmFtcywg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHJlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvSlNPTlZhbHVlcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAppbmRl
eCBjNGJlYjZmMDBkMDk0Y2Y5ZTc5NzRiNWM0NzkxMWQ4NTk1ODdkNDUxLi45ZDY5YzFiN2Q0NjFj
MjJlOTFhMDEyZGRjN2Y2NDViNjBlNmE2MjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9K
U09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcApAQCAtNDk0
LDYgKzQ5NCwxMSBAQCBSZWZQdHI8T2JqZWN0PiBWYWx1ZTo6YXNPYmplY3QoKQogICAgIHJldHVy
biBudWxscHRyOwogfQogCitSZWZQdHI8Y29uc3QgT2JqZWN0PiBWYWx1ZTo6YXNPYmplY3QoKSBj
b25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiBSZWZQdHI8QXJyYXk+IFZhbHVlOjph
c0FycmF5KCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY0MCw2ICs2NDUsMTIgQEAgUmVm
UHRyPE9iamVjdD4gT2JqZWN0QmFzZTo6YXNPYmplY3QoKQogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxPYmplY3QqPih0aGlzKTsKIH0KIAorUmVmUHRyPGNvbnN0IE9iamVjdD4gT2JqZWN0QmFzZTo6
YXNPYmplY3QoKSBjb25zdAoreworICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihPYmplY3QpID09
IHNpemVvZihPYmplY3RCYXNlKSwgY2Fubm90X2Nhc3QpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBPYmplY3QqPih0aGlzKTsKK30KKwogc2l6ZV90IE9iamVjdEJhc2U6Om1lbW9yeUNv
c3QoKSBjb25zdAogewogICAgIHNpemVfdCBtZW1vcnlDb3N0ID0gVmFsdWU6Om1lbW9yeUNvc3Qo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaCBiL1NvdXJjZS9XVEYv
d3RmL0pTT05WYWx1ZXMuaAppbmRleCA3YjU2OWU3YjBlZjYwNTY4NDU0ZGM5YmFkODlmMWYxYmVj
MTVkNTE3Li5kYmE1NzcyM2NmZTgzYjAwNWVhODVmZGYwOWU0NDQ4OGJlY2QyOGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKKysrIGIvU291cmNlL1dURi93dGYvSlNP
TlZhbHVlcy5oCkBAIC05OSw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYXNTdHJpbmco
KSBjb25zdDsKICAgICBSZWZQdHI8VmFsdWU+IGFzVmFsdWUoKTsKICAgICB2aXJ0dWFsIFJlZlB0
cjxPYmplY3Q+IGFzT2JqZWN0KCk7CisgICAgdmlydHVhbCBSZWZQdHI8Y29uc3QgT2JqZWN0PiBh
c09iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5PiBhc0FycmF5KCk7CiAK
ICAgICBzdGF0aWMgUmVmUHRyPFZhbHVlPiBwYXJzZUpTT04oY29uc3QgU3RyaW5nJik7CkBAIC0x
NzAsNiArMTcxLDcgQEAgcHVibGljOgogICAgIHVzaW5nIGNvbnN0X2l0ZXJhdG9yID0gRGF0YVN0
b3JhZ2U6OmNvbnN0X2l0ZXJhdG9yOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxP
YmplY3Q+IGFzT2JqZWN0KCkgZmluYWw7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFJlZlB0cjxj
b25zdCBPYmplY3Q+IGFzT2JqZWN0KCkgY29uc3QgZmluYWw7CiAKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCBmMmVmNTBiYmQ4YjRmMTQ3NzliNzRhY2U5MGU1NWEyMDdkNTJiODE2Li5kZmQyNjAxNjU0YmYx
NGM4NWJlZTAzM2Y1NDI1NTA0NDkyYWEyZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjA3LDYgKzYw
Nyw3IEBAIGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkRmlsdGVyc0FscGhhYmV0LmNwcAogY29u
dGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAogY29udGVudGV4dGVuc2lvbnMv
Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmNwcAogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbi5jcHAKK2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNw
cAogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAogY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcAogY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYWZjNWQ4YzY4N2ZkMTUwYjFlNTUyMjQ2
ZTVkZTg3NDRmZDFhMzUxLi5lMjM1OWVmZWNiNjVlODhmNWE2MzY4MzVhOGE5MjJhYTQ2YzExODc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC05OTEzLDYgKzk5MTMsNyBAQAogCQk1QzlFRjJGMjIxRjA2MTcxMDAzQkRDNTYgLyog
U3RvcmFnZVNlc3Npb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQTFERUMyMUY3MUU2ODYwMEU3MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUEhlYWRlckZpZWxkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNBMURFQzQxRjcxRTY4NzAwRTcxQkQzIC8qIEhUVFBI
ZWFkZXJGaWVsZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVFRQSGVhZGVy
RmllbGQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNBQkRCRjEyNzM1RjRCNzAw
Qjg4QkNCIC8qIENvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNBRjdBQUYyNkZBOTk2ODAwMDNGMTlFIC8qIE5ldHdvcmtM
b2FkTWV0cmljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrTG9hZE1ldHJpY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IzN0ZG
QzFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsYmFyc0NvbnRyb2xsZXJNb2NrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGJhcnNDb250cm9sbGVyTW9jay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjM3RkZEMUM2MkQyNzgwMEYyMDE4
OCAvKiBTY3JvbGxiYXJzQ29udHJvbGxlck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2Nyb2xsYmFyc0NvbnRyb2xsZXJNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODYxNiwxMSArMTg2MTcsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0Mz
OTgzIC8qIGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBE
N0UyQjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEg
LyogQnJpZGdlLmggKi8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZp
ZXJSZXAuY3BwICovLAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVy
UmVwLmggKi8sCi0JCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkx
QTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1
NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNG
MTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMTkyODAsNiAr
MTkyODEsNyBAQAogCQkJCTdDOTNGMzQ4MUFBNkJBNUUwMEE5OEJBQiAvKiBDb21waWxlZENvbnRl
bnRFeHRlbnNpb24uaCAqLywKIAkJCQk1MUI0NUQxRTFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVu
dEV4dGVuc2lvbi5jcHAgKi8sCiAJCQkJNTFCNDVEMUYxQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRl
bnRFeHRlbnNpb24uaCAqLywKKwkJCQk1Q0FCREJGMTI3MzVGNEI3MDBCODhCQ0IgLyogQ29udGVu
dEV4dGVuc2lvbkFjdGlvbnMuY3BwICovLAogCQkJCTVDREZBNkM3MUFBNEYyREEwMEVBODc0NiAv
KiBDb250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oICovLAogCQkJCTdDOTNGMzRCMUFBNkJGMDcwMEE5
OEJBQiAvKiBDb250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwICovLAogCQkJCTdDOTNGMzRDMUFB
NkJGMDcwMEE5OEJBQiAvKiBDb250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuaCAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rp
b25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25BY3Rpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDQzZTZhMjhkZWFkN2EyMjk4MTAxOWI3MzRiOWIx
MmVkOTY3MmFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCkBAIC0wLDAgKzEsMzkwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbnRlbnRFeHRlbnNpb25B
Y3Rpb25zLmgiCisKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorCisjaW5jbHVkZSAi
Q29udGVudEV4dGVuc2lvbkVycm9yLmgiCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucyB7CisKK0V4cGVjdGVk
PE1vZGlmeUhlYWRlcnNBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gTW9kaWZ5SGVhZGVyc0FjdGlv
bjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiBtb2RpZnlIZWFkZXJzKQoreworICAgIGF1dG8g
cGFyc2VIZWFkZXJzID0gW10gKGNvbnN0IEpTT046Ok9iamVjdCYgbW9kaWZ5SGVhZGVycywgQVND
SUlMaXRlcmFsIGFycmF5TmFtZSkgLT4gRXhwZWN0ZWQ8VmVjdG9yPE1vZGlmeUhlYWRlckluZm8+
LCBzdGQ6OmVycm9yX2NvZGU+IHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IG1vZGlmeUhlYWRlcnMu
Z2V0VmFsdWUoYXJyYXlOYW1lKTsKKyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJl
dHVybiB7IH07CisgICAgICAgIGF1dG8gYXJyYXkgPSB2YWx1ZS0+YXNBcnJheSgpOworICAgICAg
ICBpZiAoIWFycmF5KQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNOb3RBcnJheSk7CisgICAgICAgIFZlY3Rv
cjxNb2RpZnlIZWFkZXJJbmZvPiB2ZWN0b3I7CisgICAgICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGFycmF5LT5sZW5ndGgoKSk7CisgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiAq
YXJyYXkpIHsKKyAgICAgICAgICAgIGF1dG8gaW5mbyA9IE1vZGlmeUhlYWRlckluZm86OnBhcnNl
KHZhbHVlLmdldCgpKTsKKyAgICAgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoaW5mby5lcnJvcigpKTsKKyAgICAgICAgICAgIHZlY3Rvci51
bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqaW5mbykpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biB2ZWN0b3I7CisgICAgfTsKKworICAgIGF1dG8gcmVxdWVzdEhlYWRlcnMgPSBwYXJzZUhlYWRl
cnMobW9kaWZ5SGVhZGVycywgInJlcXVlc3QtaGVhZGVycyJfcyk7CisgICAgaWYgKCFyZXF1ZXN0
SGVhZGVycykKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlcXVlc3RIZWFkZXJzLmVy
cm9yKCkpOworCisgICAgYXV0byByZXNwb25zZUhlYWRlcnMgPSBwYXJzZUhlYWRlcnMobW9kaWZ5
SGVhZGVycywgInJlc3BvbnNlLWhlYWRlcnMiX3MpOworICAgIGlmICghcmVzcG9uc2VIZWFkZXJz
KQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocmVzcG9uc2VIZWFkZXJzLmVycm9yKCkp
OworCisgICAgcmV0dXJuIE1vZGlmeUhlYWRlcnNBY3Rpb24geyBXVEZNb3ZlKCpyZXF1ZXN0SGVh
ZGVycyksIFdURk1vdmUoKnJlc3BvbnNlSGVhZGVycykgfTsKK30KKworTW9kaWZ5SGVhZGVyc0Fj
dGlvbiBNb2RpZnlIZWFkZXJzQWN0aW9uOjppc29sYXRlZENvcHkoKSBjb25zdAoreworICAgIHJl
dHVybiB7CisgICAgICAgIGNyb3NzVGhyZWFkQ29weShyZXF1ZXN0SGVhZGVycyksCisgICAgICAg
IGNyb3NzVGhyZWFkQ29weShyZXNwb25zZUhlYWRlcnMpCisgICAgfTsKK30KKworYm9vbCBNb2Rp
ZnlIZWFkZXJzQWN0aW9uOjpvcGVyYXRvcj09KGNvbnN0IE1vZGlmeUhlYWRlcnNBY3Rpb24mIG90
aGVyKSBjb25zdAoreworICAgIHJldHVybiBvdGhlci5yZXF1ZXN0SGVhZGVycyA9PSB0aGlzLT5y
ZXF1ZXN0SGVhZGVycworICAgICAgICAmJiBvdGhlci5yZXNwb25zZUhlYWRlcnMgPT0gdGhpcy0+
cmVzcG9uc2VIZWFkZXJzOworfQorCisvLyBGSVhNRTogSW1wbGVtZW50IHNlcmlhbGl6YXRpb24g
YW5kIGRlc2VyaWFsaXphdGlvbiBvZiBlYWNoIG9mIHRoZXNlIHR5cGVzLCB0aGVuIGRvIHRoZWly
IGFjdGlvbnMuCit2b2lkIE1vZGlmeUhlYWRlcnNBY3Rpb246OnNlcmlhbGl6ZShWZWN0b3I8dWlu
dDhfdD4mKSBjb25zdAoreworfQorCitNb2RpZnlIZWFkZXJzQWN0aW9uIE1vZGlmeUhlYWRlcnNB
Y3Rpb246OmRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIHsg
fTsKK30KKworc2l6ZV90IE1vZGlmeUhlYWRlcnNBY3Rpb246OnNlcmlhbGl6ZWRMZW5ndGgoU3Bh
bjxjb25zdCB1aW50OF90PikKK3sKKyAgICByZXR1cm4gMDsKK30KKworYXV0byBNb2RpZnlIZWFk
ZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYgaW5m
b1ZhbHVlKSAtPiBFeHBlY3RlZDxNb2RpZnlIZWFkZXJJbmZvLCBzdGQ6OmVycm9yX2NvZGU+Cit7
CisgICAgYXV0byBvYmplY3QgPSBpbmZvVmFsdWUuYXNPYmplY3QoKTsKKyAgICBpZiAoIW9iamVj
dCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnkpOworCisgICAgU3RyaW5nIG9wZXJh
dGlvbiA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iKTsKKyAgICBpZiAoIW9wZXJhdGlv
bikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKKworICAgIFN0cmluZyBoZWFkZXIg
PSBvYmplY3QtPmdldFN0cmluZygiaGVhZGVyIik7CisgICAgaWYgKCFoZWFkZXIpCisgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlI
ZWFkZXJzTWlzc2luZ0hlYWRlcik7CisKKyAgICBTdHJpbmcgdmFsdWUgPSBvYmplY3QtPmdldFN0
cmluZygidmFsdWUiKTsKKworICAgIGlmIChvcGVyYXRpb24gPT0gInNldCIpIHsKKyAgICAgICAg
aWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ1ZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIE1vZGlmeUhlYWRlckluZm8geyBTZXRPcGVyYXRpb24geyBXVEZNb3ZlKGhlYWRlciksIFdU
Rk1vdmUodmFsdWUpIH0gfTsKKyAgICB9CisgICAgaWYgKG9wZXJhdGlvbiA9PSAiYXBwZW5kIikg
eworICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWUpOwor
ICAgICAgICByZXR1cm4gTW9kaWZ5SGVhZGVySW5mbyB7IEFwcGVuZE9wZXJhdGlvbiB7IFdURk1v
dmUoaGVhZGVyKSwgV1RGTW92ZSh2YWx1ZSkgfSB9OworICAgIH0KKyAgICBpZiAob3BlcmF0aW9u
ID09ICJyZW1vdmUiKQorICAgICAgICByZXR1cm4gTW9kaWZ5SGVhZGVySW5mbyB7IFJlbW92ZU9w
ZXJhdGlvbiB7IFdURk1vdmUoaGVhZGVyKSB9IH07CisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNJbnZhbGlkT3BlcmF0aW9u
KTsKK30KKworYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjppc29s
YXRlZENvcHkoKSBjb25zdCAtPiBNb2RpZnlIZWFkZXJJbmZvCit7CisgICAgcmV0dXJuIHsKKyAg
ICAgICAgY3Jvc3NUaHJlYWRDb3B5KG9wZXJhdGlvbikKKyAgICB9OworfQorCitib29sIE1vZGlm
eUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86Om9wZXJhdG9yPT0oY29uc3QgTW9kaWZ5
SGVhZGVySW5mbyYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVyLm9wZXJhdGlvbiA9
PSB0aGlzLT5vcGVyYXRpb247Cit9CisKK3ZvaWQgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5
SGVhZGVySW5mbzo6c2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0Cit7Cit9CisKK2F1
dG8gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6ZGVzZXJpYWxpemUoU3Bh
bjxjb25zdCB1aW50OF90PikgLT4gTW9kaWZ5SGVhZGVySW5mbworeworICAgIHJldHVybiB7IH07
Cit9CisKK3NpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJp
YWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIDA7Cit9CisK
K0V4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0QWN0aW9u
OjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBjb25zdCBIYXNoU2V0
PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpCit7CisgICAgYXV0byByZWRpcmVj
dCA9IHJlZGlyZWN0T2JqZWN0LmdldE9iamVjdCgicmVkaXJlY3QiKTsKKyAgICBpZiAoIXJlZGly
ZWN0KQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OUmVkaXJlY3RNaXNzaW5nKTsKKworICAgIGlmIChhdXRvIGV4dGVuc2lvblBhdGggPSBy
ZWRpcmVjdC0+Z2V0U3RyaW5nKCJleHRlbnNpb24tcGF0aCIpOyAhIWV4dGVuc2lvblBhdGgpIHsK
KyAgICAgICAgaWYgKCFleHRlbnNpb25QYXRoLnN0YXJ0c1dpdGgoJy8nKSkKKyAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVj
dEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gpOworICAgICAgICByZXR1cm4gUmVk
aXJlY3RBY3Rpb24geyBFeHRlbnNpb25QYXRoQWN0aW9uIHsgV1RGTW92ZShleHRlbnNpb25QYXRo
KSB9IH07CisgICAgfQorCisgICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVj
dC0+Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRpb24iKTsgISFyZWdleFN1YnN0aXR1dGlvbikK
KyAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24g
eyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKSB9IH07CisKKyAgICBpZiAoYXV0byB0cmFuc2Zv
cm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkgeworICAgICAgICBhdXRvIHBh
cnNlZFRyYW5zZm9ybSA9IFVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoKnRyYW5zZm9ybSwgYWxs
b3dlZFJlZGlyZWN0VVJMU2NoZW1lcyk7CisgICAgICAgIGlmICghcGFyc2VkVHJhbnNmb3JtKQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBhcnNlZFRyYW5zZm9ybS5lcnJvcigp
KTsKKyAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgV1RGTW92ZSgqcGFyc2VkVHJhbnNm
b3JtKSB9OworICAgIH0KKworICAgIGlmIChhdXRvIHVybCA9IHJlZGlyZWN0LT5nZXRTdHJpbmco
InVybCIpOyAhIXVybCkgeworICAgICAgICBpZiAoIWFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMu
Y29udGFpbnMoVVJMKFVSTCgpLCB1cmwpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWlu
ZygpKSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05SZWRpcmVjdFVSTFNjaGVtZU5vdEFsbG93ZWQpOworICAgICAgICByZXR1cm4g
UmVkaXJlY3RBY3Rpb24geyBVUkxBY3Rpb24geyBXVEZNb3ZlKHVybCkgfSB9OworICAgIH0KKwor
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRp
cmVjdEludmFsaWRUeXBlKTsKK30KKworUmVkaXJlY3RBY3Rpb24gUmVkaXJlY3RBY3Rpb246Omlz
b2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgY3Jvc3NUaHJlYWRD
b3B5KGFjdGlvbikKKyAgICB9OworfQorCitib29sIFJlZGlyZWN0QWN0aW9uOjpvcGVyYXRvcj09
KGNvbnN0IFJlZGlyZWN0QWN0aW9uJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gb3RoZXIu
YWN0aW9uID09IHRoaXMtPmFjdGlvbjsKK30KKwordm9pZCBSZWRpcmVjdEFjdGlvbjo6c2VyaWFs
aXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0Cit7Cit9CisKK1JlZGlyZWN0QWN0aW9uIFJlZGly
ZWN0QWN0aW9uOjpkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KQoreworICAgIHJldHVy
biB7IH07Cit9CisKK3NpemVfdCBSZWRpcmVjdEFjdGlvbjo6c2VyaWFsaXplZExlbmd0aChTcGFu
PGNvbnN0IHVpbnQ4X3Q+KQoreworICAgIHJldHVybiAwOworfQorCithdXRvIFJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNm
b3JtLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpIC0+
IEV4cGVjdGVkPFVSTFRyYW5zZm9ybUFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPgoreworICAgIFJl
ZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOworICAgIGFjdGlvbi5mcmFn
bWVudCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Iik7CisgICAgYWN0aW9uLmhvc3Qg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Iik7CisgICAgYWN0aW9uLnBhc3N3b3JkID0gdHJh
bnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiKTsKKyAgICBhY3Rpb24ucGF0aCA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoInBhdGgiKTsKKyAgICBhY3Rpb24ucG9ydCA9IHRyYW5zZm9ybS5nZXRTdHJp
bmcoInBvcnQiKTsKKyAgICBhdXRvIHNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVt
ZSIpOworICAgIGlmICghIXNjaGVtZSAmJiAhYWxsb3dlZFJlZGlyZWN0VVJMU2NoZW1lcy5jb250
YWlucyhzY2hlbWUpKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVOb3RBbGxvd2VkKTsKKyAgICBhY3Rpb24u
c2NoZW1lID0gV1RGTW92ZShzY2hlbWUpOworICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoInVzZXJuYW1lIik7CisgICAgaWYgKGF1dG8gcXVlcnlUcmFuc2Zvcm0gPSB0
cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0iKSkgeworICAgICAgICBhdXRvIHBh
cnNlZFF1ZXJ5VHJhbnNmb3JtID0gUXVlcnlUcmFuc2Zvcm06OnBhcnNlKCpxdWVyeVRyYW5zZm9y
bSk7CisgICAgICAgIGlmICghcGFyc2VkUXVlcnlUcmFuc2Zvcm0pCisgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQocGFyc2VkUXVlcnlUcmFuc2Zvcm0uZXJyb3IoKSk7CisgICAgICAg
IGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9ICpwYXJzZWRRdWVyeVRyYW5zZm9ybTsKKyAgICB9IGVs
c2UKKyAgICAgICAgYWN0aW9uLnF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdldFN0cmluZygi
cXVlcnkiKTsKKyAgICByZXR1cm4gV1RGTW92ZShhY3Rpb24pOworfQorCithdXRvIFJlZGlyZWN0
QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246Omlzb2xhdGVkQ29weSgpIGNvbnN0IC0+IFVSTFRy
YW5zZm9ybUFjdGlvbgoreworICAgIHJldHVybiB7CisgICAgICAgIGNyb3NzVGhyZWFkQ29weShm
cmFnbWVudCksCisgICAgICAgIGNyb3NzVGhyZWFkQ29weShob3N0KSwKKyAgICAgICAgY3Jvc3NU
aHJlYWRDb3B5KHBhc3N3b3JkKSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHBhdGgpLAorICAg
ICAgICBjcm9zc1RocmVhZENvcHkocG9ydCksCisgICAgICAgIGNyb3NzVGhyZWFkQ29weShxdWVy
eVRyYW5zZm9ybSksCisgICAgICAgIGNyb3NzVGhyZWFkQ29weShzY2hlbWUpLAorICAgICAgICBj
cm9zc1RocmVhZENvcHkodXNlcm5hbWUpCisgICAgfTsKK30KKworYm9vbCBSZWRpcmVjdEFjdGlv
bjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFVSTFRyYW5zZm9ybUFjdGlv
biYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVyLmZyYWdtZW50ID09IHRoaXMtPmZy
YWdtZW50CisgICAgICAgICYmIG90aGVyLmhvc3QgPT0gdGhpcy0+aG9zdAorICAgICAgICAmJiBv
dGhlci5wYXNzd29yZCA9PSB0aGlzLT5wYXNzd29yZAorICAgICAgICAmJiBvdGhlci5wYXRoID09
IHRoaXMtPnBhdGgKKyAgICAgICAgJiYgb3RoZXIucG9ydCA9PSB0aGlzLT5wb3J0CisgICAgICAg
ICYmIG90aGVyLnF1ZXJ5VHJhbnNmb3JtID09IHRoaXMtPnF1ZXJ5VHJhbnNmb3JtCisgICAgICAg
ICYmIG90aGVyLnNjaGVtZSA9PSB0aGlzLT5zY2hlbWUKKyAgICAgICAgJiYgb3RoZXIudXNlcm5h
bWUgPT0gdGhpcy0+dXNlcm5hbWU7Cit9CisKK3ZvaWQgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6c2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0Cit7Cit9CisKK2F1
dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6ZGVzZXJpYWxpemUoU3Bhbjxj
b25zdCB1aW50OF90PikgLT4gVVJMVHJhbnNmb3JtQWN0aW9uCit7CisgICAgcmV0dXJuIHsgfTsK
K30KKworc2l6ZV90IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnNlcmlhbGl6
ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90PikKK3sKKyAgICByZXR1cm4gMDsKK30KKworYXV0
byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFy
c2UoY29uc3QgSlNPTjo6T2JqZWN0JiBxdWVyeVRyYW5zZm9ybSkgLT4gRXhwZWN0ZWQ8UXVlcnlU
cmFuc2Zvcm0sIHN0ZDo6ZXJyb3JfY29kZT4KK3sKKyAgICBSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybSBwYXJzZWRRdWVyeVRyYW5zZm9ybTsKKworICAg
IGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVl
KCJyZW1vdmUtcGFyYW1ldGVycyIpKSB7CisgICAgICAgIGF1dG8gcmVtb3ZlUGFyYW1ldGVyc0Fy
cmF5ID0gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CisgICAgICAgIGlmICghcmVt
b3ZlUGFyYW1ldGVyc0FycmF5KQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJpbmdBcnJheSk7
CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlbW92ZVBhcmFtZXRlcnNWZWN0b3I7CisgICAgICAg
IHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZW1vdmVQYXJh
bWV0ZXJzQXJyYXktPmxlbmd0aCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXIgOiAq
cmVtb3ZlUGFyYW1ldGVyc0FycmF5KSB7CisgICAgICAgICAgICBpZiAocGFyYW1ldGVyLmdldCgp
LnR5cGUoKSAhPSBKU09OOjpWYWx1ZTo6VHlwZTo6U3RyaW5nKQorICAgICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJh
bWV0ZXJzTm90U3RyaW5nQXJyYXkpOworICAgICAgICAgICAgcmVtb3ZlUGFyYW1ldGVyc1ZlY3Rv
ci51bmNoZWNrZWRBcHBlbmQocGFyYW1ldGVyLmdldCgpLmFzU3RyaW5nKCkpOworICAgICAgICB9
CisgICAgICAgIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtLnJlbW92ZVBhcmFtcyA9IFdURk1vdmUocmVt
b3ZlUGFyYW1ldGVyc1ZlY3Rvcik7CisgICAgfQorCisgICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNl
UGFyYW1ldGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNl
LXBhcmFtZXRlcnMiKSkgeworICAgICAgICBhdXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJh
eSA9IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZS0+YXNBcnJheSgpOworICAgICAgICBpZiAo
IWFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJz
Tm90QXJyYXkpOworICAgICAgICBWZWN0b3I8UXVlcnlLZXlWYWx1ZT4ga2V5VmFsdWVzOworICAg
ICAgICBrZXlWYWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShhZGRPclJlcGxhY2VQYXJhbWV0
ZXJzQXJyYXktPmxlbmd0aCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBxdWVyeUtleVZhbHVlIDog
KmFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSkgeworICAgICAgICAgICAgYXV0byBrZXlWYWx1
ZSA9IFF1ZXJ5S2V5VmFsdWU6OnBhcnNlKHF1ZXJ5S2V5VmFsdWUuZ2V0KCkpOworICAgICAgICAg
ICAgaWYgKCFrZXlWYWx1ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
a2V5VmFsdWUuZXJyb3IoKSk7CisgICAgICAgICAgICBrZXlWYWx1ZXMudW5jaGVja2VkQXBwZW5k
KFdURk1vdmUoKmtleVZhbHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgcGFyc2VkUXVlcnlUcmFu
c2Zvcm0uYWRkT3JSZXBsYWNlUGFyYW1zID0gV1RGTW92ZShrZXlWYWx1ZXMpOworICAgIH0KKwor
ICAgIHJldHVybiBXVEZNb3ZlKHBhcnNlZFF1ZXJ5VHJhbnNmb3JtKTsKK30KKworYXV0byBSZWRp
cmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6aXNvbGF0ZWRD
b3B5KCkgY29uc3QgLT4gUXVlcnlUcmFuc2Zvcm0KK3sKKyAgICByZXR1cm4geworICAgICAgICBj
cm9zc1RocmVhZENvcHkoYWRkT3JSZXBsYWNlUGFyYW1zKSwKKyAgICAgICAgY3Jvc3NUaHJlYWRD
b3B5KHJlbW92ZVBhcmFtcykKKyAgICB9OworfQorCitib29sIFJlZGlyZWN0QWN0aW9uOjpVUkxU
cmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpvcGVyYXRvcj09KGNvbnN0IFF1ZXJ5VHJh
bnNmb3JtJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gb3RoZXIuYWRkT3JSZXBsYWNlUGFy
YW1zID09IHRoaXMtPmFkZE9yUmVwbGFjZVBhcmFtcworICAgICAgICAmJiBvdGhlci5yZW1vdmVQ
YXJhbXMgPT0gdGhpcy0+cmVtb3ZlUGFyYW1zOworfQorCit2b2lkIFJlZGlyZWN0QWN0aW9uOjpV
UkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpzZXJpYWxpemUoVmVjdG9yPHVpbnQ4
X3Q+JikgY29uc3QKK3sKK30KKworYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0
aW9uOjpRdWVyeVRyYW5zZm9ybTo6ZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90PikgLT4g
UXVlcnlUcmFuc2Zvcm0KK3sKKyAgICByZXR1cm4geyB9OworfQorCitzaXplX3QgUmVkaXJlY3RB
Y3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnNlcmlhbGl6ZWRMZW5n
dGgoU3Bhbjxjb25zdCB1aW50OF90PikKK3sKKyAgICByZXR1cm4gMDsKK30KKworYXV0byBSZWRp
cmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlW
YWx1ZTo6cGFyc2UoY29uc3QgSlNPTjo6VmFsdWUmIGtleVZhbHVlVmFsdWUpIC0+IEV4cGVjdGVk
PFF1ZXJ5S2V5VmFsdWUsIHN0ZDo6ZXJyb3JfY29kZT4KK3sKKyAgICBhdXRvIGtleVZhbHVlID0g
a2V5VmFsdWVWYWx1ZS5hc09iamVjdCgpOworICAgIGlmICgha2V5VmFsdWUpCisgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxh
Y2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGljdGlvbmFyeSk7CisKKyAgICBTdHJpbmcga2V5ID0g
a2V5VmFsdWUtPmdldFN0cmluZygia2V5Iik7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQ
YXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKKworICAgIFN0cmluZyB2YWx1ZSA9
IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVw
bGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZyk7CisKKyAgICBib29sIHJl
cGxhY2VPbmx5IHsgZmFsc2UgfTsKKyAgICBpZiAoYXV0byBib29sZWFuID0ga2V5VmFsdWUtPmdl
dEJvb2xlYW4oInJlcGxhY2Utb25seSIpKQorICAgICAgICByZXBsYWNlT25seSA9ICpib29sZWFu
OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKGtleSksIHJlcGxhY2VPbmx5LCBXVEZNb3ZlKHZh
bHVlKSB9IH07Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6
UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6Omlzb2xhdGVkQ29weSgpIGNvbnN0IC0+IFF1
ZXJ5S2V5VmFsdWUKK3sKKyAgICByZXR1cm4geworICAgICAgICBjcm9zc1RocmVhZENvcHkoa2V5
KSwKKyAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHJlcGxhY2VPbmx5KSwKKyAgICAgICAgY3Jvc3NU
aHJlYWRDb3B5KHZhbHVlKQorICAgIH07Cit9CisKK2Jvb2wgUmVkaXJlY3RBY3Rpb246OlVSTFRy
YW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6Om9wZXJhdG9yPT0o
Y29uc3QgUXVlcnlLZXlWYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVyLmtl
eSA9PSB0aGlzLT5rZXkKKyAgICAgICAgJiYgb3RoZXIucmVwbGFjZU9ubHkgPT0gdGhpcy0+cmVw
bGFjZU9ubHkKKyAgICAgICAgJiYgb3RoZXIudmFsdWUgPT0gdGhpcy0+dmFsdWU7Cit9CisKK3Zv
aWQgUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1
ZXJ5S2V5VmFsdWU6OnNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25zdAoreworfQorCith
dXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpR
dWVyeUtleVZhbHVlOjpkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KSAtPiBRdWVyeUtl
eVZhbHVlCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworc2l6ZV90IFJlZGlyZWN0QWN0aW9uOjpV
UkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpzZXJpYWxp
emVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pCit7CisgICAgcmV0dXJuIDA7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zCisKKyNlbmRpZiAvLyBFTkFC
TEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKaW5kZXggY2M3ODAzNzcx
ZGM1YWE0MGZkZjhlZWUwZmYwZmQ2NGU1ZDUxYWUyMC4uOWZjNmVkZDE4ZjU0NmFlNjRhNTJhMjNj
YmI1Yjg5MWM0MDAzZmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkNvbnRlbnRFeHRl
bnNpb25TdHJpbmdTZXJpYWxpemF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zIHsKIApAQCAtNTksMTMgKzYw
LDEzMCBAQCBzdHJ1Y3QgTm90aWZ5QWN0aW9uIDogcHVibGljIEFjdGlvbldpdGhTdHJpbmdNZXRh
ZGF0YTxOb3RpZnlBY3Rpb24+IHsgfTsKIHN0cnVjdCBJZ25vcmVQcmV2aW91c1J1bGVzQWN0aW9u
IDogcHVibGljIEFjdGlvbldpdGhvdXRNZXRhZGF0YTxJZ25vcmVQcmV2aW91c1J1bGVzQWN0aW9u
PiB7IH07CiBzdHJ1Y3QgTWFrZUhUVFBTQWN0aW9uIDogcHVibGljIEFjdGlvbldpdGhvdXRNZXRh
ZGF0YTxNYWtlSFRUUFNBY3Rpb24+IHsgfTsKIAorc3RydWN0IE1vZGlmeUhlYWRlcnNBY3Rpb24g
eworICAgIHN0cnVjdCBNb2RpZnlIZWFkZXJJbmZvIHsKKyAgICAgICAgc3RydWN0IEFwcGVuZE9w
ZXJhdGlvbiB7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVyOworICAgICAgICAgICAgU3RyaW5n
IHZhbHVlOworCisgICAgICAgICAgICBBcHBlbmRPcGVyYXRpb24gaXNvbGF0ZWRDb3B5KCkgY29u
c3QgeyByZXR1cm4geyBoZWFkZXIuaXNvbGF0ZWRDb3B5KCksIHZhbHVlLmlzb2xhdGVkQ29weSgp
IH07IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcHBlbmRPcGVyYXRpb24m
IG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci5oZWFkZXIgPT0gdGhpcy0+aGVhZGVyICYmIG90
aGVyLnZhbHVlID09IHRoaXMtPnZhbHVlOyB9CisgICAgICAgIH07CisgICAgICAgIHN0cnVjdCBT
ZXRPcGVyYXRpb24geworICAgICAgICAgICAgU3RyaW5nIGhlYWRlcjsKKyAgICAgICAgICAgIFN0
cmluZyB2YWx1ZTsKKworICAgICAgICAgICAgU2V0T3BlcmF0aW9uIGlzb2xhdGVkQ29weSgpIGNv
bnN0IHsgcmV0dXJuIHsgaGVhZGVyLmlzb2xhdGVkQ29weSgpLCB2YWx1ZS5pc29sYXRlZENvcHko
KSB9OyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2V0T3BlcmF0aW9uJiBv
dGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIuaGVhZGVyID09IHRoaXMtPmhlYWRlciAmJiBvdGhl
ci52YWx1ZSA9PSB0aGlzLT52YWx1ZTsgfQorICAgICAgICB9OworICAgICAgICBzdHJ1Y3QgUmVt
b3ZlT3BlcmF0aW9uIHsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXI7CisKKyAgICAgICAgICAg
IFJlbW92ZU9wZXJhdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGhlYWRlci5p
c29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVt
b3ZlT3BlcmF0aW9uJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIuaGVhZGVyID09IHRoaXMt
PmhlYWRlcjsgfQorICAgICAgICB9OworICAgICAgICBzdGQ6OnZhcmlhbnQ8QXBwZW5kT3BlcmF0
aW9uLCBTZXRPcGVyYXRpb24sIFJlbW92ZU9wZXJhdGlvbj4gb3BlcmF0aW9uOworCisgICAgICAg
IHN0YXRpYyBFeHBlY3RlZDxNb2RpZnlIZWFkZXJJbmZvLCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNl
KGNvbnN0IEpTT046OlZhbHVlJik7CisgICAgICAgIE1vZGlmeUhlYWRlckluZm8gaXNvbGF0ZWRD
b3B5KCkgY29uc3Q7CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNb2RpZnlIZWFkZXJJ
bmZvJikgY29uc3Q7CisgICAgICAgIHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNv
bnN0OworICAgICAgICBzdGF0aWMgTW9kaWZ5SGVhZGVySW5mbyBkZXNlcmlhbGl6ZShTcGFuPGNv
bnN0IHVpbnQ4X3Q+KTsKKyAgICAgICAgc3RhdGljIHNpemVfdCBzZXJpYWxpemVkTGVuZ3RoKFNw
YW48Y29uc3QgdWludDhfdD4pOworICAgIH07CisKKyAgICBWZWN0b3I8TW9kaWZ5SGVhZGVySW5m
bz4gcmVxdWVzdEhlYWRlcnM7CisgICAgVmVjdG9yPE1vZGlmeUhlYWRlckluZm8+IHJlc3BvbnNl
SGVhZGVyczsKKworICAgIHN0YXRpYyBFeHBlY3RlZDxNb2RpZnlIZWFkZXJzQWN0aW9uLCBzdGQ6
OmVycm9yX2NvZGU+IHBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYpOworICAgIE1vZGlmeUhlYWRl
cnNBY3Rpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IE1vZGlmeUhlYWRlcnNBY3Rpb24mKSBjb25zdDsKKyAgICB2b2lkIHNl
cmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25zdDsKKyAgICBzdGF0aWMgTW9kaWZ5SGVhZGVy
c0FjdGlvbiBkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICBzdGF0aWMgc2l6
ZV90IHNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7Cit9OworCitzdHJ1Y3Qg
UmVkaXJlY3RBY3Rpb24geworICAgIHN0cnVjdCBFeHRlbnNpb25QYXRoQWN0aW9uIHsKKyAgICAg
ICAgU3RyaW5nIGV4dGVuc2lvblBhdGg7CisKKyAgICAgICAgRXh0ZW5zaW9uUGF0aEFjdGlvbiBp
c29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGV4dGVuc2lvblBhdGguaXNvbGF0ZWRDb3B5
KCkgfTsgfQorICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXh0ZW5zaW9uUGF0aEFjdGlv
biYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLmV4dGVuc2lvblBhdGggPT0gdGhpcy0+ZXh0
ZW5zaW9uUGF0aDsgfQorICAgIH07CisgICAgc3RydWN0IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9u
IHsKKyAgICAgICAgU3RyaW5nIHJlZ2V4U3Vic3RpdHV0aW9uOworCisgICAgICAgIFJlZ2V4U3Vi
c3RpdHV0aW9uQWN0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgcmVnZXhTdWJz
dGl0dXRpb24uaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24mIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci5y
ZWdleFN1YnN0aXR1dGlvbiA9PSB0aGlzLT5yZWdleFN1YnN0aXR1dGlvbjsgfQorICAgIH07Cisg
ICAgc3RydWN0IFVSTFRyYW5zZm9ybUFjdGlvbiB7CisgICAgICAgIHN0cnVjdCBRdWVyeVRyYW5z
Zm9ybSB7CisgICAgICAgICAgICBzdHJ1Y3QgUXVlcnlLZXlWYWx1ZSB7CisgICAgICAgICAgICAg
ICAgU3RyaW5nIGtleTsKKyAgICAgICAgICAgICAgICBib29sIHJlcGxhY2VPbmx5IHsgZmFsc2Ug
fTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWU7CisKKyAgICAgICAgICAgICAgICBzdGF0
aWMgRXhwZWN0ZWQ8UXVlcnlLZXlWYWx1ZSwgc3RkOjplcnJvcl9jb2RlPiBwYXJzZShjb25zdCBK
U09OOjpWYWx1ZSYpOworICAgICAgICAgICAgICAgIFF1ZXJ5S2V5VmFsdWUgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CisgICAgICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF1ZXJ5S2V5
VmFsdWUmKSBjb25zdDsKKyAgICAgICAgICAgICAgICB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8dWlu
dDhfdD4mKSBjb25zdDsKKyAgICAgICAgICAgICAgICBzdGF0aWMgUXVlcnlLZXlWYWx1ZSBkZXNl
cmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgc2l6
ZV90IHNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgICAgICB9
OworCisgICAgICAgICAgICBWZWN0b3I8UXVlcnlLZXlWYWx1ZT4gYWRkT3JSZXBsYWNlUGFyYW1z
OworICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVtb3ZlUGFyYW1zOworCisgICAgICAgICAg
ICBzdGF0aWMgRXhwZWN0ZWQ8UXVlcnlUcmFuc2Zvcm0sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2Uo
Y29uc3QgSlNPTjo6T2JqZWN0Jik7CisgICAgICAgICAgICBRdWVyeVRyYW5zZm9ybSBpc29sYXRl
ZENvcHkoKSBjb25zdDsKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRdWVyeVRy
YW5zZm9ybSYpIGNvbnN0OworICAgICAgICAgICAgdm9pZCBzZXJpYWxpemUoVmVjdG9yPHVpbnQ4
X3Q+JikgY29uc3Q7CisgICAgICAgICAgICBzdGF0aWMgUXVlcnlUcmFuc2Zvcm0gZGVzZXJpYWxp
emUoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgICAgICBzdGF0aWMgc2l6ZV90IHNlcmlh
bGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgIH07CisKKyAgICAgICAg
U3RyaW5nIGZyYWdtZW50OworICAgICAgICBTdHJpbmcgaG9zdDsKKyAgICAgICAgU3RyaW5nIHBh
c3N3b3JkOworICAgICAgICBTdHJpbmcgcGF0aDsKKyAgICAgICAgU3RyaW5nIHBvcnQ7CisgICAg
ICAgIHN0ZDo6dmFyaWFudDxTdHJpbmcsIFF1ZXJ5VHJhbnNmb3JtPiBxdWVyeVRyYW5zZm9ybTsK
KyAgICAgICAgU3RyaW5nIHNjaGVtZTsKKyAgICAgICAgU3RyaW5nIHVzZXJuYW1lOworCisgICAg
ICAgIHN0YXRpYyBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4g
cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiwgY29uc3QgSGFzaFNldDxTdHJpbmc+Jik7CisgICAg
ICAgIFVSTFRyYW5zZm9ybUFjdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFVSTFRyYW5zZm9ybUFjdGlvbiYpIGNvbnN0OworICAgICAgICB2
b2lkIHNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25zdDsKKyAgICAgICAgc3RhdGljIFVS
TFRyYW5zZm9ybUFjdGlvbiBkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICAg
ICAgc3RhdGljIHNpemVfdCBzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfdD4pOwor
ICAgIH07CisgICAgc3RydWN0IFVSTEFjdGlvbiB7CisgICAgICAgIFN0cmluZyB1cmw7CisKKyAg
ICAgICAgVVJMQWN0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgdXJsLmlzb2xh
dGVkQ29weSgpIH07IH0KKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFVSTEFjdGlvbiYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLnVybCA9PSB0aGlzLT51cmw7IH0KKyAgICB9Owor
CisgICAgc3RkOjp2YXJpYW50PEV4dGVuc2lvblBhdGhBY3Rpb24sIFJlZ2V4U3Vic3RpdHV0aW9u
QWN0aW9uLCBVUkxUcmFuc2Zvcm1BY3Rpb24sIFVSTEFjdGlvbj4gYWN0aW9uOworCisgICAgc3Rh
dGljIEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNlKGNvbnN0
IEpTT046Ok9iamVjdCYsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYpOworICAgIFJlZGlyZWN0QWN0
aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBSZWRpcmVjdEFjdGlvbiYpIGNvbnN0OworICAgIHZvaWQgc2VyaWFsaXplKFZl
Y3Rvcjx1aW50OF90PiYpIGNvbnN0OworICAgIHN0YXRpYyBSZWRpcmVjdEFjdGlvbiBkZXNlcmlh
bGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKKyAgICBzdGF0aWMgc2l6ZV90IHNlcmlhbGl6ZWRM
ZW5ndGgoU3Bhbjxjb25zdCB1aW50OF90Pik7Cit9OworCiB1c2luZyBBY3Rpb25EYXRhID0gc3Rk
Ojp2YXJpYW50PAogICAgIEJsb2NrTG9hZEFjdGlvbiwKICAgICBCbG9ja0Nvb2tpZXNBY3Rpb24s
CiAgICAgQ1NTRGlzcGxheU5vbmVTZWxlY3RvckFjdGlvbiwKICAgICBOb3RpZnlBY3Rpb24sCiAg
ICAgSWdub3JlUHJldmlvdXNSdWxlc0FjdGlvbiwKLSAgICBNYWtlSFRUUFNBY3Rpb24KKyAgICBN
YWtlSFRUUFNBY3Rpb24sCisgICAgTW9kaWZ5SGVhZGVyc0FjdGlvbiwKKyAgICBSZWRpcmVjdEFj
dGlvbgogPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IDdhODEyN2MwOTQyNTEzZjYyMTJlMmY0NTUzZWEw
MTRkNmRiODIyNTAuLmY3ZDRiNDkyNjBkMDIyZTQwNmIwNWE5ZWViZmI0MjNjMWJjYmQwZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtMTU0LDYgKzE1NCwxMCBAQCBzdGF0aWMgVmVj
dG9yPHVuc2lnbmVkPiBzZXJpYWxpemVBY3Rpb25zKGNvbnN0IFZlY3RvcjxDb250ZW50RXh0ZW5z
aW9uUnVsZT4mIHJ1bAogICAgICAgICAgICAgZmluZE9yTWFrZUFjdGlvbkxvY2F0aW9uKG1ha2VI
VFRQU0FjdGlvbnNNYXApOwogICAgICAgICB9LCBbJl0gKGNvbnN0IE5vdGlmeUFjdGlvbiYgYWN0
aW9uRGF0YSkgewogICAgICAgICAgICAgZmluZE9yTWFrZVN0cmluZ0FjdGlvbkxvY2F0aW9uKG5v
dGlmeUFjdGlvbnNNYXAsIGFjdGlvbkRhdGEpOworICAgICAgICB9LCBbJl0gKGNvbnN0IE1vZGlm
eUhlYWRlcnNBY3Rpb24mKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50CisgICAg
ICAgIH0sIFsmXSAoY29uc3QgUmVkaXJlY3RBY3Rpb24mKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50CiAgICAgICAgIH0pLCBhY3Rpb25EYXRhKTsKICAgICAgICAgYWN0aW9uTG9j
YXRpb25zLmFwcGVuZChhY3Rpb25Mb2NhdGlvbik7CiAgICAgfQpAQCAtMjYzLDcgKzI2Nyw3IEBA
IHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0
aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiB7CiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBjYWxs
T25NYWluVGhyZWFkKFtydWxlSlNPTiA9IHJ1bGVKU09OLmlzb2xhdGVkQ29weSgpLCBwYXJzZWRS
dWxlTGlzdCA9IHBhcnNlZFJ1bGVMaXN0Lmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIEFTU0VS
VChwYXJzZVJ1bGVMaXN0KHJ1bGVKU09OKS52YWx1ZSgpID09IHBhcnNlZFJ1bGVMaXN0KTsKKyAg
ICAgICAgQVNTRVJUKHBhcnNlUnVsZUxpc3QocnVsZUpTT04sIHsgfSkudmFsdWUoKSA9PSBwYXJz
ZWRSdWxlTGlzdCk7CiAgICAgfSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAKaW5kZXgg
MjdjZmJkNWJiYzFhMWI2NTlhOTZmNzE3ZmU1MGZjYzFjYzZhNmExZi4uYmY2NDNkMTk5YjQxOGQ5
MjM3NGVhZjJiODI2YzkzNTQ4ZGY1NjU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwCkBAIC02Myw4
ICs2Myw2IEBAIGNvbnN0IHN0ZDo6ZXJyb3JfY2F0ZWdvcnkmIGNvbnRlbnRFeHRlbnNpb25FcnJv
ckNhdGVnb3J5KCkKICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgdXJsLWZpbHRlciBv
YmplY3QuIjsKICAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52
YWxpZFRyaWdnZXJGbGFnc0FycmF5OgogICAgICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCB0
cmlnZ2VyIGZsYWdzIGFycmF5LiI7Ci0gICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkludmFsaWRPYmplY3RJblRyaWdnZXJGbGFnc0FycmF5OgotICAgICAgICAgICAg
ICAgIHJldHVybiAiSW52YWxpZCBvYmplY3QgaW4gdGhlIHRyaWdnZXIgZmxhZ3MgYXJyYXkuIjsK
ICAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFN0cmlu
Z0luVHJpZ2dlckZsYWdzQXJyYXk6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkIHN0
cmluZyBpbiB0aGUgdHJpZ2dlciBmbGFncyBhcnJheS4iOwogICAgICAgICAgICAgY2FzZSBDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQWN0aW9uOgpAQCAtODksNiArODcsMzYgQEAg
Y29uc3Qgc3RkOjplcnJvcl9jYXRlZ29yeSYgY29udGVudEV4dGVuc2lvbkVycm9yQ2F0ZWdvcnko
KQogICAgICAgICAgICAgICAgIHJldHVybiAiQSBub3RpZnkgYWN0aW9uIG11c3QgaGF2ZSBhIHN0
cmluZyBub3RpZmljYXRpb24iOwogICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkVycm9yV3JpdGluZ1NlcmlhbGl6ZWRORkE6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJJ
bnRlcm5hbCBJL08gZXJyb3IiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05SZWRpcmVjdE1pc3Npbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuICJBIHJlZGly
ZWN0IGFjdGlvbiBtdXN0IGhhdmUgYSByZWRpcmVjdCBtZW1iZXIiOworICAgICAgICAgICAgY2Fz
ZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJhbWV0ZXJzTm90U3RyaW5nQXJy
YXk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJBIHJlbW92ZS1wYXJhbWV0ZXJzIHZhbHVlIG11
c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gIkFuIGFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMgdmFsdWUgbXVzdCBi
ZSBhbiBhcnJheSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5vdEFEaWN0aW9uYXJ5OgorICAgICAgICAg
ICAgICAgIHJldHVybiAiTWVtYmVycyBvZiB0aGUgYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVycyBh
cnJheSBtdXN0IGJlIGEgZGljdGlvbmFyeSI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlT
dHJpbmc6CisgICAgICAgICAgICAgICAgcmV0dXJuICJNZW1iZXJzIG9mIHRoZSBhZGQtb3ItcmVw
bGFjZS1wYXJhbWV0ZXJzIGFycmF5IG11c3QgY29udGFpbiBhIGtleSB0aGF0IGlzIGEgc3RyaW5n
IjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBs
YWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ1ZhbHVlU3RyaW5nOgorICAgICAgICAgICAgICAg
IHJldHVybiAiTWVtYmVycyBvZiB0aGUgYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVycyBhcnJheSBt
dXN0IGNvbnRhaW4gYSB2YWx1ZSB0aGF0IGlzIGEgc3RyaW5nIjsKKyAgICAgICAgICAgIGNhc2Ug
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RFeHRlbnNpb25QYXRoRG9lc05vdFN0
YXJ0V2l0aFNsYXNoOgorICAgICAgICAgICAgICAgIHJldHVybiAiQSByZWRpcmVjdCBleHRlbnNp
b24gcGF0aCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaCI7CisgICAgICAgICAgICBjYXNlIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMU2NoZW1lTm90QWxsb3dlZDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gIkEgcmVkaXJlY3QgdXJsIHNjaGVtZSBtdXN0IGJlIGluIHRoZSBz
ZXQgb2YgYWxsb3dlZCBzY2hlbWVzIjsKKyAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkVHlwZToKKyAgICAgICAgICAgICAgICByZXR1cm4g
IkEgcmVkaXJlY3QgbXVzdCBoYXZlIGEgbWVtYmVyIG5hbWVkIFwiZXh0ZW5zaW9uLXBhdGhcIiwg
XCJyZWdleC1zdWJzdGl0dXRpb25cIiwgXCJ0cmFuc2Zvcm1cIiBvciBcInVybFwiIjsKKyAgICAg
ICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc0ludmFs
aWRPcGVyYXRpb246CisgICAgICAgICAgICAgICAgcmV0dXJuICJBIG1vZGlmeS1oZWFkZXJzIG9w
ZXJhdGlvbiBtdXN0IGhhdmUgYW4gb3BlcmF0aW9uIHRoYXQgaXMgZWl0aGVyIFwic2V0XCIsIFwi
YXBwZW5kXCIsIG9yIFwicmVtb3ZlXCIiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW5mb05vdEFEaWN0aW9uYXJ5OgorICAgICAgICAg
ICAgICAgIHJldHVybiAiQSBtb2RpZnktaGVhZGVycyBvcGVyYXRpb24gbXVzdCBiZSBhIGRpY3Rp
b25hcnkiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2Rp
ZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbjoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgbW9k
aWZ5LWhlYWRlcnMgb3BlcmF0aW9uIG11c3QgaGF2ZSBhbiBvcGVyYXRpb24iOworICAgICAgICAg
ICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ0hl
YWRlcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkEgbW9kaWZ5LWhlYWRlcnMgb3BlcmF0aW9u
IG11c3QgaGF2ZSBhIGhlYWRlciI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWU6CisgICAgICAgICAgICAgICAgcmV0
dXJuICJBIG1vZGlmeS1oZWFkZXJzIG9wZXJhdGlvbiBvZiBcInNldFwiIG9yIFwiYXBwZW5kXCIg
bXVzdCBoYXZlIGEgdmFsdWUiOworICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05Nb2RpZnlIZWFkZXJzTm90QXJyYXk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJB
IGhlYWRlcnMgbWVtYmVyIG11c3QgYmUgYW4gYXJyYXkiOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgKaW5kZXggMTRhN2Ix
NDc5YWMwZjA5ZmQ5MDUwNTYzMGE4MzcxN2UwNDlmMGQ1Yy4uZTcwN2I0NmNhMzkwM2JhMTQyMmU3
YTZmZGZkZmQ5ZTQzMTQwZGY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgKQEAgLTQ1LDcgKzQ1LDYgQEAg
ZW51bSBjbGFzcyBDb250ZW50RXh0ZW5zaW9uRXJyb3IgewogICAgIEpTT05JbnZhbGlkVHJpZ2dl
ciwKICAgICBKU09OSW52YWxpZFVSTEZpbHRlckluVHJpZ2dlciwKICAgICBKU09OSW52YWxpZFRy
aWdnZXJGbGFnc0FycmF5LAotICAgIEpTT05JbnZhbGlkT2JqZWN0SW5UcmlnZ2VyRmxhZ3NBcnJh
eSwKICAgICBKU09OSW52YWxpZFN0cmluZ0luVHJpZ2dlckZsYWdzQXJyYXksCiAgICAgSlNPTklu
dmFsaWRDb25kaXRpb25MaXN0LAogICAgIEpTT05Eb21haW5Ob3RMb3dlckNhc2VBU0NJSSwKQEAg
LTU5LDYgKzU4LDI1IEBAIGVudW0gY2xhc3MgQ29udGVudEV4dGVuc2lvbkVycm9yIHsKICAgICBK
U09OSW52YWxpZE5vdGlmaWNhdGlvbiwKICAgICBKU09OSW52YWxpZFJlZ2V4LAogCisgICAgSlNP
TlJlZGlyZWN0TWlzc2luZywKKyAgICBKU09OUmVkaXJlY3RFeHRlbnNpb25QYXRoRG9lc05vdFN0
YXJ0V2l0aFNsYXNoLAorICAgIEpTT05SZWRpcmVjdFVSTFNjaGVtZU5vdEFsbG93ZWQsCisgICAg
SlNPTlJlZGlyZWN0SW52YWxpZFR5cGUsCisKKyAgICBKU09OUmVtb3ZlUGFyYW1ldGVyc05vdFN0
cmluZ0FycmF5LAorCisgICAgSlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheSwKKyAg
ICBKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURpY3Rpb25hcnksCisgICAg
SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcsCisgICAg
SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZywKKwor
ICAgIEpTT05Nb2RpZnlIZWFkZXJzTm90QXJyYXksCisgICAgSlNPTk1vZGlmeUhlYWRlcnNJbmZv
Tm90QURpY3Rpb25hcnksCisgICAgSlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uLAor
ICAgIEpTT05Nb2RpZnlIZWFkZXJzSW52YWxpZE9wZXJhdGlvbiwKKyAgICBKU09OTW9kaWZ5SGVh
ZGVyc01pc3NpbmdIZWFkZXIsCisgICAgSlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWUsCisK
ICAgICBFcnJvcldyaXRpbmdTZXJpYWxpemVkTkZBLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNw
cAppbmRleCA3OTc3ZmEwNDVmYTczNTBkZGExYzc4NTc5NmEyYzhmNGQ5M2JhNjY2Li5jZDUyMDQz
MDZhZjA5OWMzZTY1NWEzMzBkOTlmYTNmYzI1ZjZiMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNw
cApAQCAtNTQsMTEgKzU0LDEyIEBAIHN0YXRpYyBib29sIGNvbnRhaW5zT25seUFTQ0lJV2l0aE5v
VXBwZXJjYXNlKGNvbnN0IFN0cmluZyYgZG9tYWluKQogc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxT
dHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+IGdldFN0cmluZ0xpc3QoY29uc3QgSlNPTjo6QXJyYXkm
IGFycmF5KQogewogICAgIFZlY3RvcjxTdHJpbmc+IHN0cmluZ3M7CisgICAgc3RyaW5ncy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGFycmF5Lmxlbmd0aCgpKTsKICAgICBmb3IgKGF1dG8mIHZhbHVl
IDogYXJyYXkpIHsKICAgICAgICAgU3RyaW5nIHN0cmluZyA9IHZhbHVlLT5hc1N0cmluZygpOwog
ICAgICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7
Ci0gICAgICAgIHN0cmluZ3MuYXBwZW5kKHN0cmluZyk7CisgICAgICAgIHN0cmluZ3MudW5jaGVj
a2VkQXBwZW5kKHN0cmluZyk7CiAgICAgfQogICAgIHJldHVybiBzdHJpbmdzOwogfQpAQCAtMTc4
LDcgKzE3OSw3IEBAIGJvb2wgaXNWYWxpZENTU1NlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0
b3IpCiAgICAgcmV0dXJuICEhcGFyc2VyLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IpOwogfQogCi1z
dGF0aWMgRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxBY3Rpb24+LCBzdGQ6OmVycm9yX2NvZGU+IGxv
YWRBY3Rpb24oY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0KQorc3RhdGljIHN0ZDo6b3B0
aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0
IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhbGxvd2Vk
UmVkaXJlY3RVUkxTY2hlbWVzKQogewogICAgIGF1dG8gYWN0aW9uT2JqZWN0ID0gcnVsZU9iamVj
dC5nZXRPYmplY3QoImFjdGlvbiIpOwogICAgIGlmICghYWN0aW9uT2JqZWN0KQpAQCAtMTg3LDQ5
ICsxODgsNTggQEAgc3RhdGljIEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiwgc3RkOjpl
cnJvcl9jb2RlPiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAgICBTdHJpbmcgYWN0aW9uVHlw
ZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIik7CiAKICAgICBpZiAoYWN0aW9uVHlw
ZSA9PSAiYmxvY2siKQotICAgICAgICByZXR1cm4geyBBY3Rpb24oQmxvY2tMb2FkQWN0aW9uKCkp
IH07CisgICAgICAgIHJldHVybiBBY3Rpb24geyBCbG9ja0xvYWRBY3Rpb24oKSB9OwogICAgIGlm
IChhY3Rpb25UeXBlID09ICJpZ25vcmUtcHJldmlvdXMtcnVsZXMiKQotICAgICAgICByZXR1cm4g
eyBBY3Rpb24oSWdub3JlUHJldmlvdXNSdWxlc0FjdGlvbigpKSB9OworICAgICAgICByZXR1cm4g
QWN0aW9uIHsgSWdub3JlUHJldmlvdXNSdWxlc0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5
cGUgPT0gImJsb2NrLWNvb2tpZXMiKQotICAgICAgICByZXR1cm4geyBBY3Rpb24oQmxvY2tDb29r
aWVzQWN0aW9uKCkpIH07CisgICAgICAgIHJldHVybiBBY3Rpb24geyBCbG9ja0Nvb2tpZXNBY3Rp
b24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJjc3MtZGlzcGxheS1ub25lIikgewogICAg
ICAgICBTdHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygic2Vs
ZWN0b3IiKTsKICAgICAgICAgaWYgKCFzZWxlY3RvclN0cmluZykKICAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ1NTRGlz
cGxheU5vbmVBY3Rpb25UeXBlKTsKLSAgICAgICAgaWYgKCFpc1ZhbGlkQ1NTU2VsZWN0b3Ioc2Vs
ZWN0b3JTdHJpbmcpKSB7Ci0gICAgICAgICAgICAvLyBTa2lwIHJ1bGVzIHdpdGggaW52YWxpZCBz
ZWxlY3RvcnMgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUuCi0gICAgICAgICAgICByZXR1cm4g
eyBzdGQ6Om51bGxvcHQgfTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4geyBBY3Rpb24geyBD
U1NEaXNwbGF5Tm9uZVNlbGVjdG9yQWN0aW9uIHsgeyBXVEZNb3ZlKHNlbGVjdG9yU3RyaW5nKSB9
IH0gfSB9OworICAgICAgICBpZiAoIWlzVmFsaWRDU1NTZWxlY3RvcihzZWxlY3RvclN0cmluZykp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OyAvLyBTa2lwIHJ1bGVzIHdpdGggaW52
YWxpZCBzZWxlY3RvcnMgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUuCisgICAgICAgIHJldHVy
biBBY3Rpb24geyBDU1NEaXNwbGF5Tm9uZVNlbGVjdG9yQWN0aW9uIHsgeyBXVEZNb3ZlKHNlbGVj
dG9yU3RyaW5nKSB9IH0gfTsKICAgICB9CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gIm1ha2UtaHR0
cHMiKQotICAgICAgICByZXR1cm4geyBBY3Rpb24oTWFrZUhUVFBTQWN0aW9uKCkpIH07CisgICAg
ICAgIHJldHVybiBBY3Rpb24geyBNYWtlSFRUUFNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25U
eXBlID09ICJub3RpZnkiKSB7CiAgICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25P
YmplY3QtPmdldFN0cmluZygibm90aWZpY2F0aW9uIik7CiAgICAgICAgIGlmICghbm90aWZpY2F0
aW9uKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkludmFsaWROb3RpZmljYXRpb24pOwotICAgICAgICByZXR1cm4geyBBY3Rpb24g
eyBOb3RpZnlBY3Rpb24geyB7IFdURk1vdmUobm90aWZpY2F0aW9uKSB9IH0gfSB9OworICAgICAg
ICByZXR1cm4gQWN0aW9uIHsgTm90aWZ5QWN0aW9uIHsgeyBXVEZNb3ZlKG5vdGlmaWNhdGlvbikg
fSB9IH07CisgICAgfQorICAgIGlmIChhY3Rpb25UeXBlID09ICJyZWRpcmVjdCIpIHsKKyAgICAg
ICAgYXV0byBhY3Rpb24gPSBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoKmFjdGlvbk9iamVjdCwgYWxs
b3dlZFJlZGlyZWN0VVJMU2NoZW1lcyk7CisgICAgICAgIGlmICghYWN0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGFjdGlvbi5lcnJvcigpKTsKKyAgICAgICAgcmV0dXJu
IEFjdGlvbiB7IFJlZGlyZWN0QWN0aW9uIHsgV1RGTW92ZSgqYWN0aW9uKSB9IH07CisgICAgfQor
ICAgIGlmIChhY3Rpb25UeXBlID09ICJtb2RpZnktaGVhZGVycyIpIHsKKyAgICAgICAgYXV0byBh
Y3Rpb24gPSBNb2RpZnlIZWFkZXJzQWN0aW9uOjpwYXJzZSgqYWN0aW9uT2JqZWN0KTsKKyAgICAg
ICAgaWYgKCFhY3Rpb24pCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWN0aW9u
LmVycm9yKCkpOworICAgICAgICByZXR1cm4gQWN0aW9uIHsgV1RGTW92ZSgqYWN0aW9uKSB9Owog
ICAgIH0KICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZEFjdGlvblR5cGUpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8c3RkOjpvcHRpb25h
bDxDb250ZW50RXh0ZW5zaW9uUnVsZT4sIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFJ1bGUoY29uc3Qg
SlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0KQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8
Q29udGVudEV4dGVuc2lvblJ1bGUsIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRSdWxlKGNvbnN0IEpT
T046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhbGxvd2VkUmVk
aXJlY3RVUkxTY2hlbWVzKQogewogICAgIGF1dG8gdHJpZ2dlciA9IGxvYWRUcmlnZ2VyKHJ1bGVP
YmplY3QpOwogICAgIGlmICghdHJpZ2dlci5oYXNfdmFsdWUoKSkKICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKHRyaWdnZXIuZXJyb3IoKSk7CiAKLSAgICBhdXRvIGFjdGlvbiA9IGxvYWRB
Y3Rpb24ocnVsZU9iamVjdCk7Ci0gICAgaWYgKCFhY3Rpb24uaGFzX3ZhbHVlKCkpCi0gICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChhY3Rpb24uZXJyb3IoKSk7Ci0KLSAgICBpZiAoYWN0aW9u
LnZhbHVlKCkpCi0gICAgICAgIHJldHVybiB7e3sgV1RGTW92ZSh0cmlnZ2VyLnZhbHVlKCkpLCBX
VEZNb3ZlKGFjdGlvbi52YWx1ZSgpLnZhbHVlKCkpIH19fTsKKyAgICBhdXRvIGFjdGlvbiA9IGxv
YWRBY3Rpb24ocnVsZU9iamVjdCwgYWxsb3dlZFJlZGlyZWN0VVJMU2NoZW1lcyk7CisgICAgaWYg
KCFhY3Rpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFhY3Rpb24t
Pmhhc192YWx1ZSgpKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWN0aW9uLT5lcnJv
cigpKTsKIAotICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCB9OworICAgIHJldHVybiB7IHsgeyBX
VEZNb3ZlKHRyaWdnZXIudmFsdWUoKSksIFdURk1vdmUoYWN0aW9uLT52YWx1ZSgpKSB9IH0gfTsK
IH0KIAotc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVsZT4sIHN0ZDo6
ZXJyb3JfY29kZT4gbG9hZEVuY29kZWRSdWxlcyhjb25zdCBTdHJpbmcmIHJ1bGVKU09OKQorc3Rh
dGljIEV4cGVjdGVkPFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVsZT4sIHN0ZDo6ZXJyb3JfY29k
ZT4gbG9hZEVuY29kZWRSdWxlcyhjb25zdCBTdHJpbmcmIHJ1bGVKU09OLCBjb25zdCBIYXNoU2V0
PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpCiB7CiAgICAgYXV0byBkZWNvZGVk
UnVsZXMgPSBKU09OOjpWYWx1ZTo6cGFyc2VKU09OKHJ1bGVKU09OKTsKIApAQCAtMjQ1LDI4ICsy
NTUsMzAgQEAgc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVsZT4sIHN0
ZDo6ZXJyb3JfY29kZT4gbG9hZEVuY29kZWRSdWxlcygKICAgICBjb25zdGV4cHIgc2l6ZV90IG1h
eFJ1bGVDb3VudCA9IDE1MDAwMDsKICAgICBpZiAodG9wTGV2ZWxBcnJheS0+bGVuZ3RoKCkgPiBt
YXhSdWxlQ291bnQpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOworICAgIHJ1bGVMaXN0LnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodG9wTGV2ZWxBcnJheS0+bGVuZ3RoKCkpOwogICAgIGZvciAoYXV0byYgdmFsdWUg
OiAqdG9wTGV2ZWxBcnJheSkgewogICAgICAgICBhdXRvIHJ1bGVPYmplY3QgPSB2YWx1ZS0+YXNP
YmplY3QoKTsKICAgICAgICAgaWYgKCFydWxlT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSdWxlKTsKIAot
ICAgICAgICBhdXRvIHJ1bGUgPSBsb2FkUnVsZSgqcnVsZU9iamVjdCk7Ci0gICAgICAgIGlmICgh
cnVsZS5oYXNfdmFsdWUoKSkKLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChydWxl
LmVycm9yKCkpOwotICAgICAgICBpZiAocnVsZS52YWx1ZSgpKQotICAgICAgICAgICAgcnVsZUxp
c3QuYXBwZW5kKFdURk1vdmUoKnJ1bGUudmFsdWUoKSkpOworICAgICAgICBhdXRvIHJ1bGUgPSBs
b2FkUnVsZSgqcnVsZU9iamVjdCwgYWxsb3dlZFJlZGlyZWN0VVJMU2NoZW1lcyk7CisgICAgICAg
IGlmICghcnVsZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIXJ1bGUtPmhh
c192YWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJ1bGUtPmVycm9y
KCkpOworICAgICAgICBydWxlTGlzdC51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZShydWxlLT52YWx1
ZSgpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJ1bGVMaXN0OwogfQogCi1FeHBlY3RlZDxWZWN0
b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+LCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNlUnVsZUxpc3Qo
Y29uc3QgU3RyaW5nJiBydWxlSlNPTikKK0V4cGVjdGVkPFZlY3RvcjxDb250ZW50RXh0ZW5zaW9u
UnVsZT4sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2VSdWxlTGlzdChjb25zdCBTdHJpbmcmIHJ1bGVK
U09OLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpCiB7
CiAjaWYgQ09OVEVOVF9FWFRFTlNJT05TX1BFUkZPUk1BTkNFX1JFUE9SVElORwogICAgIE1vbm90
b25pY1RpbWUgbG9hZEV4dGVuc2lvblN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwog
I2VuZGlmCiAKLSAgICBhdXRvIHJ1bGVMaXN0ID0gbG9hZEVuY29kZWRSdWxlcyhydWxlSlNPTik7
CisgICAgYXV0byBydWxlTGlzdCA9IGxvYWRFbmNvZGVkUnVsZXMocnVsZUpTT04sIGFsbG93ZWRS
ZWRpcmVjdFVSTFNjaGVtZXMpOwogCiAgICAgaWYgKCFydWxlTGlzdC5oYXNfdmFsdWUoKSkKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJ1bGVMaXN0LmVycm9yKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBh
cnNlci5oCmluZGV4IGYxMTM0YjZmYjIyOGMzYWI2ZGZhZjJlNjZlM2NlZTAyMTgyYWRhNWYuLmNh
NzI5NDBlNzQzZWFiMzNlMmQ0MmM1NWQ4NDM2ZDMzMjBhYTgxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2Vy
LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogY2xh
c3MgQ29udGVudEV4dGVuc2lvblJ1bGU7CiAKLVdFQkNPUkVfRVhQT1JUIEV4cGVjdGVkPFZlY3Rv
cjxDb250ZW50RXh0ZW5zaW9uUnVsZT4sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2VSdWxlTGlzdChj
b25zdCBTdHJpbmcmKTsKK1dFQkNPUkVfRVhQT1JUIEV4cGVjdGVkPFZlY3RvcjxDb250ZW50RXh0
ZW5zaW9uUnVsZT4sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2VSdWxlTGlzdChjb25zdCBTdHJpbmcm
LCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFsbG93ZWRSZWRpcmVjdFVSTFNjaGVtZXMpOwogV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc1ZhbGlkQ1NTU2VsZWN0b3IoY29uc3QgU3RyaW5nJik7CiAKIH0g
Ly8gbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApp
bmRleCBiZWE2N2JhMDMxZmE3YWRhYThjYzIzYmY3MWM1NzExYmE0YzRlOTQyLi42ZmNhY2Y0MjA2
MWJmZTg5N2I2NmUwZDQxMjZiMGY2YjY2YWFmNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5j
cHAKQEAgLTIyOCw2ICsyMjgsMTAgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9LCBbJl0oY29uc3QgSWdub3JlUHJldmlvdXNSdWxlc0Fj
dGlvbiYpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgfSwgWyZdIChjb25zdCBNb2RpZnlIZWFkZXJzQWN0aW9uJikgeworICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICAgICAgICAgIH0sIFsmXSAoY29uc3Qg
UmVkaXJlY3RBY3Rpb24mKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudAog
ICAgICAgICAgICAgfSksIGFjdGlvbi5kYXRhKCkpOwogICAgICAgICB9CiAKQEAgLTI4Nyw2ICsy
OTEsMTAgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6
OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yUGluZ0wKICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUyA9IHRydWU7CiAgICAgICAgICAgICB9LCBbJl0oY29uc3Qg
SWdub3JlUHJldmlvdXNSdWxlc0FjdGlvbiYpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfSwgWyZdIChjb25zdCBNb2RpZnlIZWFk
ZXJzQWN0aW9uJikgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICAg
ICAgICAgIH0sIFsmXSAoY29uc3QgUmVkaXJlY3RBY3Rpb24mKSB7CisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudAogICAgICAgICAgICAgfSksIGFjdGlvbi5kYXRhKCkpOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAKaW5kZXggZWY5YzQxOTQ4ZDEwNTliNjQxZjZhZWI1
NmM1MDliMzFmZDc3YjRhYy4uZWZiODA3MmI5NzM1MjRkNGVmNmE2ZTg3Y2EzY2RjZTM0NzFkMmFm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxl
TGlzdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVu
dFJ1bGVMaXN0U3RvcmUuY3BwCkBAIC01MzYsNyArNTM2LDcgQEAgdm9pZCBDb250ZW50UnVsZUxp
c3RTdG9yZTo6Y29tcGlsZUNvbnRlbnRSdWxlTGlzdChjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRp
ZmllciwKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAgICAgV2ViQ29yZTo6UXVhbGlmaWVkTmFt
ZTo6aW5pdCgpOwogICAgIAotICAgIGF1dG8gcGFyc2VkUnVsZXMgPSBXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlzdChqc29uKTsKKyAgICBhdXRvIHBhcnNlZFJ1bGVzID0g
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnBhcnNlUnVsZUxpc3QoanNvbiwgeyB9KTsKICAg
ICBpZiAoIXBhcnNlZFJ1bGVzLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIobnVsbHB0ciwgcGFyc2VkUnVsZXMuZXJyb3IoKSk7CiAgICAgCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTAyM2E0NjZhZGI3OGNj
MTQ3YzZmM2Q1NTIyZTgwZTZmMDU4OWNlYS4uODA1MTMxYWU1MDEwYjZmYWI5MzRmNWQyYzQ5ODlm
NWY0MTQ2MDdkNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTExLTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFyc2UgcmVkaXJlY3QgYW5kIG1vZGlm
eS1oZWFkZXJzIGFjdGlvbnMgZm9yIFdLQ29udGVudFJ1bGVMaXN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSGF0Y2hlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0Yp
OgorCiAyMDIxLTExLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVzdHJ1Y3R1cmUgV0tDb250ZW50UnVsZUxpc3QgQWN0aW9uIHN0b3Jh
Z2UgZHVyaW5nIGNvbXBpbGF0aW9uIGFuZCBpbnRlcnByZXRhdGlvbgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5k
ZXggNjFiMTRmODBiZDJmNDEwZTFhZTRiOTczYzc4OWQwNzkyMzg5NTEzZi4uNDVkOTU3ZGY5M2Zj
NjMwNTFhZjFiMDFmMDIyMGVhYmFmMjllNDYzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xMjgsNyAr
MTI4LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
RGF0YSBleHRlbnNpb25EYXRhOwogICAgICAgICBJbk1lbW9yeUNvbnRlbnRFeHRlbnNpb25Db21w
aWxhdGlvbkNsaWVudCBjbGllbnQoZXh0ZW5zaW9uRGF0YSk7Ci0gICAgICAgIGF1dG8gcGFyc2Vk
UnVsZXMgPSBDb250ZW50RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlzdChmaWx0ZXIpOworICAgICAg
ICBhdXRvIHBhcnNlZFJ1bGVzID0gQ29udGVudEV4dGVuc2lvbnM6OnBhcnNlUnVsZUxpc3QoZmls
dGVyLCB7IH0pOwogICAgICAgICBhdXRvIGNvbXBpbGVyRXJyb3IgPSBDb250ZW50RXh0ZW5zaW9u
czo6Y29tcGlsZVJ1bGVMaXN0KGNsaWVudCwgV1RGTW92ZShmaWx0ZXIpLCBXVEZNb3ZlKHBhcnNl
ZFJ1bGVzLnZhbHVlKCkpKTsKIAogICAgICAgICAvLyBDb21waWxpbmcgc2hvdWxkIGFsd2F5cyBz
dWNjZWVkIGhlcmUuIFdlIGhhdmUgb3RoZXIgdGVzdHMgZm9yIGNvbXBpbGUgZmFpbHVyZXMuCkBA
IC0xMzYwLDExICsxMzYwLDExIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgRGVlcE5G
QSkKICAgICBFWFBFQ1RfRVEoMXVsLCBjcmVhdGVORkFzKGNvbWJpbmVkVVJMRmlsdGVycykuc2l6
ZSgpKTsKIH0KIAotdm9pZCBjaGVja0NvbXBpbGVyRXJyb3IoY29uc3QgY2hhcioganNvbiwgc3Rk
OjplcnJvcl9jb2RlIGV4cGVjdGVkRXJyb3IpCit2b2lkIGNoZWNrQ29tcGlsZXJFcnJvcihjb25z
dCBjaGFyKiBqc29uLCBzdGQ6OmVycm9yX2NvZGUgZXhwZWN0ZWRFcnJvciwgY29uc3QgSGFzaFNl
dDxTdHJpbmc+JiBhbGxvd2VkUmVkaXJlY3RVUkxTY2hlbWVzID0geyB9KQogewogICAgIENvbXBp
bGVkQ29udGVudEV4dGVuc2lvbkRhdGEgZXh0ZW5zaW9uRGF0YTsKICAgICBJbk1lbW9yeUNvbnRl
bnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCBjbGllbnQoZXh0ZW5zaW9uRGF0YSk7Ci0gICAg
YXV0byBwYXJzZWRSdWxlcyA9IENvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KGpzb24p
OworICAgIGF1dG8gcGFyc2VkUnVsZXMgPSBDb250ZW50RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlz
dChqc29uLCBhbGxvd2VkUmVkaXJlY3RVUkxTY2hlbWVzKTsKICAgICBzdGQ6OmVycm9yX2NvZGUg
Y29tcGlsZXJFcnJvcjsKICAgICBpZiAocGFyc2VkUnVsZXMuaGFzX3ZhbHVlKCkpCiAgICAgICAg
IGNvbXBpbGVyRXJyb3IgPSBDb250ZW50RXh0ZW5zaW9uczo6Y29tcGlsZVJ1bGVMaXN0KGNsaWVu
dCwganNvbiwgV1RGTW92ZShwYXJzZWRSdWxlcy52YWx1ZSgpKSk7CkBAIC0xNDQwLDUyICsxNDQw
LDUyIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgTWF0Y2hlc0V2ZXJ5dGhpbmcpCiAg
ICAgCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEludmFsaWRKU09OKQogewotICAgIGNo
ZWNrQ29tcGlsZXJFcnJvcigiWyIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIjEyMyIsIENvbnRl
bnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub3BMZXZlbFN0cnVjdHVy
ZU5vdEFuQXJyYXkpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigie30iLCBDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9wTGV2ZWxTdHJ1Y3R1cmVOb3RBbkFy
cmF5KTsKLSAgICAvLyBGSVhNRTogQWRkIHVuaXQgdGVzdCBmb3IgSlNPTkludmFsaWRSdWxlIGlm
IHRoYXQgaXMgcG9zc2libGUgdG8gaGl0LgotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW10iLCBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQ29udGFpbnNOb1J1
bGVzKTsKKyAgICB1c2luZyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnM7CisgICAgY2hlY2tD
b21waWxlckVycm9yKCJbIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZCk7Cisg
ICAgY2hlY2tDb21waWxlckVycm9yKCIxMjMiLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05U
b3BMZXZlbFN0cnVjdHVyZU5vdEFuQXJyYXkpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigie30i
LCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub3BMZXZlbFN0cnVjdHVyZU5vdEFuQXJyYXkp
OworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiWzVdIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZFJ1bGUpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW10iLCBDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05Db250YWluc05vUnVsZXMpOwogCiAgICAgY2hlY2tDb21waWxlckVy
cm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6NX1dIiwK
LSAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTklu
dmFsaWRUcmlnZ2VyKTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxp
ZFRyaWdnZXIpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIlwifX1dIiwKLSAgICAg
ICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRV
UkxGaWx0ZXJJblRyaWdnZXIpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkVVJMRmlsdGVySW5UcmlnZ2VyKTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
e319fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFVSTEZpbHRlckluVHJpZ2dlcik7CisgICAgICAgIENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkludmFsaWRVUkxGaWx0ZXJJblRyaWdnZXIpOwogCi0gICAgLy8gRklYTUU6
IEFkZCB1bml0IHRlc3QgZm9yIEpTT05JbnZhbGlkT2JqZWN0SW5UcmlnZ2VyRmxhZ3NBcnJheSBp
ZiB0aGF0IGlzIHBvc3NpYmxlIHRvIGhpdC4KICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJsb2FkLXR5cGVcIjp7fX19XSIsCi0gICAgICAgIENvbnRlbnRFeHRl
bnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJy
YXkpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZs
YWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixc
ImxvYWQtdHlwZVwiOltcImludmFsaWRcIl19fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFN0cmluZ0luVHJpZ2dlckZsYWdz
QXJyYXkpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3RyaW5n
SW5UcmlnZ2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Vi
a2l0Lm9yZ1wiLFwibG9hZC10eXBlXCI6WzVdfX1dIiwKLSAgICAgICAgQ29udGVudEV4dGVuc2lv
bnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRTdHJpbmdJblRyaWdnZXJGbGFn
c0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFN0cmlu
Z0luVHJpZ2dlckZsYWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndl
YmtpdC5vcmdcIixcImxvYWQtdHlwZVwiOjV9fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsK
KyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0Fy
cmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJsb2Fk
LXR5cGVcIjpcImZpcnN0LXBhcnR5XCJ9fV0iLAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKKyAg
ICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5
KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJsb2FkLXR5
cGVcIjpudWxsfX1dIiwKLSAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CisgICAgICAgIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwibG9hZC10eXBlXCI6ZmFsc2V9fV0i
LAotICAgICAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
SW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJyZXNvdXJjZS10eXBlXCI6e319fV0iLAotICAgICAgICBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdn
ZXJGbGFnc0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxp
ZFRyaWdnZXJGbGFnc0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCIsXCJyZXNvdXJjZS10eXBlXCI6W1wiaW52YWxpZFwiXX19XSIsCi0gICAgICAgIENv
bnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3RyaW5n
SW5UcmlnZ2VyRmxhZ3NBcnJheSk7CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkludmFsaWRTdHJpbmdJblRyaWdnZXJGbGFnc0FycmF5KTsKICAgICBjaGVja0NvbXBpbGVyRXJy
b3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJyZXNvdXJjZS10eXBlXCI6WzVdfX1dIiwKLSAgICAg
ICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRT
dHJpbmdJblRyaWdnZXJGbGFnc0FycmF5KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFN0cmluZ0luVHJpZ2dlckZsYWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGls
ZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInJlc291cmNlLXR5cGVcIjo1fX1dIiwKLSAg
ICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFs
aWRUcmlnZ2VyRmxhZ3NBcnJheSk7CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
Olwid2Via2l0Lm9yZ1wiLFwicmVzb3VyY2UtdHlwZVwiOlwiZG9jdW1lbnRcIn19XSIsCi0gICAg
ICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
VHJpZ2dlckZsYWdzQXJyYXkpOworICAgICAgICBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
IndlYmtpdC5vcmdcIixcInJlc291cmNlLXR5cGVcIjpudWxsfX1dIiwKLSAgICAgICAgQ29udGVu
dEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxh
Z3NBcnJheSk7CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmln
Z2VyRmxhZ3NBcnJheSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wiLFwicmVzb3VyY2UtdHlwZVwiOmZhbHNlfX1dIiwKLSAgICAgICAgQ29udGVudEV4dGVuc2lv
bnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7
CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NB
cnJheSk7CiAgICAgCi0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwibm90aWZ5XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE5vdGlm
aWNhdGlvbik7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
Olwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjo1fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCIuKlwifX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkludmFsaWROb3RpZmljYXRpb24pOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6W119LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE5vdGlmaWNhdGlvbik7CisgICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkTm90aWZpY2F0aW9uKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOjV9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcIi4qXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkTm90aWZpY2F0aW9uKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJub3RpZnlcIixcIm5vdGlmaWNhdGlvblwiOltdfSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCIuKlwifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxp
ZE5vdGlmaWNhdGlvbik7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwibm90aWZ5XCIsXCJub3RpZmljYXRpb25cIjpcImhlcmUncyBteSBub3RpZmljYXRp
b25cIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19XSIsIHsgfSk7CiAgICAg
Y2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJu
b3RpZmljYXRpb25cIjpcIlxcdTEyMzRcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
LipcIn19XSIsIHsgfSk7CiAgICAgCkBAIC0xNDk4LDU3ICsxNDk4LDc5IEBAIFRFU1RfRihDb250
ZW50RXh0ZW5zaW9uVGVzdCwgSW52YWxpZEpTT04pCiAgICAgcnVsZXMxNTAwMDAuYXBwZW5kKCJ7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCJhXCJ9fV0iKTsKICAgICBydWxlczE1MDAwMS5hcHBlbmQoIntcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImFcIn19LHtcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
ImFcIn19XSIpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczE1MDAwMC51dGY4KCkuZGF0
YSgpLCB7IH0pOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcihydWxlczE1MDAwMS51dGY4KCkuZGF0
YSgpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFu
eVJ1bGVzKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXMxNTAwMDEudXRmOCgpLmRhdGEo
KSwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKICAgICAKLSAgICBj
aGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjp7fX19
XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
Q29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wiLFwiaWYtZG9tYWluXCI6WzVdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKKyAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjp7fX19XSIsIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKKyAgICBjaGVja0NvbXBp
bGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbNV19fV0iLCBDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CiAgICAgY2hlY2tD
b21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19
XSIsIHsgfSk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwi
aWYtZG9tYWluXCI6XCJhXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOmZhbHNlfX1dIiwgQ29udGVudEV4
dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0
KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21h
aW5cIjpudWxsfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJ1bmxlc3MtZG9tYWluXCI6e319fV0iLCBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5c
IjpbNV19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
SW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndl
YmtpdC5vcmdcIixcInVubGVzcy1kb21haW5cIjpbXCJcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5c
IjpcImFcIn19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
d2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOm51bGx9fV0iLCBDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOwotICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5c
IjpmYWxzZX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
d2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOltcIkFcIl19fV0iLCBDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09ORG9tYWluTm90TG93ZXJDYXNlQVNDSUkp
OwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2Nr
XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1k
b21haW5cIjpbXCJcXHUwMERDXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkRvbWFpbk5vdExvd2VyQ2FzZUFTQ0lJKTsKKyAgICBjaGVja0NvbXBp
bGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpcImFcIn19XSIsIENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKKyAgICBjaGVj
a0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpmYWxzZX19
XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKKyAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpu
dWxsfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3Qp
OworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2Nr
XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1k
b21haW5cIjp7fX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRp
b25MaXN0KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6
XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1
bmxlc3MtZG9tYWluXCI6WzVdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxp
ZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5v
cmdcIixcInVubGVzcy1kb21haW5cIjpbXCJcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
Olwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOlwiYVwifX1dIiwgQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGlsZXJF
cnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5cIjpudWxsfX1dIiwgQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5cIjpmYWxz
ZX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsK
KyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wi
fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1bmxlc3MtZG9t
YWluXCI6W1wiQVwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkRvbWFpbk5vdExv
d2VyQ2FzZUFTQ0lJKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCIsXCJ1bmxlc3MtZG9tYWluXCI6W1wiXFx1MDBEQ1wiXX19XSIsIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkRvbWFpbk5vdExvd2VyQ2FzZUFTQ0lJKTsKICAgICBjaGVja0NvbXBpbGVyRXJy
b3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1bmxlc3MtZG9tYWluXCI6W1wiMFwiXX19XSIsIHsg
fSk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNz
LWRvbWFpblwiOltcImFcIl19fV0iLCB7IH0pOwogCi0gICAgY2hlY2tDb21waWxlckVycm9yKCJb
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W10sXCJ1bmxlc3MtZG9tYWluXCI6W1wi
YVwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Vi
a2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOltdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVj
a0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjo1fX1dIiwg
Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDb25k
aXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBl
XCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIs
XCJ1bmxlc3MtZG9tYWluXCI6NX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21waWxlckVy
cm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6NSxcInVubGVzcy1kb21haW5c
Ijo1fX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTklu
dmFsaWRDb25kaXRpb25MaXN0KTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCIsXCJpZi1kb21haW5cIjpbXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlzdCk7Ci0gICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXSxcInVu
bGVzcy1kb21haW5cIjpbXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05NdWx0aXBsZUNvbmRpdGlvbnMpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigi
W3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltdLFwidW5sZXNzLWRvbWFpblwiOltc
ImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29uZGl0aW9uTGlz
dCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNz
LWRvbWFpblwiOltdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRp
dGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixc
ImlmLWRvbWFpblwiOjV9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ29u
ZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wi
LFwidW5sZXNzLWRvbWFpblwiOjV9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkQ29uZGl0aW9uTGlzdCk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0
Lm9yZ1wiLFwiaWYtZG9tYWluXCI6NSxcInVubGVzcy1kb21haW5cIjo1fX1dIiwgQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29tcGls
ZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltdfX1dIiwgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENvbmRpdGlvbkxpc3QpOworICAgIGNoZWNrQ29t
cGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltcImFcIl0sXCJ1
bmxlc3MtZG9tYWluXCI6W119fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBs
ZUNvbmRpdGlvbnMpOwogCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6NSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLAotICAgICAgICBD
b250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlv
bik7CisgICAgICAgIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb24pOwog
ICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImludmFsaWRc
In0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwKLSAgICAg
ICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRB
Y3Rpb25UeXBlKTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFj
dGlvblR5cGUpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImNzcy1kaXNwbGF5LW5vbmVcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Vi
a2l0Lm9yZ1wifX1dIiwKLSAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5Tm9uZUFjdGlvblR5cGUpOworICAgICAgICBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ1NTRGlzcGxheU5vbmVBY3Rpb25UeXBl
KTsKIAogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImln
bm9yZS1wcmV2aW91cy1ydWxlc1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCJ9fSwiCiAgICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJjc3MtZGlzcGxh
eS1ub25lXCIsXCJzZWxlY3RvclwiOlwiLmhpZGRlblwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCIuKlwifX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rp
b25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIu
KlwiLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19XSIsIHsgfSk7CiAgICAgY2hlY2tDb21waWxlckVy
cm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiLipcIixcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwgeyB9KTsKICAg
ICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJbXCJ9fV0iLAotICAgICAgICBDb250ZW50RXh0
ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4KTsKLQotICAg
IGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltc
ImFcIl0sXCJ1bmxlc3MtZG9tYWluXCI6W1wiYVwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRpdGlvbnMpOwotICAgIGNoZWNr
Q29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxcIjpbXCJhXCJd
LFwidW5sZXNzLXRvcC11cmxcIjpbXX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRpdGlvbnMpOwotICAgIGNoZWNrQ29tcGlsZXJF
cnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxcIjpbXCJhXCJdLFwidW5sZXNz
LXRvcC11cmxcIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21waWxlckVycm9y
KCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXSxcImlmLXRvcC11cmxc
IjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
d2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltdLFwidW5sZXNzLWRvbWFpblwiOltcImFcIl19
fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTXVsdGlw
bGVDb25kaXRpb25zKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCIsXCJpZi10b3AtdXJsXCI6W1wiYVwiXSxcImlmLWRvbWFpblwiOltcImFcIl19fV0iLCBDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTXVsdGlwbGVDb25kaXRp
b25zKTsKLSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi10
b3AtdXJsXCI6W1wiYVwiXX19LCB7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJh
XCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRv
cFVSTEFuZERvbWFpbkNvbmRpdGlvbnMpOwotICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
IndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxcIjpbXCJhXCJdfX0sIHtcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
IixcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcFVSTEFuZERvbWFpbkNvbmRpdGlvbnMpOwotICAgIGNo
ZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJp
Z2dlclwiOntcInVybC1maWx0ZXJcIjpcInRlc3RcXFxcLmh0bWxcIiwgXCJ1bmxlc3MtdG9wLXVy
bFwiOltcIltcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFJlZ2V4KTsKKyAgICAgICAgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
SW52YWxpZFJlZ2V4KTsKKworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5v
cmdcIixcImlmLWRvbWFpblwiOltcImFcIl0sXCJ1bmxlc3MtZG9tYWluXCI6W1wiYVwiXX19XSIs
IENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7CisgICAgY2hl
Y2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFc
Il0sXCJ1bmxlc3MtdG9wLXVybFwiOltdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
TXVsdGlwbGVDb25kaXRpb25zKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W1wiYVwiXSxcInVubGVzcy10b3AtdXJsXCI6W1wiYVwi
XX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Cisg
ICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6
W1wiYVwiXSxcImlmLXRvcC11cmxcIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W10sXCJ1bmxlc3MtZG9tYWluXCI6W1wiYVwi
XX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Cisg
ICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwi
OltcImFcIl0sXCJpZi1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W1wiYVwiXX19LCB7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3Jn
XCIsXCJpZi1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
VG9wVVJMQW5kRG9tYWluQ29uZGl0aW9ucyk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
Olwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl19fSwge1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wiLFwidW5sZXNzLWRvbWFpblwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05Ub3BVUkxBbmREb21haW5Db25kaXRpb25zKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmls
dGVyXCI6XCJ0ZXN0XFxcXC5odG1sXCIsIFwidW5sZXNzLXRvcC11cmxcIjpbXCJbXCJdfX1dIiwg
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4KTsKICAgICBjaGVja0NvbXBp
bGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsIFwidW5leHBlY3RlZC1pZGVudGlmaWVyLXNo
b3VsZC1iZS1pZ25vcmVkXCI6NX19XSIsIHsgfSk7CisKKyAgICBjaGVja0NvbXBpbGVyRXJyb3Io
Ilt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05S
ZWRpcmVjdE1pc3NpbmcpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwiOnt9fSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05S
ZWRpcmVjdEludmFsaWRUeXBlKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJx
dWVyeS10cmFuc2Zvcm1cIjp7XCJyZW1vdmUtcGFyYW1ldGVyc1wiOjV9fX19LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJpbmdBcnJheSk7CisgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6
e1widHJhbnNmb3JtXCI6e1wicXVlcnktdHJhbnNmb3JtXCI6e1wicmVtb3ZlLXBhcmFtZXRlcnNc
IjpbNV19fX19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIs
IENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJpbmdBcnJh
eSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVk
aXJlY3RcIixcInJlZGlyZWN0XCI6e1widHJhbnNmb3JtXCI6e1wicXVlcnktdHJhbnNmb3JtXCI6
e1wiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVyc1wiOjV9fX19LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFk
ZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJb
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVkaXJlY3RcIixcInJlZGlyZWN0XCI6e1widHJhbnNm
b3JtXCI6e1wicXVlcnktdHJhbnNmb3JtXCI6e1wiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVyc1wi
Ols1XX19fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwg
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVl
Tm90QURpY3Rpb25hcnkpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwiOntcInRyYW5zZm9ybVwiOntcInF1ZXJ5
LXRyYW5zZm9ybVwiOntcImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnNcIjpbe31dfX19fSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3Ry
aW5nKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJy
ZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJxdWVyeS10cmFuc2Zvcm1c
Ijp7XCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzXCI6W3tcImtleVwiOjV9XX19fX0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ0tleVN0cmlu
Zyk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVk
aXJlY3RcIixcInJlZGlyZWN0XCI6e1widHJhbnNmb3JtXCI6e1wicXVlcnktdHJhbnNmb3JtXCI6
e1wiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVyc1wiOlt7XCJrZXlcIjpcImtcIixcInZhbHVlXCI6
NX1dfX19fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVN
aXNzaW5nVmFsdWVTdHJpbmcpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwiOntcInVybFwiOlwiYWJvdXQ6Ymxh
bmtcIn19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMU2NoZW1lTm90QWxsb3dlZCk7Cisg
ICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVkaXJlY3Rc
IixcInJlZGlyZWN0XCI6e1widXJsXCI6XCJhYm91dDpibGFua1wifX0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgeyB9LCB7ICJhYm91dCIgfSk7CisgICAg
Y2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwicmVkaXJlY3RcIixc
InJlZGlyZWN0XCI6e1wiZXh0ZW5zaW9uLXBhdGhcIjpcImRvZXMvbm90L3N0YXJ0L3dpdGgvc2xh
c2gvXCJ9fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCJ9fV0iLCBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3Rh
cnRXaXRoU2xhc2gpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcInJlZGlyZWN0XCIsXCJyZWRpcmVjdFwiOntcImV4dGVuc2lvbi1wYXRoXCI6XCIvZG9l
cy9zdGFydC93aXRoL3NsYXNoL1wifX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Vi
a2l0Lm9yZ1wifX1dIiwgeyB9KTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJyZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJz
Y2hlbWVcIjpcImFib3V0XCJ9fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0
Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVO
b3RBbGxvd2VkKTsKKyAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBl
XCI6XCJyZWRpcmVjdFwiLFwicmVkaXJlY3RcIjp7XCJ0cmFuc2Zvcm1cIjp7XCJzY2hlbWVcIjpc
ImFib3V0XCJ9fX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1d
IiwgeyB9LCB7ICJhYm91dCIgfSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJlcXVlc3QtaGVhZGVyc1wiOjV9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNOb3RBcnJheSk7CisgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJlcXVl
c3QtaGVhZGVyc1wiOls1XX0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9y
Z1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc0luZm9Ob3RB
RGljdGlvbmFyeSk7CisgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwibW9kaWZ5LWhlYWRlcnNcIixcInJlcXVlc3QtaGVhZGVyc1wiOlt7fV19LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKKyAgICBjaGVja0NvbXBp
bGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJtb2RpZnktaGVhZGVyc1wiLFwicmVx
dWVzdC1oZWFkZXJzXCI6W3tcIm9wZXJhdGlvblwiOlwicmVtb3ZlXCJ9XX0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdIZWFkZXIpOworICAgIGNoZWNrQ29tcGlsZXJFcnJv
cigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm1vZGlmeS1oZWFkZXJzXCIsXCJyZXF1ZXN0LWhl
YWRlcnNcIjpbe1wib3BlcmF0aW9uXCI6XCJzZXRcIixcImhlYWRlclwiOlwidGVzdGhlYWRlclwi
fV19LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSIsIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nVmFsdWUpOworICAgIGNo
ZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcIm1vZGlmeS1oZWFkZXJz
XCIsXCJyZXF1ZXN0LWhlYWRlcnNcIjpbe1wib3BlcmF0aW9uXCI6XCJpbnZhbGlkXCIsXCJoZWFk
ZXJcIjpcInRlc3RoZWFkZXJcIn1dfSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJr
aXQub3JnXCJ9fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW52
YWxpZE9wZXJhdGlvbik7CiB9CiAKIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgU3RyaWN0
UHJlZml4U2VwYXJhdGVkTWFjaGluZXMxKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>