<?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>73248</bug_id>
          
          <creation_ts>2011-11-28 14:11:19 -0800</creation_ts>
          <short_desc>Move typed array implementations into wtf</short_desc>
          <delta_ts>2011-11-28 15:42:23 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>abarth</cc>
    
    <cc>dslomov</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510160</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-28 14:11:19 -0800</bug_when>
    <thetext>Move typed array implementations into wtf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510163</commentid>
    <comment_count>1</comment_count>
      <attachid>116817</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-28 14:13:58 -0800</bug_when>
    <thetext>Created attachment 116817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510177</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-28 14:28:20 -0800</bug_when>
    <thetext>Just waiting for build bots to churn -- working on v8 codegen at the moment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510214</commentid>
    <comment_count>3</comment_count>
      <attachid>116828</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-28 14:53:42 -0800</bug_when>
    <thetext>Created attachment 116828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510227</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-28 14:58:28 -0800</bug_when>
    <thetext>Attachment 116828 did not pass style-queue:

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

Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:62:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/bindings/scripts/test/CPP/WebDOMFloat64Array.h:41:  The parameter name &quot;array&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 88 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510247</commentid>
    <comment_count>5</comment_count>
      <attachid>116835</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-28 15:10:19 -0800</bug_when>
    <thetext>Created attachment 116835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510259</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-11-28 15:19:53 -0800</bug_when>
    <thetext>This looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510260</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-28 15:20:16 -0800</bug_when>
    <thetext>Attachment 116835 did not pass style-queue:

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

Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:62:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/bindings/scripts/test/CPP/WebDOMFloat64Array.h:41:  The parameter name &quot;array&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 89 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510278</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-28 15:42:23 -0800</bug_when>
    <thetext>Committed r101295: &lt;http://trac.webkit.org/changeset/101295&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116817</attachid>
            <date>2011-11-28 14:13:58 -0800</date>
            <delta_ts>2011-11-28 14:53:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73248-20111128141357.patch</filename>
            <type>text/plain</type>
            <size>235947</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YTUzMjA5MDM2NDZhZTIzNjQ3YmQxYjE0MGU2MmVhZmI5ZjQwYzc1Li5mNTdiNWIzMDg1YmZkZWU1
ZWUyZDI0OGFkY2QzMmIxNGZjNTA2YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzAgQEAKKzIwMTEtMTEtMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIHR5cGVkIGFycmF5IGltcGxlbWVudGF0aW9ucyBpbnRvIHd0ZgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHR5cGVkIGFy
cmF5IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gV2ViQ29yZSB0byB3dGYuICBJbmxpbmUgdGhl
CisgICAgICAgIC5jcHAgZmlsZXMgZm9yIGVhY2ggb2YgdGhlIGFycmF5IHZpZXdzIHRvIGN1dCBk
b3duIG9uIHVubmVjZXNzYXJ5IGV4cG9ydHMKKyAgICAgICAgYW5kIGZ1bmN0aW9uIGNhbGwgb3Zl
cmhlYWQgZm9yIHRyaXZpYWwgb3BlcmF0aW9ucy4KKworICAgICAgICBBZGRlZCBmaWxlcyB0byBh
bGwgdGhlIHByb2plY3QgZmlsZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQXJyYXlCdWZmZXIuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcC4KKyAgICAg
ICAgKFdURjo6QXJyYXlCdWZmZXI6OnRyYW5zZmVyKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZm
ZXI6OmFkZFZpZXcpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlcjo6cmVtb3ZlVmlldyk6Cisg
ICAgICAgICogd3RmL0FycmF5QnVmZmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAuCisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyQ29u
dGVudHM6OkFycmF5QnVmZmVyQ29udGVudHMpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNv
bnRlbnRzOjpkYXRhKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJDb250ZW50czo6c2l6ZUlu
Qnl0ZXMpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cmFuc2Zlcik6Cisg
ICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjp+QXJyYXlCdWZmZXIpOgorICAgICAgICAoV1RGOjpB
cnJheUJ1ZmZlcjo6Y2xhbXBWYWx1ZSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlcjo6QXJyYXlCdWZmZXIpOgorICAgICAgICAo
V1RGOjpBcnJheUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpieXRl
TGVuZ3RoKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXI6OnNsaWNlKToKKyAgICAgICAgKFdU
Rjo6QXJyYXlCdWZmZXI6OnNsaWNlSW1wbCk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpj
bGFtcEluZGV4KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2Nh
dGUpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjp+QXJyYXlCdWZmZXJDb250
ZW50cyk6CisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwLgorICAgICAg
ICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OkFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXVEY6
OkFycmF5QnVmZmVyVmlldzo6fkFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXVEY6OkFycmF5
QnVmZmVyVmlldzo6bmV1dGVyKToKKyAgICAgICAgKiB3dGYvQXJyYXlCdWZmZXJWaWV3Lmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaC4K
KyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3Ojppc0J5dGVBcnJheSk6CisgICAgICAgIChX
VEY6OkFycmF5QnVmZmVyVmlldzo6aXNVbnNpZ25lZEJ5dGVBcnJheSk6CisgICAgICAgIChXVEY6
OkFycmF5QnVmZmVyVmlldzo6aXNTaG9ydEFycmF5KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZm
ZXJWaWV3Ojppc1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVy
Vmlldzo6aXNJbnRBcnJheSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6aXNVbnNp
Z25lZEludEFycmF5KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3Ojppc0Zsb2F0QXJy
YXkpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmlzRG91YmxlQXJyYXkpOgorICAg
ICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgorICAgICAgICAoV1RGOjpB
cnJheUJ1ZmZlclZpZXc6OmJ1ZmZlcik6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6
YmFzZUFkZHJlc3MpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmJ5dGVPZmZzZXQp
OgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OnZlcmlmeVN1YlJhbmdlKToKKyAgICAg
ICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3OjpjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKToKKyAg
ICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3OjpzZXRJbXBsKToKKyAgICAgICAgKFdURjo6QXJy
YXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZp
ZXc6Onplcm9SYW5nZUltcGwpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmNhbGN1
bGF0ZU9mZnNldEFuZExlbmd0aCk6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oLgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OnNl
dCk6CisgICAgICAgIChXVEY6OkZsb2F0MzJBcnJheTo6aXRlbSk6CisgICAgICAgIChXVEY6OkZs
b2F0MzJBcnJheTo6aXNGbG9hdEFycmF5KToKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5Ojpj
cmVhdGUpOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheSk6CisgICAg
ICAgIChXVEY6OkZsb2F0MzJBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9GbG9hdDY0
QXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRB
cnJheS5oLgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6
OkZsb2F0NjRBcnJheTo6aXRlbSk6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6aXNEb3Vi
bGVBcnJheSk6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Y3JlYXRlKToKKyAgICAgICAg
KFdURjo6RmxvYXQ2NEFycmF5OjpGbG9hdDY0QXJyYXkpOgorICAgICAgICAoV1RGOjpGbG9hdDY0
QXJyYXk6OnN1YmFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5jcHAuCisgICAgICAgIChX
VEY6OkludDE2QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6OmlzU2hvcnRB
cnJheSk6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6
OkludDE2QXJyYXk6OkludDE2QXJyYXkpOgorICAgICAgICAoV1RGOjpJbnQxNkFycmF5OjpzdWJh
cnJheSk6CisgICAgICAgICogd3RmL0ludDMyQXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwLgorICAgICAgICAoV1RGOjpJbnQzMkFy
cmF5OjpzZXQpOgorICAgICAgICAoV1RGOjpJbnQzMkFycmF5Ojppc0ludEFycmF5KToKKyAgICAg
ICAgKFdURjo6SW50MzJBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6
SW50MzJBcnJheSk6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OnN1YmFycmF5KToKKyAgICAg
ICAgKiB3dGYvSW50OEFycmF5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9JbnQ4QXJyYXkuY3BwLgorICAgICAgICAoV1RGOjpJbnQ4QXJyYXk6OnNldCk6CisgICAg
ICAgIChXVEY6OkludDhBcnJheTo6aXNCeXRlQXJyYXkpOgorICAgICAgICAoV1RGOjpJbnQ4QXJy
YXk6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OkludDhBcnJheTo6SW50OEFycmF5KToKKyAgICAg
ICAgKFdURjo6SW50OEFycmF5OjpzdWJhcnJheSk6CisgICAgICAgICogd3RmL0ludGVncmFsVHlw
ZWRBcnJheUJhc2UuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dGVncmFsVHlwZWRBcnJheUJhc2UuaC4KKyAgICAgICAgKFdURjo6SW50ZWdyYWxUeXBlZEFycmF5
QmFzZTo6c2V0KToKKyAgICAgICAgKFdURjo6SW50ZWdyYWxUeXBlZEFycmF5QmFzZTo6aXRlbSk6
CisgICAgICAgIChXVEY6OkludGVncmFsVHlwZWRBcnJheUJhc2U6OkludGVncmFsVHlwZWRBcnJh
eUJhc2UpOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5QmFzZS5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaC4KKyAgICAgICAgKFdURjo6
VHlwZWRBcnJheUJhc2U6OmRhdGEpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6c2V0
KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheUJhc2U6OnNldFJhbmdlKToKKyAgICAgICAgKFdU
Rjo6VHlwZWRBcnJheUJhc2U6Onplcm9SYW5nZSk6CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlC
YXNlOjpsZW5ndGgpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6Ynl0ZUxlbmd0aCk6
CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjpUeXBlZEFycmF5QmFzZSk6CisgICAgICAg
IChXVEY6OlR5cGVkQXJyYXlCYXNlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5
QmFzZTo6c3ViYXJyYXlJbXBsKToKKyAgICAgICAgKiB3dGYvVWludDE2QXJyYXkuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcC4KKyAgICAg
ICAgKFdURjo6VWludDE2QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OlVpbnQxNkFycmF5Ojpp
c1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgIChXVEY6OlVpbnQxNkFycmF5OjpjcmVhdGUp
OgorICAgICAgICAoV1RGOjpVaW50MTZBcnJheTo6VWludDE2QXJyYXkpOgorICAgICAgICAoV1RG
OjpVaW50MTZBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwLgor
ICAgICAgICAoV1RGOjpVaW50MzJBcnJheTo6c2V0KToKKyAgICAgICAgKFdURjo6VWludDMyQXJy
YXk6OmlzVW5zaWduZWRJbnRBcnJheSk6CisgICAgICAgIChXVEY6OlVpbnQzMkFycmF5OjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpVaW50MzJBcnJheTo6VWludDMyQXJyYXkpOgorICAgICAgICAo
V1RGOjpVaW50MzJBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmguCisg
ICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6
OmlzVW5zaWduZWRCeXRlQXJyYXkpOgorICAgICAgICAoV1RGOjpVaW50OEFycmF5OjpjcmVhdGUp
OgorICAgICAgICAoV1RGOjpVaW50OEFycmF5OjpVaW50OEFycmF5KToKKyAgICAgICAgKFdURjo6
VWludDhBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEx
LTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5n
ZSBzZXQgMTAxMTg3IGZyb20gYnVnIDczMTU0IHJlbW92ZWQgYWxyZWFkeSBsb3dlciBjYXNlIG9w
dGltaXphdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAyYjQ0NzJhMDY3ZjJhYTVhNzczNjFhYmY4MjhkNjhj
ZGMzNTIxYjUuLjY5MjhhOWQ1NzcxOWI2NWE0ZDUwNzZkYTE3NDc1MzAwMWJhNjFmMGMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4NyBAQAorMjAxMS0xMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgdHlwZWQgYXJyYXkgaW1wbGVtZW50YXRpb25zIGlu
dG8gd3RmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZWQgdGhlIHR5cGVkIGFycmF5IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gV2ViQ29yZSBh
bmQKKyAgICAgICAgYWRkZWQgZm9yd2FyZGluZyBoZWFkZXJzLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0FycmF5QnVmZmVyLmg6
IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0MzJBcnJheS5o
OiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQ2NEFycmF5Lmg6
IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQxNkFycmF5Lmg6IEFk
ZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQzMkFycmF5Lmg6IEFkZGVk
LgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQ4QXJyYXkuaDogQWRkZWQuCisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQxNkFycmF5Lmg6IEFkZGVkLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MzJBcnJheS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVWludDhBcnJheS5oOiBBZGRlZC4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVy
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3RvbS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRmxvYXQ2NEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTVWludDhBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXYXZlU2hh
cGVyTm9kZUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVh
ZGVyKToKKyAgICAgICAgKE5hdGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuaDoKKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50
Lmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKiBmaWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlclN5bmMu
Y3BwOgorICAgICAgICAqIGZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3BwOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQXJyYXlC
dWZmZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9JbnQxNkFycmF5Lmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvSW50
MzJBcnJheS5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDhBcnJheS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMR2V0SW5mby5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisgICAgICAgICogcGFnZS9DcnlwdG8uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRp
by9Bc3luY0F1ZGlvRGVjb2Rlci5jcHA6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAqIHdlYmF1
ZGlvL0F1ZGlvUGFyYW0uaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
aDoKKyAgICAgICAgKiB3ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcDoKKyAgICAgICAg
KiB3ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRpby9XYXZl
U2hhcGVyUHJvY2Vzc29yLmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorCiAyMDExLTExLTI4
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBBc3Bl
Y3QgUmF0aW8gUHJvcGVydHkgSW5oZXJpdGFuY2UgQW5kIE1ha2UgdGhlIENvbXB1dGVkIFZhbHVl
IEVxdWFsIHRoZSBTcGVjaWZpZWQgVmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZDViZGQ4YWI0ZWUxY2MwOWIwMjBkZjIyOTQ2NzFhNmQ1MGY3Mzc4
Yy4uYTM0YzIwMDU5MGQzODQ0Yzc0ZWM4NGMzYjJlNTdlYTNkZTFiZWMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ5NiwxNCArNDk2LDE4IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dyaXRlQmFycmllci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FsaWdubWVudC5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Fsd2F5c0lubGluZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9BcnJheUJ1ZmZlci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5
QnVmZmVyVmlldy5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJW
aWV3LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVNDSUlDVHlwZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0Fzc2VydGlvbnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0Fzc2VydGlvbnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BdG9t
aWNzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVZMVHJlZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0JpdG1hcC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0JpdFZlY3Rvci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0VmVjdG9yLmgg
XAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0bWFwLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQmxvY2tTdGFjay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Js
b29tRmlsdGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQm91bmRzQ2hlY2tlZFBv
aW50ZXIuaCBcCkBAIC01MjAsMzAgKzUyNCwzMCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvRGVjaW1hbE51bWJlci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY29k
ZXIuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZXF1ZS5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0Rpc2FsbG93Q1R5cGUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRv
YS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL2R0b2EvYmlnbnVtLWR0b2EuY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS9iaWdudW0uY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRv
YS9jYWNoZWQtcG93ZXJzLmNjIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZGl5
LWZwLmNjIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZG91YmxlLWNvbnZlcnNp
b24uY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuY2MgXAot
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9maXhlZC1kdG9hLmNjIFwKLQlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL2R0b2Evc3RydG9kLmNjIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL2R0b2EvYmlnbnVtLWR0b2EuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9k
dG9hL2JpZ251bS5jYyBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2JpZ251bS5o
IFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvY2FjaGVkLXBvd2Vycy5jYyBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2NhY2hlZC1wb3dlcnMuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2RpeS1mcC5jYyBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9kdG9hL2RpeS1mcC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2Ev
ZG91YmxlLWNvbnZlcnNpb24uY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9k
b3VibGUtY29udmVyc2lvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZG91
YmxlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuY2MgXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2ZpeGVkLWR0b2EuY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS9maXhlZC1kdG9hLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
ZHRvYS9zdHJ0b2QuY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9zdHJ0b2Qu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL3V0aWxzLmggXAotCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvRGVjb2Rlci5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0RlcXVlLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGlzYWxsb3dDVHlwZS5oIFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBcCi0JU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9kdG9hLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRHluYW1pY0Fubm90YXRpb25z
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EeW5hbWljQW5ub3RhdGlvbnMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9FbmNvZGVyLmggXApAQCAtNTUxLDYgKzU1NSw4
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvRmFzdE1hbGxvYy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxv
Yy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ZpeGVkQXJyYXkuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDMyQXJyYXkuaCBcCisJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9GbG9hdDY0QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3
YXJkLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvR2V0UHRyLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HT3duUHRyLmNwcCBcCkBAIC01NjksNiArNTc1LDEw
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvSGFzaFRyYWl0cy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hleE51bWJlci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0lubGluZUFTTS5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0ludDE2QXJyYXkuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9JbnQzMkFycmF5LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50OEFycmF5Lmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RIYXNoU2V0LmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTGlzdFJlZlB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0xvY2tlci5oIFwKQEAgLTU3OCwxMiArNTg4LDEyIEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWF0aEV4dHJhcy5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01ENS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TUQ1LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWVzc2FnZVF1ZXVlLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01ldGFBbGxvY2F0b3JIYW5kbGUuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
ZXNzYWdlUXVldWUuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob25Db3B5aW5nU29y
dC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vbmNvcHlhYmxlLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTm9uQ29weWluZ1NvcnQuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bGxQ
dHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvci5oIFwKQEAgLTU5
MSwyNCArNjAxLDI0IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Pd25BcnJheVB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkZhc3RN
YWxsb2NQdHIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHJDb21tb24uaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHIuaCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Pd25QdHJDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YWNrZWRJbnRWZWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYWdlQWxsb2Nh
dGlvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VBbGxvY2F0aW9uQWxpZ25l
ZC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVk
LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZVJlc2VydmF0aW9uLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZUJsb2NrLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QYWdlQmxvY2suaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNz
T3duQXJyYXlQdHIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmgg
XAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFzc1JlZlB0ci5oIFwKLQlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1Bhc3NUcmFpdHMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYWdlUmVzZXJ2YXRpb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxl
bEpvYnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNPcGVuTVAuaCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duQXJyYXlQdHIuaCBcCisJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGFzc1JlZlB0ci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bhc3NUcmFpdHMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1Bvc3NpYmx5TnVsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1JhbmRvbU51bWJlci5jcHAgXApAQCAtNjU2LDI2ICs2NjYsMzAgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oIFwKLQlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcCBcCi0JU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCBcCi0J
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9U
aHJlYWRpbmdQcmltaXRpdmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFJlc3Ry
aWN0aW9uVmVyaWZpZXIuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNwZWNpZmlj
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZWRBcnJheUJhc2UuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVW5p
b25GaW5kLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVWludDE2QXJyYXkuaCBcCisJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MzJBcnJheS5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1VpbnQ4QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91
bmljb2RlL0NoYXJhY3Rlck5hbWVzLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5p
Y29kZS9Db2xsYXRvckRlZmF1bHQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3Vu
aWNvZGUvQ29sbGF0b3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL0Nv
bGxhdG9yRGVmYXVsdC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9V
bmljb2RlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9VVEY4LmNwcCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VURjguaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9VbmlvbkZpbmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9VbnVzZWRQYXJhbS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1ZhbHVlQ2hlY2su
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCAwZGFlZWI4MjE2N2Y5MjMyYjIwMTZiMjg5
Y2VjNGE2ZTIwYzI0NjZkLi4zNzE1YWIxMWFiNzY2NTQyZjZhMzRkODM0YjlhYzFkNzgzYjlmNWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTQyMyw2ICs0
MjMsOSBAQCBfX1pOM1dURjEzdHJ5RmFzdE1hbGxvY0VtCiBfX1pOM1dURjE0ZmFzdE1hbGxvY1Np
emVFUEt2CiBfX1pOM1dURjE0bnVtYmVyVG9TdHJpbmdFZFBjCiBfX1pOM1dURjE0dHJ5RmFzdFJl
YWxsb2NFUHZtCitfX1pOM1dURjE1QXJyYXlCdWZmZXJWaWV3Nm5ldXRlckV2CitfX1pOM1dURjE1
QXJyYXlCdWZmZXJWaWV3QzJFTlNfMTBQYXNzUmVmUHRySU5TXzExQXJyYXlCdWZmZXJFRUVqCitf
X1pOM1dURjE1QXJyYXlCdWZmZXJWaWV3RDJFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjR3
YWl0RVJOU181TXV0ZXhFCiBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uNnNpZ25hbEV2CiBfX1pO
M1dURjE1VGhyZWFkQ29uZGl0aW9uOWJyb2FkY2FzdEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagppbmRl
eCBiZTYzZGJkMjE4NzkwYzZkZDhmYzllYzQ2NWY0MDhhMzdjNjhkZDA5Li5mNmNmMDIwMTZlNzcz
NDQxMWQwYzE4NTI1ZjFmMTQ2MzM4YWZlNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKQEAgLTYx
Myw2ICs2MTMsMjIgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQXJyYXlCdWZmZXIuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxBcnJheUJ1ZmZlci5oIgorCQkJPgorCQk8L0ZpbGU+
CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxBcnJheUJ1ZmZlclZpZXcuY3Bw
IgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxB
cnJheUJ1ZmZlclZpZXcuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlx3dGZcQVNDSUlDVHlwZS5oIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03MjksNiAr
NzQ1LDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXEZsb2F0MzJBcnJheS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHd0ZlxGbG9hdDY0QXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8
RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcZHRvYS5jcHAiCiAJCQk+CiAJCTwvRmls
ZT4KQEAgLTgzMyw2ICs4NTcsMTggQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlx3dGZcSW50MTZBcnJheS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxG
aWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxJbnQzMkFycmF5LmgiCisJCQk+CisJCTwv
RmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXEludDhBcnJheS5oIgor
CQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxMaXN0
SGFzaFNldC5oIgogCQkJPgogCQk8L0ZpbGU+CkBAIC0xMTU3LDYgKzExOTMsMTggQEAKIAkJCT4K
IAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcVUludDE2QXJy
YXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3
dGZcVUludDMyQXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlx3dGZcVUludDhBcnJheS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxVbnVzZWRQYXJhbS5oIgogCQkJPgogCQk8L0ZpbGU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIyN2U3MTNhNzkzNDkzYWEyZjU2MWNj
NGIxZTQxYjJlMTc3OGM3MDkuLmJmZDk5NTc5YTRhNTQyMmIxMmY5Y2IzYzhhYTU3NzMxMDQyYWQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTcsNiArNDU3LDIwIEBACiAJ
CUE3Mzg2NTU0MTE4Njk3QjQwMDU0MDI3OSAvKiBTcGVjaWFsaXplZFRodW5rSklULmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM4NjU1MTExODY5N0I0
MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVua0pJVC5oICovOyB9OwogCQlBNzM4NjU1NTExODY5
N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuY3BwICovOyB9OwogCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyogVGh1
bmtHZW5lcmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzM4NjU1MzExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTczQkUxNjgxNDg0
MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0JFMTU0MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1
ZmZlci5jcHAgKi87IH07CisJCUE3M0JFMTY5MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUx
NTUxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTczQkUxNkExNDg0MjA1MjAwOTEyMDRCIC8q
IEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzNCRTE1NjE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmNw
cCAqLzsgfTsKKwkJQTczQkUxNkIxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNTcx
NDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTZEMTQ4NDIwNTIwMDkxMjA0QiAv
KiBGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3M0JFMTU5MTQ4NDIwNTIwMDkxMjA0QiAvKiBGbG9hdDMyQXJyYXkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE2RjE0ODQy
MDUyMDA5MTIwNEIgLyogRmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE1QjE0ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQ2NEFy
cmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QTczQkUxNzExNDg0MjA1MjAwOTEyMDRCIC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNUQxNDg0MjA1MjAwOTEyMDRCIC8q
IEludDhBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUE3M0JFMTczMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQxNkFycmF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE1RjE0ODQyMDUyMDA5
MTIwNEIgLyogSW50MTZBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUE3M0JFMTc1MTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQzMkFycmF5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE2MTE0
ODQyMDUyMDA5MTIwNEIgLyogSW50MzJBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTc3MTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50
OEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzNCRTE2MzE0ODQyMDUyMDA5MTIwNEIgLyogVWludDhBcnJheS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTc5MTQ4NDIwNTIwMDkxMjA0
QiAvKiBVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTczQkUxNjUxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQxNkFycmF5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTczQkUxN0IxNDg0
MjA1MjAwOTEyMDRCIC8qIFVpbnQzMkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE2NzE0ODQyMDUyMDA5MTIwNEIgLyogVWludDMyQXJy
YXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
NzNCRTE3RTE0ODQyMDg0MDA5MTIwNEIgLyogVHlwZWRBcnJheUJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0JFMTdEMTQ4NDIwODQwMDkxMjA0
QiAvKiBUeXBlZEFycmF5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUE3M0JFMTgwMTQ4NDIwQTgwMDkxMjA0QiAvKiBJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzNCRTE3RjE0ODQyMEE4MDA5MTIwNEIgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NDgyQjkz
MTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkI3OTExNjZDREVBMDAz
QjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NDgyQjk0MTE2NzExNDcwMDNCMDcxMiAv
KiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDgyQjdBMTE2NkNERUEwMDNCMDcxMiAvKiBKU1dlYWtP
YmplY3RNYXBSZWZQcml2YXRlLmNwcCAqLzsgfTsKIAkJQTc0ODJFOTMxMTZBN0NBRDAwM0IwNzEy
IC8qIEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkUzNzExNkE2OTdCMDAzQjA3MTIgLyogSlNXZWFr
T2JqZWN0TWFwUmVmSW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTI2NSw2ICsxMjc5LDIwIEBACiAJCUE3Mzg2NTUxMTE4Njk3QjQw
MDU0MDI3OSAvKiBTcGVjaWFsaXplZFRodW5rSklULmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWNpYWxpemVkVGh1bmtKSVQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTczODY1NTIxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHVua0dlbmVyYXRvcnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzM4NjU1MzExODY5N0I0MDA1NDAyNzkgLyog
VGh1bmtHZW5lcmF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5r
R2VuZXJhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE1NDE0ODQy
MDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXJyYXlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNzNCRTE1NTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTczQkUxNTYxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcnJheUJ1ZmZlclZpZXcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE1NzE0ODQyMDUyMDA5MTIwNEIg
LyogQXJyYXlCdWZmZXJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFy
cmF5QnVmZmVyVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE1OTE0
ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQzMkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZsb2F0MzJBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
NzNCRTE1QjE0ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQ2NEFycmF5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0NjRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzNCRTE1RDE0ODQyMDUyMDA5MTIwNEIgLyogSW50OEFycmF5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDhBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBNzNCRTE1RjE0ODQyMDUyMDA5MTIwNEIgLyogSW50MTZBcnJheS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnQxNkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3M0JFMTYxMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQzMkFycmF5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDMyQXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNjMxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQ4QXJy
YXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVWludDhBcnJheS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE2NTE0ODQyMDUyMDA5MTIwNEIgLyogVWlu
dDE2QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVWludDE2QXJyYXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNjcxNDg0MjA1MjAwOTEyMDRC
IC8qIFVpbnQzMkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVpbnQz
MkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3M0JFMTdEMTQ4NDIwODQw
MDkxMjA0QiAvKiBUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNC
RTE3RjE0ODQyMEE4MDA5MTIwNEIgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NDgyQjc5MTE2NkNERUEwMDNCMDcxMiAvKiBKU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc0ODJCN0ExMTY2Q0RFQTAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWFrT2JqZWN0TWFw
UmVmUHJpdmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NDgyRTM3MTE2
QTY5N0IwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MiwyMSArMTg5MCwyMCBAQAogCQk2NTE2MkVG
MTA4RTZBMjFDMDA3NTU2Q0QgLyogd3RmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQlDMjJDNTI0ODEzRkFGNkVGMDBCN0RDMEQgLyogZHRvYSAqLywKLQkJ
CQkwNkQzNThBMDBEQUFEOUM0MDAzQjE3NEUgLyogbWFjICovLAotCQkJCTg2NTY1NzNFMTE1QkUz
NTIwMDI5MUY0MCAvKiB0ZXh0ICovLAotCQkJCTFBMDgyNzc2MTQyMTY4RDYwMDkwQ0NBQyAvKiB0
aHJlYWRzICovLAotCQkJCUUxOTU2NzhEMDlFN0NGMTIwMEI4OUQxMyAvKiB1bmljb2RlICovLAog
CQkJCUExRDc2NDUxMTM1NDQ0OEIwMEM1QzdDMCAvKiBBbGlnbm1lbnQuaCAqLywKIAkJCQk5M0FB
NEY3NzA5NTcyNTFGMDA4NEIzQTcgLyogQWx3YXlzSW5saW5lLmggKi8sCisJCQkJQTczQkUxNTQx
NDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmNwcCAqLywKKwkJCQlBNzNCRTE1NTE0ODQy
MDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuaCAqLywKKwkJCQlBNzNCRTE1NjE0ODQyMDUyMDA5
MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCAqLywKKwkJCQlBNzNCRTE1NzE0ODQyMDUyMDA5
MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJOTM4QzRGNjkwQ0EwNkJDNzAwRDkz
MTBBIC8qIEFTQ0lJQ1R5cGUuaCAqLywKIAkJCQk2NUUyMTdCODA4RTdFRUNDMDAyM0U1RjYgLyog
QXNzZXJ0aW9ucy5jcHAgKi8sCiAJCQkJNjVFMjE3QjcwOEU3RUVDQzAwMjNFNUY2IC8qIEFzc2Vy
dGlvbnMuaCAqLywKIAkJCQlCQzVGN0JCQjExODIzQjU5MDA1MkMwMkMgLyogQXRvbWljcy5oICov
LAogCQkJCUUxQTU5NjM3MERFM0UxQzMwMEMxN0UzNyAvKiBBVkxUcmVlLmggKi8sCisJCQkJREQz
NzdDQkIxMjA3MkMxODAwNkEyNTE3IC8qIEJpdG1hcC5oICovLAogCQkJCTBGMTZENzI0MTQyQzM5
QTIwMENGNzg0QSAvKiBCaXRWZWN0b3IuY3BwICovLAogCQkJCTBGRDgyRjQ5MTQyODA2OTIwMDE3
OUM5NCAvKiBCaXRWZWN0b3IuaCAqLywKLQkJCQlERDM3N0NCQjEyMDcyQzE4MDA2QTI1MTcgLyog
Qml0bWFwLmggKi8sCiAJCQkJQTdDNDBDMDcxMzBCMDU3RDAwRDAwMkExIC8qIEJsb2NrU3RhY2su
aCAqLywKIAkJCQlFNEQ4Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCAqLywK
IAkJCQkwRkQ4MkU4MjE0MUYzRkM5MDAxNzlDOTQgLyogQm91bmRzQ2hlY2tlZFBvaW50ZXIuaCAq
LywKQEAgLTE4OTgsNiArMTkyNSw3IEBACiAJCQkJNTE4NjExMUQwQ0M4MjQ4MzAwODE0MTJCIC8q
IERlcXVlLmggKi8sCiAJCQkJOTM4QzRGNkIwQ0EwNkJDRTAwRDkzMTBBIC8qIERpc2FsbG93Q1R5
cGUuaCAqLywKIAkJCQkxNDQ1NkEzMTEzMTQ2NTc4MDAyMTJDQTMgLyogRG91Ymx5TGlua2VkTGlz
dC5oICovLAorCQkJCUMyMkM1MjQ4MTNGQUY2RUYwMEI3REMwRCAvKiBkdG9hICovLAogCQkJCTY1
MUY2NDEyMDM5RDVCNUYwMDc4Mzk1QyAvKiBkdG9hLmNwcCAqLywKIAkJCQk2NTFGNjQxMzAzOUQ1
QjVGMDA3ODM5NUMgLyogZHRvYS5oICovLAogCQkJCUQ3NUFGNTk1MTJGOENCOTUwMEZDMEFERiAv
KiBEeW5hbWljQW5ub3RhdGlvbnMuY3BwICovLApAQCAtMTkwNyw2ICsxOTM1LDggQEAKIAkJCQk2
NUUyMTdCOTA4RTdFRUNDMDAyM0U1RjYgLyogRmFzdE1hbGxvYy5jcHAgKi8sCiAJCQkJNjVFMjE3
QkEwOEU3RUVDQzAwMjNFNUY2IC8qIEZhc3RNYWxsb2MuaCAqLywKIAkJCQlBN0YxOUVDRDExREQ0
OTA5MDA5MzFFNzAgLyogRml4ZWRBcnJheS5oICovLAorCQkJCUE3M0JFMTU5MTQ4NDIwNTIwMDkx
MjA0QiAvKiBGbG9hdDMyQXJyYXkuaCAqLywKKwkJCQlBNzNCRTE1QjE0ODQyMDUyMDA5MTIwNEIg
LyogRmxvYXQ2NEFycmF5LmggKi8sCiAJCQkJOTM1QUY0NjkwOUU5RDlEQjAwQUNEMUQ4IC8qIEZv
cndhcmQuaCAqLywKIAkJCQk5M0I2QTBERTBBQTY0REE0MDA3NkRFMjcgLyogR2V0UHRyLmggKi8s
CiAJCQkJNjU3RUVCQkYwOTRFNDQ1RTAwOEM5QzdCIC8qIEhhc2hDb3VudGVkU2V0LmggKi8sCkBA
IC0xOTE5LDkgKzE5NDksMTQgQEAKIAkJCQk2NURGQzkyRjA4RUExNzNBMDBGNzMwMEIgLyogSGFz
aFRyYWl0cy5oICovLAogCQkJCTcxODZBNkU4MTMxMDBCNTcwMDQ0NzlFMSAvKiBIZXhOdW1iZXIu
aCAqLywKIAkJCQk4Njk5QUE2MDE0NkEwRTJCMDBFMjNBNzMgLyogSW5saW5lQVNNLmggKi8sCisJ
CQkJQTczQkUxNUYxNDg0MjA1MjAwOTEyMDRCIC8qIEludDE2QXJyYXkuaCAqLywKKwkJCQlBNzNC
RTE2MTE0ODQyMDUyMDA5MTIwNEIgLyogSW50MzJBcnJheS5oICovLAorCQkJCUE3M0JFMTVEMTQ4
NDIwNTIwMDkxMjA0QiAvKiBJbnQ4QXJyYXkuaCAqLywKKwkJCQlBNzNCRTE3RjE0ODQyMEE4MDA5
MTIwNEIgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovLAogCQkJCTY1N0VCNzQ1MEI3MDhG
NTQwMDYzNDYxQiAvKiBMaXN0SGFzaFNldC5oICovLAogCQkJCTE0OEExNjI2MDk1RDE2QkIwMDY2
NkQwRCAvKiBMaXN0UmVmUHRyLmggKi8sCiAJCQkJRTFFRTc5MjcwRDZDOTY0NTAwRkVBM0JBIC8q
IExvY2tlci5oICovLAorCQkJCTA2RDM1OEEwMERBQUQ5QzQwMDNCMTc0RSAvKiBtYWMgKi8sCiAJ
CQkJMDZEMzU4QTIwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuY3BwICovLAogCQkJCTA2
RDM1OEEzMERBQUQ5QzQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmggKi8sCiAJCQkJNURCRDE4QUYw
QzU0MDFBNzAwQzE1RUFFIC8qIE1hbGxvY1pvbmVTdXBwb3J0LmggKi8sCkBAIC0xOTkxLDYgKzIw
MjYsNyBAQAogCQkJCTY1NDFCRDZGMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1NwaW5Mb2NrLmggKi8s
CiAJCQkJNjU0MUJENzAwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3lzdGVtQWxsb2MuY3BwICovLAog
CQkJCTY1NDFCRDcxMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1N5c3RlbUFsbG9jLmggKi8sCisJCQkJ
ODY1NjU3M0UxMTVCRTM1MjAwMjkxRjQwIC8qIHRleHQgKi8sCiAJCQkJMThCQUI1MjcxMERBREZD
RDAwMEQ5NDVCIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwICovLAogCQkJCTE4
QkFCNTI4MTBEQURGQ0QwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmgg
Ki8sCiAJCQkJNUQ2QTU2NkEwRjA1OTk1NTAwMjY2MTQ1IC8qIFRocmVhZGluZy5jcHAgKi8sCkBA
IC0xOTk4LDEwICsyMDM0LDE2IEBACiAJCQkJQkM1RjdCQkMxMTgyM0I1OTAwNTJDMDJDIC8qIFRo
cmVhZGluZ1ByaW1pdGl2ZXMuaCAqLywKIAkJCQlFMUVFNzkzQzBENkM5QjkyMDBGRUEzQkEgLyog
VGhyZWFkaW5nUHRocmVhZHMuY3BwICovLAogCQkJCTBCQUM5NDlFMTMzODcyODQwMENGMTM1QiAv
KiBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggKi8sCisJCQkJMUEwODI3NzYxNDIxNjhENjAw
OTBDQ0FDIC8qIHRocmVhZHMgKi8sCiAJCQkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRo
cmVhZFNhZmVSZWZDb3VudGVkLmggKi8sCiAJCQkJRTFCN0M4QkQwREEzQTMzNjAwNzRCMERDIC8q
IFRocmVhZFNwZWNpZmljLmggKi8sCisJCQkJQTczQkUxN0QxNDg0MjA4NDAwOTEyMDRCIC8qIFR5
cGVkQXJyYXlCYXNlLmggKi8sCiAJCQkJMEIzMzBDMjYwRjM4QzYyMzAwNjkyREUzIC8qIFR5cGVU
cmFpdHMuY3BwICovLAogCQkJCTBCNEQ3RTYyMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBlVHJhaXRz
LmggKi8sCisJCQkJQTczQkUxNjUxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQxNkFycmF5LmggKi8s
CisJCQkJQTczQkUxNjcxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQzMkFycmF5LmggKi8sCisJCQkJ
QTczQkUxNjMxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQ4QXJyYXkuaCAqLywKKwkJCQlFMTk1Njc4
RDA5RTdDRjEyMDBCODlEMTMgLyogdW5pY29kZSAqLywKIAkJCQkwRkQ1MkFBQzE0MzAzNTlEMDAy
NkRDOUYgLyogVW5pb25GaW5kLmggKi8sCiAJCQkJOTM1QUY0NkIwOUU5RDlEQjAwQUNEMUQ4IC8q
IFVudXNlZFBhcmFtLmggKi8sCiAJCQkJRTE3RkY3NzAxMTIxMzFEMjAwMDc2QTE5IC8qIFZhbHVl
Q2hlY2suaCAqLywKQEAgLTI5MjMsNiArMjk2NSwxOCBAQAogCQkJCTBGNUYwOENGMTQ2Qzc2MzMw
MDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
Nzg4MDE0MTE0NzFBRDkyMDA0MUIwMTYgLyogSlNEYXRlTWF0aC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQzU1NkYxNDczOEYzMTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE3M0JFMTY5MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTczQkUxNkIxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmll
dy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNkQxNDg0MjA1MjAwOTEyMDRCIC8qIEZsb2F0
MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNkYxNDg0MjA1MjAwOTEyMDRCIC8q
IEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNzExNDg0MjA1MjAwOTEy
MDRCIC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNzMxNDg0MjA1MjAw
OTEyMDRCIC8qIEludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTc1MTQ4NDIw
NTIwMDkxMjA0QiAvKiBJbnQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzNCRTE3NzE0
ODQyMDUyMDA5MTIwNEIgLyogVWludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUx
NzkxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NzNCRTE3QjE0ODQyMDUyMDA5MTIwNEIgLyogVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAor
CQkJCUE3M0JFMTdFMTQ4NDIwODQwMDkxMjA0QiAvKiBUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTczQkUxODAxNDg0MjBBODAwOTEyMDRCIC8qIEludGVncmFsVHlwZWRBcnJh
eUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzQ1OCw2ICszNTEyLDggQEAKIAkJCQkwRkMwOTdB
MTE0NkIyOENBMDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
ODgwMTQwMTQ3MUFEOTIwMDQxQjAxNiAvKiBKU0RhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMkM1NTcwMTQ3MzhGMzUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBNzNCRTE2QTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZm
ZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9BcnJheUJ1ZmZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5
QnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWJlNzRmNGIwZDA2MmNiMjAxODNhNzA4MGI1Y2Q0YTk4
MzJhZTkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJh
eUJ1ZmZlci5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgorCisjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3
LmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV1RGIHsKKworYm9vbCBBcnJheUJ1ZmZlcjo6dHJhbnNmZXIoQXJyYXlCdWZm
ZXJDb250ZW50cyYgcmVzdWx0LCBWZWN0b3I8QXJyYXlCdWZmZXJWaWV3Kj4mIG5ldXRlcmVkVmll
d3MpCit7CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBrZWVwQWxpdmUodGhpcyk7CisKKyAgICBp
ZiAoIW1fY29udGVudHMubV9kYXRhKSB7CisgICAgICAgIHJlc3VsdC5tX2RhdGEgPSAwOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbV9jb250ZW50cy50cmFuc2ZlcihyZXN1
bHQpOworCisgICAgd2hpbGUgKG1fZmlyc3RWaWV3KSB7CisgICAgICAgIEFycmF5QnVmZmVyVmll
dyogY3VycmVudCA9IG1fZmlyc3RWaWV3OworICAgICAgICByZW1vdmVWaWV3KGN1cnJlbnQpOwor
ICAgICAgICBjdXJyZW50LT5uZXV0ZXIoKTsKKyAgICAgICAgbmV1dGVyZWRWaWV3cy5hcHBlbmQo
Y3VycmVudCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFycmF5QnVmZmVy
OjphZGRWaWV3KEFycmF5QnVmZmVyVmlldyogdmlldykKK3sKKyAgICB2aWV3LT5tX2J1ZmZlciA9
IHRoaXM7CisgICAgdmlldy0+bV9wcmV2VmlldyA9IDA7CisgICAgdmlldy0+bV9uZXh0VmlldyA9
IG1fZmlyc3RWaWV3OworICAgIGlmIChtX2ZpcnN0VmlldykKKyAgICAgICAgbV9maXJzdFZpZXct
Pm1fcHJldlZpZXcgPSB2aWV3OworICAgIG1fZmlyc3RWaWV3ID0gdmlldzsKK30KKwordm9pZCBB
cnJheUJ1ZmZlcjo6cmVtb3ZlVmlldyhBcnJheUJ1ZmZlclZpZXcqIHZpZXcpCit7CisgICAgQVNT
RVJUKHRoaXMgPT0gdmlldy0+bV9idWZmZXIpOworICAgIGlmICh2aWV3LT5tX25leHRWaWV3KQor
ICAgICAgICB2aWV3LT5tX25leHRWaWV3LT5tX3ByZXZWaWV3ID0gdmlldy0+bV9wcmV2VmlldzsK
KyAgICBpZiAodmlldy0+bV9wcmV2VmlldykKKyAgICAgICAgdmlldy0+bV9wcmV2Vmlldy0+bV9u
ZXh0VmlldyA9IHZpZXctPm1fbmV4dFZpZXc7CisgICAgaWYgKG1fZmlyc3RWaWV3ID09IHZpZXcp
CisgICAgICAgIG1fZmlyc3RWaWV3ID0gdmlldy0+bV9uZXh0VmlldzsKKyAgICB2aWV3LT5tX3By
ZXZWaWV3ID0gdmlldy0+bV9uZXh0VmlldyA9IDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvQXJyYXlCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTk2YWE4NmY0NTI5ZTVmMjFjNGM5MGYz
YjgwOWQ0NThkY2FjNDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9BcnJheUJ1ZmZlci5oCkBAIC0wLDAgKzEsMjE5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBB
cnJheUJ1ZmZlcl9oCisjZGVmaW5lIEFycmF5QnVmZmVyX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2Ns
YXNzIEFycmF5QnVmZmVyOworY2xhc3MgQXJyYXlCdWZmZXJWaWV3OworCitjbGFzcyBBcnJheUJ1
ZmZlckNvbnRlbnRzIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRl
bnRzKTsKK3B1YmxpYzoKKyAgICBBcnJheUJ1ZmZlckNvbnRlbnRzKCkgCisgICAgICAgIDogbV9k
YXRhKDApCisgICAgICAgICwgbV9zaXplSW5CeXRlcygwKQorICAgIHsgfQorCisgICAgaW5saW5l
IH5BcnJheUJ1ZmZlckNvbnRlbnRzKCk7CisKKyAgICB2b2lkKiBkYXRhKCkgeyByZXR1cm4gbV9k
YXRhOyB9CisgICAgdW5zaWduZWQgc2l6ZUluQnl0ZXMoKSB7IHJldHVybiBtX3NpemVJbkJ5dGVz
OyB9CisKK3ByaXZhdGU6CisgICAgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNp
Z25lZCBzaXplSW5CeXRlcykgCisgICAgICAgIDogbV9kYXRhKGRhdGEpCisgICAgICAgICwgbV9z
aXplSW5CeXRlcyhzaXplSW5CeXRlcykKKyAgICB7IH0KKworICAgIGZyaWVuZCBjbGFzcyBBcnJh
eUJ1ZmZlcjsKKworICAgIHN0YXRpYyBpbmxpbmUgdm9pZCB0cnlBbGxvY2F0ZSh1bnNpZ25lZCBu
dW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1ZmZlckNvbnRlbnRz
Jik7CisgICAgdm9pZCB0cmFuc2ZlcihBcnJheUJ1ZmZlckNvbnRlbnRzJiBvdGhlcikgCisgICAg
eworICAgICAgICBBU1NFUlQoIW90aGVyLm1fZGF0YSk7CisgICAgICAgIG90aGVyLm1fZGF0YSA9
IG1fZGF0YTsKKyAgICAgICAgb3RoZXIubV9zaXplSW5CeXRlcyA9IG1fc2l6ZUluQnl0ZXM7Cisg
ICAgICAgIG1fZGF0YSA9IDA7IAorICAgICAgICBtX3NpemVJbkJ5dGVzID0gMDsgCisgICAgfQor
CisgICAgdm9pZCogbV9kYXRhOworICAgIHVuc2lnbmVkIG1fc2l6ZUluQnl0ZXM7Cit9OworCitj
bGFzcyBBcnJheUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5QnVmZmVyPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUodW5z
aWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSk7CisgICAgc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUoQXJyYXlCdWZmZXIqKTsKKyAg
ICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShjb25zdCB2b2lk
KiBzb3VyY2UsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKEFycmF5QnVmZmVyQ29udGVudHMmKTsKKworICAgIGlu
bGluZSB2b2lkKiBkYXRhKCk7CisgICAgaW5saW5lIGNvbnN0IHZvaWQqIGRhdGEoKSBjb25zdDsK
KyAgICBpbmxpbmUgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0OworCisgICAgaW5saW5lIFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlKGludCBiZWdpbiwgaW50IGVuZCkgY29uc3Q7Cisg
ICAgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlKGludCBiZWdpbikgY29uc3Q7
CisKKyAgICB2b2lkIGFkZFZpZXcoQXJyYXlCdWZmZXJWaWV3Kik7CisgICAgdm9pZCByZW1vdmVW
aWV3KEFycmF5QnVmZmVyVmlldyopOworCisgICAgYm9vbCB0cmFuc2ZlcihBcnJheUJ1ZmZlckNv
bnRlbnRzJiwgVmVjdG9yPEFycmF5QnVmZmVyVmlldyo+JiBuZXV0ZXJlZFZpZXdzKTsKKworICAg
IH5BcnJheUJ1ZmZlcigpIHsgfQorCitwcml2YXRlOgorICAgIGlubGluZSBBcnJheUJ1ZmZlcihB
cnJheUJ1ZmZlckNvbnRlbnRzJik7CisgICAgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IHNsaWNlSW1wbCh1bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kKSBjb25zdDsKKyAgICBpbmxp
bmUgdW5zaWduZWQgY2xhbXBJbmRleChpbnQgaW5kZXgpIGNvbnN0OworICAgIHN0YXRpYyBpbmxp
bmUgaW50IGNsYW1wVmFsdWUoaW50IHgsIGludCBsZWZ0LCBpbnQgcmlnaHQpOworCisgICAgQXJy
YXlCdWZmZXJDb250ZW50cyBtX2NvbnRlbnRzOworICAgIEFycmF5QnVmZmVyVmlldyogbV9maXJz
dFZpZXc7Cit9OworCitpbnQgQXJyYXlCdWZmZXI6OmNsYW1wVmFsdWUoaW50IHgsIGludCBsZWZ0
LCBpbnQgcmlnaHQpCit7CisgICAgQVNTRVJUKGxlZnQgPD0gcmlnaHQpOworICAgIGlmICh4IDwg
bGVmdCkKKyAgICAgICAgeCA9IGxlZnQ7CisgICAgaWYgKHJpZ2h0IDwgeCkKKyAgICAgICAgeCA9
IHJpZ2h0OworICAgIHJldHVybiB4OworfQorCitQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJh
eUJ1ZmZlcjo6Y3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0
ZVNpemUpCit7CisgICAgQXJyYXlCdWZmZXJDb250ZW50cyBjb250ZW50czsKKyAgICBBcnJheUJ1
ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZShudW1FbGVtZW50cywgZWxlbWVudEJ5dGVTaXplLCBj
b250ZW50cyk7CisgICAgaWYgKCFjb250ZW50cy5tX2RhdGEpCisgICAgICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXlCdWZmZXIoY29udGVudHMpKTsKK30KKworUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlciogb3Ro
ZXIpCit7CisgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUob3RoZXItPmRhdGEoKSwgb3Ro
ZXItPmJ5dGVMZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVm
ZmVyOjpjcmVhdGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKQorewor
ICAgIEFycmF5QnVmZmVyQ29udGVudHMgY29udGVudHM7CisgICAgQXJyYXlCdWZmZXJDb250ZW50
czo6dHJ5QWxsb2NhdGUoYnl0ZUxlbmd0aCwgMSwgY29udGVudHMpOworICAgIGlmICghY29udGVu
dHMubV9kYXRhKQorICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciA9IGFkb3B0UmVmKG5ldyBBcnJheUJ1ZmZlcihjb250ZW50cykpOworICAgIG1lbWNweShi
dWZmZXItPmRhdGEoKSwgc291cmNlLCBieXRlTGVuZ3RoKTsKKyAgICByZXR1cm4gYnVmZmVyLnJl
bGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0
ZShBcnJheUJ1ZmZlckNvbnRlbnRzJiBjb250ZW50cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEFycmF5QnVmZmVyKGNvbnRlbnRzKSk7Cit9CisKK0FycmF5QnVmZmVyOjpBcnJheUJ1ZmZl
cihBcnJheUJ1ZmZlckNvbnRlbnRzJiBjb250ZW50cykKKyAgICA6IG1fZmlyc3RWaWV3KDApCit7
CisgICAgY29udGVudHMudHJhbnNmZXIobV9jb250ZW50cyk7Cit9CisKK3ZvaWQqIEFycmF5QnVm
ZmVyOjpkYXRhKCkKK3sKKyAgICByZXR1cm4gbV9jb250ZW50cy5tX2RhdGE7Cit9CisKK2NvbnN0
IHZvaWQqIEFycmF5QnVmZmVyOjpkYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZW50
cy5tX2RhdGE7Cit9CisKK3Vuc2lnbmVkIEFycmF5QnVmZmVyOjpieXRlTGVuZ3RoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9jb250ZW50cy5tX3NpemVJbkJ5dGVzOworfQorCitQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6c2xpY2UoaW50IGJlZ2luLCBpbnQgZW5kKSBjb25z
dAoreworICAgIHJldHVybiBzbGljZUltcGwoY2xhbXBJbmRleChiZWdpbiksIGNsYW1wSW5kZXgo
ZW5kKSk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpzbGljZShp
bnQgYmVnaW4pIGNvbnN0Cit7CisgICAgcmV0dXJuIHNsaWNlSW1wbChjbGFtcEluZGV4KGJlZ2lu
KSwgYnl0ZUxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZm
ZXI6OnNsaWNlSW1wbCh1bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kKSBjb25zdAoreworICAg
IHVuc2lnbmVkIHNpemUgPSBiZWdpbiA8PSBlbmQgPyBlbmQgLSBiZWdpbiA6IDA7CisgICAgcmV0
dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEoKSkg
KyBiZWdpbiwgc2l6ZSk7Cit9CisKK3Vuc2lnbmVkIEFycmF5QnVmZmVyOjpjbGFtcEluZGV4KGlu
dCBpbmRleCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBjdXJyZW50TGVuZ3RoID0gYnl0ZUxlbmd0
aCgpOworICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIGluZGV4ID0gY3VycmVudExlbmd0aCAr
IGluZGV4OworICAgIHJldHVybiBjbGFtcFZhbHVlKGluZGV4LCAwLCBjdXJyZW50TGVuZ3RoKTsK
K30KKwordm9pZCBBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZSh1bnNpZ25lZCBudW1F
bGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1ZmZlckNvbnRlbnRzJiBy
ZXN1bHQpCit7CisgICAgLy8gRG8gbm90IGFsbG93IDMyLWJpdCBvdmVyZmxvdyBvZiB0aGUgdG90
YWwgc2l6ZS4KKyAgICAvLyBGSVhNRTogV2h5IG5vdD8gVGhlIHRyeUZhc3RDYWxsb2MgZnVuY3Rp
b24gYWxyZWFkeSBjaGVja3MgaXRzIGFyZ3VtZW50cywKKyAgICAvLyBhbmQgd2lsbCBmYWlsIGlm
IHRoZXJlIGlzIGFueSBvdmVyZmxvdywgc28gd2h5IHNob3VsZCB3ZSBpbmNsdWRlIGEKKyAgICAv
LyByZWR1ZGFudCB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlIGNoZWNrIGhlcmU/CisgICAgaWYg
KG51bUVsZW1lbnRzKSB7CisgICAgICAgIHVuc2lnbmVkIHRvdGFsU2l6ZSA9IG51bUVsZW1lbnRz
ICogZWxlbWVudEJ5dGVTaXplOworICAgICAgICBpZiAodG90YWxTaXplIC8gbnVtRWxlbWVudHMg
IT0gZWxlbWVudEJ5dGVTaXplKSB7CisgICAgICAgICAgICByZXN1bHQubV9kYXRhID0gMDsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoV1RGOjp0cnlGYXN0
Q2FsbG9jKG51bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUpLmdldFZhbHVlKHJlc3VsdC5tX2Rh
dGEpKSB7CisgICAgICAgIHJlc3VsdC5tX3NpemVJbkJ5dGVzID0gbnVtRWxlbWVudHMgKiBlbGVt
ZW50Qnl0ZVNpemU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmVzdWx0Lm1fZGF0YSA9
IDA7Cit9CisKK0FycmF5QnVmZmVyQ29udGVudHM6On5BcnJheUJ1ZmZlckNvbnRlbnRzKCkKK3sK
KyAgICBXVEY6OmZhc3RGcmVlKG1fZGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1
c2luZyBXVEY6OkFycmF5QnVmZmVyOworCisjZW5kaWYgLy8gQXJyYXlCdWZmZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZpZXcuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZpZXcuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
ZGJkY2Y4YzY1YWY2ZGU5Yzg2NTMxNjY0Y2E2MTViOWI5Mzc4MDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyVmlldy5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcnJheUJ1
ZmZlclZpZXcuaCIKKworI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisKK25hbWVzcGFjZSBXVEYg
eworCitBcnJheUJ1ZmZlclZpZXc6OkFycmF5QnVmZmVyVmlldyhQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQp
CisgICAgICAgIDogbV9ieXRlT2Zmc2V0KGJ5dGVPZmZzZXQpCisgICAgICAgICwgbV9idWZmZXIo
YnVmZmVyKQoreworICAgIG1fYmFzZUFkZHJlc3MgPSBtX2J1ZmZlciA/IChzdGF0aWNfY2FzdDxj
aGFyKj4obV9idWZmZXItPmRhdGEoKSkgKyBtX2J5dGVPZmZzZXQpIDogMDsKKyAgICBpZiAobV9i
dWZmZXIpIAorICAgICAgICBtX2J1ZmZlci0+YWRkVmlldyh0aGlzKTsKK30KKworQXJyYXlCdWZm
ZXJWaWV3Ojp+QXJyYXlCdWZmZXJWaWV3KCkKK3sKKyAgICBpZiAobV9idWZmZXIpCisgICAgICAg
IG1fYnVmZmVyLT5yZW1vdmVWaWV3KHRoaXMpOworfQorCit2b2lkIEFycmF5QnVmZmVyVmlldzo6
bmV1dGVyKCkKK3sKKyAgICBtX2J1ZmZlciA9IDA7CisgICAgbV9ieXRlT2Zmc2V0ID0gMDsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZp
ZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJWaWV3LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2NiN2ZkMzQ4OTlhNWNlY2FhYzEwNTA1OTE4MWQ2OTMxMTkyZDRjZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJWaWV3LmgKQEAg
LTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFycmF5QnVmZmVyVmlld19oCisjZGVm
aW5lIEFycmF5QnVmZmVyVmlld19oCisKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgorCisjaW5j
bHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJs
aWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+IHsKKyAgcHVibGljOgorICAgIHZpcnR1YWwg
Ym9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Nob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKKyAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fYnVmZmVyOworICAgIH0KKworICAgIHZvaWQqIGJhc2VBZGRyZXNz
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Jhc2VBZGRyZXNzOworICAgIH0KKwor
ICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
Ynl0ZU9mZnNldDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBj
b25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIH5BcnJheUJ1ZmZlclZpZXcoKTsKKworICBwcm90ZWN0
ZWQ6CisgICAgQXJyYXlCdWZmZXJWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25l
ZCBieXRlT2Zmc2V0KTsKKworICAgIGlubGluZSBib29sIHNldEltcGwoQXJyYXlCdWZmZXJWaWV3
KiwgdW5zaWduZWQgYnl0ZU9mZnNldCk7CisKKyAgICBpbmxpbmUgYm9vbCBzZXRSYW5nZUltcGwo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNpZ25lZCBieXRlT2Zm
c2V0KTsKKworICAgIGlubGluZSBib29sIHplcm9SYW5nZUltcGwodW5zaWduZWQgYnl0ZU9mZnNl
dCwgc2l6ZV90IHJhbmdlQnl0ZUxlbmd0aCk7CisKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgY2Fs
Y3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYXlT
aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCog
b2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKTsKKworICAgIC8vIEhlbHBlciB0byB2ZXJpZnkgdGhh
dCBhIGdpdmVuIHN1Yi1yYW5nZSBvZiBhbiBBcnJheUJ1ZmZlciBpcworICAgIC8vIHdpdGhpbiBy
YW5nZS4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBzdGF0aWMgYm9vbCB2ZXJpZnlT
dWJSYW5nZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBudW1FbGVtZW50cykKKyAgICB7CisgICAgICAgIGlmICghYnVm
ZmVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoc2l6ZW9mKFQpID4g
MSAmJiBieXRlT2Zmc2V0ICUgc2l6ZW9mKFQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB1bnNpZ25lZCByZW1haW5pbmdFbGVtZW50cyA9IChi
dWZmZXItPmJ5dGVMZW5ndGgoKSAtIGJ5dGVPZmZzZXQpIC8gc2l6ZW9mKFQpOworICAgICAgICBp
ZiAobnVtRWxlbWVudHMgPiByZW1haW5pbmdFbGVtZW50cykKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gSW5wdXQgb2Zmc2V0
IGlzIGluIG51bWJlciBvZiBlbGVtZW50cyBmcm9tIHRoaXMgYXJyYXkncyB2aWV3OworICAgIC8v
IG91dHB1dCBvZmZzZXQgaXMgaW4gbnVtYmVyIG9mIGJ5dGVzIGZyb20gdGhlIHVuZGVybHlpbmcg
YnVmZmVyJ3Mgdmlldy4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBzdGF0aWMgdm9p
ZCBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFy
cmF5Qnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkICpvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCAqbnVtRWxlbWVudHMpCisgICAgeworICAgICAgICB1bnNpZ25lZCBtYXhP
ZmZzZXQgPSAoVUlOVF9NQVggLSBhcnJheUJ5dGVPZmZzZXQpIC8gc2l6ZW9mKFQpOworICAgICAg
ICBpZiAoKm9mZnNldCA+IG1heE9mZnNldCkgeworICAgICAgICAgICAgKm9mZnNldCA9IGJ1ZmZl
ci0+Ynl0ZUxlbmd0aCgpOworICAgICAgICAgICAgKm51bUVsZW1lbnRzID0gMDsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAqb2Zmc2V0ID0gYXJyYXlCeXRlT2Zmc2V0
ICsgKm9mZnNldCAqIHNpemVvZihUKTsKKyAgICAgICAgKm9mZnNldCA9IHN0ZDo6bWluKGJ1ZmZl
ci0+Ynl0ZUxlbmd0aCgpLCAqb2Zmc2V0KTsKKyAgICAgICAgdW5zaWduZWQgcmVtYWluaW5nRWxl
bWVudHMgPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSAqb2Zmc2V0KSAvIHNpemVvZihUKTsKKyAg
ICAgICAgKm51bUVsZW1lbnRzID0gc3RkOjptaW4ocmVtYWluaW5nRWxlbWVudHMsICpudW1FbGVt
ZW50cyk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOworCisgICAgLy8gVGhp
cyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgQXJyYXlCdWZmZXIncyBzdG9yYWdlLCBwbHVzIHRoZSBi
eXRlIG9mZnNldC4KKyAgICB2b2lkKiBtX2Jhc2VBZGRyZXNzOworCisgICAgdW5zaWduZWQgbV9i
eXRlT2Zmc2V0OworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIEFycmF5QnVmZmVyOwor
ICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9idWZmZXI7CisgICAgQXJyYXlCdWZmZXJWaWV3KiBt
X3ByZXZWaWV3OworICAgIEFycmF5QnVmZmVyVmlldyogbV9uZXh0VmlldzsKK307CisKK2Jvb2wg
QXJyYXlCdWZmZXJWaWV3OjpzZXRJbXBsKEFycmF5QnVmZmVyVmlldyogYXJyYXksIHVuc2lnbmVk
IGJ5dGVPZmZzZXQpCit7CisgICAgaWYgKGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKKyAgICAg
ICAgfHwgYnl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPiBieXRlTGVuZ3RoKCkKKyAg
ICAgICAgfHwgYnl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPCBieXRlT2Zmc2V0KSB7
CisgICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBjaGFyKiBiYXNlID0gc3RhdGljX2Nhc3Q8Y2hh
cio+KGJhc2VBZGRyZXNzKCkpOworICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZzZXQsIGFycmF5
LT5iYXNlQWRkcmVzcygpLCBhcnJheS0+Ynl0ZUxlbmd0aCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQpCit7CisgICAgaWYg
KGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKKyAgICAgICAgfHwgYnl0ZU9mZnNldCArIGRhdGFC
eXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBkYXRhQnl0
ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKKyAgICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBv
ciBvdmVyZmxvdworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGNoYXIq
IGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFzZUFkZHJlc3MoKSk7CisgICAgbWVtbW92ZShi
YXNlICsgYnl0ZU9mZnNldCwgZGF0YSwgZGF0YUJ5dGVMZW5ndGgpOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIEFycmF5QnVmZmVyVmlldzo6emVyb1JhbmdlSW1wbCh1bnNpZ25lZCBieXRl
T2Zmc2V0LCBzaXplX3QgcmFuZ2VCeXRlTGVuZ3RoKQoreworICAgIGlmIChieXRlT2Zmc2V0ID4g
Ynl0ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyByYW5nZUJ5dGVMZW5ndGggPiBi
eXRlTGVuZ3RoKCkKKyAgICAgICAgfHwgYnl0ZU9mZnNldCArIHJhbmdlQnl0ZUxlbmd0aCA8IGJ5
dGVPZmZzZXQpIHsKKyAgICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGNoYXIqIGJhc2UgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oYmFzZUFkZHJlc3MoKSk7CisgICAgbWVtc2V0KGJhc2UgKyBieXRlT2Zm
c2V0LCAwLCByYW5nZUJ5dGVMZW5ndGgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFy
cmF5QnVmZmVyVmlldzo6Y2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVu
ZCwgdW5zaWduZWQgYXJyYXlTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCogb2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKQoreworICAg
IGlmIChzdGFydCA8IDApCisgICAgICAgIHN0YXJ0ICs9IGFycmF5U2l6ZTsKKyAgICBpZiAoc3Rh
cnQgPCAwKQorICAgICAgICBzdGFydCA9IDA7CisgICAgaWYgKGVuZCA8IDApCisgICAgICAgIGVu
ZCArPSBhcnJheVNpemU7CisgICAgaWYgKGVuZCA8IDApCisgICAgICAgIGVuZCA9IDA7CisgICAg
aWYgKGVuZCA8IHN0YXJ0KQorICAgICAgICBlbmQgPSBzdGFydDsKKyAgICAqb2Zmc2V0ID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXJ0KTsKKyAgICAqbGVuZ3RoID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGVuZCAtIHN0YXJ0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdU
Rjo6QXJyYXlCdWZmZXJWaWV3OworCisjZW5kaWYgLy8gQXJyYXlCdWZmZXJWaWV3X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDA4YjRkYTU4ZjhkYTkxMDQ2
YmNhYTQxYTU3ODMxYTBiMWEzMmQ3NDYuLjZkMWNlZTg5OWY4YzEyMGNkYTczNTcwMGIwOTE0ZTY5
Mjg4MjU4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAt
Myw2ICszLDggQEAgU0VUKFdURl9IRUFERVJTCiAgICAgQVZMVHJlZS5oCiAgICAgQWxpZ25tZW50
LmgKICAgICBBbHdheXNJbmxpbmUuaAorICAgIEFycmF5QnVmZmVyLmNwcAorICAgIEFycmF5QnVm
ZmVyVmlldy5jcHAKICAgICBBc3NlcnRpb25zLmgKICAgICBBdG9taWNzLmgKICAgICBCaXRWZWN0
b3IuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDMyQXJyYXku
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmxvYXQzMkFycmF5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjMwYTc2OGFhY2U2MWQ0ZDA3MTBjOGFhN2JmMTA2OWJhOTUwNGY2YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmxvYXQzMkFycmF5LmgKQEAgLTAsMCArMSwx
MDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgRmxvYXQzMkFycmF5X2gKKyNkZWZpbmUgRmxvYXQzMkFy
cmF5X2gKKworI2luY2x1ZGUgIlR5cGVkQXJyYXlCYXNlLmgiCisjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEZsb2F0MzJBcnJheSA6IHB1Ymxp
YyBUeXBlZEFycmF5QmFzZTxmbG9hdD4geworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRp
YyBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZShjb25zdCBmbG9hdCogYXJy
YXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJl
IGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KKyAgICBib29sIHNldChUeXBlZEFy
cmF5QmFzZTxmbG9hdD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJy
YXlCYXNlPGZsb2F0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisKKyAgICB2b2lkIHNldCh1bnNp
Z25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IFR5
cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGZs
b2F0Pih2YWx1ZSk7CisgICAgfQorCisgICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0
ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKKyAgICAvLyBpcyByZXNw
b25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5
LgorICAgIGZsb2F0IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKKyAgICAgICAg
ZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0
cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgaW5saW5lIEZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwK
KyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUg
dG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+Owor
CisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAgICB2aXJ0dWFsIGJv
b2wgaXNGbG9hdEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworUGFzc1JlZlB0
cjxGbG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKK3sK
KyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpjcmVhdGU8RmxvYXQzMkFycmF5Pihs
ZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpjcmVh
dGUoY29uc3QgZmxvYXQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPGZsb2F0Pjo6Y3JlYXRlPEZsb2F0MzJBcnJheT4oYXJyYXksIGxlbmd0aCk7
Cit9CisKK1Bhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6OmNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpjcmVhdGU8Rmxv
YXQzMkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK0Zsb2F0MzJBcnJh
eTo6RmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIDogVHlwZWRBcnJheUJhc2U8ZmxvYXQ+
KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQoreworfQorCitQYXNzUmVmUHRyPEZsb2F0MzJB
cnJheT4gRmxvYXQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBGbG9hdDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPEZsb2F0MzJBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkZsb2F0MzJBcnJheTsKKworI2VuZGlm
IC8vIEZsb2F0MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0Zsb2F0NjRBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDY0QXJyYXku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NjcxMzU1NmNhNjllYmFiM2JjNjUxMGUxOGI4Y2IxZDY3ZmRmNDNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDY0QXJyYXku
aApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZsb2F0NjRBcnJheV9oCisjZGVm
aW5lIEZsb2F0NjRBcnJheV9oCisKKyNpbmNsdWRlICJUeXBlZEFycmF5QmFzZS5oIgorI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBGbG9hdDY0
QXJyYXkgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8ZG91YmxlPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0
aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKGNv
bnN0IGRvdWJsZSogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQ
YXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1
bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAgLy8gQ2Fu4oCZdCB1
c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KKyAgICBi
b29sIHNldChUeXBlZEFycmF5QmFzZTxkb3VibGU+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7
IHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KKwor
ICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCisgICAgeworICAgICAg
ICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRl
eF0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKKyAgICB9CisKKyAgICAvLyBJbnZva2Vk
IGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNh
bGxlcgorICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVu
ZGVmaW5lZCBhcyBuZWNlc3NhcnkuCisgICAgZG91YmxlIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxkb3VibGU+
OjptX2xlbmd0aCk7CisgICAgICAgIGRvdWJsZSByZXN1bHQgPSBUeXBlZEFycmF5QmFzZTxkb3Vi
bGU+OjpkYXRhKClbaW5kZXhdOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAg
IGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IHN1YmFycmF5KGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgaW5saW5lIEZsb2F0NjRBcnJheShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9m
ZnNldCwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNv
bnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjsKKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZp
ZXcuCisgICAgdmlydHVhbCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9Cit9OworCitQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2NEFycmF5OjpjcmVhdGUo
dW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+Ojpj
cmVhdGU8RmxvYXQ2NEFycmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEZsb2F0NjRBcnJh
eT4gRmxvYXQ2NEFycmF5OjpjcmVhdGUoY29uc3QgZG91YmxlKiBhcnJheSwgdW5zaWduZWQgbGVu
Z3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2
NEFycmF5PihhcnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZs
b2F0NjRBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxl
bmd0aCk7Cit9CisKK0Zsb2F0NjRBcnJheTo6RmxvYXQ2NEFycmF5KFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAg
IDogVHlwZWRBcnJheUJhc2U8ZG91YmxlPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sK
K30KKworUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6c3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdAoreworICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwor
fQorCitQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2NEFycmF5OjpzdWJhcnJheShpbnQg
c3RhcnQsIGludCBlbmQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5SW1wbDxGbG9hdDY0
QXJyYXk+KHN0YXJ0LCBlbmQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RG
OjpGbG9hdDY0QXJyYXk7CisKKyNlbmRpZiAvLyBGbG9hdDY0QXJyYXlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQxNkFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0ludDE2QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGE1MmRlOTA3MmIyZTNiOTY1NjRl
YjVlZTc5NmVmN2YwZDVjNTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9JbnQxNkFycmF5LmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
SW50MTZBcnJheV9oCisjZGVmaW5lIEludDE2QXJyYXlfaAorCisjaW5jbHVkZSAiSW50ZWdyYWxU
eXBlZEFycmF5QmFzZS5oIgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQXJyYXlCdWZmZXI7
CisKK2NsYXNzIEludDE2QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaG9y
dD4geworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBj
cmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50
MTZBcnJheT4gY3JlYXRlKHNob3J0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAgLy8g
Q2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxl
ci4KKyAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTxzaG9ydD4qIGFycmF5LCB1bnNpZ25lZCBv
ZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGFycmF5LCBvZmZzZXQp
OyB9CisgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KKworICAgIGlubGlu
ZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAg
aW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBpbmxpbmUgSW50MTZBcnJheShQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiwKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVj
dG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJh
c2U8c2hvcnQ+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsK
KworUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFy
cmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEludDE2QXJyYXk+IEludDE2QXJyYXk6OmNy
ZWF0ZShzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRB
cnJheUJhc2U8c2hvcnQ+OjpjcmVhdGU8SW50MTZBcnJheT4oYXJyYXksIGxlbmd0aCk7Cit9CisK
K1Bhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQor
eworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFycmF5Pihi
dWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK0ludDE2QXJyYXk6OkludDE2QXJyYXko
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpCisgICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNob3J0PihidWZmZXIs
IGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sKK30KKworUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5
KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJh
eTo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAoreworICAgIHJldHVybiBzdWJh
cnJheUltcGw8SW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCit1c2luZyBXVEY6OkludDE2QXJyYXk7CisKKyNlbmRpZiAvLyBJbnQxNkFycmF5X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50MzJBcnJheS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQzMkFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI2MTQ1N2IzYWIx
NmIwMzQ1ZjY2YzVmOWRjYjI3NWEyZWM2NWE4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvSW50MzJBcnJheS5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgSW50MzJBcnJheV9oCisjZGVmaW5lIEludDMyQXJyYXlfaAorCisjaW5jbHVkZSAi
SW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgSW50
MzJBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD4geworcHVibGljOgor
ICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQg
bGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gY3JlYXRl
KGludCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVm
UHRyPEludDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQgdXNlICJ1c2lu
ZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAgYm9vbCBzZXQo
VHlwZWRBcnJheUJhc2U8aW50PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8aW50Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5z
aWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD46
OnNldChpbmRleCwgdmFsdWUpOyB9CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OworICAgIGlubGluZSBQYXNzUmVmUHRyPEludDMy
QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgaW5saW5lIEludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4K
KyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8aW50PjsKKworICAgIC8vIE92ZXJyaWRk
ZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCisgICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPEludDMyQXJyYXk+IEludDMy
QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlC
YXNlPGludD46OmNyZWF0ZTxJbnQzMkFycmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPElu
dDMyQXJyYXk+IEludDMyQXJyYXk6OmNyZWF0ZShpbnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OmNyZWF0ZTxJbnQzMkFycmF5Pihh
cnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5Ojpj
cmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0
LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OmNy
ZWF0ZTxJbnQzMkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK0ludDMy
QXJyYXk6OkludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25l
ZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlPGludD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8
SW50MzJBcnJheT4gSW50MzJBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAoreworICAg
IHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPEludDMy
QXJyYXk+IEludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPEludDMyQXJyYXk+KHN0YXJ0LCBlbmQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpJbnQzMkFycmF5OworCisjZW5kaWYgLy8g
SW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludDhB
cnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQ4QXJyYXkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZGI3YjY4OTliYzliYmMwZjg2ZWMxM2MyNWZlMmZhYjdmYWFjZDA2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQ4QXJyYXkuaApAQCAtMCwwICsxLDk0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEludDhBcnJheV9oCisjZGVmaW5lIEludDhBcnJheV9oCisK
KyNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBBcnJheUJ1ZmZlcjsKKworY2xhc3MgSW50OEFycmF5IDogcHVibGljIEludGVncmFs
VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8SW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBjcmVhdGUoc2lnbmVkIGNoYXIqIGFycmF5
LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJy
YXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUg
dG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAgYm9vbCBzZXQoVHlwZWRBcnJheUJh
c2U8c2lnbmVkIGNoYXI+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFy
cmF5QmFzZTxzaWduZWQgY2hhcj46OnNldChhcnJheSwgb2Zmc2V0KTsgfQorICAgIHZvaWQgc2V0
KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxz
aWduZWQgY2hhcj46OnNldChpbmRleCwgdmFsdWUpOyB9CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0
cjxJbnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NS
ZWZQdHI8SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OworCitw
cml2YXRlOgorICAgIGlubGluZSBJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBsZW5ndGgpOworICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBz
dXBlcmNsYXNzLgorICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj47
CisKKyAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgorICAgIHZpcnR1YWwg
Ym9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK307CisKK1Bhc3NSZWZQ
dHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAg
cmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6Y3JlYXRlPEludDhBcnJheT4obGVu
Z3RoKTsKK30KKworUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHNpZ25l
ZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJbnQ4QXJyYXk+KGFycmF5LCBsZW5ndGgpOworfQor
CitQYXNzUmVmUHRyPEludDhBcnJheT4gSW50OEFycmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7
CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6Y3JlYXRlPEludDhBcnJh
eT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOworfQorCitJbnQ4QXJyYXk6OkludDhBcnJh
eShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkKKyAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+
KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQoreworfQorCitQYXNzUmVmUHRyPEludDhBcnJh
eT4gSW50OEFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1
YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4
QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4g
c3ViYXJyYXlJbXBsPEludDhBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6OkludDhBcnJheTsKKworI2VuZGlmIC8vIEludDhBcnJheV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludGVncmFsVHlwZWRBcnJheUJh
c2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ4ZjgyYTM2MWM2ZWZlYjZjNDZhY2NkNzQ1YzMxNTdiMmUwMjIzZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludGVncmFsVHlwZWRB
cnJheUJhc2UuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlX2gKKyNkZWZpbmUgSW50ZWdyYWxUeXBlZEFycmF5QmFzZV9oCisKKyNpbmNs
dWRlICJUeXBlZEFycmF5QmFzZS5oIgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgorCisvLyBCYXNlIGNsYXNzIGZvciBhbGwgV2ViR0w8VD5BcnJheSB0eXBl
cyBob2xkaW5nIGludGVncmFsCisvLyAobm9uLWZsb2F0aW5nLXBvaW50KSB2YWx1ZXMuCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIEludGVncmFsVHlw
ZWRBcnJheUJhc2UgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8VD4geworICBwdWJsaWM6CisgICAg
dm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlm
IChpbmRleCA+PSBUeXBlZEFycmF5QmFzZTxUPjo6bV9sZW5ndGgpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGlmIChpc25hbih2YWx1ZSkpIC8vIENsYW1wIE5hTiB0byAwCisgICAgICAg
ICAgICB2YWx1ZSA9IDA7CisgICAgICAgIC8vIFRoZSBkb3VibGUgY2FzdCBpcyBuZWNlc3Nhcnkg
dG8gZ2V0IHRoZSBjb3JyZWN0IHdyYXBwaW5nCisgICAgICAgIC8vIGZvciBvdXQtb2YtcmFuZ2Ug
dmFsdWVzIHdpdGggSW50MzJBcnJheSBhbmQgVWludDMyQXJyYXkuCisgICAgICAgIFR5cGVkQXJy
YXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8VD4oc3RhdGljX2Nhc3Q8aW50
NjRfdD4odmFsdWUpKTsKKyAgICB9CisKKyAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdl
dHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgorICAgIC8vIGlzIHJl
c3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3Nh
cnkuCisgICAgVCBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJu
IFR5cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdOworICAgIH0KKworICBwcm90ZWN0ZWQ6
CisgICAgSW50ZWdyYWxUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICAgICAgOiBUeXBl
ZEFycmF5QmFzZTxUPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKKyAgICB7CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6SW50ZWdyYWxUeXBlZEFycmF5
QmFzZTsKKworI2VuZGlmIC8vIEludGVncmFsVHlwZWRBcnJheUJhc2VfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlZEFycmF5QmFzZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UeXBlZEFycmF5QmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlMzBjMTdjMjg2Y2M2
ZmViODNlNWY1MzY1Yjk1MzcyNmYzZjE5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1R5cGVkQXJyYXlCYXNlLmgKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFR5cGVkQXJyYXlCYXNlX2gKKyNkZWZpbmUgVHlwZWRBcnJheUJhc2VfaAor
CisjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIK
KworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgVHlwZWRB
cnJheUJhc2UgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKKyAgcHVibGljOgorICAgIFQqIGRh
dGEoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUKj4oYmFzZUFkZHJlc3MoKSk7IH0KKwor
ICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPFQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHNldEltcGwoYXJyYXksIG9mZnNldCAqIHNpemVvZihUKSk7
CisgICAgfQorCisgICAgYm9vbCBzZXRSYW5nZShjb25zdCBUKiBkYXRhLCBzaXplX3QgZGF0YUxl
bmd0aCwgdW5zaWduZWQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNldFJhbmdlSW1w
bChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgZGF0YUxlbmd0aCAqIHNpemVv
ZihUKSwgb2Zmc2V0ICogc2l6ZW9mKFQpKTsKKyAgICB9CisKKyAgICBib29sIHplcm9SYW5nZSh1
bnNpZ25lZCBvZmZzZXQsIHNpemVfdCBsZW5ndGgpCisgICAgeworICAgICAgICByZXR1cm4gemVy
b1JhbmdlSW1wbChvZmZzZXQgKiBzaXplb2YoVCksIGxlbmd0aCAqIHNpemVvZihUKSk7CisgICAg
fQorCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4gVGhpcyBtdXN0IGJl
IHB1YmxpYyBiZWNhdXNlIG9mCisgICAgLy8gcnVsZXMgYWJvdXQgaW5oZXJpdGFuY2Ugb2YgbWVt
YmVycyBpbiB0ZW1wbGF0ZSBjbGFzc2VzLCBhbmQKKyAgICAvLyBiZWNhdXNlIGl0IGlzIGFjY2Vz
c2VkIHZpYSBwb2ludGVycyB0byBzdWJjbGFzc2VzLgorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9sZW5ndGg7CisgICAgfQorCisgICAgdmlydHVh
bCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2xl
bmd0aCAqIHNpemVvZihUKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBUeXBlZEFycmF5QmFz
ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkKKyAgICAgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zm
c2V0KQorICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICB7CisgICAgfQorCisgICAgdGVt
cGxhdGUgPGNsYXNzIFN1YmNsYXNzPgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBj
cmVhdGUodW5zaWduZWQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKFQpKTsKKyAgICAg
ICAgaWYgKCFidWZmZXIuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZTxTdWJjbGFzcz4oYnVmZmVyLCAwLCBsZW5ndGgpOworICAgIH0KKworICAgIHRl
bXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4g
Y3JlYXRlKGNvbnN0IFQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgeworICAgICAgICBS
ZWZQdHI8U3ViY2xhc3M+IGEgPSBjcmVhdGU8U3ViY2xhc3M+KGxlbmd0aCk7CisgICAgICAgIGlm
IChhKQorICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgIGEtPnNldChpLCBhcnJheVtpXSk7CisgICAgICAgIHJldHVybiBhOwor
ICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdWJjbGFzcz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgp
CisgICAgeworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZihidWZmZXIpOworICAgICAg
ICBpZiAoIXZlcmlmeVN1YlJhbmdlPFQ+KGJ1ZiwgYnl0ZU9mZnNldCwgbGVuZ3RoKSkKKyAgICAg
ICAgICAgIHJldHVybiAwOworCisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3ViY2xhc3Mo
YnVmLCBieXRlT2Zmc2V0LCBsZW5ndGgpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3Mg
U3ViY2xhc3M+CisgICAgUGFzc1JlZlB0cjxTdWJjbGFzcz4gc3ViYXJyYXlJbXBsKGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIG9mZnNldCwgbGVuZ3Ro
OworICAgICAgICBjYWxjdWxhdGVPZmZzZXRBbmRMZW5ndGgoc3RhcnQsIGVuZCwgbV9sZW5ndGgs
ICZvZmZzZXQsICZsZW5ndGgpOworICAgICAgICBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzPFQ+
KGJ1ZmZlcigpLCBtX2J5dGVPZmZzZXQsICZvZmZzZXQsICZsZW5ndGgpOworICAgICAgICByZXR1
cm4gY3JlYXRlPFN1YmNsYXNzPihidWZmZXIoKSwgb2Zmc2V0LCBsZW5ndGgpOworICAgIH0KKwor
ICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIGhhdmUgdG8gYWNjZXNzIHRoaXMgdmlhIGEgdmlydHVh
bCBmdW5jdGlvbiBpbiBzdWJjbGFzc2VzLAorICAgIC8vIHdoaWNoIGlzIHdoeSBpdCBpcyBwcm90
ZWN0ZWQgcmF0aGVyIHRoYW4gcHJpdmF0ZS4KKyAgICB1bnNpZ25lZCBtX2xlbmd0aDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlR5cGVkQXJyYXlCYXNlOworCisjZW5k
aWYgLy8gVHlwZWRBcnJheUJhc2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9VaW50MTZBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MTZBcnJh
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkMDc2NTA1MTczZGU1NThhZDMzN2ZhMmRlM2Q5YjMxYjJmZDA5MmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1VpbnQxNkFycmF5
LmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBVaW50MTZBcnJheV9oCisjZGVm
aW5lIFVpbnQxNkFycmF5X2gKKworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIK
KworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworCitjbGFzcyBVaW50MTZB
cnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVhdGUo
dW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2QXJy
YXk+IGNyZWF0ZSh1bnNpZ25lZCBzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAg
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAg
ICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNv
bXBpbGVyLgorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiogYXJy
YXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hv
cnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KKyAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwg
ZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+Ojpz
ZXQoaW5kZXgsIHZhbHVlKTsgfQorCisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2
QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgaW5saW5lIFVpbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZp
c2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8dW5z
aWduZWQgc2hvcnQ+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4K
KyAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZFNob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQg
c2hvcnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGxlbmd0aCk7Cit9CisKK1Bhc3NSZWZQdHI8VWlu
dDE2QXJyYXk+IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgc2hvcnQqIGFycmF5LCB1bnNp
Z25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0
Pjo6Y3JlYXRlPFVpbnQxNkFycmF5PihhcnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxV
aW50MTZBcnJheT4gVWludDE2QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1
cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGJ1
ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKK30KKworVWludDE2QXJyYXk6OlVpbnQxNkFycmF5
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQorICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9y
dD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8VWludDE2
QXJyYXk+IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8VWludDE2QXJy
YXk+IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN1YmFycmF5SW1wbDxVaW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlVpbnQxNkFycmF5OworCisjZW5kaWYgLy8g
VWludDE2QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50
MzJBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MzJBcnJheS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM3NjVmODA3NzE5MmVlYjAwNGEzMDg4OTM4ODFmYTZjMDg1NjNiNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1VpbnQzMkFycmF5LmgKQEAgLTAs
MCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBVaW50MzJBcnJheV9oCisjZGVmaW5lIFVpbnQz
MkFycmF5X2gKKworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIKKworbmFtZXNw
YWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworCitjbGFzcyBVaW50MzJBcnJheSA6IHB1
YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD4geworcHVibGljOgorICAg
IHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUo
dW5zaWduZWQgaW50KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwg
dW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQg
dXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAg
Ym9vbCBzZXQoVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PiogYXJyYXksIHVuc2lnbmVkIG9m
ZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6c2V0KGFycmF5LCBv
ZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OnNldChpbmRleCwgdmFsdWUpOyB9
CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0
KSBjb25zdDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBpbmxpbmUgVWludDMyQXJy
YXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxl
bmd0aCk7CisgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCisg
ICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47CisKKyAgICAvLyBP
dmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgorICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2ln
bmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPFVp
bnQzMkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBy
ZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5Pihs
ZW5ndGgpOworfQorCitQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGludCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5PihhcnJheSwgbGVu
Z3RoKTsKK30KKworUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6
Y3JlYXRlPFVpbnQzMkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK1Vp
bnQzMkFycmF5OjpVaW50MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICA6IEludGVncmFsVHlwZWRB
cnJheUJhc2U8dW5zaWduZWQgaW50PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sKK30K
KworUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFy
dCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKK30KKwor
UGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwg
aW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPFVpbnQzMkFycmF5Pihz
dGFydCwgZW5kKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VWludDMy
QXJyYXk7CisKKyNlbmRpZiAvLyBVaW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
VWludDhBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZmRiODQyYjEyOGNlMWRmZjY4OGI4OGZkODRiMjM5
MDM2MTU2M2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Vp
bnQ4QXJyYXkuaApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFVpbnQ4QXJyYXlf
aAorI2RlZmluZSBVaW50OEFycmF5X2gKKworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJh
c2UuaCIKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworCitjbGFzcyBV
aW50OEFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj4g
eworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVh
dGUodW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWludDhB
cnJheT4gY3JlYXRlKHVuc2lnbmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOworICAg
IHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAg
ICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNv
bXBpbGVyLgorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KiBhcnJh
eSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFy
Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRv
dWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpzZXQo
aW5kZXgsIHZhbHVlKTsgfQorCisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3Vi
YXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OworCitwcml2YXRlOgorICAgIGlu
bGluZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCisgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNo
YXI+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAgICB2aXJ0
dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK307
CisKK1Bhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj46OmNyZWF0
ZTxVaW50OEFycmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4
QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQorewor
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRlPFVpbnQ4QXJy
YXk+KGFycmF5LCBsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJy
YXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5z
aWduZWQgY2hhcj46OmNyZWF0ZTxVaW50OEFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0
aCk7Cit9CisKK1VpbnQ4QXJyYXk6OlVpbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4g
YnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCis6IEludGVncmFs
VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgp
Cit7Cit9CisKK1Bhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6c3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdAoreworICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwor
fQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6OnN1YmFycmF5KGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPFVpbnQ4QXJyYXk+
KHN0YXJ0LCBlbmQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpVaW50
OEFycmF5OworCisjZW5kaWYgLy8gVWludDhBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5w
cm8KaW5kZXggMjUyZTM1NDMyM2RmYmQ3ZjM4YzNiMTIxZDNjZTUzZmYyOTIzNjliZC4uYzY3Nzc1
OWY1Yjk3MDFhODRmYjlhZTFkMGY3OTZjODczMzdkYzU5OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
d3RmLnBybwpAQCAtMjUsNiArMjUsOCBAQCBRVCAtPSBndWkKIEhFQURFUlMgKz0gXAogICAgIEFs
aWdubWVudC5oIFwKICAgICBBbHdheXNJbmxpbmUuaCBcCisgICAgQXJyYXlCdWZmZXIuaCBcCisg
ICAgQXJyYXlCdWZmZXJWaWV3LmggXAogICAgIEFTQ0lJQ1R5cGUuaCBcCiAgICAgQXNzZXJ0aW9u
cy5oIFwKICAgICBBdG9taWNzLmggXApAQCAtNDQsNiArNDYsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBEZWNvZGVyLmggXAogICAgIERlcXVlLmggXAogICAgIERpc2FsbG93Q1R5cGUuaCBcCisgICAg
ZHRvYS5oIFwKICAgICBkdG9hL2JpZ251bS1kdG9hLmggXAogICAgIGR0b2EvYmlnbnVtLmggXAog
ICAgIGR0b2EvY2FjaGVkLXBvd2Vycy5oIFwKQEAgLTUyLDcgKzU1LDYgQEAgSEVBREVSUyArPSBc
CiAgICAgZHRvYS9kb3VibGUuaCBcCiAgICAgZHRvYS9mYXN0LWR0b2EuaCBcCiAgICAgZHRvYS9m
aXhlZC1kdG9hLmggXAotICAgIGR0b2EuaCBcCiAgICAgZHRvYS9zdHJ0b2QuaCBcCiAgICAgZHRv
YS91dGlscy5oIFwKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuaCBcCkBAIC02MCw2ICs2Miw4IEBA
IEhFQURFUlMgKz0gXAogICAgIEZhc3RBbGxvY0Jhc2UuaCBcCiAgICAgRmFzdE1hbGxvYy5oIFwK
ICAgICBGaXhlZEFycmF5LmggXAorICAgIEZsb2F0MzJBcnJheS5oIFwKKyAgICBGbG9hdDY0QXJy
YXkuaCBcCiAgICAgRm9yd2FyZC5oIFwKICAgICBHZXRQdHIuaCBcCiAgICAgSGFzaENvdW50ZWRT
ZXQuaCBcCkBAIC03MCw2ICs3NCw5IEBAIEhFQURFUlMgKz0gXAogICAgIEhhc2hUYWJsZS5oIFwK
ICAgICBIYXNoVHJhaXRzLmggXAogICAgIEhleE51bWJlci5oIFwKKyAgICBJbnQxNkFycmF5Lmgg
XAorICAgIEludDMyQXJyYXkuaCBcCisgICAgSW50OEFycmF5LmggXAogICAgIExpc3RIYXNoU2V0
LmggXAogICAgIExpc3RSZWZQdHIuaCBcCiAgICAgTG9ja2VyLmggXApAQCAtODgsMTUgKzk1LDE1
IEBAIEhFQURFUlMgKz0gXAogICAgIE9TUmFuZG9tU291cmNlLmggXAogICAgIE93bkFycmF5UHRy
LmggXAogICAgIE93bkZhc3RNYWxsb2NQdHIuaCBcCi0gICAgT3duUHRyQ29tbW9uLmggXAogICAg
IE93blB0ci5oIFwKKyAgICBPd25QdHJDb21tb24uaCBcCiAgICAgUGFja2VkSW50VmVjdG9yLmgg
XAotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZC5oIFwKICAgICBQYWdlQWxsb2NhdGlvbi5oIFwK
KyAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuaCBcCiAgICAgUGFnZUJsb2NrLmggXAogICAgIFBh
Z2VSZXNlcnZhdGlvbi5oIFwKLSAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmggXAogICAgIFBhcmFs
bGVsSm9icy5oIFwKKyAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmggXAogICAgIFBhcmFsbGVsSm9i
c0xpYmRpc3BhdGNoLmggXAogICAgIFBhcmFsbGVsSm9ic09wZW5NUC5oIFwKICAgICBQYXNzT3du
QXJyYXlQdHIuaCBcCkBAIC0xNDIsNiArMTQ5LDkgQEAgSEVBREVSUyArPSBcCiAgICAgVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaCBcCiAgICAgVGhyZWFkU3BlY2lmaWMuaCBcCiAgICAgVHlwZVRyYWl0
cy5oIFwKKyAgICBVaW50MTZBcnJheS5oIFwKKyAgICBVaW50MzJBcnJheS5oIFwKKyAgICBVaW50
OEFycmF5LmggXAogICAgIHVuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaCBcCiAgICAgdW5pY29kZS9D
b2xsYXRvci5oIFwKICAgICB1bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggXApAQCAtMTU3LDcgKzE2
NywxMCBAQCBIRUFERVJTICs9IFwKICAgICBWTVRhZ3MuaCBcCiAgICAgV1RGVGhyZWFkRGF0YS5o
CiAKKwogU09VUkNFUyArPSBcCisgICAgQXJyYXlCdWZmZXIuY3BwIFwKKyAgICBBcnJheUJ1ZmZl
clZpZXcuY3BwIFwKICAgICBBc3NlcnRpb25zLmNwcCBcCiAgICAgQml0VmVjdG9yLmNwcCBcCiAg
ICAgQnl0ZUFycmF5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDdlZGZmNzk5NWI1MTcy
NjYyN2MwODUwMTJhMzk4ZjEwYmI4OGRjMWUuLjMzOGQ1OGY2NWZiYjEyMGJiZDlkYzA0NjRkNTNh
NDc4ODdiNDA4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04MjMsOCArODIzLDYgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKICAgICBodG1sL1dl
ZWtJbnB1dFR5cGUuY3BwCiAKLSAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKLSAgICBo
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29u
dGV4dEF0dHJpYnV0ZXMuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCiAg
ICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAKQEAgLTgzMywxNCArODMxLDYgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9E
YXRhVmlldy5jcHAKLSAgICBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwCi0gICAgaHRtbC9j
YW52YXMvRmxvYXQ2NEFycmF5LmNwcAotICAgIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwCi0g
ICAgaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAKLSAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXku
Y3BwCi0gICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuY3BwCi0gICAgaHRtbC9jYW52YXMvVWlu
dDMyQXJyYXkuY3BwCi0gICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAKIAogICAgIGh0bWwv
cGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAogICAgIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL0FycmF5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvQXJyYXlCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODdkOThjOGFlZThlOTQ3NzI1YTFlN2YyNDE4
NTI3NDAxNzlhN2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL0FycmF5QnVmZmVyLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNv
cmVfRldEX0FycmF5QnVmZmVyX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQXJyYXlCdWZmZXJfaAor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kZTM5NTI2Njk3Y2QxMGRiM2Y0OGY4Yjk2ZGQwMDRkOGIzZjk0ODJiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Fy
cmF5QnVmZmVyVmlldy5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9BcnJh
eUJ1ZmZlclZpZXdfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9BcnJheUJ1ZmZlclZpZXdfaAorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQzMkFycmF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQzMkFycmF5LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjI0NTNkZDIxNjA4ZDNjY2M5Y2U0OGMxMDUwNjRhNzc2ZmViM2QwZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GbG9hdDMy
QXJyYXkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRmxvYXQzMkFycmF5
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfRmxvYXQzMkFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0NjRBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ZTM1YWFk
Yzg4YWViYzk1NTBhZTVmNTgxZDFiOGQ4OWM4M2E2ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQ2NEFycmF5LmgKQEAgLTAsMCAr
MSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Zsb2F0NjRBcnJheV9oCisjZGVmaW5lIFdlYkNv
cmVfRldEX0Zsb2F0NjRBcnJheV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQ2NEFy
cmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi9JbnQxNkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvSW50MTZBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZDAwMzk5ZGEzNTQ5NzkzY2RiOWMxYjdlYTJl
MTRhNDg3YzgxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvSW50MTZBcnJheS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3Jl
X0ZXRF9JbnQxNkFycmF5X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSW50MTZBcnJheV9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSW50MTZBcnJheS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvSW50MzJBcnJheS5oIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDMyQXJyYXkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjY1NzQxZDc2OWJjZTY5MDkxZmRmMjBmMThhYTBiZWRjNmVhMGEwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDMyQXJyYXkuaApAQCAt
MCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSW50MzJBcnJheV9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX0ludDMyQXJyYXlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ludDMyQXJy
YXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL0ludDhBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L0ludDhBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNmFkNTI3NDBiNTFmMWZkZmI4OGFhZWFjMzFjY2E5
NWI4OTE0NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvSW50OEFycmF5LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldE
X0ludDhBcnJheV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0ludDhBcnJheV9oCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW50OEFycmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MTZBcnJheS5oIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQxNkFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NjZWEy
YzFiMGMwNzM3ZWM2YzgwZjQzYjZhNWUxYjAzNWQ5NjJlMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MTZBcnJheS5oCkBAIC0wLDAg
KzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9VaW50MTZBcnJheV9oCisjZGVmaW5lIFdlYkNv
cmVfRldEX1VpbnQxNkFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50MTZBcnJh
eS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0
Zi9VaW50MzJBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MDI2ZjE1YzA2MzYxOGNjNmIyZDQxNjJkOGNi
ZWM4YWE3YjBiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvVWludDMyQXJyYXkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29y
ZV9GV0RfVWludDMyQXJyYXlfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9VaW50MzJBcnJheV9oCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDMyQXJyYXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQ4QXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50OEFycmF5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGM4ZGU0ZWE3OGNjYWRlNDkyM2E4Njk2MDFiMTUwZGQ1ODU3ZDc2NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50OEFycmF5LmgK
QEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1VpbnQ4QXJyYXlfaAorI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9VaW50OEFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50
OEFycmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDQwZWU1
ODc3NTg5OWVmNTc0YWMyMDc4OTg3YmFhZWIzOTg4Njg3MmEuLjA0MTM1MDU3MzFiNjNhOTRmZjE1
NzhmMTM1M2EwMDhkNGUxMzgwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MTYxOSwxMCArMTYxOSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklu
cHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmggXAot
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0Nv
bnRleHRBdHRyaWJ1dGVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
Q29udGV4dEF0dHJpYnV0ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
R3JhZGllbnQuY3BwIFwKQEAgLTE2NDAsMjQgKzE2MzYsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NoZWNrZWRJbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJy
YXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaCBcCi0J
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0ludDE2QXJyYXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQx
NkFycmF5LmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwIFwK
LQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmggXAotCVNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ludDhBcnJheS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlC
YXNlLmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcCBcCi0J
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaCBcCi0JU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50MzJBcnJheS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFy
cmF5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVRva2VuTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYmYxMjAxYzBkMDc1NzFmNzkyNzAz
OTFkMTAxYzQyZmNhNDUyZTZkOC4uOGM1ZjVjMmQzYjQxNDM1YmYwNmRjNGY5OTBmOGRiYjA2N2Y3
NGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MDksOCArODA5LDYgQEAgU09VUkNFUyArPSBcCiAgICAg
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAg
XAogICAgIGh0bWwvV2Vla0lucHV0VHlwZS5jcHAgXAotICAgIGh0bWwvY2FudmFzL0FycmF5QnVm
ZmVyLmNwcCBcCi0gICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcCBcCiAgICAgaHRt
bC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0
ZXJuLmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHAgXApAQCAtODE4
LDE0ICs4MTYsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgXAogICAg
IGh0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCBcCi0gICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5
LmNwcCBcCi0gICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcCBcCi0gICAgaHRtbC9jYW52
YXMvSW50MTZBcnJheS5jcHAgXAotICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwIFwKLSAg
ICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwIFwKLSAgICBodG1sL2NhbnZhcy9VaW50MTZBcnJh
eS5jcHAgXAotICAgIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcCBcCi0gICAgaHRtbC9jYW52
YXMvVWludDhBcnJheS5jcHAgXAogICAgIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNw
cCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIFwKICAgICBodG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIFwKQEAgLTE3NTAsOCArMTc0MCw2IEBAIEhF
QURFUlMgKz0gXAogICAgIGhpc3RvcnkvQ2FjaGVkUGFnZS5oIFwKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmggXAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmggXAotICAgIGh0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyLmggXAotICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0
ZXJuLmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaCBcCkBAIC0xNzU5LDE0
ICsxNzQ3LDYgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggXAogICAgIGh0bWwv
Y2FudmFzL0RhdGFWaWV3LmggXAotICAgIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oIFwKLSAg
ICBodG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaCBcCi0gICAgaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5oIFwKLSAgICBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmggXAotICAgIGh0bWwvY2FudmFzL0lu
dDhBcnJheS5oIFwKLSAgICBodG1sL2NhbnZhcy9VaW50MTZBcnJheS5oIFwKLSAgICBodG1sL2Nh
bnZhcy9VaW50MzJBcnJheS5oIFwKLSAgICBodG1sL2NhbnZhcy9VaW50OEFycmF5LmggXAogICAg
IGh0bWwvQ2xhc3NMaXN0LmggXAogICAgIGh0bWwvQ29sbGVjdGlvbkNhY2hlLmggXAogICAgIGh0
bWwvRE9NRm9ybURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDRjYzBlOGI3ZDYyNjg2Yjk1OWY1YmNkMTcwM2Q3YjFkOGRkODBlYzQu
LjY4YzY0ZTQ2ODhlNjY0ODdiNmI3MDYzNzE2NjI0YzIwYzUxMzViMzYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MjkwMiwyMiArNTI5MDIs
NiBAQAogCQkJTmFtZT0iaHRtbCIKIAkJCT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxodG1sXGNhbnZhc1xBcnJheUJ1ZmZlci5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEFycmF5QnVmZmVyLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFz
XEFycmF5QnVmZmVyVmlldy5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEFycmF5QnVmZmVyVmlldy5oIgotCQkJCT4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxmaWxlYXBpXEFzeW5jRmls
ZVdyaXRlci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTUzNDEwLDIyICs1MzM5NCw2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2Fu
dmFzXEZsb2F0MzJBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEZsb2F0MzJBcnJheS5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xGbG9hdDY0
QXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXGNhbnZhc1xGbG9hdDY0QXJyYXkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3Bw
IgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTU3NzM4LDMwICs1NzcwNiw2IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDE2
QXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXGNhbnZhc1xJbnQxNkFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDMyQXJyYXkuY3BwIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZh
c1xJbnQzMkFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDhBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDhBcnJheS5oIgot
CQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXElz
SW5kZXhJbnB1dFR5cGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTU3OTY2LDMwICs1Nzkx
MCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcY2FudmFzXFVJbnQxNkFycmF5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcVUludDE2QXJyYXkuaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNc
VUludDMyQXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxodG1sXGNhbnZhc1xVSW50MzJBcnJheS5oIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xVSW50OEFycmF5LmNw
cCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxjYW52YXNcVUludDhBcnJheS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXFVSTElucHV0VHlwZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDMzYzE0YmVhNWFlODA0NDk5NWMwOTAxYmEzY2I2ZTllMzc5NjYzMDIuLjY2MzZkNjVi
YmNkNDRjMzVmZTVjOTgwNzcxNDNjNGZiNTY5YmY1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMjAsOCArMTIyMCw2IEBA
CiAJCTQ5QzdCOUE1MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMVGV4dHVyZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5OTIxMDQyRDJEMzAw
MDlENDQ3IC8qIEpTV2ViR0xUZXh0dXJlLmggKi87IH07CiAJCTQ5QzdCOUM4MTA0MkQzMkYwMDA5
RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OUM3QjlBODEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuY3Bw
ICovOyB9OwogCQk0OUM3QjlDOTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUE5MTA0MkQz
MkUwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5oICovOyB9OwotCQk0OUM3QjlDQjEwNDJEMzJGMDAw
OUQ0NDcgLyogSW50OEFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5QzdCOUFCMTA0MkQzMkUwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuY3BwICov
OyB9OwotCQk0OUM3QjlDQzEwNDJEMzJGMDAwOUQ0NDcgLyogSW50OEFycmF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlBQzEwNDJEMzJFMDAw
OUQ0NDcgLyogSW50OEFycmF5LmggKi87IH07CiAJCTQ5QzdCOUNFMTA0MkQzMkYwMDA5RDQ0NyAv
KiBXZWJHTEZyYW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5QzdCOUFFMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVy
LmNwcCAqLzsgfTsKIAkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZm
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdC
OUFGMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi87IH07CiAJCTQ5QzdC
OUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlCNDEwNDJEMzJGMDAwOUQ0NDcgLyog
V2ViR0xPYmplY3QuY3BwICovOyB9OwpAQCAtMTI2NiwyMiArMTI2NCw2IEBACiAJCTQ5RTkxMkFD
MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RTkxMkE3MEVGQUM5MDYwMDlEMENBRiAvKiBB
bmltYXRpb25MaXN0LmNwcCAqLzsgfTsKIAkJNDlFOTEyQUQwRUZBQzkwNjAwOUQwQ0FGIC8qIEFu
aW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5RTkxMkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDlFOTEyQUUwRUZBQzkw
NjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OUU5MTJBOTBFRkFDOTA2MDA5RDBDQUYgLyogVGltaW5nRnVu
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREM3MTA1MDNDMjMw
MDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwICovOyB9OwotCQk0OUVFQ0RFMDEwNTAzQzI0
MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RDODEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZm
ZXJWaWV3LmggKi87IH07Ci0JCTQ5RUVDREUyMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVF
Q0RDQTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuY3BwICovOyB9OwotCQk0OUVFQ0RF
MzEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJh
eUJ1ZmZlci5oICovOyB9OwotCQk0OUVFQ0RFNTEwNTAzQzI0MDAwOTlGQUIgLyogRmxvYXQzMkFy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
RUVDRENEMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuY3BwICovOyB9OwotCQk0OUVF
Q0RFNjEwNTAzQzI0MDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyog
RmxvYXQzMkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREU4MTA1MDNDMjQwMDA5OUZBQiAvKiBJbnQz
MkFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5RUVDREQwMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5LmNwcCAqLzsgfTsKLQkJNDlF
RUNERTkxMDUwM0MyNDAwMDk5RkFCIC8qIEludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQxMTA1MDNDMjMwMDA5OUZBQiAvKiBJ
bnQzMkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREVCMTA1MDNDMjQwMDA5OUZBQiAvKiBJbnQxNkFy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
RUVDREQzMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQxNkFycmF5LmNwcCAqLzsgfTsKLQkJNDlFRUNE
RUMxMDUwM0MyNDAwMDk5RkFCIC8qIEludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQ0MTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQx
NkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREVFMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50OEFycmF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVD
REQ2MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5LmNwcCAqLzsgfTsKLQkJNDlFRUNERUYx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQ3MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFy
cmF5LmggKi87IH07Ci0JCTQ5RUVDREYxMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RE
OTEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXkuY3BwICovOyB9OwotCQk0OUVFQ0RGMjEw
NTAzQzI0MDAwOTlGQUIgLyogVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRERBMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJB
cnJheS5oICovOyB9OwotCQk0OUVFQ0RGNDEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2QXJyYXku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNE
REMxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmNwcCAqLzsgfTsKLQkJNDlFRUNERjUx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RERDEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2
QXJyYXkuaCAqLzsgfTsKIAkJNDlFRUNGMDAxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQXJyYXlCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlF
RUNFRjIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQXJyYXlCdWZmZXIuY3BwICovOyB9OwogCQk0OUVF
Q0YwMTEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNFRjMxMDUwNzBDNDAwMDk5RkFCIC8q
IEpTQXJyYXlCdWZmZXIuaCAqLzsgfTsKIAkJNDlFRUNGMDIxMDUwNzBDNDAwMDk5RkFCIC8qIEpT
RmxvYXQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5RUVDRUY0MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheS5jcHAgKi87
IH07CkBAIC0xMzg2LDcgKzEzNjgsNiBAQAogCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDM4QkUzRjE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi87IH07CiAJ
CTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxv
d1RocmVhZC5jcHAgKi87IH07Ci0JCTUwQjQyMTU4MTQ2OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRD
U1NTaGFkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTBCNDIxNTcxNDY5NzY5NjAwODdFNjA0IC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmgg
Ki87IH07CiAJCTUwRTU2NkQ2MTM5RTM4QzUwMDIxNDQzMyAvKiBDU1NXcmFwU2hhcGVzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMUJBQUIxMTM5
NTExNEIwMEY3QUNFQiAvKiBDU1NXcmFwU2hhcGVzLmNwcCAqLzsgfTsKIAkJNTEwMTg0NjkwQjA4
NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEw
MTg0NkEwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTg0NjgwQjA4NjAyQTAwNEE4MjVGIC8q
IENhY2hlZFBhZ2UuY3BwICovOyB9OwpAQCAtMTcyOSwxMCArMTcxMCw2IEBACiAJCTZFNjdEMkE2
MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU2N0QyQTQxMjgwRThBNDAwODc1OEY3
IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgKi87IH07CiAJCTZFNjdEMkE3MTI4MEU4QTQwMDg3
NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFNjdEMkE1MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25z
M0RPcGVuR0wuaCAqLzsgfTsKIAkJNkU2N0QyQTkxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lv
bnMzRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU2
N0QyQTgxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oICovOyB9OwotCQk2RTk2QkIx
QzExOTg2RUUyMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU5NkJCMUExMTk4NkVFMTAwN0Q5
NENEIC8qIEludGVncmFsVHlwZWRBcnJheUJhc2UuaCAqLzsgfTsKLQkJNkU5NkJCMUQxMTk4NkVF
MjAwN0Q5NENEIC8qIFR5cGVkQXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTk2QkIxQjExOTg2RUUxMDA3RDk0Q0QgLyogVHlwZWRBcnJh
eUJhc2UuaCAqLzsgfTsKLQkJNkVCQzVEODExMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJh
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJD
NUQ3RTEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmNwcCAqLzsgfTsKLQkJNkVCQzVE
ODIxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCQzVEN0YxMzhCNEM0RTAwQTBDRjhBIC8qIEZs
b2F0NjRBcnJheS5oICovOyB9OwogCQk2RUJDNUQ4NTEzOEI0Q0UwMDBBMENGOEEgLyogSlNGbG9h
dDY0QXJyYXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkVCQzVEODQxMzhCNENFMDAwQTBDRjhBIC8qIEpTRmxvYXQ2NEFycmF5Q3VzdG9t
LmNwcCAqLzsgfTsKIAkJNkVCQzVFQUYxMzhCNTBGMjAwQTBDRjhBIC8qIEpTRmxvYXQ2NEFycmF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkM1
RUFEMTM4QjUwRjIwMEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5jcHAgKi87IH07CiAJCTZFQkM1
RUIwMTM4QjUwRjIwMEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCQzVFQUUxMzhCNTBGMjAwQTBDRjhBIC8q
IEpTRmxvYXQ2NEFycmF5LmggKi87IH07CkBAIC04NDIwLDggKzgzOTcsNiBAQAogCQk0OUM3QjlB
ODEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xCdWZmZXIuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMQnVm
ZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5QTkxMDQyRDMyRTAw
MDlENDQ3IC8qIFdlYkdMQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkdMQnVmZmVyLmg7IHBhdGggPSBjYW52YXMvV2ViR0xCdWZmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5QUExMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMQnVmZmVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTEJ1ZmZlci5pZGw7IHBhdGggPSBjYW52
YXMvV2ViR0xCdWZmZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM3QjlB
QjEwNDJEMzJFMDAwOUQ0NDcgLyogSW50OEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEludDhBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvSW50OEFycmF5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDN0I5QUMxMDQyRDMyRTAwMDlENDQ3
IC8qIEludDhBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnQ4QXJy
YXkuaDsgcGF0aCA9IGNhbnZhcy9JbnQ4QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDlDN0I5QUQxMDQyRDMyRTAwMDlENDQ3IC8qIEludDhBcnJheS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gSW50OEFycmF5LmlkbDsgcGF0aCA9IGNhbnZhcy9JbnQ4QXJyYXkuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3QjlBRTEwNDJEMzJFMDAwOUQ0NDcg
LyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJHTEZyYW1lYnVmZmVyLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5QUYxMDQyRDMyRTAwMDlE
NDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViR0xGcmFtZWJ1ZmZlci5oOyBwYXRoID0gY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NzQsMjkgKzg0NDksMTMgQEAKIAkJNDlF
OTEyQTcwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQW5pbWF0aW9uTGlzdC5jcHA7IHBhdGggPSBhbmltYXRp
b24vQW5pbWF0aW9uTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RTkx
MkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEFuaW1hdGlvbkxpc3QuaDsgcGF0aCA9IGFuaW1hdGlvbi9BbmltYXRp
b25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RTkxMkE5MEVGQUM5MDYw
MDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBUaW1pbmdGdW5jdGlvbi5oOyBwYXRoID0gYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREM3MTA1MDNDMjMwMDA5OUZBQiAv
KiBBcnJheUJ1ZmZlclZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQXJyYXlCdWZmZXJWaWV3LmNwcDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0RDODEwNTAzQzIzMDAwOTlGQUIg
LyogQXJyYXlCdWZmZXJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFy
cmF5QnVmZmVyVmlldy5oOyBwYXRoID0gY2FudmFzL0FycmF5QnVmZmVyVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlC
dWZmZXJWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBBcnJheUJ1ZmZlclZpZXcuaWRs
OyBwYXRoID0gY2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDRENBMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBcnJheUJ1ZmZlci5jcHA7IHBhdGgg
PSBjYW52YXMvQXJyYXlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
OUVFQ0RDQjEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQXJyYXlCdWZmZXIuaDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RDQzEwNTAzQzIzMDAwOTlG
QUIgLyogQXJyYXlCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IEFycmF5QnVmZmVy
LmlkbDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDRENEMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRmxvYXQzMkFycmF5LmNwcDsgcGF0
aCA9IGNhbnZhcy9GbG9hdDMyQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZsb2F0MzJBcnJheS5oOyBwYXRoID0gY2FudmFzL0Zsb2F0
MzJBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RDRjEwNTAzQzIz
MDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBGbG9h
dDMyQXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL0Zsb2F0MzJBcnJheS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQwMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEludDMyQXJyYXkuY3Bw
OyBwYXRoID0gY2FudmFzL0ludDMyQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0OUVFQ0REMTEwNTAzQzIzMDAwOTlGQUIgLyogSW50MzJBcnJheS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnQzMkFycmF5Lmg7IHBhdGggPSBjYW52YXMvSW50MzJB
cnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0REMjEwNTAzQzIzMDAw
OTlGQUIgLyogSW50MzJBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSW50MzJBcnJh
eS5pZGw7IHBhdGggPSBjYW52YXMvSW50MzJBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDREQzMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQxNkFycmF5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEludDE2QXJyYXkuY3BwOyBwYXRoID0g
Y2FudmFzL0ludDE2QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVF
Q0RENDEwNTAzQzIzMDAwOTlGQUIgLyogSW50MTZBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBJbnQxNkFycmF5Lmg7IHBhdGggPSBjYW52YXMvSW50MTZBcnJheS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RENTEwNTAzQzIzMDAwOTlGQUIgLyog
SW50MTZBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSW50MTZBcnJheS5pZGw7IHBh
dGggPSBjYW52YXMvSW50MTZBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ5RUVDREQ2MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVpbnQ4QXJyYXkuY3BwOyBwYXRoID0gY2FudmFzL1Vp
bnQ4QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0RENzEwNTAz
QzIzMDAwOTlGQUIgLyogVWludDhBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBVaW50OEFycmF5Lmg7IHBhdGggPSBjYW52YXMvVWludDhBcnJheS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0REODEwNTAzQzIzMDAwOTlGQUIgLyogVWludDhBcnJh
eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVWludDhBcnJheS5pZGw7IHBhdGggPSBjYW52
YXMvVWludDhBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQ5
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVaW50MzJBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvVWludDMyQXJy
YXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0REQTEwNTAzQzIzMDAw
OTlGQUIgLyogVWludDMyQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
VWludDMyQXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9VaW50MzJBcnJheS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUVFQ0REQjEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXku
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFVpbnQzMkFycmF5LmlkbDsgcGF0aCA9IGNhbnZh
cy9VaW50MzJBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDRERD
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVaW50MTZBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvVWludDE2QXJy
YXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0RERDEwNTAzQzI0MDAw
OTlGQUIgLyogVWludDE2QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
VWludDE2QXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9VaW50MTZBcnJheS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUVFQ0RERTEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2QXJyYXku
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFVpbnQxNkFycmF5LmlkbDsgcGF0aCA9IGNhbnZh
cy9VaW50MTZBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVDRUYy
MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXJyYXlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0OUVFQ0VGMzEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTc0LDEwICs4OTMzLDYgQEAKIAkJNkU2N0QyQTQxMjgw
RThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFeHRlbnNpb25zM0RPcGVuR0wuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RTY3RDJBNTEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNE
T3BlbkdMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuc2lvbnMzRE9w
ZW5HTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTY3RDJBODEyODBFOEJEMDA4
NzU4RjcgLyogRXh0ZW5zaW9uczNELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4dGVuc2lvbnMzRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTk2QkIxQTEx
OTg2RUUxMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg7IHBhdGggPSBjYW52
YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk2RTk2QkIxQjExOTg2RUUxMDA3RDk0Q0QgLyogVHlwZWRBcnJheUJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVHlwZWRBcnJheUJhc2UuaDsgcGF0aCA9IGNhbnZhcy9U
eXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RUJDNUQ3RTEz
OEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEZsb2F0NjRBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvRmxvYXQ2NEFy
cmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkVCQzVEN0YxMzhCNEM0RTAw
QTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGbG9hdDY0QXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9GbG9hdDY0QXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVCQzVEODAxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRB
cnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRmxvYXQ2NEFycmF5LmlkbDsgcGF0aCA9
IGNhbnZhcy9GbG9hdDY0QXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RUJDNUQ4NDEzOEI0Q0UwMDBBMENGOEEgLyogSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGbG9hdDY0QXJyYXlDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJDNUVBRDEzOEI1MEYyMDBBMENGOEEg
LyogSlNGbG9hdDY0QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNGbG9hdDY0QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5
MTksMTEgKzE0ODc0LDcgQEAKIAkJCQlBMEVFMERGNDE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xE
ZWJ1Z1NoYWRlcnMuaCAqLywKIAkJCQlBMEVFMERGMDE0NEY4MjQzMDBGODBCMEQgLyogV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5pZGwgKi8sCiAJCQkJQTBFRTBERUYxNDRGODIzMjAwRjgwQjBEIC8q
IFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLywKLQkJCQk0OUVFQ0RDQTEwNTAzQzIzMDAwOTlGQUIg
LyogQXJyYXlCdWZmZXIuY3BwICovLAotCQkJCTQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAvKiBB
cnJheUJ1ZmZlci5oICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1
ZmZlci5pZGwgKi8sCi0JCQkJNDlFRUNEQzcxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVy
Vmlldy5jcHAgKi8sCi0JCQkJNDlFRUNEQzgxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVy
Vmlldy5oICovLAogCQkJCTQ5RUVDREM5MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZp
ZXcuaWRsICovLAogCQkJCTZFNEU5MUE3MTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0
QXR0cmlidXRlcy5jcHAgKi8sCiAJCQkJNkU0RTkxQTgxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZh
c0NvbnRleHRBdHRyaWJ1dGVzLmggKi8sCkBAIC0xNDk0OCwyMiArMTQ4OTksMTEgQEAKIAkJCQky
RTk3Q0NFNzEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuY3BwICovLAogCQkJCTJFOTdDQ0U4
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovLAogCQkJCTJFOTdDQ0U5MTI5MzlDQjgw
MEM1QzhGRiAvKiBEYXRhVmlldy5pZGwgKi8sCi0JCQkJNDlFRUNEQ0QxMDUwM0MyMzAwMDk5RkFC
IC8qIEZsb2F0MzJBcnJheS5jcHAgKi8sCi0JCQkJNDlFRUNEQ0UxMDUwM0MyMzAwMDk5RkFCIC8q
IEZsb2F0MzJBcnJheS5oICovLAogCQkJCTQ5RUVDRENGMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9h
dDMyQXJyYXkuaWRsICovLAotCQkJCTZFQkM1RDdFMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0
QXJyYXkuY3BwICovLAotCQkJCTZFQkM1RDdGMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0QXJy
YXkuaCAqLywKIAkJCQk2RUJDNUQ4MDEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5Lmlk
bCAqLywKLQkJCQk0OUVFQ0REMzEwNTAzQzIzMDAwOTlGQUIgLyogSW50MTZBcnJheS5jcHAgKi8s
Ci0JCQkJNDlFRUNERDQxMDUwM0MyMzAwMDk5RkFCIC8qIEludDE2QXJyYXkuaCAqLywKIAkJCQk0
OUVFQ0RENTEwNTAzQzIzMDAwOTlGQUIgLyogSW50MTZBcnJheS5pZGwgKi8sCi0JCQkJNDlFRUNE
RDAxMDUwM0MyMzAwMDk5RkFCIC8qIEludDMyQXJyYXkuY3BwICovLAotCQkJCTQ5RUVDREQxMTA1
MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5LmggKi8sCiAJCQkJNDlFRUNERDIxMDUwM0MyMzAw
MDk5RkFCIC8qIEludDMyQXJyYXkuaWRsICovLAotCQkJCTQ5QzdCOUFCMTA0MkQzMkUwMDA5RDQ0
NyAvKiBJbnQ4QXJyYXkuY3BwICovLAotCQkJCTQ5QzdCOUFDMTA0MkQzMkUwMDA5RDQ0NyAvKiBJ
bnQ4QXJyYXkuaCAqLywKIAkJCQk0OUM3QjlBRDEwNDJEMzJFMDAwOUQ0NDcgLyogSW50OEFycmF5
LmlkbCAqLywKLQkJCQk2RTk2QkIxQTExOTg2RUUxMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFy
cmF5QmFzZS5oICovLAogCQkJCTkwMDE3NzNEMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmNwcCAqLywKIAkJCQk5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyogT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5oICovLAogCQkJCTkwMDE3NzNGMTJFMDM0NzgwMDY0ODQ2MiAv
KiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLywKQEAgLTE0OTczLDE1ICsxNDkxMyw4IEBA
CiAJCQkJNzdBMTdBNkUxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmNw
cCAqLywKIAkJCQk3N0ExN0E2RjEyRjI4MTgyMDA0RTAyRjYgLyogT0VTVmVydGV4QXJyYXlPYmpl
Y3QuaCAqLywKIAkJCQk3N0ExN0E3MDEyRjI4MTgyMDA0RTAyRjYgLyogT0VTVmVydGV4QXJyYXlP
YmplY3QuaWRsICovLAotCQkJCTZFOTZCQjFCMTE5ODZFRTEwMDdEOTRDRCAvKiBUeXBlZEFycmF5
QmFzZS5oICovLAotCQkJCTQ5RUVDRERDMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5j
cHAgKi8sCi0JCQkJNDlFRUNEREQxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmggKi8s
CiAJCQkJNDlFRUNEREUxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmlkbCAqLywKLQkJ
CQk0OUVFQ0REOTEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXkuY3BwICovLAotCQkJCTQ5
RUVDRERBMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5oICovLAogCQkJCTQ5RUVDRERC
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5pZGwgKi8sCi0JCQkJNDlFRUNERDYxMDUw
M0MyMzAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuY3BwICovLAotCQkJCTQ5RUVDREQ3MTA1MDNDMjMw
MDA5OUZBQiAvKiBVaW50OEFycmF5LmggKi8sCiAJCQkJNDlFRUNERDgxMDUwM0MyMzAwMDk5RkFC
IC8qIFVpbnQ4QXJyYXkuaWRsICovLAogCQkJCUE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBX
ZWJHTEFjdGl2ZUluZm8uaCAqLywKIAkJCQlBN0QyMEYzQjEwN0YzNzM4MDBBODAzOTIgLyogV2Vi
R0xBY3RpdmVJbmZvLmlkbCAqLywKQEAgLTIxNzg0LDggKzIxNzE3LDYgQEAKIAkJCQk1MTJERDhG
QzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTJERDhGODBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGQjJGNzcwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RFMzEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDREUwMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJh
eUJ1ZmZlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTY4NkNBMTNBQzE4MDIwMEI2OUM2
OCAvKiBBc3luY0F1ZGlvRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVGMUJGRjcxMjFD
QjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODlE
MDhEQTAxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjgxNCw4ICsyMjc0NSw2IEBACiAJCQkJMDhDOTI1MUEwRkNDN0M0QTAwNDgwREVDIC8q
IEZpbHRlckVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyQzAwRDkxMjk2MTlGODAwNUM5
NTc1IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjA0RjBBMTU0RjA5
MDAwQTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlFRUNE
RTYxMDUwM0MyNDAwMDk5RkFCIC8qIEZsb2F0MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkVCQzVEODIxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjI3NTM1NjkwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0UG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyRTI3Q0EwMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50
M0QuaCBpbiBIZWFkZXJzICovLApAQCAtMjMxMjcsMTAgKzIzMDU2LDYgQEAKIAkJCQlGMzgxMEMx
QzEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUYzNzVDQzA3MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNBQkZFMEMxMzBFOURBMDAwRTdGN0QxIC8qIEluc3Ry
dW1lbnRpbmdBZ2VudHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDREVDMTA1MDNDMjQwMDA5
OUZBQiAvKiBJbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RFOTEwNTAzQzI0
MDAwOTlGQUIgLyogSW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlDN0I5Q0MxMDQy
RDMyRjAwMDlENDQ3IC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU5NkJCMUMx
MTk4NkVFMjAwN0Q5NENEIC8qIEludGVncmFsVHlwZWRBcnJheUJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyNzUzNTcyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQ2MkE0QTExMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjI3NTM1NzQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ1NDMsMTQgKzI0NDY4LDEwIEBACiAJCQkJMTRENjRCNUQxMzRBNUI2
QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxOUQyQzUwQ0VB
NkY2MTAwRkY1MDdBIC8qIFRyZWVTaGFyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NEZFNzM5
MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk2RTk2
QkIxRDExOTg2RUUyMDA3RDk0Q0QgLyogVHlwZWRBcnJheUJhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3QzI4QTY4MTBGNjU5Q0MwMDhDNzgxMyAvKiBUeXBlc2V0dGluZ0ZlYXR1cmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOUUxQTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNEUwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRGMEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2
ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RGNTEwNTAzQzI0MDAw
OTlGQUIgLyogVWludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDREYyMTA1MDND
MjQwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlFRUNERUYx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjNF
MjAxMTM0MzQxMjAwMDI3NDkyNiAvKiBVbmljb2RlQmlkaS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJDM0RBNEQwRDAwNkMxRDAwRUY2RjI2IC8qIFVuaWNvZGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTRBRkNGQTUwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjUxODAsOCArMjUxMDEsNiBAQAogCQkJCTUxMkREOEZCMEQ5MUU2QUYwMDBGODlF
RSAvKiBBcmNoaXZlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyREQ4RjcwRDkx
RTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNGQjJGNzYwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTQ5RUVDREUyMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTY4NkM5MTNBQzE4MDIwMEI2OUM2OCAvKiBB
c3luY0F1ZGlvRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OUQwOEQ5RjEyMjI4NDUx
MDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRB
ODBFMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU4MzEs
OCArMjU3NTAsNiBAQAogCQkJCUJDNUVCNjlFMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhDOTI1MTkwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRl
ckVmZmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjA0RDBBMTU0RjA5MDAwQTQyMzQg
LyogRml4ZWRUYWJsZUxheW91dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUVFQ0RFNTEwNTAz
QzI0MDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZFQkM1
RDgxMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1NjgwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0UG9pbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjJFMjdDOUYwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU1OTBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRQb2ludENH
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYxMDgsOSArMjYwMjUsNiBAQAogCQkJCTRGMzI4OUI1
MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUYzNTBCNzM1MTNGMTM3N0QwMDg4MEM0MyAvKiBJbnN0cnVtZW50
aW5nQWdlbnRzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDREVCMTA1MDNDMjQwMDA5OUZB
QiAvKiBJbnQxNkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDREU4MTA1MDNDMjQw
MDA5OUZBQiAvKiBJbnQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QzdCOUNCMTA0
MkQzMkYwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1
NjAwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50TWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzQ1OSw5ICsyNzM3Myw2IEBACiAJCQkJOTMzMDlFMTkwOTlFNjQ5MjAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNEQwQTQ0RUZD
NzAwRjk5MkUwIC8qIFVJRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzNTRBM0MwQjI0
RjhDOTAwM0Y2REVBIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDlFRUNERjQxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTQ5RUVDREYxMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0OUVFQ0RFRTEwNTAzQzI0MDAwOTlGQUIgLyogVWludDhBcnJheS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkMzREE0QzBEMDA2QzFEMDBFRjZGMjYgLyogVW5pY29k
ZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQwODZGRTk5MDlENTNBQUIwMDVCQzc0RCAv
KiBVbmxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREREMTI1MUYxMkQw
MDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwCmluZGV4IDUyMzMy
YzljODg4M2Y4NTAzZWJjODlmNWEyNWVlNjBmZDJhZWFkNzMuLjNkZGNmOWE0ODNlNmQzMzNlZDgz
ZjZkMDczZDBhM2M4MDcyYjBlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogCi0jaW5jbHVkZSAiQXJyYXlC
dWZmZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oCmluZGV4IDlmYzFiZDA3M2Q2MTc3ZTk1NTY2ZjQ2YzJhMDljNWU0YzUxMWQ2
ZGMuLmRmOWU0MzkwNjQwNGQ0ODU4ODgzOGIwYjk2ZjRlN2RkY2Q1YjljODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaApA
QCAtMjcsNyArMjcsNiBAQAogI2lmbmRlZiBKU0FycmF5QnVmZmVyVmlld0hlbHBlcl9oCiAjZGVm
aW5lIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyVmll
dy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVy
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCkBAIC0zNiw2ICszNSw3IEBACiAjaW5jbHVk
ZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGNhMWRiMzRjMTE3MGUxYWI5ODdj
ODMwMWI5MGIwMWQyYzczNGFkZDIuLmUyYzI2Mjc1M2FhMWRhNTU1ZjhlN2MzNDUzNGU0NTkwNzY4
YjIwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
dGV4dEN1c3RvbS5jcHAKQEAgLTI4LDEyICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiQXVkaW9Db250
ZXh0LmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkF1ZGlvQnVmZmVy
LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQXVkaW9CdWZmZXIu
aCIKICNpbmNsdWRlICJKU0F1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3Iu
aD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3RvbS5j
cHAKaW5kZXggYzc3MWI2M2E4ZDQ1MjU3YjgzNjEwN2NhZmZmZTYwNDI2MDAxYTMxYy4uOGI0OTNj
YTE3NjlmMmVkOTk3YTllNTA1NTdmMGM1NGQ1NDAzMmMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwCkBAIC0zNCw5ICszNCw5IEBA
CiAKICNpbmNsdWRlICJKU0ZpbGVSZWFkZXIuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgi
CiAjaW5jbHVkZSAiRmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKKyNp
bmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3Bw
CmluZGV4IDVkYTY5YjRiMDFhZTczNjlkZWRjZGQwNTc3ZDRkODg0Y2VmNzlmNzAuLmVkM2IxMTI2
NTE2YzQ4ODIyYjYzMGZkZjQ0OGQ2MWE3ZGVkYzk2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKQEAgLTI2LDggKzI2LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogCi0j
aW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxw
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQ2NEFy
cmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQ2NEFycmF5
Q3VzdG9tLmNwcAppbmRleCA0NDZiMGVjNDBiN2ZlOGZmYTk3ZjkwNTEyNzcwMTMzZTBlMjBhYzhi
Li5mYmQ4MmI1MWQ1MDJjMDQzNjk3ZTIzNzY0NTU5YTEyNzk4MDFkMGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0NjRBcnJheUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwCkBAIC0y
Niw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNGbG9hdDY0QXJy
YXkuaCIKIAotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmgiCisjaW5jbHVkZSA8d3RmL0Zsb2F0NjRBcnJheS5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ludDE2QXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQx
NkFycmF5Q3VzdG9tLmNwcAppbmRleCA4N2VhNmZlYmY3NTk4YTA2MTQ4OWRhODEzMWVmZjQzZjY0
N2VjZDc0Li43NmFhYmEwMTc0ZWNiYzZmYjI0NDEzNzIyNjdmZTZkYWY0MTlhNjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0ludDE2QXJy
YXkuaCIKIAotI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9JbnQxNkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJy
YXlDdXN0b20uY3BwCmluZGV4IDhiODI0YTc3NjdhYmNhYTNmYWVkZGNmNzRjNjNiOTNlOGM0YjJl
ZTcuLjQzMzkwYjFjMGEwMTg1ZWQ0NzRmZTcwOTU5OTUxOTJhMzhkNGEyNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcApAQCAtMjYs
OCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSW50MzJBcnJheS5o
IgogCi0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3
SGVscGVyLmgiCisjaW5jbHVkZSA8d3RmL0ludDMyQXJyYXkuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJy
YXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0
b20uY3BwCmluZGV4IGRjYmNjNWFhNDdhODRmZjQ5ZjZiM2RiYzk1NmQyZWNkMjAxNDZkYTkuLmJi
N2ZlOGFkNjAxZmIxNDViOTgzMTQwNjcyMTFjNjAyYjFhYjBjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI2LDkgKzI2LDkg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0ludDhBcnJheS5oIgogCi0jaW5j
bHVkZSAiSW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8d3RmL0ludDhBcnJheS5oPgog
CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDE2ZjlkYjJhMDkxMTQxZTljN2M5OTJi
NjM3ZmIxNzkyNDg5ZTEyYTQuLmEyMWQzNTE3MGE5NDI5MGZlYzY2NTBhNTcxYjVhN2Q0YTU1MmUy
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlD
dXN0b20uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNVaW50MTZBcnJheS5oIgog
CiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKLSNpbmNsdWRlICJVaW50MTZB
cnJheS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50MTZBcnJheS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlD
dXN0b20uY3BwCmluZGV4IDFlMDcxYzlmNGQyZTY3ODA1MDFiM2VlOWE3NTA5NTQ1MWU0NDRkMjMu
LjgyODgwNDRiZjE5ZmQ5ZGIzZGFkMDMyYzVmZTdhY2ZkYjkxOTg1NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNyw3
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNVaW50MzJBcnJheS5oIgogCiAjaW5jbHVkZSAiSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaCIKLSNpbmNsdWRlICJVaW50MzJBcnJheS5oIgorI2luY2x1ZGUg
PHd0Zi9VaW50MzJBcnJheS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAppbmRleCBlOTBm
OGU5N2U0MWQ2M2M0NTlmZmJhNmEyOGVmNTM1OTYxYzU0YzNmLi4wYjI4NjQ3Njg0MjAwNDRlMWQ0
YWZmZDBlMzViMGQzNDkzYmI2MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJK
U1VpbnQ4QXJyYXkuaCIKIAogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCi0j
aW5jbHVkZSAiVWludDhBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2F2ZVNoYXBlck5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXYXZlU2hhcGVyTm9kZUN1c3RvbS5jcHAKaW5kZXggZmVhYjk3ODc4ZTJjYjIxNmRhZWUw
Yjc5YWJlNDUyNWQ1MjM2ZTgwMS4uZTAzYTY1NjVhY2E0ZTIzMGIyZjFlZDIyMjUxOGNiOGE3MjM5
OTI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXYXZlU2hhcGVy
Tm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXYXZlU2hh
cGVyTm9kZUN1c3RvbS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIldhdmVTaGFw
ZXJOb2RlLmgiCiAKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRlICJKU0Zsb2F0
MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTV2F2ZVNoYXBlck5vZGUuaCIKKyNpbmNsdWRlIDx3dGYv
RmxvYXQzMkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAppbmRleCAwMzc2MTBhNDkxZGI2N2EzZmJlZmQ4OWJiNTgzZDllYjI1ZGM1MjE2Li4x
YThmNThhNjJiNTI4NjM1ZjhjYjdlOTVkNDhlYzAzNDQ0YjAwZTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCkBAIC0zMCwxMCArMzAsOCBAQAogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRmxvYXQz
MkFycmF5LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTRmxv
YXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTSFRNTEltYWdlRWxlbWVudC5oIgpAQCAtNzAsNiArNjgsOCBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYv
RmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3
dGYvSW50MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25GYXN0TWFsbG9jUHRyLmg+CiAKICNp
ZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IDc3MzZkYmE2YTdhNjNmODYxZTFkMDY5NGU1
ZTQ3MjA3YjM4ZjU3MTAuLjNhYjIwN2ViMmE2NDM5YzI0MTY1NGI1NWEyMTE5MWMyOGM1NTBiMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNp
bmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJET01X
aW5kb3cuaCIKQEAgLTQ5LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IGNhYzM1MGI0OTQxNTMxYjg2YTc0MmE4NzJiYjI1YzIzMDhmNGI2OTgu
LjcxMGM3YWUzZTMxN2E3MWNkODBlNzYyMjBiMmFlYmI0ODE3MTVmZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yOTYs
NiArMjk2LDggQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgICAkaW5jbHVkZXNSZWYt
PnsiSlNET01TdHJpbmdMaXN0LmgifSA9IDE7CiAgICAgfSBlbHNpZiAoJGlzQ2FsbGJhY2spIHsK
ICAgICAgICAgJGluY2x1ZGVzUmVmLT57IkpTJHt0eXBlfS5oIn0gPSAxOworICAgIH0gZWxzaWYg
KElzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgICRpbmNsdWRlc1JlZi0+eyI8d3Rm
LyR7dHlwZX0uaD4ifSA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBkZWZhdWx0LCBpbmNs
dWRlIHRoZSBzYW1lIG5hbWVkIGZpbGUKICAgICAgICAgJGluY2x1ZGVzUmVmLT57IiR7dHlwZX0u
aCJ9ID0gMTsKQEAgLTY5MSw3ICs2OTMsMTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgfQog
CiAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
R2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgewotICAgICAgICAkaGVhZGVySW5jbHVkZXN7IiRp
bXBsQ2xhc3NOYW1lLmgifSA9IDE7CisgICAgICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCRpbXBs
Q2xhc3NOYW1lKSkgeworICAgICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8d3RmLyRpbXBsQ2xh
c3NOYW1lLmg+In0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGhlYWRlcklu
Y2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5oIn0gPSAxOworICAgICAgICB9CiAgICAgfQogICAgIAog
ICAgICRoZWFkZXJJbmNsdWRlc3siPHJ1bnRpbWUvSlNPYmplY3QuaD4ifSA9IDE7CkBAIC0yODg0
LDcgKzI4OTAsMTEgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgIH0gZWxzZSB7CiAgICAgICAg
ICMgRGVmYXVsdCwgaW5jbHVkZSBoZWFkZXIgd2l0aCBzYW1lIG5hbWUuCiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiJHR5cGUuaCIsICRjb25kaXRpb25hbCkgaWYgbm90ICRjb2RlR2VuZXJhdG9y
LT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSk7CisgICAgICAgIGlmIChJc1R5cGVkQXJyYXlU
eXBlKCR0eXBlKSkgeworICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjx3dGYvJHR5cGUu
aD4iLCAkY29uZGl0aW9uYWwpIGlmIG5vdCAkY29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25P
ZlR5cGUoJHR5cGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIiR0eXBlLmgiLCAkY29uZGl0aW9uYWwpIGlmIG5vdCAkY29kZUdlbmVyYXRvci0+QXZv
aWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJu
ICR2YWx1ZSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2
NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zs
b2F0NjRBcnJheS5jcHAKaW5kZXggZjFmNmU2MTQwODZlMDNjNWQ0ZmU4ODRmYzBjN2RmMGQwMmNm
NjkzMy4uYWM4OGQ5YTVkNzNiNWJmY2Q1NTRiZGUxYzdlNTc0YTU3ZjcwYzkzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9h
dDY0QXJyYXkuY3BwCkBAIC0yMSw4ICsyMSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNGbG9hdDY0QXJyYXkuaCIKIAotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvRmxvYXQ2
NEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlND
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
RmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNGbG9hdDY0QXJyYXkuaAppbmRleCA0ZTNiYmMzMjQ2Njc1NTcyZjMxN2I5OGJmNDYwNDFkZDJj
ZjNmMGZhLi4wMDcwNGRmZmJiMTNiY2FlYTczZWQ4ODU1NDc0ZGIyNjBlYzM1YTYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJy
YXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9h
dDY0QXJyYXkuaApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaWZuZGVmIEpTRmxvYXQ2NEFycmF5X2gK
ICNkZWZpbmUgSlNGbG9hdDY0QXJyYXlfaAogCi0jaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAj
aW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8d3RmL0Zsb2F0NjRBcnJh
eS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaApp
bmRleCAwMzBlMTg2YTgzMzA0MzlkOWM0NDFiMjMzODdjYjQyZDExZjk3OWYxLi4zYTk2ODhhMjE1
NTA4NDdkZGIxNTVhNjNjZDlkZTc5NzdkMDQyNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5oCkBAIC0yOCwxMyArMjgsMTMgQEAKICNpZm5kZWYgTWVzc2FnZUV2ZW50X2gKICNkZWZpbmUg
TWVzc2FnZUV2ZW50X2gKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiQmxv
Yi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmlu
ZGV4IDU4NWIwMTM3ZWM1YmNkYjkxYzFhNTM3MjhkNGU2ZjZhNDgxZTA3MjguLjI5YzU5ODQ3MDcz
YjQzYzIyNDVjNTIwNzMyNGRjY2ViYmExY2FhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyLmNwcApAQCAtMzQsMTMgKzM0LDEzIEBACiAKICNpbmNsdWRlICJGaWxlUmVhZGVyLmgi
CiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5o
IgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiT3Bl
cmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0FycmF5
QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
LmNwcAppbmRleCAxYjU0MTI4OGQwZjcyMWZmZjY3ODkxZTMyMjFjMDMwNDRlZGYwNWNjLi41ZmI2
MDYxYzBmODY0NjA1OGVmMjczYjQ5NjEyYTJjZjU0ODRkZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1
ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5j
bHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JVUkwuaCIK
QEAgLTQ1LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuY3BwCmluZGV4IDg1ZTdmNTJh
ZDMxN2ViZWE3MTE5NDE5M2EyMzUzOTAyY2M5MmQ1YTkuLjFmZTVjN2Y3M2FlMzkwNTljZjQ5NjUz
MzM5NTlmNjgyYjIwNGM4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlclN5bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5
bmMuY3BwCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2luY2x1ZGUgIkZpbGVSZWFkZXJTeW5jLmgi
CiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRl
ICJCbG9iVVJMLmgiCiAjaW5jbHVkZSAiRmlsZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkZpbGVS
ZWFkZXJMb2FkZXIuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3BwCmluZGV4IDA2NzFlMDUzNWQyMzE4NWZhMTVj
MWRkZTVmNThlY2RhMzZjMTFkY2EuLmE4MTBhZDhmNTQyZDE5ZjE2YzUzY2ExNzdkZDMwZDU1NjFm
MWUxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3Bw
CkBAIC0zMiwxMiArMzIsMTIgQEAKIAogI2luY2x1ZGUgIldlYktpdEJsb2JCdWlsZGVyLmgiCiAK
LSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkxpbmVFbmRpbmcu
aCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQxYjdmNjM3NjE0OTBlYzJjNDljZjVkM2IwZjJlNjBk
MzYxMDAzOWEuLmI2MDZjZjc0MzYwZjdlZmFiNDhmZmIxMDA5YTExNWMzNjcyNjkwN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsMTAgKzcxLDEwIEBA
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNs
dWRlICJVVUlELmgiCi0jaW5jbHVkZSAiVWludDhBcnJheS5oIgogI2luY2x1ZGUgPGxpbWl0cz4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzOGRkYTYxMWEwZGU4N2FiZDRiMjRmNDY1ZjZmMWI0NzBmM2Y0OGNjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE4NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCi0jaW5j
bHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCi0KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIGludCBjbGFt
cFZhbHVlKGludCB4LCBpbnQgbGVmdCwgaW50IHJpZ2h0KQotewotICAgIEFTU0VSVChsZWZ0IDw9
IHJpZ2h0KTsKLSAgICBpZiAoeCA8IGxlZnQpCi0gICAgICAgIHggPSBsZWZ0OwotICAgIGlmIChy
aWdodCA8IHgpCi0gICAgICAgIHggPSByaWdodDsKLSAgICByZXR1cm4geDsKLX0KLQotUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZSh1bnNpZ25lZCBudW1FbGVtZW50
cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplKQotewotICAgIEFycmF5QnVmZmVyQ29udGVudHMg
Y29udGVudHM7Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2NhdGUobnVtRWxlbWVu
dHMsIGVsZW1lbnRCeXRlU2l6ZSwgY29udGVudHMpOwotICAgIGlmICghY29udGVudHMubV9kYXRh
KQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFycmF5QnVmZmVy
KGNvbnRlbnRzKSk7Ci19Ci0KLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpj
cmVhdGUoQXJyYXlCdWZmZXIqIG90aGVyKQotewotICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKG90aGVyLT5kYXRhKCksIG90aGVyLT5ieXRlTGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IHZvaWQqIHNvdXJjZSwgdW5z
aWduZWQgYnl0ZUxlbmd0aCkKLXsKLSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIGNvbnRlbnRzOwot
ICAgIEFycmF5QnVmZmVyQ29udGVudHM6OnRyeUFsbG9jYXRlKGJ5dGVMZW5ndGgsIDEsIGNvbnRl
bnRzKTsKLSAgICBpZiAoIWNvbnRlbnRzLm1fZGF0YSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBhZG9wdFJlZihuZXcgQXJyYXlCdWZmZXIoY29u
dGVudHMpKTsKLSAgICBtZW1jcHkoYnVmZmVyLT5kYXRhKCksIHNvdXJjZSwgYnl0ZUxlbmd0aCk7
Ci0gICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7Ci19Ci0KLVBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoQXJyYXlCdWZmZXJDb250ZW50cyYgY29udGVudHMpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcnJheUJ1ZmZlcihjb250ZW50cykpOwotfQotCi1B
cnJheUJ1ZmZlcjo6QXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYgY29udGVudHMpCi0g
ICAgOiBtX2ZpcnN0VmlldygwKQotewotICAgIGNvbnRlbnRzLnRyYW5zZmVyKG1fY29udGVudHMp
OwotfQotCi12b2lkKiBBcnJheUJ1ZmZlcjo6ZGF0YSgpCi17Ci0gICAgcmV0dXJuIG1fY29udGVu
dHMubV9kYXRhOwotfQotCi1jb25zdCB2b2lkKiBBcnJheUJ1ZmZlcjo6ZGF0YSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fY29udGVudHMubV9kYXRhOwotfQotCi11bnNpZ25lZCBBcnJheUJ1ZmZl
cjo6Ynl0ZUxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGVudHMubV9zaXplSW5C
eXRlczsKLX0KLQotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OnNsaWNlKGlu
dCBiZWdpbiwgaW50IGVuZCkgY29uc3QKLXsKLSAgICByZXR1cm4gc2xpY2VJbXBsKGNsYW1wSW5k
ZXgoYmVnaW4pLCBjbGFtcEluZGV4KGVuZCkpOwotfQotCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBBcnJheUJ1ZmZlcjo6c2xpY2UoaW50IGJlZ2luKSBjb25zdAotewotICAgIHJldHVybiBzbGlj
ZUltcGwoY2xhbXBJbmRleChiZWdpbiksIGJ5dGVMZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpzbGljZUltcGwodW5zaWduZWQgYmVnaW4sIHVuc2ln
bmVkIGVuZCkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBzaXplID0gYmVnaW4gPD0gZW5kID8gZW5k
IC0gYmVnaW4gOiAwOwotICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0
PGNvbnN0IGNoYXIqPihkYXRhKCkpICsgYmVnaW4sIHNpemUpOwotfQotCi11bnNpZ25lZCBBcnJh
eUJ1ZmZlcjo6Y2xhbXBJbmRleChpbnQgaW5kZXgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgY3Vy
cmVudExlbmd0aCA9IGJ5dGVMZW5ndGgoKTsKLSAgICBpZiAoaW5kZXggPCAwKQotICAgICAgICBp
bmRleCA9IGN1cnJlbnRMZW5ndGggKyBpbmRleDsKLSAgICByZXR1cm4gY2xhbXBWYWx1ZShpbmRl
eCwgMCwgY3VycmVudExlbmd0aCk7Ci19Ci0KLWJvb2wgQXJyYXlCdWZmZXI6OnRyYW5zZmVyKEFy
cmF5QnVmZmVyQ29udGVudHMmIHJlc3VsdCwgVmVjdG9yPEFycmF5QnVmZmVyVmlldyo+JiBuZXV0
ZXJlZFZpZXdzKQotewotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4ga2VlcEFsaXZlKHRoaXMpOwot
Ci0gICAgaWYgKCFtX2NvbnRlbnRzLm1fZGF0YSkgewotICAgICAgICByZXN1bHQubV9kYXRhID0g
MDsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIG1fY29udGVudHMudHJhbnNm
ZXIocmVzdWx0KTsKLQotICAgIHdoaWxlIChtX2ZpcnN0VmlldykgewotICAgICAgICBBcnJheUJ1
ZmZlclZpZXcqIGN1cnJlbnQgPSBtX2ZpcnN0VmlldzsKLSAgICAgICAgcmVtb3ZlVmlldyhjdXJy
ZW50KTsKLSAgICAgICAgY3VycmVudC0+bmV1dGVyKCk7Ci0gICAgICAgIG5ldXRlcmVkVmlld3Mu
YXBwZW5kKGN1cnJlbnQpOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQXJyYXlCdWZm
ZXJDb250ZW50czo6fkFycmF5QnVmZmVyQ29udGVudHMoKQotewotICAgIFdURjo6ZmFzdEZyZWUo
bV9kYXRhKTsKLX0KLQotdm9pZCBBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZSh1bnNp
Z25lZCBudW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1ZmZlckNv
bnRlbnRzJiByZXN1bHQpCi17Ci0gICAgLy8gRG8gbm90IGFsbG93IDMyLWJpdCBvdmVyZmxvdyBv
ZiB0aGUgdG90YWwgc2l6ZS4KLSAgICAvLyBGSVhNRTogV2h5IG5vdD8gVGhlIHRyeUZhc3RDYWxs
b2MgZnVuY3Rpb24gYWxyZWFkeSBjaGVja3MgaXRzIGFyZ3VtZW50cywKLSAgICAvLyBhbmQgd2ls
bCBmYWlsIGlmIHRoZXJlIGlzIGFueSBvdmVyZmxvdywgc28gd2h5IHNob3VsZCB3ZSBpbmNsdWRl
IGEKLSAgICAvLyByZWR1ZGFudCB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlIGNoZWNrIGhlcmU/
Ci0gICAgaWYgKG51bUVsZW1lbnRzKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRvdGFsU2l6ZSA9IG51
bUVsZW1lbnRzICogZWxlbWVudEJ5dGVTaXplOwotICAgICAgICBpZiAodG90YWxTaXplIC8gbnVt
RWxlbWVudHMgIT0gZWxlbWVudEJ5dGVTaXplKSB7Ci0gICAgICAgICAgICByZXN1bHQubV9kYXRh
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoV1RG
Ojp0cnlGYXN0Q2FsbG9jKG51bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUpLmdldFZhbHVlKHJl
c3VsdC5tX2RhdGEpKSB7Ci0gICAgICAgIHJlc3VsdC5tX3NpemVJbkJ5dGVzID0gbnVtRWxlbWVu
dHMgKiBlbGVtZW50Qnl0ZVNpemU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgcmVzdWx0
Lm1fZGF0YSA9IDA7Ci19Ci0KLXZvaWQgQXJyYXlCdWZmZXI6OmFkZFZpZXcoQXJyYXlCdWZmZXJW
aWV3KiB2aWV3KQotewotICAgIHZpZXctPm1fYnVmZmVyID0gdGhpczsKLSAgICB2aWV3LT5tX3By
ZXZWaWV3ID0gMDsKLSAgICB2aWV3LT5tX25leHRWaWV3ID0gbV9maXJzdFZpZXc7Ci0gICAgaWYg
KG1fZmlyc3RWaWV3KQotICAgICAgICBtX2ZpcnN0Vmlldy0+bV9wcmV2VmlldyA9IHZpZXc7Ci0g
ICAgbV9maXJzdFZpZXcgPSB2aWV3OwotfQotCi12b2lkIEFycmF5QnVmZmVyOjpyZW1vdmVWaWV3
KEFycmF5QnVmZmVyVmlldyogdmlldykKLXsKLSAgICBBU1NFUlQodGhpcyA9PSB2aWV3LT5tX2J1
ZmZlcik7Ci0gICAgaWYgKHZpZXctPm1fbmV4dFZpZXcpCi0gICAgICAgIHZpZXctPm1fbmV4dFZp
ZXctPm1fcHJldlZpZXcgPSB2aWV3LT5tX3ByZXZWaWV3OwotICAgIGlmICh2aWV3LT5tX3ByZXZW
aWV3KQotICAgICAgICB2aWV3LT5tX3ByZXZWaWV3LT5tX25leHRWaWV3ID0gdmlldy0+bV9uZXh0
VmlldzsKLSAgICBpZiAobV9maXJzdFZpZXcgPT0gdmlldykKLSAgICAgICAgbV9maXJzdFZpZXcg
PSB2aWV3LT5tX25leHRWaWV3OwotICAgIHZpZXctPm1fcHJldlZpZXcgPSB2aWV3LT5tX25leHRW
aWV3ID0gMDsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNTM0MjJmYmM3NWM1NTY2MmNlMmQ1ZjU3
NmI1MmMxMDg4OWRjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBBcnJheUJ1ZmZlcl9oCi0j
ZGVmaW5lIEFycmF5QnVmZmVyX2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEFycmF5QnVmZmVy
OwotY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwotCi1jbGFzcyBBcnJheUJ1ZmZlckNvbnRlbnRzIHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRlbnRzKTsKLXB1YmxpYzoK
LSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzKCkgCi0gICAgICAgIDogbV9kYXRhKDApCi0gICAgICAg
ICwgbV9zaXplSW5CeXRlcygwKQotICAgIHsgfQotCi0gICAgfkFycmF5QnVmZmVyQ29udGVudHMo
KTsKLQotICAgIHZvaWQqIGRhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KLSAgICB1bnNpZ25lZCBz
aXplSW5CeXRlcygpIHsgcmV0dXJuIG1fc2l6ZUluQnl0ZXM7IH0KLQotcHJpdmF0ZToKLSAgICBB
cnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQqIGRhdGEsIHVuc2lnbmVkIHNpemVJbkJ5dGVzKSAKLSAg
ICAgICAgOiBtX2RhdGEoZGF0YSkKLSAgICAgICAgLCBtX3NpemVJbkJ5dGVzKHNpemVJbkJ5dGVz
KQotICAgIHsgfQotCi0gICAgZnJpZW5kIGNsYXNzIEFycmF5QnVmZmVyOwotCi0gICAgc3RhdGlj
IHZvaWQgdHJ5QWxsb2NhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRC
eXRlU2l6ZSwgQXJyYXlCdWZmZXJDb250ZW50cyYpOwotICAgIHZvaWQgdHJhbnNmZXIoQXJyYXlC
dWZmZXJDb250ZW50cyYgb3RoZXIpIAotICAgIHsKLSAgICAgICAgQVNTRVJUKCFvdGhlci5tX2Rh
dGEpOwotICAgICAgICBvdGhlci5tX2RhdGEgPSBtX2RhdGE7Ci0gICAgICAgIG90aGVyLm1fc2l6
ZUluQnl0ZXMgPSBtX3NpemVJbkJ5dGVzOwotICAgICAgICBtX2RhdGEgPSAwOyAKLSAgICAgICAg
bV9zaXplSW5CeXRlcyA9IDA7IAotICAgIH0KLQotICAgIHZvaWQqIG1fZGF0YTsKLSAgICB1bnNp
Z25lZCBtX3NpemVJbkJ5dGVzOwotfTsKLQotY2xhc3MgQXJyYXlCdWZmZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxBcnJheUJ1ZmZlcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBjcmVhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRC
eXRlU2l6ZSk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJh
eUJ1ZmZlciopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUoY29u
c3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKEFycmF5QnVmZmVyQ29udGVudHMmKTsKLQotICAgIHZv
aWQqIGRhdGEoKTsKLSAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQg
Ynl0ZUxlbmd0aCgpIGNvbnN0OwotCi0gICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gc2xpY2Uo
aW50IGJlZ2luLCBpbnQgZW5kKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBz
bGljZShpbnQgYmVnaW4pIGNvbnN0OwotCi0gICAgdm9pZCBhZGRWaWV3KEFycmF5QnVmZmVyVmll
dyopOwotICAgIHZvaWQgcmVtb3ZlVmlldyhBcnJheUJ1ZmZlclZpZXcqKTsKLQotICAgIGJvb2wg
dHJhbnNmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYsIFZlY3RvcjxBcnJheUJ1ZmZlclZpZXcqPiYg
bmV1dGVyZWRWaWV3cyk7Ci0KLSAgICB+QXJyYXlCdWZmZXIoKSB7IH0KLQotcHJpdmF0ZToKLSAg
ICBBcnJheUJ1ZmZlcihBcnJheUJ1ZmZlckNvbnRlbnRzJik7Ci0gICAgUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gc2xpY2VJbXBsKHVuc2lnbmVkIGJlZ2luLCB1bnNpZ25lZCBlbmQpIGNvbnN0Owot
ICAgIHVuc2lnbmVkIGNsYW1wSW5kZXgoaW50IGluZGV4KSBjb25zdDsKLQotICAgIEFycmF5QnVm
ZmVyQ29udGVudHMgbV9jb250ZW50czsKLSAgICBBcnJheUJ1ZmZlclZpZXcqIG1fZmlyc3RWaWV3
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6QXJyYXlCdWZmZXI7Ci0K
LSNlbmRpZiAvLyBBcnJheUJ1ZmZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjgxZmNj
MWRkYmFkNmU2OTRjMTI2ODUxNDZkY2NiMjRjNWMxOTczOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlclZpZXcuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCi0KLSNp
bmNsdWRlICJBcnJheUJ1ZmZlci5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotbmFt
ZXNwYWNlIFdURiB7Ci0KLUFycmF5QnVmZmVyVmlldzo6QXJyYXlCdWZmZXJWaWV3KFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Ynl0ZU9mZnNldCkKLSAgICAgICAgOiBtX2J5dGVPZmZzZXQoYnl0ZU9mZnNldCkKLSAgICAgICAg
LCBtX2J1ZmZlcihidWZmZXIpCi17Ci0gICAgbV9iYXNlQWRkcmVzcyA9IG1fYnVmZmVyID8gKHN0
YXRpY19jYXN0PGNoYXIqPihtX2J1ZmZlci0+ZGF0YSgpKSArIG1fYnl0ZU9mZnNldCkgOiAwOwot
ICAgIGlmIChtX2J1ZmZlcikgCi0gICAgICAgIG1fYnVmZmVyLT5hZGRWaWV3KHRoaXMpOwotfQot
Ci1BcnJheUJ1ZmZlclZpZXc6On5BcnJheUJ1ZmZlclZpZXcoKQotewotICAgIGlmIChtX2J1ZmZl
cikKLSAgICAgICAgbV9idWZmZXItPnJlbW92ZVZpZXcodGhpcyk7Ci19Ci0KLWJvb2wgQXJyYXlC
dWZmZXJWaWV3OjpzZXRJbXBsKEFycmF5QnVmZmVyVmlldyogYXJyYXksIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQpCi17Ci0gICAgaWYgKGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKLSAgICAgICAgfHwg
Ynl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPiBieXRlTGVuZ3RoKCkKLSAgICAgICAg
fHwgYnl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPCBieXRlT2Zmc2V0KSB7Ci0gICAg
ICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIGNoYXIqIGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFzZUFk
ZHJlc3MoKSk7Ci0gICAgbWVtbW92ZShiYXNlICsgYnl0ZU9mZnNldCwgYXJyYXktPmJhc2VBZGRy
ZXNzKCksIGFycmF5LT5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29s
IEFycmF5QnVmZmVyVmlldzo6c2V0UmFuZ2VJbXBsKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBk
YXRhQnl0ZUxlbmd0aCwgdW5zaWduZWQgYnl0ZU9mZnNldCkKLXsKLSAgICBpZiAoYnl0ZU9mZnNl
dCA+IGJ5dGVMZW5ndGgoKQotICAgICAgICB8fCBieXRlT2Zmc2V0ICsgZGF0YUJ5dGVMZW5ndGgg
PiBieXRlTGVuZ3RoKCkKLSAgICAgICAgfHwgYnl0ZU9mZnNldCArIGRhdGFCeXRlTGVuZ3RoIDwg
Ynl0ZU9mZnNldCkgewotICAgICAgICAvLyBPdXQgb2YgcmFuZ2Ugb2Zmc2V0IG9yIG92ZXJmbG93
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBjaGFyKiBiYXNlID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwotICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZz
ZXQsIGRhdGEsIGRhdGFCeXRlTGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBB
cnJheUJ1ZmZlclZpZXc6Onplcm9SYW5nZUltcGwodW5zaWduZWQgYnl0ZU9mZnNldCwgc2l6ZV90
IHJhbmdlQnl0ZUxlbmd0aCkKLXsKLSAgICBpZiAoYnl0ZU9mZnNldCA+IGJ5dGVMZW5ndGgoKQot
ICAgICAgICB8fCBieXRlT2Zmc2V0ICsgcmFuZ2VCeXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCi0g
ICAgICAgIHx8IGJ5dGVPZmZzZXQgKyByYW5nZUJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7Ci0g
ICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIGNoYXIqIGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFz
ZUFkZHJlc3MoKSk7Ci0gICAgbWVtc2V0KGJhc2UgKyBieXRlT2Zmc2V0LCAwLCByYW5nZUJ5dGVM
ZW5ndGgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEFycmF5QnVmZmVyVmlldzo6Y2Fs
Y3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYXlT
aXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQq
IG9mZnNldCwgdW5zaWduZWQqIGxlbmd0aCkKLXsKLSAgICBpZiAoc3RhcnQgPCAwKQotICAgICAg
ICBzdGFydCArPSBhcnJheVNpemU7Ci0gICAgaWYgKHN0YXJ0IDwgMCkKLSAgICAgICAgc3RhcnQg
PSAwOwotICAgIGlmIChlbmQgPCAwKQotICAgICAgICBlbmQgKz0gYXJyYXlTaXplOwotICAgIGlm
IChlbmQgPCAwKQotICAgICAgICBlbmQgPSAwOwotICAgIGlmIChlbmQgPCBzdGFydCkKLSAgICAg
ICAgZW5kID0gc3RhcnQ7Ci0gICAgKm9mZnNldCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdGFy
dCk7Ci0gICAgKmxlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBzdGFydCk7Ci19
Ci0KLXZvaWQgQXJyYXlCdWZmZXJWaWV3OjpuZXV0ZXIoKQotewotICAgIG1fYnVmZmVyID0gMDsK
LSAgICBtX2J5dGVPZmZzZXQgPSAwOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyVmlldy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTgz
YTY5Mjk0OWQzYzdlYmVjODAyZDY1YTUyZjkwMTYxNzI3OGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyVmlldy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaWZuZGVmIEFycmF5QnVmZmVyVmlld19oCi0jZGVmaW5lIEFycmF5QnVmZmVyVmlld19oCi0K
LSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgotCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1
ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXVEYg
ewotCi1jbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZl
clZpZXc+IHsKLSAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVBcnJheSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXko
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Nob3J0QXJyYXko
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzSW50
QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2ln
bmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICBQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fYnVmZmVy
OwotICAgIH0KLQotICAgIHZvaWQqIGJhc2VBZGRyZXNzKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX2Jhc2VBZGRyZXNzOwotICAgIH0KLQotICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fYnl0ZU9mZnNldDsKLSAgICB9Ci0KLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFs
IH5BcnJheUJ1ZmZlclZpZXcoKTsKLQotICBwcm90ZWN0ZWQ6Ci0gICAgQXJyYXlCdWZmZXJWaWV3
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCk7Ci0K
LSAgICBib29sIHNldEltcGwoQXJyYXlCdWZmZXJWaWV3KiwgdW5zaWduZWQgYnl0ZU9mZnNldCk7
Ci0KLSAgICBib29sIHNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUJ5
dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQpOwotCi0gICAgYm9vbCB6ZXJvUmFuZ2VJbXBs
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNpemVfdCByYW5nZUJ5dGVMZW5ndGgpOwotCi0gICAgc3Rh
dGljIHZvaWQgY2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVuZCwgdW5z
aWduZWQgYXJyYXlTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCogb2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKTsKLQotICAgIC8vIEhlbHBlciB0
byB2ZXJpZnkgdGhhdCBhIGdpdmVuIHN1Yi1yYW5nZSBvZiBhbiBBcnJheUJ1ZmZlciBpcwotICAg
IC8vIHdpdGhpbiByYW5nZS4KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgICBzdGF0aWMg
Ym9vbCB2ZXJpZnlTdWJSYW5nZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1FbGVtZW50cykKLSAgICB7Ci0gICAg
ICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAo
c2l6ZW9mKFQpID4gMSAmJiBieXRlT2Zmc2V0ICUgc2l6ZW9mKFQpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB1bnNpZ25lZCByZW1haW5pbmdF
bGVtZW50cyA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIGJ5dGVPZmZzZXQpIC8gc2l6ZW9mKFQp
OwotICAgICAgICBpZiAobnVtRWxlbWVudHMgPiByZW1haW5pbmdFbGVtZW50cykKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgLy8g
SW5wdXQgb2Zmc2V0IGlzIGluIG51bWJlciBvZiBlbGVtZW50cyBmcm9tIHRoaXMgYXJyYXkncyB2
aWV3OwotICAgIC8vIG91dHB1dCBvZmZzZXQgaXMgaW4gbnVtYmVyIG9mIGJ5dGVzIGZyb20gdGhl
IHVuZGVybHlpbmcgYnVmZmVyJ3Mgdmlldy4KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAg
ICBzdGF0aWMgdm9pZCBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGFycmF5Qnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkICpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCAqbnVtRWxlbWVudHMpCi0gICAgewotICAgICAgICB1
bnNpZ25lZCBtYXhPZmZzZXQgPSAoVUlOVF9NQVggLSBhcnJheUJ5dGVPZmZzZXQpIC8gc2l6ZW9m
KFQpOwotICAgICAgICBpZiAoKm9mZnNldCA+IG1heE9mZnNldCkgewotICAgICAgICAgICAgKm9m
ZnNldCA9IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOwotICAgICAgICAgICAgKm51bUVsZW1lbnRzID0g
MDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqb2Zmc2V0ID0gYXJy
YXlCeXRlT2Zmc2V0ICsgKm9mZnNldCAqIHNpemVvZihUKTsKLSAgICAgICAgKm9mZnNldCA9IHN0
ZDo6bWluKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpLCAqb2Zmc2V0KTsKLSAgICAgICAgdW5zaWduZWQg
cmVtYWluaW5nRWxlbWVudHMgPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSAqb2Zmc2V0KSAvIHNp
emVvZihUKTsKLSAgICAgICAgKm51bUVsZW1lbnRzID0gc3RkOjptaW4ocmVtYWluaW5nRWxlbWVu
dHMsICpudW1FbGVtZW50cyk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOwot
Ci0gICAgLy8gVGhpcyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgQXJyYXlCdWZmZXIncyBzdG9yYWdl
LCBwbHVzIHRoZSBieXRlIG9mZnNldC4KLSAgICB2b2lkKiBtX2Jhc2VBZGRyZXNzOwotCi0gICAg
dW5zaWduZWQgbV9ieXRlT2Zmc2V0OwotCi0gIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEFy
cmF5QnVmZmVyOwotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9idWZmZXI7Ci0gICAgQXJyYXlC
dWZmZXJWaWV3KiBtX3ByZXZWaWV3OwotICAgIEFycmF5QnVmZmVyVmlldyogbV9uZXh0VmlldzsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkFycmF5QnVmZmVyVmlldzsK
LQotI2VuZGlmIC8vIEFycmF5QnVmZmVyVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0
YVZpZXcuaAppbmRleCBmMWMyNGI2NTA2NjQ1YmU0MGI5ZTE0ZDYzNWE3YTVlZjM4ZDAyZDE0Li42
M2IxNTZkM2QyZGRmYWVhNDZjZjU0ZGJhOWM4YjNkYWU5MzdhNDM0IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgRGF0YVZpZXdf
aAogI2RlZmluZSBEYXRhVmlld19oCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKKyNp
bmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zs
b2F0MzJBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3YzRiZDUyMDk5
Nzc0MjQwYTI4ZDIxMzRhNDFmOTE4ZjhkZjIwMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFy
cmF5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKLQotbmFtZXNwYWNlIFdURiB7
Ci0KLVBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh1bnNpZ25l
ZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6Y3JlYXRlPEZs
b2F0MzJBcnJheT4obGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0
MzJBcnJheTo6Y3JlYXRlKGNvbnN0IGZsb2F0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmNyZWF0ZTxGbG9hdDMyQXJyYXk+KGFy
cmF5LCBsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5
OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6Y3JlYXRlPEZsb2F0MzJBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQot
Ci1GbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IFR5cGVkQXJy
YXlCYXNlPGZsb2F0PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1Jl
ZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dAotewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBl
bmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5SW1wbDxGbG9hdDMyQXJyYXk+KHN0YXJ0
LCBlbmQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9G
bG9hdDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTFhMTM5N2Q0MDVhYjU3NWM3ZWRkYTBj
NzE2YzgxYmJiYTk5MWMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBGbG9hdDMyQXJyYXlfaAot
I2RlZmluZSBGbG9hdDMyQXJyYXlfaAotCi0jaW5jbHVkZSAiVHlwZWRBcnJheUJhc2UuaCIKLSNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgRmxv
YXQzMkFycmF5IDogcHVibGljIFR5cGVkQXJyYXlCYXNlPGZsb2F0PiB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZShjb25zdCBmbG9hdCog
YXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRl
T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBo
ZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChUeXBl
ZEFycmF5QmFzZTxmbG9hdD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVk
QXJyYXlCYXNlPGZsb2F0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0KLSAgICB2b2lkIHNldCh1
bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49
IFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSk7Ci0gICAgfQotCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBn
ZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyBy
ZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNz
YXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKLSAgICAg
ICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRlOgotICAg
IEZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xh
c3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGZsb2F0PjsKLQotICAgIC8vIE92
ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzRmxvYXRB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgot
Ci11c2luZyBXVEY6OkZsb2F0MzJBcnJheTsKLQotI2VuZGlmIC8vIEZsb2F0MzJBcnJheV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWViYzdkMTJhYmU5ZThlMDUzMWExOTBhMDU4YjllNjE3Y2I0YTkw
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmxvYXQ2
NEFycmF5LmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4g
RmxvYXQ2NEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBl
ZEFycmF5QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5PihsZW5ndGgpOwotfQotCi1Q
YXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2NEFycmF5OjpjcmVhdGUoY29uc3QgZG91Ymxl
KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxk
b3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1Jl
ZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5Pihi
dWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLUZsb2F0NjRBcnJheTo6RmxvYXQ2NEFy
cmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKQotICAgIDogVHlwZWRBcnJheUJhc2U8ZG91YmxlPihidWZmZXIsIGJ5
dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0
NjRBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJh
eShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2
NEFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN1YmFycmF5SW1wbDxGbG9hdDY0QXJyYXk+KHN0YXJ0LCBlbmQpOwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1NjYyNGM2YjM5OWY3NDc2YmE4ZTU5M2ZhODUzMDQ1NDc0NmMzMjE1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIEZsb2F0NjRBcnJheV9oCi0jZGVmaW5lIEZsb2F0NjRBcnJheV9oCi0K
LSNpbmNsdWRlICJUeXBlZEFycmF5QmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFzcyBGbG9hdDY0QXJyYXkgOiBwdWJsaWMgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQ2
NEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
bG9hdDY0QXJyYXk+IGNyZWF0ZShjb25zdCBkb3VibGUqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgp
OwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0g
ICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBj
b21waWxlci4KLSAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTxkb3VibGU+KiBhcnJheSwgdW5z
aWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpzZXQoYXJyYXks
IG9mZnNldCk7IH0KLQotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUp
Ci0gICAgewotICAgICAgICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFR5cGVkQXJyYXlCYXNlPGRvdWJs
ZT46OmRhdGEoKVtpbmRleF0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKLSAgICB9Ci0K
LSAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSBy
YW5nZSBjaGVja3M7IGNhbGxlcgotICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBh
bmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3NhcnkuCi0gICAgZG91YmxlIGl0ZW0odW5z
aWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFy
cmF5QmFzZTxkb3VibGU+OjptX2xlbmd0aCk7Ci0gICAgICAgIGRvdWJsZSByZXN1bHQgPSBUeXBl
ZEFycmF5QmFzZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0KLQotICAgIFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3Rh
cnQpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3Rh
cnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIEZsb2F0NjRBcnJheShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiwKLSAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwK
LSAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICAvLyBNYWtlIGNvbnN0cnVj
dG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KLSAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJh
c2U8ZG91YmxlPjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0g
ICAgdmlydHVhbCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpGbG9hdDY0QXJyYXk7Ci0KLSNl
bmRpZiAvLyBGbG9hdDY0QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50MTZBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFy
cmF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjk5NDRjODVlZGY5ZDBlNzky
NmJiYTFlMzIwY2YyNzEyMjc0YmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSW50MTZBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUGFzc1Jl
ZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFycmF5PihsZW5n
dGgpOwotfQotCi1QYXNzUmVmUHRyPEludDE2QXJyYXk+IEludDE2QXJyYXk6OmNyZWF0ZShzaG9y
dCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8
c2hvcnQ+OjpjcmVhdGU8SW50MTZBcnJheT4oYXJyYXksIGxlbmd0aCk7Ci19Ci0KLVBhc3NSZWZQ
dHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJl
dHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFycmF5PihidWZmZXIsIGJ5
dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLUludDE2QXJyYXk6OkludDE2QXJyYXkoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5n
dGgpCi0gICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNob3J0PihidWZmZXIsIGJ5dGVPZmZz
ZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5Ojpz
dWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5KHN0YXJ0LCBs
ZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6c3ViYXJy
YXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheUltcGw8
SW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDE2QXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZmYWY5ZWJjNzg1
NDc4NmM3MTU4ZDYzNjkxNDg5Yzc4OWYzNWY0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBJbnQx
NkFycmF5X2gKLSNkZWZpbmUgSW50MTZBcnJheV9oCi0KLSNpbmNsdWRlICJJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFzcyBBcnJheUJ1ZmZlcjsKLQot
Y2xhc3MgSW50MTZBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNob3J0PiB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKHVuc2ln
bmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKHNo
b3J0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQx
NkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBi
eXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5n
IiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChU
eXBlZEFycmF5QmFzZTxzaG9ydD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0gICAgdm9pZCBzZXQo
dW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNo
b3J0Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQdHI8SW50MTZBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1
YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgSW50MTZB
cnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0
aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAg
ZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHNob3J0PjsKLQotICAgIC8vIE92ZXJyaWRkZW4g
ZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzU2hvcnRBcnJheSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBX
VEY6OkludDE2QXJyYXk7Ci0KLSNlbmRpZiAvLyBJbnQxNkFycmF5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE1ZGVhMzczYWNiMmFlNzMzY2Y0YzViYjZmZDU1ZWNkMzFmZjY2ZTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50MzJBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgotCi1uYW1lc3Bh
Y2UgV1RGIHsKLQotUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5z
aWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8
SW50MzJBcnJheT4obGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFy
cmF5OjpjcmVhdGUoaW50KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBU
eXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8SW50MzJBcnJheT4oYXJyYXksIGxlbmd0aCk7Ci19
Ci0KLVBhc3NSZWZQdHI8SW50MzJBcnJheT4gSW50MzJBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
KQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8SW50MzJBcnJheT4o
YnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQotCi1JbnQzMkFycmF5OjpJbnQzMkFycmF5
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQotICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+KGJ1ZmZlciwg
Ynl0ZU9mZnNldCwgbGVuZ3RoKQotewotfQotCi1QYXNzUmVmUHRyPEludDMyQXJyYXk+IEludDMy
QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXko
c3RhcnQsIGxlbmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5
OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFy
cmF5SW1wbDxJbnQzMkFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MzJBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmIx
ZTc2MzgxYThmOTU5MGE0MTdhYjExODhiZjcyNzEzMjhkNDA0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDMyQXJyYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgSW50MzJBcnJheV9oCi0jZGVmaW5lIEludDMyQXJyYXlfaAotCi0jaW5jbHVkZSAiSW50ZWdy
YWxUeXBlZEFycmF5QmFzZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgSW50MzJBcnJh
eSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD4gewotcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZShpbnQqIGFycmF5LCB1bnNpZ25l
ZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCk7Ci0KLSAgICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVn
IGluIHRoZSBSVkNUIGNvbXBpbGVyLgotICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPGludD4q
IGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OnNl
dChhcnJheSwgb2Zmc2V0KTsgfQotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUg
dmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsg
fQotCi0gICAgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0
OwotICAgIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3RydWN0b3Ig
dmlzaWJsZSB0byBzdXBlcmNsYXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxp
bnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KLSAgICB2aXJ0
dWFsIGJvb2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkludDMyQXJyYXk7Ci0KLSNlbmRpZiAvLyBJbnQz
MkFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJh
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGU1ODgxNWMyYjg2NzljODU4OWIzNTU3ZjBkYTAxZTcw
MzU0ZjY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW50
OEFycmF5LmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPEludDhBcnJheT4gSW50
OEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJbnQ4QXJyYXk+KGxlbmd0aCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OmNyZWF0ZShzaWduZWQgY2hhciogYXJyYXksIHVu
c2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+
OjpjcmVhdGU8SW50OEFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQ4
QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwg
dW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBl
ZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJbnQ4QXJyYXk+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKTsKLX0KLQotSW50OEFycmF5OjpJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0g
ICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPihidWZmZXIsIGJ5dGVPZmZz
ZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6c3Vi
YXJyYXkoaW50IHN0YXJ0KSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVu
Z3RoKCkpOwotfQotCi1QYXNzUmVmUHRyPEludDhBcnJheT4gSW50OEFycmF5OjpzdWJhcnJheShp
bnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5SW1wbDxJbnQ4
QXJyYXk+KHN0YXJ0LCBlbmQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhB
cnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzZkMWJiZjFmMzQ4NDk3OWZk
OTJhZTVmNTNhZWE2MDNiMGFmMTU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBJbnQ4QXJyYXlfaAot
I2RlZmluZSBJbnQ4QXJyYXlfaAotCi0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5o
IgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNsYXNzIEludDhB
cnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPiB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IGNyZWF0ZShzaWduZWQgY2hh
ciogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50OEFy
cmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRl
T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBo
ZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChUeXBl
ZEFycmF5QmFzZTxzaWduZWQgY2hhcj4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJu
IFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0gICAg
dm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJy
YXlCYXNlPHNpZ25lZCBjaGFyPjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQ
dHI8SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8
SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRl
OgotICAgIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNs
YXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj47Ci0KLSAg
ICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBp
c0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi11c2luZyBXVEY6OkludDhBcnJheTsKLQotI2VuZGlmIC8vIEludDhBcnJheV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ZjgyYTM2MWM2ZWZlYjZjNDZhY2Nk
NzQ1YzMxNTdiMmUwMjIzZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFz
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSW50
ZWdyYWxUeXBlZEFycmF5QmFzZV9oCi0jZGVmaW5lIEludGVncmFsVHlwZWRBcnJheUJhc2VfaAot
Ci0jaW5jbHVkZSAiVHlwZWRBcnJheUJhc2UuaCIKLSNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KLQotLy8gQmFzZSBjbGFzcyBmb3IgYWxsIFdlYkdMPFQ+QXJy
YXkgdHlwZXMgaG9sZGluZyBpbnRlZ3JhbAotLy8gKG5vbi1mbG9hdGluZy1wb2ludCkgdmFsdWVz
LgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBJbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJyYXlCYXNlPFQ+IHsKLSAgcHVibGlj
OgotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCi0gICAgewotICAg
ICAgICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBpZiAoaXNuYW4odmFsdWUpKSAvLyBDbGFtcCBOYU4gdG8gMAot
ICAgICAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICAvLyBUaGUgZG91YmxlIGNhc3QgaXMgbmVj
ZXNzYXJ5IHRvIGdldCB0aGUgY29ycmVjdCB3cmFwcGluZwotICAgICAgICAvLyBmb3Igb3V0LW9m
LXJhbmdlIHZhbHVlcyB3aXRoIEludDMyQXJyYXkgYW5kIFVpbnQzMkFycmF5LgotICAgICAgICBU
eXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PFQ+KHN0YXRpY19j
YXN0PGludDY0X3Q+KHZhbHVlKSk7Ci0gICAgfQotCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5k
ZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAv
LyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMg
bmVjZXNzYXJ5LgotICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Ci0gICAgICAg
IHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKLSAgICB9Ci0KLSAgcHJv
dGVjdGVkOgotICAgIEludGVncmFsVHlwZWRBcnJheUJhc2UoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0gICAgICAg
IDogVHlwZWRBcnJheUJhc2U8VD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi0gICAgewot
ICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkludGVncmFsVHlw
ZWRBcnJheUJhc2U7Ci0KLSNlbmRpZiAvLyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5QmFzZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhZTMwYzE3YzI4NmNjNmZlYjgzZTVmNTM2NWI5NTM3MjZmM2YxOTRkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgVHlwZWRBcnJheUJhc2VfaAotI2RlZmluZSBUeXBl
ZEFycmF5QmFzZV9oCi0KLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgotI2luY2x1ZGUgIkFycmF5
QnVmZmVyVmlldy5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1jbGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewotICBwdWJs
aWM6Ci0gICAgVCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihiYXNlQWRk
cmVzcygpKTsgfQotCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8VD4qIGFycmF5LCB1bnNp
Z25lZCBvZmZzZXQpCi0gICAgewotICAgICAgICByZXR1cm4gc2V0SW1wbChhcnJheSwgb2Zmc2V0
ICogc2l6ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICBib29sIHNldFJhbmdlKGNvbnN0IFQqIGRhdGEs
IHNpemVfdCBkYXRhTGVuZ3RoLCB1bnNpZ25lZCBvZmZzZXQpCi0gICAgewotICAgICAgICByZXR1
cm4gc2V0UmFuZ2VJbXBsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBkYXRh
TGVuZ3RoICogc2l6ZW9mKFQpLCBvZmZzZXQgKiBzaXplb2YoVCkpOwotICAgIH0KLQotICAgIGJv
b2wgemVyb1JhbmdlKHVuc2lnbmVkIG9mZnNldCwgc2l6ZV90IGxlbmd0aCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB6ZXJvUmFuZ2VJbXBsKG9mZnNldCAqIHNpemVvZihUKSwgbGVuZ3RoICogc2l6
ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3
LiBUaGlzIG11c3QgYmUgcHVibGljIGJlY2F1c2Ugb2YKLSAgICAvLyBydWxlcyBhYm91dCBpbmhl
cml0YW5jZSBvZiBtZW1iZXJzIGluIHRlbXBsYXRlIGNsYXNzZXMsIGFuZAotICAgIC8vIGJlY2F1
c2UgaXQgaXMgYWNjZXNzZWQgdmlhIHBvaW50ZXJzIHRvIHN1YmNsYXNzZXMuCi0gICAgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2xlbmd0aDsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fbGVuZ3RoICogc2l6ZW9mKFQpOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAg
IFR5cGVkQXJyYXlCYXNlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotICAgICAgICA6IEFycmF5QnVmZmVyVmlldyhi
dWZmZXIsIGJ5dGVPZmZzZXQpCi0gICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3ViY2xhc3M+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCi0gICAgewotICAgICAgICBSZWZQ
dHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUobGVuZ3RoLCBzaXpl
b2YoVCkpOwotICAgICAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKLSAgICAgICAgICAgIHJldHVybiAw
OwotICAgICAgICByZXR1cm4gY3JlYXRlPFN1YmNsYXNzPihidWZmZXIsIDAsIGxlbmd0aCk7Ci0g
ICAgfQotCi0gICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN1YmNsYXNzPiBjcmVhdGUoY29uc3QgVCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKLSAg
ICB7Ci0gICAgICAgIFJlZlB0cjxTdWJjbGFzcz4gYSA9IGNyZWF0ZTxTdWJjbGFzcz4obGVuZ3Ro
KTsKLSAgICAgICAgaWYgKGEpCi0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgYS0+c2V0KGksIGFycmF5W2ldKTsKLSAgICAg
ICAgcmV0dXJuIGE7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGxlbmd0aCkKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmKGJ1
ZmZlcik7Ci0gICAgICAgIGlmICghdmVyaWZ5U3ViUmFuZ2U8VD4oYnVmLCBieXRlT2Zmc2V0LCBs
ZW5ndGgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdWJjbGFzcyhidWYsIGJ5dGVPZmZzZXQsIGxlbmd0aCkpOwotICAgIH0KLQotICAgIHRl
bXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KLSAgICBQYXNzUmVmUHRyPFN1YmNsYXNzPiBzdWJhcnJh
eUltcGwoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAotICAgIHsKLSAgICAgICAgdW5zaWduZWQg
b2Zmc2V0LCBsZW5ndGg7Ci0gICAgICAgIGNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChzdGFydCwg
ZW5kLCBtX2xlbmd0aCwgJm9mZnNldCwgJmxlbmd0aCk7Ci0gICAgICAgIGNsYW1wT2Zmc2V0QW5k
TnVtRWxlbWVudHM8VD4oYnVmZmVyKCksIG1fYnl0ZU9mZnNldCwgJm9mZnNldCwgJmxlbmd0aCk7
Ci0gICAgICAgIHJldHVybiBjcmVhdGU8U3ViY2xhc3M+KGJ1ZmZlcigpLCBvZmZzZXQsIGxlbmd0
aCk7Ci0gICAgfQotCi0gICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gaGF2ZSB0byBhY2Nlc3MgdGhp
cyB2aWEgYSB2aXJ0dWFsIGZ1bmN0aW9uIGluIHN1YmNsYXNzZXMsCi0gICAgLy8gd2hpY2ggaXMg
d2h5IGl0IGlzIHByb3RlY3RlZCByYXRoZXIgdGhhbiBwcml2YXRlLgotICAgIHVuc2lnbmVkIG1f
bGVuZ3RoOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6VHlwZWRBcnJh
eUJhc2U7Ci0KLSNlbmRpZiAvLyBUeXBlZEFycmF5QmFzZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9VaW50MTZBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3
Y2RjZmI4YTgyNmMzZmE4MGYxZGM1YmY5ZWQyMmZhYmE5ZjVmNTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
VWludDE2QXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlVpbnQxNkFycmF5LmgiCi0KLW5hbWVzcGFj
ZSBXVEYgewotCi1QYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hv
cnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGxlbmd0aCk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2
QXJyYXk+IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgc2hvcnQqIGFycmF5LCB1bnNpZ25l
ZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6
Y3JlYXRlPFVpbnQxNkFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50
MTZBcnJheT4gVWludDE2QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4g
VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGJ1ZmZl
ciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0KLQotVWludDE2QXJyYXk6OlVpbnQxNkFycmF5KFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWdu
ZWQgbGVuZ3RoKQotICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD4o
YnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2QXJy
YXk+IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHN1YmFycmF5SW1wbDxVaW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYmIxY2UzM2NlYjBiYWNmNDkyNTdlOWQ0MGZhM2Q4ODVkMjIyM2E2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIFVpbnQxNkFycmF5X2gKLSNkZWZpbmUgVWludDE2QXJyYXlfaAot
Ci0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNsYXNzIFVpbnQxNkFycmF5IDogcHVibGljIEludGVn
cmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxVaW50MTZBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBzaG9ydCogYXJyYXks
IHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IGNy
ZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQs
IHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVl
IHRvIGEgYnVnIGluIHRoZSBSVkNUIGNvbXBpbGVyLgotICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlC
YXNlPHVuc2lnbmVkIHNob3J0PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2
b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJh
eUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQotCi0gICAgUGFzc1Jl
ZlB0cjxVaW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKLSAgICBQYXNzUmVm
UHRyPFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1w
cml2YXRlOgotICAgIFVpbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1
ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRTaG9ydEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6
VWludDE2QXJyYXk7Ci0KLSNlbmRpZiAvLyBVaW50MTZBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZlYzUyY2ZmZTU5YTdiMDYyOWU4ZmJhMzY3ZTFlODJkOTg4OTkwOTAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvVWludDMyQXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCi0KLW5hbWVz
cGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQg
aW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5PihsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPFVpbnQz
MkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGludCogYXJyYXksIHVuc2lnbmVk
IGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3Jl
YXRlPFVpbnQzMkFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJB
cnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIs
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5PihidWZmZXIsIGJ5
dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLVVpbnQzMkFycmF5OjpVaW50MzJBcnJheShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCkKLSAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PihidWZmZXIs
IGJ5dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWlu
dDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3ViYXJy
YXkoc3RhcnQsIGxlbmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMy
QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKLXsKLSAgICByZXR1cm4g
c3ViYXJyYXlJbXBsPFVpbnQzMkFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDU1NzhkMDdlY2I0ODU3M2ZkMDRhNmQ4Yzc3MjJkZGUzZjk2MmI3MTAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvVWludDMyQXJyYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpZm5kZWYgVWludDMyQXJyYXlfaAotI2RlZmluZSBVaW50MzJBcnJheV9oCi0KLSNpbmNs
dWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFz
cyBBcnJheUJ1ZmZlcjsKLQotY2xhc3MgVWludDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBl
ZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxVaW50MzJBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBpbnQqIGFycmF5LCB1bnNpZ25lZCBs
ZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBp
biB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBpbnQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBpbnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2b2lkIHNldCh1bnNpZ25l
ZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQg
aW50Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBVaW50
MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1
cGVyY2xhc3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47
Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwg
Ym9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpVaW50MzJBcnJheTsKLQotI2VuZGlmIC8v
IFVpbnQzMkFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1Vp
bnQ4QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMjY4ZTczZmUxMjU2MzkwNjY2ODI5ZDAz
MDc1Y2EzMWZjOTFmM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiVWludDhBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUGFzc1JlZlB0cjxVaW50
OEFycmF5PiBVaW50OEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVy
biBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRlPFVpbnQ4QXJyYXk+KGxlbmd0
aCk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKHVuc2ln
bmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpjcmVhdGU8VWludDhBcnJheT4oYXJyYXksIGxlbmd0aCk7
Ci19Ci0KLVBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRl
PFVpbnQ4QXJyYXk+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0KLQotVWludDhBcnJh
eTo6VWludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NS
ZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAot
ewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29u
c3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXlJbXBsPFVpbnQ4QXJyYXk+KHN0YXJ0LCBlbmQpOwot
fQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZlOTQ1ZTcwZmE2OWZiYzJhNGQwMjBlZGViOWJlOTFkN2QyYTZh
ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBVaW50OEFycmF5X2gKLSNkZWZpbmUgVWludDhBcnJh
eV9oCi0KLSNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCi0KLW5hbWVzcGFjZSBX
VEYgewotCi1jbGFzcyBBcnJheUJ1ZmZlcjsKLQotY2xhc3MgVWludDhBcnJheSA6IHB1YmxpYyBJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgY2hhciogYXJyYXks
IHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDhBcnJheT4gY3Jl
YXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUg
dG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJh
c2U8dW5zaWduZWQgY2hhcj4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVk
QXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2b2lk
IHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJh
c2U8dW5zaWduZWQgY2hhcj46OnNldChpbmRleCwgdmFsdWUpOyB9Ci0KLSAgICBQYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxV
aW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRl
OgotICAgIFVpbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2
aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4K
LSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OlVpbnQ4QXJyYXk7
Ci0KLSNlbmRpZiAvLyBVaW50OEFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmNwcAppbmRleCBlZTBlYmU2NTQzYzZkNTQzOWY0MjQ1MTcyNjUzOGNkYWJiYmM0
ZTcwLi45OTdkYmE1MDBlZDUwMzgzYzY0M2U4ZTFmMDkwNjVkYjBmNmI2ODYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaAppbmRleCA2NzA1
YWM5YWU2ZDM4OGFlZTgyZjVmYjI0ZTNmNmExY2ZjMjE1YTZjLi4wMTU3ZWNlNjVmMGNlNGI3YzQw
N2I3YmNiNTlkNzk2ODc1MTQwYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
QnVmZmVyLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgV2ViR0xCdWZmZXJfaAogI2RlZmlu
ZSBXZWJHTEJ1ZmZlcl9oCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIldl
YkdMT2JqZWN0LmgiCiAKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMR2V0SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8u
Y3BwCmluZGV4IDE3YmU5NzQwNTUwOWEwMTkwOTViZTdmYzYxNmMyZDMxOWZhNmY0MTAuLmJjZTM4
MzY3NmU1Mzk5NDBiYWQxNGUxNzdiZTkxODNlNDQxOTEwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcApAQCAtMzAsMTUgKzMwLDE1IEBACiAKICNpbmNs
dWRlICJXZWJHTEdldEluZm8uaCIKIAotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgotI2luY2x1
ZGUgIkludDMyQXJyYXkuaCIKLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiV2Vi
R0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKICNpbmNsdWRlICJX
ZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisj
aW5jbHVkZSA8d3RmL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9JbnQzMkFycmF5Lmg+
CisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCmluZGV4IGYzN2VmZGRlY2I0
YTE4NGFjZWM5MGExODE0NGM4MDVjYTI4YzZmNDIuLmY3NDdhMDkwMmFkZDcwYTZlNmRiMmQ0MmUz
OTViZDY0OTMzMDgwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMR2V0SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5m
by5oCkBAIC0yNywxMCArMjcsNyBAQAogI2lmbmRlZiBXZWJHTEdldEluZm9faAogI2RlZmluZSBX
ZWJHTEdldEluZm9faAogCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCi0jaW5jbHVkZSAiSW50
MzJBcnJheS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiVWludDhB
cnJheS5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1
ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgpAQCAtMzgsOCArMzUsMTEgQEAKICNp
bmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmgiCiAKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lu
dDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCmluZGV4IDMwYjhmZjYxN2ZjNDAzMmYyNDJkNGZmMzE5NDg0YzExNTA0YmE5
ZDUuLjBhMDc0MzRhYjRmMjY5M2NmMmViOTdhZWFhMDI3OTc4YTJkOTdmMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApA
QCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJVaW50MTZBcnJheS5o
IgogI2luY2x1ZGUgIldlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgi
CiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgpAQCAtNzAsNiArNjksNyBAQAog
I2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093bkFycmF5UHRyLmg+CisjaW5jbHVkZSA8d3RmL1VpbnQxNkFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgUExBVEZP
Uk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oCmluZGV4IDE1Y2U0OTdiNDhjYTRhYWM2ODA3ZGNhZGM1NzIwZTk2ZWVjOWNiOWUu
LmMwYzVmODIxMzI2MmRhNGQxODBjYzYwZDc5NGExZDJjOGIyMTcyMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yOCwx
NSArMjgsMTUgQEAKIAogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJEcmF3aW5nQnVmZmVyLmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJJbnQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgIlVpbnQ4
QXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTEdldEluZm8uaCIKIAorI2luY2x1ZGUgPHd0Zi9GbG9h
dDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSW50MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9P
d25BcnJheVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCmluZGV4IDU2MjE1OTIyNmNkM2E3OTE5OGZh
ZDhlODNlMTk3MzUyNjQxNDhhYmQuLjA1MDdkYTkzM2YyYzk5ZjliODYzN2Y2NGM3NGJmMzQ0ZDg1
ZTgyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRl
ICJDcnlwdG8uaCIKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJVaW50
OEFycmF5LmgiCisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwCmluZGV4IDcyZTg3NjhhOTZlY2YyMzgxYzdiNTM1YTc5OWE1MDUyOTU1OWRiYWQuLjQz
MWZhOTM2MjAwNzIxM2JlODhmZTU3NjMxNmFhZmZiM2FiMmE5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKQEAg
LTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAKLSNpbmNs
dWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVk
ZSAiRHJhd2luZ0J1ZmZlci5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtMzgsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIu
aCIKIAorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvT3du
QXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093bkFycmF5UHRyLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQz
RE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0Nv
bnRleHQzRE1hYy5tbQppbmRleCAyMmE1OThjZTYxN2Q4N2JkYjJkNzdiY2UyZTNmZWI2ZDU5NjQx
N2JlLi5lM2MzNzFhMmMyMjk4OTk0OTEzMDQwNjk5ODllNTBmZTEwYzNiN2MyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
Q29udGV4dDNETWFjLm1tCkBAIC0zMiwyMiArMzIsMjIgQEAKICNpbXBvcnQgIkJsb2NrRXhjZXB0
aW9ucy5oIgogCiAjaW5jbHVkZSAiQU5HTEUvU2hhZGVyTGFuZy5oIgotI2luY2x1ZGUgIkFycmF5
QnVmZmVyLmgiCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRl
eHQuaD4KICNpbmNsdWRlICJFeHRlbnNpb25zM0RPcGVuR0wuaCIKLSNpbmNsdWRlICJGbG9hdDMy
QXJyYXkuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ2Fu
dmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCi0jaW5jbHVkZSAiSW50MzJB
cnJheS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8T3BlbkdML0NH
TFJlbmRlcmVycy5oPgogI2luY2x1ZGUgPE9wZW5HTC9nbC5oPgotI2luY2x1ZGUgIlVpbnQ4QXJy
YXkuaCIKICNpbmNsdWRlICJXZWJHTExheWVyLmgiCiAjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIK
KyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJW
aWV3Lmg+CisjaW5jbHVkZSA8d3RmL0ludDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvRmxvYXQz
MkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCmluZGV4IGEyNzMyY2FmMTdlNWQ4NjRiOTBkYjI3ZjQ4
ZDEzZDNjOWJlOGY1NTQuLmE2NWNhMDEwNzk4ZTk5MWY5NDBjNjkyN2MzYWM4ZmQ2N2Q2YzFhNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtMzMsMjAgKzMzLDIw
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCi0jaW5jbHVkZSAiQXJyYXlC
dWZmZXIuaCIKLSNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJXZWJHTE9i
amVjdC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJF
eHRlbnNpb25zM0RPcGVuR0wuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCi0jaW5jbHVkZSAi
SW50MzJBcnJheS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiVWlu
dDhBcnJheS5oIgogI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVy
Lmg+CisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPHd0Zi9GbG9h
dDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9V
aW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
c3luY0F1ZGlvRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9Bc3luY0F1ZGlv
RGVjb2Rlci5jcHAKaW5kZXggY2Q0OWFlMGFmZGE2MTkzNzNiMjQ0YWRiYmQ2ZTQwZDAwOTY0ZTBj
NS4uYzI2ODI0Mzk4NmU4ZmFkYjQ0Nzc0MDNjZGQ3Yzc4MzU5NDM5NjdmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcApAQCAtMjgsOSArMjgsOSBA
QAogCiAjaW5jbHVkZSAiQXN5bmNBdWRpb0RlY29kZXIuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVm
ZmVyLmgiCiAjaW5jbHVkZSAiQXVkaW9CdWZmZXIuaCIKICNpbmNsdWRlICJBdWRpb0J1ZmZlckNh
bGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCmluZGV4IGQ1ZTlmMmI0
YjRlMWZlYTI0ODNiMmM3ZWZiODI5MjA4NzNmNmY2NTYuLjRhZWFkY2E1Nzc0MDNlNjljMmRkMTJl
MWUxNTVhZGIxZjU0MzNmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaApA
QCAtMjksNyArMjksNyBAQAogI2lmbmRlZiBBdWRpb0J1ZmZlcl9oCiAjZGVmaW5lIEF1ZGlvQnVm
ZmVyX2gKIAotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMy
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggYzEwMWVlMzVhMTY0ZDhmM2UwNmY4MjU2YmI2MmMwMmQ4
NWFlNTIxYS4uNDg4ZDBhYTMyNWY4MzJiZjRlZDhjMzgyNGU3MDRjMjM1NTNiMDI5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAK
ICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiQXN5bmNBdWRpb0RlY29kZXIuaCIKICNpbmNsdWRlICJBdWRpb0J1ZmZlci5oIgog
I2luY2x1ZGUgIkF1ZGlvQnVmZmVyQ2FsbGJhY2suaCIKQEAgLTY5LDYgKzY4LDcgQEAKICNpbmNs
dWRlIDxzdGRpby5oPgogI2VuZGlmCiAKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmlu
ZGV4IDNkYjljODgyNDNmZjg5YjIwYzZmNjJmYzJlYmEzYzY3MTE0YjQwNTEuLjI3NTg0ODdkYWEx
MTdhN2M0OTUzM2U0ZTYxZGVmZDdhMWY3YmFmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgog
I2luY2x1ZGUgIkF1ZGlvUGFyYW1UaW1lbGluZS5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisj
aW5jbHVkZSA8d3RmL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuaAppbmRleCA2Yjg2ZWY4YmIzY2Y3M2YwN2ZmYWVjNDUyZmU1
ZDQwNGIyNDUwYTA2Li4yMmVhODkwODFhNTBiMDA0Mjc0NzU0YTEyMDdlODk0OGJhYzE5NzE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaApAQCAtMzAs
NyArMzAsNyBAQAogI2RlZmluZSBBdWRpb1BhcmFtVGltZWxpbmVfaAogCiAjaW5jbHVkZSAiQXVk
aW9Db250ZXh0LmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSA8d3RmL0Zs
b2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dlYmF1ZGlvL0phdmFTY3JpcHRBdWRpb05vZGUuY3BwCmluZGV4IDkyZTFmYzM2M2M1
ZTdhYTE3YjNiZGYxM2NjZWRmNzgzMmY3ZTZhNGQuLjQyMjE1MDljZjk5YzYxNzQzNWVlODA4NjNk
ZWNmMjhlYmUwN2FhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0phdmFT
Y3JpcHRBdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0phdmFTY3Jp
cHRBdWRpb05vZGUuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0
cHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMy
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4
IDFmYzhiMjRhN2VlZTdlZmQ5MWNiYzEyNWZiOWY2NDJhYTM0ODhhMTMuLjVjYWFiOTE4YzJiNWI1
NGExZDkyNDc1NTUzNjY4ZmRmNjY3MGQyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L1JlYWx0aW1lQW5hbHlzZXIuY3BwCkBAIC0zMSwxNCArMzEsMTQgQEAKICNpbmNsdWRlICJBdWRp
b0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRkZURnJhbWUu
aCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAK
ICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXguaD4KKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0
Zi9VaW50OEFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaAppbmRleCBlYjY3MjYwNmU0MTNhNjJh
NGUyNTFkNmY0NTA0MzVmYzRjNmQxMzQ3Li40MDE2ZThiZGVmNzFlMTIxMGRmNDM0OTg5NjljMzBi
ZjU5YWNjYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9XYXZlU2hhcGVy
UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nl
c3Nvci5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQXVkaW9EU1BLZXJuZWwuaCIKICNp
bmNsdWRlICJBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5o
IgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXku
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCAwNjEwZmJmMGI3NGY2ZDk4MzZhMTkwZmU2OGMxNTE1MjQ4YjAzZDQ5Li45NjIyNmI3ODdlNDhh
YjdmMDNlNWViMjYwZWNlNzZjYWVkODk2NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUg
IldlYlNvY2tldENoYW5uZWwuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVk
ZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CkBAIC01Miw2ICs1MSw3IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgog
I2luY2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgogCisjaW5jbHVkZSA8d3RmL0FycmF5QnVm
ZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggOTIxYmQ3NGQ3Yjc5OTY5M2YxNzE0OWI2YzFhNjBm
YzMwYTA0NGU0NC4uMWUyNGNmYmJhNTA2ZWY3NmI2MDQyMTE4ZjcxODg0OGVkZjRiM2ZlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUg
IldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1
ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAtNDYsNiArNDUsNyBAQAogI2luY2x1ZGUg
IldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1
ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNmM0OGFmZDc0ODg5MDUzMDIzYzQz
YThhZDlkYmM3YThkZjg1NGM5Ni4uMDRkOTI3ZWRjYTE0YTcwYjIxOWRjYTQ2MGRmNjNkNDZlNmNm
NTA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yMiw3ICsyMiw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKIAot
I2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNv
bnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5oIgpAQCAtNTIsNiArNTEsNyBAQAogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0VXBsb2FkLmgiCiAjaW5jbHVkZSAibWFy
a3VwLmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvVW51c2VkUGFyYW0uaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116828</attachid>
            <date>2011-11-28 14:53:42 -0800</date>
            <delta_ts>2011-11-28 15:10:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73248-20111128145341.patch</filename>
            <type>text/plain</type>
            <size>251020</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YTUzMjA5MDM2NDZhZTIzNjQ3YmQxYjE0MGU2MmVhZmI5ZjQwYzc1Li5mNTdiNWIzMDg1YmZkZWU1
ZWUyZDI0OGFkY2QzMmIxNGZjNTA2YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzAgQEAKKzIwMTEtMTEtMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIHR5cGVkIGFycmF5IGltcGxlbWVudGF0aW9ucyBpbnRvIHd0ZgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHR5cGVkIGFy
cmF5IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gV2ViQ29yZSB0byB3dGYuICBJbmxpbmUgdGhl
CisgICAgICAgIC5jcHAgZmlsZXMgZm9yIGVhY2ggb2YgdGhlIGFycmF5IHZpZXdzIHRvIGN1dCBk
b3duIG9uIHVubmVjZXNzYXJ5IGV4cG9ydHMKKyAgICAgICAgYW5kIGZ1bmN0aW9uIGNhbGwgb3Zl
cmhlYWQgZm9yIHRyaXZpYWwgb3BlcmF0aW9ucy4KKworICAgICAgICBBZGRlZCBmaWxlcyB0byBh
bGwgdGhlIHByb2plY3QgZmlsZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQXJyYXlCdWZmZXIuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcC4KKyAgICAg
ICAgKFdURjo6QXJyYXlCdWZmZXI6OnRyYW5zZmVyKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZm
ZXI6OmFkZFZpZXcpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlcjo6cmVtb3ZlVmlldyk6Cisg
ICAgICAgICogd3RmL0FycmF5QnVmZmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAuCisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyQ29u
dGVudHM6OkFycmF5QnVmZmVyQ29udGVudHMpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNv
bnRlbnRzOjpkYXRhKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJDb250ZW50czo6c2l6ZUlu
Qnl0ZXMpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cmFuc2Zlcik6Cisg
ICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjp+QXJyYXlCdWZmZXIpOgorICAgICAgICAoV1RGOjpB
cnJheUJ1ZmZlcjo6Y2xhbXBWYWx1ZSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlcjo6QXJyYXlCdWZmZXIpOgorICAgICAgICAo
V1RGOjpBcnJheUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpieXRl
TGVuZ3RoKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXI6OnNsaWNlKToKKyAgICAgICAgKFdU
Rjo6QXJyYXlCdWZmZXI6OnNsaWNlSW1wbCk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpj
bGFtcEluZGV4KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2Nh
dGUpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjp+QXJyYXlCdWZmZXJDb250
ZW50cyk6CisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwLgorICAgICAg
ICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OkFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXVEY6
OkFycmF5QnVmZmVyVmlldzo6fkFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXVEY6OkFycmF5
QnVmZmVyVmlldzo6bmV1dGVyKToKKyAgICAgICAgKiB3dGYvQXJyYXlCdWZmZXJWaWV3Lmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaC4K
KyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3Ojppc0J5dGVBcnJheSk6CisgICAgICAgIChX
VEY6OkFycmF5QnVmZmVyVmlldzo6aXNVbnNpZ25lZEJ5dGVBcnJheSk6CisgICAgICAgIChXVEY6
OkFycmF5QnVmZmVyVmlldzo6aXNTaG9ydEFycmF5KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZm
ZXJWaWV3Ojppc1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVy
Vmlldzo6aXNJbnRBcnJheSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6aXNVbnNp
Z25lZEludEFycmF5KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3Ojppc0Zsb2F0QXJy
YXkpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmlzRG91YmxlQXJyYXkpOgorICAg
ICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgorICAgICAgICAoV1RGOjpB
cnJheUJ1ZmZlclZpZXc6OmJ1ZmZlcik6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6
YmFzZUFkZHJlc3MpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmJ5dGVPZmZzZXQp
OgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OnZlcmlmeVN1YlJhbmdlKToKKyAgICAg
ICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3OjpjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKToKKyAg
ICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3OjpzZXRJbXBsKToKKyAgICAgICAgKFdURjo6QXJy
YXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZp
ZXc6Onplcm9SYW5nZUltcGwpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmNhbGN1
bGF0ZU9mZnNldEFuZExlbmd0aCk6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oLgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OnNl
dCk6CisgICAgICAgIChXVEY6OkZsb2F0MzJBcnJheTo6aXRlbSk6CisgICAgICAgIChXVEY6OkZs
b2F0MzJBcnJheTo6aXNGbG9hdEFycmF5KToKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5Ojpj
cmVhdGUpOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheSk6CisgICAg
ICAgIChXVEY6OkZsb2F0MzJBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9GbG9hdDY0
QXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRB
cnJheS5oLgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6
OkZsb2F0NjRBcnJheTo6aXRlbSk6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6aXNEb3Vi
bGVBcnJheSk6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Y3JlYXRlKToKKyAgICAgICAg
KFdURjo6RmxvYXQ2NEFycmF5OjpGbG9hdDY0QXJyYXkpOgorICAgICAgICAoV1RGOjpGbG9hdDY0
QXJyYXk6OnN1YmFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5jcHAuCisgICAgICAgIChX
VEY6OkludDE2QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6OmlzU2hvcnRB
cnJheSk6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6
OkludDE2QXJyYXk6OkludDE2QXJyYXkpOgorICAgICAgICAoV1RGOjpJbnQxNkFycmF5OjpzdWJh
cnJheSk6CisgICAgICAgICogd3RmL0ludDMyQXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwLgorICAgICAgICAoV1RGOjpJbnQzMkFy
cmF5OjpzZXQpOgorICAgICAgICAoV1RGOjpJbnQzMkFycmF5Ojppc0ludEFycmF5KToKKyAgICAg
ICAgKFdURjo6SW50MzJBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6
SW50MzJBcnJheSk6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OnN1YmFycmF5KToKKyAgICAg
ICAgKiB3dGYvSW50OEFycmF5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9JbnQ4QXJyYXkuY3BwLgorICAgICAgICAoV1RGOjpJbnQ4QXJyYXk6OnNldCk6CisgICAg
ICAgIChXVEY6OkludDhBcnJheTo6aXNCeXRlQXJyYXkpOgorICAgICAgICAoV1RGOjpJbnQ4QXJy
YXk6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OkludDhBcnJheTo6SW50OEFycmF5KToKKyAgICAg
ICAgKFdURjo6SW50OEFycmF5OjpzdWJhcnJheSk6CisgICAgICAgICogd3RmL0ludGVncmFsVHlw
ZWRBcnJheUJhc2UuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dGVncmFsVHlwZWRBcnJheUJhc2UuaC4KKyAgICAgICAgKFdURjo6SW50ZWdyYWxUeXBlZEFycmF5
QmFzZTo6c2V0KToKKyAgICAgICAgKFdURjo6SW50ZWdyYWxUeXBlZEFycmF5QmFzZTo6aXRlbSk6
CisgICAgICAgIChXVEY6OkludGVncmFsVHlwZWRBcnJheUJhc2U6OkludGVncmFsVHlwZWRBcnJh
eUJhc2UpOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5QmFzZS5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaC4KKyAgICAgICAgKFdURjo6
VHlwZWRBcnJheUJhc2U6OmRhdGEpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6c2V0
KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheUJhc2U6OnNldFJhbmdlKToKKyAgICAgICAgKFdU
Rjo6VHlwZWRBcnJheUJhc2U6Onplcm9SYW5nZSk6CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlC
YXNlOjpsZW5ndGgpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6Ynl0ZUxlbmd0aCk6
CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjpUeXBlZEFycmF5QmFzZSk6CisgICAgICAg
IChXVEY6OlR5cGVkQXJyYXlCYXNlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5
QmFzZTo6c3ViYXJyYXlJbXBsKToKKyAgICAgICAgKiB3dGYvVWludDE2QXJyYXkuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcC4KKyAgICAg
ICAgKFdURjo6VWludDE2QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OlVpbnQxNkFycmF5Ojpp
c1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgIChXVEY6OlVpbnQxNkFycmF5OjpjcmVhdGUp
OgorICAgICAgICAoV1RGOjpVaW50MTZBcnJheTo6VWludDE2QXJyYXkpOgorICAgICAgICAoV1RG
OjpVaW50MTZBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwLgor
ICAgICAgICAoV1RGOjpVaW50MzJBcnJheTo6c2V0KToKKyAgICAgICAgKFdURjo6VWludDMyQXJy
YXk6OmlzVW5zaWduZWRJbnRBcnJheSk6CisgICAgICAgIChXVEY6OlVpbnQzMkFycmF5OjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpVaW50MzJBcnJheTo6VWludDMyQXJyYXkpOgorICAgICAgICAo
V1RGOjpVaW50MzJBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmguCisg
ICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6
OmlzVW5zaWduZWRCeXRlQXJyYXkpOgorICAgICAgICAoV1RGOjpVaW50OEFycmF5OjpjcmVhdGUp
OgorICAgICAgICAoV1RGOjpVaW50OEFycmF5OjpVaW50OEFycmF5KToKKyAgICAgICAgKFdURjo6
VWludDhBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEx
LTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5n
ZSBzZXQgMTAxMTg3IGZyb20gYnVnIDczMTU0IHJlbW92ZWQgYWxyZWFkeSBsb3dlciBjYXNlIG9w
dGltaXphdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAyYjQ0NzJhMDY3ZjJhYTVhNzczNjFhYmY4MjhkNjhj
ZGMzNTIxYjUuLjY5MjhhOWQ1NzcxOWI2NWE0ZDUwNzZkYTE3NDc1MzAwMWJhNjFmMGMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4NyBAQAorMjAxMS0xMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgdHlwZWQgYXJyYXkgaW1wbGVtZW50YXRpb25zIGlu
dG8gd3RmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZWQgdGhlIHR5cGVkIGFycmF5IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gV2ViQ29yZSBh
bmQKKyAgICAgICAgYWRkZWQgZm9yd2FyZGluZyBoZWFkZXJzLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0FycmF5QnVmZmVyLmg6
IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0MzJBcnJheS5o
OiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQ2NEFycmF5Lmg6
IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQxNkFycmF5Lmg6IEFk
ZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQzMkFycmF5Lmg6IEFkZGVk
LgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQ4QXJyYXkuaDogQWRkZWQuCisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQxNkFycmF5Lmg6IEFkZGVkLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MzJBcnJheS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVWludDhBcnJheS5oOiBBZGRlZC4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVy
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3RvbS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRmxvYXQ2NEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTVWludDhBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXYXZlU2hh
cGVyTm9kZUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVh
ZGVyKToKKyAgICAgICAgKE5hdGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuaDoKKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50
Lmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKiBmaWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlclN5bmMu
Y3BwOgorICAgICAgICAqIGZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3BwOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQXJyYXlC
dWZmZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9JbnQxNkFycmF5Lmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvSW50
MzJBcnJheS5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDhBcnJheS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMR2V0SW5mby5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisgICAgICAgICogcGFnZS9DcnlwdG8uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRp
by9Bc3luY0F1ZGlvRGVjb2Rlci5jcHA6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAqIHdlYmF1
ZGlvL0F1ZGlvUGFyYW0uaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
aDoKKyAgICAgICAgKiB3ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcDoKKyAgICAgICAg
KiB3ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRpby9XYXZl
U2hhcGVyUHJvY2Vzc29yLmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorCiAyMDExLTExLTI4
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBBc3Bl
Y3QgUmF0aW8gUHJvcGVydHkgSW5oZXJpdGFuY2UgQW5kIE1ha2UgdGhlIENvbXB1dGVkIFZhbHVl
IEVxdWFsIHRoZSBTcGVjaWZpZWQgVmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZDViZGQ4YWI0ZWUxY2MwOWIwMjBkZjIyOTQ2NzFhNmQ1MGY3Mzc4
Yy4uYTM0YzIwMDU5MGQzODQ0Yzc0ZWM4NGMzYjJlNTdlYTNkZTFiZWMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ5NiwxNCArNDk2LDE4IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dyaXRlQmFycmllci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FsaWdubWVudC5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Fsd2F5c0lubGluZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9BcnJheUJ1ZmZlci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5
QnVmZmVyVmlldy5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJW
aWV3LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVNDSUlDVHlwZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0Fzc2VydGlvbnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0Fzc2VydGlvbnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BdG9t
aWNzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVZMVHJlZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0JpdG1hcC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0JpdFZlY3Rvci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0VmVjdG9yLmgg
XAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0bWFwLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQmxvY2tTdGFjay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Js
b29tRmlsdGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQm91bmRzQ2hlY2tlZFBv
aW50ZXIuaCBcCkBAIC01MjAsMzAgKzUyNCwzMCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvRGVjaW1hbE51bWJlci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY29k
ZXIuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZXF1ZS5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0Rpc2FsbG93Q1R5cGUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRv
YS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL2R0b2EvYmlnbnVtLWR0b2EuY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS9iaWdudW0uY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRv
YS9jYWNoZWQtcG93ZXJzLmNjIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZGl5
LWZwLmNjIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZG91YmxlLWNvbnZlcnNp
b24uY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuY2MgXAot
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9maXhlZC1kdG9hLmNjIFwKLQlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL2R0b2Evc3RydG9kLmNjIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL2R0b2EvYmlnbnVtLWR0b2EuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9k
dG9hL2JpZ251bS5jYyBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2JpZ251bS5o
IFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvY2FjaGVkLXBvd2Vycy5jYyBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2NhY2hlZC1wb3dlcnMuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2RpeS1mcC5jYyBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9kdG9hL2RpeS1mcC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2Ev
ZG91YmxlLWNvbnZlcnNpb24uY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9k
b3VibGUtY29udmVyc2lvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZG91
YmxlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuY2MgXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2ZpeGVkLWR0b2EuY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS9maXhlZC1kdG9hLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
ZHRvYS9zdHJ0b2QuY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9zdHJ0b2Qu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL3V0aWxzLmggXAotCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvRGVjb2Rlci5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0RlcXVlLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGlzYWxsb3dDVHlwZS5oIFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBcCi0JU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9kdG9hLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRHluYW1pY0Fubm90YXRpb25z
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EeW5hbWljQW5ub3RhdGlvbnMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9FbmNvZGVyLmggXApAQCAtNTUxLDYgKzU1NSw4
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvRmFzdE1hbGxvYy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxv
Yy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ZpeGVkQXJyYXkuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDMyQXJyYXkuaCBcCisJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9GbG9hdDY0QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3
YXJkLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvR2V0UHRyLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HT3duUHRyLmNwcCBcCkBAIC01NjksNiArNTc1LDEw
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvSGFzaFRyYWl0cy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hleE51bWJlci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0lubGluZUFTTS5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0ludDE2QXJyYXkuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9JbnQzMkFycmF5LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50OEFycmF5Lmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RIYXNoU2V0LmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTGlzdFJlZlB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0xvY2tlci5oIFwKQEAgLTU3OCwxMiArNTg4LDEyIEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWF0aEV4dHJhcy5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01ENS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TUQ1LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWVzc2FnZVF1ZXVlLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01ldGFBbGxvY2F0b3JIYW5kbGUuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
ZXNzYWdlUXVldWUuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob25Db3B5aW5nU29y
dC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vbmNvcHlhYmxlLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTm9uQ29weWluZ1NvcnQuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bGxQ
dHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvci5oIFwKQEAgLTU5
MSwyNCArNjAxLDI0IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Pd25BcnJheVB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkZhc3RN
YWxsb2NQdHIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHJDb21tb24uaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHIuaCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Pd25QdHJDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YWNrZWRJbnRWZWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYWdlQWxsb2Nh
dGlvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VBbGxvY2F0aW9uQWxpZ25l
ZC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVk
LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZVJlc2VydmF0aW9uLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZUJsb2NrLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QYWdlQmxvY2suaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNz
T3duQXJyYXlQdHIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmgg
XAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFzc1JlZlB0ci5oIFwKLQlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1Bhc3NUcmFpdHMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYWdlUmVzZXJ2YXRpb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxl
bEpvYnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNPcGVuTVAuaCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duQXJyYXlQdHIuaCBcCisJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGFzc1JlZlB0ci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bhc3NUcmFpdHMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1Bvc3NpYmx5TnVsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1JhbmRvbU51bWJlci5jcHAgXApAQCAtNjU2LDI2ICs2NjYsMzAgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oIFwKLQlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcCBcCi0JU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCBcCi0J
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9U
aHJlYWRpbmdQcmltaXRpdmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFJlc3Ry
aWN0aW9uVmVyaWZpZXIuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNwZWNpZmlj
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZWRBcnJheUJhc2UuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVW5p
b25GaW5kLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVWludDE2QXJyYXkuaCBcCisJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MzJBcnJheS5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1VpbnQ4QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91
bmljb2RlL0NoYXJhY3Rlck5hbWVzLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5p
Y29kZS9Db2xsYXRvckRlZmF1bHQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3Vu
aWNvZGUvQ29sbGF0b3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL0Nv
bGxhdG9yRGVmYXVsdC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9V
bmljb2RlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9VVEY4LmNwcCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VURjguaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9VbmlvbkZpbmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9VbnVzZWRQYXJhbS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1ZhbHVlQ2hlY2su
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCAwZGFlZWI4MjE2N2Y5MjMyYjIwMTZiMjg5
Y2VjNGE2ZTIwYzI0NjZkLi4zNzE1YWIxMWFiNzY2NTQyZjZhMzRkODM0YjlhYzFkNzgzYjlmNWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTQyMyw2ICs0
MjMsOSBAQCBfX1pOM1dURjEzdHJ5RmFzdE1hbGxvY0VtCiBfX1pOM1dURjE0ZmFzdE1hbGxvY1Np
emVFUEt2CiBfX1pOM1dURjE0bnVtYmVyVG9TdHJpbmdFZFBjCiBfX1pOM1dURjE0dHJ5RmFzdFJl
YWxsb2NFUHZtCitfX1pOM1dURjE1QXJyYXlCdWZmZXJWaWV3Nm5ldXRlckV2CitfX1pOM1dURjE1
QXJyYXlCdWZmZXJWaWV3QzJFTlNfMTBQYXNzUmVmUHRySU5TXzExQXJyYXlCdWZmZXJFRUVqCitf
X1pOM1dURjE1QXJyYXlCdWZmZXJWaWV3RDJFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjR3
YWl0RVJOU181TXV0ZXhFCiBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uNnNpZ25hbEV2CiBfX1pO
M1dURjE1VGhyZWFkQ29uZGl0aW9uOWJyb2FkY2FzdEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagppbmRl
eCBiZTYzZGJkMjE4NzkwYzZkZDhmYzllYzQ2NWY0MDhhMzdjNjhkZDA5Li5mNmNmMDIwMTZlNzcz
NDQxMWQwYzE4NTI1ZjFmMTQ2MzM4YWZlNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKQEAgLTYx
Myw2ICs2MTMsMjIgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQXJyYXlCdWZmZXIuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxBcnJheUJ1ZmZlci5oIgorCQkJPgorCQk8L0ZpbGU+
CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxBcnJheUJ1ZmZlclZpZXcuY3Bw
IgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxB
cnJheUJ1ZmZlclZpZXcuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlx3dGZcQVNDSUlDVHlwZS5oIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03MjksNiAr
NzQ1LDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXEZsb2F0MzJBcnJheS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHd0ZlxGbG9hdDY0QXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8
RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcZHRvYS5jcHAiCiAJCQk+CiAJCTwvRmls
ZT4KQEAgLTgzMyw2ICs4NTcsMTggQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlx3dGZcSW50MTZBcnJheS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxG
aWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxJbnQzMkFycmF5LmgiCisJCQk+CisJCTwv
RmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXEludDhBcnJheS5oIgor
CQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxMaXN0
SGFzaFNldC5oIgogCQkJPgogCQk8L0ZpbGU+CkBAIC0xMTU3LDYgKzExOTMsMTggQEAKIAkJCT4K
IAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcVUludDE2QXJy
YXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3
dGZcVUludDMyQXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlx3dGZcVUludDhBcnJheS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxVbnVzZWRQYXJhbS5oIgogCQkJPgogCQk8L0ZpbGU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIyN2U3MTNhNzkzNDkzYWEyZjU2MWNj
NGIxZTQxYjJlMTc3OGM3MDkuLmJmZDk5NTc5YTRhNTQyMmIxMmY5Y2IzYzhhYTU3NzMxMDQyYWQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTcsNiArNDU3LDIwIEBACiAJ
CUE3Mzg2NTU0MTE4Njk3QjQwMDU0MDI3OSAvKiBTcGVjaWFsaXplZFRodW5rSklULmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM4NjU1MTExODY5N0I0
MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVua0pJVC5oICovOyB9OwogCQlBNzM4NjU1NTExODY5
N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuY3BwICovOyB9OwogCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyogVGh1
bmtHZW5lcmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzM4NjU1MzExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTczQkUxNjgxNDg0
MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0JFMTU0MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1
ZmZlci5jcHAgKi87IH07CisJCUE3M0JFMTY5MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUx
NTUxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTczQkUxNkExNDg0MjA1MjAwOTEyMDRCIC8q
IEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzNCRTE1NjE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmNw
cCAqLzsgfTsKKwkJQTczQkUxNkIxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNTcx
NDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTZEMTQ4NDIwNTIwMDkxMjA0QiAv
KiBGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3M0JFMTU5MTQ4NDIwNTIwMDkxMjA0QiAvKiBGbG9hdDMyQXJyYXkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE2RjE0ODQy
MDUyMDA5MTIwNEIgLyogRmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE1QjE0ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQ2NEFy
cmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QTczQkUxNzExNDg0MjA1MjAwOTEyMDRCIC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNUQxNDg0MjA1MjAwOTEyMDRCIC8q
IEludDhBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUE3M0JFMTczMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQxNkFycmF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE1RjE0ODQyMDUyMDA5
MTIwNEIgLyogSW50MTZBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUE3M0JFMTc1MTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQzMkFycmF5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE2MTE0
ODQyMDUyMDA5MTIwNEIgLyogSW50MzJBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTc3MTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50
OEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzNCRTE2MzE0ODQyMDUyMDA5MTIwNEIgLyogVWludDhBcnJheS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTc5MTQ4NDIwNTIwMDkxMjA0
QiAvKiBVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTczQkUxNjUxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQxNkFycmF5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTczQkUxN0IxNDg0
MjA1MjAwOTEyMDRCIC8qIFVpbnQzMkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE2NzE0ODQyMDUyMDA5MTIwNEIgLyogVWludDMyQXJy
YXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
NzNCRTE3RTE0ODQyMDg0MDA5MTIwNEIgLyogVHlwZWRBcnJheUJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0JFMTdEMTQ4NDIwODQwMDkxMjA0
QiAvKiBUeXBlZEFycmF5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUE3M0JFMTgwMTQ4NDIwQTgwMDkxMjA0QiAvKiBJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzNCRTE3RjE0ODQyMEE4MDA5MTIwNEIgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NDgyQjkz
MTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkI3OTExNjZDREVBMDAz
QjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NDgyQjk0MTE2NzExNDcwMDNCMDcxMiAv
KiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDgyQjdBMTE2NkNERUEwMDNCMDcxMiAvKiBKU1dlYWtP
YmplY3RNYXBSZWZQcml2YXRlLmNwcCAqLzsgfTsKIAkJQTc0ODJFOTMxMTZBN0NBRDAwM0IwNzEy
IC8qIEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkUzNzExNkE2OTdCMDAzQjA3MTIgLyogSlNXZWFr
T2JqZWN0TWFwUmVmSW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTI2NSw2ICsxMjc5LDIwIEBACiAJCUE3Mzg2NTUxMTE4Njk3QjQw
MDU0MDI3OSAvKiBTcGVjaWFsaXplZFRodW5rSklULmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWNpYWxpemVkVGh1bmtKSVQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTczODY1NTIxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHVua0dlbmVyYXRvcnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzM4NjU1MzExODY5N0I0MDA1NDAyNzkgLyog
VGh1bmtHZW5lcmF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5r
R2VuZXJhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE1NDE0ODQy
MDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXJyYXlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNzNCRTE1NTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTczQkUxNTYxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcnJheUJ1ZmZlclZpZXcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE1NzE0ODQyMDUyMDA5MTIwNEIg
LyogQXJyYXlCdWZmZXJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFy
cmF5QnVmZmVyVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE1OTE0
ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQzMkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZsb2F0MzJBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
NzNCRTE1QjE0ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQ2NEFycmF5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0NjRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzNCRTE1RDE0ODQyMDUyMDA5MTIwNEIgLyogSW50OEFycmF5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDhBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBNzNCRTE1RjE0ODQyMDUyMDA5MTIwNEIgLyogSW50MTZBcnJheS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnQxNkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3M0JFMTYxMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQzMkFycmF5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDMyQXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNjMxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQ4QXJy
YXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVWludDhBcnJheS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE2NTE0ODQyMDUyMDA5MTIwNEIgLyogVWlu
dDE2QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVWludDE2QXJyYXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNjcxNDg0MjA1MjAwOTEyMDRC
IC8qIFVpbnQzMkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVpbnQz
MkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3M0JFMTdEMTQ4NDIwODQw
MDkxMjA0QiAvKiBUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNC
RTE3RjE0ODQyMEE4MDA5MTIwNEIgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NDgyQjc5MTE2NkNERUEwMDNCMDcxMiAvKiBKU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc0ODJCN0ExMTY2Q0RFQTAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWFrT2JqZWN0TWFw
UmVmUHJpdmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NDgyRTM3MTE2
QTY5N0IwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MiwyMSArMTg5MCwyMCBAQAogCQk2NTE2MkVG
MTA4RTZBMjFDMDA3NTU2Q0QgLyogd3RmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQlDMjJDNTI0ODEzRkFGNkVGMDBCN0RDMEQgLyogZHRvYSAqLywKLQkJ
CQkwNkQzNThBMDBEQUFEOUM0MDAzQjE3NEUgLyogbWFjICovLAotCQkJCTg2NTY1NzNFMTE1QkUz
NTIwMDI5MUY0MCAvKiB0ZXh0ICovLAotCQkJCTFBMDgyNzc2MTQyMTY4RDYwMDkwQ0NBQyAvKiB0
aHJlYWRzICovLAotCQkJCUUxOTU2NzhEMDlFN0NGMTIwMEI4OUQxMyAvKiB1bmljb2RlICovLAog
CQkJCUExRDc2NDUxMTM1NDQ0OEIwMEM1QzdDMCAvKiBBbGlnbm1lbnQuaCAqLywKIAkJCQk5M0FB
NEY3NzA5NTcyNTFGMDA4NEIzQTcgLyogQWx3YXlzSW5saW5lLmggKi8sCisJCQkJQTczQkUxNTQx
NDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmNwcCAqLywKKwkJCQlBNzNCRTE1NTE0ODQy
MDUyMDA5MTIwNEIgLyogQXJyYXlCdWZmZXIuaCAqLywKKwkJCQlBNzNCRTE1NjE0ODQyMDUyMDA5
MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCAqLywKKwkJCQlBNzNCRTE1NzE0ODQyMDUyMDA5
MTIwNEIgLyogQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJOTM4QzRGNjkwQ0EwNkJDNzAwRDkz
MTBBIC8qIEFTQ0lJQ1R5cGUuaCAqLywKIAkJCQk2NUUyMTdCODA4RTdFRUNDMDAyM0U1RjYgLyog
QXNzZXJ0aW9ucy5jcHAgKi8sCiAJCQkJNjVFMjE3QjcwOEU3RUVDQzAwMjNFNUY2IC8qIEFzc2Vy
dGlvbnMuaCAqLywKIAkJCQlCQzVGN0JCQjExODIzQjU5MDA1MkMwMkMgLyogQXRvbWljcy5oICov
LAogCQkJCUUxQTU5NjM3MERFM0UxQzMwMEMxN0UzNyAvKiBBVkxUcmVlLmggKi8sCisJCQkJREQz
NzdDQkIxMjA3MkMxODAwNkEyNTE3IC8qIEJpdG1hcC5oICovLAogCQkJCTBGMTZENzI0MTQyQzM5
QTIwMENGNzg0QSAvKiBCaXRWZWN0b3IuY3BwICovLAogCQkJCTBGRDgyRjQ5MTQyODA2OTIwMDE3
OUM5NCAvKiBCaXRWZWN0b3IuaCAqLywKLQkJCQlERDM3N0NCQjEyMDcyQzE4MDA2QTI1MTcgLyog
Qml0bWFwLmggKi8sCiAJCQkJQTdDNDBDMDcxMzBCMDU3RDAwRDAwMkExIC8qIEJsb2NrU3RhY2su
aCAqLywKIAkJCQlFNEQ4Q0U5QjEyRkM0MkUxMDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCAqLywK
IAkJCQkwRkQ4MkU4MjE0MUYzRkM5MDAxNzlDOTQgLyogQm91bmRzQ2hlY2tlZFBvaW50ZXIuaCAq
LywKQEAgLTE4OTgsNiArMTkyNSw3IEBACiAJCQkJNTE4NjExMUQwQ0M4MjQ4MzAwODE0MTJCIC8q
IERlcXVlLmggKi8sCiAJCQkJOTM4QzRGNkIwQ0EwNkJDRTAwRDkzMTBBIC8qIERpc2FsbG93Q1R5
cGUuaCAqLywKIAkJCQkxNDQ1NkEzMTEzMTQ2NTc4MDAyMTJDQTMgLyogRG91Ymx5TGlua2VkTGlz
dC5oICovLAorCQkJCUMyMkM1MjQ4MTNGQUY2RUYwMEI3REMwRCAvKiBkdG9hICovLAogCQkJCTY1
MUY2NDEyMDM5RDVCNUYwMDc4Mzk1QyAvKiBkdG9hLmNwcCAqLywKIAkJCQk2NTFGNjQxMzAzOUQ1
QjVGMDA3ODM5NUMgLyogZHRvYS5oICovLAogCQkJCUQ3NUFGNTk1MTJGOENCOTUwMEZDMEFERiAv
KiBEeW5hbWljQW5ub3RhdGlvbnMuY3BwICovLApAQCAtMTkwNyw2ICsxOTM1LDggQEAKIAkJCQk2
NUUyMTdCOTA4RTdFRUNDMDAyM0U1RjYgLyogRmFzdE1hbGxvYy5jcHAgKi8sCiAJCQkJNjVFMjE3
QkEwOEU3RUVDQzAwMjNFNUY2IC8qIEZhc3RNYWxsb2MuaCAqLywKIAkJCQlBN0YxOUVDRDExREQ0
OTA5MDA5MzFFNzAgLyogRml4ZWRBcnJheS5oICovLAorCQkJCUE3M0JFMTU5MTQ4NDIwNTIwMDkx
MjA0QiAvKiBGbG9hdDMyQXJyYXkuaCAqLywKKwkJCQlBNzNCRTE1QjE0ODQyMDUyMDA5MTIwNEIg
LyogRmxvYXQ2NEFycmF5LmggKi8sCiAJCQkJOTM1QUY0NjkwOUU5RDlEQjAwQUNEMUQ4IC8qIEZv
cndhcmQuaCAqLywKIAkJCQk5M0I2QTBERTBBQTY0REE0MDA3NkRFMjcgLyogR2V0UHRyLmggKi8s
CiAJCQkJNjU3RUVCQkYwOTRFNDQ1RTAwOEM5QzdCIC8qIEhhc2hDb3VudGVkU2V0LmggKi8sCkBA
IC0xOTE5LDkgKzE5NDksMTQgQEAKIAkJCQk2NURGQzkyRjA4RUExNzNBMDBGNzMwMEIgLyogSGFz
aFRyYWl0cy5oICovLAogCQkJCTcxODZBNkU4MTMxMDBCNTcwMDQ0NzlFMSAvKiBIZXhOdW1iZXIu
aCAqLywKIAkJCQk4Njk5QUE2MDE0NkEwRTJCMDBFMjNBNzMgLyogSW5saW5lQVNNLmggKi8sCisJ
CQkJQTczQkUxNUYxNDg0MjA1MjAwOTEyMDRCIC8qIEludDE2QXJyYXkuaCAqLywKKwkJCQlBNzNC
RTE2MTE0ODQyMDUyMDA5MTIwNEIgLyogSW50MzJBcnJheS5oICovLAorCQkJCUE3M0JFMTVEMTQ4
NDIwNTIwMDkxMjA0QiAvKiBJbnQ4QXJyYXkuaCAqLywKKwkJCQlBNzNCRTE3RjE0ODQyMEE4MDA5
MTIwNEIgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovLAogCQkJCTY1N0VCNzQ1MEI3MDhG
NTQwMDYzNDYxQiAvKiBMaXN0SGFzaFNldC5oICovLAogCQkJCTE0OEExNjI2MDk1RDE2QkIwMDY2
NkQwRCAvKiBMaXN0UmVmUHRyLmggKi8sCiAJCQkJRTFFRTc5MjcwRDZDOTY0NTAwRkVBM0JBIC8q
IExvY2tlci5oICovLAorCQkJCTA2RDM1OEEwMERBQUQ5QzQwMDNCMTc0RSAvKiBtYWMgKi8sCiAJ
CQkJMDZEMzU4QTIwREFBRDlDNDAwM0IxNzRFIC8qIE1haW5UaHJlYWQuY3BwICovLAogCQkJCTA2
RDM1OEEzMERBQUQ5QzQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmggKi8sCiAJCQkJNURCRDE4QUYw
QzU0MDFBNzAwQzE1RUFFIC8qIE1hbGxvY1pvbmVTdXBwb3J0LmggKi8sCkBAIC0xOTkxLDYgKzIw
MjYsNyBAQAogCQkJCTY1NDFCRDZGMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1NwaW5Mb2NrLmggKi8s
CiAJCQkJNjU0MUJENzAwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3lzdGVtQWxsb2MuY3BwICovLAog
CQkJCTY1NDFCRDcxMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1N5c3RlbUFsbG9jLmggKi8sCisJCQkJ
ODY1NjU3M0UxMTVCRTM1MjAwMjkxRjQwIC8qIHRleHQgKi8sCiAJCQkJMThCQUI1MjcxMERBREZD
RDAwMEQ5NDVCIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwICovLAogCQkJCTE4
QkFCNTI4MTBEQURGQ0QwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmgg
Ki8sCiAJCQkJNUQ2QTU2NkEwRjA1OTk1NTAwMjY2MTQ1IC8qIFRocmVhZGluZy5jcHAgKi8sCkBA
IC0xOTk4LDEwICsyMDM0LDE2IEBACiAJCQkJQkM1RjdCQkMxMTgyM0I1OTAwNTJDMDJDIC8qIFRo
cmVhZGluZ1ByaW1pdGl2ZXMuaCAqLywKIAkJCQlFMUVFNzkzQzBENkM5QjkyMDBGRUEzQkEgLyog
VGhyZWFkaW5nUHRocmVhZHMuY3BwICovLAogCQkJCTBCQUM5NDlFMTMzODcyODQwMENGMTM1QiAv
KiBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggKi8sCisJCQkJMUEwODI3NzYxNDIxNjhENjAw
OTBDQ0FDIC8qIHRocmVhZHMgKi8sCiAJCQkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRo
cmVhZFNhZmVSZWZDb3VudGVkLmggKi8sCiAJCQkJRTFCN0M4QkQwREEzQTMzNjAwNzRCMERDIC8q
IFRocmVhZFNwZWNpZmljLmggKi8sCisJCQkJQTczQkUxN0QxNDg0MjA4NDAwOTEyMDRCIC8qIFR5
cGVkQXJyYXlCYXNlLmggKi8sCiAJCQkJMEIzMzBDMjYwRjM4QzYyMzAwNjkyREUzIC8qIFR5cGVU
cmFpdHMuY3BwICovLAogCQkJCTBCNEQ3RTYyMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBlVHJhaXRz
LmggKi8sCisJCQkJQTczQkUxNjUxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQxNkFycmF5LmggKi8s
CisJCQkJQTczQkUxNjcxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQzMkFycmF5LmggKi8sCisJCQkJ
QTczQkUxNjMxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQ4QXJyYXkuaCAqLywKKwkJCQlFMTk1Njc4
RDA5RTdDRjEyMDBCODlEMTMgLyogdW5pY29kZSAqLywKIAkJCQkwRkQ1MkFBQzE0MzAzNTlEMDAy
NkRDOUYgLyogVW5pb25GaW5kLmggKi8sCiAJCQkJOTM1QUY0NkIwOUU5RDlEQjAwQUNEMUQ4IC8q
IFVudXNlZFBhcmFtLmggKi8sCiAJCQkJRTE3RkY3NzAxMTIxMzFEMjAwMDc2QTE5IC8qIFZhbHVl
Q2hlY2suaCAqLywKQEAgLTI5MjMsNiArMjk2NSwxOCBAQAogCQkJCTBGNUYwOENGMTQ2Qzc2MzMw
MDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
Nzg4MDE0MTE0NzFBRDkyMDA0MUIwMTYgLyogSlNEYXRlTWF0aC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQzU1NkYxNDczOEYzMTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE3M0JFMTY5MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTczQkUxNkIxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmll
dy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNkQxNDg0MjA1MjAwOTEyMDRCIC8qIEZsb2F0
MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNkYxNDg0MjA1MjAwOTEyMDRCIC8q
IEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNzExNDg0MjA1MjAwOTEy
MDRCIC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUxNzMxNDg0MjA1MjAw
OTEyMDRCIC8qIEludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTc1MTQ4NDIw
NTIwMDkxMjA0QiAvKiBJbnQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzNCRTE3NzE0
ODQyMDUyMDA5MTIwNEIgLyogVWludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTczQkUx
NzkxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NzNCRTE3QjE0ODQyMDUyMDA5MTIwNEIgLyogVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAor
CQkJCUE3M0JFMTdFMTQ4NDIwODQwMDkxMjA0QiAvKiBUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTczQkUxODAxNDg0MjBBODAwOTEyMDRCIC8qIEludGVncmFsVHlwZWRBcnJh
eUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzQ1OCw2ICszNTEyLDggQEAKIAkJCQkwRkMwOTdB
MTE0NkIyOENBMDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
ODgwMTQwMTQ3MUFEOTIwMDQxQjAxNiAvKiBKU0RhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMkM1NTcwMTQ3MzhGMzUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBNzNCRTE2QTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlCdWZm
ZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9BcnJheUJ1ZmZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5
QnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWJlNzRmNGIwZDA2MmNiMjAxODNhNzA4MGI1Y2Q0YTk4
MzJhZTkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJh
eUJ1ZmZlci5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgorCisjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3
LmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV1RGIHsKKworYm9vbCBBcnJheUJ1ZmZlcjo6dHJhbnNmZXIoQXJyYXlCdWZm
ZXJDb250ZW50cyYgcmVzdWx0LCBWZWN0b3I8QXJyYXlCdWZmZXJWaWV3Kj4mIG5ldXRlcmVkVmll
d3MpCit7CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBrZWVwQWxpdmUodGhpcyk7CisKKyAgICBp
ZiAoIW1fY29udGVudHMubV9kYXRhKSB7CisgICAgICAgIHJlc3VsdC5tX2RhdGEgPSAwOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbV9jb250ZW50cy50cmFuc2ZlcihyZXN1
bHQpOworCisgICAgd2hpbGUgKG1fZmlyc3RWaWV3KSB7CisgICAgICAgIEFycmF5QnVmZmVyVmll
dyogY3VycmVudCA9IG1fZmlyc3RWaWV3OworICAgICAgICByZW1vdmVWaWV3KGN1cnJlbnQpOwor
ICAgICAgICBjdXJyZW50LT5uZXV0ZXIoKTsKKyAgICAgICAgbmV1dGVyZWRWaWV3cy5hcHBlbmQo
Y3VycmVudCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFycmF5QnVmZmVy
OjphZGRWaWV3KEFycmF5QnVmZmVyVmlldyogdmlldykKK3sKKyAgICB2aWV3LT5tX2J1ZmZlciA9
IHRoaXM7CisgICAgdmlldy0+bV9wcmV2VmlldyA9IDA7CisgICAgdmlldy0+bV9uZXh0VmlldyA9
IG1fZmlyc3RWaWV3OworICAgIGlmIChtX2ZpcnN0VmlldykKKyAgICAgICAgbV9maXJzdFZpZXct
Pm1fcHJldlZpZXcgPSB2aWV3OworICAgIG1fZmlyc3RWaWV3ID0gdmlldzsKK30KKwordm9pZCBB
cnJheUJ1ZmZlcjo6cmVtb3ZlVmlldyhBcnJheUJ1ZmZlclZpZXcqIHZpZXcpCit7CisgICAgQVNT
RVJUKHRoaXMgPT0gdmlldy0+bV9idWZmZXIpOworICAgIGlmICh2aWV3LT5tX25leHRWaWV3KQor
ICAgICAgICB2aWV3LT5tX25leHRWaWV3LT5tX3ByZXZWaWV3ID0gdmlldy0+bV9wcmV2VmlldzsK
KyAgICBpZiAodmlldy0+bV9wcmV2VmlldykKKyAgICAgICAgdmlldy0+bV9wcmV2Vmlldy0+bV9u
ZXh0VmlldyA9IHZpZXctPm1fbmV4dFZpZXc7CisgICAgaWYgKG1fZmlyc3RWaWV3ID09IHZpZXcp
CisgICAgICAgIG1fZmlyc3RWaWV3ID0gdmlldy0+bV9uZXh0VmlldzsKKyAgICB2aWV3LT5tX3By
ZXZWaWV3ID0gdmlldy0+bV9uZXh0VmlldyA9IDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvQXJyYXlCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTk2YWE4NmY0NTI5ZTVmMjFjNGM5MGYz
YjgwOWQ0NThkY2FjNDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9BcnJheUJ1ZmZlci5oCkBAIC0wLDAgKzEsMjE5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBB
cnJheUJ1ZmZlcl9oCisjZGVmaW5lIEFycmF5QnVmZmVyX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2Ns
YXNzIEFycmF5QnVmZmVyOworY2xhc3MgQXJyYXlCdWZmZXJWaWV3OworCitjbGFzcyBBcnJheUJ1
ZmZlckNvbnRlbnRzIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRl
bnRzKTsKK3B1YmxpYzoKKyAgICBBcnJheUJ1ZmZlckNvbnRlbnRzKCkgCisgICAgICAgIDogbV9k
YXRhKDApCisgICAgICAgICwgbV9zaXplSW5CeXRlcygwKQorICAgIHsgfQorCisgICAgaW5saW5l
IH5BcnJheUJ1ZmZlckNvbnRlbnRzKCk7CisKKyAgICB2b2lkKiBkYXRhKCkgeyByZXR1cm4gbV9k
YXRhOyB9CisgICAgdW5zaWduZWQgc2l6ZUluQnl0ZXMoKSB7IHJldHVybiBtX3NpemVJbkJ5dGVz
OyB9CisKK3ByaXZhdGU6CisgICAgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNp
Z25lZCBzaXplSW5CeXRlcykgCisgICAgICAgIDogbV9kYXRhKGRhdGEpCisgICAgICAgICwgbV9z
aXplSW5CeXRlcyhzaXplSW5CeXRlcykKKyAgICB7IH0KKworICAgIGZyaWVuZCBjbGFzcyBBcnJh
eUJ1ZmZlcjsKKworICAgIHN0YXRpYyBpbmxpbmUgdm9pZCB0cnlBbGxvY2F0ZSh1bnNpZ25lZCBu
dW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1ZmZlckNvbnRlbnRz
Jik7CisgICAgdm9pZCB0cmFuc2ZlcihBcnJheUJ1ZmZlckNvbnRlbnRzJiBvdGhlcikgCisgICAg
eworICAgICAgICBBU1NFUlQoIW90aGVyLm1fZGF0YSk7CisgICAgICAgIG90aGVyLm1fZGF0YSA9
IG1fZGF0YTsKKyAgICAgICAgb3RoZXIubV9zaXplSW5CeXRlcyA9IG1fc2l6ZUluQnl0ZXM7Cisg
ICAgICAgIG1fZGF0YSA9IDA7IAorICAgICAgICBtX3NpemVJbkJ5dGVzID0gMDsgCisgICAgfQor
CisgICAgdm9pZCogbV9kYXRhOworICAgIHVuc2lnbmVkIG1fc2l6ZUluQnl0ZXM7Cit9OworCitj
bGFzcyBBcnJheUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5QnVmZmVyPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUodW5z
aWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSk7CisgICAgc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUoQXJyYXlCdWZmZXIqKTsKKyAg
ICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShjb25zdCB2b2lk
KiBzb3VyY2UsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKEFycmF5QnVmZmVyQ29udGVudHMmKTsKKworICAgIGlu
bGluZSB2b2lkKiBkYXRhKCk7CisgICAgaW5saW5lIGNvbnN0IHZvaWQqIGRhdGEoKSBjb25zdDsK
KyAgICBpbmxpbmUgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0OworCisgICAgaW5saW5lIFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlKGludCBiZWdpbiwgaW50IGVuZCkgY29uc3Q7Cisg
ICAgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlKGludCBiZWdpbikgY29uc3Q7
CisKKyAgICB2b2lkIGFkZFZpZXcoQXJyYXlCdWZmZXJWaWV3Kik7CisgICAgdm9pZCByZW1vdmVW
aWV3KEFycmF5QnVmZmVyVmlldyopOworCisgICAgYm9vbCB0cmFuc2ZlcihBcnJheUJ1ZmZlckNv
bnRlbnRzJiwgVmVjdG9yPEFycmF5QnVmZmVyVmlldyo+JiBuZXV0ZXJlZFZpZXdzKTsKKworICAg
IH5BcnJheUJ1ZmZlcigpIHsgfQorCitwcml2YXRlOgorICAgIGlubGluZSBBcnJheUJ1ZmZlcihB
cnJheUJ1ZmZlckNvbnRlbnRzJik7CisgICAgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IHNsaWNlSW1wbCh1bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kKSBjb25zdDsKKyAgICBpbmxp
bmUgdW5zaWduZWQgY2xhbXBJbmRleChpbnQgaW5kZXgpIGNvbnN0OworICAgIHN0YXRpYyBpbmxp
bmUgaW50IGNsYW1wVmFsdWUoaW50IHgsIGludCBsZWZ0LCBpbnQgcmlnaHQpOworCisgICAgQXJy
YXlCdWZmZXJDb250ZW50cyBtX2NvbnRlbnRzOworICAgIEFycmF5QnVmZmVyVmlldyogbV9maXJz
dFZpZXc7Cit9OworCitpbnQgQXJyYXlCdWZmZXI6OmNsYW1wVmFsdWUoaW50IHgsIGludCBsZWZ0
LCBpbnQgcmlnaHQpCit7CisgICAgQVNTRVJUKGxlZnQgPD0gcmlnaHQpOworICAgIGlmICh4IDwg
bGVmdCkKKyAgICAgICAgeCA9IGxlZnQ7CisgICAgaWYgKHJpZ2h0IDwgeCkKKyAgICAgICAgeCA9
IHJpZ2h0OworICAgIHJldHVybiB4OworfQorCitQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJh
eUJ1ZmZlcjo6Y3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0
ZVNpemUpCit7CisgICAgQXJyYXlCdWZmZXJDb250ZW50cyBjb250ZW50czsKKyAgICBBcnJheUJ1
ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZShudW1FbGVtZW50cywgZWxlbWVudEJ5dGVTaXplLCBj
b250ZW50cyk7CisgICAgaWYgKCFjb250ZW50cy5tX2RhdGEpCisgICAgICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXlCdWZmZXIoY29udGVudHMpKTsKK30KKworUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlciogb3Ro
ZXIpCit7CisgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUob3RoZXItPmRhdGEoKSwgb3Ro
ZXItPmJ5dGVMZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVm
ZmVyOjpjcmVhdGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKQorewor
ICAgIEFycmF5QnVmZmVyQ29udGVudHMgY29udGVudHM7CisgICAgQXJyYXlCdWZmZXJDb250ZW50
czo6dHJ5QWxsb2NhdGUoYnl0ZUxlbmd0aCwgMSwgY29udGVudHMpOworICAgIGlmICghY29udGVu
dHMubV9kYXRhKQorICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciA9IGFkb3B0UmVmKG5ldyBBcnJheUJ1ZmZlcihjb250ZW50cykpOworICAgIG1lbWNweShi
dWZmZXItPmRhdGEoKSwgc291cmNlLCBieXRlTGVuZ3RoKTsKKyAgICByZXR1cm4gYnVmZmVyLnJl
bGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0
ZShBcnJheUJ1ZmZlckNvbnRlbnRzJiBjb250ZW50cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEFycmF5QnVmZmVyKGNvbnRlbnRzKSk7Cit9CisKK0FycmF5QnVmZmVyOjpBcnJheUJ1ZmZl
cihBcnJheUJ1ZmZlckNvbnRlbnRzJiBjb250ZW50cykKKyAgICA6IG1fZmlyc3RWaWV3KDApCit7
CisgICAgY29udGVudHMudHJhbnNmZXIobV9jb250ZW50cyk7Cit9CisKK3ZvaWQqIEFycmF5QnVm
ZmVyOjpkYXRhKCkKK3sKKyAgICByZXR1cm4gbV9jb250ZW50cy5tX2RhdGE7Cit9CisKK2NvbnN0
IHZvaWQqIEFycmF5QnVmZmVyOjpkYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZW50
cy5tX2RhdGE7Cit9CisKK3Vuc2lnbmVkIEFycmF5QnVmZmVyOjpieXRlTGVuZ3RoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9jb250ZW50cy5tX3NpemVJbkJ5dGVzOworfQorCitQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6c2xpY2UoaW50IGJlZ2luLCBpbnQgZW5kKSBjb25z
dAoreworICAgIHJldHVybiBzbGljZUltcGwoY2xhbXBJbmRleChiZWdpbiksIGNsYW1wSW5kZXgo
ZW5kKSk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpzbGljZShp
bnQgYmVnaW4pIGNvbnN0Cit7CisgICAgcmV0dXJuIHNsaWNlSW1wbChjbGFtcEluZGV4KGJlZ2lu
KSwgYnl0ZUxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZm
ZXI6OnNsaWNlSW1wbCh1bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kKSBjb25zdAoreworICAg
IHVuc2lnbmVkIHNpemUgPSBiZWdpbiA8PSBlbmQgPyBlbmQgLSBiZWdpbiA6IDA7CisgICAgcmV0
dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEoKSkg
KyBiZWdpbiwgc2l6ZSk7Cit9CisKK3Vuc2lnbmVkIEFycmF5QnVmZmVyOjpjbGFtcEluZGV4KGlu
dCBpbmRleCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBjdXJyZW50TGVuZ3RoID0gYnl0ZUxlbmd0
aCgpOworICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIGluZGV4ID0gY3VycmVudExlbmd0aCAr
IGluZGV4OworICAgIHJldHVybiBjbGFtcFZhbHVlKGluZGV4LCAwLCBjdXJyZW50TGVuZ3RoKTsK
K30KKwordm9pZCBBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZSh1bnNpZ25lZCBudW1F
bGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1ZmZlckNvbnRlbnRzJiBy
ZXN1bHQpCit7CisgICAgLy8gRG8gbm90IGFsbG93IDMyLWJpdCBvdmVyZmxvdyBvZiB0aGUgdG90
YWwgc2l6ZS4KKyAgICAvLyBGSVhNRTogV2h5IG5vdD8gVGhlIHRyeUZhc3RDYWxsb2MgZnVuY3Rp
b24gYWxyZWFkeSBjaGVja3MgaXRzIGFyZ3VtZW50cywKKyAgICAvLyBhbmQgd2lsbCBmYWlsIGlm
IHRoZXJlIGlzIGFueSBvdmVyZmxvdywgc28gd2h5IHNob3VsZCB3ZSBpbmNsdWRlIGEKKyAgICAv
LyByZWR1ZGFudCB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlIGNoZWNrIGhlcmU/CisgICAgaWYg
KG51bUVsZW1lbnRzKSB7CisgICAgICAgIHVuc2lnbmVkIHRvdGFsU2l6ZSA9IG51bUVsZW1lbnRz
ICogZWxlbWVudEJ5dGVTaXplOworICAgICAgICBpZiAodG90YWxTaXplIC8gbnVtRWxlbWVudHMg
IT0gZWxlbWVudEJ5dGVTaXplKSB7CisgICAgICAgICAgICByZXN1bHQubV9kYXRhID0gMDsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoV1RGOjp0cnlGYXN0
Q2FsbG9jKG51bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUpLmdldFZhbHVlKHJlc3VsdC5tX2Rh
dGEpKSB7CisgICAgICAgIHJlc3VsdC5tX3NpemVJbkJ5dGVzID0gbnVtRWxlbWVudHMgKiBlbGVt
ZW50Qnl0ZVNpemU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmVzdWx0Lm1fZGF0YSA9
IDA7Cit9CisKK0FycmF5QnVmZmVyQ29udGVudHM6On5BcnJheUJ1ZmZlckNvbnRlbnRzKCkKK3sK
KyAgICBXVEY6OmZhc3RGcmVlKG1fZGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1
c2luZyBXVEY6OkFycmF5QnVmZmVyOworCisjZW5kaWYgLy8gQXJyYXlCdWZmZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZpZXcuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZpZXcuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
ZGJkY2Y4YzY1YWY2ZGU5Yzg2NTMxNjY0Y2E2MTViOWI5Mzc4MDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyVmlldy5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcnJheUJ1
ZmZlclZpZXcuaCIKKworI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisKK25hbWVzcGFjZSBXVEYg
eworCitBcnJheUJ1ZmZlclZpZXc6OkFycmF5QnVmZmVyVmlldyhQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQp
CisgICAgICAgIDogbV9ieXRlT2Zmc2V0KGJ5dGVPZmZzZXQpCisgICAgICAgICwgbV9idWZmZXIo
YnVmZmVyKQoreworICAgIG1fYmFzZUFkZHJlc3MgPSBtX2J1ZmZlciA/IChzdGF0aWNfY2FzdDxj
aGFyKj4obV9idWZmZXItPmRhdGEoKSkgKyBtX2J5dGVPZmZzZXQpIDogMDsKKyAgICBpZiAobV9i
dWZmZXIpIAorICAgICAgICBtX2J1ZmZlci0+YWRkVmlldyh0aGlzKTsKK30KKworQXJyYXlCdWZm
ZXJWaWV3Ojp+QXJyYXlCdWZmZXJWaWV3KCkKK3sKKyAgICBpZiAobV9idWZmZXIpCisgICAgICAg
IG1fYnVmZmVyLT5yZW1vdmVWaWV3KHRoaXMpOworfQorCit2b2lkIEFycmF5QnVmZmVyVmlldzo6
bmV1dGVyKCkKK3sKKyAgICBtX2J1ZmZlciA9IDA7CisgICAgbV9ieXRlT2Zmc2V0ID0gMDsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZp
ZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJWaWV3LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2NiN2ZkMzQ4OTlhNWNlY2FhYzEwNTA1OTE4MWQ2OTMxMTkyZDRjZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJWaWV3LmgKQEAg
LTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFycmF5QnVmZmVyVmlld19oCisjZGVm
aW5lIEFycmF5QnVmZmVyVmlld19oCisKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgorCisjaW5j
bHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJs
aWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+IHsKKyAgcHVibGljOgorICAgIHZpcnR1YWwg
Ym9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Nob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKKyAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fYnVmZmVyOworICAgIH0KKworICAgIHZvaWQqIGJhc2VBZGRyZXNz
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Jhc2VBZGRyZXNzOworICAgIH0KKwor
ICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
Ynl0ZU9mZnNldDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBj
b25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIH5BcnJheUJ1ZmZlclZpZXcoKTsKKworICBwcm90ZWN0
ZWQ6CisgICAgQXJyYXlCdWZmZXJWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25l
ZCBieXRlT2Zmc2V0KTsKKworICAgIGlubGluZSBib29sIHNldEltcGwoQXJyYXlCdWZmZXJWaWV3
KiwgdW5zaWduZWQgYnl0ZU9mZnNldCk7CisKKyAgICBpbmxpbmUgYm9vbCBzZXRSYW5nZUltcGwo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNpZ25lZCBieXRlT2Zm
c2V0KTsKKworICAgIGlubGluZSBib29sIHplcm9SYW5nZUltcGwodW5zaWduZWQgYnl0ZU9mZnNl
dCwgc2l6ZV90IHJhbmdlQnl0ZUxlbmd0aCk7CisKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgY2Fs
Y3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYXlT
aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCog
b2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKTsKKworICAgIC8vIEhlbHBlciB0byB2ZXJpZnkgdGhh
dCBhIGdpdmVuIHN1Yi1yYW5nZSBvZiBhbiBBcnJheUJ1ZmZlciBpcworICAgIC8vIHdpdGhpbiBy
YW5nZS4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBzdGF0aWMgYm9vbCB2ZXJpZnlT
dWJSYW5nZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBudW1FbGVtZW50cykKKyAgICB7CisgICAgICAgIGlmICghYnVm
ZmVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoc2l6ZW9mKFQpID4g
MSAmJiBieXRlT2Zmc2V0ICUgc2l6ZW9mKFQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB1bnNpZ25lZCByZW1haW5pbmdFbGVtZW50cyA9IChi
dWZmZXItPmJ5dGVMZW5ndGgoKSAtIGJ5dGVPZmZzZXQpIC8gc2l6ZW9mKFQpOworICAgICAgICBp
ZiAobnVtRWxlbWVudHMgPiByZW1haW5pbmdFbGVtZW50cykKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gSW5wdXQgb2Zmc2V0
IGlzIGluIG51bWJlciBvZiBlbGVtZW50cyBmcm9tIHRoaXMgYXJyYXkncyB2aWV3OworICAgIC8v
IG91dHB1dCBvZmZzZXQgaXMgaW4gbnVtYmVyIG9mIGJ5dGVzIGZyb20gdGhlIHVuZGVybHlpbmcg
YnVmZmVyJ3Mgdmlldy4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBzdGF0aWMgdm9p
ZCBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFy
cmF5Qnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkICpvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCAqbnVtRWxlbWVudHMpCisgICAgeworICAgICAgICB1bnNpZ25lZCBtYXhP
ZmZzZXQgPSAoVUlOVF9NQVggLSBhcnJheUJ5dGVPZmZzZXQpIC8gc2l6ZW9mKFQpOworICAgICAg
ICBpZiAoKm9mZnNldCA+IG1heE9mZnNldCkgeworICAgICAgICAgICAgKm9mZnNldCA9IGJ1ZmZl
ci0+Ynl0ZUxlbmd0aCgpOworICAgICAgICAgICAgKm51bUVsZW1lbnRzID0gMDsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAqb2Zmc2V0ID0gYXJyYXlCeXRlT2Zmc2V0
ICsgKm9mZnNldCAqIHNpemVvZihUKTsKKyAgICAgICAgKm9mZnNldCA9IHN0ZDo6bWluKGJ1ZmZl
ci0+Ynl0ZUxlbmd0aCgpLCAqb2Zmc2V0KTsKKyAgICAgICAgdW5zaWduZWQgcmVtYWluaW5nRWxl
bWVudHMgPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSAqb2Zmc2V0KSAvIHNpemVvZihUKTsKKyAg
ICAgICAgKm51bUVsZW1lbnRzID0gc3RkOjptaW4ocmVtYWluaW5nRWxlbWVudHMsICpudW1FbGVt
ZW50cyk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOworCisgICAgLy8gVGhp
cyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgQXJyYXlCdWZmZXIncyBzdG9yYWdlLCBwbHVzIHRoZSBi
eXRlIG9mZnNldC4KKyAgICB2b2lkKiBtX2Jhc2VBZGRyZXNzOworCisgICAgdW5zaWduZWQgbV9i
eXRlT2Zmc2V0OworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIEFycmF5QnVmZmVyOwor
ICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9idWZmZXI7CisgICAgQXJyYXlCdWZmZXJWaWV3KiBt
X3ByZXZWaWV3OworICAgIEFycmF5QnVmZmVyVmlldyogbV9uZXh0VmlldzsKK307CisKK2Jvb2wg
QXJyYXlCdWZmZXJWaWV3OjpzZXRJbXBsKEFycmF5QnVmZmVyVmlldyogYXJyYXksIHVuc2lnbmVk
IGJ5dGVPZmZzZXQpCit7CisgICAgaWYgKGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKKyAgICAg
ICAgfHwgYnl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPiBieXRlTGVuZ3RoKCkKKyAg
ICAgICAgfHwgYnl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPCBieXRlT2Zmc2V0KSB7
CisgICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBjaGFyKiBiYXNlID0gc3RhdGljX2Nhc3Q8Y2hh
cio+KGJhc2VBZGRyZXNzKCkpOworICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZzZXQsIGFycmF5
LT5iYXNlQWRkcmVzcygpLCBhcnJheS0+Ynl0ZUxlbmd0aCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQpCit7CisgICAgaWYg
KGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKKyAgICAgICAgfHwgYnl0ZU9mZnNldCArIGRhdGFC
eXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBkYXRhQnl0
ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKKyAgICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBv
ciBvdmVyZmxvdworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGNoYXIq
IGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFzZUFkZHJlc3MoKSk7CisgICAgbWVtbW92ZShi
YXNlICsgYnl0ZU9mZnNldCwgZGF0YSwgZGF0YUJ5dGVMZW5ndGgpOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIEFycmF5QnVmZmVyVmlldzo6emVyb1JhbmdlSW1wbCh1bnNpZ25lZCBieXRl
T2Zmc2V0LCBzaXplX3QgcmFuZ2VCeXRlTGVuZ3RoKQoreworICAgIGlmIChieXRlT2Zmc2V0ID4g
Ynl0ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyByYW5nZUJ5dGVMZW5ndGggPiBi
eXRlTGVuZ3RoKCkKKyAgICAgICAgfHwgYnl0ZU9mZnNldCArIHJhbmdlQnl0ZUxlbmd0aCA8IGJ5
dGVPZmZzZXQpIHsKKyAgICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGNoYXIqIGJhc2UgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oYmFzZUFkZHJlc3MoKSk7CisgICAgbWVtc2V0KGJhc2UgKyBieXRlT2Zm
c2V0LCAwLCByYW5nZUJ5dGVMZW5ndGgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFy
cmF5QnVmZmVyVmlldzo6Y2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVu
ZCwgdW5zaWduZWQgYXJyYXlTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCogb2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKQoreworICAg
IGlmIChzdGFydCA8IDApCisgICAgICAgIHN0YXJ0ICs9IGFycmF5U2l6ZTsKKyAgICBpZiAoc3Rh
cnQgPCAwKQorICAgICAgICBzdGFydCA9IDA7CisgICAgaWYgKGVuZCA8IDApCisgICAgICAgIGVu
ZCArPSBhcnJheVNpemU7CisgICAgaWYgKGVuZCA8IDApCisgICAgICAgIGVuZCA9IDA7CisgICAg
aWYgKGVuZCA8IHN0YXJ0KQorICAgICAgICBlbmQgPSBzdGFydDsKKyAgICAqb2Zmc2V0ID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXJ0KTsKKyAgICAqbGVuZ3RoID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGVuZCAtIHN0YXJ0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdU
Rjo6QXJyYXlCdWZmZXJWaWV3OworCisjZW5kaWYgLy8gQXJyYXlCdWZmZXJWaWV3X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDA4YjRkYTU4ZjhkYTkxMDQ2
YmNhYTQxYTU3ODMxYTBiMWEzMmQ3NDYuLjZkMWNlZTg5OWY4YzEyMGNkYTczNTcwMGIwOTE0ZTY5
Mjg4MjU4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAt
Myw2ICszLDggQEAgU0VUKFdURl9IRUFERVJTCiAgICAgQVZMVHJlZS5oCiAgICAgQWxpZ25tZW50
LmgKICAgICBBbHdheXNJbmxpbmUuaAorICAgIEFycmF5QnVmZmVyLmNwcAorICAgIEFycmF5QnVm
ZmVyVmlldy5jcHAKICAgICBBc3NlcnRpb25zLmgKICAgICBBdG9taWNzLmgKICAgICBCaXRWZWN0
b3IuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDMyQXJyYXku
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmxvYXQzMkFycmF5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjMwYTc2OGFhY2U2MWQ0ZDA3MTBjOGFhN2JmMTA2OWJhOTUwNGY2YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmxvYXQzMkFycmF5LmgKQEAgLTAsMCArMSwx
MDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgRmxvYXQzMkFycmF5X2gKKyNkZWZpbmUgRmxvYXQzMkFy
cmF5X2gKKworI2luY2x1ZGUgIlR5cGVkQXJyYXlCYXNlLmgiCisjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEZsb2F0MzJBcnJheSA6IHB1Ymxp
YyBUeXBlZEFycmF5QmFzZTxmbG9hdD4geworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRp
YyBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZShjb25zdCBmbG9hdCogYXJy
YXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJl
IGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KKyAgICBib29sIHNldChUeXBlZEFy
cmF5QmFzZTxmbG9hdD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJy
YXlCYXNlPGZsb2F0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisKKyAgICB2b2lkIHNldCh1bnNp
Z25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IFR5
cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGZs
b2F0Pih2YWx1ZSk7CisgICAgfQorCisgICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0
ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKKyAgICAvLyBpcyByZXNw
b25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5
LgorICAgIGZsb2F0IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKKyAgICAgICAg
ZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0
cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgaW5saW5lIEZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwK
KyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUg
dG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+Owor
CisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAgICB2aXJ0dWFsIGJv
b2wgaXNGbG9hdEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworUGFzc1JlZlB0
cjxGbG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKK3sK
KyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpjcmVhdGU8RmxvYXQzMkFycmF5Pihs
ZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpjcmVh
dGUoY29uc3QgZmxvYXQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPGZsb2F0Pjo6Y3JlYXRlPEZsb2F0MzJBcnJheT4oYXJyYXksIGxlbmd0aCk7
Cit9CisKK1Bhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6OmNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpjcmVhdGU8Rmxv
YXQzMkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK0Zsb2F0MzJBcnJh
eTo6RmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIDogVHlwZWRBcnJheUJhc2U8ZmxvYXQ+
KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQoreworfQorCitQYXNzUmVmUHRyPEZsb2F0MzJB
cnJheT4gRmxvYXQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBGbG9hdDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPEZsb2F0MzJBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkZsb2F0MzJBcnJheTsKKworI2VuZGlm
IC8vIEZsb2F0MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0Zsb2F0NjRBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDY0QXJyYXku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NjcxMzU1NmNhNjllYmFiM2JjNjUxMGUxOGI4Y2IxZDY3ZmRmNDNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDY0QXJyYXku
aApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZsb2F0NjRBcnJheV9oCisjZGVm
aW5lIEZsb2F0NjRBcnJheV9oCisKKyNpbmNsdWRlICJUeXBlZEFycmF5QmFzZS5oIgorI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBGbG9hdDY0
QXJyYXkgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8ZG91YmxlPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0
aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKGNv
bnN0IGRvdWJsZSogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQ
YXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1
bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAgLy8gQ2Fu4oCZdCB1
c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KKyAgICBi
b29sIHNldChUeXBlZEFycmF5QmFzZTxkb3VibGU+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7
IHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KKwor
ICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCisgICAgeworICAgICAg
ICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRl
eF0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKKyAgICB9CisKKyAgICAvLyBJbnZva2Vk
IGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNh
bGxlcgorICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVu
ZGVmaW5lZCBhcyBuZWNlc3NhcnkuCisgICAgZG91YmxlIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxkb3VibGU+
OjptX2xlbmd0aCk7CisgICAgICAgIGRvdWJsZSByZXN1bHQgPSBUeXBlZEFycmF5QmFzZTxkb3Vi
bGU+OjpkYXRhKClbaW5kZXhdOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAg
IGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IHN1YmFycmF5KGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgaW5saW5lIEZsb2F0NjRBcnJheShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9m
ZnNldCwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNv
bnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjsKKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZp
ZXcuCisgICAgdmlydHVhbCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9Cit9OworCitQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2NEFycmF5OjpjcmVhdGUo
dW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+Ojpj
cmVhdGU8RmxvYXQ2NEFycmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEZsb2F0NjRBcnJh
eT4gRmxvYXQ2NEFycmF5OjpjcmVhdGUoY29uc3QgZG91YmxlKiBhcnJheSwgdW5zaWduZWQgbGVu
Z3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2
NEFycmF5PihhcnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZs
b2F0NjRBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxl
bmd0aCk7Cit9CisKK0Zsb2F0NjRBcnJheTo6RmxvYXQ2NEFycmF5KFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAg
IDogVHlwZWRBcnJheUJhc2U8ZG91YmxlPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sK
K30KKworUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6c3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdAoreworICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwor
fQorCitQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2NEFycmF5OjpzdWJhcnJheShpbnQg
c3RhcnQsIGludCBlbmQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5SW1wbDxGbG9hdDY0
QXJyYXk+KHN0YXJ0LCBlbmQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RG
OjpGbG9hdDY0QXJyYXk7CisKKyNlbmRpZiAvLyBGbG9hdDY0QXJyYXlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQxNkFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0ludDE2QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGE1MmRlOTA3MmIyZTNiOTY1NjRl
YjVlZTc5NmVmN2YwZDVjNTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9JbnQxNkFycmF5LmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
SW50MTZBcnJheV9oCisjZGVmaW5lIEludDE2QXJyYXlfaAorCisjaW5jbHVkZSAiSW50ZWdyYWxU
eXBlZEFycmF5QmFzZS5oIgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQXJyYXlCdWZmZXI7
CisKK2NsYXNzIEludDE2QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaG9y
dD4geworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBj
cmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50
MTZBcnJheT4gY3JlYXRlKHNob3J0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAgLy8g
Q2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxl
ci4KKyAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTxzaG9ydD4qIGFycmF5LCB1bnNpZ25lZCBv
ZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGFycmF5LCBvZmZzZXQp
OyB9CisgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KKworICAgIGlubGlu
ZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAg
aW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBpbmxpbmUgSW50MTZBcnJheShQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiwKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVj
dG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJh
c2U8c2hvcnQ+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsK
KworUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFy
cmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEludDE2QXJyYXk+IEludDE2QXJyYXk6OmNy
ZWF0ZShzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRB
cnJheUJhc2U8c2hvcnQ+OjpjcmVhdGU8SW50MTZBcnJheT4oYXJyYXksIGxlbmd0aCk7Cit9CisK
K1Bhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQor
eworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFycmF5Pihi
dWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK0ludDE2QXJyYXk6OkludDE2QXJyYXko
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpCisgICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNob3J0PihidWZmZXIs
IGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sKK30KKworUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5
KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJh
eTo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAoreworICAgIHJldHVybiBzdWJh
cnJheUltcGw8SW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCit1c2luZyBXVEY6OkludDE2QXJyYXk7CisKKyNlbmRpZiAvLyBJbnQxNkFycmF5X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50MzJBcnJheS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQzMkFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI2MTQ1N2IzYWIx
NmIwMzQ1ZjY2YzVmOWRjYjI3NWEyZWM2NWE4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvSW50MzJBcnJheS5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgSW50MzJBcnJheV9oCisjZGVmaW5lIEludDMyQXJyYXlfaAorCisjaW5jbHVkZSAi
SW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgSW50
MzJBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD4geworcHVibGljOgor
ICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQg
bGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gY3JlYXRl
KGludCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVm
UHRyPEludDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQgdXNlICJ1c2lu
ZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAgYm9vbCBzZXQo
VHlwZWRBcnJheUJhc2U8aW50PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8aW50Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5z
aWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD46
OnNldChpbmRleCwgdmFsdWUpOyB9CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OworICAgIGlubGluZSBQYXNzUmVmUHRyPEludDMy
QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgaW5saW5lIEludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4K
KyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8aW50PjsKKworICAgIC8vIE92ZXJyaWRk
ZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCisgICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPEludDMyQXJyYXk+IEludDMy
QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlC
YXNlPGludD46OmNyZWF0ZTxJbnQzMkFycmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPElu
dDMyQXJyYXk+IEludDMyQXJyYXk6OmNyZWF0ZShpbnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OmNyZWF0ZTxJbnQzMkFycmF5Pihh
cnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5Ojpj
cmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0
LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OmNy
ZWF0ZTxJbnQzMkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK0ludDMy
QXJyYXk6OkludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25l
ZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlPGludD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8
SW50MzJBcnJheT4gSW50MzJBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAoreworICAg
IHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPEludDMy
QXJyYXk+IEludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPEludDMyQXJyYXk+KHN0YXJ0LCBlbmQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpJbnQzMkFycmF5OworCisjZW5kaWYgLy8g
SW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludDhB
cnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQ4QXJyYXkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZGI3YjY4OTliYzliYmMwZjg2ZWMxM2MyNWZlMmZhYjdmYWFjZDA2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQ4QXJyYXkuaApAQCAtMCwwICsxLDk0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEludDhBcnJheV9oCisjZGVmaW5lIEludDhBcnJheV9oCisK
KyNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBBcnJheUJ1ZmZlcjsKKworY2xhc3MgSW50OEFycmF5IDogcHVibGljIEludGVncmFs
VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8SW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBjcmVhdGUoc2lnbmVkIGNoYXIqIGFycmF5
LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJy
YXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUg
dG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAgYm9vbCBzZXQoVHlwZWRBcnJheUJh
c2U8c2lnbmVkIGNoYXI+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFy
cmF5QmFzZTxzaWduZWQgY2hhcj46OnNldChhcnJheSwgb2Zmc2V0KTsgfQorICAgIHZvaWQgc2V0
KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxz
aWduZWQgY2hhcj46OnNldChpbmRleCwgdmFsdWUpOyB9CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0
cjxJbnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NS
ZWZQdHI8SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OworCitw
cml2YXRlOgorICAgIGlubGluZSBJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBsZW5ndGgpOworICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBz
dXBlcmNsYXNzLgorICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj47
CisKKyAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgorICAgIHZpcnR1YWwg
Ym9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK307CisKK1Bhc3NSZWZQ
dHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAg
cmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6Y3JlYXRlPEludDhBcnJheT4obGVu
Z3RoKTsKK30KKworUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHNpZ25l
ZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJbnQ4QXJyYXk+KGFycmF5LCBsZW5ndGgpOworfQor
CitQYXNzUmVmUHRyPEludDhBcnJheT4gSW50OEFycmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7
CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6Y3JlYXRlPEludDhBcnJh
eT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOworfQorCitJbnQ4QXJyYXk6OkludDhBcnJh
eShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkKKyAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+
KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQoreworfQorCitQYXNzUmVmUHRyPEludDhBcnJh
eT4gSW50OEFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1
YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4
QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4g
c3ViYXJyYXlJbXBsPEludDhBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6OkludDhBcnJheTsKKworI2VuZGlmIC8vIEludDhBcnJheV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludGVncmFsVHlwZWRBcnJheUJh
c2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ4ZjgyYTM2MWM2ZWZlYjZjNDZhY2NkNzQ1YzMxNTdiMmUwMjIzZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludGVncmFsVHlwZWRB
cnJheUJhc2UuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlX2gKKyNkZWZpbmUgSW50ZWdyYWxUeXBlZEFycmF5QmFzZV9oCisKKyNpbmNs
dWRlICJUeXBlZEFycmF5QmFzZS5oIgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgorCisvLyBCYXNlIGNsYXNzIGZvciBhbGwgV2ViR0w8VD5BcnJheSB0eXBl
cyBob2xkaW5nIGludGVncmFsCisvLyAobm9uLWZsb2F0aW5nLXBvaW50KSB2YWx1ZXMuCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIEludGVncmFsVHlw
ZWRBcnJheUJhc2UgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8VD4geworICBwdWJsaWM6CisgICAg
dm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlm
IChpbmRleCA+PSBUeXBlZEFycmF5QmFzZTxUPjo6bV9sZW5ndGgpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGlmIChpc25hbih2YWx1ZSkpIC8vIENsYW1wIE5hTiB0byAwCisgICAgICAg
ICAgICB2YWx1ZSA9IDA7CisgICAgICAgIC8vIFRoZSBkb3VibGUgY2FzdCBpcyBuZWNlc3Nhcnkg
dG8gZ2V0IHRoZSBjb3JyZWN0IHdyYXBwaW5nCisgICAgICAgIC8vIGZvciBvdXQtb2YtcmFuZ2Ug
dmFsdWVzIHdpdGggSW50MzJBcnJheSBhbmQgVWludDMyQXJyYXkuCisgICAgICAgIFR5cGVkQXJy
YXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8VD4oc3RhdGljX2Nhc3Q8aW50
NjRfdD4odmFsdWUpKTsKKyAgICB9CisKKyAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdl
dHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgorICAgIC8vIGlzIHJl
c3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3Nh
cnkuCisgICAgVCBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJu
IFR5cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdOworICAgIH0KKworICBwcm90ZWN0ZWQ6
CisgICAgSW50ZWdyYWxUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICAgICAgOiBUeXBl
ZEFycmF5QmFzZTxUPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKKyAgICB7CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6SW50ZWdyYWxUeXBlZEFycmF5
QmFzZTsKKworI2VuZGlmIC8vIEludGVncmFsVHlwZWRBcnJheUJhc2VfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlZEFycmF5QmFzZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UeXBlZEFycmF5QmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlMzBjMTdjMjg2Y2M2
ZmViODNlNWY1MzY1Yjk1MzcyNmYzZjE5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1R5cGVkQXJyYXlCYXNlLmgKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFR5cGVkQXJyYXlCYXNlX2gKKyNkZWZpbmUgVHlwZWRBcnJheUJhc2VfaAor
CisjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIK
KworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgVHlwZWRB
cnJheUJhc2UgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKKyAgcHVibGljOgorICAgIFQqIGRh
dGEoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUKj4oYmFzZUFkZHJlc3MoKSk7IH0KKwor
ICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPFQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHNldEltcGwoYXJyYXksIG9mZnNldCAqIHNpemVvZihUKSk7
CisgICAgfQorCisgICAgYm9vbCBzZXRSYW5nZShjb25zdCBUKiBkYXRhLCBzaXplX3QgZGF0YUxl
bmd0aCwgdW5zaWduZWQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNldFJhbmdlSW1w
bChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwgZGF0YUxlbmd0aCAqIHNpemVv
ZihUKSwgb2Zmc2V0ICogc2l6ZW9mKFQpKTsKKyAgICB9CisKKyAgICBib29sIHplcm9SYW5nZSh1
bnNpZ25lZCBvZmZzZXQsIHNpemVfdCBsZW5ndGgpCisgICAgeworICAgICAgICByZXR1cm4gemVy
b1JhbmdlSW1wbChvZmZzZXQgKiBzaXplb2YoVCksIGxlbmd0aCAqIHNpemVvZihUKSk7CisgICAg
fQorCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4gVGhpcyBtdXN0IGJl
IHB1YmxpYyBiZWNhdXNlIG9mCisgICAgLy8gcnVsZXMgYWJvdXQgaW5oZXJpdGFuY2Ugb2YgbWVt
YmVycyBpbiB0ZW1wbGF0ZSBjbGFzc2VzLCBhbmQKKyAgICAvLyBiZWNhdXNlIGl0IGlzIGFjY2Vz
c2VkIHZpYSBwb2ludGVycyB0byBzdWJjbGFzc2VzLgorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9sZW5ndGg7CisgICAgfQorCisgICAgdmlydHVh
bCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2xl
bmd0aCAqIHNpemVvZihUKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBUeXBlZEFycmF5QmFz
ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkKKyAgICAgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zm
c2V0KQorICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICB7CisgICAgfQorCisgICAgdGVt
cGxhdGUgPGNsYXNzIFN1YmNsYXNzPgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBj
cmVhdGUodW5zaWduZWQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKFQpKTsKKyAgICAg
ICAgaWYgKCFidWZmZXIuZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZTxTdWJjbGFzcz4oYnVmZmVyLCAwLCBsZW5ndGgpOworICAgIH0KKworICAgIHRl
bXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4g
Y3JlYXRlKGNvbnN0IFQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgeworICAgICAgICBS
ZWZQdHI8U3ViY2xhc3M+IGEgPSBjcmVhdGU8U3ViY2xhc3M+KGxlbmd0aCk7CisgICAgICAgIGlm
IChhKQorICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgIGEtPnNldChpLCBhcnJheVtpXSk7CisgICAgICAgIHJldHVybiBhOwor
ICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdWJjbGFzcz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgp
CisgICAgeworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZihidWZmZXIpOworICAgICAg
ICBpZiAoIXZlcmlmeVN1YlJhbmdlPFQ+KGJ1ZiwgYnl0ZU9mZnNldCwgbGVuZ3RoKSkKKyAgICAg
ICAgICAgIHJldHVybiAwOworCisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3ViY2xhc3Mo
YnVmLCBieXRlT2Zmc2V0LCBsZW5ndGgpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3Mg
U3ViY2xhc3M+CisgICAgUGFzc1JlZlB0cjxTdWJjbGFzcz4gc3ViYXJyYXlJbXBsKGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIG9mZnNldCwgbGVuZ3Ro
OworICAgICAgICBjYWxjdWxhdGVPZmZzZXRBbmRMZW5ndGgoc3RhcnQsIGVuZCwgbV9sZW5ndGgs
ICZvZmZzZXQsICZsZW5ndGgpOworICAgICAgICBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzPFQ+
KGJ1ZmZlcigpLCBtX2J5dGVPZmZzZXQsICZvZmZzZXQsICZsZW5ndGgpOworICAgICAgICByZXR1
cm4gY3JlYXRlPFN1YmNsYXNzPihidWZmZXIoKSwgb2Zmc2V0LCBsZW5ndGgpOworICAgIH0KKwor
ICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIGhhdmUgdG8gYWNjZXNzIHRoaXMgdmlhIGEgdmlydHVh
bCBmdW5jdGlvbiBpbiBzdWJjbGFzc2VzLAorICAgIC8vIHdoaWNoIGlzIHdoeSBpdCBpcyBwcm90
ZWN0ZWQgcmF0aGVyIHRoYW4gcHJpdmF0ZS4KKyAgICB1bnNpZ25lZCBtX2xlbmd0aDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlR5cGVkQXJyYXlCYXNlOworCisjZW5k
aWYgLy8gVHlwZWRBcnJheUJhc2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9VaW50MTZBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MTZBcnJh
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkMDc2NTA1MTczZGU1NThhZDMzN2ZhMmRlM2Q5YjMxYjJmZDA5MmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1VpbnQxNkFycmF5
LmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBVaW50MTZBcnJheV9oCisjZGVm
aW5lIFVpbnQxNkFycmF5X2gKKworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIK
KworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworCitjbGFzcyBVaW50MTZB
cnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVhdGUo
dW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2QXJy
YXk+IGNyZWF0ZSh1bnNpZ25lZCBzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAg
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAg
ICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNv
bXBpbGVyLgorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiogYXJy
YXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hv
cnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KKyAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwg
ZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+Ojpz
ZXQoaW5kZXgsIHZhbHVlKTsgfQorCisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2
QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgaW5saW5lIFVpbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZp
c2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8dW5z
aWduZWQgc2hvcnQ+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4K
KyAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZFNob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQg
c2hvcnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGxlbmd0aCk7Cit9CisKK1Bhc3NSZWZQdHI8VWlu
dDE2QXJyYXk+IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgc2hvcnQqIGFycmF5LCB1bnNp
Z25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0
Pjo6Y3JlYXRlPFVpbnQxNkFycmF5PihhcnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxV
aW50MTZBcnJheT4gVWludDE2QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1
cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGJ1
ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKK30KKworVWludDE2QXJyYXk6OlVpbnQxNkFycmF5
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQorICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9y
dD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8VWludDE2
QXJyYXk+IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8VWludDE2QXJy
YXk+IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN1YmFycmF5SW1wbDxVaW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlVpbnQxNkFycmF5OworCisjZW5kaWYgLy8g
VWludDE2QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50
MzJBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MzJBcnJheS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM3NjVmODA3NzE5MmVlYjAwNGEzMDg4OTM4ODFmYTZjMDg1NjNiNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1VpbnQzMkFycmF5LmgKQEAgLTAs
MCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBVaW50MzJBcnJheV9oCisjZGVmaW5lIFVpbnQz
MkFycmF5X2gKKworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIKKworbmFtZXNw
YWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworCitjbGFzcyBVaW50MzJBcnJheSA6IHB1
YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD4geworcHVibGljOgorICAg
IHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUo
dW5zaWduZWQgaW50KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwg
dW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQg
dXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAg
Ym9vbCBzZXQoVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PiogYXJyYXksIHVuc2lnbmVkIG9m
ZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6c2V0KGFycmF5LCBv
ZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OnNldChpbmRleCwgdmFsdWUpOyB9
CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0
KSBjb25zdDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBpbmxpbmUgVWludDMyQXJy
YXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxl
bmd0aCk7CisgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCisg
ICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47CisKKyAgICAvLyBP
dmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgorICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2ln
bmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPFVp
bnQzMkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBy
ZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5Pihs
ZW5ndGgpOworfQorCitQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGludCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5PihhcnJheSwgbGVu
Z3RoKTsKK30KKworUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6
Y3JlYXRlPFVpbnQzMkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK1Vp
bnQzMkFycmF5OjpVaW50MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICA6IEludGVncmFsVHlwZWRB
cnJheUJhc2U8dW5zaWduZWQgaW50PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sKK30K
KworUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFy
dCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKK30KKwor
UGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwg
aW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPFVpbnQzMkFycmF5Pihz
dGFydCwgZW5kKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VWludDMy
QXJyYXk7CisKKyNlbmRpZiAvLyBVaW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
VWludDhBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZmRiODQyYjEyOGNlMWRmZjY4OGI4OGZkODRiMjM5
MDM2MTU2M2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Vp
bnQ4QXJyYXkuaApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFVpbnQ4QXJyYXlf
aAorI2RlZmluZSBVaW50OEFycmF5X2gKKworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJh
c2UuaCIKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFycmF5QnVmZmVyOworCitjbGFzcyBV
aW50OEFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj4g
eworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVh
dGUodW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWludDhB
cnJheT4gY3JlYXRlKHVuc2lnbmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOworICAg
IHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAg
ICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNv
bXBpbGVyLgorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KiBhcnJh
eSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFy
Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRv
dWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpzZXQo
aW5kZXgsIHZhbHVlKTsgfQorCisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3Vi
YXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OworCitwcml2YXRlOgorICAgIGlu
bGluZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCisgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNo
YXI+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAgICB2aXJ0
dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK307
CisKK1Bhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj46OmNyZWF0
ZTxVaW50OEFycmF5PihsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4
QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQorewor
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRlPFVpbnQ4QXJy
YXk+KGFycmF5LCBsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJy
YXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5z
aWduZWQgY2hhcj46OmNyZWF0ZTxVaW50OEFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0
aCk7Cit9CisKK1VpbnQ4QXJyYXk6OlVpbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4g
YnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCis6IEludGVncmFs
VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgp
Cit7Cit9CisKK1Bhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6c3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdAoreworICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwor
fQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6OnN1YmFycmF5KGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXlJbXBsPFVpbnQ4QXJyYXk+
KHN0YXJ0LCBlbmQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpVaW50
OEFycmF5OworCisjZW5kaWYgLy8gVWludDhBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3d0Zi5wcm8gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5w
cm8KaW5kZXggMjUyZTM1NDMyM2RmYmQ3ZjM4YzNiMTIxZDNjZTUzZmYyOTIzNjliZC4uYzY3Nzc1
OWY1Yjk3MDFhODRmYjlhZTFkMGY3OTZjODczMzdkYzU5OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
d3RmLnBybwpAQCAtMjUsNiArMjUsOCBAQCBRVCAtPSBndWkKIEhFQURFUlMgKz0gXAogICAgIEFs
aWdubWVudC5oIFwKICAgICBBbHdheXNJbmxpbmUuaCBcCisgICAgQXJyYXlCdWZmZXIuaCBcCisg
ICAgQXJyYXlCdWZmZXJWaWV3LmggXAogICAgIEFTQ0lJQ1R5cGUuaCBcCiAgICAgQXNzZXJ0aW9u
cy5oIFwKICAgICBBdG9taWNzLmggXApAQCAtNDQsNiArNDYsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBEZWNvZGVyLmggXAogICAgIERlcXVlLmggXAogICAgIERpc2FsbG93Q1R5cGUuaCBcCisgICAg
ZHRvYS5oIFwKICAgICBkdG9hL2JpZ251bS1kdG9hLmggXAogICAgIGR0b2EvYmlnbnVtLmggXAog
ICAgIGR0b2EvY2FjaGVkLXBvd2Vycy5oIFwKQEAgLTUyLDcgKzU1LDYgQEAgSEVBREVSUyArPSBc
CiAgICAgZHRvYS9kb3VibGUuaCBcCiAgICAgZHRvYS9mYXN0LWR0b2EuaCBcCiAgICAgZHRvYS9m
aXhlZC1kdG9hLmggXAotICAgIGR0b2EuaCBcCiAgICAgZHRvYS9zdHJ0b2QuaCBcCiAgICAgZHRv
YS91dGlscy5oIFwKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuaCBcCkBAIC02MCw2ICs2Miw4IEBA
IEhFQURFUlMgKz0gXAogICAgIEZhc3RBbGxvY0Jhc2UuaCBcCiAgICAgRmFzdE1hbGxvYy5oIFwK
ICAgICBGaXhlZEFycmF5LmggXAorICAgIEZsb2F0MzJBcnJheS5oIFwKKyAgICBGbG9hdDY0QXJy
YXkuaCBcCiAgICAgRm9yd2FyZC5oIFwKICAgICBHZXRQdHIuaCBcCiAgICAgSGFzaENvdW50ZWRT
ZXQuaCBcCkBAIC03MCw2ICs3NCw5IEBAIEhFQURFUlMgKz0gXAogICAgIEhhc2hUYWJsZS5oIFwK
ICAgICBIYXNoVHJhaXRzLmggXAogICAgIEhleE51bWJlci5oIFwKKyAgICBJbnQxNkFycmF5Lmgg
XAorICAgIEludDMyQXJyYXkuaCBcCisgICAgSW50OEFycmF5LmggXAogICAgIExpc3RIYXNoU2V0
LmggXAogICAgIExpc3RSZWZQdHIuaCBcCiAgICAgTG9ja2VyLmggXApAQCAtODgsMTUgKzk1LDE1
IEBAIEhFQURFUlMgKz0gXAogICAgIE9TUmFuZG9tU291cmNlLmggXAogICAgIE93bkFycmF5UHRy
LmggXAogICAgIE93bkZhc3RNYWxsb2NQdHIuaCBcCi0gICAgT3duUHRyQ29tbW9uLmggXAogICAg
IE93blB0ci5oIFwKKyAgICBPd25QdHJDb21tb24uaCBcCiAgICAgUGFja2VkSW50VmVjdG9yLmgg
XAotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZC5oIFwKICAgICBQYWdlQWxsb2NhdGlvbi5oIFwK
KyAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuaCBcCiAgICAgUGFnZUJsb2NrLmggXAogICAgIFBh
Z2VSZXNlcnZhdGlvbi5oIFwKLSAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmggXAogICAgIFBhcmFs
bGVsSm9icy5oIFwKKyAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmggXAogICAgIFBhcmFsbGVsSm9i
c0xpYmRpc3BhdGNoLmggXAogICAgIFBhcmFsbGVsSm9ic09wZW5NUC5oIFwKICAgICBQYXNzT3du
QXJyYXlQdHIuaCBcCkBAIC0xNDIsNiArMTQ5LDkgQEAgSEVBREVSUyArPSBcCiAgICAgVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaCBcCiAgICAgVGhyZWFkU3BlY2lmaWMuaCBcCiAgICAgVHlwZVRyYWl0
cy5oIFwKKyAgICBVaW50MTZBcnJheS5oIFwKKyAgICBVaW50MzJBcnJheS5oIFwKKyAgICBVaW50
OEFycmF5LmggXAogICAgIHVuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaCBcCiAgICAgdW5pY29kZS9D
b2xsYXRvci5oIFwKICAgICB1bmljb2RlL2ljdS9Vbmljb2RlSWN1LmggXApAQCAtMTU3LDcgKzE2
NywxMCBAQCBIRUFERVJTICs9IFwKICAgICBWTVRhZ3MuaCBcCiAgICAgV1RGVGhyZWFkRGF0YS5o
CiAKKwogU09VUkNFUyArPSBcCisgICAgQXJyYXlCdWZmZXIuY3BwIFwKKyAgICBBcnJheUJ1ZmZl
clZpZXcuY3BwIFwKICAgICBBc3NlcnRpb25zLmNwcCBcCiAgICAgQml0VmVjdG9yLmNwcCBcCiAg
ICAgQnl0ZUFycmF5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDdlZGZmNzk5NWI1MTcy
NjYyN2MwODUwMTJhMzk4ZjEwYmI4OGRjMWUuLjMzOGQ1OGY2NWZiYjEyMGJiZDlkYzA0NjRkNTNh
NDc4ODdiNDA4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04MjMsOCArODIzLDYgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKICAgICBodG1sL1dl
ZWtJbnB1dFR5cGUuY3BwCiAKLSAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKLSAgICBo
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29u
dGV4dEF0dHJpYnV0ZXMuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCiAg
ICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAKQEAgLTgzMywxNCArODMxLDYgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9E
YXRhVmlldy5jcHAKLSAgICBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwCi0gICAgaHRtbC9j
YW52YXMvRmxvYXQ2NEFycmF5LmNwcAotICAgIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwCi0g
ICAgaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAKLSAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXku
Y3BwCi0gICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuY3BwCi0gICAgaHRtbC9jYW52YXMvVWlu
dDMyQXJyYXkuY3BwCi0gICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAKIAogICAgIGh0bWwv
cGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAogICAgIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL0FycmF5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvQXJyYXlCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODdkOThjOGFlZThlOTQ3NzI1YTFlN2YyNDE4
NTI3NDAxNzlhN2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL0FycmF5QnVmZmVyLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNv
cmVfRldEX0FycmF5QnVmZmVyX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQXJyYXlCdWZmZXJfaAor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kZTM5NTI2Njk3Y2QxMGRiM2Y0OGY4Yjk2ZGQwMDRkOGIzZjk0ODJiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Fy
cmF5QnVmZmVyVmlldy5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9BcnJh
eUJ1ZmZlclZpZXdfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9BcnJheUJ1ZmZlclZpZXdfaAorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQzMkFycmF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQzMkFycmF5LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjI0NTNkZDIxNjA4ZDNjY2M5Y2U0OGMxMDUwNjRhNzc2ZmViM2QwZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GbG9hdDMy
QXJyYXkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRmxvYXQzMkFycmF5
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfRmxvYXQzMkFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0NjRBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ZTM1YWFk
Yzg4YWViYzk1NTBhZTVmNTgxZDFiOGQ4OWM4M2E2ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQ2NEFycmF5LmgKQEAgLTAsMCAr
MSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Zsb2F0NjRBcnJheV9oCisjZGVmaW5lIFdlYkNv
cmVfRldEX0Zsb2F0NjRBcnJheV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQ2NEFy
cmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi9JbnQxNkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvSW50MTZBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZDAwMzk5ZGEzNTQ5NzkzY2RiOWMxYjdlYTJl
MTRhNDg3YzgxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvSW50MTZBcnJheS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3Jl
X0ZXRF9JbnQxNkFycmF5X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSW50MTZBcnJheV9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSW50MTZBcnJheS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvSW50MzJBcnJheS5oIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDMyQXJyYXkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjY1NzQxZDc2OWJjZTY5MDkxZmRmMjBmMThhYTBiZWRjNmVhMGEwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDMyQXJyYXkuaApAQCAt
MCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSW50MzJBcnJheV9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX0ludDMyQXJyYXlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ludDMyQXJy
YXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL0ludDhBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L0ludDhBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNmFkNTI3NDBiNTFmMWZkZmI4OGFhZWFjMzFjY2E5
NWI4OTE0NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvSW50OEFycmF5LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldE
X0ludDhBcnJheV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0ludDhBcnJheV9oCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW50OEFycmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MTZBcnJheS5oIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQxNkFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NjZWEy
YzFiMGMwNzM3ZWM2YzgwZjQzYjZhNWUxYjAzNWQ5NjJlMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MTZBcnJheS5oCkBAIC0wLDAg
KzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9VaW50MTZBcnJheV9oCisjZGVmaW5lIFdlYkNv
cmVfRldEX1VpbnQxNkFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50MTZBcnJh
eS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0
Zi9VaW50MzJBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MDI2ZjE1YzA2MzYxOGNjNmIyZDQxNjJkOGNi
ZWM4YWE3YjBiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvVWludDMyQXJyYXkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29y
ZV9GV0RfVWludDMyQXJyYXlfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9VaW50MzJBcnJheV9oCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDMyQXJyYXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQ4QXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50OEFycmF5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGM4ZGU0ZWE3OGNjYWRlNDkyM2E4Njk2MDFiMTUwZGQ1ODU3ZDc2NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50OEFycmF5LmgK
QEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1VpbnQ4QXJyYXlfaAorI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9VaW50OEFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50
OEFycmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDQwZWU1
ODc3NTg5OWVmNTc0YWMyMDc4OTg3YmFhZWIzOTg4Njg3MmEuLjA0MTM1MDU3MzFiNjNhOTRmZjE1
NzhmMTM1M2EwMDhkNGUxMzgwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MTYxOSwxMCArMTYxOSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklu
cHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmggXAot
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0Nv
bnRleHRBdHRyaWJ1dGVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
Q29udGV4dEF0dHJpYnV0ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
R3JhZGllbnQuY3BwIFwKQEAgLTE2NDAsMjQgKzE2MzYsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NoZWNrZWRJbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJy
YXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaCBcCi0J
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0ludDE2QXJyYXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQx
NkFycmF5LmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwIFwK
LQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmggXAotCVNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ludDhBcnJheS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlC
YXNlLmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcCBcCi0J
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaCBcCi0JU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50MzJBcnJheS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFy
cmF5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVRva2VuTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYmYxMjAxYzBkMDc1NzFmNzkyNzAz
OTFkMTAxYzQyZmNhNDUyZTZkOC4uOGM1ZjVjMmQzYjQxNDM1YmYwNmRjNGY5OTBmOGRiYjA2N2Y3
NGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MDksOCArODA5LDYgQEAgU09VUkNFUyArPSBcCiAgICAg
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAg
XAogICAgIGh0bWwvV2Vla0lucHV0VHlwZS5jcHAgXAotICAgIGh0bWwvY2FudmFzL0FycmF5QnVm
ZmVyLmNwcCBcCi0gICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcCBcCiAgICAgaHRt
bC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0
ZXJuLmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHAgXApAQCAtODE4
LDE0ICs4MTYsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgXAogICAg
IGh0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCBcCi0gICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5
LmNwcCBcCi0gICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcCBcCi0gICAgaHRtbC9jYW52
YXMvSW50MTZBcnJheS5jcHAgXAotICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwIFwKLSAg
ICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwIFwKLSAgICBodG1sL2NhbnZhcy9VaW50MTZBcnJh
eS5jcHAgXAotICAgIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcCBcCi0gICAgaHRtbC9jYW52
YXMvVWludDhBcnJheS5jcHAgXAogICAgIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNw
cCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIFwKICAgICBodG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIFwKQEAgLTE3NTAsOCArMTc0MCw2IEBAIEhF
QURFUlMgKz0gXAogICAgIGhpc3RvcnkvQ2FjaGVkUGFnZS5oIFwKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmggXAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmggXAotICAgIGh0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyLmggXAotICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0
ZXJuLmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaCBcCkBAIC0xNzU5LDE0
ICsxNzQ3LDYgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggXAogICAgIGh0bWwv
Y2FudmFzL0RhdGFWaWV3LmggXAotICAgIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oIFwKLSAg
ICBodG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaCBcCi0gICAgaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5oIFwKLSAgICBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmggXAotICAgIGh0bWwvY2FudmFzL0lu
dDhBcnJheS5oIFwKLSAgICBodG1sL2NhbnZhcy9VaW50MTZBcnJheS5oIFwKLSAgICBodG1sL2Nh
bnZhcy9VaW50MzJBcnJheS5oIFwKLSAgICBodG1sL2NhbnZhcy9VaW50OEFycmF5LmggXAogICAg
IGh0bWwvQ2xhc3NMaXN0LmggXAogICAgIGh0bWwvQ29sbGVjdGlvbkNhY2hlLmggXAogICAgIGh0
bWwvRE9NRm9ybURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDRjYzBlOGI3ZDYyNjg2Yjk1OWY1YmNkMTcwM2Q3YjFkOGRkODBlYzQu
LjY4YzY0ZTQ2ODhlNjY0ODdiNmI3MDYzNzE2NjI0YzIwYzUxMzViMzYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MjkwMiwyMiArNTI5MDIs
NiBAQAogCQkJTmFtZT0iaHRtbCIKIAkJCT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxodG1sXGNhbnZhc1xBcnJheUJ1ZmZlci5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEFycmF5QnVmZmVyLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFz
XEFycmF5QnVmZmVyVmlldy5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEFycmF5QnVmZmVyVmlldy5oIgotCQkJCT4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxmaWxlYXBpXEFzeW5jRmls
ZVdyaXRlci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTUzNDEwLDIyICs1MzM5NCw2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2Fu
dmFzXEZsb2F0MzJBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEZsb2F0MzJBcnJheS5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xGbG9hdDY0
QXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXGNhbnZhc1xGbG9hdDY0QXJyYXkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxGb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3Bw
IgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTU3NzM4LDMwICs1NzcwNiw2IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDE2
QXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXGNhbnZhc1xJbnQxNkFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDMyQXJyYXkuY3BwIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZh
c1xJbnQzMkFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDhBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDhBcnJheS5oIgot
CQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXElz
SW5kZXhJbnB1dFR5cGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTU3OTY2LDMwICs1Nzkx
MCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcY2FudmFzXFVJbnQxNkFycmF5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcVUludDE2QXJyYXkuaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNc
VUludDMyQXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxodG1sXGNhbnZhc1xVSW50MzJBcnJheS5oIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xVSW50OEFycmF5LmNw
cCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxjYW52YXNcVUludDhBcnJheS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXFVSTElucHV0VHlwZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDMzYzE0YmVhNWFlODA0NDk5NWMwOTAxYmEzY2I2ZTllMzc5NjYzMDIuLjY2MzZkNjVi
YmNkNDRjMzVmZTVjOTgwNzcxNDNjNGZiNTY5YmY1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMjAsOCArMTIyMCw2IEBA
CiAJCTQ5QzdCOUE1MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMVGV4dHVyZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5OTIxMDQyRDJEMzAw
MDlENDQ3IC8qIEpTV2ViR0xUZXh0dXJlLmggKi87IH07CiAJCTQ5QzdCOUM4MTA0MkQzMkYwMDA5
RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OUM3QjlBODEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuY3Bw
ICovOyB9OwogCQk0OUM3QjlDOTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUE5MTA0MkQz
MkUwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5oICovOyB9OwotCQk0OUM3QjlDQjEwNDJEMzJGMDAw
OUQ0NDcgLyogSW50OEFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5QzdCOUFCMTA0MkQzMkUwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuY3BwICov
OyB9OwotCQk0OUM3QjlDQzEwNDJEMzJGMDAwOUQ0NDcgLyogSW50OEFycmF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlBQzEwNDJEMzJFMDAw
OUQ0NDcgLyogSW50OEFycmF5LmggKi87IH07CiAJCTQ5QzdCOUNFMTA0MkQzMkYwMDA5RDQ0NyAv
KiBXZWJHTEZyYW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5QzdCOUFFMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVy
LmNwcCAqLzsgfTsKIAkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZm
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdC
OUFGMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi87IH07CiAJCTQ5QzdC
OUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlCNDEwNDJEMzJGMDAwOUQ0NDcgLyog
V2ViR0xPYmplY3QuY3BwICovOyB9OwpAQCAtMTI2NiwyMiArMTI2NCw2IEBACiAJCTQ5RTkxMkFD
MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RTkxMkE3MEVGQUM5MDYwMDlEMENBRiAvKiBB
bmltYXRpb25MaXN0LmNwcCAqLzsgfTsKIAkJNDlFOTEyQUQwRUZBQzkwNjAwOUQwQ0FGIC8qIEFu
aW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5RTkxMkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDlFOTEyQUUwRUZBQzkw
NjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OUU5MTJBOTBFRkFDOTA2MDA5RDBDQUYgLyogVGltaW5nRnVu
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREM3MTA1MDNDMjMw
MDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwICovOyB9OwotCQk0OUVFQ0RFMDEwNTAzQzI0
MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RDODEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZm
ZXJWaWV3LmggKi87IH07Ci0JCTQ5RUVDREUyMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVF
Q0RDQTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuY3BwICovOyB9OwotCQk0OUVFQ0RF
MzEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJh
eUJ1ZmZlci5oICovOyB9OwotCQk0OUVFQ0RFNTEwNTAzQzI0MDAwOTlGQUIgLyogRmxvYXQzMkFy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
RUVDRENEMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuY3BwICovOyB9OwotCQk0OUVF
Q0RFNjEwNTAzQzI0MDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyog
RmxvYXQzMkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREU4MTA1MDNDMjQwMDA5OUZBQiAvKiBJbnQz
MkFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5RUVDREQwMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5LmNwcCAqLzsgfTsKLQkJNDlF
RUNERTkxMDUwM0MyNDAwMDk5RkFCIC8qIEludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQxMTA1MDNDMjMwMDA5OUZBQiAvKiBJ
bnQzMkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREVCMTA1MDNDMjQwMDA5OUZBQiAvKiBJbnQxNkFy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
RUVDREQzMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQxNkFycmF5LmNwcCAqLzsgfTsKLQkJNDlFRUNE
RUMxMDUwM0MyNDAwMDk5RkFCIC8qIEludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQ0MTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQx
NkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREVFMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50OEFycmF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVD
REQ2MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5LmNwcCAqLzsgfTsKLQkJNDlFRUNERUYx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQ3MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFy
cmF5LmggKi87IH07Ci0JCTQ5RUVDREYxMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RE
OTEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXkuY3BwICovOyB9OwotCQk0OUVFQ0RGMjEw
NTAzQzI0MDAwOTlGQUIgLyogVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRERBMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJB
cnJheS5oICovOyB9OwotCQk0OUVFQ0RGNDEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2QXJyYXku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNE
REMxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmNwcCAqLzsgfTsKLQkJNDlFRUNERjUx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0RERDEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2
QXJyYXkuaCAqLzsgfTsKIAkJNDlFRUNGMDAxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQXJyYXlCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlF
RUNFRjIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQXJyYXlCdWZmZXIuY3BwICovOyB9OwogCQk0OUVF
Q0YwMTEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNFRjMxMDUwNzBDNDAwMDk5RkFCIC8q
IEpTQXJyYXlCdWZmZXIuaCAqLzsgfTsKIAkJNDlFRUNGMDIxMDUwNzBDNDAwMDk5RkFCIC8qIEpT
RmxvYXQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5RUVDRUY0MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheS5jcHAgKi87
IH07CkBAIC0xMzg2LDcgKzEzNjgsNiBAQAogCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDM4QkUzRjE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi87IH07CiAJ
CTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxv
d1RocmVhZC5jcHAgKi87IH07Ci0JCTUwQjQyMTU4MTQ2OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRD
U1NTaGFkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTBCNDIxNTcxNDY5NzY5NjAwODdFNjA0IC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmgg
Ki87IH07CiAJCTUwRTU2NkQ2MTM5RTM4QzUwMDIxNDQzMyAvKiBDU1NXcmFwU2hhcGVzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMUJBQUIxMTM5
NTExNEIwMEY3QUNFQiAvKiBDU1NXcmFwU2hhcGVzLmNwcCAqLzsgfTsKIAkJNTEwMTg0NjkwQjA4
NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEw
MTg0NkEwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTg0NjgwQjA4NjAyQTAwNEE4MjVGIC8q
IENhY2hlZFBhZ2UuY3BwICovOyB9OwpAQCAtMTcyOSwxMCArMTcxMCw2IEBACiAJCTZFNjdEMkE2
MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU2N0QyQTQxMjgwRThBNDAwODc1OEY3
IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgKi87IH07CiAJCTZFNjdEMkE3MTI4MEU4QTQwMDg3
NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFNjdEMkE1MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25z
M0RPcGVuR0wuaCAqLzsgfTsKIAkJNkU2N0QyQTkxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lv
bnMzRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU2
N0QyQTgxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oICovOyB9OwotCQk2RTk2QkIx
QzExOTg2RUUyMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU5NkJCMUExMTk4NkVFMTAwN0Q5
NENEIC8qIEludGVncmFsVHlwZWRBcnJheUJhc2UuaCAqLzsgfTsKLQkJNkU5NkJCMUQxMTk4NkVF
MjAwN0Q5NENEIC8qIFR5cGVkQXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTk2QkIxQjExOTg2RUUxMDA3RDk0Q0QgLyogVHlwZWRBcnJh
eUJhc2UuaCAqLzsgfTsKLQkJNkVCQzVEODExMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJh
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJD
NUQ3RTEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmNwcCAqLzsgfTsKLQkJNkVCQzVE
ODIxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCQzVEN0YxMzhCNEM0RTAwQTBDRjhBIC8qIEZs
b2F0NjRBcnJheS5oICovOyB9OwogCQk2RUJDNUQ4NTEzOEI0Q0UwMDBBMENGOEEgLyogSlNGbG9h
dDY0QXJyYXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkVCQzVEODQxMzhCNENFMDAwQTBDRjhBIC8qIEpTRmxvYXQ2NEFycmF5Q3VzdG9t
LmNwcCAqLzsgfTsKIAkJNkVCQzVFQUYxMzhCNTBGMjAwQTBDRjhBIC8qIEpTRmxvYXQ2NEFycmF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkM1
RUFEMTM4QjUwRjIwMEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5jcHAgKi87IH07CiAJCTZFQkM1
RUIwMTM4QjUwRjIwMEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCQzVFQUUxMzhCNTBGMjAwQTBDRjhBIC8q
IEpTRmxvYXQ2NEFycmF5LmggKi87IH07CkBAIC04NDIwLDggKzgzOTcsNiBAQAogCQk0OUM3QjlB
ODEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xCdWZmZXIuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMQnVm
ZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5QTkxMDQyRDMyRTAw
MDlENDQ3IC8qIFdlYkdMQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkdMQnVmZmVyLmg7IHBhdGggPSBjYW52YXMvV2ViR0xCdWZmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5QUExMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMQnVmZmVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTEJ1ZmZlci5pZGw7IHBhdGggPSBjYW52
YXMvV2ViR0xCdWZmZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM3QjlB
QjEwNDJEMzJFMDAwOUQ0NDcgLyogSW50OEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEludDhBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvSW50OEFycmF5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDN0I5QUMxMDQyRDMyRTAwMDlENDQ3
IC8qIEludDhBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnQ4QXJy
YXkuaDsgcGF0aCA9IGNhbnZhcy9JbnQ4QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDlDN0I5QUQxMDQyRDMyRTAwMDlENDQ3IC8qIEludDhBcnJheS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gSW50OEFycmF5LmlkbDsgcGF0aCA9IGNhbnZhcy9JbnQ4QXJyYXkuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3QjlBRTEwNDJEMzJFMDAwOUQ0NDcg
LyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJHTEZyYW1lYnVmZmVyLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5QUYxMDQyRDMyRTAwMDlE
NDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViR0xGcmFtZWJ1ZmZlci5oOyBwYXRoID0gY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NzQsMjkgKzg0NDksMTMgQEAKIAkJNDlF
OTEyQTcwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQW5pbWF0aW9uTGlzdC5jcHA7IHBhdGggPSBhbmltYXRp
b24vQW5pbWF0aW9uTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RTkx
MkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEFuaW1hdGlvbkxpc3QuaDsgcGF0aCA9IGFuaW1hdGlvbi9BbmltYXRp
b25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RTkxMkE5MEVGQUM5MDYw
MDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBUaW1pbmdGdW5jdGlvbi5oOyBwYXRoID0gYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREM3MTA1MDNDMjMwMDA5OUZBQiAv
KiBBcnJheUJ1ZmZlclZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQXJyYXlCdWZmZXJWaWV3LmNwcDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0RDODEwNTAzQzIzMDAwOTlGQUIg
LyogQXJyYXlCdWZmZXJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFy
cmF5QnVmZmVyVmlldy5oOyBwYXRoID0gY2FudmFzL0FycmF5QnVmZmVyVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlC
dWZmZXJWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBBcnJheUJ1ZmZlclZpZXcuaWRs
OyBwYXRoID0gY2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDRENBMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBcnJheUJ1ZmZlci5jcHA7IHBhdGgg
PSBjYW52YXMvQXJyYXlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
OUVFQ0RDQjEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQXJyYXlCdWZmZXIuaDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RDQzEwNTAzQzIzMDAwOTlG
QUIgLyogQXJyYXlCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IEFycmF5QnVmZmVy
LmlkbDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDRENEMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRmxvYXQzMkFycmF5LmNwcDsgcGF0
aCA9IGNhbnZhcy9GbG9hdDMyQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZsb2F0MzJBcnJheS5oOyBwYXRoID0gY2FudmFzL0Zsb2F0
MzJBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RDRjEwNTAzQzIz
MDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBGbG9h
dDMyQXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL0Zsb2F0MzJBcnJheS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQwMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEludDMyQXJyYXkuY3Bw
OyBwYXRoID0gY2FudmFzL0ludDMyQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0OUVFQ0REMTEwNTAzQzIzMDAwOTlGQUIgLyogSW50MzJBcnJheS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnQzMkFycmF5Lmg7IHBhdGggPSBjYW52YXMvSW50MzJB
cnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0REMjEwNTAzQzIzMDAw
OTlGQUIgLyogSW50MzJBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSW50MzJBcnJh
eS5pZGw7IHBhdGggPSBjYW52YXMvSW50MzJBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDREQzMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQxNkFycmF5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEludDE2QXJyYXkuY3BwOyBwYXRoID0g
Y2FudmFzL0ludDE2QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVF
Q0RENDEwNTAzQzIzMDAwOTlGQUIgLyogSW50MTZBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBJbnQxNkFycmF5Lmg7IHBhdGggPSBjYW52YXMvSW50MTZBcnJheS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0RENTEwNTAzQzIzMDAwOTlGQUIgLyog
SW50MTZBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSW50MTZBcnJheS5pZGw7IHBh
dGggPSBjYW52YXMvSW50MTZBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ5RUVDREQ2MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVpbnQ4QXJyYXkuY3BwOyBwYXRoID0gY2FudmFzL1Vp
bnQ4QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0RENzEwNTAz
QzIzMDAwOTlGQUIgLyogVWludDhBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBVaW50OEFycmF5Lmg7IHBhdGggPSBjYW52YXMvVWludDhBcnJheS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OUVFQ0REODEwNTAzQzIzMDAwOTlGQUIgLyogVWludDhBcnJh
eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVWludDhBcnJheS5pZGw7IHBhdGggPSBjYW52
YXMvVWludDhBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQ5
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVaW50MzJBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvVWludDMyQXJy
YXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0REQTEwNTAzQzIzMDAw
OTlGQUIgLyogVWludDMyQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
VWludDMyQXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9VaW50MzJBcnJheS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUVFQ0REQjEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXku
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFVpbnQzMkFycmF5LmlkbDsgcGF0aCA9IGNhbnZh
cy9VaW50MzJBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDRERD
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVaW50MTZBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvVWludDE2QXJy
YXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0RERDEwNTAzQzI0MDAw
OTlGQUIgLyogVWludDE2QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
VWludDE2QXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9VaW50MTZBcnJheS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUVFQ0RERTEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2QXJyYXku
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFVpbnQxNkFycmF5LmlkbDsgcGF0aCA9IGNhbnZh
cy9VaW50MTZBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVDRUYy
MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXJyYXlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0OUVFQ0VGMzEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTc0LDEwICs4OTMzLDYgQEAKIAkJNkU2N0QyQTQxMjgw
RThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFeHRlbnNpb25zM0RPcGVuR0wuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RTY3RDJBNTEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNE
T3BlbkdMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuc2lvbnMzRE9w
ZW5HTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTY3RDJBODEyODBFOEJEMDA4
NzU4RjcgLyogRXh0ZW5zaW9uczNELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4dGVuc2lvbnMzRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTk2QkIxQTEx
OTg2RUUxMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg7IHBhdGggPSBjYW52
YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk2RTk2QkIxQjExOTg2RUUxMDA3RDk0Q0QgLyogVHlwZWRBcnJheUJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVHlwZWRBcnJheUJhc2UuaDsgcGF0aCA9IGNhbnZhcy9U
eXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RUJDNUQ3RTEz
OEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEZsb2F0NjRBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvRmxvYXQ2NEFy
cmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkVCQzVEN0YxMzhCNEM0RTAw
QTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGbG9hdDY0QXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9GbG9hdDY0QXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVCQzVEODAxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRB
cnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRmxvYXQ2NEFycmF5LmlkbDsgcGF0aCA9
IGNhbnZhcy9GbG9hdDY0QXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RUJDNUQ4NDEzOEI0Q0UwMDBBMENGOEEgLyogSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGbG9hdDY0QXJyYXlDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJDNUVBRDEzOEI1MEYyMDBBMENGOEEg
LyogSlNGbG9hdDY0QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNGbG9hdDY0QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5
MTksMTEgKzE0ODc0LDcgQEAKIAkJCQlBMEVFMERGNDE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xE
ZWJ1Z1NoYWRlcnMuaCAqLywKIAkJCQlBMEVFMERGMDE0NEY4MjQzMDBGODBCMEQgLyogV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5pZGwgKi8sCiAJCQkJQTBFRTBERUYxNDRGODIzMjAwRjgwQjBEIC8q
IFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLywKLQkJCQk0OUVFQ0RDQTEwNTAzQzIzMDAwOTlGQUIg
LyogQXJyYXlCdWZmZXIuY3BwICovLAotCQkJCTQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAvKiBB
cnJheUJ1ZmZlci5oICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1
ZmZlci5pZGwgKi8sCi0JCQkJNDlFRUNEQzcxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVy
Vmlldy5jcHAgKi8sCi0JCQkJNDlFRUNEQzgxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVy
Vmlldy5oICovLAogCQkJCTQ5RUVDREM5MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZp
ZXcuaWRsICovLAogCQkJCTZFNEU5MUE3MTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0
QXR0cmlidXRlcy5jcHAgKi8sCiAJCQkJNkU0RTkxQTgxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZh
c0NvbnRleHRBdHRyaWJ1dGVzLmggKi8sCkBAIC0xNDk0OCwyMiArMTQ4OTksMTEgQEAKIAkJCQky
RTk3Q0NFNzEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuY3BwICovLAogCQkJCTJFOTdDQ0U4
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovLAogCQkJCTJFOTdDQ0U5MTI5MzlDQjgw
MEM1QzhGRiAvKiBEYXRhVmlldy5pZGwgKi8sCi0JCQkJNDlFRUNEQ0QxMDUwM0MyMzAwMDk5RkFC
IC8qIEZsb2F0MzJBcnJheS5jcHAgKi8sCi0JCQkJNDlFRUNEQ0UxMDUwM0MyMzAwMDk5RkFCIC8q
IEZsb2F0MzJBcnJheS5oICovLAogCQkJCTQ5RUVDRENGMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9h
dDMyQXJyYXkuaWRsICovLAotCQkJCTZFQkM1RDdFMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0
QXJyYXkuY3BwICovLAotCQkJCTZFQkM1RDdGMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0QXJy
YXkuaCAqLywKIAkJCQk2RUJDNUQ4MDEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5Lmlk
bCAqLywKLQkJCQk0OUVFQ0REMzEwNTAzQzIzMDAwOTlGQUIgLyogSW50MTZBcnJheS5jcHAgKi8s
Ci0JCQkJNDlFRUNERDQxMDUwM0MyMzAwMDk5RkFCIC8qIEludDE2QXJyYXkuaCAqLywKIAkJCQk0
OUVFQ0RENTEwNTAzQzIzMDAwOTlGQUIgLyogSW50MTZBcnJheS5pZGwgKi8sCi0JCQkJNDlFRUNE
RDAxMDUwM0MyMzAwMDk5RkFCIC8qIEludDMyQXJyYXkuY3BwICovLAotCQkJCTQ5RUVDREQxMTA1
MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5LmggKi8sCiAJCQkJNDlFRUNERDIxMDUwM0MyMzAw
MDk5RkFCIC8qIEludDMyQXJyYXkuaWRsICovLAotCQkJCTQ5QzdCOUFCMTA0MkQzMkUwMDA5RDQ0
NyAvKiBJbnQ4QXJyYXkuY3BwICovLAotCQkJCTQ5QzdCOUFDMTA0MkQzMkUwMDA5RDQ0NyAvKiBJ
bnQ4QXJyYXkuaCAqLywKIAkJCQk0OUM3QjlBRDEwNDJEMzJFMDAwOUQ0NDcgLyogSW50OEFycmF5
LmlkbCAqLywKLQkJCQk2RTk2QkIxQTExOTg2RUUxMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFy
cmF5QmFzZS5oICovLAogCQkJCTkwMDE3NzNEMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmNwcCAqLywKIAkJCQk5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyogT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5oICovLAogCQkJCTkwMDE3NzNGMTJFMDM0NzgwMDY0ODQ2MiAv
KiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLywKQEAgLTE0OTczLDE1ICsxNDkxMyw4IEBA
CiAJCQkJNzdBMTdBNkUxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmNw
cCAqLywKIAkJCQk3N0ExN0E2RjEyRjI4MTgyMDA0RTAyRjYgLyogT0VTVmVydGV4QXJyYXlPYmpl
Y3QuaCAqLywKIAkJCQk3N0ExN0E3MDEyRjI4MTgyMDA0RTAyRjYgLyogT0VTVmVydGV4QXJyYXlP
YmplY3QuaWRsICovLAotCQkJCTZFOTZCQjFCMTE5ODZFRTEwMDdEOTRDRCAvKiBUeXBlZEFycmF5
QmFzZS5oICovLAotCQkJCTQ5RUVDRERDMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5j
cHAgKi8sCi0JCQkJNDlFRUNEREQxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmggKi8s
CiAJCQkJNDlFRUNEREUxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmlkbCAqLywKLQkJ
CQk0OUVFQ0REOTEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXkuY3BwICovLAotCQkJCTQ5
RUVDRERBMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5oICovLAogCQkJCTQ5RUVDRERC
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5pZGwgKi8sCi0JCQkJNDlFRUNERDYxMDUw
M0MyMzAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuY3BwICovLAotCQkJCTQ5RUVDREQ3MTA1MDNDMjMw
MDA5OUZBQiAvKiBVaW50OEFycmF5LmggKi8sCiAJCQkJNDlFRUNERDgxMDUwM0MyMzAwMDk5RkFC
IC8qIFVpbnQ4QXJyYXkuaWRsICovLAogCQkJCUE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBX
ZWJHTEFjdGl2ZUluZm8uaCAqLywKIAkJCQlBN0QyMEYzQjEwN0YzNzM4MDBBODAzOTIgLyogV2Vi
R0xBY3RpdmVJbmZvLmlkbCAqLywKQEAgLTIxNzg0LDggKzIxNzE3LDYgQEAKIAkJCQk1MTJERDhG
QzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTJERDhGODBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGQjJGNzcwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RFMzEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDREUwMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJh
eUJ1ZmZlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTY4NkNBMTNBQzE4MDIwMEI2OUM2
OCAvKiBBc3luY0F1ZGlvRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVGMUJGRjcxMjFD
QjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODlE
MDhEQTAxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjgxNCw4ICsyMjc0NSw2IEBACiAJCQkJMDhDOTI1MUEwRkNDN0M0QTAwNDgwREVDIC8q
IEZpbHRlckVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyQzAwRDkxMjk2MTlGODAwNUM5
NTc1IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjA0RjBBMTU0RjA5
MDAwQTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlFRUNE
RTYxMDUwM0MyNDAwMDk5RkFCIC8qIEZsb2F0MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkVCQzVEODIxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjI3NTM1NjkwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0UG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyRTI3Q0EwMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50
M0QuaCBpbiBIZWFkZXJzICovLApAQCAtMjMxMjcsMTAgKzIzMDU2LDYgQEAKIAkJCQlGMzgxMEMx
QzEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUYzNzVDQzA3MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNBQkZFMEMxMzBFOURBMDAwRTdGN0QxIC8qIEluc3Ry
dW1lbnRpbmdBZ2VudHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDREVDMTA1MDNDMjQwMDA5
OUZBQiAvKiBJbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RFOTEwNTAzQzI0
MDAwOTlGQUIgLyogSW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlDN0I5Q0MxMDQy
RDMyRjAwMDlENDQ3IC8qIEludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU5NkJCMUMx
MTk4NkVFMjAwN0Q5NENEIC8qIEludGVncmFsVHlwZWRBcnJheUJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyNzUzNTcyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQ2MkE0QTExMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjI3NTM1NzQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ1NDMsMTQgKzI0NDY4LDEwIEBACiAJCQkJMTRENjRCNUQxMzRBNUI2
QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxOUQyQzUwQ0VB
NkY2MTAwRkY1MDdBIC8qIFRyZWVTaGFyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NEZFNzM5
MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk2RTk2
QkIxRDExOTg2RUUyMDA3RDk0Q0QgLyogVHlwZWRBcnJheUJhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3QzI4QTY4MTBGNjU5Q0MwMDhDNzgxMyAvKiBUeXBlc2V0dGluZ0ZlYXR1cmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOUUxQTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNEUwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRGMEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2
ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RGNTEwNTAzQzI0MDAw
OTlGQUIgLyogVWludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDREYyMTA1MDND
MjQwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlFRUNERUYx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjNF
MjAxMTM0MzQxMjAwMDI3NDkyNiAvKiBVbmljb2RlQmlkaS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJDM0RBNEQwRDAwNkMxRDAwRUY2RjI2IC8qIFVuaWNvZGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTRBRkNGQTUwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjUxODAsOCArMjUxMDEsNiBAQAogCQkJCTUxMkREOEZCMEQ5MUU2QUYwMDBGODlF
RSAvKiBBcmNoaXZlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyREQ4RjcwRDkx
RTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNGQjJGNzYwOTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTQ5RUVDREUyMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTY4NkM5MTNBQzE4MDIwMEI2OUM2OCAvKiBB
c3luY0F1ZGlvRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OUQwOEQ5RjEyMjI4NDUx
MDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRB
ODBFMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU4MzEs
OCArMjU3NTAsNiBAQAogCQkJCUJDNUVCNjlFMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhDOTI1MTkwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRl
ckVmZmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjA0RDBBMTU0RjA5MDAwQTQyMzQg
LyogRml4ZWRUYWJsZUxheW91dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUVFQ0RFNTEwNTAz
QzI0MDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZFQkM1
RDgxMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1NjgwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0UG9pbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjJFMjdDOUYwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU1OTBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRQb2ludENH
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYxMDgsOSArMjYwMjUsNiBAQAogCQkJCTRGMzI4OUI1
MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUYzNTBCNzM1MTNGMTM3N0QwMDg4MEM0MyAvKiBJbnN0cnVtZW50
aW5nQWdlbnRzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDREVCMTA1MDNDMjQwMDA5OUZB
QiAvKiBJbnQxNkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDREU4MTA1MDNDMjQw
MDA5OUZBQiAvKiBJbnQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QzdCOUNCMTA0
MkQzMkYwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1
NjAwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50TWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzQ1OSw5ICsyNzM3Myw2IEBACiAJCQkJOTMzMDlFMTkwOTlFNjQ5MjAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNEQwQTQ0RUZD
NzAwRjk5MkUwIC8qIFVJRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzNTRBM0MwQjI0
RjhDOTAwM0Y2REVBIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDlFRUNERjQxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTQ5RUVDREYxMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0OUVFQ0RFRTEwNTAzQzI0MDAwOTlGQUIgLyogVWludDhBcnJheS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkMzREE0QzBEMDA2QzFEMDBFRjZGMjYgLyogVW5pY29k
ZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQwODZGRTk5MDlENTNBQUIwMDVCQzc0RCAv
KiBVbmxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREREMTI1MUYxMkQw
MDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwCmluZGV4IDUyMzMy
YzljODg4M2Y4NTAzZWJjODlmNWEyNWVlNjBmZDJhZWFkNzMuLjNkZGNmOWE0ODNlNmQzMzNlZDgz
ZjZkMDczZDBhM2M4MDcyYjBlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogCi0jaW5jbHVkZSAiQXJyYXlC
dWZmZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oCmluZGV4IDlmYzFiZDA3M2Q2MTc3ZTk1NTY2ZjQ2YzJhMDljNWU0YzUxMWQ2
ZGMuLmRmOWU0MzkwNjQwNGQ0ODU4ODgzOGIwYjk2ZjRlN2RkY2Q1YjljODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaApA
QCAtMjcsNyArMjcsNiBAQAogI2lmbmRlZiBKU0FycmF5QnVmZmVyVmlld0hlbHBlcl9oCiAjZGVm
aW5lIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyVmll
dy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVy
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCkBAIC0zNiw2ICszNSw3IEBACiAjaW5jbHVk
ZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTVmFsdWUuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGNhMWRiMzRjMTE3MGUxYWI5ODdj
ODMwMWI5MGIwMWQyYzczNGFkZDIuLmUyYzI2Mjc1M2FhMWRhNTU1ZjhlN2MzNDUzNGU0NTkwNzY4
YjIwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
dGV4dEN1c3RvbS5jcHAKQEAgLTI4LDEyICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiQXVkaW9Db250
ZXh0LmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkF1ZGlvQnVmZmVy
LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQXVkaW9CdWZmZXIu
aCIKICNpbmNsdWRlICJKU0F1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3Iu
aD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3RvbS5j
cHAKaW5kZXggYzc3MWI2M2E4ZDQ1MjU3YjgzNjEwN2NhZmZmZTYwNDI2MDAxYTMxYy4uOGI0OTNj
YTE3NjlmMmVkOTk3YTllNTA1NTdmMGM1NGQ1NDAzMmMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwCkBAIC0zNCw5ICszNCw5IEBA
CiAKICNpbmNsdWRlICJKU0ZpbGVSZWFkZXIuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgi
CiAjaW5jbHVkZSAiRmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKKyNp
bmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3Bw
CmluZGV4IDVkYTY5YjRiMDFhZTczNjlkZWRjZGQwNTc3ZDRkODg0Y2VmNzlmNzAuLmVkM2IxMTI2
NTE2YzQ4ODIyYjYzMGZkZjQ0OGQ2MWE3ZGVkYzk2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKQEAgLTI2LDggKzI2LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogCi0j
aW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxw
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQ2NEFy
cmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQ2NEFycmF5
Q3VzdG9tLmNwcAppbmRleCA0NDZiMGVjNDBiN2ZlOGZmYTk3ZjkwNTEyNzcwMTMzZTBlMjBhYzhi
Li5mYmQ4MmI1MWQ1MDJjMDQzNjk3ZTIzNzY0NTU5YTEyNzk4MDFkMGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0NjRBcnJheUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwCkBAIC0y
Niw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNGbG9hdDY0QXJy
YXkuaCIKIAotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmgiCisjaW5jbHVkZSA8d3RmL0Zsb2F0NjRBcnJheS5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ludDE2QXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQx
NkFycmF5Q3VzdG9tLmNwcAppbmRleCA4N2VhNmZlYmY3NTk4YTA2MTQ4OWRhODEzMWVmZjQzZjY0
N2VjZDc0Li43NmFhYmEwMTc0ZWNiYzZmYjI0NDEzNzIyNjdmZTZkYWY0MTlhNjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKQEAg
LTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0ludDE2QXJy
YXkuaCIKIAotI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9JbnQxNkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJy
YXlDdXN0b20uY3BwCmluZGV4IDhiODI0YTc3NjdhYmNhYTNmYWVkZGNmNzRjNjNiOTNlOGM0YjJl
ZTcuLjQzMzkwYjFjMGEwMTg1ZWQ0NzRmZTcwOTU5OTUxOTJhMzhkNGEyNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcApAQCAtMjYs
OCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSW50MzJBcnJheS5o
IgogCi0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3
SGVscGVyLmgiCisjaW5jbHVkZSA8d3RmL0ludDMyQXJyYXkuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJy
YXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0
b20uY3BwCmluZGV4IGRjYmNjNWFhNDdhODRmZjQ5ZjZiM2RiYzk1NmQyZWNkMjAxNDZkYTkuLmJi
N2ZlOGFkNjAxZmIxNDViOTgzMTQwNjcyMTFjNjAyYjFhYjBjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI2LDkgKzI2LDkg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0ludDhBcnJheS5oIgogCi0jaW5j
bHVkZSAiSW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8d3RmL0ludDhBcnJheS5oPgog
CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDE2ZjlkYjJhMDkxMTQxZTljN2M5OTJi
NjM3ZmIxNzkyNDg5ZTEyYTQuLmEyMWQzNTE3MGE5NDI5MGZlYzY2NTBhNTcxYjVhN2Q0YTU1MmUy
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlD
dXN0b20uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNVaW50MTZBcnJheS5oIgog
CiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKLSNpbmNsdWRlICJVaW50MTZB
cnJheS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50MTZBcnJheS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlD
dXN0b20uY3BwCmluZGV4IDFlMDcxYzlmNGQyZTY3ODA1MDFiM2VlOWE3NTA5NTQ1MWU0NDRkMjMu
LjgyODgwNDRiZjE5ZmQ5ZGIzZGFkMDMyYzVmZTdhY2ZkYjkxOTg1NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNyw3
ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNVaW50MzJBcnJheS5oIgogCiAjaW5jbHVkZSAiSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaCIKLSNpbmNsdWRlICJVaW50MzJBcnJheS5oIgorI2luY2x1ZGUg
PHd0Zi9VaW50MzJBcnJheS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAppbmRleCBlOTBm
OGU5N2U0MWQ2M2M0NTlmZmJhNmEyOGVmNTM1OTYxYzU0YzNmLi4wYjI4NjQ3Njg0MjAwNDRlMWQ0
YWZmZDBlMzViMGQzNDkzYmI2MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJK
U1VpbnQ4QXJyYXkuaCIKIAogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCi0j
aW5jbHVkZSAiVWludDhBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2F2ZVNoYXBlck5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXYXZlU2hhcGVyTm9kZUN1c3RvbS5jcHAKaW5kZXggZmVhYjk3ODc4ZTJjYjIxNmRhZWUw
Yjc5YWJlNDUyNWQ1MjM2ZTgwMS4uZTAzYTY1NjVhY2E0ZTIzMGIyZjFlZDIyMjUxOGNiOGE3MjM5
OTI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXYXZlU2hhcGVy
Tm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXYXZlU2hh
cGVyTm9kZUN1c3RvbS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIldhdmVTaGFw
ZXJOb2RlLmgiCiAKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRlICJKU0Zsb2F0
MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTV2F2ZVNoYXBlck5vZGUuaCIKKyNpbmNsdWRlIDx3dGYv
RmxvYXQzMkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAppbmRleCAwMzc2MTBhNDkxZGI2N2EzZmJlZmQ4OWJiNTgzZDllYjI1ZGM1MjE2Li4x
YThmNThhNjJiNTI4NjM1ZjhjYjdlOTVkNDhlYzAzNDQ0YjAwZTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCkBAIC0zMCwxMCArMzAsOCBAQAogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRmxvYXQz
MkFycmF5LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTRmxv
YXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTSFRNTEltYWdlRWxlbWVudC5oIgpAQCAtNzAsNiArNjgsOCBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYv
RmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3
dGYvSW50MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25GYXN0TWFsbG9jUHRyLmg+CiAKICNp
ZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IDc3MzZkYmE2YTdhNjNmODYxZTFkMDY5NGU1
ZTQ3MjA3YjM4ZjU3MTAuLjNhYjIwN2ViMmE2NDM5YzI0MTY1NGI1NWEyMTE5MWMyOGM1NTBiMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNp
bmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJET01X
aW5kb3cuaCIKQEAgLTQ5LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IGNhYzM1MGI0OTQxNTMxYjg2YTc0MmE4NzJiYjI1YzIzMDhmNGI2OTgu
LjcxMGM3YWUzZTMxN2E3MWNkODBlNzYyMjBiMmFlYmI0ODE3MTVmZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yOTYs
NiArMjk2LDggQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgICAkaW5jbHVkZXNSZWYt
PnsiSlNET01TdHJpbmdMaXN0LmgifSA9IDE7CiAgICAgfSBlbHNpZiAoJGlzQ2FsbGJhY2spIHsK
ICAgICAgICAgJGluY2x1ZGVzUmVmLT57IkpTJHt0eXBlfS5oIn0gPSAxOworICAgIH0gZWxzaWYg
KElzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgICRpbmNsdWRlc1JlZi0+eyI8d3Rm
LyR7dHlwZX0uaD4ifSA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBkZWZhdWx0LCBpbmNs
dWRlIHRoZSBzYW1lIG5hbWVkIGZpbGUKICAgICAgICAgJGluY2x1ZGVzUmVmLT57IiR7dHlwZX0u
aCJ9ID0gMTsKQEAgLTY5MSw3ICs2OTMsMTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgfQog
CiAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
R2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgewotICAgICAgICAkaGVhZGVySW5jbHVkZXN7IiRp
bXBsQ2xhc3NOYW1lLmgifSA9IDE7CisgICAgICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCRpbXBs
Q2xhc3NOYW1lKSkgeworICAgICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8d3RmLyRpbXBsQ2xh
c3NOYW1lLmg+In0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGhlYWRlcklu
Y2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5oIn0gPSAxOworICAgICAgICB9CiAgICAgfQogICAgIAog
ICAgICRoZWFkZXJJbmNsdWRlc3siPHJ1bnRpbWUvSlNPYmplY3QuaD4ifSA9IDE7CkBAIC0yODg0
LDcgKzI4OTAsMTEgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgIH0gZWxzZSB7CiAgICAgICAg
ICMgRGVmYXVsdCwgaW5jbHVkZSBoZWFkZXIgd2l0aCBzYW1lIG5hbWUuCiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiJHR5cGUuaCIsICRjb25kaXRpb25hbCkgaWYgbm90ICRjb2RlR2VuZXJhdG9y
LT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSk7CisgICAgICAgIGlmIChJc1R5cGVkQXJyYXlU
eXBlKCR0eXBlKSkgeworICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjx3dGYvJHR5cGUu
aD4iLCAkY29uZGl0aW9uYWwpIGlmIG5vdCAkY29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25P
ZlR5cGUoJHR5cGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIiR0eXBlLmgiLCAkY29uZGl0aW9uYWwpIGlmIG5vdCAkY29kZUdlbmVyYXRvci0+QXZv
aWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJu
ICR2YWx1ZSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpp
bmRleCA1ZTMzZWIyZTliMzE1NjQxYjBjZmM2OTI0YTQ2MjE5MDRjODA0YmU5Li40ZTNmYjc3Nzg1
OWJjMTdiOWMyYTUzZjY2ZGY5MGI5NzYyM2E3NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTU0LDYgKzE1NCwxMCBA
QCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiAKICAgICAjIFdoZW4gd2UncmUgZmluaXNoZWQgd2l0
aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzCiAgICAgIyByZW9yZ2FuaXphdGlvbiwgd2Ugd29uJ3Qg
bmVlZCB0aGVzZSBzcGVjaWFsIGNhc2VzLgorICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCR0eXBl
KSkgeworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygid3RmLyR7dHlwZX0uaCIpOworICAgICAg
ICByZXR1cm47CisgICAgfQogICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlw
ZSgkdHlwZSkgYW5kICEkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSBhbmQgISRj
b2RlR2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSkgYW5kICR0eXBlIG5lICJE
YXRlIikgewogICAgICAgICAjIGRlZmF1bHQsIGluY2x1ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZQog
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcyhHZXRWOEhlYWRlck5hbWUoJHt0eXBlfSkpOwpAQCAt
NTM3LDYgKzU0MSw3IEBAIHN1YiBHZXRIZWFkZXJDbGFzc0luY2x1ZGUKICAgICBpZiAoJGNsYXNz
TmFtZSA9fiAvU1ZHUGF0aFNlZy8pIHsKICAgICAgICAgJGNsYXNzTmFtZSA9fiBzL0Fic3xSZWwv
LzsKICAgICB9CisgICAgcmV0dXJuICJ3dGYvJHtjbGFzc05hbWV9LmgiIGlmIElzVHlwZWRBcnJh
eVR5cGUoJGNsYXNzTmFtZSk7CiAgICAgcmV0dXJuICIiIGlmICgkY29kZUdlbmVyYXRvci0+QXZv
aWRJbmNsdXNpb25PZlR5cGUoJGNsYXNzTmFtZSkpOwogICAgIHJldHVybiAiJHtjbGFzc05hbWV9
LmgiOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01GbG9hdDY0QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01GbG9hdDY0QXJyYXkuY3BwCmluZGV4IDQzYTJmZDAxZTRlYjg5
Njk5OGM0NDkzOTM0MTVjZWQ3NTA2NGVkYmIuLmZkZDAwMTU1ZjQ1ZGUzZDcyNzdiZTU4ODU2ZGU5
NWY2NTEyZjg3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NRmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTUZsb2F0NjRBcnJheS5jcHAKQEAgLTIxLDcgKzIx
LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJET01GbG9hdDY0QXJyYXku
aCIKIAorI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5o
IgorI2luY2x1ZGUgIldlYkRPTUZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIldlYkV4Y2VwdGlv
bkhhbmRsZXIuaCIKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgpAQCAtNDEsNiArNDMsMTQgQEAgV1RGOjpGbG9hdDY0QXJyYXkqIFdlYkRPTUZsb2F0NjRB
cnJheTo6aW1wbCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdURjo6RmxvYXQ2NEFy
cmF5Kj4oV2ViRE9NQXJyYXlCdWZmZXJWaWV3OjppbXBsKCkpOwogfQogCit2b2lkIFdlYkRPTUZs
b2F0NjRBcnJheTo6Zm9vKGNvbnN0IFdlYkRPTUZsb2F0MzJBcnJheSYgYXJyYXkpCit7CisgICAg
aWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGltcGwoKS0+Zm9vKHRvV2ViQ29y
ZShhcnJheSkpOworfQorCiBXVEY6OkZsb2F0NjRBcnJheSogdG9XZWJDb3JlKGNvbnN0IFdlYkRP
TUZsb2F0NjRBcnJheSYgd3JhcHBlcikKIHsKICAgICByZXR1cm4gd3JhcHBlci5pbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TUZsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01GbG9hdDY0QXJyYXkuaAppbmRleCA1M2RiNWQ3Nzg2NjQwOWMwOWE0OWIxMzRjODA5
YWUxZjFmNTI5N2FiLi43ZjM1YjdhMWIxNTY2MGYwODUwYzBjYjg4NzJmYmY4MTdlNTQ5MmIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TUZsb2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NRmxvYXQ2NEFycmF5LmgKQEAgLTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdU
RiB7CiBjbGFzcyBGbG9hdDY0QXJyYXk7CiB9OwogCitjbGFzcyBXZWJET01GbG9hdDMyQXJyYXk7
CiAKIGNsYXNzIFdlYkRPTUZsb2F0NjRBcnJheSA6IHB1YmxpYyBXZWJET01BcnJheUJ1ZmZlclZp
ZXcgewogcHVibGljOgpAQCAtMzcsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2Vi
RE9NRmxvYXQ2NEFycmF5KFdURjo6RmxvYXQ2NEFycmF5Kik7CiAgICAgdmlydHVhbCB+V2ViRE9N
RmxvYXQ2NEFycmF5KCkgeyB9CiAKKyAgICB2b2lkIGZvbyhjb25zdCBXZWJET01GbG9hdDMyQXJy
YXkmIGFycmF5KTsKIAogICAgIFdURjo6RmxvYXQ2NEFycmF5KiBpbXBsKCkgY29uc3Q7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NRmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTUZsb2F0NjRBcnJheS5jcHAKaW5kZXggMTMzNjA2NTIy
ODZjNTZmYjNmZGVhMzVlNzE2OWEyZGU0ZWI5ZTNkOS4uZWFhNzcwYWMwNmU0ODI3MjRmZTMxYTU0
YzFhNjhhZTdiMzNkMGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NRmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01GbG9hdDY0QXJy
YXkuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NQmluZGluZy5oIgogI2luY2x1ZGUgImdvYmplY3QvQ29u
dmVydFRvVVRGOFN0cmluZy5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01GbG9hdDMyQXJy
YXkuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NRmxvYXQzMkFycmF5UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01GbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlICJ3ZWJr
aXQvV2ViS2l0RE9NRmxvYXQ2NEFycmF5UHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdGRlZmlu
ZXMuaCIKQEAgLTQ5LDYgKzUxLDIxIEBAIFdlYktpdERPTUZsb2F0NjRBcnJheSoga2l0KFdlYkNv
cmU6OkZsb2F0NjRBcnJheSogb2JqKQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0IC8vCiAK
K3ZvaWQKK3dlYmtpdF9kb21fZmxvYXQ2NGFycmF5X2ZvbyhXZWJLaXRET01GbG9hdDY0QXJyYXkq
IHNlbGYsIFdlYktpdERPTUZsb2F0MzJBcnJheSogYXJyYXkpCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6RmxvYXQ2NEFycmF5ICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBnX3JldHVybl9pZl9mYWlsKGFycmF5KTsKKyAgICBXZWJDb3JlOjpGbG9hdDMyQXJyYXkgKiBj
b252ZXJ0ZWRfYXJyYXkgPSBOVUxMOworICAgIGlmIChhcnJheSAhPSBOVUxMKSB7CisgICAgICAg
IGNvbnZlcnRlZF9hcnJheSA9IFdlYktpdDo6Y29yZShhcnJheSk7CisgICAgICAgIGdfcmV0dXJu
X2lmX2ZhaWwoY29udmVydGVkX2FycmF5KTsKKyAgICB9CisgICAgaXRlbS0+Zm9vKGNvbnZlcnRl
ZF9hcnJheSk7Cit9CisKIAogR19ERUZJTkVfVFlQRShXZWJLaXRET01GbG9hdDY0QXJyYXksIHdl
YmtpdF9kb21fZmxvYXQ2NGFycmF5LCBXRUJLSVRfVFlQRV9ET01fQVJSQVlfQlVGRkVSX1ZJRVcp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTUZsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NRmxvYXQ2NEFycmF5LmgKaW5kZXggYmM1MDQ3MDI0
NDEzYjViNmNjNTQ1ZDhiZmY2MjQ0MmU4YzJhZmIwYy4uOTBiZTU2ZTgxYzcwZGVhMDQ0ZjUyMjMz
ZmFjZWFhY2FjZmM5NDg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NRmxvYXQ2NEFycmF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NRmxvYXQ2NEFycmF5
LmgKQEAgLTQ2LDYgKzQ2LDE3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRmxvYXQ2NEFycmF5Q2xhc3Mg
ewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X2RvbV9mbG9hdDY0YXJyYXlfZ2V0X3R5cGUgKHZv
aWQpOwogCisvKioKKyAqIHdlYmtpdF9kb21fZmxvYXQ2NGFycmF5X2ZvbzoKKyAqIEBzZWxmOiBB
ICNXZWJLaXRET01GbG9hdDY0QXJyYXkKKyAqIEBhcnJheTogQSAjV2ViS2l0RE9NRmxvYXQzMkFy
cmF5CisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2Rv
bV9mbG9hdDY0YXJyYXlfZm9vKFdlYktpdERPTUZsb2F0NjRBcnJheSogc2VsZiwgV2ViS2l0RE9N
RmxvYXQzMkFycmF5KiBhcnJheSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRE
T01GbG9hdDY0QXJyYXlfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAKaW5kZXggZjFmNmU2MTQwODZl
MDNjNWQ0ZmU4ODRmYzBjN2RmMGQwMmNmNjkzMy4uN2QzODYwZDdiYWQ0YmFjZjQwYjRlYzRhNWZl
ZjU1MTY5ZmE2YzZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuY3BwCkBAIC0yMSw4ICsyMSwxMiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTRmxvYXQ2NEFycmF5LmgiCiAKLSNpbmNs
dWRlICJGbG9hdDY0QXJyYXkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXkuaCIKKyNpbmNsdWRl
IDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9GbG9hdDY0QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0xMTQsMTEgKzExOCwxMiBAQCBDb25zdHJ1Y3RU
eXBlIEpTRmxvYXQ2NEFycmF5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YQogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNGbG9hdDY0QXJy
YXlQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKKyAgICB7ICJmb28iLCBEb250RGVsZXRlIHwg
RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNGbG9hdDY0
QXJyYXlQcm90b3R5cGVGdW5jdGlvbkZvbyksIChpbnRwdHJfdCkxIFRIVU5LX0dFTkVSQVRPUigw
KSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7IDAsIDAsIDAsIDAgVEhVTktf
R0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9CiB9OwogCiAjdW5kZWYg
VEhVTktfR0VORVJBVE9SCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTRmxvYXQ2NEFycmF5UHJv
dG90eXBlVGFibGUgPSB7IDEsIDAsIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlVGFibGVWYWx1ZXMs
IDAgfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGVUYWJs
ZSA9IHsgMiwgMSwgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9Owogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZSogZ2V0SlNGbG9hdDY0QXJyYXlQcm90b3R5cGVUYWJsZShFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIGdldEhhc2hUYWJsZUZvckdsb2JhbERhdGEoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCAmSlNGbG9hdDY0QXJyYXlQcm90b3R5cGVUYWJsZSk7CkBAIC0xMzEs
NiArMTM2LDE4IEBAIEpTT2JqZWN0KiBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZTo6c2VsZihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIGdldERPTVBy
b3RvdHlwZTxKU0Zsb2F0NjRBcnJheT4oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAorYm9vbCBK
U0Zsb2F0NjRBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK3sKKyAgICBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZSogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU0Zsb2F0NjRBcnJheVByb3RvdHlwZSo+KGNlbGwpOworICAgIHJldHVybiBnZXRT
dGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsIGdldEpTRmxvYXQ2NEFycmF5UHJvdG90
eXBlVGFibGUoZXhlYyksIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jv
b2wgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQoreworICAgIEpTRmxvYXQ2NEFy
cmF5UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRmxvYXQ2NEFycmF5UHJvdG90eXBl
Kj4ob2JqZWN0KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2Jq
ZWN0PihleGVjLCBnZXRKU0Zsb2F0NjRBcnJheVByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworfQorCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlKiBnZXRKU0Zsb2F0NjRBcnJheVRhYmxlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1
cm4gZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShleGVjLT5nbG9iYWxEYXRhKCksICZKU0Zsb2F0
NjRBcnJheVRhYmxlKTsKQEAgLTIzMiw2ICsyNDksMjMgQEAgSlNWYWx1ZSBKU0Zsb2F0NjRBcnJh
eTo6Z2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNGbG9hdDY0QXJyYXlDb25zdHJ1Y3Rv
cj4oZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsK
IH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0Zsb2F0NjRBcnJheVByb3RvdHlw
ZUZ1bmN0aW9uRm9vKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNG
bG9hdDY0QXJyYXk6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgIEpTRmxvYXQ2NEFycmF5KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNGbG9h
dDY0QXJyYXkqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKGNhc3RlZFRoaXMsICZKU0Zsb2F0NjRBcnJheTo6c19pbmZvKTsKKyAgICBGbG9hdDY0
QXJyYXkqIGltcCA9IHN0YXRpY19jYXN0PEZsb2F0NjRBcnJheSo+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyIpKTsKKyAgICBGbG9hdDMyQXJyYXkqIGFycmF5KHRvRmxvYXQzMkFycmF5KE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgaW1wLT5mb28oYXJyYXkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIAogSlNWYWx1ZSBKU0Zsb2F0NjRBcnJheTo6Z2V0
QnlJbmRleChFeGVjU3RhdGUqLCB1bnNpZ25lZCBpbmRleCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmgKaW5k
ZXggNGUzYmJjMzI0NjY3NTU3MmYzMTdiOThiZjQ2MDQxZGQyY2YzZjBmYS4uNGYzYTY2NzNjYTAz
ODgzZDk2MzNlYmEyMTdkYzVlZGRhYjc0ZWE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmgKQEAgLTIxLDEw
ICsyMSwxMCBAQAogI2lmbmRlZiBKU0Zsb2F0NjRBcnJheV9oCiAjZGVmaW5lIEpTRmxvYXQ2NEFy
cmF5X2gKIAotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZm
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSA8cnVudGltZS9K
U09iamVjdC5oPgorI2luY2x1ZGUgPHd0Zi9GbG9hdDY0QXJyYXkuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwpAQCAtODgsNyArOTAsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkgOiBKU0M6OkpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IH0KIHBy
b3RlY3RlZDoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwogfTsKIAogY2xhc3MgSlNGbG9hdDY0QXJyYXlDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01D
b25zdHJ1Y3Rvck9iamVjdCB7CkBAIC0xMTgsNiArMTIwLDkgQEAgcHJvdGVjdGVkOgogICAgIHN0
YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpT
Qzo6Q29uc3RydWN0RGF0YSYpOwogfTsKIAorLy8gRnVuY3Rpb25zCisKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0Zsb2F0NjRBcnJheVByb3RvdHlwZUZ1bmN0aW9uRm9vKEpT
Qzo6RXhlY1N0YXRlKik7CiAvLyBBdHRyaWJ1dGVzCiAKIEpTQzo6SlNWYWx1ZSBqc0Zsb2F0NjRB
cnJheUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6
OklkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTUZsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NRmxvYXQ2NEFycmF5LmgKaW5kZXggNDRjYTllNTViODA4MGZl
NzdlNGZlODc4YWI1OGUxNjc0N2JmNWI4Ni4uODU1NjcxOTljMWNjMTQwNGEwMGYyZmQ4Zjg0OWIw
NWZlNWQxNmQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NRmxvYXQ2NEFycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NRmxvYXQ2NEFycmF5LmgKQEAgLTI4LDcgKzI4LDEwIEBACiAK
ICNpZiBXRUJLSVRfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBXRUJLSVRfVkVSU0lPTl9MQVRFU1QK
IAorQGNsYXNzIERPTUZsb2F0MzJBcnJheTsKKwogQGludGVyZmFjZSBET01GbG9hdDY0QXJyYXkg
OiBET01BcnJheUJ1ZmZlclZpZXcKKy0gKHZvaWQpZm9vOihET01GbG9hdDMyQXJyYXkgKilhcnJh
eTsKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01GbG9hdDY0QXJyYXkubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01GbG9hdDY0QXJyYXkubW0KaW5kZXggNjA2MTY2NDQ3
MmQ1MmQ1OTMxMmQwODBiN2E0NTMwMTNjMTFiNGZmOC4uMDI5YzMyMjJiZTBjNTRlN2RkNDRiZmE0
NmY0MTczMTg1M2RhNWUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NRmxvYXQ2NEFycmF5Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTUZsb2F0NjRBcnJheS5tbQpAQCAtMzMsMTAgKzMz
LDEyIEBACiAjaW1wb3J0ICJET01DU1NSdWxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUNTU1Zh
bHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRP
TUZsb2F0MzJBcnJheUludGVybmFsLmgiCiAjaW1wb3J0ICJET01GbG9hdDY0QXJyYXlJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01TdHlsZVNoZWV0
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJGbG9h
dDMyQXJyYXkuaCIKICNpbXBvcnQgIkZsb2F0NjRBcnJheS5oIgogI2ltcG9ydCAiSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmgiCiAjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgpAQCAtNDcsNiArNDksMTIg
QEAKIAogQGltcGxlbWVudGF0aW9uIERPTUZsb2F0NjRBcnJheQogCistICh2b2lkKWZvbzooRE9N
RmxvYXQzMkFycmF5ICopYXJyYXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+Zm9vKGNvcmUoYXJyYXkpKTsKK30KKwogQGVuZAogCiBXZWJD
b3JlOjpGbG9hdDY0QXJyYXkqIGNvcmUoRE9NRmxvYXQ2NEFycmF5ICp3cmFwcGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZEFycmF5
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRBcnJh
eS5pZGwKaW5kZXggNTdiNDJiZWJkMjViMDczMWQzZDFjNmQ4NTM3ZjVmODg0ZmQxMzA4YS4uNDU3
OTRmMjkyNzhjODI2YzE0NjkzMTBmYmQ0MjUzMWZiODYzMjFhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZEFycmF5LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsCkBA
IC0zNCw1ICszNCw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ3VzdG9tVG9KUywKICAgICAg
ICAgRG9udENoZWNrRW51bXMKICAgICBdIEZsb2F0NjRBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7
CisgICAgICAgIHZvaWQgZm9vKGluIEZsb2F0MzJBcnJheSBhcnJheSk7CiAgICAgfTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhG
bG9hdDY0QXJyYXkuY3BwCmluZGV4IDU4NjExYTExMDIwYTI5MDJhMDMyMmQ1M2JlZWNkNGI0NDJk
ODZhMWQuLjFhMmEyODY0NjQwYTllZjkxMzJkNWZjZmQ1YWVhYmM0ZGZiZGMxZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4Rmxv
YXQ2NEFycmF5LmNwcApAQCAtMjEsMTMgKzIxLDE4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiVjhGbG9hdDY0QXJyYXkuaCIKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1
ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmdN
YWNyb3MuaCIKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4RE9NV3Jh
cHBlci5oIgorI2luY2x1ZGUgIlY4RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRl
ZENvbnRleHQuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0Zsb2F0MzJB
cnJheS5oPgorI2luY2x1ZGUgPHd0Zi9GbG9hdDY0QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsNiArNDMsMTcgQEAgbmFt
ZXNwYWNlIEZsb2F0NjRBcnJheUludGVybmFsIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgVjhfVVNFKFQpIHsgfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGZvb0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uRmxv
YXQ2NEFycmF5LmZvbyIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9y
KTsKKyAgICBGbG9hdDY0QXJyYXkqIGltcCA9IFY4RmxvYXQ2NEFycmF5Ojp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soRmxvYXQzMkFycmF5KiwgYXJyYXksIFY4
RmxvYXQzMkFycmF5OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBNaXNzaW5nSXNVbmRlZmluZWQpKSA/IFY4RmxvYXQzMkFycmF5Ojp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIE1p
c3NpbmdJc1VuZGVmaW5lZCkpKSA6IDApOworICAgIGltcC0+Zm9vKGFycmF5KTsKKyAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZsb2F0NjRB
cnJheUludGVybmFsCiAKIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gQ29uZmlndXJlVjhGbG9hdDY0QXJyYXlUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gZGVzYykKQEAgLTUwLDggKzY2LDE4IEBAIHN0YXRpYyB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhGbG9hdDY0QXJyYXlUZW1wbGF0
ZSh2ODo6CiAgICAgICAgIDAsIDApOwogICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0dXJl
KTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KICAgICBkZXNjLT5TZXRD
YWxsSGFuZGxlcihWOEZsb2F0NjRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk7CisgICAgdjg6
OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBs
YXRlKCk7CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8gPSBkZXNjLT5Q
cm90b3R5cGVUZW1wbGF0ZSgpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7IC8vIEluIHNv
bWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCisgICAgVU5VU0VEX1BBUkFNKHByb3RvKTsg
Ly8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KICAgICAKIAorICAgIC8vIEN1
c3RvbSBTaWduYXR1cmUgJ2ZvbycKKyAgICBjb25zdCBpbnQgZm9vQXJnYyA9IDE7CisgICAgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZm9vQXJndltmb29BcmdjXSA9IHsgVjhGbG9h
dDMyQXJyYXk6OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1
cmU+IGZvb1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBmb29BcmdjLCBmb29B
cmd2KTsKKyAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiZm9vIiksIHY4OjpGdW5jdGlv
blRlbXBsYXRlOjpOZXcoRmxvYXQ2NEFycmF5SW50ZXJuYWw6OmZvb0NhbGxiYWNrLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4oKSwgZm9vU2lnbmF0dXJlKSk7CisKICAgICAvLyBDdXN0b20gdG9TdHJp
bmcgdGVtcGxhdGUKICAgICBkZXNjLT5TZXQoZ2V0VG9TdHJpbmdOYW1lKCksIGdldFRvU3RyaW5n
VGVtcGxhdGUoKSk7CiAgICAgcmV0dXJuIGRlc2M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCmluZGV4IGQ3OTFm
Y2RkMTVkYjE3NmY2Yjk4OWQzNzRiNzVlOTU0Y2FjMDkxZjcuLmIxY2RiZTc0M2FkY2M1YjI4YWJl
ZTUwNGZkYjUzN2I5YmZhODAxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCkBAIC0yMSwxMSArMjEsMTEg
QEAKICNpZm5kZWYgVjhGbG9hdDY0QXJyYXlfaAogI2RlZmluZSBWOEZsb2F0NjRBcnJheV9oCiAK
LSNpbmNsdWRlICJGbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5o
IgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5o
IgogI2luY2x1ZGUgPHY4Lmg+CisjaW5jbHVkZSA8d3RmL0Zsb2F0NjRBcnJheS5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZUV2ZW50LmgKaW5kZXggMDMwZTE4NmE4MzMwNDM5ZDljNDQxYjIzMzg3
Y2I0MmQxMWY5NzlmMS4uM2E5Njg4YTIxNTUwODQ3ZGRiMTU1YTYzY2Q5ZGU3OTc3ZDA0MjVhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaApAQCAtMjgsMTMgKzI4LDEzIEBACiAjaWZuZGVm
IE1lc3NhZ2VFdmVudF9oCiAjZGVmaW5lIE1lc3NhZ2VFdmVudF9oCiAKLSNpbmNsdWRlICJBcnJh
eUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRl
IDx3dGYvQXJyYXlCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCA1ODViMDEzN2VjNWJjZGI5MWMxYTUzNzI4ZDRl
NmY2YTQ4MWUwNzI4Li4yOWM1OTg0NzA3M2I0M2MyMjQ1YzUyMDczMjRkY2NlYmJhMWNhYTQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKQEAgLTM0LDEzICszNCwxMyBAQAog
CiAjaW5jbHVkZSAiRmlsZVJlYWRlci5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNp
bmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaCIKICNp
bmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKaW5kZXggMWI1NDEyODhkMGY3MjFmZmY2Nzg5
MWUzMjIxYzAzMDQ0ZWRmMDVjYy4uNWZiNjA2MWMwZjg2NDYwNThlZjI3M2I0OTYxMmEyY2Y1NDg0
ZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBA
IC0zNCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAKLSNpbmNs
dWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkJsb2Iu
aCIKICNpbmNsdWRlICJCbG9iVVJMLmgiCkBAIC00NSw2ICs0NCw3IEBACiAjaW5jbHVkZSAiVGV4
dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlUmVhZGVyU3luYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXJTeW5jLmNwcAppbmRleCA4NWU3ZjUyYWQzMTdlYmVhNzExOTQxOTNhMjM1MzkwMmNjOTJkNWE5
Li4xZmU1YzdmNzNhZTM5MDU5Y2Y0OTY1MzMzOTU5ZjY4MmIyMDRjOGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcApAQCAtMzQsMTEgKzM0LDExIEBACiAKICNp
bmNsdWRlICJGaWxlUmVhZGVyU3luYy5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNp
bmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUgIkZpbGVFeGNl
cHRpb24uaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL0Fy
cmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9iQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcApp
bmRleCAwNjcxZTA1MzVkMjMxODVmYTE1YzFkZGU1ZjU4ZWNkYTM2YzExZGNhLi5hODEwYWQ4ZjU0
MmQxOWYxNmM1M2NhMTc3ZGQzMGQ1NTYxZjFlMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcApAQCAtMzIsMTIgKzMyLDEyIEBACiAKICNpbmNsdWRl
ICJXZWJLaXRCbG9iQnVpbGRlci5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNs
dWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGUu
aCIKICNpbmNsdWRlICJMaW5lRW5kaW5nLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCisj
aW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0MWI3ZjYz
NzYxNDkwZWMyYzQ5Y2Y1ZDNiMGYyZTYwZDM2MTAwMzlhLi5iNjA2Y2Y3NDM2MGY3ZWZhYjQ4ZmZi
MTAwOWExMTVjMzY3MjY5MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTcxLDEwICs3MSwxMCBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVVVJRC5oIgotI2luY2x1ZGUgIlVpbnQ4QXJy
YXkuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhkZGE2MTFhMGRlODdhYmQ0YjI0ZjQ2NWY2ZjFi
NDcwZjNmNDhjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJBcnJheUJ1ZmZlci5oIgotI2luY2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgotCi0jaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNl
IFdURiB7Ci0KLXN0YXRpYyBpbnQgY2xhbXBWYWx1ZShpbnQgeCwgaW50IGxlZnQsIGludCByaWdo
dCkKLXsKLSAgICBBU1NFUlQobGVmdCA8PSByaWdodCk7Ci0gICAgaWYgKHggPCBsZWZ0KQotICAg
ICAgICB4ID0gbGVmdDsKLSAgICBpZiAocmlnaHQgPCB4KQotICAgICAgICB4ID0gcmlnaHQ7Ci0g
ICAgcmV0dXJuIHg7Ci19Ci0KLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpj
cmVhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSkKLXsK
LSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIGNvbnRlbnRzOwotICAgIEFycmF5QnVmZmVyQ29udGVu
dHM6OnRyeUFsbG9jYXRlKG51bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUsIGNvbnRlbnRzKTsK
LSAgICBpZiAoIWNvbnRlbnRzLm1fZGF0YSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBBcnJheUJ1ZmZlcihjb250ZW50cykpOwotfQotCi1QYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKEFycmF5QnVmZmVyKiBvdGhlcikKLXsKLSAg
ICByZXR1cm4gQXJyYXlCdWZmZXI6OmNyZWF0ZShvdGhlci0+ZGF0YSgpLCBvdGhlci0+Ynl0ZUxl
bmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0
ZShjb25zdCB2b2lkKiBzb3VyY2UsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpCi17Ci0gICAgQXJyYXlC
dWZmZXJDb250ZW50cyBjb250ZW50czsKLSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cnlBbGxv
Y2F0ZShieXRlTGVuZ3RoLCAxLCBjb250ZW50cyk7Ci0gICAgaWYgKCFjb250ZW50cy5tX2RhdGEp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gYWRv
cHRSZWYobmV3IEFycmF5QnVmZmVyKGNvbnRlbnRzKSk7Ci0gICAgbWVtY3B5KGJ1ZmZlci0+ZGF0
YSgpLCBzb3VyY2UsIGJ5dGVMZW5ndGgpOwotICAgIHJldHVybiBidWZmZXIucmVsZWFzZSgpOwot
fQotCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKEFycmF5QnVm
ZmVyQ29udGVudHMmIGNvbnRlbnRzKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXlC
dWZmZXIoY29udGVudHMpKTsKLX0KLQotQXJyYXlCdWZmZXI6OkFycmF5QnVmZmVyKEFycmF5QnVm
ZmVyQ29udGVudHMmIGNvbnRlbnRzKQotICAgIDogbV9maXJzdFZpZXcoMCkKLXsKLSAgICBjb250
ZW50cy50cmFuc2ZlcihtX2NvbnRlbnRzKTsKLX0KLQotdm9pZCogQXJyYXlCdWZmZXI6OmRhdGEo
KQotewotICAgIHJldHVybiBtX2NvbnRlbnRzLm1fZGF0YTsKLX0KLQotY29uc3Qgdm9pZCogQXJy
YXlCdWZmZXI6OmRhdGEoKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRlbnRzLm1fZGF0YTsK
LX0KLQotdW5zaWduZWQgQXJyYXlCdWZmZXI6OmJ5dGVMZW5ndGgoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2NvbnRlbnRzLm1fc2l6ZUluQnl0ZXM7Ci19Ci0KLVBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IEFycmF5QnVmZmVyOjpzbGljZShpbnQgYmVnaW4sIGludCBlbmQpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHNsaWNlSW1wbChjbGFtcEluZGV4KGJlZ2luKSwgY2xhbXBJbmRleChlbmQpKTsKLX0K
LQotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OnNsaWNlKGludCBiZWdpbikg
Y29uc3QKLXsKLSAgICByZXR1cm4gc2xpY2VJbXBsKGNsYW1wSW5kZXgoYmVnaW4pLCBieXRlTGVu
Z3RoKCkpOwotfQotCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6c2xpY2VJ
bXBsKHVuc2lnbmVkIGJlZ2luLCB1bnNpZ25lZCBlbmQpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQg
c2l6ZSA9IGJlZ2luIDw9IGVuZCA/IGVuZCAtIGJlZ2luIDogMDsKLSAgICByZXR1cm4gQXJyYXlC
dWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSgpKSArIGJlZ2luLCBz
aXplKTsKLX0KLQotdW5zaWduZWQgQXJyYXlCdWZmZXI6OmNsYW1wSW5kZXgoaW50IGluZGV4KSBj
b25zdAotewotICAgIHVuc2lnbmVkIGN1cnJlbnRMZW5ndGggPSBieXRlTGVuZ3RoKCk7Ci0gICAg
aWYgKGluZGV4IDwgMCkKLSAgICAgICAgaW5kZXggPSBjdXJyZW50TGVuZ3RoICsgaW5kZXg7Ci0g
ICAgcmV0dXJuIGNsYW1wVmFsdWUoaW5kZXgsIDAsIGN1cnJlbnRMZW5ndGgpOwotfQotCi1ib29s
IEFycmF5QnVmZmVyOjp0cmFuc2ZlcihBcnJheUJ1ZmZlckNvbnRlbnRzJiByZXN1bHQsIFZlY3Rv
cjxBcnJheUJ1ZmZlclZpZXcqPiYgbmV1dGVyZWRWaWV3cykKLXsKLSAgICBSZWZQdHI8QXJyYXlC
dWZmZXI+IGtlZXBBbGl2ZSh0aGlzKTsKLQotICAgIGlmICghbV9jb250ZW50cy5tX2RhdGEpIHsK
LSAgICAgICAgcmVzdWx0Lm1fZGF0YSA9IDA7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0KLSAgICBtX2NvbnRlbnRzLnRyYW5zZmVyKHJlc3VsdCk7Ci0KLSAgICB3aGlsZSAobV9maXJz
dFZpZXcpIHsKLSAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBjdXJyZW50ID0gbV9maXJzdFZpZXc7
Ci0gICAgICAgIHJlbW92ZVZpZXcoY3VycmVudCk7Ci0gICAgICAgIGN1cnJlbnQtPm5ldXRlcigp
OwotICAgICAgICBuZXV0ZXJlZFZpZXdzLmFwcGVuZChjdXJyZW50KTsKLSAgICB9Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLUFycmF5QnVmZmVyQ29udGVudHM6On5BcnJheUJ1ZmZlckNvbnRlbnRz
KCkKLXsKLSAgICBXVEY6OmZhc3RGcmVlKG1fZGF0YSk7Ci19Ci0KLXZvaWQgQXJyYXlCdWZmZXJD
b250ZW50czo6dHJ5QWxsb2NhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1l
bnRCeXRlU2l6ZSwgQXJyYXlCdWZmZXJDb250ZW50cyYgcmVzdWx0KQotewotICAgIC8vIERvIG5v
dCBhbGxvdyAzMi1iaXQgb3ZlcmZsb3cgb2YgdGhlIHRvdGFsIHNpemUuCi0gICAgLy8gRklYTUU6
IFdoeSBub3Q/IFRoZSB0cnlGYXN0Q2FsbG9jIGZ1bmN0aW9uIGFscmVhZHkgY2hlY2tzIGl0cyBh
cmd1bWVudHMsCi0gICAgLy8gYW5kIHdpbGwgZmFpbCBpZiB0aGVyZSBpcyBhbnkgb3ZlcmZsb3cs
IHNvIHdoeSBzaG91bGQgd2UgaW5jbHVkZSBhCi0gICAgLy8gcmVkdWRhbnQgdW5uZWNlc3Nhcmls
eSByZXN0cmljdGl2ZSBjaGVjayBoZXJlPwotICAgIGlmIChudW1FbGVtZW50cykgewotICAgICAg
ICB1bnNpZ25lZCB0b3RhbFNpemUgPSBudW1FbGVtZW50cyAqIGVsZW1lbnRCeXRlU2l6ZTsKLSAg
ICAgICAgaWYgKHRvdGFsU2l6ZSAvIG51bUVsZW1lbnRzICE9IGVsZW1lbnRCeXRlU2l6ZSkgewot
ICAgICAgICAgICAgcmVzdWx0Lm1fZGF0YSA9IDA7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgaWYgKFdURjo6dHJ5RmFzdENhbGxvYyhudW1FbGVtZW50cywgZWxl
bWVudEJ5dGVTaXplKS5nZXRWYWx1ZShyZXN1bHQubV9kYXRhKSkgewotICAgICAgICByZXN1bHQu
bV9zaXplSW5CeXRlcyA9IG51bUVsZW1lbnRzICogZWxlbWVudEJ5dGVTaXplOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIHJlc3VsdC5tX2RhdGEgPSAwOwotfQotCi12b2lkIEFycmF5QnVm
ZmVyOjphZGRWaWV3KEFycmF5QnVmZmVyVmlldyogdmlldykKLXsKLSAgICB2aWV3LT5tX2J1ZmZl
ciA9IHRoaXM7Ci0gICAgdmlldy0+bV9wcmV2VmlldyA9IDA7Ci0gICAgdmlldy0+bV9uZXh0Vmll
dyA9IG1fZmlyc3RWaWV3OwotICAgIGlmIChtX2ZpcnN0VmlldykKLSAgICAgICAgbV9maXJzdFZp
ZXctPm1fcHJldlZpZXcgPSB2aWV3OwotICAgIG1fZmlyc3RWaWV3ID0gdmlldzsKLX0KLQotdm9p
ZCBBcnJheUJ1ZmZlcjo6cmVtb3ZlVmlldyhBcnJheUJ1ZmZlclZpZXcqIHZpZXcpCi17Ci0gICAg
QVNTRVJUKHRoaXMgPT0gdmlldy0+bV9idWZmZXIpOwotICAgIGlmICh2aWV3LT5tX25leHRWaWV3
KQotICAgICAgICB2aWV3LT5tX25leHRWaWV3LT5tX3ByZXZWaWV3ID0gdmlldy0+bV9wcmV2Vmll
dzsKLSAgICBpZiAodmlldy0+bV9wcmV2VmlldykKLSAgICAgICAgdmlldy0+bV9wcmV2Vmlldy0+
bV9uZXh0VmlldyA9IHZpZXctPm1fbmV4dFZpZXc7Ci0gICAgaWYgKG1fZmlyc3RWaWV3ID09IHZp
ZXcpCi0gICAgICAgIG1fZmlyc3RWaWV3ID0gdmlldy0+bV9uZXh0VmlldzsKLSAgICB2aWV3LT5t
X3ByZXZWaWV3ID0gdmlldy0+bV9uZXh0VmlldyA9IDA7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MTUzNDIyZmJjNzVjNTU2NjJjZTJkNWY1NzZiNTJjMTA4ODlkY2Y2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0FycmF5QnVmZmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgQXJyYXlCdWZmZXJfaAotI2RlZmluZSBBcnJheUJ1ZmZlcl9oCi0KLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
VEYgewotCi1jbGFzcyBBcnJheUJ1ZmZlcjsKLWNsYXNzIEFycmF5QnVmZmVyVmlldzsKLQotY2xh
c3MgQXJyYXlCdWZmZXJDb250ZW50cyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXJyYXlC
dWZmZXJDb250ZW50cyk7Ci1wdWJsaWM6Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50cygpIAotICAg
ICAgICA6IG1fZGF0YSgwKQotICAgICAgICAsIG1fc2l6ZUluQnl0ZXMoMCkKLSAgICB7IH0KLQot
ICAgIH5BcnJheUJ1ZmZlckNvbnRlbnRzKCk7Ci0KLSAgICB2b2lkKiBkYXRhKCkgeyByZXR1cm4g
bV9kYXRhOyB9Ci0gICAgdW5zaWduZWQgc2l6ZUluQnl0ZXMoKSB7IHJldHVybiBtX3NpemVJbkJ5
dGVzOyB9Ci0KLXByaXZhdGU6Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1
bnNpZ25lZCBzaXplSW5CeXRlcykgCi0gICAgICAgIDogbV9kYXRhKGRhdGEpCi0gICAgICAgICwg
bV9zaXplSW5CeXRlcyhzaXplSW5CeXRlcykKLSAgICB7IH0KLQotICAgIGZyaWVuZCBjbGFzcyBB
cnJheUJ1ZmZlcjsKLQotICAgIHN0YXRpYyB2b2lkIHRyeUFsbG9jYXRlKHVuc2lnbmVkIG51bUVs
ZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0ZVNpemUsIEFycmF5QnVmZmVyQ29udGVudHMmKTsK
LSAgICB2b2lkIHRyYW5zZmVyKEFycmF5QnVmZmVyQ29udGVudHMmIG90aGVyKSAKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVCghb3RoZXIubV9kYXRhKTsKLSAgICAgICAgb3RoZXIubV9kYXRhID0gbV9k
YXRhOwotICAgICAgICBvdGhlci5tX3NpemVJbkJ5dGVzID0gbV9zaXplSW5CeXRlczsKLSAgICAg
ICAgbV9kYXRhID0gMDsgCi0gICAgICAgIG1fc2l6ZUluQnl0ZXMgPSAwOyAKLSAgICB9Ci0KLSAg
ICB2b2lkKiBtX2RhdGE7Ci0gICAgdW5zaWduZWQgbV9zaXplSW5CeXRlczsKLX07Ci0KLWNsYXNz
IEFycmF5QnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXI+IHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bUVs
ZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0ZVNpemUpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBjcmVhdGUoQXJyYXlCdWZmZXIqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxl
bmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJheUJ1
ZmZlckNvbnRlbnRzJik7Ci0KLSAgICB2b2lkKiBkYXRhKCk7Ci0gICAgY29uc3Qgdm9pZCogZGF0
YSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdDsKLQotICAgIFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlKGludCBiZWdpbiwgaW50IGVuZCkgY29uc3Q7Ci0gICAg
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gc2xpY2UoaW50IGJlZ2luKSBjb25zdDsKLQotICAgIHZv
aWQgYWRkVmlldyhBcnJheUJ1ZmZlclZpZXcqKTsKLSAgICB2b2lkIHJlbW92ZVZpZXcoQXJyYXlC
dWZmZXJWaWV3Kik7Ci0KLSAgICBib29sIHRyYW5zZmVyKEFycmF5QnVmZmVyQ29udGVudHMmLCBW
ZWN0b3I8QXJyYXlCdWZmZXJWaWV3Kj4mIG5ldXRlcmVkVmlld3MpOwotCi0gICAgfkFycmF5QnVm
ZmVyKCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAgQXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJDb250ZW50
cyYpOwotICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlSW1wbCh1bnNpZ25lZCBiZWdp
biwgdW5zaWduZWQgZW5kKSBjb25zdDsKLSAgICB1bnNpZ25lZCBjbGFtcEluZGV4KGludCBpbmRl
eCkgY29uc3Q7Ci0KLSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIG1fY29udGVudHM7Ci0gICAgQXJy
YXlCdWZmZXJWaWV3KiBtX2ZpcnN0VmlldzsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11
c2luZyBXVEY6OkFycmF5QnVmZmVyOwotCi0jZW5kaWYgLy8gQXJyYXlCdWZmZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI4MWZjYzFkZGJhZDZlNjk0YzEyNjg1MTQ2ZGNjYjI0YzVjMTk3
MzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDExNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkFycmF5QnVmZmVyVmlldy5oIgotCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKLSNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1BcnJheUJ1ZmZlclZpZXc6
OkFycmF5QnVmZmVyVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQpCi0gICAgICAgIDogbV9ieXRlT2Zm
c2V0KGJ5dGVPZmZzZXQpCi0gICAgICAgICwgbV9idWZmZXIoYnVmZmVyKQotewotICAgIG1fYmFz
ZUFkZHJlc3MgPSBtX2J1ZmZlciA/IChzdGF0aWNfY2FzdDxjaGFyKj4obV9idWZmZXItPmRhdGEo
KSkgKyBtX2J5dGVPZmZzZXQpIDogMDsKLSAgICBpZiAobV9idWZmZXIpIAotICAgICAgICBtX2J1
ZmZlci0+YWRkVmlldyh0aGlzKTsKLX0KLQotQXJyYXlCdWZmZXJWaWV3Ojp+QXJyYXlCdWZmZXJW
aWV3KCkKLXsKLSAgICBpZiAobV9idWZmZXIpCi0gICAgICAgIG1fYnVmZmVyLT5yZW1vdmVWaWV3
KHRoaXMpOwotfQotCi1ib29sIEFycmF5QnVmZmVyVmlldzo6c2V0SW1wbChBcnJheUJ1ZmZlclZp
ZXcqIGFycmF5LCB1bnNpZ25lZCBieXRlT2Zmc2V0KQotewotICAgIGlmIChieXRlT2Zmc2V0ID4g
Ynl0ZUxlbmd0aCgpCi0gICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBhcnJheS0+Ynl0ZUxlbmd0aCgp
ID4gYnl0ZUxlbmd0aCgpCi0gICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBhcnJheS0+Ynl0ZUxlbmd0
aCgpIDwgYnl0ZU9mZnNldCkgewotICAgICAgICAvLyBPdXQgb2YgcmFuZ2Ugb2Zmc2V0IG9yIG92
ZXJmbG93Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBjaGFyKiBiYXNlID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwotICAgIG1lbW1vdmUoYmFzZSArIGJ5
dGVPZmZzZXQsIGFycmF5LT5iYXNlQWRkcmVzcygpLCBhcnJheS0+Ynl0ZUxlbmd0aCgpKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1wbChj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQpCi17Ci0gICAgaWYgKGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKLSAgICAgICAgfHwgYnl0
ZU9mZnNldCArIGRhdGFCeXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCi0gICAgICAgIHx8IGJ5dGVP
ZmZzZXQgKyBkYXRhQnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKLSAgICAgICAgLy8gT3V0IG9m
IHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci0gICAgY2hhciogYmFzZSA9IHN0YXRpY19jYXN0PGNoYXIqPihiYXNlQWRkcmVzcygpKTsKLSAg
ICBtZW1tb3ZlKGJhc2UgKyBieXRlT2Zmc2V0LCBkYXRhLCBkYXRhQnl0ZUxlbmd0aCk7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgQXJyYXlCdWZmZXJWaWV3Ojp6ZXJvUmFuZ2VJbXBsKHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIHNpemVfdCByYW5nZUJ5dGVMZW5ndGgpCi17Ci0gICAgaWYgKGJ5
dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKLSAgICAgICAgfHwgYnl0ZU9mZnNldCArIHJhbmdlQnl0
ZUxlbmd0aCA+IGJ5dGVMZW5ndGgoKQotICAgICAgICB8fCBieXRlT2Zmc2V0ICsgcmFuZ2VCeXRl
TGVuZ3RoIDwgYnl0ZU9mZnNldCkgewotICAgICAgICAvLyBPdXQgb2YgcmFuZ2Ugb2Zmc2V0IG9y
IG92ZXJmbG93Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBjaGFyKiBiYXNl
ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwotICAgIG1lbXNldChiYXNlICsg
Ynl0ZU9mZnNldCwgMCwgcmFuZ2VCeXRlTGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
dm9pZCBBcnJheUJ1ZmZlclZpZXc6OmNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChpbnQgc3RhcnQs
IGludCBlbmQsIHVuc2lnbmVkIGFycmF5U2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBvZmZzZXQsIHVuc2lnbmVkKiBsZW5ndGgpCi17Ci0g
ICAgaWYgKHN0YXJ0IDwgMCkKLSAgICAgICAgc3RhcnQgKz0gYXJyYXlTaXplOwotICAgIGlmIChz
dGFydCA8IDApCi0gICAgICAgIHN0YXJ0ID0gMDsKLSAgICBpZiAoZW5kIDwgMCkKLSAgICAgICAg
ZW5kICs9IGFycmF5U2l6ZTsKLSAgICBpZiAoZW5kIDwgMCkKLSAgICAgICAgZW5kID0gMDsKLSAg
ICBpZiAoZW5kIDwgc3RhcnQpCi0gICAgICAgIGVuZCA9IHN0YXJ0OwotICAgICpvZmZzZXQgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhcnQpOwotICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZW5kIC0gc3RhcnQpOwotfQotCi12b2lkIEFycmF5QnVmZmVyVmlldzo6bmV1dGVy
KCkKLXsKLSAgICBtX2J1ZmZlciA9IDA7Ci0gICAgbV9ieXRlT2Zmc2V0ID0gMDsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTk4M2E2OTI5NDlkM2M3ZWJlYzgwMmQ2NWE1MmY5MDE2MTcy
NzhiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaAorKysgL2Rldi9udWxsCkBA
IC0xLDEzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBBcnJheUJ1ZmZlclZpZXdfaAotI2Rl
ZmluZSBBcnJheUJ1ZmZlclZpZXdfaAotCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKLQotI2lu
Y2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgQXJyYXlCdWZmZXJWaWV3IDogcHVi
bGljIFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXJWaWV3PiB7Ci0gIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IGJvb2wgaXNCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBpc1Vuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZFNob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCBpc0ludEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNGbG9hdEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNEb3VibGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotCi0gICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2J1ZmZlcjsKLSAgICB9Ci0KLSAgICB2b2lkKiBiYXNlQWRkcmVz
cygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9iYXNlQWRkcmVzczsKLSAgICB9Ci0K
LSAgICB1bnNpZ25lZCBieXRlT2Zmc2V0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X2J5dGVPZmZzZXQ7Ci0gICAgfQotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkg
Y29uc3QgPSAwOwotCi0gICAgdmlydHVhbCB+QXJyYXlCdWZmZXJWaWV3KCk7Ci0KLSAgcHJvdGVj
dGVkOgotICAgIEFycmF5QnVmZmVyVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIs
IHVuc2lnbmVkIGJ5dGVPZmZzZXQpOwotCi0gICAgYm9vbCBzZXRJbXBsKEFycmF5QnVmZmVyVmll
dyosIHVuc2lnbmVkIGJ5dGVPZmZzZXQpOwotCi0gICAgYm9vbCBzZXRSYW5nZUltcGwoY29uc3Qg
Y2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNpZ25lZCBieXRlT2Zmc2V0KTsK
LQotICAgIGJvb2wgemVyb1JhbmdlSW1wbCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaXplX3QgcmFu
Z2VCeXRlTGVuZ3RoKTsKLQotICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZU9mZnNldEFuZExlbmd0
aChpbnQgc3RhcnQsIGludCBlbmQsIHVuc2lnbmVkIGFycmF5U2l6ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIG9mZnNldCwgdW5zaWduZWQqIGxl
bmd0aCk7Ci0KLSAgICAvLyBIZWxwZXIgdG8gdmVyaWZ5IHRoYXQgYSBnaXZlbiBzdWItcmFuZ2Ug
b2YgYW4gQXJyYXlCdWZmZXIgaXMKLSAgICAvLyB3aXRoaW4gcmFuZ2UuCi0gICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gICAgc3RhdGljIGJvb2wgdmVyaWZ5U3ViUmFuZ2UoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bnVtRWxlbWVudHMpCi0gICAgewotICAgICAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHNpemVvZihUKSA+IDEgJiYgYnl0ZU9mZnNldCAlIHNp
emVvZihUKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGJ5dGVPZmZz
ZXQgPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgdW5zaWduZWQgcmVtYWluaW5nRWxlbWVudHMgPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkg
LSBieXRlT2Zmc2V0KSAvIHNpemVvZihUKTsKLSAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gcmVt
YWluaW5nRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLQotICAgIC8vIElucHV0IG9mZnNldCBpcyBpbiBudW1iZXIgb2YgZWxl
bWVudHMgZnJvbSB0aGlzIGFycmF5J3MgdmlldzsKLSAgICAvLyBvdXRwdXQgb2Zmc2V0IGlzIGlu
IG51bWJlciBvZiBieXRlcyBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlcidzIHZpZXcuCi0gICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICAgc3RhdGljIHZvaWQgY2xhbXBPZmZzZXRBbmROdW1F
bGVtZW50cyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhcnJheUJ5dGVPZmZzZXQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCAqb2Zmc2V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKm51bUVs
ZW1lbnRzKQotICAgIHsKLSAgICAgICAgdW5zaWduZWQgbWF4T2Zmc2V0ID0gKFVJTlRfTUFYIC0g
YXJyYXlCeXRlT2Zmc2V0KSAvIHNpemVvZihUKTsKLSAgICAgICAgaWYgKCpvZmZzZXQgPiBtYXhP
ZmZzZXQpIHsKLSAgICAgICAgICAgICpvZmZzZXQgPSBidWZmZXItPmJ5dGVMZW5ndGgoKTsKLSAg
ICAgICAgICAgICpudW1FbGVtZW50cyA9IDA7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgKm9mZnNldCA9IGFycmF5Qnl0ZU9mZnNldCArICpvZmZzZXQgKiBzaXplb2Yo
VCk7Ci0gICAgICAgICpvZmZzZXQgPSBzdGQ6Om1pbihidWZmZXItPmJ5dGVMZW5ndGgoKSwgKm9m
ZnNldCk7Ci0gICAgICAgIHVuc2lnbmVkIHJlbWFpbmluZ0VsZW1lbnRzID0gKGJ1ZmZlci0+Ynl0
ZUxlbmd0aCgpIC0gKm9mZnNldCkgLyBzaXplb2YoVCk7Ci0gICAgICAgICpudW1FbGVtZW50cyA9
IHN0ZDo6bWluKHJlbWFpbmluZ0VsZW1lbnRzLCAqbnVtRWxlbWVudHMpOwotICAgIH0KLQotICAg
IHZpcnR1YWwgdm9pZCBuZXV0ZXIoKTsKLQotICAgIC8vIFRoaXMgaXMgdGhlIGFkZHJlc3Mgb2Yg
dGhlIEFycmF5QnVmZmVyJ3Mgc3RvcmFnZSwgcGx1cyB0aGUgYnl0ZSBvZmZzZXQuCi0gICAgdm9p
ZCogbV9iYXNlQWRkcmVzczsKLQotICAgIHVuc2lnbmVkIG1fYnl0ZU9mZnNldDsKLQotICBwcml2
YXRlOgotICAgIGZyaWVuZCBjbGFzcyBBcnJheUJ1ZmZlcjsKLSAgICBSZWZQdHI8QXJyYXlCdWZm
ZXI+IG1fYnVmZmVyOwotICAgIEFycmF5QnVmZmVyVmlldyogbV9wcmV2VmlldzsKLSAgICBBcnJh
eUJ1ZmZlclZpZXcqIG1fbmV4dFZpZXc7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNp
bmcgV1RGOjpBcnJheUJ1ZmZlclZpZXc7Ci0KLSNlbmRpZiAvLyBBcnJheUJ1ZmZlclZpZXdfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKaW5kZXggZjFjMjRiNjUwNjY0NWJlNDBi
OWUxNGQ2MzVhN2E1ZWYzOGQwMmQxNC4uNjNiMTU2ZDNkMmRkZmFlYTQ2Y2Y1NGRiYTljOGIzZGFl
OTM3YTQzNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjaWZuZGVmIERhdGFWaWV3X2gKICNkZWZpbmUgRGF0YVZpZXdfaAogCi0jaW5jbHVk
ZSAiQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiN2M0YmQ1MjA5OTc3NDI0MGEyOGQyMTM0YTQxZjkxOGY4ZGYyMDAzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFy
cmF5LmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxv
YXQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFy
cmF5QmFzZTxmbG9hdD46OmNyZWF0ZTxGbG9hdDMyQXJyYXk+KGxlbmd0aCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6OmNyZWF0ZShjb25zdCBmbG9hdCogYXJy
YXksIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+
OjpjcmVhdGU8RmxvYXQzMkFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxG
bG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJl
dHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmNyZWF0ZTxGbG9hdDMyQXJyYXk+KGJ1ZmZlciwg
Ynl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0KLQotRmxvYXQzMkFycmF5OjpGbG9hdDMyQXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25l
ZCBsZW5ndGgpCi0gICAgOiBUeXBlZEFycmF5QmFzZTxmbG9hdD4oYnVmZmVyLCBieXRlT2Zmc2V0
LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6
OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQs
IGxlbmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6
c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJh
eUltcGw8RmxvYXQzMkFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2ExYTEzOTdkNDA1YWI1NzVjN2VkZGEwYzcxNmM4MWJiYmE5OTFjMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9GbG9hdDMyQXJyYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgRmxvYXQzMkFycmF5X2gKLSNkZWZpbmUgRmxvYXQzMkFycmF5X2gKLQotI2luY2x1
ZGUgIlR5cGVkQXJyYXlCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLQotbmFt
ZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEZsb2F0MzJBcnJheSA6IHB1YmxpYyBUeXBlZEFycmF5QmFz
ZTxmbG9hdD4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4g
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBjcmVhdGUoY29uc3QgZmxvYXQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKLQotICAg
IC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29t
cGlsZXIuCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8ZmxvYXQ+KiBhcnJheSwgdW5zaWdu
ZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OnNldChhcnJheSwgb2Zm
c2V0KTsgfQotCi0gICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGlmIChpbmRleCA+PSBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3Ro
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmRh
dGEoKVtpbmRleF0gPSBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpOwotICAgIH0KLQotICAgIC8v
IEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdlIGNo
ZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCByZXR1
cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBmbG9hdCBpdGVtKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8
ZmxvYXQ+OjptX2xlbmd0aCk7Ci0gICAgICAgIGZsb2F0IHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNl
PGZsb2F0Pjo6ZGF0YSgpW2luZGV4XTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0K
LSAgICBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsK
LSAgICBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBGbG9hdDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAot
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3Ry
dWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5
QmFzZTxmbG9hdD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3Lgot
ICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpGbG9hdDMyQXJyYXk7Ci0KLSNl
bmRpZiAvLyBGbG9hdDMyQXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvRmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0
NjRBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlYmM3ZDEyYWJlOWU4
ZTA1MzFhMTkwYTA1OGI5ZTYxN2NiNGE5MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQot
UGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6Y3JlYXRlPEZsb2F0
NjRBcnJheT4obGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRB
cnJheTo6Y3JlYXRlKGNvbnN0IGRvdWJsZSogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAg
ICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6Y3JlYXRlPEZsb2F0NjRBcnJheT4oYXJy
YXksIGxlbmd0aCk7Ci19Ci0KLVBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBGbG9hdDY0QXJyYXk6
OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZG91Ymxl
Pjo6Y3JlYXRlPEZsb2F0NjRBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQot
Ci1GbG9hdDY0QXJyYXk6OkZsb2F0NjRBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IFR5cGVkQXJy
YXlCYXNlPGRvdWJsZT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NS
ZWZQdHI8RmxvYXQ2NEFycmF5PiBGbG9hdDY0QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkgY29u
c3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKLX0KLQotUGFzc1Jl
ZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheUltcGw8RmxvYXQ2NEFycmF5PihzdGFy
dCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
RmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXku
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTY2MjRjNmIzOTlmNzQ3NmJhOGU1OTNm
YTg1MzA0NTQ3NDZjMzIxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaAorKysgL2Rl
di9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBGbG9hdDY0QXJyYXlfaAot
I2RlZmluZSBGbG9hdDY0QXJyYXlfaAotCi0jaW5jbHVkZSAiVHlwZWRBcnJheUJhc2UuaCIKLSNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgRmxv
YXQ2NEFycmF5IDogcHVibGljIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT4gewotcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBjcmVhdGUoY29uc3QgZG91Ymxl
KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGbG9hdDY0
QXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBk
dWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJh
eUJhc2U8ZG91YmxlPiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlwZWRBcnJh
eUJhc2U8ZG91YmxlPjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0KLSAgICB2b2lkIHNldCh1bnNp
Z25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IFR5
cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8
ZG91YmxlPih2YWx1ZSk7Ci0gICAgfQotCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBn
ZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyBy
ZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNz
YXJ5LgotICAgIGRvdWJsZSBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpOwotICAg
ICAgICBkb3VibGUgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4
XTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBQYXNzUmVmUHRyPEZsb2F0
NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEZsb2F0
NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBGbG9hdDY0QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCi0gICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0
aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAg
ZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT47Ci0KLSAgICAvLyBPdmVycmlkZGVu
IGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5n
IFdURjo6RmxvYXQ2NEFycmF5OwotCi0jZW5kaWYgLy8gRmxvYXQ2NEFycmF5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY5OTQ0Yzg1ZWRmOWQwZTc5MjZiYmExZTMyMGNmMjcxMjI3NGJjNTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MTZBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKLQot
bmFtZXNwYWNlIFdURiB7Ci0KLVBhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3Jl
YXRlKHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2hvcnQ+
OjpjcmVhdGU8SW50MTZBcnJheT4obGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQxNkFycmF5
PiBJbnQxNkFycmF5OjpjcmVhdGUoc2hvcnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0g
ICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6Y3JlYXRlPEludDE2QXJyYXk+KGFycmF5
LCBsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPEludDE2QXJyYXk+IEludDE2QXJyYXk6OmNyZWF0
ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2hvcnQ+OjpjcmVh
dGU8SW50MTZBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQotCi1JbnQxNkFy
cmF5OjpJbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFz
ZTxzaG9ydD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NSZWZQdHI8
SW50MTZBcnJheT4gSW50MTZBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAotewotICAg
IHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRyPEludDE2
QXJyYXk+IEludDE2QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKLXsK
LSAgICByZXR1cm4gc3ViYXJyYXlJbXBsPEludDE2QXJyYXk+KHN0YXJ0LCBlbmQpOwotfQotCi19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA2ZmFmOWViYzc4NTQ3ODZjNzE1OGQ2MzY5MTQ4OWM3ODlmMzVmNDguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpZm5kZWYgSW50MTZBcnJheV9oCi0jZGVmaW5lIEludDE2QXJyYXlfaAot
Ci0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNsYXNzIEludDE2QXJyYXkgOiBwdWJsaWMgSW50ZWdy
YWxUeXBlZEFycmF5QmFzZTxzaG9ydD4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEludDE2QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEludDE2QXJyYXk+IGNyZWF0ZShzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKLQot
ICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1Qg
Y29tcGlsZXIuCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8c2hvcnQ+KiBhcnJheSwgdW5z
aWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OnNldChhcnJheSwg
b2Zmc2V0KTsgfQotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpIHsg
SW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaG9ydD46OnNldChpbmRleCwgdmFsdWUpOyB9Ci0KLSAg
ICBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7Ci0gICAg
UGFzc1JlZlB0cjxJbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0
OwotCi1wcml2YXRlOgotICAgIEludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyLAotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAotICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3RydWN0b3Igdmlz
aWJsZSB0byBzdXBlcmNsYXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxzaG9y
dD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1
YWwgYm9vbCBpc1Nob3J0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpJbnQxNkFycmF5OwotCi0jZW5kaWYgLy8gSW50
MTZBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFy
cmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWRlYTM3M2FjYjJhZTczM2NmNGM1YmI2ZmQ1NWVj
ZDMxZmY2NmU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkludDMyQXJyYXkuaCIKLQotbmFtZXNwYWNlIFdURiB7Ci0KLVBhc3NSZWZQdHI8SW50MzJBcnJh
eT4gSW50MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8aW50Pjo6Y3JlYXRlPEludDMyQXJyYXk+KGxlbmd0aCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8SW50MzJBcnJheT4gSW50MzJBcnJheTo6Y3JlYXRlKGludCogYXJyYXksIHVuc2lnbmVk
IGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8aW50Pjo6Y3JlYXRlPEludDMy
QXJyYXk+KGFycmF5LCBsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPEludDMyQXJyYXk+IEludDMy
QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8
aW50Pjo6Y3JlYXRlPEludDMyQXJyYXk+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0K
LQotSW50MzJBcnJheTo6SW50MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIs
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IEludGVncmFsVHlw
ZWRBcnJheUJhc2U8aW50PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFz
c1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQ
dHI8SW50MzJBcnJheT4gSW50MzJBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdAotewotICAgIHJldHVybiBzdWJhcnJheUltcGw8SW50MzJBcnJheT4oc3RhcnQsIGVuZCk7
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJy
YXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDJiMWU3NjM4MWE4Zjk1OTBhNDE3YWIxMTg4YmY3MjcxMzI4
ZDQwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEludDMyQXJyYXlfaAotI2RlZmluZSBJbnQzMkFy
cmF5X2gKLQotI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIKLQotbmFtZXNwYWNl
IFdURiB7Ci0KLWNsYXNzIEludDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFz
ZTxpbnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBjcmVh
dGUodW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBj
cmVhdGUoaW50KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJbnQzMkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2Ug
InVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29s
IHNldChUeXBlZEFycmF5QmFzZTxpbnQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVy
biBUeXBlZEFycmF5QmFzZTxpbnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2b2lkIHNl
dCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8
aW50Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQdHI8SW50MzJBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEludDMyQXJyYXk+IHN1
YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgSW50MzJB
cnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBieXRlT2Zmc2V0LAotICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsK
LSAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KLSAgICBmcmll
bmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8aW50PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBB
cnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpJbnQz
MkFycmF5OwotCi0jZW5kaWYgLy8gSW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50OEFycmF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhlNTg4MTVj
MmI4Njc5Yzg1ODliMzU1N2YwZGEwMWU3MDM1NGY2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJy
YXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkludDhBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQot
UGFzc1JlZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkK
LXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+OjpjcmVhdGU8SW50OEFy
cmF5PihsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPEludDhBcnJheT4gSW50OEFycmF5OjpjcmVh
dGUoc2lnbmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6Y3JlYXRlPEludDhBcnJheT4oYXJyYXksIGxlbmd0
aCk7Ci19Ci0KLVBhc3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OmNyZWF0ZShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+OjpjcmVhdGU8
SW50OEFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLUludDhBcnJheTo6
SW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaWdu
ZWQgY2hhcj4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NSZWZQdHI8
SW50OEFycmF5PiBJbnQ4QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQ4QXJy
YXk+IEludDhBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAotewotICAg
IHJldHVybiBzdWJhcnJheUltcGw8SW50OEFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTM2ZDFiYmYxZjM0ODQ5NzlmZDkyYWU1ZjUzYWVhNjAzYjBhZjE1OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9JbnQ4QXJyYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpZm5kZWYgSW50OEFycmF5X2gKLSNkZWZpbmUgSW50OEFycmF5X2gKLQotI2luY2x1ZGUg
IkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIKLQotbmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEFy
cmF5QnVmZmVyOwotCi1jbGFzcyBJbnQ4QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5
QmFzZTxzaWduZWQgY2hhcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDhB
cnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50
OEFycmF5PiBjcmVhdGUoc2lnbmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEludDhBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKLQotICAg
IC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29t
cGlsZXIuCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+KiBhcnJheSwg
dW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OnNl
dChhcnJheSwgb2Zmc2V0KTsgfQotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUg
dmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OnNldChpbmRleCwg
dmFsdWUpOyB9Ci0KLSAgICBQYXNzUmVmUHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0
KSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBp
bnQgZW5kKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLAotICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQs
Ci0gICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICAvLyBNYWtlIGNvbnN0
cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KLSAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJh
eUJhc2U8c2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVy
Vmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpJbnQ4QXJyYXk7Ci0K
LSNlbmRpZiAvLyBJbnQ4QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0OGY4MmEzNjFjNmVmZWI2YzQ2YWNjZDc0NWMzMTU3YjJlMDIyM2YxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaWZuZGVmIEludGVncmFsVHlwZWRBcnJheUJhc2VfaAotI2RlZmluZSBJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlX2gKLQotI2luY2x1ZGUgIlR5cGVkQXJyYXlCYXNlLmgiCi0j
aW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0KLS8vIEJhc2Ug
Y2xhc3MgZm9yIGFsbCBXZWJHTDxUPkFycmF5IHR5cGVzIGhvbGRpbmcgaW50ZWdyYWwKLS8vIChu
b24tZmxvYXRpbmctcG9pbnQpIHZhbHVlcy4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotY2xhc3MgSW50ZWdyYWxUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBUeXBl
ZEFycmF5QmFzZTxUPiB7Ci0gIHB1YmxpYzoKLSAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwg
ZG91YmxlIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IFR5cGVkQXJyYXlCYXNl
PFQ+OjptX2xlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGlzbmFuKHZh
bHVlKSkgLy8gQ2xhbXAgTmFOIHRvIDAKLSAgICAgICAgICAgIHZhbHVlID0gMDsKLSAgICAgICAg
Ly8gVGhlIGRvdWJsZSBjYXN0IGlzIG5lY2Vzc2FyeSB0byBnZXQgdGhlIGNvcnJlY3Qgd3JhcHBp
bmcKLSAgICAgICAgLy8gZm9yIG91dC1vZi1yYW5nZSB2YWx1ZXMgd2l0aCBJbnQzMkFycmF5IGFu
ZCBVaW50MzJBcnJheS4KLSAgICAgICAgVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtpbmRleF0g
PSBzdGF0aWNfY2FzdDxUPihzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpOwotICAgIH0KLQot
ICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJh
bmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFu
ZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBUIGl0ZW0odW5zaWduZWQg
aW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFz
ZTxUPjo6bV9sZW5ndGgpOwotICAgICAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8VD46OmRhdGEo
KVtpbmRleF07Ci0gICAgfQotCi0gIHByb3RlY3RlZDoKLSAgICBJbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKQotICAgICAgICA6IFR5cGVkQXJyYXlCYXNlPFQ+KGJ1ZmZlciwgYnl0
ZU9mZnNldCwgbGVuZ3RoKQotICAgIHsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYK
LQotdXNpbmcgV1RGOjpJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlOwotCi0jZW5kaWYgLy8gSW50ZWdy
YWxUeXBlZEFycmF5QmFzZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9UeXBlZEFycmF5QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJh
eUJhc2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWUzMGMxN2MyODZjYzZmZWI4
M2U1ZjUzNjViOTUzNzI2ZjNmMTk0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5QmFzZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChjKSAyMDEw
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFR5cGVk
QXJyYXlCYXNlX2gKLSNkZWZpbmUgVHlwZWRBcnJheUJhc2VfaAotCi0jaW5jbHVkZSAiQXJyYXlC
dWZmZXIuaCIKLSNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKLQotbmFtZXNwYWNlIFdURiB7
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZWRBcnJheUJhc2UgOiBwdWJsaWMg
QXJyYXlCdWZmZXJWaWV3IHsKLSAgcHVibGljOgotICAgIFQqIGRhdGEoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxUKj4oYmFzZUFkZHJlc3MoKSk7IH0KLQotICAgIGJvb2wgc2V0KFR5cGVk
QXJyYXlCYXNlPFQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHNldEltcGwoYXJyYXksIG9mZnNldCAqIHNpemVvZihUKSk7Ci0gICAgfQotCi0gICAgYm9v
bCBzZXRSYW5nZShjb25zdCBUKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgdW5zaWduZWQgb2Zm
c2V0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHNldFJhbmdlSW1wbChyZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPihkYXRhKSwgZGF0YUxlbmd0aCAqIHNpemVvZihUKSwgb2Zmc2V0ICogc2l6
ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICBib29sIHplcm9SYW5nZSh1bnNpZ25lZCBvZmZzZXQsIHNp
emVfdCBsZW5ndGgpCi0gICAgewotICAgICAgICByZXR1cm4gemVyb1JhbmdlSW1wbChvZmZzZXQg
KiBzaXplb2YoVCksIGxlbmd0aCAqIHNpemVvZihUKSk7Ci0gICAgfQotCi0gICAgLy8gT3ZlcnJp
ZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4gVGhpcyBtdXN0IGJlIHB1YmxpYyBiZWNhdXNlIG9m
Ci0gICAgLy8gcnVsZXMgYWJvdXQgaW5oZXJpdGFuY2Ugb2YgbWVtYmVycyBpbiB0ZW1wbGF0ZSBj
bGFzc2VzLCBhbmQKLSAgICAvLyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkIHZpYSBwb2ludGVycyB0
byBzdWJjbGFzc2VzLgotICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0Ci0gICAgewotICAgICAg
ICByZXR1cm4gbV9sZW5ndGg7Ci0gICAgfQotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVu
Z3RoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2xlbmd0aCAqIHNpemVvZihUKTsK
LSAgICB9Ci0KLXByb3RlY3RlZDoKLSAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAg
ICAgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQotICAgICAgICAsIG1f
bGVuZ3RoKGxlbmd0aCkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNs
YXNzPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKQotICAgIHsKLSAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBBcnJheUJ1
ZmZlcjo6Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKFQpKTsKLSAgICAgICAgaWYgKCFidWZmZXIuZ2V0
KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZTxTdWJjbGFz
cz4oYnVmZmVyLCAwLCBsZW5ndGgpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDxjbGFzcyBTdWJj
bGFzcz4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4gY3JlYXRlKGNvbnN0IFQqIGFy
cmF5LCB1bnNpZ25lZCBsZW5ndGgpCi0gICAgewotICAgICAgICBSZWZQdHI8U3ViY2xhc3M+IGEg
PSBjcmVhdGU8U3ViY2xhc3M+KGxlbmd0aCk7Ci0gICAgICAgIGlmIChhKQotICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGEt
PnNldChpLCBhcnJheVtpXSk7Ci0gICAgICAgIHJldHVybiBhOwotICAgIH0KLQotICAgIHRlbXBs
YXRlIDxjbGFzcyBTdWJjbGFzcz4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4gY3Jl
YXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpCi0gICAgewotICAgICAgICBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZihidWZmZXIpOwotICAgICAgICBpZiAoIXZlcmlmeVN1YlJh
bmdlPFQ+KGJ1ZiwgYnl0ZU9mZnNldCwgbGVuZ3RoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwot
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3ViY2xhc3MoYnVmLCBieXRlT2Zmc2V0LCBs
ZW5ndGgpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+Ci0gICAgUGFz
c1JlZlB0cjxTdWJjbGFzcz4gc3ViYXJyYXlJbXBsKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIG9mZnNldCwgbGVuZ3RoOwotICAgICAgICBjYWxjdWxh
dGVPZmZzZXRBbmRMZW5ndGgoc3RhcnQsIGVuZCwgbV9sZW5ndGgsICZvZmZzZXQsICZsZW5ndGgp
OwotICAgICAgICBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzPFQ+KGJ1ZmZlcigpLCBtX2J5dGVP
ZmZzZXQsICZvZmZzZXQsICZsZW5ndGgpOwotICAgICAgICByZXR1cm4gY3JlYXRlPFN1YmNsYXNz
PihidWZmZXIoKSwgb2Zmc2V0LCBsZW5ndGgpOwotICAgIH0KLQotICAgIC8vIFdlIGRvIG5vdCB3
YW50IHRvIGhhdmUgdG8gYWNjZXNzIHRoaXMgdmlhIGEgdmlydHVhbCBmdW5jdGlvbiBpbiBzdWJj
bGFzc2VzLAotICAgIC8vIHdoaWNoIGlzIHdoeSBpdCBpcyBwcm90ZWN0ZWQgcmF0aGVyIHRoYW4g
cHJpdmF0ZS4KLSAgICB1bnNpZ25lZCBtX2xlbmd0aDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdU
RgotCi11c2luZyBXVEY6OlR5cGVkQXJyYXlCYXNlOwotCi0jZW5kaWYgLy8gVHlwZWRBcnJheUJh
c2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXku
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2NkY2ZiOGE4MjZjM2ZhODBmMWRjNWJmOWVkMjJmYWJh
OWY1ZjU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJV
aW50MTZBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUGFzc1JlZlB0cjxVaW50MTZBcnJh
eT4gVWludDE2QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6Y3JlYXRlPFVpbnQxNkFycmF5PihsZW5ndGgp
OwotfQotCi1QYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6Y3JlYXRlKHVuc2ln
bmVkIHNob3J0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFy
cmF5QmFzZTx1bnNpZ25lZCBzaG9ydD46OmNyZWF0ZTxVaW50MTZBcnJheT4oYXJyYXksIGxlbmd0
aCk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2QXJyYXk+IFVpbnQxNkFycmF5OjpjcmVhdGUoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25l
ZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6
Y3JlYXRlPFVpbnQxNkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLVVp
bnQxNkFycmF5OjpVaW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IEludGVncmFsVHlwZWRB
cnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQotewot
fQotCi1QYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6c3ViYXJyYXkoaW50IHN0
YXJ0KSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwotfQot
Ci1QYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0
LCBpbnQgZW5kKSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheUltcGw8VWludDE2QXJyYXk+
KHN0YXJ0LCBlbmQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50MTZBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJy
YXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JiMWNlMzNjZWIwYmFjZjQ5MjU3
ZTlkNDBmYTNkODg1ZDIyMjNhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBVaW50MTZBcnJheV9o
Ci0jZGVmaW5lIFVpbnQxNkFycmF5X2gKLQotI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJh
c2UuaCIKLQotbmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEFycmF5QnVmZmVyOwotCi1jbGFzcyBV
aW50MTZBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0
PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IGNyZWF0ZSh1
bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVh
dGUodW5zaWduZWQgc2hvcnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFVpbnQxNkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu
4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4K
LSAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD4qIGFycmF5LCB1bnNp
Z25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6c2V0
KGFycmF5LCBvZmZzZXQpOyB9Ci0gICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2
YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6c2V0KGluZGV4
LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IHN1YmFycmF5KGludCBz
dGFydCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0
YXJ0LCBpbnQgZW5kKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBVaW50MTZBcnJheShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
ZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgot
ICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD47Ci0KLSAgICAv
LyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vu
c2lnbmVkU2hvcnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdURgotCi11c2luZyBXVEY6OlVpbnQxNkFycmF5OwotCi0jZW5kaWYgLy8gVWludDE2
QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJy
YXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWM1MmNmZmU1OWE3YjA2MjllOGZiYTM2N2UxZTgy
ZDk4ODk5MDkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJVaW50MzJBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUGFzc1JlZlB0cjxVaW50MzJB
cnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJu
IFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OmNyZWF0ZTxVaW50MzJBcnJheT4obGVuZ3Ro
KTsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZSh1bnNp
Z25lZCBpbnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGludD46OmNyZWF0ZTxVaW50MzJBcnJheT4oYXJyYXksIGxlbmd0aCk7
Ci19Ci0KLVBhc3NSZWZQdHI8VWludDMyQXJyYXk+IFVpbnQzMkFycmF5OjpjcmVhdGUoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OmNyZWF0
ZTxVaW50MzJBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQotCi1VaW50MzJB
cnJheTo6VWludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25l
ZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0gICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlPHVuc2lnbmVkIGludD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBh
c3NSZWZQdHI8VWludDMyQXJyYXk+IFVpbnQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Ci19Ci0KLVBhc3NS
ZWZQdHI8VWludDMyQXJyYXk+IFVpbnQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBl
bmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5SW1wbDxVaW50MzJBcnJheT4oc3RhcnQs
IGVuZCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1Vp
bnQzMkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTc4ZDA3ZWNiNDg1NzNmZDA0YTZkOGM3NzIy
ZGRlM2Y5NjJiNzEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFVpbnQzMkFycmF5X2gKLSNkZWZp
bmUgVWludDMyQXJyYXlfaAotCi0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgot
Ci1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNsYXNzIFVpbnQzMkFy
cmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PiB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBs
ZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUodW5zaWdu
ZWQgaW50KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxV
aW50MzJBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIENhbuKAmXQgdXNlICJ1
c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCi0gICAgYm9vbCBz
ZXQoVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkg
eyByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6c2V0KGFycmF5LCBvZmZzZXQp
OyB9Ci0gICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OnNldChpbmRleCwgdmFsdWUpOyB9Ci0KLSAg
ICBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwotICAg
IFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gICAgVWludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4g
YnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2Ug
Y29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBl
ZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5
QnVmZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6
VWludDMyQXJyYXk7Ci0KLSNlbmRpZiAvLyBVaW50MzJBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDI2OGU3M2ZlMTI1NjM5MDY2NjgyOWQwMzA3NWNhMzFmYzkxZjNlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQ4QXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlVpbnQ4QXJyYXkuaCIKLQotbmFtZXNwYWNl
IFdURiB7Ci0KLVBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKHVuc2ln
bmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj46
OmNyZWF0ZTxVaW50OEFycmF5PihsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+
IFVpbnQ4QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3Ro
KQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRlPFVp
bnQ4QXJyYXk+KGFycmF5LCBsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVp
bnQ4QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJh
c2U8dW5zaWduZWQgY2hhcj46OmNyZWF0ZTxVaW50OEFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQs
IGxlbmd0aCk7Ci19Ci0KLVVpbnQ4QXJyYXk6OlVpbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0gICAg
OiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KGJ1ZmZlciwgYnl0ZU9mZnNl
dCwgbGVuZ3RoKQotewotfQotCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6OnN1
YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxl
bmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBVaW50OEFycmF5OjpzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5SW1wbDxV
aW50OEFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
VWludDhBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTk0NWU3MGZhNjlm
YmMyYTRkMDIwZWRlYjliZTkxZDdkMmE2YWUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXku
aAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgVWludDhB
cnJheV9oCi0jZGVmaW5lIFVpbnQ4QXJyYXlfaAotCi0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFy
cmF5QmFzZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNs
YXNzIFVpbnQ4QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBj
aGFyPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDhBcnJheT4gY3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDhBcnJheT4gY3Jl
YXRlKHVuc2lnbmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBDYW7i
gJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNvbXBpbGVyLgot
ICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KiBhcnJheSwgdW5zaWdu
ZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6c2V0KGFy
cmF5LCBvZmZzZXQpOyB9Ci0gICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1
ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpzZXQoaW5kZXgsIHZh
bHVlKTsgfQotCi0gICAgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQp
IGNvbnN0OwotICAgIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBp
bnQgZW5kKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwot
ICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgotICAgIGZyaWVu
ZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjsKLQotICAgIC8vIE92ZXJyaWRk
ZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRl
QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYK
LQotdXNpbmcgV1RGOjpVaW50OEFycmF5OwotCi0jZW5kaWYgLy8gVWludDhBcnJheV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKaW5kZXggZWUwZWJlNjU0M2M2
ZDU0MzlmNDI0NTE3MjY1MzhjZGFiYmJjNGU3MC4uOTk3ZGJhNTAwZWQ1MDM4M2M2NDNlOGUxZjA5
MDY1ZGIwZjZiNjg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVy
LmNwcApAQCAtMjksOSArMjksOSBAQAogCiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKIAotI2lu
Y2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkNoZWNrZWRJbnQuaCIKICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJW
aWV3Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQnVmZmVyLmgKaW5kZXggNjcwNWFjOWFlNmQzODhhZWU4MmY1ZmIyNGUzZjZhMWNmYzIx
NWE2Yy4uMDE1N2VjZTY1ZjBjZTRiN2M0MDdiN2JjYjU5ZDc5Njg3NTE0MGMwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oCkBAIC0yNiw5ICsyNiw5IEBACiAjaWZu
ZGVmIFdlYkdMQnVmZmVyX2gKICNkZWZpbmUgV2ViR0xCdWZmZXJfaAogCi0jaW5jbHVkZSAiQXJy
YXlCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTE9iamVjdC5oIgogCisjaW5jbHVkZSA8d3RmL0Fy
cmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcAppbmRleCAxN2JlOTc0MDU1MDlhMDE5MDk1YmU3
ZmM2MTZjMmQzMTlmYTZmNDEwLi5iY2UzODM2NzZlNTM5OTQwYmFkMTRlMTc3YmU5MTgzZTQ0MTkx
MDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKQEAg
LTMwLDE1ICszMCwxNSBAQAogCiAjaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCiAKLSNpbmNsdWRl
ICJGbG9hdDMyQXJyYXkuaCIKLSNpbmNsdWRlICJJbnQzMkFycmF5LmgiCi0jaW5jbHVkZSAiVWlu
dDhBcnJheS5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFt
ZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVu
ZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSAiV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KKyNp
bmNsdWRlIDx3dGYvSW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xHZXRJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdl
dEluZm8uaAppbmRleCBmMzdlZmRkZWNiNGExODRhY2VjOTBhMTgxNDRjODA1Y2EyOGM2ZjQyLi5m
NzQ3YTA5MDJhZGQ3MGE2ZTZkYjJkNDJlMzk1YmQ2NDkzMzA4MDViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaApAQCAtMjcsMTAgKzI3LDcgQEAKICNpZm5kZWYg
V2ViR0xHZXRJbmZvX2gKICNkZWZpbmUgV2ViR0xHZXRJbmZvX2gKIAotI2luY2x1ZGUgIkZsb2F0
MzJBcnJheS5oIgotI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgotI2luY2x1ZGUgIlVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5o
IgogI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0u
aCIKQEAgLTM4LDggKzM1LDExIEBACiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVk
ZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogCisjaW5jbHVkZSA8d3RmL0Zsb2F0MzJB
cnJheS5oPgorI2luY2x1ZGUgPHd0Zi9JbnQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJy
YXkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAzMGI4ZmY2MTdmYzQw
MzJmMjQyZDRmZjMxOTQ4NGMxMTUwNGJhOWQ1Li4wYTA3NDM0YWI0ZjI2OTNjZjJlYjk3YWVhYTAy
Nzk3OGEyZDk3ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
Ci0jaW5jbHVkZSAiVWludDE2QXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTEFjdGl2ZUluZm8uaCIK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaCIKQEAgLTcwLDYgKzY5LDcgQEAKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25BcnJheVB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9VaW50MTZBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAogI2lmIFBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCAxNWNlNDk3YjQ4Y2E0YWFj
NjgwN2RjYWRjNTcyMGU5NmVlYzljYjllLi5jMGM1ZjgyMTMyNjJkYTRkMTgwY2M2MGQ3OTRhMWQy
YzhiMjE3MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaApAQCAtMjgsMTUgKzI4LDE1IEBACiAKICNpbmNsdWRlICJDYW52YXNS
ZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgotI2luY2x1ZGUg
IkZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVk
ZSAiSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiV2ViR0xHZXRJbmZv
LmgiCiAKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0ludDMy
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVWlu
dDhBcnJheS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcApp
bmRleCA1NjIxNTkyMjZjZDNhNzkxOThmYWQ4ZTgzZTE5NzM1MjY0MTQ4YWJkLi4wNTA3ZGE5MzNm
MmM5OWY5Yjg2MzdmNjRjNzRiZjM0NGQ4NWU4MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCkBA
IC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ3J5cHRvLmgiCiAKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCi0jaW5jbHVkZSAiVWludDhBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50OEFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAppbmRleCA3MmU4NzY4YTk2ZWNmMjM4MWM3
YjUzNWE3OTlhNTA1Mjk1NTlkYmFkLi40MzFmYTkzNjIwMDcyMTNiZTg4ZmU1NzYzMTZhYWZmYjNh
YjJhOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiQ2hlY2tlZEludC5oIgogI2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKICNpbmNsdWRlICJF
eHRlbnNpb25zM0QuaCIKQEAgLTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJbWFnZURhdGEuaCIK
ICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJW
aWV3Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25BcnJheVB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW0KaW5kZXggMjJhNTk4Y2U2MTdk
ODdiZGIyZDc3YmNlMmUzZmViNmQ1OTY0MTdiZS4uZTNjMzcxYTJjMjI5ODk5NDkxMzA0MDY5OTg5
ZTUwZmUxMGMzYjdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbQpAQCAtMzIsMjIgKzMyLDIy
IEBACiAjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKIAogI2luY2x1ZGUgIkFOR0xFL1NoYWRl
ckxhbmcuaCIKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgotI2luY2x1ZGUgIkFycmF5QnVmZmVy
Vmlldy5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlIDxD
b3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3Bl
bkdMLmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJ1
ZmZlci5oIgotI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgPE9wZW5HTC9DR0xSZW5kZXJlcnMuaD4KICNpbmNsdWRlIDxPcGVuR0wv
Z2wuaD4KLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiV2ViR0xMYXllci5oIgog
I2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+Cisj
aW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPHd0Zi9JbnQzMkFycmF5
Lmg+CisjaW5jbHVkZSA8d3RmL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9VaW50OEFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAppbmRleCBh
MjczMmNhZjE3ZTVkODY0YjkwZGIyN2Y0OGQxM2QzYzliZThmNTU0Li5hNjVjYTAxMDc5OGU5OTFm
OTQwYzY5MjdjM2FjOGZkNjdkNmMxYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTC5jcHAKQEAgLTMzLDIwICszMywyMCBAQAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0QuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJW
aWV3LmgiCiAjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMLmgiCi0jaW5jbHVkZSAi
RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUg
IkltYWdlRGF0YS5oIgotI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgotI2luY2x1ZGUgIlVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlIDxjc3RyaW5nPgor
I2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZp
ZXcuaD4KKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0ludDMy
QXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9VbnVz
ZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCmluZGV4IGNkNDlhZTBhZmRhNjE5
MzczYjI0NGFkYmJkNmU0MGQwMDk2NGUwYzUuLmMyNjgyNDM5ODZlOGZhZGI0NDc3NDAzY2RkN2M3
ODM1OTQzOTY3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0FzeW5jQXVk
aW9EZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9Bc3luY0F1ZGlvRGVj
b2Rlci5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkFzeW5jQXVkaW9EZWNvZGVy
LmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkF1ZGlvQnVmZmVyLmgi
CiAjaW5jbHVkZSAiQXVkaW9CdWZmZXJDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1
ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVk
aW9CdWZmZXIuaAppbmRleCBkNWU5ZjJiNGI0ZTFmZWEyNDgzYjJjN2VmYjgyOTIwODczZjZmNjU2
Li40YWVhZGNhNTc3NDAzZTY5YzJkZDEyZTFlMTU1YWRiMWY1NDMzZjQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpZm5kZWYgQXVkaW9C
dWZmZXJfaAogI2RlZmluZSBBdWRpb0J1ZmZlcl9oCiAKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXku
aCIKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGMxMDFlZTM1
YTE2NGQ4ZjNlMDZmODI1NmJiNjJjMDJkODVhZTUyMWEuLjQ4OGQwYWEzMjVmODMyYmY0ZWQ4YzM4
MjRlNzA0YzIzNTUzYjAyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAKLSNp
bmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkFzeW5jQXVkaW9EZWNvZGVyLmgiCiAj
aW5jbHVkZSAiQXVkaW9CdWZmZXIuaCIKICNpbmNsdWRlICJBdWRpb0J1ZmZlckNhbGxiYWNrLmgi
CkBAIC02OSw2ICs2OCw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNlbmRpZgogCisjaW5jbHVk
ZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAppbmRleCAzZGI5Yzg4MjQzZmY4OWIyMGM2ZjYyZmMyZWJh
M2M2NzExNGI0MDUxLi4yNzU4NDg3ZGFhMTE3YTdjNDk1MzNlNGU2MWRlZmQ3YTFmN2JhZjEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCkBAIC0zMSw5ICszMSw5IEBACiAKICNp
bmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtVGltZWxpbmUuaCIK
LSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5o
IGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKaW5kZXggNmI4
NmVmOGJiM2NmNzNmMDdmZmFlYzQ1MmZlNWQ0MDRiMjQ1MGEwNi4uMjJlYTg5MDgxYTUwYjAwNDI3
NDc1NGExMjA3ZTg5NDhiYWMxOTcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNkZWZpbmUgQXVkaW9QYXJhbVRp
bWVsaW5lX2gKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgotI2luY2x1ZGUgIkZsb2F0MzJB
cnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vSmF2YVNjcmlw
dEF1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9O
b2RlLmNwcAppbmRleCA5MmUxZmMzNjNjNWU3YWExN2IzYmRmMTNjY2VkZjc4MzJmN2U2YTRkLi40
MjIxNTA5Y2Y5OWM2MTc0MzVlZTgwODYzZGVjZjI4ZWJlMDdhYTQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcApAQCAtMzUsNyArMzUsNyBA
QAogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvUHJvY2Vzc2lu
Z0V2ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXku
aCIKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9S
ZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCAxZmM4YjI0YTdlZWU3ZWZkOTFjYmMxMjVmYjlmNjQy
YWEzNDg4YTEzLi41Y2FhYjkxOGMyYjViNTRhMWQ5MjQ3NTU1MzY2OGZkZjY2NzBkMmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcApAQCAtMzEsMTQg
KzMxLDE0IEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGll
cy5oIgogI2luY2x1ZGUgIkZGVEZyYW1lLmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCi0j
aW5jbHVkZSAiVWludDhBcnJheS5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUg
PGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV4Lmg+CisjaW5jbHVkZSA8d3RmL0Zsb2F0
MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL01h
dGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgogCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9XYXZlU2hhcGVy
UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29y
LmgKaW5kZXggZWI2NzI2MDZlNDEzYTYyYTRlMjUxZDZmNDUwNDM1ZmM0YzZkMTM0Ny4uNDAxNmU4
YmRlZjcxZTEyMTBkZjQzNDk4OTY5YzMwYmY1OWFjY2E4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1
ZGUgIkF1ZGlvRFNQS2VybmVsLmgiCiAjaW5jbHVkZSAiQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3Iu
aCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKKyNp
bmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMDYxMGZiZjBiNzRmNmQ5ODM2YTE5MGZlNjhjMTUx
NTI0OGIwM2Q0OS4uOTYyMjZiNzg3ZTQ4YWI3ZjAzZTVlYjI2MGVjZTc2Y2FlZDg5NjRlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0z
NCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVsLmgiCiAKLSNpbmNsdWRl
ICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDb29raWVKYXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTIsNiArNTEsNyBAQAogI2luY2x1ZGUgIldl
YlNvY2tldENoYW5uZWxDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2UuaCIK
IAorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFw
aGljYWxseVJhbmRvbU51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDkyMWJk
NzRkN2I3OTk2OTNmMTcxNDliNmMxYTYwZmMzMGEwNDRlNDQuLjFlMjRjZmJiYTUwNmVmNzZiNjA0
MjExOGY3MTg4NDhlZGY0YjNmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0z
NCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5j
bHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAg
LTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUg
IldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDx3
dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmlu
ZGV4IDZjNDhhZmQ3NDg4OTA1MzAyM2M0M2E4YWQ5ZGJjN2E4ZGY4NTRjOTYuLjA0ZDkyN2VkY2Ex
NGE3MGIyMTlkY2E0NjBkZjYzZDQ2ZTZjZjUwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcApAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRl
ICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKQEAgLTUyLDYgKzUxLDcgQEAKICNpbmNsdWRl
ICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVz
dFVwbG9hZC5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZl
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116835</attachid>
            <date>2011-11-28 15:10:19 -0800</date>
            <delta_ts>2011-11-28 15:37:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73248-20111128151018.patch</filename>
            <type>text/plain</type>
            <size>254757</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YTUzMjA5MDM2NDZhZTIzNjQ3YmQxYjE0MGU2MmVhZmI5ZjQwYzc1Li5mNTdiNWIzMDg1YmZkZWU1
ZWUyZDI0OGFkY2QzMmIxNGZjNTA2YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzAgQEAKKzIwMTEtMTEtMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIHR5cGVkIGFycmF5IGltcGxlbWVudGF0aW9ucyBpbnRvIHd0ZgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHR5cGVkIGFy
cmF5IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gV2ViQ29yZSB0byB3dGYuICBJbmxpbmUgdGhl
CisgICAgICAgIC5jcHAgZmlsZXMgZm9yIGVhY2ggb2YgdGhlIGFycmF5IHZpZXdzIHRvIGN1dCBk
b3duIG9uIHVubmVjZXNzYXJ5IGV4cG9ydHMKKyAgICAgICAgYW5kIGZ1bmN0aW9uIGNhbGwgb3Zl
cmhlYWQgZm9yIHRyaXZpYWwgb3BlcmF0aW9ucy4KKworICAgICAgICBBZGRlZCBmaWxlcyB0byBh
bGwgdGhlIHByb2plY3QgZmlsZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQXJyYXlCdWZmZXIuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcC4KKyAgICAg
ICAgKFdURjo6QXJyYXlCdWZmZXI6OnRyYW5zZmVyKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZm
ZXI6OmFkZFZpZXcpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlcjo6cmVtb3ZlVmlldyk6Cisg
ICAgICAgICogd3RmL0FycmF5QnVmZmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAuCisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyQ29u
dGVudHM6OkFycmF5QnVmZmVyQ29udGVudHMpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNv
bnRlbnRzOjpkYXRhKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJDb250ZW50czo6c2l6ZUlu
Qnl0ZXMpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cmFuc2Zlcik6Cisg
ICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjp+QXJyYXlCdWZmZXIpOgorICAgICAgICAoV1RGOjpB
cnJheUJ1ZmZlcjo6Y2xhbXBWYWx1ZSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlcjo6QXJyYXlCdWZmZXIpOgorICAgICAgICAo
V1RGOjpBcnJheUJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpieXRl
TGVuZ3RoKToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXI6OnNsaWNlKToKKyAgICAgICAgKFdU
Rjo6QXJyYXlCdWZmZXI6OnNsaWNlSW1wbCk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyOjpj
bGFtcEluZGV4KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2Nh
dGUpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjp+QXJyYXlCdWZmZXJDb250
ZW50cyk6CisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwLgorICAgICAg
ICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OkFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXVEY6
OkFycmF5QnVmZmVyVmlldzo6fkFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXVEY6OkFycmF5
QnVmZmVyVmlldzo6bmV1dGVyKToKKyAgICAgICAgKiB3dGYvQXJyYXlCdWZmZXJWaWV3Lmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaC4K
KyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3Ojppc0J5dGVBcnJheSk6CisgICAgICAgIChX
VEY6OkFycmF5QnVmZmVyVmlldzo6aXNVbnNpZ25lZEJ5dGVBcnJheSk6CisgICAgICAgIChXVEY6
OkFycmF5QnVmZmVyVmlldzo6aXNTaG9ydEFycmF5KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZm
ZXJWaWV3Ojppc1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVy
Vmlldzo6aXNJbnRBcnJheSk6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6aXNVbnNp
Z25lZEludEFycmF5KToKKyAgICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3Ojppc0Zsb2F0QXJy
YXkpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmlzRG91YmxlQXJyYXkpOgorICAg
ICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgorICAgICAgICAoV1RGOjpB
cnJheUJ1ZmZlclZpZXc6OmJ1ZmZlcik6CisgICAgICAgIChXVEY6OkFycmF5QnVmZmVyVmlldzo6
YmFzZUFkZHJlc3MpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmJ5dGVPZmZzZXQp
OgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OnZlcmlmeVN1YlJhbmdlKToKKyAgICAg
ICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3OjpjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKToKKyAg
ICAgICAgKFdURjo6QXJyYXlCdWZmZXJWaWV3OjpzZXRJbXBsKToKKyAgICAgICAgKFdURjo6QXJy
YXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZp
ZXc6Onplcm9SYW5nZUltcGwpOgorICAgICAgICAoV1RGOjpBcnJheUJ1ZmZlclZpZXc6OmNhbGN1
bGF0ZU9mZnNldEFuZExlbmd0aCk6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oLgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OnNl
dCk6CisgICAgICAgIChXVEY6OkZsb2F0MzJBcnJheTo6aXRlbSk6CisgICAgICAgIChXVEY6OkZs
b2F0MzJBcnJheTo6aXNGbG9hdEFycmF5KToKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5Ojpj
cmVhdGUpOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheSk6CisgICAg
ICAgIChXVEY6OkZsb2F0MzJBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9GbG9hdDY0
QXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRB
cnJheS5oLgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6
OkZsb2F0NjRBcnJheTo6aXRlbSk6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6aXNEb3Vi
bGVBcnJheSk6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Y3JlYXRlKToKKyAgICAgICAg
KFdURjo6RmxvYXQ2NEFycmF5OjpGbG9hdDY0QXJyYXkpOgorICAgICAgICAoV1RGOjpGbG9hdDY0
QXJyYXk6OnN1YmFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5jcHAuCisgICAgICAgIChX
VEY6OkludDE2QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6OmlzU2hvcnRB
cnJheSk6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6
OkludDE2QXJyYXk6OkludDE2QXJyYXkpOgorICAgICAgICAoV1RGOjpJbnQxNkFycmF5OjpzdWJh
cnJheSk6CisgICAgICAgICogd3RmL0ludDMyQXJyYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwLgorICAgICAgICAoV1RGOjpJbnQzMkFy
cmF5OjpzZXQpOgorICAgICAgICAoV1RGOjpJbnQzMkFycmF5Ojppc0ludEFycmF5KToKKyAgICAg
ICAgKFdURjo6SW50MzJBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6
SW50MzJBcnJheSk6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OnN1YmFycmF5KToKKyAgICAg
ICAgKiB3dGYvSW50OEFycmF5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9JbnQ4QXJyYXkuY3BwLgorICAgICAgICAoV1RGOjpJbnQ4QXJyYXk6OnNldCk6CisgICAg
ICAgIChXVEY6OkludDhBcnJheTo6aXNCeXRlQXJyYXkpOgorICAgICAgICAoV1RGOjpJbnQ4QXJy
YXk6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OkludDhBcnJheTo6SW50OEFycmF5KToKKyAgICAg
ICAgKFdURjo6SW50OEFycmF5OjpzdWJhcnJheSk6CisgICAgICAgICogd3RmL0ludGVncmFsVHlw
ZWRBcnJheUJhc2UuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dGVncmFsVHlwZWRBcnJheUJhc2UuaC4KKyAgICAgICAgKFdURjo6SW50ZWdyYWxUeXBlZEFycmF5
QmFzZTo6c2V0KToKKyAgICAgICAgKFdURjo6SW50ZWdyYWxUeXBlZEFycmF5QmFzZTo6aXRlbSk6
CisgICAgICAgIChXVEY6OkludGVncmFsVHlwZWRBcnJheUJhc2U6OkludGVncmFsVHlwZWRBcnJh
eUJhc2UpOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5QmFzZS5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaC4KKyAgICAgICAgKFdURjo6
VHlwZWRBcnJheUJhc2U6OmRhdGEpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6c2V0
KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheUJhc2U6OnNldFJhbmdlKToKKyAgICAgICAgKFdU
Rjo6VHlwZWRBcnJheUJhc2U6Onplcm9SYW5nZSk6CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlC
YXNlOjpsZW5ndGgpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5QmFzZTo6Ynl0ZUxlbmd0aCk6
CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjpUeXBlZEFycmF5QmFzZSk6CisgICAgICAg
IChXVEY6OlR5cGVkQXJyYXlCYXNlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpUeXBlZEFycmF5
QmFzZTo6c3ViYXJyYXlJbXBsKToKKyAgICAgICAgKiB3dGYvVWludDE2QXJyYXkuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcC4KKyAgICAg
ICAgKFdURjo6VWludDE2QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OlVpbnQxNkFycmF5Ojpp
c1Vuc2lnbmVkU2hvcnRBcnJheSk6CisgICAgICAgIChXVEY6OlVpbnQxNkFycmF5OjpjcmVhdGUp
OgorICAgICAgICAoV1RGOjpVaW50MTZBcnJheTo6VWludDE2QXJyYXkpOgorICAgICAgICAoV1RG
OjpVaW50MTZBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwLgor
ICAgICAgICAoV1RGOjpVaW50MzJBcnJheTo6c2V0KToKKyAgICAgICAgKFdURjo6VWludDMyQXJy
YXk6OmlzVW5zaWduZWRJbnRBcnJheSk6CisgICAgICAgIChXVEY6OlVpbnQzMkFycmF5OjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpVaW50MzJBcnJheTo6VWludDMyQXJyYXkpOgorICAgICAgICAo
V1RGOjpVaW50MzJBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmguCisg
ICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OnNldCk6CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6
OmlzVW5zaWduZWRCeXRlQXJyYXkpOgorICAgICAgICAoV1RGOjpVaW50OEFycmF5OjpjcmVhdGUp
OgorICAgICAgICAoV1RGOjpVaW50OEFycmF5OjpVaW50OEFycmF5KToKKyAgICAgICAgKFdURjo6
VWludDhBcnJheTo6c3ViYXJyYXkpOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEx
LTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5n
ZSBzZXQgMTAxMTg3IGZyb20gYnVnIDczMTU0IHJlbW92ZWQgYWxyZWFkeSBsb3dlciBjYXNlIG9w
dGltaXphdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAyYjQ0NzJhMDY3ZjJhYTVhNzczNjFhYmY4MjhkNjhj
ZGMzNTIxYjUuLjY5MjhhOWQ1NzcxOWI2NWE0ZDUwNzZkYTE3NDc1MzAwMWJhNjFmMGMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4NyBAQAorMjAxMS0xMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgdHlwZWQgYXJyYXkgaW1wbGVtZW50YXRpb25zIGlu
dG8gd3RmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZWQgdGhlIHR5cGVkIGFycmF5IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gV2ViQ29yZSBh
bmQKKyAgICAgICAgYWRkZWQgZm9yd2FyZGluZyBoZWFkZXJzLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0FycmF5QnVmZmVyLmg6
IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
aDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0MzJBcnJheS5o
OiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvRmxvYXQ2NEFycmF5Lmg6
IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQxNkFycmF5Lmg6IEFk
ZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQzMkFycmF5Lmg6IEFkZGVk
LgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQ4QXJyYXkuaDogQWRkZWQuCisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQxNkFycmF5Lmg6IEFkZGVkLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MzJBcnJheS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVWludDhBcnJheS5oOiBBZGRlZC4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVy
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRmlsZVJlYWRlckN1c3RvbS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRmxvYXQ2NEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTVWludDhBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXYXZlU2hh
cGVyTm9kZUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVh
ZGVyKToKKyAgICAgICAgKE5hdGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuaDoKKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50
Lmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKiBmaWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlclN5bmMu
Y3BwOgorICAgICAgICAqIGZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3BwOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQXJyYXlC
dWZmZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9JbnQxNkFycmF5Lmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvSW50
MzJBcnJheS5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDhBcnJheS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMR2V0SW5mby5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisgICAgICAgICogcGFnZS9DcnlwdG8uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRp
by9Bc3luY0F1ZGlvRGVjb2Rlci5jcHA6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAqIHdlYmF1
ZGlvL0F1ZGlvUGFyYW0uaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
aDoKKyAgICAgICAgKiB3ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcDoKKyAgICAgICAg
KiB3ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKiB3ZWJhdWRpby9XYXZl
U2hhcGVyUHJvY2Vzc29yLmg6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorCiAyMDExLTExLTI4
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBBc3Bl
Y3QgUmF0aW8gUHJvcGVydHkgSW5oZXJpdGFuY2UgQW5kIE1ha2UgdGhlIENvbXB1dGVkIFZhbHVl
IEVxdWFsIHRoZSBTcGVjaWZpZWQgVmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZDViZGQ4YWI0ZWUxY2MwOWIwMjBkZjIyOTQ2NzFhNmQ1MGY3Mzc4
Yy4uYTM0YzIwMDU5MGQzODQ0Yzc0ZWM4NGMzYjJlNTdlYTNkZTFiZWMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ5NiwxNCArNDk2LDE4IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dyaXRlQmFycmllci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FsaWdubWVudC5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Fsd2F5c0lubGluZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9BcnJheUJ1ZmZlci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5
QnVmZmVyVmlldy5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJW
aWV3LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVNDSUlDVHlwZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0Fzc2VydGlvbnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0Fzc2VydGlvbnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BdG9t
aWNzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVZMVHJlZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0JpdG1hcC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0JpdFZlY3Rvci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0VmVjdG9yLmgg
XAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0bWFwLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQmxvY2tTdGFjay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Js
b29tRmlsdGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQm91bmRzQ2hlY2tlZFBv
aW50ZXIuaCBcCkBAIC01MjAsMzAgKzUyNCwzMCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRoLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRGVjaW1hbE51bWJlci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvRGVjaW1hbE51bWJlci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RlY29k
ZXIuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EZXF1ZS5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0Rpc2FsbG93Q1R5cGUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRv
YS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL2R0b2EvYmlnbnVtLWR0b2EuY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS9iaWdudW0uY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRv
YS9jYWNoZWQtcG93ZXJzLmNjIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZGl5
LWZwLmNjIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZG91YmxlLWNvbnZlcnNp
b24uY2MgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuY2MgXAot
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9maXhlZC1kdG9hLmNjIFwKLQlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL2R0b2Evc3RydG9kLmNjIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL2R0b2EvYmlnbnVtLWR0b2EuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9k
dG9hL2JpZ251bS5jYyBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2JpZ251bS5o
IFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvY2FjaGVkLXBvd2Vycy5jYyBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2NhY2hlZC1wb3dlcnMuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2RpeS1mcC5jYyBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9kdG9hL2RpeS1mcC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2Ev
ZG91YmxlLWNvbnZlcnNpb24uY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9k
b3VibGUtY29udmVyc2lvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EvZG91
YmxlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuY2MgXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9mYXN0LWR0b2EuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9kdG9hL2ZpeGVkLWR0b2EuY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvZHRvYS9maXhlZC1kdG9hLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
ZHRvYS9zdHJ0b2QuY2MgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZHRvYS9zdHJ0b2Qu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hL3V0aWxzLmggXAotCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvRGVjb2Rlci5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0RlcXVlLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRGlzYWxsb3dDVHlwZS5oIFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBcCi0JU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9kdG9hLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRHluYW1pY0Fubm90YXRpb25z
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EeW5hbWljQW5ub3RhdGlvbnMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9FbmNvZGVyLmggXApAQCAtNTUxLDYgKzU1NSw4
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvRmFzdE1hbGxvYy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxv
Yy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ZpeGVkQXJyYXkuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDMyQXJyYXkuaCBcCisJU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9GbG9hdDY0QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3
YXJkLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvR2V0UHRyLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HT3duUHRyLmNwcCBcCkBAIC01NjksNiArNTc1LDEw
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvSGFzaFRyYWl0cy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hleE51bWJlci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0lubGluZUFTTS5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0ludDE2QXJyYXkuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9JbnQzMkFycmF5LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50OEFycmF5Lmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RIYXNoU2V0LmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTGlzdFJlZlB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0xvY2tlci5oIFwKQEAgLTU3OCwxMiArNTg4LDEyIEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWF0aEV4dHJhcy5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01ENS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
TUQ1LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWVzc2FnZVF1ZXVlLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01ldGFBbGxvY2F0b3JIYW5kbGUuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9N
ZXNzYWdlUXVldWUuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob25Db3B5aW5nU29y
dC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL05vbmNvcHlhYmxlLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvTm9uQ29weWluZ1NvcnQuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bGxQ
dHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvci5oIFwKQEAgLTU5
MSwyNCArNjAxLDI0IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Pd25BcnJheVB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkZhc3RN
YWxsb2NQdHIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHJDb21tb24uaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHIuaCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Pd25QdHJDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YWNrZWRJbnRWZWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYWdlQWxsb2Nh
dGlvbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhZ2VBbGxvY2F0aW9uQWxpZ25l
ZC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVk
LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZVJlc2VydmF0aW9uLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFnZUJsb2NrLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QYWdlQmxvY2suaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNz
T3duQXJyYXlQdHIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmgg
XAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFzc1JlZlB0ci5oIFwKLQlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1Bhc3NUcmFpdHMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QYWdlUmVzZXJ2YXRpb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxl
bEpvYnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNPcGVuTVAuaCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duQXJyYXlQdHIuaCBcCisJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGFzc1JlZlB0ci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bhc3NUcmFpdHMuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1Bvc3NpYmx5TnVsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1JhbmRvbU51bWJlci5jcHAgXApAQCAtNjU2LDI2ICs2NjYsMzAgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oIFwKLQlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcCBcCi0JU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCBcCi0J
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9U
aHJlYWRpbmdQcmltaXRpdmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFJlc3Ry
aWN0aW9uVmVyaWZpZXIuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNwZWNpZmlj
LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZWRBcnJheUJhc2UuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVW5p
b25GaW5kLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVWludDE2QXJyYXkuaCBcCisJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MzJBcnJheS5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1VpbnQ4QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91
bmljb2RlL0NoYXJhY3Rlck5hbWVzLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5p
Y29kZS9Db2xsYXRvckRlZmF1bHQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3Vu
aWNvZGUvQ29sbGF0b3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL0Nv
bGxhdG9yRGVmYXVsdC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9V
bmljb2RlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9VVEY4LmNwcCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL1VURjguaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9VbmlvbkZpbmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9VbnVzZWRQYXJhbS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1ZhbHVlQ2hlY2su
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCAwZGFlZWI4MjE2N2Y5MjMyYjIwMTZiMjg5
Y2VjNGE2ZTIwYzI0NjZkLi4zNzE1YWIxMWFiNzY2NTQyZjZhMzRkODM0YjlhYzFkNzgzYjlmNWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTQyMyw2ICs0
MjMsOSBAQCBfX1pOM1dURjEzdHJ5RmFzdE1hbGxvY0VtCiBfX1pOM1dURjE0ZmFzdE1hbGxvY1Np
emVFUEt2CiBfX1pOM1dURjE0bnVtYmVyVG9TdHJpbmdFZFBjCiBfX1pOM1dURjE0dHJ5RmFzdFJl
YWxsb2NFUHZtCitfX1pOM1dURjE1QXJyYXlCdWZmZXJWaWV3Nm5ldXRlckV2CitfX1pOM1dURjE1
QXJyYXlCdWZmZXJWaWV3QzJFTlNfMTBQYXNzUmVmUHRySU5TXzExQXJyYXlCdWZmZXJFRUVqCitf
X1pOM1dURjE1QXJyYXlCdWZmZXJWaWV3RDJFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjR3
YWl0RVJOU181TXV0ZXhFCiBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uNnNpZ25hbEV2CiBfX1pO
M1dURjE1VGhyZWFkQ29uZGl0aW9uOWJyb2FkY2FzdEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IDgxZGIyYjQ4MjM4YTgyMTBkMjZmYzgyMzU0OGFjNmUw
NjU0OGIxOTUuLjA2ZTIwMTNiMWM1N2EwM2I4MjA0MWYzMjVlNzBmY2MwZmU3ZTMxYmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC01NDUsNiArNTQ1LDEw
IEBACiAgICAgICAgICAgICAncnVudGltZS9UcmFjaW5nLmgnLAogICAgICAgICAgICAgJ3J1bnRp
bWUvVVN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUvVVN0cmluZ0NvbmNhdGVuYXRl
LmgnLAorICAgICAgICAgICAgJ3d0Zi9BcnJheUJ1ZmZlci5jcHAnLAorICAgICAgICAgICAgJ3d0
Zi9BcnJheUJ1ZmZlci5oJywKKyAgICAgICAgICAgICd3dGYvQXJyYXlCdWZmZXJWaWV3LmNwcCcs
CisgICAgICAgICAgICAnd3RmL0FycmF5QnVmZmVyVmlldy5oJywKICAgICAgICAgICAgICd3dGYv
QXNzZXJ0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9CeXRlQXJyYXkuY3BwJywKICAgICAg
ICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwJywKQEAgLTU1NCw3
ICs1NTgsMTMgQEAKICAgICAgICAgICAgICd3dGYvRHluYW1pY0Fubm90YXRpb25zLmNwcCcsCiAg
ICAgICAgICAgICAnd3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5oJywKICAgICAgICAgICAgICd3dGYv
RmFzdE1hbGxvYy5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9GbG9hdDMyQXJyYXkuaCcsCisgICAg
ICAgICAgICAnd3RmL0Zsb2F0NjRBcnJheS5oJywKICAgICAgICAgICAgICd3dGYvSGFzaFRhYmxl
LmNwcCcsCisgICAgICAgICAgICAnd3RmL0ludDE2QXJyYXkuaCcsCisgICAgICAgICAgICAnd3Rm
L0ludDMyQXJyYXkuaCcsCisgICAgICAgICAgICAnd3RmL0ludDhBcnJheS5oJywKKyAgICAgICAg
ICAgICd3dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oJywKICAgICAgICAgICAgICd3dGYvTUQ1
LmNwcCcsCiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuY3BwJywKICAgICAgICAgICAgICd3
dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCkBAIC01ODcsNyArNTk3LDExIEBACiAgICAgICAgICAg
ICAnd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZGlu
Z1dpbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9UeXBlVHJhaXRzLmNwcCcsCi0gICAgICAgICAg
ICAnd3RmL1dURlRocmVhZERhdGEuY3BwJywKKyAgICAgICAgICAgICd3dGYvVHlwZWRBcnJheUJh
c2UuaCcsCisgICAgICAgICAgICAnd3RmL1dURlRocmVhZERhdGEuY3BwJworICAgICAgICAgICAg
J3d0Zi9VaW50MTZBcnJheS5oJywKKyAgICAgICAgICAgICd3dGYvVWludDMyQXJyYXkuaCcsCisg
ICAgICAgICAgICAnd3RmL1VpbnQ4QXJyYXkuaCcsCiAgICAgICAgICAgICAnd3RmL2Nocm9taXVt
L0Nocm9taXVtVGhyZWFkaW5nLmgnLAogICAgICAgICAgICAgJ3d0Zi9jaHJvbWl1bS9NYWluVGhy
ZWFkQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICd3dGYvZHRvYS5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZj
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dU
Ri52Y3Byb2oKaW5kZXggYmU2M2RiZDIxODc5MGM2ZGQ4ZmM5ZWM0NjVmNDA4YTM3YzY4ZGQwOS4u
ZjZjZjAyMDE2ZTc3MzQ0MTFkMGMxODUyNWYxZjE0NjMzOGFmZTcxMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYu
dmNwcm9qCkBAIC02MTMsNiArNjEzLDIyIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXEFycmF5QnVmZmVyLmNwcCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQXJyYXlCdWZmZXIuaCIKKwkJ
CT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQXJyYXlC
dWZmZXJWaWV3LmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQXJyYXlCdWZmZXJWaWV3LmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUK
IAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXEFTQ0lJQ1R5cGUuaCIKIAkJCT4KIAkJPC9GaWxl
PgpAQCAtNzI5LDYgKzc0NSwxNCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHd0ZlxGbG9hdDMyQXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8
RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcRmxvYXQ2NEFycmF5LmgiCisJCQk+CisJ
CTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXGR0b2EuY3BwIgog
CQkJPgogCQk8L0ZpbGU+CkBAIC04MzMsNiArODU3LDE4IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJ
PEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXEludDE2QXJyYXkuaCIKKwkJCT4KKwkJ
PC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcSW50MzJBcnJheS5o
IgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxJ
bnQ4QXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlx3dGZcTGlzdEhhc2hTZXQuaCIKIAkJCT4KIAkJPC9GaWxlPgpAQCAtMTE1Nyw2ICsxMTkz
LDE4IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5c
d3RmXFVJbnQxNkFycmF5LmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5cd3RmXFVJbnQzMkFycmF5LmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUK
KwkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXFVJbnQ4QXJyYXkuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcVW51c2VkUGFyYW0uaCIKIAkJ
CT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMjdlNzEzYTc5
MzQ5M2FhMmY1NjFjYzRiMWU0MWIyZTE3NzhjNzA5Li5iZmQ5OTU3OWE0YTU0MjJiMTJmOWNiM2M4
YWE1NzczMTA0MmFkOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU3LDYg
KzQ1NywyMCBAQAogCQlBNzM4NjU1NDExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcz
ODY1NTExMTg2OTdCNDAwNTQwMjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLzsgfTsKIAkJ
QTczODY1NTUxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM4NjU1MjExODY5N0I0MDA1
NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmNwcCAqLzsgfTsKIAkJQTczODY1NTYxMTg2OTdCNDAw
NTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTczODY1NTMxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJh
dG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUE3M0JFMTY4MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE1NDE0ODQyMDUyMDA5MTIw
NEIgLyogQXJyYXlCdWZmZXIuY3BwICovOyB9OworCQlBNzNCRTE2OTE0ODQyMDUyMDA5MTIwNEIg
LyogQXJyYXlCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3M0JFMTU1MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3M0JFMTZBMTQ4NDIw
NTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNTYxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5
QnVmZmVyVmlldy5jcHAgKi87IH07CisJCUE3M0JFMTZCMTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJh
eUJ1ZmZlclZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3M0JFMTU3MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlclZpZXcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE2RDE0ODQy
MDUyMDA5MTIwNEIgLyogRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE1OTE0ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQzMkFy
cmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QTczQkUxNkYxNDg0MjA1MjAwOTEyMDRCIC8qIEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNUIxNDg0MjA1MjAwOTEyMDRC
IC8qIEZsb2F0NjRBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUE3M0JFMTcxMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQ4QXJyYXkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0JFMTVEMTQ4NDIw
NTIwMDkxMjA0QiAvKiBJbnQ4QXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE3MzE0ODQyMDUyMDA5MTIwNEIgLyogSW50MTZBcnJh
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUx
NUYxNDg0MjA1MjAwOTEyMDRCIC8qIEludDE2QXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE3NTE0ODQyMDUyMDA5MTIwNEIgLyog
SW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTczQkUxNjExNDg0MjA1MjAwOTEyMDRCIC8qIEludDMyQXJyYXkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE3NzE0ODQyMDUyMDA5
MTIwNEIgLyogVWludDhBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTczQkUxNjMxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQ4QXJyYXkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE3OTE0
ODQyMDUyMDA5MTIwNEIgLyogVWludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0JFMTY1MTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50MTZB
cnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUE3M0JFMTdCMTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczQkUxNjcxNDg0MjA1MjAwOTEyMDRC
IC8qIFVpbnQzMkFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJQTczQkUxN0UxNDg0MjA4NDAwOTEyMDRCIC8qIFR5cGVkQXJyYXlCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNCRTE3RDE0
ODQyMDg0MDA5MTIwNEIgLyogVHlwZWRBcnJheUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzNCRTE4MDE0ODQyMEE4MDA5MTIwNEIgLyog
SW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTczQkUxN0YxNDg0MjBBODAwOTEyMDRCIC8qIEludGVncmFsVHlwZWRB
cnJheUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBNzQ4MkI5MzExNjcxMTQ3MDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0ODJC
NzkxMTY2Q0RFQTAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzQ4MkI5NDExNjcx
MTQ3MDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkI3QTExNjZDREVBMDAzQjA3
MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgKi87IH07CiAJCUE3NDgyRTkzMTE2
QTdDQUQwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0ODJFMzcxMTZBNjk3QjAwM0Iw
NzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyNjUsNiArMTI3OSwyMCBAQAogCQlBNzM4
NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVua0pJVC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVjaWFsaXplZFRodW5rSklULmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVy
YXRvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGh1bmtHZW5l
cmF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczODY1NTMxMTg2OTdC
NDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUaHVua0dlbmVyYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTczQkUxNTQxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFycmF5QnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTczQkUxNTUxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5QnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3M0JFMTU2MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1
ZmZlclZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlC
dWZmZXJWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNTcxNDg0
MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBcnJheUJ1ZmZlclZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTczQkUxNTkxNDg0MjA1MjAwOTEyMDRCIC8qIEZsb2F0MzJBcnJheS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdDMyQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTczQkUxNUIxNDg0MjA1MjAwOTEyMDRCIC8qIEZsb2F0NjRBcnJheS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdDY0QXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNUQxNDg0MjA1MjAwOTEyMDRCIC8qIEludDhBcnJh
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnQ4QXJyYXkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNUYxNDg0MjA1MjAwOTEyMDRCIC8qIEludDE2
QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50MTZBcnJheS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNCRTE2MTE0ODQyMDUyMDA5MTIwNEIgLyog
SW50MzJBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnQzMkFycmF5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3M0JFMTYzMTQ4NDIwNTIwMDkxMjA0
QiAvKiBVaW50OEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVpbnQ4
QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTczQkUxNjUxNDg0MjA1MjAw
OTEyMDRCIC8qIFVpbnQxNkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVpbnQxNkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3M0JFMTY3MTQ4
NDIwNTIwMDkxMjA0QiAvKiBVaW50MzJBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVaW50MzJBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzNC
RTE3RDE0ODQyMDg0MDA5MTIwNEIgLyogVHlwZWRBcnJheUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVHlwZWRBcnJheUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTczQkUxN0YxNDg0MjBBODAwOTEyMDRCIC8qIEludGVncmFsVHlwZWRBcnJheUJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdyYWxUeXBlZEFycmF5
QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzQ4MkI3OTExNjZDREVBMDAz
QjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3NDgyQjdBMTE2NkNERUEwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RN
YXBSZWZQcml2YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzQ4MkUzNzExNkE2OTdCMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWFrT2JqZWN0TWFwUmVmSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjIsMjEgKzE4OTAsMjAg
QEAKIAkJNjUxNjJFRjEwOEU2QTIxQzAwNzU1NkNEIC8qIHd0ZiAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQzIyQzUyNDgxM0ZBRjZFRjAwQjdEQzBEIC8q
IGR0b2EgKi8sCi0JCQkJMDZEMzU4QTAwREFBRDlDNDAwM0IxNzRFIC8qIG1hYyAqLywKLQkJCQk4
NjU2NTczRTExNUJFMzUyMDAyOTFGNDAgLyogdGV4dCAqLywKLQkJCQkxQTA4Mjc3NjE0MjE2OEQ2
MDA5MENDQUMgLyogdGhyZWFkcyAqLywKLQkJCQlFMTk1Njc4RDA5RTdDRjEyMDBCODlEMTMgLyog
dW5pY29kZSAqLywKIAkJCQlBMUQ3NjQ1MTEzNTQ0NDhCMDBDNUM3QzAgLyogQWxpZ25tZW50Lmgg
Ki8sCiAJCQkJOTNBQTRGNzcwOTU3MjUxRjAwODRCM0E3IC8qIEFsd2F5c0lubGluZS5oICovLAor
CQkJCUE3M0JFMTU0MTQ4NDIwNTIwMDkxMjA0QiAvKiBBcnJheUJ1ZmZlci5jcHAgKi8sCisJCQkJ
QTczQkUxNTUxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyLmggKi8sCisJCQkJQTczQkUx
NTYxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgKi8sCisJCQkJQTczQkUx
NTcxNDg0MjA1MjAwOTEyMDRCIC8qIEFycmF5QnVmZmVyVmlldy5oICovLAogCQkJCTkzOEM0RjY5
MENBMDZCQzcwMEQ5MzEwQSAvKiBBU0NJSUNUeXBlLmggKi8sCiAJCQkJNjVFMjE3QjgwOEU3RUVD
QzAwMjNFNUY2IC8qIEFzc2VydGlvbnMuY3BwICovLAogCQkJCTY1RTIxN0I3MDhFN0VFQ0MwMDIz
RTVGNiAvKiBBc3NlcnRpb25zLmggKi8sCiAJCQkJQkM1RjdCQkIxMTgyM0I1OTAwNTJDMDJDIC8q
IEF0b21pY3MuaCAqLywKIAkJCQlFMUE1OTYzNzBERTNFMUMzMDBDMTdFMzcgLyogQVZMVHJlZS5o
ICovLAorCQkJCUREMzc3Q0JCMTIwNzJDMTgwMDZBMjUxNyAvKiBCaXRtYXAuaCAqLywKIAkJCQkw
RjE2RDcyNDE0MkMzOUEyMDBDRjc4NEEgLyogQml0VmVjdG9yLmNwcCAqLywKIAkJCQkwRkQ4MkY0
OTE0MjgwNjkyMDAxNzlDOTQgLyogQml0VmVjdG9yLmggKi8sCi0JCQkJREQzNzdDQkIxMjA3MkMx
ODAwNkEyNTE3IC8qIEJpdG1hcC5oICovLAogCQkJCUE3QzQwQzA3MTMwQjA1N0QwMEQwMDJBMSAv
KiBCbG9ja1N0YWNrLmggKi8sCiAJCQkJRTREOENFOUIxMkZDNDJFMTAwQkM5RjVBIC8qIEJsb29t
RmlsdGVyLmggKi8sCiAJCQkJMEZEODJFODIxNDFGM0ZDOTAwMTc5Qzk0IC8qIEJvdW5kc0NoZWNr
ZWRQb2ludGVyLmggKi8sCkBAIC0xODk4LDYgKzE5MjUsNyBAQAogCQkJCTUxODYxMTFEMENDODI0
ODMwMDgxNDEyQiAvKiBEZXF1ZS5oICovLAogCQkJCTkzOEM0RjZCMENBMDZCQ0UwMEQ5MzEwQSAv
KiBEaXNhbGxvd0NUeXBlLmggKi8sCiAJCQkJMTQ0NTZBMzExMzE0NjU3ODAwMjEyQ0EzIC8qIERv
dWJseUxpbmtlZExpc3QuaCAqLywKKwkJCQlDMjJDNTI0ODEzRkFGNkVGMDBCN0RDMEQgLyogZHRv
YSAqLywKIAkJCQk2NTFGNjQxMjAzOUQ1QjVGMDA3ODM5NUMgLyogZHRvYS5jcHAgKi8sCiAJCQkJ
NjUxRjY0MTMwMzlENUI1RjAwNzgzOTVDIC8qIGR0b2EuaCAqLywKIAkJCQlENzVBRjU5NTEyRjhD
Qjk1MDBGQzBBREYgLyogRHluYW1pY0Fubm90YXRpb25zLmNwcCAqLywKQEAgLTE5MDcsNiArMTkz
NSw4IEBACiAJCQkJNjVFMjE3QjkwOEU3RUVDQzAwMjNFNUY2IC8qIEZhc3RNYWxsb2MuY3BwICov
LAogCQkJCTY1RTIxN0JBMDhFN0VFQ0MwMDIzRTVGNiAvKiBGYXN0TWFsbG9jLmggKi8sCiAJCQkJ
QTdGMTlFQ0QxMURENDkwOTAwOTMxRTcwIC8qIEZpeGVkQXJyYXkuaCAqLywKKwkJCQlBNzNCRTE1
OTE0ODQyMDUyMDA5MTIwNEIgLyogRmxvYXQzMkFycmF5LmggKi8sCisJCQkJQTczQkUxNUIxNDg0
MjA1MjAwOTEyMDRCIC8qIEZsb2F0NjRBcnJheS5oICovLAogCQkJCTkzNUFGNDY5MDlFOUQ5REIw
MEFDRDFEOCAvKiBGb3J3YXJkLmggKi8sCiAJCQkJOTNCNkEwREUwQUE2NERBNDAwNzZERTI3IC8q
IEdldFB0ci5oICovLAogCQkJCTY1N0VFQkJGMDk0RTQ0NUUwMDhDOUM3QiAvKiBIYXNoQ291bnRl
ZFNldC5oICovLApAQCAtMTkxOSw5ICsxOTQ5LDE0IEBACiAJCQkJNjVERkM5MkYwOEVBMTczQTAw
RjczMDBCIC8qIEhhc2hUcmFpdHMuaCAqLywKIAkJCQk3MTg2QTZFODEzMTAwQjU3MDA0NDc5RTEg
LyogSGV4TnVtYmVyLmggKi8sCiAJCQkJODY5OUFBNjAxNDZBMEUyQjAwRTIzQTczIC8qIElubGlu
ZUFTTS5oICovLAorCQkJCUE3M0JFMTVGMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQxNkFycmF5Lmgg
Ki8sCisJCQkJQTczQkUxNjExNDg0MjA1MjAwOTEyMDRCIC8qIEludDMyQXJyYXkuaCAqLywKKwkJ
CQlBNzNCRTE1RDE0ODQyMDUyMDA5MTIwNEIgLyogSW50OEFycmF5LmggKi8sCisJCQkJQTczQkUx
N0YxNDg0MjBBODAwOTEyMDRCIC8qIEludGVncmFsVHlwZWRBcnJheUJhc2UuaCAqLywKIAkJCQk2
NTdFQjc0NTBCNzA4RjU0MDA2MzQ2MUIgLyogTGlzdEhhc2hTZXQuaCAqLywKIAkJCQkxNDhBMTYy
NjA5NUQxNkJCMDA2NjZEMEQgLyogTGlzdFJlZlB0ci5oICovLAogCQkJCUUxRUU3OTI3MEQ2Qzk2
NDUwMEZFQTNCQSAvKiBMb2NrZXIuaCAqLywKKwkJCQkwNkQzNThBMDBEQUFEOUM0MDAzQjE3NEUg
LyogbWFjICovLAogCQkJCTA2RDM1OEEyMERBQUQ5QzQwMDNCMTc0RSAvKiBNYWluVGhyZWFkLmNw
cCAqLywKIAkJCQkwNkQzNThBMzBEQUFEOUM0MDAzQjE3NEUgLyogTWFpblRocmVhZC5oICovLAog
CQkJCTVEQkQxOEFGMEM1NDAxQTcwMEMxNUVBRSAvKiBNYWxsb2Nab25lU3VwcG9ydC5oICovLApA
QCAtMTk5MSw2ICsyMDI2LDcgQEAKIAkJCQk2NTQxQkQ2RjA4RTgwQTE3MDAyQ0JFRTcgLyogVENT
cGluTG9jay5oICovLAogCQkJCTY1NDFCRDcwMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1N5c3RlbUFs
bG9jLmNwcCAqLywKIAkJCQk2NTQxQkQ3MTA4RTgwQTE3MDAyQ0JFRTcgLyogVENTeXN0ZW1BbGxv
Yy5oICovLAorCQkJCTg2NTY1NzNFMTE1QkUzNTIwMDI5MUY0MCAvKiB0ZXh0ICovLAogCQkJCTE4
QkFCNTI3MTBEQURGQ0QwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmNw
cCAqLywKIAkJCQkxOEJBQjUyODEwREFERkNEMDAwRDk0NUIgLyogVGhyZWFkSWRlbnRpZmllckRh
dGFQdGhyZWFkcy5oICovLAogCQkJCTVENkE1NjZBMEYwNTk5NTUwMDI2NjE0NSAvKiBUaHJlYWRp
bmcuY3BwICovLApAQCAtMTk5OCwxMCArMjAzNCwxNiBAQAogCQkJCUJDNUY3QkJDMTE4MjNCNTkw
MDUyQzAyQyAvKiBUaHJlYWRpbmdQcmltaXRpdmVzLmggKi8sCiAJCQkJRTFFRTc5M0MwRDZDOUI5
MjAwRkVBM0JBIC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCAqLywKIAkJCQkwQkFDOTQ5RTEzMzg3
Mjg0MDBDRjEzNUIgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oICovLAorCQkJCTFBMDgy
Nzc2MTQyMTY4RDYwMDkwQ0NBQyAvKiB0aHJlYWRzICovLAogCQkJCUJDNUY3QkJEMTE4MjNCNTkw
MDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRlZC5oICovLAogCQkJCUUxQjdDOEJEMERBM0Ez
MzYwMDc0QjBEQyAvKiBUaHJlYWRTcGVjaWZpYy5oICovLAorCQkJCUE3M0JFMTdEMTQ4NDIwODQw
MDkxMjA0QiAvKiBUeXBlZEFycmF5QmFzZS5oICovLAogCQkJCTBCMzMwQzI2MEYzOEM2MjMwMDY5
MkRFMyAvKiBUeXBlVHJhaXRzLmNwcCAqLywKIAkJCQkwQjREN0U2MjBGMzE5QUM4MDBBRDdFNTgg
LyogVHlwZVRyYWl0cy5oICovLAorCQkJCUE3M0JFMTY1MTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50
MTZBcnJheS5oICovLAorCQkJCUE3M0JFMTY3MTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50MzJBcnJh
eS5oICovLAorCQkJCUE3M0JFMTYzMTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50OEFycmF5LmggKi8s
CisJCQkJRTE5NTY3OEQwOUU3Q0YxMjAwQjg5RDEzIC8qIHVuaWNvZGUgKi8sCiAJCQkJMEZENTJB
QUMxNDMwMzU5RDAwMjZEQzlGIC8qIFVuaW9uRmluZC5oICovLAogCQkJCTkzNUFGNDZCMDlFOUQ5
REIwMEFDRDFEOCAvKiBVbnVzZWRQYXJhbS5oICovLAogCQkJCUUxN0ZGNzcwMTEyMTMxRDIwMDA3
NkExOSAvKiBWYWx1ZUNoZWNrLmggKi8sCkBAIC0yOTIzLDYgKzI5NjUsMTggQEAKIAkJCQkwRjVG
MDhDRjE0NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTc4ODAxNDExNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0ZU1hdGguaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMkM1NTZGMTQ3MzhGMzEwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzNCRTE2OTE0ODQyMDUyMDA5MTIwNEIgLyogQXJyYXlC
dWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTZCMTQ4NDIwNTIwMDkxMjA0QiAvKiBB
cnJheUJ1ZmZlclZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTZEMTQ4NDIwNTIwMDkx
MjA0QiAvKiBGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTZGMTQ4NDIw
NTIwMDkxMjA0QiAvKiBGbG9hdDY0QXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTcx
MTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JF
MTczMTQ4NDIwNTIwMDkxMjA0QiAvKiBJbnQxNkFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NzNCRTE3NTE0ODQyMDUyMDA5MTIwNEIgLyogSW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTczQkUxNzcxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE3M0JFMTc5MTQ4NDIwNTIwMDkxMjA0QiAvKiBVaW50MTZBcnJheS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTczQkUxN0IxNDg0MjA1MjAwOTEyMDRCIC8qIFVpbnQzMkFycmF5LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNzNCRTE3RTE0ODQyMDg0MDA5MTIwNEIgLyogVHlwZWRBcnJheUJh
c2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3M0JFMTgwMTQ4NDIwQTgwMDkxMjA0QiAvKiBJbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM0NTgsNiArMzUxMiw4IEBA
CiAJCQkJMEZDMDk3QTExNDZCMjhDQTAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5Nzg4MDE0MDE0NzFBRDkyMDA0MUIwMTYgLyogSlNEYXRlTWF0aC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjJDNTU3MDE0NzM4RjM1MDAxMjFFNEYgLyogREZHQ29kZUJsb2Nr
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzNCRTE2ODE0ODQyMDUyMDA5MTIwNEIgLyogQXJy
YXlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTczQkUxNkExNDg0MjA1MjAwOTEyMDRC
IC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9BcnJheUJ1ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWViZTc0ZjRiMGQwNjJjYjIwMTgz
YTcwODBiNWNkNGE5ODMyYWU5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQXJyYXlCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKKworI2luY2x1ZGUgIkFy
cmF5QnVmZmVyVmlldy5oIgorCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2Jvb2wgQXJyYXlCdWZmZXI6OnRyYW5z
ZmVyKEFycmF5QnVmZmVyQ29udGVudHMmIHJlc3VsdCwgVmVjdG9yPEFycmF5QnVmZmVyVmlldyo+
JiBuZXV0ZXJlZFZpZXdzKQoreworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4ga2VlcEFsaXZlKHRo
aXMpOworCisgICAgaWYgKCFtX2NvbnRlbnRzLm1fZGF0YSkgeworICAgICAgICByZXN1bHQubV9k
YXRhID0gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1fY29udGVudHMu
dHJhbnNmZXIocmVzdWx0KTsKKworICAgIHdoaWxlIChtX2ZpcnN0VmlldykgeworICAgICAgICBB
cnJheUJ1ZmZlclZpZXcqIGN1cnJlbnQgPSBtX2ZpcnN0VmlldzsKKyAgICAgICAgcmVtb3ZlVmll
dyhjdXJyZW50KTsKKyAgICAgICAgY3VycmVudC0+bmV1dGVyKCk7CisgICAgICAgIG5ldXRlcmVk
Vmlld3MuYXBwZW5kKGN1cnJlbnQpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBBcnJheUJ1ZmZlcjo6YWRkVmlldyhBcnJheUJ1ZmZlclZpZXcqIHZpZXcpCit7CisgICAgdmll
dy0+bV9idWZmZXIgPSB0aGlzOworICAgIHZpZXctPm1fcHJldlZpZXcgPSAwOworICAgIHZpZXct
Pm1fbmV4dFZpZXcgPSBtX2ZpcnN0VmlldzsKKyAgICBpZiAobV9maXJzdFZpZXcpCisgICAgICAg
IG1fZmlyc3RWaWV3LT5tX3ByZXZWaWV3ID0gdmlldzsKKyAgICBtX2ZpcnN0VmlldyA9IHZpZXc7
Cit9CisKK3ZvaWQgQXJyYXlCdWZmZXI6OnJlbW92ZVZpZXcoQXJyYXlCdWZmZXJWaWV3KiB2aWV3
KQoreworICAgIEFTU0VSVCh0aGlzID09IHZpZXctPm1fYnVmZmVyKTsKKyAgICBpZiAodmlldy0+
bV9uZXh0VmlldykKKyAgICAgICAgdmlldy0+bV9uZXh0Vmlldy0+bV9wcmV2VmlldyA9IHZpZXct
Pm1fcHJldlZpZXc7CisgICAgaWYgKHZpZXctPm1fcHJldlZpZXcpCisgICAgICAgIHZpZXctPm1f
cHJldlZpZXctPm1fbmV4dFZpZXcgPSB2aWV3LT5tX25leHRWaWV3OworICAgIGlmIChtX2ZpcnN0
VmlldyA9PSB2aWV3KQorICAgICAgICBtX2ZpcnN0VmlldyA9IHZpZXctPm1fbmV4dFZpZXc7Cisg
ICAgdmlldy0+bV9wcmV2VmlldyA9IHZpZXctPm1fbmV4dFZpZXcgPSAwOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE5NmFhODZmNDUy
OWU1ZjIxYzRjOTBmM2I4MDlkNDU4ZGNhYzQ0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXIuaApAQCAtMCwwICsxLDIxOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgQXJyYXlCdWZmZXJfaAorI2RlZmluZSBBcnJheUJ1ZmZlcl9oCisKKyNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXVEYgeworCitjbGFzcyBBcnJheUJ1ZmZlcjsKK2NsYXNzIEFycmF5QnVmZmVyVmlldzsKKwor
Y2xhc3MgQXJyYXlCdWZmZXJDb250ZW50cyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXJy
YXlCdWZmZXJDb250ZW50cyk7CitwdWJsaWM6CisgICAgQXJyYXlCdWZmZXJDb250ZW50cygpIAor
ICAgICAgICA6IG1fZGF0YSgwKQorICAgICAgICAsIG1fc2l6ZUluQnl0ZXMoMCkKKyAgICB7IH0K
KworICAgIGlubGluZSB+QXJyYXlCdWZmZXJDb250ZW50cygpOworCisgICAgdm9pZCogZGF0YSgp
IHsgcmV0dXJuIG1fZGF0YTsgfQorICAgIHVuc2lnbmVkIHNpemVJbkJ5dGVzKCkgeyByZXR1cm4g
bV9zaXplSW5CeXRlczsgfQorCitwcml2YXRlOgorICAgIEFycmF5QnVmZmVyQ29udGVudHModm9p
ZCogZGF0YSwgdW5zaWduZWQgc2l6ZUluQnl0ZXMpIAorICAgICAgICA6IG1fZGF0YShkYXRhKQor
ICAgICAgICAsIG1fc2l6ZUluQnl0ZXMoc2l6ZUluQnl0ZXMpCisgICAgeyB9CisKKyAgICBmcmll
bmQgY2xhc3MgQXJyYXlCdWZmZXI7CisKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgdHJ5QWxsb2Nh
dGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSwgQXJyYXlC
dWZmZXJDb250ZW50cyYpOworICAgIHZvaWQgdHJhbnNmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYg
b3RoZXIpIAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFvdGhlci5tX2RhdGEpOworICAgICAgICBv
dGhlci5tX2RhdGEgPSBtX2RhdGE7CisgICAgICAgIG90aGVyLm1fc2l6ZUluQnl0ZXMgPSBtX3Np
emVJbkJ5dGVzOworICAgICAgICBtX2RhdGEgPSAwOyAKKyAgICAgICAgbV9zaXplSW5CeXRlcyA9
IDA7IAorICAgIH0KKworICAgIHZvaWQqIG1fZGF0YTsKKyAgICB1bnNpZ25lZCBtX3NpemVJbkJ5
dGVzOworfTsKKworY2xhc3MgQXJyYXlCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1
ZmZlcj4geworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gY3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0ZVNpemUp
OworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKEFycmF5
QnVmZmVyKik7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVh
dGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKKyAgICBzdGF0aWMg
aW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJheUJ1ZmZlckNvbnRlbnRz
Jik7CisKKyAgICBpbmxpbmUgdm9pZCogZGF0YSgpOworICAgIGlubGluZSBjb25zdCB2b2lkKiBk
YXRhKCkgY29uc3Q7CisgICAgaW5saW5lIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdDsKKwor
ICAgIGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBzbGljZShpbnQgYmVnaW4sIGludCBl
bmQpIGNvbnN0OworICAgIGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBzbGljZShpbnQg
YmVnaW4pIGNvbnN0OworCisgICAgdm9pZCBhZGRWaWV3KEFycmF5QnVmZmVyVmlldyopOworICAg
IHZvaWQgcmVtb3ZlVmlldyhBcnJheUJ1ZmZlclZpZXcqKTsKKworICAgIGJvb2wgdHJhbnNmZXIo
QXJyYXlCdWZmZXJDb250ZW50cyYsIFZlY3RvcjxBcnJheUJ1ZmZlclZpZXcqPiYgbmV1dGVyZWRW
aWV3cyk7CisKKyAgICB+QXJyYXlCdWZmZXIoKSB7IH0KKworcHJpdmF0ZToKKyAgICBpbmxpbmUg
QXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYpOworICAgIGlubGluZSBQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBzbGljZUltcGwodW5zaWduZWQgYmVnaW4sIHVuc2lnbmVkIGVuZCkgY29u
c3Q7CisgICAgaW5saW5lIHVuc2lnbmVkIGNsYW1wSW5kZXgoaW50IGluZGV4KSBjb25zdDsKKyAg
ICBzdGF0aWMgaW5saW5lIGludCBjbGFtcFZhbHVlKGludCB4LCBpbnQgbGVmdCwgaW50IHJpZ2h0
KTsKKworICAgIEFycmF5QnVmZmVyQ29udGVudHMgbV9jb250ZW50czsKKyAgICBBcnJheUJ1ZmZl
clZpZXcqIG1fZmlyc3RWaWV3OworfTsKKworaW50IEFycmF5QnVmZmVyOjpjbGFtcFZhbHVlKGlu
dCB4LCBpbnQgbGVmdCwgaW50IHJpZ2h0KQoreworICAgIEFTU0VSVChsZWZ0IDw9IHJpZ2h0KTsK
KyAgICBpZiAoeCA8IGxlZnQpCisgICAgICAgIHggPSBsZWZ0OworICAgIGlmIChyaWdodCA8IHgp
CisgICAgICAgIHggPSByaWdodDsKKyAgICByZXR1cm4geDsKK30KKworUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZSh1bnNpZ25lZCBudW1FbGVtZW50cywgdW5zaWdu
ZWQgZWxlbWVudEJ5dGVTaXplKQoreworICAgIEFycmF5QnVmZmVyQ29udGVudHMgY29udGVudHM7
CisgICAgQXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2NhdGUobnVtRWxlbWVudHMsIGVsZW1l
bnRCeXRlU2l6ZSwgY29udGVudHMpOworICAgIGlmICghY29udGVudHMubV9kYXRhKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFycmF5QnVmZmVyKGNvbnRlbnRz
KSk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoQXJy
YXlCdWZmZXIqIG90aGVyKQoreworICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKG90aGVy
LT5kYXRhKCksIG90aGVyLT5ieXRlTGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0
ZUxlbmd0aCkKK3sKKyAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIGNvbnRlbnRzOworICAgIEFycmF5
QnVmZmVyQ29udGVudHM6OnRyeUFsbG9jYXRlKGJ5dGVMZW5ndGgsIDEsIGNvbnRlbnRzKTsKKyAg
ICBpZiAoIWNvbnRlbnRzLm1fZGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIgPSBhZG9wdFJlZihuZXcgQXJyYXlCdWZmZXIoY29udGVudHMpKTsK
KyAgICBtZW1jcHkoYnVmZmVyLT5kYXRhKCksIHNvdXJjZSwgYnl0ZUxlbmd0aCk7CisgICAgcmV0
dXJuIGJ1ZmZlci5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5
QnVmZmVyOjpjcmVhdGUoQXJyYXlCdWZmZXJDb250ZW50cyYgY29udGVudHMpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBcnJheUJ1ZmZlcihjb250ZW50cykpOworfQorCitBcnJheUJ1ZmZl
cjo6QXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYgY29udGVudHMpCisgICAgOiBtX2Zp
cnN0VmlldygwKQoreworICAgIGNvbnRlbnRzLnRyYW5zZmVyKG1fY29udGVudHMpOworfQorCit2
b2lkKiBBcnJheUJ1ZmZlcjo6ZGF0YSgpCit7CisgICAgcmV0dXJuIG1fY29udGVudHMubV9kYXRh
OworfQorCitjb25zdCB2b2lkKiBBcnJheUJ1ZmZlcjo6ZGF0YSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY29udGVudHMubV9kYXRhOworfQorCit1bnNpZ25lZCBBcnJheUJ1ZmZlcjo6Ynl0ZUxl
bmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGVudHMubV9zaXplSW5CeXRlczsKK30K
KworUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OnNsaWNlKGludCBiZWdpbiwg
aW50IGVuZCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2xpY2VJbXBsKGNsYW1wSW5kZXgoYmVnaW4p
LCBjbGFtcEluZGV4KGVuZCkpOworfQorCitQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1
ZmZlcjo6c2xpY2UoaW50IGJlZ2luKSBjb25zdAoreworICAgIHJldHVybiBzbGljZUltcGwoY2xh
bXBJbmRleChiZWdpbiksIGJ5dGVMZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IEFycmF5QnVmZmVyOjpzbGljZUltcGwodW5zaWduZWQgYmVnaW4sIHVuc2lnbmVkIGVuZCkg
Y29uc3QKK3sKKyAgICB1bnNpZ25lZCBzaXplID0gYmVnaW4gPD0gZW5kID8gZW5kIC0gYmVnaW4g
OiAwOworICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihkYXRhKCkpICsgYmVnaW4sIHNpemUpOworfQorCit1bnNpZ25lZCBBcnJheUJ1ZmZlcjo6
Y2xhbXBJbmRleChpbnQgaW5kZXgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgY3VycmVudExlbmd0
aCA9IGJ5dGVMZW5ndGgoKTsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICBpbmRleCA9IGN1
cnJlbnRMZW5ndGggKyBpbmRleDsKKyAgICByZXR1cm4gY2xhbXBWYWx1ZShpbmRleCwgMCwgY3Vy
cmVudExlbmd0aCk7Cit9CisKK3ZvaWQgQXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2NhdGUo
dW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSwgQXJyYXlCdWZm
ZXJDb250ZW50cyYgcmVzdWx0KQoreworICAgIC8vIERvIG5vdCBhbGxvdyAzMi1iaXQgb3ZlcmZs
b3cgb2YgdGhlIHRvdGFsIHNpemUuCisgICAgLy8gRklYTUU6IFdoeSBub3Q/IFRoZSB0cnlGYXN0
Q2FsbG9jIGZ1bmN0aW9uIGFscmVhZHkgY2hlY2tzIGl0cyBhcmd1bWVudHMsCisgICAgLy8gYW5k
IHdpbGwgZmFpbCBpZiB0aGVyZSBpcyBhbnkgb3ZlcmZsb3csIHNvIHdoeSBzaG91bGQgd2UgaW5j
bHVkZSBhCisgICAgLy8gcmVkdWRhbnQgdW5uZWNlc3NhcmlseSByZXN0cmljdGl2ZSBjaGVjayBo
ZXJlPworICAgIGlmIChudW1FbGVtZW50cykgeworICAgICAgICB1bnNpZ25lZCB0b3RhbFNpemUg
PSBudW1FbGVtZW50cyAqIGVsZW1lbnRCeXRlU2l6ZTsKKyAgICAgICAgaWYgKHRvdGFsU2l6ZSAv
IG51bUVsZW1lbnRzICE9IGVsZW1lbnRCeXRlU2l6ZSkgeworICAgICAgICAgICAgcmVzdWx0Lm1f
ZGF0YSA9IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgaWYg
KFdURjo6dHJ5RmFzdENhbGxvYyhudW1FbGVtZW50cywgZWxlbWVudEJ5dGVTaXplKS5nZXRWYWx1
ZShyZXN1bHQubV9kYXRhKSkgeworICAgICAgICByZXN1bHQubV9zaXplSW5CeXRlcyA9IG51bUVs
ZW1lbnRzICogZWxlbWVudEJ5dGVTaXplOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJl
c3VsdC5tX2RhdGEgPSAwOworfQorCitBcnJheUJ1ZmZlckNvbnRlbnRzOjp+QXJyYXlCdWZmZXJD
b250ZW50cygpCit7CisgICAgV1RGOjpmYXN0RnJlZShtX2RhdGEpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXVEYKKwordXNpbmcgV1RGOjpBcnJheUJ1ZmZlcjsKKworI2VuZGlmIC8vIEFycmF5QnVm
ZmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJW
aWV3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXJyYXlCdWZmZXJWaWV3LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42N2RiZGNmOGM2NWFmNmRlOWM4NjUzMTY2NGNhNjE1YjliOTM3ODAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BcnJheUJ1ZmZlclZpZXcu
Y3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCisKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgorCitu
YW1lc3BhY2UgV1RGIHsKKworQXJyYXlCdWZmZXJWaWV3OjpBcnJheUJ1ZmZlclZpZXcoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBieXRlT2Zmc2V0KQorICAgICAgICA6IG1fYnl0ZU9mZnNldChieXRlT2Zmc2V0KQorICAgICAg
ICAsIG1fYnVmZmVyKGJ1ZmZlcikKK3sKKyAgICBtX2Jhc2VBZGRyZXNzID0gbV9idWZmZXIgPyAo
c3RhdGljX2Nhc3Q8Y2hhcio+KG1fYnVmZmVyLT5kYXRhKCkpICsgbV9ieXRlT2Zmc2V0KSA6IDA7
CisgICAgaWYgKG1fYnVmZmVyKSAKKyAgICAgICAgbV9idWZmZXItPmFkZFZpZXcodGhpcyk7Cit9
CisKK0FycmF5QnVmZmVyVmlldzo6fkFycmF5QnVmZmVyVmlldygpCit7CisgICAgaWYgKG1fYnVm
ZmVyKQorICAgICAgICBtX2J1ZmZlci0+cmVtb3ZlVmlldyh0aGlzKTsKK30KKwordm9pZCBBcnJh
eUJ1ZmZlclZpZXc6Om5ldXRlcigpCit7CisgICAgbV9idWZmZXIgPSAwOworICAgIG1fYnl0ZU9m
ZnNldCA9IDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
QXJyYXlCdWZmZXJWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVmZmVy
Vmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNjYjdmZDM0ODk5YTVjZWNhYWMxMDUwNTkxODFkNjkzMTE5MmQ0
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FycmF5QnVm
ZmVyVmlldy5oCkBAIC0wLDAgKzEsMTk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcnJheUJ1ZmZl
clZpZXdfaAorI2RlZmluZSBBcnJheUJ1ZmZlclZpZXdfaAorCisjaW5jbHVkZSAiQXJyYXlCdWZm
ZXIuaCIKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQXJyYXlCdWZm
ZXJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXJWaWV3PiB7CisgIHB1YmxpYzoK
KyAgICB2aXJ0dWFsIGJvb2wgaXNCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZFNob3J0QXJyYXkoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0ludEFycmF5KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGbG9hdEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEb3VibGVBcnJheSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorCisgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2J1ZmZlcjsKKyAgICB9CisKKyAgICB2b2lk
KiBiYXNlQWRkcmVzcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9iYXNlQWRkcmVz
czsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0KCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2J5dGVPZmZzZXQ7CisgICAgfQorCisgICAgdmlydHVhbCB1bnNpZ25lZCBi
eXRlTGVuZ3RoKCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB+QXJyYXlCdWZmZXJWaWV3KCk7
CisKKyAgcHJvdGVjdGVkOgorICAgIEFycmF5QnVmZmVyVmlldyhQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCk7CisKKyAgICBpbmxpbmUgYm9vbCBzZXRJbXBsKEFy
cmF5QnVmZmVyVmlldyosIHVuc2lnbmVkIGJ5dGVPZmZzZXQpOworCisgICAgaW5saW5lIGJvb2wg
c2V0UmFuZ2VJbXBsKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhQnl0ZUxlbmd0aCwgdW5z
aWduZWQgYnl0ZU9mZnNldCk7CisKKyAgICBpbmxpbmUgYm9vbCB6ZXJvUmFuZ2VJbXBsKHVuc2ln
bmVkIGJ5dGVPZmZzZXQsIHNpemVfdCByYW5nZUJ5dGVMZW5ndGgpOworCisgICAgc3RhdGljIGlu
bGluZSB2b2lkIGNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChpbnQgc3RhcnQsIGludCBlbmQsIHVu
c2lnbmVkIGFycmF5U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQqIG9mZnNldCwgdW5zaWduZWQqIGxlbmd0aCk7CisKKyAgICAvLyBIZWxwZXIg
dG8gdmVyaWZ5IHRoYXQgYSBnaXZlbiBzdWItcmFuZ2Ugb2YgYW4gQXJyYXlCdWZmZXIgaXMKKyAg
ICAvLyB3aXRoaW4gcmFuZ2UuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RhdGlj
IGJvb2wgdmVyaWZ5U3ViUmFuZ2UoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtRWxlbWVudHMpCisgICAgeworICAg
ICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KHNpemVvZihUKSA+IDEgJiYgYnl0ZU9mZnNldCAlIHNpemVvZihUKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGJ5dGVPZmZzZXQgPiBidWZmZXItPmJ5dGVMZW5ndGgo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdW5zaWduZWQgcmVtYWluaW5n
RWxlbWVudHMgPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBieXRlT2Zmc2V0KSAvIHNpemVvZihU
KTsKKyAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gcmVtYWluaW5nRWxlbWVudHMpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8v
IElucHV0IG9mZnNldCBpcyBpbiBudW1iZXIgb2YgZWxlbWVudHMgZnJvbSB0aGlzIGFycmF5J3Mg
dmlldzsKKyAgICAvLyBvdXRwdXQgb2Zmc2V0IGlzIGluIG51bWJlciBvZiBieXRlcyBmcm9tIHRo
ZSB1bmRlcmx5aW5nIGJ1ZmZlcidzIHZpZXcuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisg
ICAgc3RhdGljIHZvaWQgY2xhbXBPZmZzZXRBbmROdW1FbGVtZW50cyhQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBhcnJheUJ5dGVPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCAqb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKm51bUVsZW1lbnRzKQorICAgIHsKKyAgICAgICAg
dW5zaWduZWQgbWF4T2Zmc2V0ID0gKFVJTlRfTUFYIC0gYXJyYXlCeXRlT2Zmc2V0KSAvIHNpemVv
ZihUKTsKKyAgICAgICAgaWYgKCpvZmZzZXQgPiBtYXhPZmZzZXQpIHsKKyAgICAgICAgICAgICpv
ZmZzZXQgPSBidWZmZXItPmJ5dGVMZW5ndGgoKTsKKyAgICAgICAgICAgICpudW1FbGVtZW50cyA9
IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgKm9mZnNldCA9IGFy
cmF5Qnl0ZU9mZnNldCArICpvZmZzZXQgKiBzaXplb2YoVCk7CisgICAgICAgICpvZmZzZXQgPSBz
dGQ6Om1pbihidWZmZXItPmJ5dGVMZW5ndGgoKSwgKm9mZnNldCk7CisgICAgICAgIHVuc2lnbmVk
IHJlbWFpbmluZ0VsZW1lbnRzID0gKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gKm9mZnNldCkgLyBz
aXplb2YoVCk7CisgICAgICAgICpudW1FbGVtZW50cyA9IHN0ZDo6bWluKHJlbWFpbmluZ0VsZW1l
bnRzLCAqbnVtRWxlbWVudHMpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBuZXV0ZXIoKTsK
KworICAgIC8vIFRoaXMgaXMgdGhlIGFkZHJlc3Mgb2YgdGhlIEFycmF5QnVmZmVyJ3Mgc3RvcmFn
ZSwgcGx1cyB0aGUgYnl0ZSBvZmZzZXQuCisgICAgdm9pZCogbV9iYXNlQWRkcmVzczsKKworICAg
IHVuc2lnbmVkIG1fYnl0ZU9mZnNldDsKKworICBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBB
cnJheUJ1ZmZlcjsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1fYnVmZmVyOworICAgIEFycmF5
QnVmZmVyVmlldyogbV9wcmV2VmlldzsKKyAgICBBcnJheUJ1ZmZlclZpZXcqIG1fbmV4dFZpZXc7
Cit9OworCitib29sIEFycmF5QnVmZmVyVmlldzo6c2V0SW1wbChBcnJheUJ1ZmZlclZpZXcqIGFy
cmF5LCB1bnNpZ25lZCBieXRlT2Zmc2V0KQoreworICAgIGlmIChieXRlT2Zmc2V0ID4gYnl0ZUxl
bmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBhcnJheS0+Ynl0ZUxlbmd0aCgpID4gYnl0
ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBhcnJheS0+Ynl0ZUxlbmd0aCgpIDwg
Ynl0ZU9mZnNldCkgeworICAgICAgICAvLyBPdXQgb2YgcmFuZ2Ugb2Zmc2V0IG9yIG92ZXJmbG93
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgY2hhciogYmFzZSA9IHN0
YXRpY19jYXN0PGNoYXIqPihiYXNlQWRkcmVzcygpKTsKKyAgICBtZW1tb3ZlKGJhc2UgKyBieXRl
T2Zmc2V0LCBhcnJheS0+YmFzZUFkZHJlc3MoKSwgYXJyYXktPmJ5dGVMZW5ndGgoKSk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQXJyYXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNpZ25lZCBieXRlT2Zmc2V0
KQoreworICAgIGlmIChieXRlT2Zmc2V0ID4gYnl0ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVP
ZmZzZXQgKyBkYXRhQnl0ZUxlbmd0aCA+IGJ5dGVMZW5ndGgoKQorICAgICAgICB8fCBieXRlT2Zm
c2V0ICsgZGF0YUJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7CisgICAgICAgIC8vIE91dCBvZiBy
YW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICAKKyAgICBjaGFyKiBiYXNlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwor
ICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZzZXQsIGRhdGEsIGRhdGFCeXRlTGVuZ3RoKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBBcnJheUJ1ZmZlclZpZXc6Onplcm9SYW5nZUltcGwo
dW5zaWduZWQgYnl0ZU9mZnNldCwgc2l6ZV90IHJhbmdlQnl0ZUxlbmd0aCkKK3sKKyAgICBpZiAo
Ynl0ZU9mZnNldCA+IGJ5dGVMZW5ndGgoKQorICAgICAgICB8fCBieXRlT2Zmc2V0ICsgcmFuZ2VC
eXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCisgICAgICAgIHx8IGJ5dGVPZmZzZXQgKyByYW5nZUJ5
dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7CisgICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQg
b3Igb3ZlcmZsb3cKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBjaGFy
KiBiYXNlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOworICAgIG1lbXNldChi
YXNlICsgYnl0ZU9mZnNldCwgMCwgcmFuZ2VCeXRlTGVuZ3RoKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBBcnJheUJ1ZmZlclZpZXc6OmNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChpbnQg
c3RhcnQsIGludCBlbmQsIHVuc2lnbmVkIGFycmF5U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIG9mZnNldCwgdW5zaWduZWQqIGxl
bmd0aCkKK3sKKyAgICBpZiAoc3RhcnQgPCAwKQorICAgICAgICBzdGFydCArPSBhcnJheVNpemU7
CisgICAgaWYgKHN0YXJ0IDwgMCkKKyAgICAgICAgc3RhcnQgPSAwOworICAgIGlmIChlbmQgPCAw
KQorICAgICAgICBlbmQgKz0gYXJyYXlTaXplOworICAgIGlmIChlbmQgPCAwKQorICAgICAgICBl
bmQgPSAwOworICAgIGlmIChlbmQgPCBzdGFydCkKKyAgICAgICAgZW5kID0gc3RhcnQ7CisgICAg
Km9mZnNldCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdGFydCk7CisgICAgKmxlbmd0aCA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBzdGFydCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCit1c2luZyBXVEY6OkFycmF5QnVmZmVyVmlldzsKKworI2VuZGlmIC8vIEFycmF5QnVmZmVy
Vmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwOGI0
ZGE1OGY4ZGE5MTA0NmJjYWE0MWE1NzgzMWEwYjFhMzJkNzQ2Li42ZDFjZWU4OTlmOGMxMjBjZGE3
MzU3MDBiMDkxNGU2OTI4ODI1ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VM
aXN0cy50eHQKQEAgLTMsNiArMyw4IEBAIFNFVChXVEZfSEVBREVSUwogICAgIEFWTFRyZWUuaAog
ICAgIEFsaWdubWVudC5oCiAgICAgQWx3YXlzSW5saW5lLmgKKyAgICBBcnJheUJ1ZmZlci5jcHAK
KyAgICBBcnJheUJ1ZmZlclZpZXcuY3BwCiAgICAgQXNzZXJ0aW9ucy5oCiAgICAgQXRvbWljcy5o
CiAgICAgQml0VmVjdG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RmxvYXQzMkFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Zsb2F0MzJBcnJheS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzMGE3NjhhYWNlNjFkNGQwNzEwYzhhYTdiZjEwNjliYTk1MDRmNmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Zsb2F0MzJBcnJheS5o
CkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZsb2F0MzJBcnJheV9oCisjZGVm
aW5lIEZsb2F0MzJBcnJheV9oCisKKyNpbmNsdWRlICJUeXBlZEFycmF5QmFzZS5oIgorI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBGbG9hdDMy
QXJyYXkgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3Ro
KTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBjcmVhdGUoY29u
c3QgZmxvYXQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAgIC8vIENhbuKAmXQgdXNl
ICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCisgICAgYm9v
bCBzZXQoVHlwZWRBcnJheUJhc2U8ZmxvYXQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJl
dHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OnNldChhcnJheSwgb2Zmc2V0KTsgfQorCisgICAg
dm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlm
IChpbmRleCA+PSBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3RoKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmRhdGEoKVtpbmRleF0gPSBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpOworICAgIH0KKworICAgIC8vIEludm9rZWQgYnkgdGhl
IGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCisg
ICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVk
IGFzIG5lY2Vzc2FyeS4KKyAgICBmbG9hdCBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjptX2xlbmd0
aCk7CisgICAgICAgIGZsb2F0IHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgp
W2luZGV4XTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBpbmxpbmUgUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5s
aW5lIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQp
IGNvbnN0OworCitwcml2YXRlOgorICAgIGlubGluZSBGbG9hdDMyQXJyYXkoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCisg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgLy8gTWFrZSBjb25zdHJ1
Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCisgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlC
YXNlPGZsb2F0PjsKKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCisg
ICAgdmlydHVhbCBib29sIGlzRmxvYXRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK307
CisKK1Bhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh1bnNpZ25l
ZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6Y3JlYXRlPEZs
b2F0MzJBcnJheT4obGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0
MzJBcnJheTo6Y3JlYXRlKGNvbnN0IGZsb2F0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQorewor
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmNyZWF0ZTxGbG9hdDMyQXJyYXk+KGFy
cmF5LCBsZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5
OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6Y3JlYXRlPEZsb2F0MzJBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOworfQor
CitGbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICA6IFR5cGVkQXJy
YXlCYXNlPGZsb2F0PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sKK30KKworUGFzc1Jl
ZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dAoreworICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBl
bmQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5SW1wbDxGbG9hdDMyQXJyYXk+KHN0YXJ0
LCBlbmQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpGbG9hdDMyQXJy
YXk7CisKKyNlbmRpZiAvLyBGbG9hdDMyQXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9GbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RmxvYXQ2NEFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY3MTM1NTZjYTY5ZWJhYjNiYzY1MTBlMThiOGNi
MWQ2N2ZkZjQzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RmxvYXQ2NEFycmF5LmgKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGbG9hdDY0
QXJyYXlfaAorI2RlZmluZSBGbG9hdDY0QXJyYXlfaAorCisjaW5jbHVkZSAiVHlwZWRBcnJheUJh
c2UuaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV1RGIHsKKwor
Y2xhc3MgRmxvYXQ2NEFycmF5IDogcHVibGljIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT4geworcHVi
bGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IGNyZWF0ZSh1
bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJy
YXk+IGNyZWF0ZShjb25zdCBkb3VibGUqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0
YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAg
IC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhlIFJWQ1QgY29t
cGlsZXIuCisgICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8ZG91YmxlPiogYXJyYXksIHVuc2ln
bmVkIG9mZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6c2V0KGFycmF5LCBv
ZmZzZXQpOyB9CisKKyAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVu
Z3RoKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBUeXBlZEFycmF5QmFzZTxkb3VibGU+
OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7CisgICAgfQorCisg
ICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFu
Z2UgY2hlY2tzOyBjYWxsZXIKKyAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5k
IHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgorICAgIGRvdWJsZSBpdGVtKHVuc2ln
bmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJh
eUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpOworICAgICAgICBkb3VibGUgcmVzdWx0ID0gVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IHN1YmFycmF5KGlu
dCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OworCitwcml2YXRlOgorICAgIGlubGluZSBG
bG9hdDY0QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7Cisg
ICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCisgICAgZnJpZW5k
IGNsYXNzIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT47CisKKyAgICAvLyBPdmVycmlkZGVuIGZyb20g
QXJyYXlCdWZmZXJWaWV3LgorICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorfTsKKworUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRB
cnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJh
c2U8ZG91YmxlPjo6Y3JlYXRlPEZsb2F0NjRBcnJheT4obGVuZ3RoKTsKK30KKworUGFzc1JlZlB0
cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKGNvbnN0IGRvdWJsZSogYXJyYXks
IHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6
Y3JlYXRlPEZsb2F0NjRBcnJheT4oYXJyYXksIGxlbmd0aCk7Cit9CisKK1Bhc3NSZWZQdHI8Rmxv
YXQ2NEFycmF5PiBGbG9hdDY0QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1
cm4gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6Y3JlYXRlPEZsb2F0NjRBcnJheT4oYnVmZmVyLCBi
eXRlT2Zmc2V0LCBsZW5ndGgpOworfQorCitGbG9hdDY0QXJyYXk6OkZsb2F0NjRBcnJheShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCkKKyAgICA6IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT4oYnVmZmVyLCBieXRlT2Zmc2V0
LCBsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBGbG9hdDY0QXJyYXk6
OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQs
IGxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6
c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAoreworICAgIHJldHVybiBzdWJhcnJh
eUltcGw8RmxvYXQ2NEFycmF5PihzdGFydCwgZW5kKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RG
CisKK3VzaW5nIFdURjo6RmxvYXQ2NEFycmF5OworCisjZW5kaWYgLy8gRmxvYXQ2NEFycmF5X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50MTZBcnJheS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnQxNkFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRhNTJkZTkw
NzJiMmUzYjk2NTY0ZWI1ZWU3OTZlZjdmMGQ1YzUwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50MTZBcnJheS5oCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIEludDE2QXJyYXlfaAorI2RlZmluZSBJbnQxNkFycmF5X2gKKworI2luY2x1
ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNz
IEFycmF5QnVmZmVyOworCitjbGFzcyBJbnQxNkFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRB
cnJheUJhc2U8c2hvcnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8
SW50MTZBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQ
YXNzUmVmUHRyPEludDE2QXJyYXk+IGNyZWF0ZShzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0
aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IGNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
KTsKKworICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUgdG8gYSBidWcgaW4gdGhl
IFJWQ1QgY29tcGlsZXIuCisgICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8c2hvcnQ+KiBhcnJh
eSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OnNldChh
cnJheSwgb2Zmc2V0KTsgfQorICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFs
dWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaG9ydD46OnNldChpbmRleCwgdmFsdWUpOyB9
CisKKyAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQp
IGNvbnN0OworICAgIGlubGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBz
dGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgaW5saW5lIEludDE2QXJyYXko
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgLy8g
TWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCisgICAgZnJpZW5kIGNsYXNz
IFR5cGVkQXJyYXlCYXNlPHNob3J0PjsKKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1
ZmZlclZpZXcuCisgICAgdmlydHVhbCBib29sIGlzU2hvcnRBcnJheSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KK307CisKK1Bhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2hvcnQ+Ojpj
cmVhdGU8SW50MTZBcnJheT4obGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJ
bnQxNkFycmF5OjpjcmVhdGUoc2hvcnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAg
cmV0dXJuIFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6Y3JlYXRlPEludDE2QXJyYXk+KGFycmF5LCBs
ZW5ndGgpOworfQorCitQYXNzUmVmUHRyPEludDE2QXJyYXk+IEludDE2QXJyYXk6OmNyZWF0ZShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2hvcnQ+OjpjcmVhdGU8
SW50MTZBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOworfQorCitJbnQxNkFycmF5
OjpJbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxz
aG9ydD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW50
MTZBcnJheT4gSW50MTZBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAoreworICAgIHJl
dHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPEludDE2QXJy
YXk+IEludDE2QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gc3ViYXJyYXlJbXBsPEludDE2QXJyYXk+KHN0YXJ0LCBlbmQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpJbnQxNkFycmF5OworCisjZW5kaWYgLy8gSW50
MTZBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludDMyQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50MzJBcnJheS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBiNjE0NTdiM2FiMTZiMDM0NWY2NmM1ZjlkY2IyNzVhMmVjNjVhODUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludDMyQXJyYXkuaApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEludDMyQXJyYXlfaAorI2RlZmluZSBJbnQzMkFycmF5X2gK
KworI2luY2x1ZGUgIkludGVncmFsVHlwZWRBcnJheUJhc2UuaCIKKworbmFtZXNwYWNlIFdURiB7
CisKK2NsYXNzIEludDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gY3Jl
YXRlKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEludDMy
QXJyYXk+IGNyZWF0ZShpbnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAgICAvLyBDYW7i
gJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNvbXBpbGVyLgor
ICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPGludD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQp
IHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OnNldChhcnJheSwgb2Zmc2V0KTsgfQorICAg
IHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFy
cmF5QmFzZTxpbnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQorCisgICAgaW5saW5lIFBhc3NSZWZQ
dHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBpbmxpbmUgUGFz
c1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIGlubGluZSBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKKyAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCisgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGludD47CisKKyAg
ICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgorICAgIHZpcnR1YWwgYm9vbCBp
c0ludEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworUGFzc1JlZlB0cjxJbnQz
MkFycmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVy
biBUeXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8SW50MzJBcnJheT4obGVuZ3RoKTsKK30KKwor
UGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5OjpjcmVhdGUoaW50KiBhcnJheSwgdW5z
aWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8
SW50MzJBcnJheT4oYXJyYXksIGxlbmd0aCk7Cit9CisKK1Bhc3NSZWZQdHI8SW50MzJBcnJheT4g
SW50MzJBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxpbnQ+OjpjcmVhdGU8SW50MzJBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgp
OworfQorCitJbnQzMkFycmF5OjpJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIDogSW50ZWdy
YWxUeXBlZEFycmF5QmFzZTxpbnQ+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQoreworfQor
CitQYXNzUmVmUHRyPEludDMyQXJyYXk+IEludDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKK30KKworUGFz
c1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBl
bmQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5SW1wbDxJbnQzMkFycmF5PihzdGFydCwg
ZW5kKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6SW50MzJBcnJheTsK
KworI2VuZGlmIC8vIEludDMyQXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9JbnQ4QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50OEFycmF5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmRiN2I2ODk5YmM5YmJjMGY4NmVjMTNjMjVmZTJmYWI3ZmFhY2QwNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSW50OEFycmF5LmgK
QEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnQ4QXJyYXlfaAorI2RlZmluZSBJ
bnQ4QXJyYXlfaAorCisjaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgorCituYW1l
c3BhY2UgV1RGIHsKKworY2xhc3MgQXJyYXlCdWZmZXI7CisKK2NsYXNzIEludDhBcnJheSA6IHB1
YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPiB7CitwdWJsaWM6CisgICAg
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0
aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4gY3JlYXRlKHNpZ25l
ZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NS
ZWZQdHI8SW50OEFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAgICAvLyBDYW7igJl0IHVzZSAidXNp
bmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNvbXBpbGVyLgorICAgIGJvb2wgc2V0
KFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyBy
ZXR1cm4gVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0K
KyAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlw
ZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQorCisgICAgaW5s
aW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OworICAg
IGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBpbmxpbmUgSW50OEFycmF5KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+LAorICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCisgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICAvLyBNYWtlIGNvbnN0cnVjdG9y
IHZpc2libGUgdG8gc3VwZXJjbGFzcy4KKyAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8
c2lnbmVkIGNoYXI+OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4K
KyAgICB2aXJ0dWFsIGJvb2wgaXNCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cit9
OworCitQYXNzUmVmUHRyPEludDhBcnJheT4gSW50OEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJ
bnQ4QXJyYXk+KGxlbmd0aCk7Cit9CisKK1Bhc3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6
OmNyZWF0ZShzaWduZWQgY2hhciogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1
cm4gVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+OjpjcmVhdGU8SW50OEFycmF5PihhcnJheSwg
bGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWdu
ZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OmNy
ZWF0ZTxJbnQ4QXJyYXk+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKK30KKworSW50OEFy
cmF5OjpJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBi
eXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
PHNpZ25lZCBjaGFyPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKK3sKK30KKworUGFzc1Jl
ZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAorewor
ICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPElu
dDhBcnJheT4gSW50OEFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHN1YmFycmF5SW1wbDxJbnQ4QXJyYXk+KHN0YXJ0LCBlbmQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpJbnQ4QXJyYXk7CisKKyNlbmRpZiAvLyBJ
bnQ4QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9JbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0ludGVncmFsVHlw
ZWRBcnJheUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGY4MmEzNjFjNmVmZWI2YzQ2YWNjZDc0NWMzMTU3
YjJlMDIyM2YxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9J
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgSW50ZWdyYWxUeXBlZEFycmF5QmFzZV9oCisjZGVmaW5lIEludGVncmFsVHlwZWRBcnJheUJh
c2VfaAorCisjaW5jbHVkZSAiVHlwZWRBcnJheUJhc2UuaCIKKyNpbmNsdWRlIDxsaW1pdHM+Cisj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKworLy8gQmFzZSBjbGFzcyBmb3IgYWxsIFdlYkdM
PFQ+QXJyYXkgdHlwZXMgaG9sZGluZyBpbnRlZ3JhbAorLy8gKG5vbi1mbG9hdGluZy1wb2ludCkg
dmFsdWVzLgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFz
cyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJyYXlCYXNlPFQ+IHsKKyAg
cHVibGljOgorICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCisgICAg
eworICAgICAgICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoaXNuYW4odmFsdWUpKSAvLyBDbGFtcCBOYU4g
dG8gMAorICAgICAgICAgICAgdmFsdWUgPSAwOworICAgICAgICAvLyBUaGUgZG91YmxlIGNhc3Qg
aXMgbmVjZXNzYXJ5IHRvIGdldCB0aGUgY29ycmVjdCB3cmFwcGluZworICAgICAgICAvLyBmb3Ig
b3V0LW9mLXJhbmdlIHZhbHVlcyB3aXRoIEludDMyQXJyYXkgYW5kIFVpbnQzMkFycmF5LgorICAg
ICAgICBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PFQ+KHN0
YXRpY19jYXN0PGludDY0X3Q+KHZhbHVlKSk7CisgICAgfQorCisgICAgLy8gSW52b2tlZCBieSB0
aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIK
KyAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmlu
ZWQgYXMgbmVjZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisK
KyAgcHJvdGVjdGVkOgorICAgIEludGVncmFsVHlwZWRBcnJheUJhc2UoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisg
ICAgICAgIDogVHlwZWRBcnJheUJhc2U8VD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCisg
ICAgeworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkludGVn
cmFsVHlwZWRBcnJheUJhc2U7CisKKyNlbmRpZiAvLyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZWRBcnJheUJhc2UuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZWRBcnJheUJhc2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZTMwYzE3YzI4NmNjNmZlYjgzZTVmNTM2NWI5NTM3MjZmM2YxOTRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlZEFycmF5QmFzZS5oCkBAIC0wLDAgKzEs
MTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBlZEFycmF5QmFzZV9oCisjZGVmaW5lIFR5cGVk
QXJyYXlCYXNlX2gKKworI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisjaW5jbHVkZSAiQXJyYXlC
dWZmZXJWaWV3LmgiCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
K2NsYXNzIFR5cGVkQXJyYXlCYXNlIDogcHVibGljIEFycmF5QnVmZmVyVmlldyB7CisgIHB1Ymxp
YzoKKyAgICBUKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KGJhc2VBZGRy
ZXNzKCkpOyB9CisKKyAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTxUPiogYXJyYXksIHVuc2ln
bmVkIG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBzZXRJbXBsKGFycmF5LCBvZmZzZXQg
KiBzaXplb2YoVCkpOworICAgIH0KKworICAgIGJvb2wgc2V0UmFuZ2UoY29uc3QgVCogZGF0YSwg
c2l6ZV90IGRhdGFMZW5ndGgsIHVuc2lnbmVkIG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVy
biBzZXRSYW5nZUltcGwocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGRhdGFM
ZW5ndGggKiBzaXplb2YoVCksIG9mZnNldCAqIHNpemVvZihUKSk7CisgICAgfQorCisgICAgYm9v
bCB6ZXJvUmFuZ2UodW5zaWduZWQgb2Zmc2V0LCBzaXplX3QgbGVuZ3RoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHplcm9SYW5nZUltcGwob2Zmc2V0ICogc2l6ZW9mKFQpLCBsZW5ndGggKiBzaXpl
b2YoVCkpOworICAgIH0KKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcu
IFRoaXMgbXVzdCBiZSBwdWJsaWMgYmVjYXVzZSBvZgorICAgIC8vIHJ1bGVzIGFib3V0IGluaGVy
aXRhbmNlIG9mIG1lbWJlcnMgaW4gdGVtcGxhdGUgY2xhc3NlcywgYW5kCisgICAgLy8gYmVjYXVz
ZSBpdCBpcyBhY2Nlc3NlZCB2aWEgcG9pbnRlcnMgdG8gc3ViY2xhc3Nlcy4KKyAgICB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGVuZ3RoOworICAgIH0K
KworICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9sZW5ndGggKiBzaXplb2YoVCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
VHlwZWRBcnJheUJhc2UoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBi
eXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgICAgIDogQXJyYXlCdWZmZXJWaWV3KGJ1
ZmZlciwgYnl0ZU9mZnNldCkKKyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgeworICAg
IH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdWJjbGFzcz4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKKyAgICB7CisgICAgICAgIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShsZW5ndGgsIHNpemVv
ZihUKSk7CisgICAgICAgIGlmICghYnVmZmVyLmdldCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBjcmVhdGU8U3ViY2xhc3M+KGJ1ZmZlciwgMCwgbGVuZ3RoKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3ViY2xhc3M+IGNyZWF0ZShjb25zdCBUKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQorICAg
IHsKKyAgICAgICAgUmVmUHRyPFN1YmNsYXNzPiBhID0gY3JlYXRlPFN1YmNsYXNzPihsZW5ndGgp
OworICAgICAgICBpZiAoYSkKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBhLT5zZXQoaSwgYXJyYXlbaV0pOworICAgICAg
ICByZXR1cm4gYTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3ViY2xhc3M+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBieXRlT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWYoYnVm
ZmVyKTsKKyAgICAgICAgaWYgKCF2ZXJpZnlTdWJSYW5nZTxUPihidWYsIGJ5dGVPZmZzZXQsIGxl
bmd0aCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFN1YmNsYXNzKGJ1ZiwgYnl0ZU9mZnNldCwgbGVuZ3RoKSk7CisgICAgfQorCisgICAgdGVt
cGxhdGUgPGNsYXNzIFN1YmNsYXNzPgorICAgIFBhc3NSZWZQdHI8U3ViY2xhc3M+IHN1YmFycmF5
SW1wbChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CisgICAgeworICAgICAgICB1bnNpZ25lZCBv
ZmZzZXQsIGxlbmd0aDsKKyAgICAgICAgY2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKHN0YXJ0LCBl
bmQsIG1fbGVuZ3RoLCAmb2Zmc2V0LCAmbGVuZ3RoKTsKKyAgICAgICAgY2xhbXBPZmZzZXRBbmRO
dW1FbGVtZW50czxUPihidWZmZXIoKSwgbV9ieXRlT2Zmc2V0LCAmb2Zmc2V0LCAmbGVuZ3RoKTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZTxTdWJjbGFzcz4oYnVmZmVyKCksIG9mZnNldCwgbGVuZ3Ro
KTsKKyAgICB9CisKKyAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBoYXZlIHRvIGFjY2VzcyB0aGlz
IHZpYSBhIHZpcnR1YWwgZnVuY3Rpb24gaW4gc3ViY2xhc3NlcywKKyAgICAvLyB3aGljaCBpcyB3
aHkgaXQgaXMgcHJvdGVjdGVkIHJhdGhlciB0aGFuIHByaXZhdGUuCisgICAgdW5zaWduZWQgbV9s
ZW5ndGg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpUeXBlZEFycmF5
QmFzZTsKKworI2VuZGlmIC8vIFR5cGVkQXJyYXlCYXNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvVWludDE2QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDA3NjUwNTE3M2RlNTU4YWQzMzdmYTJkZTNk
OWIzMWIyZmQwOTJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9VaW50MTZBcnJheS5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVWludDE2
QXJyYXlfaAorI2RlZmluZSBVaW50MTZBcnJheV9oCisKKyNpbmNsdWRlICJJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmgiCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBBcnJheUJ1ZmZlcjsKKwor
Y2xhc3MgVWludDE2QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBzaG9ydD4geworcHVibGljOgorICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MTZB
cnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNzUmVm
UHRyPFVpbnQxNkFycmF5PiBjcmVhdGUodW5zaWduZWQgc2hvcnQqIGFycmF5LCB1bnNpZ25lZCBs
ZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gY3JlYXRl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOworCisgICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBp
biB0aGUgUlZDVCBjb21waWxlci4KKyAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBzaG9ydD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNl
PHVuc2lnbmVkIHNob3J0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9CisgICAgdm9pZCBzZXQodW5z
aWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2ln
bmVkIHNob3J0Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KKworICAgIGlubGluZSBQYXNzUmVmUHRy
PFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OworICAgIGlubGluZSBQYXNz
UmVmUHRyPFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIGlubGluZSBVaW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgLy8gTWFrZSBj
b25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCisgICAgZnJpZW5kIGNsYXNzIFR5cGVk
QXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PjsKKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJh
eUJ1ZmZlclZpZXcuCisgICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRTaG9ydEFycmF5KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gVWludDE2
QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlC
YXNlPHVuc2lnbmVkIHNob3J0Pjo6Y3JlYXRlPFVpbnQxNkFycmF5PihsZW5ndGgpOworfQorCitQ
YXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIHNob3J0
KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBzaG9ydD46OmNyZWF0ZTxVaW50MTZBcnJheT4oYXJyYXksIGxlbmd0aCk7Cit9CisK
K1Bhc3NSZWZQdHI8VWludDE2QXJyYXk+IFVpbnQxNkFycmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6Y3JlYXRlPFVp
bnQxNkFycmF5PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Cit9CisKK1VpbnQxNkFycmF5
OjpVaW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgc2hvcnQ+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQoreworfQorCitQYXNz
UmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dAoreworICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVm
UHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdAoreworICAgIHJldHVybiBzdWJhcnJheUltcGw8VWludDE2QXJyYXk+KHN0YXJ0LCBl
bmQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpVaW50MTZBcnJheTsK
KworI2VuZGlmIC8vIFVpbnQxNkFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVWludDMy
QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNzY1ZjgwNzcxOTJlZWIwMDRhMzA4ODkzODgxZmE2YzA4NTYz
YjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50MzJB
cnJheS5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVWludDMyQXJyYXlfaAor
I2RlZmluZSBVaW50MzJBcnJheV9oCisKKyNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgiCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBBcnJheUJ1ZmZlcjsKKworY2xhc3MgVWlu
dDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0
ZSh1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJB
cnJheT4gY3JlYXRlKHVuc2lnbmVkIGludCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CisgICAg
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisKKyAg
ICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVnIGluIHRoZSBSVkNUIGNv
bXBpbGVyLgorICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD4qIGFycmF5
LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46
OnNldChhcnJheSwgb2Zmc2V0KTsgfQorICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3Vi
bGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+OjpzZXQoaW5k
ZXgsIHZhbHVlKTsgfQorCisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHN1YmFy
cmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgaW5s
aW5lIFVpbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBsZW5ndGgpOworICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBz
dXBlcmNsYXNzLgorICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+
OworCisgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KKyAgICB2aXJ0dWFs
IGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKwor
UGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5n
dGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OmNyZWF0ZTxV
aW50MzJBcnJheT4obGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMy
QXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBpbnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCit7Cisg
ICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD46OmNyZWF0ZTxVaW50MzJBcnJh
eT4oYXJyYXksIGxlbmd0aCk7Cit9CisKK1Bhc3NSZWZQdHI8VWludDMyQXJyYXk+IFVpbnQzMkFy
cmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRl
T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIGludD46OmNyZWF0ZTxVaW50MzJBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5n
dGgpOworfQorCitVaW50MzJBcnJheTo6VWludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgOiBJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBs
ZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8VWludDMyQXJyYXk+IFVpbnQzMkFycmF5OjpzdWJh
cnJheShpbnQgc3RhcnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5KHN0YXJ0LCBsZW5n
dGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8VWludDMyQXJyYXk+IFVpbnQzMkFycmF5OjpzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5SW1wbDxV
aW50MzJBcnJheT4oc3RhcnQsIGVuZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2lu
ZyBXVEY6OlVpbnQzMkFycmF5OworCisjZW5kaWYgLy8gVWludDMyQXJyYXlfaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9VaW50OEFycmF5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1VpbnQ4QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGZkYjg0MmIxMjhjZTFkZmY2
ODhiODhmZDg0YjIzOTAzNjE1NjNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9VaW50OEFycmF5LmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBVaW50OEFycmF5X2gKKyNkZWZpbmUgVWludDhBcnJheV9oCisKKyNpbmNsdWRlICJJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlLmgiCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBBcnJheUJ1ZmZl
cjsKKworY2xhc3MgVWludDhBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIGNoYXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGlubGluZSBQYXNz
UmVmUHRyPFVpbnQ4QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBjaGFyKiBhcnJheSwgdW5zaWduZWQg
bGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gY3JlYXRl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOworCisgICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBp
biB0aGUgUlZDVCBjb21waWxlci4KKyAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBjaGFyPiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj46OnNldChhcnJheSwgb2Zmc2V0KTsgfQorICAgIHZvaWQgc2V0KHVuc2ln
bmVkIGluZGV4LCBkb3VibGUgdmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBjaGFyPjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KKworICAgIGlubGluZSBQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CisgICAgaW5saW5lIFBhc3NSZWZQ
dHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBpbmxpbmUgVWludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOworICAgIC8vIE1ha2UgY29uc3RydWN0
b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgorICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFz
ZTx1bnNpZ25lZCBjaGFyPjsKKworICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZp
ZXcuCisgICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Cit9OworCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6OmNyZWF0
ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVk
IGNoYXI+OjpjcmVhdGU8VWludDhBcnJheT4obGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxVaW50
OEFycmF5PiBVaW50OEFycmF5OjpjcmVhdGUodW5zaWduZWQgY2hhciogYXJyYXksIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj46OmNy
ZWF0ZTxVaW50OEFycmF5PihhcnJheSwgbGVuZ3RoKTsKK30KKworUGFzc1JlZlB0cjxVaW50OEFy
cmF5PiBVaW50OEFycmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1
bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIFR5cGVk
QXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpjcmVhdGU8VWludDhBcnJheT4oYnVmZmVyLCBieXRl
T2Zmc2V0LCBsZW5ndGgpOworfQorCitVaW50OEFycmF5OjpVaW50OEFycmF5KFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
KQorOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKQoreworfQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6
OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQs
IGxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0cjxVaW50OEFycmF5PiBVaW50OEFycmF5OjpzdWJh
cnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1YmFycmF5SW1w
bDxVaW50OEFycmF5PihzdGFydCwgZW5kKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3Vz
aW5nIFdURjo6VWludDhBcnJheTsKKworI2VuZGlmIC8vIFVpbnQ4QXJyYXlfaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi93dGYucHJvCmluZGV4IDI1MmUzNTQzMjNkZmJkN2YzOGMzYjEyMWQzY2U1M2ZmMjky
MzY5YmQuLmM2Nzc3NTlmNWI5NzAxYTg0ZmI5YWUxZDBmNzk2Yzg3MzM3ZGM1OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL3d0Zi5wcm8KQEAgLTI1LDYgKzI1LDggQEAgUVQgLT0gZ3VpCiBIRUFERVJT
ICs9IFwKICAgICBBbGlnbm1lbnQuaCBcCiAgICAgQWx3YXlzSW5saW5lLmggXAorICAgIEFycmF5
QnVmZmVyLmggXAorICAgIEFycmF5QnVmZmVyVmlldy5oIFwKICAgICBBU0NJSUNUeXBlLmggXAog
ICAgIEFzc2VydGlvbnMuaCBcCiAgICAgQXRvbWljcy5oIFwKQEAgLTQ0LDYgKzQ2LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgRGVjb2Rlci5oIFwKICAgICBEZXF1ZS5oIFwKICAgICBEaXNhbGxvd0NU
eXBlLmggXAorICAgIGR0b2EuaCBcCiAgICAgZHRvYS9iaWdudW0tZHRvYS5oIFwKICAgICBkdG9h
L2JpZ251bS5oIFwKICAgICBkdG9hL2NhY2hlZC1wb3dlcnMuaCBcCkBAIC01Miw3ICs1NSw2IEBA
IEhFQURFUlMgKz0gXAogICAgIGR0b2EvZG91YmxlLmggXAogICAgIGR0b2EvZmFzdC1kdG9hLmgg
XAogICAgIGR0b2EvZml4ZWQtZHRvYS5oIFwKLSAgICBkdG9hLmggXAogICAgIGR0b2Evc3RydG9k
LmggXAogICAgIGR0b2EvdXRpbHMuaCBcCiAgICAgRHluYW1pY0Fubm90YXRpb25zLmggXApAQCAt
NjAsNiArNjIsOCBAQCBIRUFERVJTICs9IFwKICAgICBGYXN0QWxsb2NCYXNlLmggXAogICAgIEZh
c3RNYWxsb2MuaCBcCiAgICAgRml4ZWRBcnJheS5oIFwKKyAgICBGbG9hdDMyQXJyYXkuaCBcCisg
ICAgRmxvYXQ2NEFycmF5LmggXAogICAgIEZvcndhcmQuaCBcCiAgICAgR2V0UHRyLmggXAogICAg
IEhhc2hDb3VudGVkU2V0LmggXApAQCAtNzAsNiArNzQsOSBAQCBIRUFERVJTICs9IFwKICAgICBI
YXNoVGFibGUuaCBcCiAgICAgSGFzaFRyYWl0cy5oIFwKICAgICBIZXhOdW1iZXIuaCBcCisgICAg
SW50MTZBcnJheS5oIFwKKyAgICBJbnQzMkFycmF5LmggXAorICAgIEludDhBcnJheS5oIFwKICAg
ICBMaXN0SGFzaFNldC5oIFwKICAgICBMaXN0UmVmUHRyLmggXAogICAgIExvY2tlci5oIFwKQEAg
LTg4LDE1ICs5NSwxNSBAQCBIRUFERVJTICs9IFwKICAgICBPU1JhbmRvbVNvdXJjZS5oIFwKICAg
ICBPd25BcnJheVB0ci5oIFwKICAgICBPd25GYXN0TWFsbG9jUHRyLmggXAotICAgIE93blB0ckNv
bW1vbi5oIFwKICAgICBPd25QdHIuaCBcCisgICAgT3duUHRyQ29tbW9uLmggXAogICAgIFBhY2tl
ZEludFZlY3Rvci5oIFwKLSAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuaCBcCiAgICAgUGFnZUFs
bG9jYXRpb24uaCBcCisgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmggXAogICAgIFBhZ2VCbG9j
ay5oIFwKICAgICBQYWdlUmVzZXJ2YXRpb24uaCBcCi0gICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5o
IFwKICAgICBQYXJhbGxlbEpvYnMuaCBcCisgICAgUGFyYWxsZWxKb2JzR2VuZXJpYy5oIFwKICAg
ICBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oIFwKICAgICBQYXJhbGxlbEpvYnNPcGVuTVAuaCBc
CiAgICAgUGFzc093bkFycmF5UHRyLmggXApAQCAtMTQyLDYgKzE0OSw5IEBAIEhFQURFUlMgKz0g
XAogICAgIFRocmVhZFNhZmVSZWZDb3VudGVkLmggXAogICAgIFRocmVhZFNwZWNpZmljLmggXAog
ICAgIFR5cGVUcmFpdHMuaCBcCisgICAgVWludDE2QXJyYXkuaCBcCisgICAgVWludDMyQXJyYXku
aCBcCisgICAgVWludDhBcnJheS5oIFwKICAgICB1bmljb2RlL0NoYXJhY3Rlck5hbWVzLmggXAog
ICAgIHVuaWNvZGUvQ29sbGF0b3IuaCBcCiAgICAgdW5pY29kZS9pY3UvVW5pY29kZUljdS5oIFwK
QEAgLTE1Nyw3ICsxNjcsMTAgQEAgSEVBREVSUyArPSBcCiAgICAgVk1UYWdzLmggXAogICAgIFdU
RlRocmVhZERhdGEuaAogCisKIFNPVVJDRVMgKz0gXAorICAgIEFycmF5QnVmZmVyLmNwcCBcCisg
ICAgQXJyYXlCdWZmZXJWaWV3LmNwcCBcCiAgICAgQXNzZXJ0aW9ucy5jcHAgXAogICAgIEJpdFZl
Y3Rvci5jcHAgXAogICAgIEJ5dGVBcnJheS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3
ZWRmZjc5OTViNTE3MjY2MjdjMDg1MDEyYTM5OGYxMGJiODhkYzFlLi4zMzhkNThmNjVmYmIxMjBi
YmQ5ZGMwNDY0ZDUzYTQ3ODg3YjQwODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODIzLDgg
KzgyMyw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuY3Bw
CiAgICAgaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAogCi0gICAgaHRtbC9jYW52YXMvQXJyYXlCdWZm
ZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmNwcAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dy
YWRpZW50LmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCkBAIC04MzMsMTQg
KzgzMSw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCiAgICAg
aHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCi0gICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNw
cAotICAgIGh0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5jcHAKLSAgICBodG1sL2NhbnZhcy9JbnQx
NkFycmF5LmNwcAotICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwCi0gICAgaHRtbC9jYW52
YXMvSW50OEFycmF5LmNwcAotICAgIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcAotICAgIGh0
bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcAotICAgIGh0bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3Bw
CiAKICAgICBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKICAgICBodG1sL3BhcnNl
ci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL0FycmF5QnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg3ZDk4YzhhZWU4ZTk0
NzcyNWExZTdmMjQxODUyNzQwMTc5YTdjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlci5oCkBAIC0wLDAgKzEsNCBAQAor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9BcnJheUJ1ZmZlcl9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0Fy
cmF5QnVmZmVyX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvQXJy
YXlCdWZmZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvQXJy
YXlCdWZmZXJWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUzOTUyNjY5N2NkMTBkYjNmNDhmOGI5NmRkMDA0
ZDhiM2Y5NDgyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdI
ZWFkZXJzL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2Vi
Q29yZV9GV0RfQXJyYXlCdWZmZXJWaWV3X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQXJyYXlCdWZm
ZXJWaWV3X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlclZpZXcuaD4KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zs
b2F0MzJBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0
MzJBcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNDUzZGQyMTYwOGQzY2NjOWNlNDhjMTA1MDY0YTc3NmZl
YjNkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvRmxvYXQzMkFycmF5LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldE
X0Zsb2F0MzJBcnJheV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0Zsb2F0MzJBcnJheV9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GbG9hdDY0QXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GbG9hdDY0QXJyYXkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lN2UzNWFhZGM4OGFlYmM5NTUwYWU1ZjU4MWQxYjhkODljODNhNmUxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Zsb2F0NjRBcnJh
eS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9GbG9hdDY0QXJyYXlfaAor
I2RlZmluZSBXZWJDb3JlX0ZXRF9GbG9hdDY0QXJyYXlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0Zsb2F0NjRBcnJheS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy93dGYvSW50MTZBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL0ludDE2QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWQwMDM5OWRhMzU0OTc5
M2NkYjljMWI3ZWEyZTE0YTQ4N2M4MTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDE2QXJyYXkuaApAQCAtMCwwICsxLDQgQEAKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfSW50MTZBcnJheV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0ludDE2
QXJyYXlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ludDE2QXJyYXkuaD4KKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDMyQXJy
YXkuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQzMkFycmF5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2I2NTc0MWQ3NjliY2U2OTA5MWZkZjIwZjE4YWEwYmVkYzZlYTBhMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQz
MkFycmF5LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0ludDMyQXJyYXlf
aAorI2RlZmluZSBXZWJDb3JlX0ZXRF9JbnQzMkFycmF5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnQzMkFycmF5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3d0Zi9JbnQ4QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9JbnQ4QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjZhZDUyNzQwYjUxZjFmZGZi
ODhhYWVhYzMxY2NhOTViODkxNDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL0ludDhBcnJheS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRl
ZiBXZWJDb3JlX0ZXRF9JbnQ4QXJyYXlfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9JbnQ4QXJyYXlf
aAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ludDhBcnJheS5oPgorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVWludDE2QXJyYXkuaCBi
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50MTZBcnJheS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNjY2VhMmMxYjBjMDczN2VjNmM4MGY0M2I2YTVlMWIwMzVkOTYyZTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVWludDE2QXJy
YXkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfVWludDE2QXJyYXlfaAor
I2RlZmluZSBXZWJDb3JlX0ZXRF9VaW50MTZBcnJheV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvVWludDE2QXJyYXkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQzMkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJk
aW5nSGVhZGVycy93dGYvVWludDMyQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjAyNmYxNWMwNjM2MThj
YzZiMmQ0MTYyZDhjYmVjOGFhN2IwYjI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1VpbnQzMkFycmF5LmgKQEAgLTAsMCArMSw0IEBACisj
aWZuZGVmIFdlYkNvcmVfRldEX1VpbnQzMkFycmF5X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfVWlu
dDMyQXJyYXlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQzMkFycmF5Lmg+CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9VaW50
OEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVWludDhBcnJh
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRjOGRlNGVhNzhjY2FkZTQ5MjNhODY5NjAxYjE1MGRkNTg1N2Q3NjYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYv
VWludDhBcnJheS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9VaW50OEFy
cmF5X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfVWludDhBcnJheV9oCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvVWludDhBcnJheS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA0MGVlNTg3NzU4OTllZjU3NGFjMjA3ODk4N2JhYWViMzk4ODY4NzJhLi4wNDEzNTA1
NzMxYjYzYTk0ZmYxNTc4ZjEzNTNhMDA4ZDRlMTM4MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTE2MTksMTAgKzE2MTksNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklu
cHV0VHlwZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmggXAotCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5jcHAgXAotCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCBcCkBAIC0xNjQwLDI0ICsxNjM2LDYgQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DaGVja2VkSW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRmxvYXQzMkFycmF5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQz
MkFycmF5LmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5oIFwKLQlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MTZBcnJheS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQz
MkFycmF5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwIFwKLQlTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9UeXBlZEFycmF5QmFzZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZB
cnJheS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmggXAot
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvVWludDhBcnJheS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4
QXJyYXkuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGJmMTIwMWMw
ZDA3NTcxZjc5MjcwMzkxZDEwMWM0MmZjYTQ1MmU2ZDguLjhjNWY1YzJkM2I0MTQzNWJmMDZkYzRm
OTkwZjhkYmIwNjdmNzRmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODA5LDggKzgwOSw2IEBAIFNPVVJD
RVMgKz0gXAogICAgIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKICAgICBodG1sL1ZhbGlk
aXR5U3RhdGUuY3BwIFwKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3BwIFwKLSAgICBodG1sL2Nh
bnZhcy9BcnJheUJ1ZmZlci5jcHAgXAotICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5j
cHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCBcCiAgICAgaHRtbC9jYW52
YXMvQ2FudmFzUGF0dGVybi5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXku
Y3BwIFwKQEAgLTgxOCwxNCArODE2LDYgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5
bGUuY3BwIFwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAgXAotICAgIGh0bWwvY2FudmFz
L0Zsb2F0MzJBcnJheS5jcHAgXAotICAgIGh0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5jcHAgXAot
ICAgIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwIFwKLSAgICBodG1sL2NhbnZhcy9JbnQzMkFy
cmF5LmNwcCBcCi0gICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmNwcCBcCi0gICAgaHRtbC9jYW52
YXMvVWludDE2QXJyYXkuY3BwIFwKLSAgICBodG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAgXAot
ICAgIGh0bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3BwIFwKICAgICBodG1sL3BhcnNlci9DU1NQcmVs
b2FkU2Nhbm5lci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBcCkBAIC0xNzUwLDgg
KzE3NDAsNiBAQCBIRUFERVJTICs9IFwKICAgICBoaXN0b3J5L0NhY2hlZFBhZ2UuaCBcCiAgICAg
aGlzdG9yeS9IaXN0b3J5SXRlbS5oIFwKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oIFwKLSAgICBo
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oIFwKLSAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaCBcCiAgICAgaHRtbC9jYW52
YXMvQ2FudmFzUGF0dGVybi5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5Lmgg
XApAQCAtMTc1OSwxNCArMTc0Nyw2IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5o
IFwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5oIFwKLSAgICBodG1sL2NhbnZhcy9GbG9hdDMy
QXJyYXkuaCBcCi0gICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmggXAotICAgIGh0bWwvY2Fu
dmFzL0ludDE2QXJyYXkuaCBcCi0gICAgaHRtbC9jYW52YXMvSW50MzJBcnJheS5oIFwKLSAgICBo
dG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCi0gICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaCBc
Ci0gICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaCBcCi0gICAgaHRtbC9jYW52YXMvVWludDhB
cnJheS5oIFwKICAgICBodG1sL0NsYXNzTGlzdC5oIFwKICAgICBodG1sL0NvbGxlY3Rpb25DYWNo
ZS5oIFwKICAgICBodG1sL0RPTUZvcm1EYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDNkMTJh
NzhiZDFlMDllZDZkNjZjM2YzMDUwMmY4MzI5MDkwMDI4YWEuLjg0MWNlYjI5MjAxYTc5ZWVhZWIw
ZjUxMjYxNWE2ZmI0YjJjYmJlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU2ODAsMTAgKzU2ODAs
NiBAQAogICAgICAgICAgICAgJ2h0bWwvVmFsaWRpdHlTdGF0ZS5oJywKICAgICAgICAgICAgICdo
dG1sL1dlZWtJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUu
aCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwJywKLSAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oJywKLSAgICAgICAgICAgICdodG1sL2NhbnZh
cy9BcnJheUJ1ZmZlclZpZXcuY3BwJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9BcnJheUJ1
ZmZlclZpZXcuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmli
dXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAnLApA
QCAtNTcwMSwzMCArNTY5NywxMiBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NoZWNrZWRJ
bnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9G
bG9hdDMyQXJyYXkuY3BwJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXku
aCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcCcsCi0gICAgICAg
ICAgICAnaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmgnLAotICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL0ludDE2QXJyYXkuY3BwJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9JbnQxNkFycmF5
LmgnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwJywKLSAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9JbnQzMkFycmF5LmgnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L0ludDhBcnJheS5jcHAnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0ludDhBcnJheS5oJywK
LSAgICAgICAgICAgICdodG1sL2NhbnZhcy9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL09FU1RleHR1cmVGbG9hdC5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNW
ZXJ0ZXhBcnJheU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRl
eEFycmF5T2JqZWN0LmgnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNl
LmgnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcCcsCi0gICAgICAg
ICAgICAnaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52
YXMvVWludDMyQXJyYXkuY3BwJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50MzJBcnJh
eS5oJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcCcsCi0gICAgICAg
ICAgICAnaHRtbC9jYW52YXMvVWludDhBcnJheS5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEFjdGl2ZUluZm8uaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNGNjMGU4Yjdk
NjI2ODZiOTU5ZjViY2QxNzAzZDdiMWQ4ZGQ4MGVjNC4uNjhjNjRlNDY4OGU2NjQ4N2I2YjcwNjM3
MTY2MjRjMjBjNTEzNWIzNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTUyOTAyLDIyICs1MjkwMiw2IEBACiAJCQlOYW1lPSJodG1sIgogCQkJ
PgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEFycmF5QnVmZmVy
LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aHRtbFxjYW52YXNcQXJyYXlCdWZmZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcQXJyYXlCdWZmZXJWaWV3LmNwcCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52
YXNcQXJyYXlCdWZmZXJWaWV3LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGZpbGVhcGlcQXN5bmNGaWxlV3JpdGVyLmgiCiAJCQkJPgogCQkJPC9G
aWxlPgpAQCAtNTM0MTAsMjIgKzUzMzk0LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcRmxvYXQzMkFycmF5LmNwcCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52
YXNcRmxvYXQzMkFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEZsb2F0NjRBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9G
aWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEZsb2F0NjRB
cnJheS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxodG1sXEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAt
NTc3MzgsMzAgKzU3NzA2LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcSW50MTZBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9G
aWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDE2QXJy
YXkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aHRtbFxjYW52YXNcSW50MzJBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXEludDMyQXJyYXkuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcSW50
OEFycmF5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5caHRtbFxjYW52YXNcSW50OEFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSXNJbmRleElucHV0VHlwZS5jcHAiCiAJCQkJ
PgogCQkJPC9GaWxlPgpAQCAtNTc5NjYsMzAgKzU3OTEwLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcVUludDE2QXJyYXku
Y3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxo
dG1sXGNhbnZhc1xVSW50MTZBcnJheS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xVSW50MzJBcnJheS5jcHAiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXFVJ
bnQzMkFycmF5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcY2FudmFzXFVJbnQ4QXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xVSW50OEFycmF5LmgiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVVJM
SW5wdXRUeXBlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzNjMTRiZWE1YWU4MDQ0OTk1
YzA5MDFiYTNjYjZlOWUzNzk2NjMwMi4uNjYzNmQ2NWJiY2Q0NGMzNWZlNWM5ODA3NzE0M2M0ZmI1
NjliZjVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTIyMCw4ICsxMjIwLDYgQEAKIAkJNDlDN0I5QTUxMDQyRDJEMzAwMDlE
NDQ3IC8qIEpTV2ViR0xUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OUM3Qjk5MjEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFRleHR1cmUu
aCAqLzsgfTsKIAkJNDlDN0I5QzgxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMQnVmZmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUE4MTA0
MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5jcHAgKi87IH07CiAJCTQ5QzdCOUM5MTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5QTkxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMQnVmZmVy
LmggKi87IH07Ci0JCTQ5QzdCOUNCMTA0MkQzMkYwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5QUIxMDQy
RDMyRTAwMDlENDQ3IC8qIEludDhBcnJheS5jcHAgKi87IH07Ci0JCTQ5QzdCOUNDMTA0MkQzMkYw
MDA5RDQ0NyAvKiBJbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5QzdCOUFDMTA0MkQzMkUwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuaCAqLzsg
fTsKIAkJNDlDN0I5Q0UxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5QUUxMDQy
RDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwICovOyB9OwogCQk0OUM3QjlDRjEw
NDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5QUYxMDQyRDMyRTAwMDlENDQ3IC8qIFdl
YkdMRnJhbWVidWZmZXIuaCAqLzsgfTsKIAkJNDlDN0I5RDQxMDQyRDMyRjAwMDlENDQ3IC8qIFdl
YkdMT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5QzdCOUI0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgKi87IH07CkBA
IC0xMjY2LDIyICsxMjY0LDYgQEAKIAkJNDlFOTEyQUMwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1h
dGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDlFOTEyQTcwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuY3BwICovOyB9Owog
CQk0OUU5MTJBRDBFRkFDOTA2MDA5RDBDQUYgLyogQW5pbWF0aW9uTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFOTEyQTgwRUZBQzkwNjAwOUQw
Q0FGIC8qIEFuaW1hdGlvbkxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0OUU5MTJBRTBFRkFDOTA2MDA5RDBDQUYgLyogVGltaW5nRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RTkx
MkE5MEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ5RUVDRERGMTA1MDNDMjQwMDA5OUZB
QiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDlFRUNEQzcxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmll
dy5jcHAgKi87IH07Ci0JCTQ5RUVDREUwMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZp
ZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVD
REM4MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuaCAqLzsgfTsKLQkJNDlFRUNE
RTIxMDUwM0MyNDAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRENBMTA1MDNDMjMwMDA5OUZBQiAvKiBB
cnJheUJ1ZmZlci5jcHAgKi87IH07Ci0JCTQ5RUVDREUzMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJh
eUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlFRUNEQ0IxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmggKi87IH07Ci0JCTQ5RUVD
REU1MTA1MDNDMjQwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNEQ0QxMDUwM0MyMzAwMDk5RkFCIC8q
IEZsb2F0MzJBcnJheS5jcHAgKi87IH07Ci0JCTQ5RUVDREU2MTA1MDNDMjQwMDA5OUZBQiAvKiBG
bG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5RUVDRENFMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuaCAqLzsgfTsKLQkJ
NDlFRUNERTgxMDUwM0MyNDAwMDk5RkFCIC8qIEludDMyQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNERDAxMDUwM0MyMzAwMDk5RkFC
IC8qIEludDMyQXJyYXkuY3BwICovOyB9OwotCQk0OUVFQ0RFOTEwNTAzQzI0MDAwOTlGQUIgLyog
SW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDlFRUNERDExMDUwM0MyMzAwMDk5RkFCIC8qIEludDMyQXJyYXkuaCAqLzsgfTsKLQkJNDlF
RUNERUIxMDUwM0MyNDAwMDk5RkFCIC8qIEludDE2QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNERDMxMDUwM0MyMzAwMDk5RkFCIC8q
IEludDE2QXJyYXkuY3BwICovOyB9OwotCQk0OUVFQ0RFQzEwNTAzQzI0MDAwOTlGQUIgLyogSW50
MTZBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlFRUNERDQxMDUwM0MyMzAwMDk5RkFCIC8qIEludDE2QXJyYXkuaCAqLzsgfTsKLQkJNDlFRUNE
RUUxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNERDYxMDUwM0MyMzAwMDk5RkFCIC8qIFVp
bnQ4QXJyYXkuY3BwICovOyB9OwotCQk0OUVFQ0RFRjEwNTAzQzI0MDAwOTlGQUIgLyogVWludDhB
cnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlF
RUNERDcxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuaCAqLzsgfTsKLQkJNDlFRUNERjEx
MDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDREQ5MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50
MzJBcnJheS5jcHAgKi87IH07Ci0JCTQ5RUVDREYyMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MzJB
cnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlF
RUNEREExMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQzMkFycmF5LmggKi87IH07Ci0JCTQ5RUVDREY0
MTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0REQzEwNTAzQzIzMDAwOTlGQUIgLyogVWlu
dDE2QXJyYXkuY3BwICovOyB9OwotCQk0OUVFQ0RGNTEwNTAzQzI0MDAwOTlGQUIgLyogVWludDE2
QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
RUVDREREMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5oICovOyB9OwogCQk0OUVFQ0Yw
MDEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0VGMjEwNTA3MEM0MDAwOTlGQUIgLyog
SlNBcnJheUJ1ZmZlci5jcHAgKi87IH07CiAJCTQ5RUVDRjAxMTA1MDcwQzQwMDA5OUZBQiAvKiBK
U0FycmF5QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OUVFQ0VGMzEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5oICovOyB9Owog
CQk0OUVFQ0YwMjEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNFRjQxMDUwNzBDNDAw
MDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNwcCAqLzsgfTsKQEAgLTEzODYsNyArMTM2OCw2IEBA
CiAJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRTNGMTQ3MkFEOTgwMDk1
RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCAqLzsgfTsKIAkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYz
IC8qIFJlbmRlckZsb3dUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFk
LmggKi87IH07CiAJCTUwOENDQTUwMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOEND
QTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLzsgfTsKLQkJNTBC
NDIxNTgxNDY5NzY5NjAwODdFNjA0IC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MEI0MjE1NzE0Njk3Njk2MDA4
N0U2MDQgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCAqLzsgfTsKIAkJNTBFNTY2RDYxMzlFMzhD
NTAwMjE0NDMzIC8qIENTU1dyYXBTaGFwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQjExMzk1MTE0QjAwRjdBQ0VCIC8qIENTU1dyYXBT
aGFwZXMuY3BwICovOyB9OwogCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTg0
NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTAxODQ2QTBCMDg2MDJBMDA0QTgyNUYgLyog
Q2FjaGVkUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTAxODQ2ODBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgKi87IH07CkBA
IC0xNzI5LDEwICsxNzEwLDYgQEAKIAkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVu
c2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RTY3RDJBNDEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmNw
cCAqLzsgfTsKIAkJNkU2N0QyQTcxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5H
TC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU2N0Qy
QTUxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oICovOyB9OwogCQk2RTY3
RDJBOTEyODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uczNELmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTY3RDJBODEyODBFOEJEMDA4NzU4RjcgLyog
RXh0ZW5zaW9uczNELmggKi87IH07Ci0JCTZFOTZCQjFDMTE5ODZFRTIwMDdEOTRDRCAvKiBJbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RTk2QkIxQTExOTg2RUUxMDA3RDk0Q0QgLyogSW50ZWdyYWxUeXBlZEFycmF5
QmFzZS5oICovOyB9OwotCQk2RTk2QkIxRDExOTg2RUUyMDA3RDk0Q0QgLyogVHlwZWRBcnJheUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFOTZC
QjFCMTE5ODZFRTEwMDdEOTRDRCAvKiBUeXBlZEFycmF5QmFzZS5oICovOyB9OwotCQk2RUJDNUQ4
MTEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkM1RDdFMTM4QjRDNEUwMEEwQ0Y4QSAvKiBG
bG9hdDY0QXJyYXkuY3BwICovOyB9OwotCQk2RUJDNUQ4MjEzOEI0QzRFMDBBMENGOEEgLyogRmxv
YXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RUJDNUQ3RjEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmggKi87IH07CiAJCTZF
QkM1RDg1MTM4QjRDRTAwMEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJDNUQ4NDEzOEI0Q0Uw
MDBBMENGOEEgLyogSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwICovOyB9OwogCQk2RUJDNUVBRjEz
OEI1MEYyMDBBMENGOEEgLyogSlNGbG9hdDY0QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCQzVFQUQxMzhCNTBGMjAwQTBDRjhBIC8qIEpT
RmxvYXQ2NEFycmF5LmNwcCAqLzsgfTsKIAkJNkVCQzVFQjAxMzhCNTBGMjAwQTBDRjhBIC8qIEpT
RmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RUJDNUVBRTEzOEI1MEYyMDBBMENGOEEgLyogSlNGbG9hdDY0QXJyYXkuaCAqLzsgfTsK
QEAgLTg0MjAsOCArODM5Nyw2IEBACiAJCTQ5QzdCOUE4MTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJH
TEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJHTEJ1
ZmZlci5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0OUM3QjlBOTEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xCdWZmZXIuaDsgcGF0aCA9IGNh
bnZhcy9XZWJHTEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3QjlB
QTEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFdlYkdMQnVmZmVyLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTEJ1ZmZlci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QzdCOUFCMTA0MkQzMkUwMDA5RDQ0NyAvKiBJbnQ4
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSW50OEFycmF5
LmNwcDsgcGF0aCA9IGNhbnZhcy9JbnQ4QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0OUM3QjlBQzEwNDJEMzJFMDAwOUQ0NDcgLyogSW50OEFycmF5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEludDhBcnJheS5oOyBwYXRoID0gY2FudmFzL0ludDhB
cnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3QjlBRDEwNDJEMzJFMDAw
OUQ0NDcgLyogSW50OEFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJbnQ4QXJyYXku
aWRsOyBwYXRoID0gY2FudmFzL0ludDhBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5QzdCOUFFMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMRnJhbWVidWZmZXIuY3Bw
OyBwYXRoID0gY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0OUM3QjlBRjEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTEZyYW1lYnVmZmVyLmg7IHBh
dGggPSBjYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtODQ3NCwyOSArODQ0OSwxMyBAQAogCQk0OUU5MTJBNzBFRkFDOTA2MDA5RDBDQUYgLyog
QW5pbWF0aW9uTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBB
bmltYXRpb25MaXN0LmNwcDsgcGF0aCA9IGFuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlFOTEyQTgwRUZBQzkwNjAwOUQwQ0FGIC8qIEFu
aW1hdGlvbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQW5pbWF0aW9u
TGlzdC5oOyBwYXRoID0gYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDlFOTEyQTkwRUZBQzkwNjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRpbWluZ0Z1bmN0aW9uLmg7IHBh
dGggPSBhbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDlFRUNEQzcxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBcnJheUJ1ZmZlclZpZXcuY3BwOyBw
YXRoID0gY2FudmFzL0FycmF5QnVmZmVyVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQ5RUVDREM4MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXJyYXlCdWZmZXJWaWV3Lmg7IHBhdGggPSBj
YW52YXMvQXJyYXlCdWZmZXJWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
RUVDREM5MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IEFycmF5QnVmZmVyVmlldy5pZGw7IHBhdGggPSBjYW52YXMvQXJyYXlCdWZm
ZXJWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNEQ0ExMDUwM0My
MzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEFycmF5QnVmZmVyLmNwcDsgcGF0aCA9IGNhbnZhcy9BcnJheUJ1ZmZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAv
KiBBcnJheUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBcnJheUJ1
ZmZlci5oOyBwYXRoID0gY2FudmFzL0FycmF5QnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gQXJyYXlCdWZmZXIuaWRsOyBwYXRoID0gY2FudmFzL0FycmF5
QnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNEQ0QxMDUwM0My
MzAwMDk5RkFCIC8qIEZsb2F0MzJBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBGbG9hdDMyQXJyYXkuY3BwOyBwYXRoID0gY2FudmFzL0Zsb2F0MzJBcnJheS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDRENFMTA1MDNDMjMwMDA5OUZB
QiAvKiBGbG9hdDMyQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmxv
YXQzMkFycmF5Lmg7IHBhdGggPSBjYW52YXMvRmxvYXQzMkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5RUVDRENGMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXku
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IEZsb2F0MzJBcnJheS5pZGw7IHBhdGggPSBjYW52
YXMvRmxvYXQzMkFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNE
RDAxMDUwM0MyMzAwMDk5RkFCIC8qIEludDMyQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gSW50MzJBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvSW50MzJBcnJh
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQxMTA1MDNDMjMwMDA5
OUZBQiAvKiBJbnQzMkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElu
dDMyQXJyYXkuaDsgcGF0aCA9IGNhbnZhcy9JbnQzMkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5RUVDREQyMTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQzMkFycmF5LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJbnQzMkFycmF5LmlkbDsgcGF0aCA9IGNhbnZhcy9JbnQz
MkFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNERDMxMDUwM0My
MzAwMDk5RkFCIC8qIEludDE2QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSW50MTZBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvSW50MTZBcnJheS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQ0MTA1MDNDMjMwMDA5OUZBQiAvKiBJ
bnQxNkFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEludDE2QXJyYXku
aDsgcGF0aCA9IGNhbnZhcy9JbnQxNkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ5RUVDREQ1MTA1MDNDMjMwMDA5OUZBQiAvKiBJbnQxNkFycmF5LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBJbnQxNkFycmF5LmlkbDsgcGF0aCA9IGNhbnZhcy9JbnQxNkFycmF5Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNERDYxMDUwM0MyMzAwMDk5RkFC
IC8qIFVpbnQ4QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VWludDhBcnJheS5jcHA7IHBhdGggPSBjYW52YXMvVWludDhBcnJheS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDREQ3MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVpbnQ4QXJyYXkuaDsgcGF0aCA9
IGNhbnZhcy9VaW50OEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVD
REQ4MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBVaW50OEFycmF5LmlkbDsgcGF0aCA9IGNhbnZhcy9VaW50OEFycmF5LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNERDkxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQz
MkFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVpbnQzMkFy
cmF5LmNwcDsgcGF0aCA9IGNhbnZhcy9VaW50MzJBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQ5RUVDRERBMTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVaW50MzJBcnJheS5oOyBwYXRoID0gY2Fu
dmFzL1VpbnQzMkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVDRERC
MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50MzJBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gVWludDMyQXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL1VpbnQzMkFycmF5LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNEREMxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQx
NkFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVpbnQxNkFy
cmF5LmNwcDsgcGF0aCA9IGNhbnZhcy9VaW50MTZBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQ5RUVDREREMTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVaW50MTZBcnJheS5oOyBwYXRoID0gY2Fu
dmFzL1VpbnQxNkFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVDRERF
MTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gVWludDE2QXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL1VpbnQxNkFycmF5LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlFRUNFRjIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQXJy
YXlCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBcnJh
eUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVDRUYzMTA1MDcw
QzQwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQXJyYXlCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5
NzQsMTAgKzg5MzMsNiBAQAogCQk2RTY3RDJBNDEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9u
czNET3BlbkdMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVu
c2lvbnMzRE9wZW5HTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNjdEMkE1
MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5zaW9uczNET3BlbkdMLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZFNjdEMkE4MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5zaW9uczNELmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFOTZCQjFBMTE5ODZFRTEwMDdEOTRDRCAvKiBJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEludGVn
cmFsVHlwZWRBcnJheUJhc2UuaDsgcGF0aCA9IGNhbnZhcy9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFOTZCQjFCMTE5ODZFRTEwMDdEOTRD
RCAvKiBUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBU
eXBlZEFycmF5QmFzZS5oOyBwYXRoID0gY2FudmFzL1R5cGVkQXJyYXlCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFQkM1RDdFMTM4QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRmxvYXQ2NEFy
cmF5LmNwcDsgcGF0aCA9IGNhbnZhcy9GbG9hdDY0QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2RUJDNUQ3RjEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZsb2F0NjRBcnJheS5oOyBwYXRoID0g
Y2FudmFzL0Zsb2F0NjRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJD
NUQ4MDEzOEI0QzRFMDBBMENGOEEgLyogRmxvYXQ2NEFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBGbG9hdDY0QXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL0Zsb2F0NjRBcnJheS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkM1RDg0MTM4QjRDRTAwMEEwQ0Y4QSAv
KiBKU0Zsb2F0NjRBcnJheUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0Zsb2F0NjRBcnJheUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFQkM1RUFEMTM4QjUwRjIwMEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Zsb2F0NjRBcnJheS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDkxOSwxMSArMTQ4NzQsNyBAQAogCQkJCUEw
RUUwREY0MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5oICovLAogCQkJCUEw
RUUwREYwMTQ0RjgyNDMwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbCAqLywK
IAkJCQlBMEVFMERFRjE0NEY4MjMyMDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsICov
LAotCQkJCTQ5RUVDRENBMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5jcHAgKi8sCi0J
CQkJNDlFRUNEQ0IxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmggKi8sCiAJCQkJNDlF
RUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlkbCAqLywKLQkJCQk0OUVFQ0RD
NzEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCAqLywKLQkJCQk0OUVFQ0RD
ODEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJNDlFRUNEQzkx
MDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJNkU0RTkxQTcx
MEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKIAkJCQk2
RTRFOTFBODEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCAqLywK
QEAgLTE0OTQ4LDIyICsxNDg5OSwxMSBAQAogCQkJCTJFOTdDQ0U3MTI5MzlDQjgwMEM1QzhGRiAv
KiBEYXRhVmlldy5jcHAgKi8sCiAJCQkJMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFW
aWV3LmggKi8sCiAJCQkJMkU5N0NDRTkxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmlkbCAq
LywKLQkJCQk0OUVFQ0RDRDEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmNwcCAqLywK
LQkJCQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQzMkFycmF5LmggKi8sCiAJCQkJ
NDlFRUNEQ0YxMDUwM0MyMzAwMDk5RkFCIC8qIEZsb2F0MzJBcnJheS5pZGwgKi8sCi0JCQkJNkVC
QzVEN0UxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJheS5jcHAgKi8sCi0JCQkJNkVCQzVE
N0YxMzhCNEM0RTAwQTBDRjhBIC8qIEZsb2F0NjRBcnJheS5oICovLAogCQkJCTZFQkM1RDgwMTM4
QjRDNEUwMEEwQ0Y4QSAvKiBGbG9hdDY0QXJyYXkuaWRsICovLAotCQkJCTQ5RUVDREQzMTA1MDND
MjMwMDA5OUZBQiAvKiBJbnQxNkFycmF5LmNwcCAqLywKLQkJCQk0OUVFQ0RENDEwNTAzQzIzMDAw
OTlGQUIgLyogSW50MTZBcnJheS5oICovLAogCQkJCTQ5RUVDREQ1MTA1MDNDMjMwMDA5OUZBQiAv
KiBJbnQxNkFycmF5LmlkbCAqLywKLQkJCQk0OUVFQ0REMDEwNTAzQzIzMDAwOTlGQUIgLyogSW50
MzJBcnJheS5jcHAgKi8sCi0JCQkJNDlFRUNERDExMDUwM0MyMzAwMDk5RkFCIC8qIEludDMyQXJy
YXkuaCAqLywKIAkJCQk0OUVFQ0REMjEwNTAzQzIzMDAwOTlGQUIgLyogSW50MzJBcnJheS5pZGwg
Ki8sCi0JCQkJNDlDN0I5QUIxMDQyRDMyRTAwMDlENDQ3IC8qIEludDhBcnJheS5jcHAgKi8sCi0J
CQkJNDlDN0I5QUMxMDQyRDMyRTAwMDlENDQ3IC8qIEludDhBcnJheS5oICovLAogCQkJCTQ5QzdC
OUFEMTA0MkQzMkUwMDA5RDQ0NyAvKiBJbnQ4QXJyYXkuaWRsICovLAotCQkJCTZFOTZCQjFBMTE5
ODZFRTEwMDdEOTRDRCAvKiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmggKi8sCiAJCQkJOTAwMTc3
M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovLAogCQkJ
CTkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8s
CiAJCQkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aWRsICovLApAQCAtMTQ5NzMsMTUgKzE0OTEzLDggQEAKIAkJCQk3N0ExN0E2RTEyRjI4MTgyMDA0
RTAyRjYgLyogT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwICovLAogCQkJCTc3QTE3QTZGMTJGMjgx
ODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5oICovLAogCQkJCTc3QTE3QTcwMTJG
MjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgKi8sCi0JCQkJNkU5NkJC
MUIxMTk4NkVFMTAwN0Q5NENEIC8qIFR5cGVkQXJyYXlCYXNlLmggKi8sCi0JCQkJNDlFRUNEREMx
MDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQxNkFycmF5LmNwcCAqLywKLQkJCQk0OUVFQ0RERDEwNTAz
QzI0MDAwOTlGQUIgLyogVWludDE2QXJyYXkuaCAqLywKIAkJCQk0OUVFQ0RERTEwNTAzQzI0MDAw
OTlGQUIgLyogVWludDE2QXJyYXkuaWRsICovLAotCQkJCTQ5RUVDREQ5MTA1MDNDMjMwMDA5OUZB
QiAvKiBVaW50MzJBcnJheS5jcHAgKi8sCi0JCQkJNDlFRUNEREExMDUwM0MyMzAwMDk5RkFCIC8q
IFVpbnQzMkFycmF5LmggKi8sCiAJCQkJNDlFRUNEREIxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQz
MkFycmF5LmlkbCAqLywKLQkJCQk0OUVFQ0RENjEwNTAzQzIzMDAwOTlGQUIgLyogVWludDhBcnJh
eS5jcHAgKi8sCi0JCQkJNDlFRUNERDcxMDUwM0MyMzAwMDk5RkFCIC8qIFVpbnQ4QXJyYXkuaCAq
LywKIAkJCQk0OUVFQ0REODEwNTAzQzIzMDAwOTlGQUIgLyogVWludDhBcnJheS5pZGwgKi8sCiAJ
CQkJQTdEMjBGNkIxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oICovLAogCQkJ
CUE3RDIwRjNCMTA3RjM3MzgwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaWRsICovLApAQCAt
MjE3ODQsOCArMjE3MTcsNiBAQAogCQkJCTUxMkREOEZDMEQ5MUU2QUYwMDBGODlFRSAvKiBBcmNo
aXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkREOEY4MEQ5MUU2QUYwMDBGODlF
RSAvKiBBcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZC
MkY3NzA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVD
REUzMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDlFRUNERTAxMDUwM0MyNDAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQ1Njg2Q0ExM0FDMTgwMjAwQjY5QzY4IC8qIEFzeW5jQXVkaW9EZWNvZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRUYxQkZGNzEyMUNCMEJEMDBDMjc2MjcgLyogQXN5bmNGaWxl
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OUQwOERBMDEyMjI4NDUxMDAxMjQxREYgLyog
QXN5bmNGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKQEAgLTIyODE0LDggKzIyNzQ1LDYgQEAK
IAkJCQkwOEM5MjUxQTBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4Q0ZGMDRGMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5
b3V0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RFNjEwNTAzQzI0MDAwOTlGQUIgLyogRmxv
YXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RUJDNUQ4MjEzOEI0QzRFMDBBMENGOEEg
LyogRmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA3M0JBQTBDMzk5QjFGMDAw
RjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU2OTBC
MDUzODE0MDAyQ0U2NEYgLyogRmxvYXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJFMjdD
QTAwQjBGMkIwOTAwRjE3QzdCIC8qIEZsb2F0UG9pbnQzRC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzEyNywxMCArMjMwNTYsNiBAQAogCQkJCUYzODEwQzFDMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM3NUNDMDcxMTUwRDMwMDAw
OEREQjgxIC8qIEluc3BlY3RvcldvcmtlclJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
M0FCRkUwQzEzMEU5REEwMDBFN0Y3RDEgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDlFRUNERUMxMDUwM0MyNDAwMDk5RkFCIC8qIEludDE2QXJyYXkuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQ5RUVDREU5MTA1MDNDMjQwMDA5OUZBQiAvKiBJbnQzMkFycmF5Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0OUM3QjlDQzEwNDJEMzJGMDAwOUQ0NDcgLyogSW50OEFycmF5
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RTk2QkIxQzExOTg2RUUyMDA3RDk0Q0QgLyogSW50ZWdy
YWxUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzIwQjA1MzgxNDAw
MkNFNjRGIC8qIEludFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDYyQTRBMTExM0U3MUJF
MDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU3NDBC
MDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDU0MywxNCAr
MjQ0NjgsMTAgQEAKIAkJCQkxNEQ2NEI1RDEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNDE5RDJDNTBDRUE2RjYxMDBGRjUwN0EgLyogVHJlZVNoYXJl
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0RkU3MzkwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVX
YWxrZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTZFOTZCQjFEMTE5ODZFRTIwMDdEOTRDRCAvKiBU
eXBlZEFycmF5QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjhBNjgxMEY2NTlDQzAwOEM3
ODEzIC8qIFR5cGVzZXR0aW5nRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTFB
MDk5RTY0OTIwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTAzMUI0RTBBNDRFRkM3MDBGOTkyRTAgLyogVUlFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODUwMzFCNEYwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQ5RUVDREY1MTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDlFRUNERjIxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQzMkFycmF5
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0RFRjEwNTAzQzI0MDAwOTlGQUIgLyogVWludDhB
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2M0UyMDExMzQzNDEyMDAwMjc0OTI2IC8qIFVu
aWNvZGVCaWRpLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0RDBEMDA2QzFEMDBFRjZGMjYg
LyogVW5pY29kZVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFGQ0ZBNTBEQUYyOUEzMDBG
NUY1NUMgLyogVW5pdEJlemllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE4MCw4ICsyNTEwMSw2
IEBACiAJCQkJNTEyREQ4RkIwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTJERDhGNzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJl
c291cmNlQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ZCMkY3NjA5N0EyRTFB
MDBCQTcwM0QgLyogQXJlbmEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlFRUNERTIxMDUwM0My
NDAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDRERG
MTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQ1Njg2QzkxM0FDMTgwMjAwQjY5QzY4IC8qIEFzeW5jQXVkaW9EZWNvZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0
ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEUwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0
dHIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTgzMSw4ICsyNTc1MCw2IEBACiAJCQkJQkM1RUI2
OUUwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
OEM5MjUxOTBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4Q0ZGMDREMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTQ5RUVDREU1MTA1MDNDMjQwMDA5OUZBQiAvKiBGbG9hdDMyQXJy
YXkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNkVCQzVEODExMzhCNEM0RTAwQTBDRjhBIC8qIEZs
b2F0NjRBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2ODBCMDUzODE0MDAyQ0U2
NEYgLyogRmxvYXRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkUyN0M5RjBCMEYyQjA5
MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTU5
MEIwNTM4MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
NjEwOCw5ICsyNjAyNSw2IEBACiAJCQkJNEYzMjg5QjUxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3Bl
Y3RvclZhbHVlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgxMEMxQjEzNjVBNDk2MDBFRDZF
MzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM1MEI3
MzUxM0YxMzc3RDAwODgwQzQzIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDlFRUNERUIxMDUwM0MyNDAwMDk5RkFCIC8qIEludDE2QXJyYXkuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDlFRUNERTgxMDUwM0MyNDAwMDk5RkFCIC8qIEludDMyQXJyYXkuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNDlDN0I5Q0IxMDQyRDMyRjAwMDlENDQ3IC8qIEludDhBcnJh
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2MDBCMDUzODE0MDAyQ0U2NEYgLyogSW50
UG9pbnRDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU3QzBCMDUzODE0MDAyQ0U2NEYg
LyogSW50UG9pbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU3MzBCMDUzODE0MDAy
Q0U2NEYgLyogSW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3NDU5LDkgKzI3MzczLDYg
QEAKIAkJCQk5MzMwOUUxOTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NTAzMUI0RDBBNDRFRkM3MDBGOTkyRTAgLyogVUlFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzM1NEEzQzBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdp
dGhLZXlTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUVFQ0RGNDEwNTAzQzI0MDAwOTlG
QUIgLyogVWludDE2QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlFRUNERjExMDUwM0My
NDAwMDk5RkFCIC8qIFVpbnQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDREVF
MTA1MDNDMjQwMDA5OUZBQiAvKiBVaW50OEFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
QzNEQTRDMEQwMDZDMUQwMEVGNkYyNiAvKiBVbmljb2RlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRDA4NkZFOTkwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjU1QjNEREQxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlckN1c3RvbS5jcHAKaW5kZXggNTIzMzJjOWM4ODgzZjg1MDNlYmM4OWY1YTI1ZWU2
MGZkMmFlYWQ3My4uM2RkY2Y5YTQ4M2U2ZDMzM2VkODNmNmQwNzNkMGEzYzgwNzJiMGU2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1c3RvbS5j
cHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyLmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8d3RmL0Fy
cmF5QnVmZmVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKaW5kZXggOWZjMWJk
MDczZDYxNzdlOTU1NjZmNDZjMmEwOWM1ZTRjNTExZDZkYy4uZGY5ZTQzOTA2NDA0ZDQ4NTg4ODM4
YjBiOTZmNGU3ZGRjZDViOWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAjaWZuZGVm
IEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gKICNkZWZpbmUgSlNBcnJheUJ1ZmZlclZpZXdIZWxw
ZXJfaAogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKQEAgLTM2LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU09iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgor
I2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3Rv
bS5jcHAKaW5kZXggY2ExZGIzNGMxMTcwZTFhYjk4N2M4MzAxYjkwYjAxZDJjNzM0YWRkMi4uZTJj
MjYyNzUzYWExZGE1NTVmOGU3YzM0NTM0ZTQ1OTA3NjhiMjA3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAtMjgsMTIg
KzI4LDEyIEBACiAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIkFycmF5
QnVmZmVyLmgiCiAjaW5jbHVkZSAiQXVkaW9CdWZmZXIuaCIKICNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyLmgiCiAjaW5jbHVkZSAiSlNBdWRpb0J1ZmZlci5oIgogI2luY2x1ZGUgIkpTQXVkaW9Db250
ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1
ZmZlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVSZWFkZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNGaWxlUmVhZGVyQ3VzdG9tLmNwcAppbmRleCBjNzcxYjYzYThkNDUyNTdi
ODM2MTA3Y2FmZmZlNjA0MjYwMDFhMzFjLi44YjQ5M2NhMTc2OWYyZWQ5OTdhOWU1MDU1N2YwYzU0
ZDU0MDMyYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVS
ZWFkZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVJl
YWRlckN1c3RvbS5jcHAKQEAgLTM0LDkgKzM0LDkgQEAKIAogI2luY2x1ZGUgIkpTRmlsZVJlYWRl
ci5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyLmgi
CiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5o
PgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggNWRhNjliNGIwMWFlNzM2OWRl
ZGNkZDA1NzdkNGQ4ODRjZWY3OWY3MC4uZWQzYjExMjY1MTZjNDg4MjJiNjMwZmRmNDQ4ZDYxYTdk
ZWRjOTY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMy
QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQz
MkFycmF5Q3VzdG9tLmNwcApAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIK
ICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9GbG9h
dDMyQXJyYXkuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDY0QXJyYXlDdXN0b20uY3BwCmluZGV4IDQ0NmIwZWM0
MGI3ZmU4ZmZhOTdmOTA1MTI3NzAxMzNlMGUyMGFjOGIuLmZiZDgyYjUxZDUwMmMwNDM2OTdlMjM3
NjQ1NTlhMTI3OTgwMWQwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRmxvYXQ2NEFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Zsb2F0NjRBcnJheUN1c3RvbS5jcHAKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJKU0Zsb2F0NjRBcnJheS5oIgogCi0jaW5jbHVkZSAiRmxvYXQ2
NEFycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKKyNpbmNsdWRl
IDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDg3
ZWE2ZmViZjc1OThhMDYxNDg5ZGE4MTMxZWZmNDNmNjQ3ZWNkNzQuLjc2YWFiYTAxNzRlY2JjNmZi
MjQ0MTM3MjI2N2ZlNmRhZjQxOWE2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSW50MTZBcnJheS5oIgogCi0jaW5jbHVkZSAiSW50MTZB
cnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCisjaW5jbHVkZSA8
d3RmL0ludDE2QXJyYXkuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggOGI4MjRh
Nzc2N2FiY2FhM2ZhZWRkY2Y3NGM2M2I5M2U4YzRiMmVlNy4uNDMzOTBiMWMwYTAxODVlZDQ3NGZl
NzA5NTk5NTE5MmEzOGQ0YTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ludDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCiAKLSNpbmNsdWRlICJJbnQzMkFycmF5
LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKKyNpbmNsdWRlIDx3dGYv
SW50MzJBcnJheS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggZGNiY2M1YWE0N2E4
NGZmNDlmNmIzZGJjOTU2ZDJlY2QyMDE0NmRhOS4uYmI3ZmU4YWQ2MDFmYjE0NWI5ODMxNDA2NzIx
MWM2MDJiMWFiMGNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
OEFycmF5Q3VzdG9tLmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTSW50OEFycmF5LmgiCiAKLSNpbmNsdWRlICJJbnQ4QXJyYXkuaCIKICNpbmNs
dWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3Iu
aD4KKyNpbmNsdWRlIDx3dGYvSW50OEFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5j
cHAKaW5kZXggMTZmOWRiMmEwOTExNDFlOWM3Yzk5MmI2MzdmYjE3OTI0ODllMTJhNC4uYTIxZDM1
MTcwYTk0MjkwZmVjNjY1MGE1NzFiNWE3ZDRhNTUyZTI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDcgKzI3LDcg
QEAKICNpbmNsdWRlICJKU1VpbnQxNkFycmF5LmgiCiAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oIgotI2luY2x1ZGUgIlVpbnQxNkFycmF5LmgiCisjaW5jbHVkZSA8d3RmL1Vp
bnQxNkFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggMWUwNzFjOWY0
ZDJlNjc4MDUwMWIzZWU5YTc1MDk1NDUxZTQ0NGQyMy4uODI4ODA0NGJmMTlmZDlkYjNkYWQwMzJj
NWZlN2FjZmRiOTE5ODU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVaW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVaW50MzJBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJKU1Vp
bnQzMkFycmF5LmgiCiAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgotI2lu
Y2x1ZGUgIlVpbnQzMkFycmF5LmgiCisjaW5jbHVkZSA8d3RmL1VpbnQzMkFycmF5Lmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1VpbnQ4QXJyYXlDdXN0b20uY3BwCmluZGV4IGU5MGY4ZTk3ZTQxZDYzYzQ1OWZmYmE2YTI4ZWY1
MzU5NjFjNTRjM2YuLjBiMjg2NDc2ODQyMDA0NGUxZDRhZmZkMGUzNWIwZDM0OTNiYjYxOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNw
cApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogCiAjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCisj
aW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXYXZlU2hhcGVyTm9kZUN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dhdmVTaGFwZXJOb2RlQ3VzdG9t
LmNwcAppbmRleCBmZWFiOTc4NzhlMmNiMjE2ZGFlZTBiNzlhYmU0NTI1ZDUyMzZlODAxLi5lMDNh
NjU2NWFjYTRlMjMwYjJmMWVkMjIyNTE4Y2I4YTcyMzk5MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dhdmVTaGFwZXJOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dhdmVTaGFwZXJOb2RlQ3VzdG9tLmNwcApAQCAtMjgs
OSArMjgsOSBAQAogCiAjaW5jbHVkZSAiV2F2ZVNoYXBlck5vZGUuaCIKIAotI2luY2x1ZGUgIkZs
b2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNX
YXZlU2hhcGVyTm9kZS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDAzNzYxMGE0OTFk
YjY3YTNmYmVmZDg5YmI1ODNkOWViMjVkYzUyMTYuLjFhOGY1OGE2MmI1Mjg2MzVmOGNiN2U5NWQ0
OGVjMDM0NDRiMDBlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTMwLDEwICszMCw4
IEBACiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJJbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRlICJK
U0hUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MSW1hZ2VFbGVtZW50LmgiCkBA
IC03MCw2ICs2OCw4IEBACiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8
d3RmL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9JbnQzMkFycmF5Lmg+CiAjaW5jbHVk
ZSA8d3RmL093bkZhc3RNYWxsb2NQdHIuaD4KIAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAK
aW5kZXggNzczNmRiYTZhN2E2M2Y4NjFlMWQwNjk0ZTVlNDcyMDdiMzhmNTcxMC4uM2FiMjA3ZWIy
YTY0MzljMjQxNjU0YjU1YTIxMTkxYzI4YzU1MGIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0Lmgi
CiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRl
ICJET01Gb3JtRGF0YS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgpAQCAtNDksNiArNDgsNyBA
QAogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgogI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8d3RmL0Fy
cmF5QnVmZmVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggY2FjMzUwYjQ5
NDE1MzFiODZhNzQyYTg3MmJiMjVjMjMwOGY0YjY5OC4uNzEwYzdhZTNlMzE3YTcxY2Q4MGU3NjIy
MGIyYWViYjQ4MTcxNWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI5Niw2ICsyOTYsOCBAQCBzdWIgQWRkSW5jbHVk
ZXNGb3JUeXBlCiAgICAgICAgICRpbmNsdWRlc1JlZi0+eyJKU0RPTVN0cmluZ0xpc3QuaCJ9ID0g
MTsKICAgICB9IGVsc2lmICgkaXNDYWxsYmFjaykgewogICAgICAgICAkaW5jbHVkZXNSZWYtPnsi
SlMke3R5cGV9LmgifSA9IDE7CisgICAgfSBlbHNpZiAoSXNUeXBlZEFycmF5VHlwZSgkdHlwZSkp
IHsKKyAgICAgICAgJGluY2x1ZGVzUmVmLT57Ijx3dGYvJHt0eXBlfS5oPiJ9ID0gMTsKICAgICB9
IGVsc2UgewogICAgICAgICAjIGRlZmF1bHQsIGluY2x1ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZQog
ICAgICAgICAkaW5jbHVkZXNSZWYtPnsiJHt0eXBlfS5oIn0gPSAxOwpAQCAtNjkxLDcgKzY5Mywx
MSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICB9CiAKICAgICBpZiAoJGhhc1BhcmVudCAmJiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9
KSB7Ci0gICAgICAgICRoZWFkZXJJbmNsdWRlc3siJGltcGxDbGFzc05hbWUuaCJ9ID0gMTsKKyAg
ICAgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICAg
ICAkaGVhZGVySW5jbHVkZXN7Ijx3dGYvJGltcGxDbGFzc05hbWUuaD4ifSA9IDE7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkaGVhZGVySW5jbHVkZXN7IiRpbXBsQ2xhc3NOYW1lLmgi
fSA9IDE7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgJGhlYWRlckluY2x1ZGVzeyI8cnVu
dGltZS9KU09iamVjdC5oPiJ9ID0gMTsKQEAgLTI4ODQsNyArMjg5MCwxMSBAQCBzdWIgTmF0aXZl
VG9KU1ZhbHVlCiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBEZWZhdWx0LCBpbmNsdWRlIGhlYWRl
ciB3aXRoIHNhbWUgbmFtZS4KICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIs
ICRjb25kaXRpb25hbCk7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIkdHlwZS5oIiwgJGNv
bmRpdGlvbmFsKSBpZiBub3QgJGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5jbHVzaW9uT2ZUeXBlKCR0
eXBlKTsKKyAgICAgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0Zi8kdHlwZS5oPiIsICRjb25kaXRpb25hbCkgaWYgbm90
ICRjb2RlR2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiJHR5cGUuaCIsICRjb25kaXRp
b25hbCkgaWYgbm90ICRjb2RlR2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gJHZhbHVlIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDVlMzNlYjJlOWIzMTU2NDFiMGNm
YzY5MjRhNDYyMTkwNGM4MDRiZTkuLjRlM2ZiNzc3ODU5YmMxN2I5YzJhNTNmNjZkZjkwYjk3NjIz
YTc0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCkBAIC0xNTQsNiArMTU0LDEwIEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUK
IAogICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3MK
ICAgICAjIHJlb3JnYW5pemF0aW9uLCB3ZSB3b24ndCBuZWVkIHRoZXNlIHNwZWNpYWwgY2FzZXMu
CisgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJ3dGYvJHt0eXBlfS5oIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgaWYg
KCEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBhbmQgISRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpIGFuZCAhJGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5jbHVz
aW9uT2ZUeXBlKCR0eXBlKSBhbmQgJHR5cGUgbmUgIkRhdGUiKSB7CiAgICAgICAgICMgZGVmYXVs
dCwgaW5jbHVkZSB0aGUgc2FtZSBuYW1lZCBmaWxlCiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KEdldFY4SGVhZGVyTmFtZSgke3R5cGV9KSk7CkBAIC01MzcsNiArNTQxLDcgQEAgc3ViIEdldEhl
YWRlckNsYXNzSW5jbHVkZQogICAgIGlmICgkY2xhc3NOYW1lID1+IC9TVkdQYXRoU2VnLykgewog
ICAgICAgICAkY2xhc3NOYW1lID1+IHMvQWJzfFJlbC8vOwogICAgIH0KKyAgICByZXR1cm4gInd0
Zi8ke2NsYXNzTmFtZX0uaCIgaWYgSXNUeXBlZEFycmF5VHlwZSgkY2xhc3NOYW1lKTsKICAgICBy
ZXR1cm4gIiIgaWYgKCRjb2RlR2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkY2xhc3NO
YW1lKSk7CiAgICAgcmV0dXJuICIke2NsYXNzTmFtZX0uaCI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTUZsb2F0NjRBcnJheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTUZsb2F0
NjRBcnJheS5jcHAKaW5kZXggNDNhMmZkMDFlNGViODk2OTk4YzQ0OTM5MzQxNWNlZDc1MDY0ZWRi
Yi4uZmRkMDAxNTVmNDVkZTNkNzI3N2JlNTg4NTZkZTk1ZjY1MTJmODczMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01GbG9hdDY0QXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NRmxvYXQ2NEFycmF5LmNwcApAQCAtMjEsNyArMjEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYkRPTUZsb2F0NjRBcnJheS5oIgogCisjaW5jbHVkZSAiRmxvYXQzMkFy
cmF5LmgiCiAjaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCisjaW5jbHVkZSAiV2ViRE9NRmxvYXQz
MkFycmF5LmgiCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uSGFuZGxlci5oIgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00MSw2ICs0MywxNCBAQCBX
VEY6OkZsb2F0NjRBcnJheSogV2ViRE9NRmxvYXQ2NEFycmF5OjppbXBsKCkgY29uc3QKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V1RGOjpGbG9hdDY0QXJyYXkqPihXZWJET01BcnJheUJ1ZmZlclZp
ZXc6OmltcGwoKSk7CiB9CiAKK3ZvaWQgV2ViRE9NRmxvYXQ2NEFycmF5Ojpmb28oY29uc3QgV2Vi
RE9NRmxvYXQzMkFycmF5JiBhcnJheSkKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaW1wbCgpLT5mb28odG9XZWJDb3JlKGFycmF5KSk7Cit9CisKIFdURjo6Rmxv
YXQ2NEFycmF5KiB0b1dlYkNvcmUoY29uc3QgV2ViRE9NRmxvYXQ2NEFycmF5JiB3cmFwcGVyKQog
ewogICAgIHJldHVybiB3cmFwcGVyLmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTUZsb2F0NjRBcnJheS5oCmlu
ZGV4IDUzZGI1ZDc3ODY2NDA5YzA5YTQ5YjEzNGM4MDlhZTFmMWY1Mjk3YWIuLjdmMzViN2ExYjE1
NjYwZjA4NTBjMGNiODg3MmZiZjgxN2U1NDkyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NRmxvYXQ2NEFycmF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01GbG9hdDY0QXJyYXku
aApAQCAtMzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIEZsb2F0NjRBcnJheTsK
IH07CiAKK2NsYXNzIFdlYkRPTUZsb2F0MzJBcnJheTsKIAogY2xhc3MgV2ViRE9NRmxvYXQ2NEFy
cmF5IDogcHVibGljIFdlYkRPTUFycmF5QnVmZmVyVmlldyB7CiBwdWJsaWM6CkBAIC0zNyw2ICsz
OCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJET01GbG9hdDY0QXJyYXkoV1RGOjpGbG9h
dDY0QXJyYXkqKTsKICAgICB2aXJ0dWFsIH5XZWJET01GbG9hdDY0QXJyYXkoKSB7IH0KIAorICAg
IHZvaWQgZm9vKGNvbnN0IFdlYkRPTUZsb2F0MzJBcnJheSYgYXJyYXkpOwogCiAgICAgV1RGOjpG
bG9hdDY0QXJyYXkqIGltcGwoKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01GbG9hdDY0QXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
RmxvYXQ2NEFycmF5LmNwcAppbmRleCAxMzM2MDY1MjI4NmM1NmZiM2ZkZWEzNWU3MTY5YTJkZTRl
YjllM2Q5Li5lYWE3NzBhYzA2ZTQ4MjcyNGZlMzFhNTRjMWE2OGFlN2IzM2QwZDI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01GbG9hdDY0QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTUZsb2F0NjRBcnJheS5jcHAKQEAgLTI5LDYgKzI5LDggQEAK
ICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiZ29iamVjdC9Db252ZXJ0VG9VVEY4U3RyaW5nLmgiCisjaW5j
bHVkZSAid2Via2l0L1dlYktpdERPTUZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIndlYmtpdC9X
ZWJLaXRET01GbG9hdDMyQXJyYXlQcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERP
TUZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01GbG9hdDY0QXJyYXlQ
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0ZGVmaW5lcy5oIgpAQCAtNDksNiArNTEsMjEgQEAg
V2ViS2l0RE9NRmxvYXQ2NEFycmF5KiBraXQoV2ViQ29yZTo6RmxvYXQ2NEFycmF5KiBvYmopCiAg
ICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQgLy8KIAordm9pZAord2Via2l0X2RvbV9mbG9hdDY0
YXJyYXlfZm9vKFdlYktpdERPTUZsb2F0NjRBcnJheSogc2VsZiwgV2ViS2l0RE9NRmxvYXQzMkFy
cmF5KiBhcnJheSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpGbG9hdDY0QXJyYXkg
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoYXJyYXkp
OworICAgIFdlYkNvcmU6OkZsb2F0MzJBcnJheSAqIGNvbnZlcnRlZF9hcnJheSA9IE5VTEw7Cisg
ICAgaWYgKGFycmF5ICE9IE5VTEwpIHsKKyAgICAgICAgY29udmVydGVkX2FycmF5ID0gV2ViS2l0
Ojpjb3JlKGFycmF5KTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRfYXJyYXkp
OworICAgIH0KKyAgICBpdGVtLT5mb28oY29udmVydGVkX2FycmF5KTsKK30KKwogCiBHX0RFRklO
RV9UWVBFKFdlYktpdERPTUZsb2F0NjRBcnJheSwgd2Via2l0X2RvbV9mbG9hdDY0YXJyYXksIFdF
QktJVF9UWVBFX0RPTV9BUlJBWV9CVUZGRVJfVklFVykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NRmxvYXQ2NEFycmF5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01GbG9hdDY0QXJyYXkuaAppbmRleCBiYzUwNDcwMjQ0MTNiNWI2Y2M1NDVkOGJmZjYyNDQyZThj
MmFmYjBjLi45MGJlNTZlODFjNzBkZWEwNDRmNTIyMzNmYWNlYWFjYWNmYzk0ODhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01GbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01GbG9hdDY0QXJyYXkuaApAQCAtNDYsNiArNDYsMTcgQEAgc3Ry
dWN0IF9XZWJLaXRET01GbG9hdDY0QXJyYXlDbGFzcyB7CiBXRUJLSVRfQVBJIEdUeXBlCiB3ZWJr
aXRfZG9tX2Zsb2F0NjRhcnJheV9nZXRfdHlwZSAodm9pZCk7CiAKKy8qKgorICogd2Via2l0X2Rv
bV9mbG9hdDY0YXJyYXlfZm9vOgorICogQHNlbGY6IEEgI1dlYktpdERPTUZsb2F0NjRBcnJheQor
ICogQGFycmF5OiBBICNXZWJLaXRET01GbG9hdDMyQXJyYXkKKyAqCisgKiBSZXR1cm5zOgorICoK
KyoqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2Zsb2F0NjRhcnJheV9mb28oV2ViS2l0
RE9NRmxvYXQ2NEFycmF5KiBzZWxmLCBXZWJLaXRET01GbG9hdDMyQXJyYXkqIGFycmF5KTsKKwog
R19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdERPTUZsb2F0NjRBcnJheV9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0
QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxv
YXQ2NEFycmF5LmNwcAppbmRleCBmMWY2ZTYxNDA4NmUwM2M1ZDRmZTg4NGZjMGM3ZGYwZDAyY2Y2
OTMzLi43ZDM4NjBkN2JhZDRiYWNmNDBiNGVjNGE1ZmVmNTUxNjlmYTZjNmU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0
NjRBcnJheS5jcHAKQEAgLTIxLDggKzIxLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNGbG9hdDY0QXJyYXkuaCIKIAotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgorI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNs
dWRlICJKU0Zsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNs
dWRlIDxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0Zsb2F0NjRB
cnJheS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
QEAgLTExNCwxMSArMTE4LDEyIEBAIENvbnN0cnVjdFR5cGUgSlNGbG9hdDY0QXJyYXlDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZVRhYmxlVmFsdWVzW10g
PQogeworICAgIHsgImZvbyIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc0Zsb2F0NjRBcnJheVByb3RvdHlwZUZ1bmN0aW9uRm9v
KSwgKGludHB0cl90KTEgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmlu
c2ljKSB9LAogICAgIHsgMCwgMCwgMCwgMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERG
Rzo6Tm9JbnRyaW5zaWMpIH0KIH07CiAKICN1bmRlZiBUSFVOS19HRU5FUkFUT1IKLXN0YXRpYyBj
b25zdCBIYXNoVGFibGUgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGVUYWJsZSA9IHsgMSwgMCwgSlNG
bG9hdDY0QXJyYXlQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9Oworc3RhdGljIGNvbnN0IEhhc2hU
YWJsZSBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZVRhYmxlID0geyAyLCAxLCBKU0Zsb2F0NjRBcnJh
eVByb3RvdHlwZVRhYmxlVmFsdWVzLCAwIH07CiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBnZXRK
U0Zsb2F0NjRBcnJheVByb3RvdHlwZVRhYmxlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1
cm4gZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShleGVjLT5nbG9iYWxEYXRhKCksICZKU0Zsb2F0
NjRBcnJheVByb3RvdHlwZVRhYmxlKTsKQEAgLTEzMSw2ICsxMzYsMTggQEAgSlNPYmplY3QqIEpT
RmxvYXQ2NEFycmF5UHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE8KICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpTRmxvYXQ2NEFycmF5Pihl
eGVjLCBnbG9iYWxPYmplY3QpOwogfQogCitib29sIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTRmxv
YXQ2NEFycmF5UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRmxvYXQ2NEFycmF5UHJv
dG90eXBlKj4oY2VsbCk7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVj
dD4oZXhlYywgZ2V0SlNGbG9hdDY0QXJyYXlQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0Zsb2F0NjRBcnJheVByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IpCit7CisgICAgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGUqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXlQcm90b3R5cGUqPihvYmplY3QpOworICAgIHJldHVybiBn
ZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNPYmplY3Q+KGV4ZWMsIGdldEpTRmxvYXQ2NEFy
cmF5UHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7Cit9CisKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUqIGdldEpTRmxvYXQ2NEFycmF5VGFi
bGUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBnZXRIYXNoVGFibGVGb3JHbG9iYWxE
YXRhKGV4ZWMtPmdsb2JhbERhdGEoKSwgJkpTRmxvYXQ2NEFycmF5VGFibGUpOwpAQCAtMjMyLDYg
KzI0OSwyMyBAQCBKU1ZhbHVlIEpTRmxvYXQ2NEFycmF5OjpnZXRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBnZXRET01Db25z
dHJ1Y3RvcjxKU0Zsb2F0NjRBcnJheUNvbnN0cnVjdG9yPihleGVjLCBzdGF0aWNfY2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzRmxvYXQ2NEFycmF5UHJvdG90eXBlRnVuY3Rpb25Gb28oRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwor
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU0Zsb2F0NjRBcnJheTo6c19pbmZvKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgSlNGbG9hdDY0QXJyYXkq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU0Zsb2F0NjRBcnJheSo+KGFzT2JqZWN0KHRoaXNW
YWx1ZSkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTRmxv
YXQ2NEFycmF5OjpzX2luZm8pOworICAgIEZsb2F0NjRBcnJheSogaW1wID0gc3RhdGljX2Nhc3Q8
RmxvYXQ2NEFycmF5Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVU
eXBlRXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworICAgIEZsb2F0MzJBcnJh
eSogYXJyYXkodG9GbG9hdDMyQXJyYXkoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwg
TWlzc2luZ0lzVW5kZWZpbmVkKSkpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpbXAtPmZv
byhhcnJheSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30K
KwogCiBKU1ZhbHVlIEpTRmxvYXQ2NEFycmF5OjpnZXRCeUluZGV4KEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIGluZGV4KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuaAppbmRleCA0ZTNiYmMzMjQ2Njc1NTcyZjMxN2I5
OGJmNDYwNDFkZDJjZjNmMGZhLi40ZjNhNjY3M2NhMDM4ODNkOTYzM2ViYTIxN2RjNWVkZGFiNzRl
YTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNGbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNGbG9hdDY0QXJyYXkuaApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaWZuZGVmIEpTRmxv
YXQ2NEFycmF5X2gKICNkZWZpbmUgSlNGbG9hdDY0QXJyYXlfaAogCi0jaW5jbHVkZSAiRmxvYXQ2
NEFycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8d3Rm
L0Zsb2F0NjRBcnJheS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgwLDYgKzgwLDgg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2lu
Zm87CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYp
OworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewogICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CkBAIC04OCw3ICs5MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSlNGbG9hdDY0QXJy
YXlQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNOb25GaW5hbE9iamVj
dChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpIHsgfQogcHJvdGVjdGVkOgotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB9OwogCiBjbGFzcyBKU0Zsb2F0
NjRBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKQEAgLTEx
OCw2ICsxMjAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7CiB9Owog
CisvLyBGdW5jdGlvbnMKKworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRmxv
YXQ2NEFycmF5UHJvdG90eXBlRnVuY3Rpb25Gb28oSlNDOjpFeGVjU3RhdGUqKTsKIC8vIEF0dHJp
YnV0ZXMKIAogSlNDOjpKU1ZhbHVlIGpzRmxvYXQ2NEFycmF5Q29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NRmxvYXQ2NEFy
cmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01GbG9h
dDY0QXJyYXkuaAppbmRleCA0NGNhOWU1NWI4MDgwZmU3N2U0ZmU4NzhhYjU4ZTE2NzQ3YmY1Yjg2
Li44NTU2NzE5OWMxY2MxNDA0YTAwZjJmZDhmODQ5YjA1ZmU1ZDE2ZDU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01GbG9hdDY0QXJyYXku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01GbG9h
dDY0QXJyYXkuaApAQCAtMjgsNyArMjgsMTAgQEAKIAogI2lmIFdFQktJVF9WRVJTSU9OX01BWF9B
TExPV0VEID49IFdFQktJVF9WRVJTSU9OX0xBVEVTVAogCitAY2xhc3MgRE9NRmxvYXQzMkFycmF5
OworCiBAaW50ZXJmYWNlIERPTUZsb2F0NjRBcnJheSA6IERPTUFycmF5QnVmZmVyVmlldworLSAo
dm9pZClmb286KERPTUZsb2F0MzJBcnJheSAqKWFycmF5OwogQGVuZAogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTUZsb2F0
NjRBcnJheS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TUZsb2F0NjRBcnJheS5tbQppbmRleCA2MDYxNjY0NDcyZDUyZDU5MzEyZDA4MGI3YTQ1MzAxM2Mx
MWI0ZmY4Li4wMjljMzIyMmJlMGM1NGU3ZGQ0NGJmYTQ2ZjQxNzMxODUzZGE1ZTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01GbG9hdDY0
QXJyYXkubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NRmxvYXQ2NEFycmF5Lm1tCkBAIC0zMywxMCArMzMsMTIgQEAKICNpbXBvcnQgIkRPTUNTU1J1
bGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRmxvYXQzMkFycmF5SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIkRPTUZsb2F0NjRBcnJheUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVN0eWxlU2hlZXRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRXhj
ZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkZsb2F0MzJBcnJheS5oIgogI2ltcG9ydCAiRmxv
YXQ2NEFycmF5LmgiCiAjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbXBvcnQg
IlRocmVhZENoZWNrLmgiCkBAIC00Nyw2ICs0OSwxMiBAQAogCiBAaW1wbGVtZW50YXRpb24gRE9N
RmxvYXQ2NEFycmF5CiAKKy0gKHZvaWQpZm9vOihET01GbG9hdDMyQXJyYXkgKilhcnJheQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5mb28o
Y29yZShhcnJheSkpOworfQorCiBAZW5kCiAKIFdlYkNvcmU6OkZsb2F0NjRBcnJheSogY29yZShE
T01GbG9hdDY0QXJyYXkgKndyYXBwZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZEFycmF5LmlkbAppbmRleCA1N2I0MmJlYmQyNWIw
NzMxZDNkMWM2ZDg1MzdmNWY4ODRmZDEzMDhhLi40NTc5NGYyOTI3OGM4MjZjMTQ2OTMxMGZiZDQy
NTMxZmI4NjMyMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0VHlwZWRBcnJheS5pZGwKQEAgLTM0LDUgKzM0LDYgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICBDdXN0b21Ub0pTLAogICAgICAgICBEb250Q2hlY2tFbnVtcwogICAgIF0g
RmxvYXQ2NEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICAgICAgdm9pZCBmb28oaW4gRmxv
YXQzMkFycmF5IGFycmF5KTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKaW5kZXggNTg2
MTFhMTEwMjBhMjkwMmEwMzIyZDUzYmVlY2Q0YjQ0MmQ4NmExZC4uMWEyYTI4NjQ2NDBhOWVmOTEz
MmQ1ZmNmZDVhZWFiYzRkZmJkYzFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCkBAIC0yMSwxMyAr
MjEsMTggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOEZsb2F0NjRBcnJheS5o
IgogCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4
QmluZGluZy5oIgorI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgogI2luY2x1ZGUgIlY4Qmlu
ZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiVjhGbG9h
dDMyQXJyYXkuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4
UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0Zs
b2F0NjRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0zOCw2ICs0MywxNyBAQCBuYW1lc3BhY2UgRmxvYXQ2NEFycmF5SW50ZXJu
YWwgewogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9CiAKK3N0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZm9vQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5GbG9hdDY0QXJyYXkuZm9vIik7CisgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgIEZsb2F0NjRBcnJheSogaW1w
ID0gVjhGbG9hdDY0QXJyYXk6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIEVYQ0VQVElP
Tl9CTE9DSyhGbG9hdDMyQXJyYXkqLCBhcnJheSwgVjhGbG9hdDMyQXJyYXk6Okhhc0luc3RhbmNl
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpID8g
VjhGbG9hdDMyQXJyYXk6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpIDogMCk7
CisgICAgaW1wLT5mb28oYXJyYXkpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgRmxvYXQ2NEFycmF5SW50ZXJuYWwKIAogc3RhdGljIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOEZsb2F0NjRBcnJh
eVRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjKQpAQCAt
NTAsOCArNjYsMTggQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
PiBDb25maWd1cmVWOEZsb2F0NjRBcnJheVRlbXBsYXRlKHY4OjoKICAgICAgICAgMCwgMCk7CiAg
ICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3
aWxsIG5vdCBiZSB1c2VkLgogICAgIGRlc2MtPlNldENhbGxIYW5kbGVyKFY4RmxvYXQ2NEFycmF5
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRl
PiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKKyAgICB2ODo6TG9jYWw8djg6
Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUg
dXNlZC4KKyAgICBVTlVTRURfUEFSQU0ocHJvdG8pOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxs
IG5vdCBiZSB1c2VkLgogICAgIAogCisgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnZm9vJworICAg
IGNvbnN0IGludCBmb29BcmdjID0gMTsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBmb29Bcmd2W2Zvb0FyZ2NdID0geyBWOEZsb2F0MzJBcnJheTo6R2V0UmF3VGVtcGxhdGUo
KSB9OworICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gZm9vU2lnbmF0dXJlID0gdjg6OlNp
Z25hdHVyZTo6TmV3KGRlc2MsIGZvb0FyZ2MsIGZvb0FyZ3YpOworICAgIHByb3RvLT5TZXQodjg6
OlN0cmluZzo6TmV3KCJmb28iKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhGbG9hdDY0QXJy
YXlJbnRlcm5hbDo6Zm9vQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBmb29TaWdu
YXR1cmUpKTsKKwogICAgIC8vIEN1c3RvbSB0b1N0cmluZyB0ZW1wbGF0ZQogICAgIGRlc2MtPlNl
dChnZXRUb1N0cmluZ05hbWUoKSwgZ2V0VG9TdHJpbmdUZW1wbGF0ZSgpKTsKICAgICByZXR1cm4g
ZGVzYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOEZsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKaW5kZXggZDc5MWZjZGQxNWRiMTc2ZjZiOTg5ZDM3NGI3NWU5
NTRjYWMwOTFmNy4uYjFjZGJlNzQzYWRjYzViMjhhYmVlNTA0ZmRiNTM3YjliZmE4MDExMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2
NEFycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
RmxvYXQ2NEFycmF5LmgKQEAgLTIxLDExICsyMSwxMSBAQAogI2lmbmRlZiBWOEZsb2F0NjRBcnJh
eV9oCiAjZGVmaW5lIFY4RmxvYXQ2NEFycmF5X2gKIAotI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5o
IgogI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVy
LmgiCiAjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAjaW5jbHVkZSA8djguaD4KKyNpbmNs
dWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaApp
bmRleCAwMzBlMTg2YTgzMzA0MzlkOWM0NDFiMjMzODdjYjQyZDExZjk3OWYxLi4zYTk2ODhhMjE1
NTA4NDdkZGIxNTVhNjNjZDlkZTc5NzdkMDQyNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5oCkBAIC0yOCwxMyArMjgsMTMgQEAKICNpZm5kZWYgTWVzc2FnZUV2ZW50X2gKICNkZWZpbmUg
TWVzc2FnZUV2ZW50X2gKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiQmxv
Yi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmlu
ZGV4IDU4NWIwMTM3ZWM1YmNkYjkxYzFhNTM3MjhkNGU2ZjZhNDgxZTA3MjguLjI5YzU5ODQ3MDcz
YjQzYzIyNDVjNTIwNzMyNGRjY2ViYmExY2FhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyLmNwcApAQCAtMzQsMTMgKzM0LDEzIEBACiAKICNpbmNsdWRlICJGaWxlUmVhZGVyLmgi
CiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5o
IgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiT3Bl
cmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0FycmF5
QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
LmNwcAppbmRleCAxYjU0MTI4OGQwZjcyMWZmZjY3ODkxZTMyMjFjMDMwNDRlZGYwNWNjLi41ZmI2
MDYxYzBmODY0NjA1OGVmMjczYjQ5NjEyYTJjZjU0ODRkZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1
ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5j
bHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JVUkwuaCIK
QEAgLTQ1LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuY3BwCmluZGV4IDg1ZTdmNTJh
ZDMxN2ViZWE3MTE5NDE5M2EyMzUzOTAyY2M5MmQ1YTkuLjFmZTVjN2Y3M2FlMzkwNTljZjQ5NjUz
MzM5NTlmNjgyYjIwNGM4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlclN5bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5
bmMuY3BwCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2luY2x1ZGUgIkZpbGVSZWFkZXJTeW5jLmgi
CiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRl
ICJCbG9iVVJMLmgiCiAjaW5jbHVkZSAiRmlsZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkZpbGVS
ZWFkZXJMb2FkZXIuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3BwCmluZGV4IDA2NzFlMDUzNWQyMzE4NWZhMTVj
MWRkZTVmNThlY2RhMzZjMTFkY2EuLmE4MTBhZDhmNTQyZDE5ZjE2YzUzY2ExNzdkZDMwZDU1NjFm
MWUxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3Bw
CkBAIC0zMiwxMiArMzIsMTIgQEAKIAogI2luY2x1ZGUgIldlYktpdEJsb2JCdWlsZGVyLmgiCiAK
LSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkxpbmVFbmRpbmcu
aCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQxYjdmNjM3NjE0OTBlYzJjNDljZjVkM2IwZjJlNjBk
MzYxMDAzOWEuLmI2MDZjZjc0MzYwZjdlZmFiNDhmZmIxMDA5YTExNWMzNjcyNjkwN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsMTAgKzcxLDEwIEBA
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNs
dWRlICJVVUlELmgiCi0jaW5jbHVkZSAiVWludDhBcnJheS5oIgogI2luY2x1ZGUgPGxpbWl0cz4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzOGRkYTYxMWEwZGU4N2FiZDRiMjRmNDY1ZjZmMWI0NzBmM2Y0OGNjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE4NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCi0jaW5j
bHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCi0KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotc3RhdGljIGludCBjbGFt
cFZhbHVlKGludCB4LCBpbnQgbGVmdCwgaW50IHJpZ2h0KQotewotICAgIEFTU0VSVChsZWZ0IDw9
IHJpZ2h0KTsKLSAgICBpZiAoeCA8IGxlZnQpCi0gICAgICAgIHggPSBsZWZ0OwotICAgIGlmIChy
aWdodCA8IHgpCi0gICAgICAgIHggPSByaWdodDsKLSAgICByZXR1cm4geDsKLX0KLQotUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZSh1bnNpZ25lZCBudW1FbGVtZW50
cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplKQotewotICAgIEFycmF5QnVmZmVyQ29udGVudHMg
Y29udGVudHM7Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2NhdGUobnVtRWxlbWVu
dHMsIGVsZW1lbnRCeXRlU2l6ZSwgY29udGVudHMpOwotICAgIGlmICghY29udGVudHMubV9kYXRh
KQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFycmF5QnVmZmVy
KGNvbnRlbnRzKSk7Ci19Ci0KLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpj
cmVhdGUoQXJyYXlCdWZmZXIqIG90aGVyKQotewotICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKG90aGVyLT5kYXRhKCksIG90aGVyLT5ieXRlTGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IHZvaWQqIHNvdXJjZSwgdW5z
aWduZWQgYnl0ZUxlbmd0aCkKLXsKLSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIGNvbnRlbnRzOwot
ICAgIEFycmF5QnVmZmVyQ29udGVudHM6OnRyeUFsbG9jYXRlKGJ5dGVMZW5ndGgsIDEsIGNvbnRl
bnRzKTsKLSAgICBpZiAoIWNvbnRlbnRzLm1fZGF0YSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBhZG9wdFJlZihuZXcgQXJyYXlCdWZmZXIoY29u
dGVudHMpKTsKLSAgICBtZW1jcHkoYnVmZmVyLT5kYXRhKCksIHNvdXJjZSwgYnl0ZUxlbmd0aCk7
Ci0gICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7Ci19Ci0KLVBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoQXJyYXlCdWZmZXJDb250ZW50cyYgY29udGVudHMpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcnJheUJ1ZmZlcihjb250ZW50cykpOwotfQotCi1B
cnJheUJ1ZmZlcjo6QXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYgY29udGVudHMpCi0g
ICAgOiBtX2ZpcnN0VmlldygwKQotewotICAgIGNvbnRlbnRzLnRyYW5zZmVyKG1fY29udGVudHMp
OwotfQotCi12b2lkKiBBcnJheUJ1ZmZlcjo6ZGF0YSgpCi17Ci0gICAgcmV0dXJuIG1fY29udGVu
dHMubV9kYXRhOwotfQotCi1jb25zdCB2b2lkKiBBcnJheUJ1ZmZlcjo6ZGF0YSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fY29udGVudHMubV9kYXRhOwotfQotCi11bnNpZ25lZCBBcnJheUJ1ZmZl
cjo6Ynl0ZUxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGVudHMubV9zaXplSW5C
eXRlczsKLX0KLQotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OnNsaWNlKGlu
dCBiZWdpbiwgaW50IGVuZCkgY29uc3QKLXsKLSAgICByZXR1cm4gc2xpY2VJbXBsKGNsYW1wSW5k
ZXgoYmVnaW4pLCBjbGFtcEluZGV4KGVuZCkpOwotfQotCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBBcnJheUJ1ZmZlcjo6c2xpY2UoaW50IGJlZ2luKSBjb25zdAotewotICAgIHJldHVybiBzbGlj
ZUltcGwoY2xhbXBJbmRleChiZWdpbiksIGJ5dGVMZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpzbGljZUltcGwodW5zaWduZWQgYmVnaW4sIHVuc2ln
bmVkIGVuZCkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBzaXplID0gYmVnaW4gPD0gZW5kID8gZW5k
IC0gYmVnaW4gOiAwOwotICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0
PGNvbnN0IGNoYXIqPihkYXRhKCkpICsgYmVnaW4sIHNpemUpOwotfQotCi11bnNpZ25lZCBBcnJh
eUJ1ZmZlcjo6Y2xhbXBJbmRleChpbnQgaW5kZXgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgY3Vy
cmVudExlbmd0aCA9IGJ5dGVMZW5ndGgoKTsKLSAgICBpZiAoaW5kZXggPCAwKQotICAgICAgICBp
bmRleCA9IGN1cnJlbnRMZW5ndGggKyBpbmRleDsKLSAgICByZXR1cm4gY2xhbXBWYWx1ZShpbmRl
eCwgMCwgY3VycmVudExlbmd0aCk7Ci19Ci0KLWJvb2wgQXJyYXlCdWZmZXI6OnRyYW5zZmVyKEFy
cmF5QnVmZmVyQ29udGVudHMmIHJlc3VsdCwgVmVjdG9yPEFycmF5QnVmZmVyVmlldyo+JiBuZXV0
ZXJlZFZpZXdzKQotewotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4ga2VlcEFsaXZlKHRoaXMpOwot
Ci0gICAgaWYgKCFtX2NvbnRlbnRzLm1fZGF0YSkgewotICAgICAgICByZXN1bHQubV9kYXRhID0g
MDsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIG1fY29udGVudHMudHJhbnNm
ZXIocmVzdWx0KTsKLQotICAgIHdoaWxlIChtX2ZpcnN0VmlldykgewotICAgICAgICBBcnJheUJ1
ZmZlclZpZXcqIGN1cnJlbnQgPSBtX2ZpcnN0VmlldzsKLSAgICAgICAgcmVtb3ZlVmlldyhjdXJy
ZW50KTsKLSAgICAgICAgY3VycmVudC0+bmV1dGVyKCk7Ci0gICAgICAgIG5ldXRlcmVkVmlld3Mu
YXBwZW5kKGN1cnJlbnQpOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotQXJyYXlCdWZm
ZXJDb250ZW50czo6fkFycmF5QnVmZmVyQ29udGVudHMoKQotewotICAgIFdURjo6ZmFzdEZyZWUo
bV9kYXRhKTsKLX0KLQotdm9pZCBBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZSh1bnNp
Z25lZCBudW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1ZmZlckNv
bnRlbnRzJiByZXN1bHQpCi17Ci0gICAgLy8gRG8gbm90IGFsbG93IDMyLWJpdCBvdmVyZmxvdyBv
ZiB0aGUgdG90YWwgc2l6ZS4KLSAgICAvLyBGSVhNRTogV2h5IG5vdD8gVGhlIHRyeUZhc3RDYWxs
b2MgZnVuY3Rpb24gYWxyZWFkeSBjaGVja3MgaXRzIGFyZ3VtZW50cywKLSAgICAvLyBhbmQgd2ls
bCBmYWlsIGlmIHRoZXJlIGlzIGFueSBvdmVyZmxvdywgc28gd2h5IHNob3VsZCB3ZSBpbmNsdWRl
IGEKLSAgICAvLyByZWR1ZGFudCB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlIGNoZWNrIGhlcmU/
Ci0gICAgaWYgKG51bUVsZW1lbnRzKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRvdGFsU2l6ZSA9IG51
bUVsZW1lbnRzICogZWxlbWVudEJ5dGVTaXplOwotICAgICAgICBpZiAodG90YWxTaXplIC8gbnVt
RWxlbWVudHMgIT0gZWxlbWVudEJ5dGVTaXplKSB7Ci0gICAgICAgICAgICByZXN1bHQubV9kYXRh
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoV1RG
Ojp0cnlGYXN0Q2FsbG9jKG51bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUpLmdldFZhbHVlKHJl
c3VsdC5tX2RhdGEpKSB7Ci0gICAgICAgIHJlc3VsdC5tX3NpemVJbkJ5dGVzID0gbnVtRWxlbWVu
dHMgKiBlbGVtZW50Qnl0ZVNpemU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgcmVzdWx0
Lm1fZGF0YSA9IDA7Ci19Ci0KLXZvaWQgQXJyYXlCdWZmZXI6OmFkZFZpZXcoQXJyYXlCdWZmZXJW
aWV3KiB2aWV3KQotewotICAgIHZpZXctPm1fYnVmZmVyID0gdGhpczsKLSAgICB2aWV3LT5tX3By
ZXZWaWV3ID0gMDsKLSAgICB2aWV3LT5tX25leHRWaWV3ID0gbV9maXJzdFZpZXc7Ci0gICAgaWYg
KG1fZmlyc3RWaWV3KQotICAgICAgICBtX2ZpcnN0Vmlldy0+bV9wcmV2VmlldyA9IHZpZXc7Ci0g
ICAgbV9maXJzdFZpZXcgPSB2aWV3OwotfQotCi12b2lkIEFycmF5QnVmZmVyOjpyZW1vdmVWaWV3
KEFycmF5QnVmZmVyVmlldyogdmlldykKLXsKLSAgICBBU1NFUlQodGhpcyA9PSB2aWV3LT5tX2J1
ZmZlcik7Ci0gICAgaWYgKHZpZXctPm1fbmV4dFZpZXcpCi0gICAgICAgIHZpZXctPm1fbmV4dFZp
ZXctPm1fcHJldlZpZXcgPSB2aWV3LT5tX3ByZXZWaWV3OwotICAgIGlmICh2aWV3LT5tX3ByZXZW
aWV3KQotICAgICAgICB2aWV3LT5tX3ByZXZWaWV3LT5tX25leHRWaWV3ID0gdmlldy0+bV9uZXh0
VmlldzsKLSAgICBpZiAobV9maXJzdFZpZXcgPT0gdmlldykKLSAgICAgICAgbV9maXJzdFZpZXcg
PSB2aWV3LT5tX25leHRWaWV3OwotICAgIHZpZXctPm1fcHJldlZpZXcgPSB2aWV3LT5tX25leHRW
aWV3ID0gMDsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNTM0MjJmYmM3NWM1NTY2MmNlMmQ1ZjU3
NmI1MmMxMDg4OWRjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBBcnJheUJ1ZmZlcl9oCi0j
ZGVmaW5lIEFycmF5QnVmZmVyX2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEFycmF5QnVmZmVy
OwotY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwotCi1jbGFzcyBBcnJheUJ1ZmZlckNvbnRlbnRzIHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRlbnRzKTsKLXB1YmxpYzoK
LSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzKCkgCi0gICAgICAgIDogbV9kYXRhKDApCi0gICAgICAg
ICwgbV9zaXplSW5CeXRlcygwKQotICAgIHsgfQotCi0gICAgfkFycmF5QnVmZmVyQ29udGVudHMo
KTsKLQotICAgIHZvaWQqIGRhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KLSAgICB1bnNpZ25lZCBz
aXplSW5CeXRlcygpIHsgcmV0dXJuIG1fc2l6ZUluQnl0ZXM7IH0KLQotcHJpdmF0ZToKLSAgICBB
cnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQqIGRhdGEsIHVuc2lnbmVkIHNpemVJbkJ5dGVzKSAKLSAg
ICAgICAgOiBtX2RhdGEoZGF0YSkKLSAgICAgICAgLCBtX3NpemVJbkJ5dGVzKHNpemVJbkJ5dGVz
KQotICAgIHsgfQotCi0gICAgZnJpZW5kIGNsYXNzIEFycmF5QnVmZmVyOwotCi0gICAgc3RhdGlj
IHZvaWQgdHJ5QWxsb2NhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRC
eXRlU2l6ZSwgQXJyYXlCdWZmZXJDb250ZW50cyYpOwotICAgIHZvaWQgdHJhbnNmZXIoQXJyYXlC
dWZmZXJDb250ZW50cyYgb3RoZXIpIAotICAgIHsKLSAgICAgICAgQVNTRVJUKCFvdGhlci5tX2Rh
dGEpOwotICAgICAgICBvdGhlci5tX2RhdGEgPSBtX2RhdGE7Ci0gICAgICAgIG90aGVyLm1fc2l6
ZUluQnl0ZXMgPSBtX3NpemVJbkJ5dGVzOwotICAgICAgICBtX2RhdGEgPSAwOyAKLSAgICAgICAg
bV9zaXplSW5CeXRlcyA9IDA7IAotICAgIH0KLQotICAgIHZvaWQqIG1fZGF0YTsKLSAgICB1bnNp
Z25lZCBtX3NpemVJbkJ5dGVzOwotfTsKLQotY2xhc3MgQXJyYXlCdWZmZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxBcnJheUJ1ZmZlcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBjcmVhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRC
eXRlU2l6ZSk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJh
eUJ1ZmZlciopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUoY29u
c3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKEFycmF5QnVmZmVyQ29udGVudHMmKTsKLQotICAgIHZv
aWQqIGRhdGEoKTsKLSAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQg
Ynl0ZUxlbmd0aCgpIGNvbnN0OwotCi0gICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gc2xpY2Uo
aW50IGJlZ2luLCBpbnQgZW5kKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBz
bGljZShpbnQgYmVnaW4pIGNvbnN0OwotCi0gICAgdm9pZCBhZGRWaWV3KEFycmF5QnVmZmVyVmll
dyopOwotICAgIHZvaWQgcmVtb3ZlVmlldyhBcnJheUJ1ZmZlclZpZXcqKTsKLQotICAgIGJvb2wg
dHJhbnNmZXIoQXJyYXlCdWZmZXJDb250ZW50cyYsIFZlY3RvcjxBcnJheUJ1ZmZlclZpZXcqPiYg
bmV1dGVyZWRWaWV3cyk7Ci0KLSAgICB+QXJyYXlCdWZmZXIoKSB7IH0KLQotcHJpdmF0ZToKLSAg
ICBBcnJheUJ1ZmZlcihBcnJheUJ1ZmZlckNvbnRlbnRzJik7Ci0gICAgUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gc2xpY2VJbXBsKHVuc2lnbmVkIGJlZ2luLCB1bnNpZ25lZCBlbmQpIGNvbnN0Owot
ICAgIHVuc2lnbmVkIGNsYW1wSW5kZXgoaW50IGluZGV4KSBjb25zdDsKLQotICAgIEFycmF5QnVm
ZmVyQ29udGVudHMgbV9jb250ZW50czsKLSAgICBBcnJheUJ1ZmZlclZpZXcqIG1fZmlyc3RWaWV3
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6QXJyYXlCdWZmZXI7Ci0K
LSNlbmRpZiAvLyBBcnJheUJ1ZmZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjgxZmNj
MWRkYmFkNmU2OTRjMTI2ODUxNDZkY2NiMjRjNWMxOTczOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlclZpZXcuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCi0KLSNp
bmNsdWRlICJBcnJheUJ1ZmZlci5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotbmFt
ZXNwYWNlIFdURiB7Ci0KLUFycmF5QnVmZmVyVmlldzo6QXJyYXlCdWZmZXJWaWV3KFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Ynl0ZU9mZnNldCkKLSAgICAgICAgOiBtX2J5dGVPZmZzZXQoYnl0ZU9mZnNldCkKLSAgICAgICAg
LCBtX2J1ZmZlcihidWZmZXIpCi17Ci0gICAgbV9iYXNlQWRkcmVzcyA9IG1fYnVmZmVyID8gKHN0
YXRpY19jYXN0PGNoYXIqPihtX2J1ZmZlci0+ZGF0YSgpKSArIG1fYnl0ZU9mZnNldCkgOiAwOwot
ICAgIGlmIChtX2J1ZmZlcikgCi0gICAgICAgIG1fYnVmZmVyLT5hZGRWaWV3KHRoaXMpOwotfQot
Ci1BcnJheUJ1ZmZlclZpZXc6On5BcnJheUJ1ZmZlclZpZXcoKQotewotICAgIGlmIChtX2J1ZmZl
cikKLSAgICAgICAgbV9idWZmZXItPnJlbW92ZVZpZXcodGhpcyk7Ci19Ci0KLWJvb2wgQXJyYXlC
dWZmZXJWaWV3OjpzZXRJbXBsKEFycmF5QnVmZmVyVmlldyogYXJyYXksIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQpCi17Ci0gICAgaWYgKGJ5dGVPZmZzZXQgPiBieXRlTGVuZ3RoKCkKLSAgICAgICAgfHwg
Ynl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPiBieXRlTGVuZ3RoKCkKLSAgICAgICAg
fHwgYnl0ZU9mZnNldCArIGFycmF5LT5ieXRlTGVuZ3RoKCkgPCBieXRlT2Zmc2V0KSB7Ci0gICAg
ICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIGNoYXIqIGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFzZUFk
ZHJlc3MoKSk7Ci0gICAgbWVtbW92ZShiYXNlICsgYnl0ZU9mZnNldCwgYXJyYXktPmJhc2VBZGRy
ZXNzKCksIGFycmF5LT5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29s
IEFycmF5QnVmZmVyVmlldzo6c2V0UmFuZ2VJbXBsKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBk
YXRhQnl0ZUxlbmd0aCwgdW5zaWduZWQgYnl0ZU9mZnNldCkKLXsKLSAgICBpZiAoYnl0ZU9mZnNl
dCA+IGJ5dGVMZW5ndGgoKQotICAgICAgICB8fCBieXRlT2Zmc2V0ICsgZGF0YUJ5dGVMZW5ndGgg
PiBieXRlTGVuZ3RoKCkKLSAgICAgICAgfHwgYnl0ZU9mZnNldCArIGRhdGFCeXRlTGVuZ3RoIDwg
Ynl0ZU9mZnNldCkgewotICAgICAgICAvLyBPdXQgb2YgcmFuZ2Ugb2Zmc2V0IG9yIG92ZXJmbG93
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBjaGFyKiBiYXNlID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KGJhc2VBZGRyZXNzKCkpOwotICAgIG1lbW1vdmUoYmFzZSArIGJ5dGVPZmZz
ZXQsIGRhdGEsIGRhdGFCeXRlTGVuZ3RoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBB
cnJheUJ1ZmZlclZpZXc6Onplcm9SYW5nZUltcGwodW5zaWduZWQgYnl0ZU9mZnNldCwgc2l6ZV90
IHJhbmdlQnl0ZUxlbmd0aCkKLXsKLSAgICBpZiAoYnl0ZU9mZnNldCA+IGJ5dGVMZW5ndGgoKQot
ICAgICAgICB8fCBieXRlT2Zmc2V0ICsgcmFuZ2VCeXRlTGVuZ3RoID4gYnl0ZUxlbmd0aCgpCi0g
ICAgICAgIHx8IGJ5dGVPZmZzZXQgKyByYW5nZUJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7Ci0g
ICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIGNoYXIqIGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFz
ZUFkZHJlc3MoKSk7Ci0gICAgbWVtc2V0KGJhc2UgKyBieXRlT2Zmc2V0LCAwLCByYW5nZUJ5dGVM
ZW5ndGgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEFycmF5QnVmZmVyVmlldzo6Y2Fs
Y3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVuZCwgdW5zaWduZWQgYXJyYXlT
aXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQq
IG9mZnNldCwgdW5zaWduZWQqIGxlbmd0aCkKLXsKLSAgICBpZiAoc3RhcnQgPCAwKQotICAgICAg
ICBzdGFydCArPSBhcnJheVNpemU7Ci0gICAgaWYgKHN0YXJ0IDwgMCkKLSAgICAgICAgc3RhcnQg
PSAwOwotICAgIGlmIChlbmQgPCAwKQotICAgICAgICBlbmQgKz0gYXJyYXlTaXplOwotICAgIGlm
IChlbmQgPCAwKQotICAgICAgICBlbmQgPSAwOwotICAgIGlmIChlbmQgPCBzdGFydCkKLSAgICAg
ICAgZW5kID0gc3RhcnQ7Ci0gICAgKm9mZnNldCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdGFy
dCk7Ci0gICAgKmxlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBzdGFydCk7Ci19
Ci0KLXZvaWQgQXJyYXlCdWZmZXJWaWV3OjpuZXV0ZXIoKQotewotICAgIG1fYnVmZmVyID0gMDsK
LSAgICBtX2J5dGVPZmZzZXQgPSAwOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyVmlldy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTgz
YTY5Mjk0OWQzYzdlYmVjODAyZDY1YTUyZjkwMTYxNzI3OGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyVmlldy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaWZuZGVmIEFycmF5QnVmZmVyVmlld19oCi0jZGVmaW5lIEFycmF5QnVmZmVyVmlld19oCi0K
LSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgotCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1
ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXVEYg
ewotCi1jbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZl
clZpZXc+IHsKLSAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVBcnJheSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXko
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Nob3J0QXJyYXko
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzSW50
QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2ln
bmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICBQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fYnVmZmVy
OwotICAgIH0KLQotICAgIHZvaWQqIGJhc2VBZGRyZXNzKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX2Jhc2VBZGRyZXNzOwotICAgIH0KLQotICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQo
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fYnl0ZU9mZnNldDsKLSAgICB9Ci0KLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFs
IH5BcnJheUJ1ZmZlclZpZXcoKTsKLQotICBwcm90ZWN0ZWQ6Ci0gICAgQXJyYXlCdWZmZXJWaWV3
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCk7Ci0K
LSAgICBib29sIHNldEltcGwoQXJyYXlCdWZmZXJWaWV3KiwgdW5zaWduZWQgYnl0ZU9mZnNldCk7
Ci0KLSAgICBib29sIHNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUJ5
dGVMZW5ndGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQpOwotCi0gICAgYm9vbCB6ZXJvUmFuZ2VJbXBs
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNpemVfdCByYW5nZUJ5dGVMZW5ndGgpOwotCi0gICAgc3Rh
dGljIHZvaWQgY2FsY3VsYXRlT2Zmc2V0QW5kTGVuZ3RoKGludCBzdGFydCwgaW50IGVuZCwgdW5z
aWduZWQgYXJyYXlTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCogb2Zmc2V0LCB1bnNpZ25lZCogbGVuZ3RoKTsKLQotICAgIC8vIEhlbHBlciB0
byB2ZXJpZnkgdGhhdCBhIGdpdmVuIHN1Yi1yYW5nZSBvZiBhbiBBcnJheUJ1ZmZlciBpcwotICAg
IC8vIHdpdGhpbiByYW5nZS4KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgICBzdGF0aWMg
Ym9vbCB2ZXJpZnlTdWJSYW5nZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1FbGVtZW50cykKLSAgICB7Ci0gICAg
ICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAo
c2l6ZW9mKFQpID4gMSAmJiBieXRlT2Zmc2V0ICUgc2l6ZW9mKFQpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB1bnNpZ25lZCByZW1haW5pbmdF
bGVtZW50cyA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIGJ5dGVPZmZzZXQpIC8gc2l6ZW9mKFQp
OwotICAgICAgICBpZiAobnVtRWxlbWVudHMgPiByZW1haW5pbmdFbGVtZW50cykKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgLy8g
SW5wdXQgb2Zmc2V0IGlzIGluIG51bWJlciBvZiBlbGVtZW50cyBmcm9tIHRoaXMgYXJyYXkncyB2
aWV3OwotICAgIC8vIG91dHB1dCBvZmZzZXQgaXMgaW4gbnVtYmVyIG9mIGJ5dGVzIGZyb20gdGhl
IHVuZGVybHlpbmcgYnVmZmVyJ3Mgdmlldy4KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAg
ICBzdGF0aWMgdm9pZCBjbGFtcE9mZnNldEFuZE51bUVsZW1lbnRzKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGFycmF5Qnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkICpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCAqbnVtRWxlbWVudHMpCi0gICAgewotICAgICAgICB1
bnNpZ25lZCBtYXhPZmZzZXQgPSAoVUlOVF9NQVggLSBhcnJheUJ5dGVPZmZzZXQpIC8gc2l6ZW9m
KFQpOwotICAgICAgICBpZiAoKm9mZnNldCA+IG1heE9mZnNldCkgewotICAgICAgICAgICAgKm9m
ZnNldCA9IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOwotICAgICAgICAgICAgKm51bUVsZW1lbnRzID0g
MDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAqb2Zmc2V0ID0gYXJy
YXlCeXRlT2Zmc2V0ICsgKm9mZnNldCAqIHNpemVvZihUKTsKLSAgICAgICAgKm9mZnNldCA9IHN0
ZDo6bWluKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpLCAqb2Zmc2V0KTsKLSAgICAgICAgdW5zaWduZWQg
cmVtYWluaW5nRWxlbWVudHMgPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSAqb2Zmc2V0KSAvIHNp
emVvZihUKTsKLSAgICAgICAgKm51bUVsZW1lbnRzID0gc3RkOjptaW4ocmVtYWluaW5nRWxlbWVu
dHMsICpudW1FbGVtZW50cyk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOwot
Ci0gICAgLy8gVGhpcyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgQXJyYXlCdWZmZXIncyBzdG9yYWdl
LCBwbHVzIHRoZSBieXRlIG9mZnNldC4KLSAgICB2b2lkKiBtX2Jhc2VBZGRyZXNzOwotCi0gICAg
dW5zaWduZWQgbV9ieXRlT2Zmc2V0OwotCi0gIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEFy
cmF5QnVmZmVyOwotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbV9idWZmZXI7Ci0gICAgQXJyYXlC
dWZmZXJWaWV3KiBtX3ByZXZWaWV3OwotICAgIEFycmF5QnVmZmVyVmlldyogbV9uZXh0VmlldzsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkFycmF5QnVmZmVyVmlldzsK
LQotI2VuZGlmIC8vIEFycmF5QnVmZmVyVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0
YVZpZXcuaAppbmRleCBmMWMyNGI2NTA2NjQ1YmU0MGI5ZTE0ZDYzNWE3YTVlZjM4ZDAyZDE0Li42
M2IxNTZkM2QyZGRmYWVhNDZjZjU0ZGJhOWM4YjNkYWU5MzdhNDM0IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgRGF0YVZpZXdf
aAogI2RlZmluZSBEYXRhVmlld19oCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKKyNp
bmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zs
b2F0MzJBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3YzRiZDUyMDk5
Nzc0MjQwYTI4ZDIxMzRhNDFmOTE4ZjhkZjIwMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFy
cmF5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKLQotbmFtZXNwYWNlIFdURiB7
Ci0KLVBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh1bnNpZ25l
ZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6Y3JlYXRlPEZs
b2F0MzJBcnJheT4obGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0
MzJBcnJheTo6Y3JlYXRlKGNvbnN0IGZsb2F0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmNyZWF0ZTxGbG9hdDMyQXJyYXk+KGFy
cmF5LCBsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5
OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6Y3JlYXRlPEZsb2F0MzJBcnJheT4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQot
Ci1GbG9hdDMyQXJyYXk6OkZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IFR5cGVkQXJy
YXlCYXNlPGZsb2F0PihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1Jl
ZlB0cjxGbG9hdDMyQXJyYXk+IEZsb2F0MzJBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25z
dAotewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBl
bmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5SW1wbDxGbG9hdDMyQXJyYXk+KHN0YXJ0
LCBlbmQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9G
bG9hdDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTFhMTM5N2Q0MDVhYjU3NWM3ZWRkYTBj
NzE2YzgxYmJiYTk5MWMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBGbG9hdDMyQXJyYXlfaAot
I2RlZmluZSBGbG9hdDMyQXJyYXlfaAotCi0jaW5jbHVkZSAiVHlwZWRBcnJheUJhc2UuaCIKLSNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgRmxv
YXQzMkFycmF5IDogcHVibGljIFR5cGVkQXJyYXlCYXNlPGZsb2F0PiB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZShjb25zdCBmbG9hdCog
YXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRl
T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBo
ZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChUeXBl
ZEFycmF5QmFzZTxmbG9hdD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVk
QXJyYXlCYXNlPGZsb2F0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0KLSAgICB2b2lkIHNldCh1
bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49
IFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSk7Ci0gICAgfQotCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBn
ZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyBy
ZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNz
YXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKLSAgICAg
ICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8RmxvYXQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRlOgotICAg
IEZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xh
c3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGZsb2F0PjsKLQotICAgIC8vIE92
ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzRmxvYXRB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgot
Ci11c2luZyBXVEY6OkZsb2F0MzJBcnJheTsKLQotI2VuZGlmIC8vIEZsb2F0MzJBcnJheV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWViYzdkMTJhYmU5ZThlMDUzMWExOTBhMDU4YjllNjE3Y2I0YTkw
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmxvYXQ2
NEFycmF5LmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4g
RmxvYXQ2NEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBl
ZEFycmF5QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5PihsZW5ndGgpOwotfQotCi1Q
YXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2NEFycmF5OjpjcmVhdGUoY29uc3QgZG91Ymxl
KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxk
b3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1Jl
ZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpjcmVhdGU8RmxvYXQ2NEFycmF5Pihi
dWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLUZsb2F0NjRBcnJheTo6RmxvYXQ2NEFy
cmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKQotICAgIDogVHlwZWRBcnJheUJhc2U8ZG91YmxlPihidWZmZXIsIGJ5
dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0
NjRBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJh
eShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gRmxvYXQ2
NEFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN1YmFycmF5SW1wbDxGbG9hdDY0QXJyYXk+KHN0YXJ0LCBlbmQpOwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1NjYyNGM2YjM5OWY3NDc2YmE4ZTU5M2ZhODUzMDQ1NDc0NmMzMjE1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIEZsb2F0NjRBcnJheV9oCi0jZGVmaW5lIEZsb2F0NjRBcnJheV9oCi0K
LSNpbmNsdWRlICJUeXBlZEFycmF5QmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFzcyBGbG9hdDY0QXJyYXkgOiBwdWJsaWMgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQ2
NEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
bG9hdDY0QXJyYXk+IGNyZWF0ZShjb25zdCBkb3VibGUqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgp
OwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0g
ICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBj
b21waWxlci4KLSAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTxkb3VibGU+KiBhcnJheSwgdW5z
aWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpzZXQoYXJyYXks
IG9mZnNldCk7IH0KLQotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUp
Ci0gICAgewotICAgICAgICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFR5cGVkQXJyYXlCYXNlPGRvdWJs
ZT46OmRhdGEoKVtpbmRleF0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKLSAgICB9Ci0K
LSAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSBy
YW5nZSBjaGVja3M7IGNhbGxlcgotICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBh
bmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3NhcnkuCi0gICAgZG91YmxlIGl0ZW0odW5z
aWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFy
cmF5QmFzZTxkb3VibGU+OjptX2xlbmd0aCk7Ci0gICAgICAgIGRvdWJsZSByZXN1bHQgPSBUeXBl
ZEFycmF5QmFzZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0KLQotICAgIFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3Rh
cnQpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3Rh
cnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIEZsb2F0NjRBcnJheShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiwKLSAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwK
LSAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICAvLyBNYWtlIGNvbnN0cnVj
dG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KLSAgICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJh
c2U8ZG91YmxlPjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0g
ICAgdmlydHVhbCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpGbG9hdDY0QXJyYXk7Ci0KLSNl
bmRpZiAvLyBGbG9hdDY0QXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50MTZBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFy
cmF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjk5NDRjODVlZGY5ZDBlNzky
NmJiYTFlMzIwY2YyNzEyMjc0YmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSW50MTZBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUGFzc1Jl
ZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFycmF5PihsZW5n
dGgpOwotfQotCi1QYXNzUmVmUHRyPEludDE2QXJyYXk+IEludDE2QXJyYXk6OmNyZWF0ZShzaG9y
dCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8
c2hvcnQ+OjpjcmVhdGU8SW50MTZBcnJheT4oYXJyYXksIGxlbmd0aCk7Ci19Ci0KLVBhc3NSZWZQ
dHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJl
dHVybiBUeXBlZEFycmF5QmFzZTxzaG9ydD46OmNyZWF0ZTxJbnQxNkFycmF5PihidWZmZXIsIGJ5
dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLUludDE2QXJyYXk6OkludDE2QXJyYXkoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5n
dGgpCi0gICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNob3J0PihidWZmZXIsIGJ5dGVPZmZz
ZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5Ojpz
dWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5KHN0YXJ0LCBs
ZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8SW50MTZBcnJheT4gSW50MTZBcnJheTo6c3ViYXJy
YXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheUltcGw8
SW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDE2QXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZmYWY5ZWJjNzg1
NDc4NmM3MTU4ZDYzNjkxNDg5Yzc4OWYzNWY0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBJbnQx
NkFycmF5X2gKLSNkZWZpbmUgSW50MTZBcnJheV9oCi0KLSNpbmNsdWRlICJJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFzcyBBcnJheUJ1ZmZlcjsKLQot
Y2xhc3MgSW50MTZBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNob3J0PiB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKHVuc2ln
bmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKHNo
b3J0KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQx
NkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBi
eXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5n
IiBoZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChU
eXBlZEFycmF5QmFzZTxzaG9ydD4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0gICAgdm9pZCBzZXQo
dW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNo
b3J0Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQdHI8SW50MTZBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1
YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgSW50MTZB
cnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0
aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAg
ZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHNob3J0PjsKLQotICAgIC8vIE92ZXJyaWRkZW4g
ZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzU2hvcnRBcnJheSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBX
VEY6OkludDE2QXJyYXk7Ci0KLSNlbmRpZiAvLyBJbnQxNkFycmF5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE1ZGVhMzczYWNiMmFlNzMzY2Y0YzViYjZmZDU1ZWNkMzFmZjY2ZTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50MzJBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgotCi1uYW1lc3Bh
Y2UgV1RGIHsKLQotUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5z
aWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8
SW50MzJBcnJheT4obGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFy
cmF5OjpjcmVhdGUoaW50KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBU
eXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8SW50MzJBcnJheT4oYXJyYXksIGxlbmd0aCk7Ci19
Ci0KLVBhc3NSZWZQdHI8SW50MzJBcnJheT4gSW50MzJBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
KQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxpbnQ+OjpjcmVhdGU8SW50MzJBcnJheT4o
YnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQotCi1JbnQzMkFycmF5OjpJbnQzMkFycmF5
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQotICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+KGJ1ZmZlciwg
Ynl0ZU9mZnNldCwgbGVuZ3RoKQotewotfQotCi1QYXNzUmVmUHRyPEludDMyQXJyYXk+IEludDMy
QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXko
c3RhcnQsIGxlbmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5
OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFy
cmF5SW1wbDxJbnQzMkFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MzJBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmIx
ZTc2MzgxYThmOTU5MGE0MTdhYjExODhiZjcyNzEzMjhkNDA0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDMyQXJyYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgSW50MzJBcnJheV9oCi0jZGVmaW5lIEludDMyQXJyYXlfaAotCi0jaW5jbHVkZSAiSW50ZWdy
YWxUeXBlZEFycmF5QmFzZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgSW50MzJBcnJh
eSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD4gewotcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZShpbnQqIGFycmF5LCB1bnNpZ25l
ZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGxlbmd0aCk7Ci0KLSAgICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVlIHRvIGEgYnVn
IGluIHRoZSBSVkNUIGNvbXBpbGVyLgotICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlCYXNlPGludD4q
IGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPGludD46OnNl
dChhcnJheSwgb2Zmc2V0KTsgfQotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUg
dmFsdWUpIHsgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsg
fQotCi0gICAgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0
OwotICAgIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3RydWN0b3Ig
dmlzaWJsZSB0byBzdXBlcmNsYXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxp
bnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KLSAgICB2aXJ0
dWFsIGJvb2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkludDMyQXJyYXk7Ci0KLSNlbmRpZiAvLyBJbnQz
MkFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJh
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGU1ODgxNWMyYjg2NzljODU4OWIzNTU3ZjBkYTAxZTcw
MzU0ZjY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW50
OEFycmF5LmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPEludDhBcnJheT4gSW50
OEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5
QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJbnQ4QXJyYXk+KGxlbmd0aCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OmNyZWF0ZShzaWduZWQgY2hhciogYXJyYXksIHVu
c2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+
OjpjcmVhdGU8SW50OEFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxJbnQ4
QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwg
dW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVybiBUeXBl
ZEFycmF5QmFzZTxzaWduZWQgY2hhcj46OmNyZWF0ZTxJbnQ4QXJyYXk+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKTsKLX0KLQotSW50OEFycmF5OjpJbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0g
ICAgOiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPihidWZmZXIsIGJ5dGVPZmZz
ZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6c3Vi
YXJyYXkoaW50IHN0YXJ0KSBjb25zdAotewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVu
Z3RoKCkpOwotfQotCi1QYXNzUmVmUHRyPEludDhBcnJheT4gSW50OEFycmF5OjpzdWJhcnJheShp
bnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN1YmFycmF5SW1wbDxJbnQ4
QXJyYXk+KHN0YXJ0LCBlbmQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhB
cnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzZkMWJiZjFmMzQ4NDk3OWZk
OTJhZTVmNTNhZWE2MDNiMGFmMTU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBJbnQ4QXJyYXlfaAot
I2RlZmluZSBJbnQ4QXJyYXlfaAotCi0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5o
IgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNsYXNzIEludDhB
cnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPiB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IGNyZWF0ZShzaWduZWQgY2hh
ciogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50OEFy
cmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRl
T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBo
ZXJlIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChUeXBl
ZEFycmF5QmFzZTxzaWduZWQgY2hhcj4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJu
IFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPjo6c2V0KGFycmF5LCBvZmZzZXQpOyB9Ci0gICAg
dm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgeyBJbnRlZ3JhbFR5cGVkQXJy
YXlCYXNlPHNpZ25lZCBjaGFyPjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQ
dHI8SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8
SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRl
OgotICAgIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsZW5ndGgpOwotICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNs
YXNzLgotICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj47Ci0KLSAg
ICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBp
c0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi11c2luZyBXVEY6OkludDhBcnJheTsKLQotI2VuZGlmIC8vIEludDhBcnJheV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ZjgyYTM2MWM2ZWZlYjZjNDZhY2Nk
NzQ1YzMxNTdiMmUwMjIzZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50ZWdyYWxUeXBlZEFycmF5QmFz
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSW50
ZWdyYWxUeXBlZEFycmF5QmFzZV9oCi0jZGVmaW5lIEludGVncmFsVHlwZWRBcnJheUJhc2VfaAot
Ci0jaW5jbHVkZSAiVHlwZWRBcnJheUJhc2UuaCIKLSNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KLQotLy8gQmFzZSBjbGFzcyBmb3IgYWxsIFdlYkdMPFQ+QXJy
YXkgdHlwZXMgaG9sZGluZyBpbnRlZ3JhbAotLy8gKG5vbi1mbG9hdGluZy1wb2ludCkgdmFsdWVz
LgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBJbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJyYXlCYXNlPFQ+IHsKLSAgcHVibGlj
OgotICAgIHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCi0gICAgewotICAg
ICAgICBpZiAoaW5kZXggPj0gVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBpZiAoaXNuYW4odmFsdWUpKSAvLyBDbGFtcCBOYU4gdG8gMAot
ICAgICAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICAvLyBUaGUgZG91YmxlIGNhc3QgaXMgbmVj
ZXNzYXJ5IHRvIGdldCB0aGUgY29ycmVjdCB3cmFwcGluZwotICAgICAgICAvLyBmb3Igb3V0LW9m
LXJhbmdlIHZhbHVlcyB3aXRoIEludDMyQXJyYXkgYW5kIFVpbnQzMkFycmF5LgotICAgICAgICBU
eXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PFQ+KHN0YXRpY19j
YXN0PGludDY0X3Q+KHZhbHVlKSk7Ci0gICAgfQotCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5k
ZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAv
LyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMg
bmVjZXNzYXJ5LgotICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Ci0gICAgICAg
IHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKLSAgICB9Ci0KLSAgcHJv
dGVjdGVkOgotICAgIEludGVncmFsVHlwZWRBcnJheUJhc2UoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0gICAgICAg
IDogVHlwZWRBcnJheUJhc2U8VD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi0gICAgewot
ICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkludGVncmFsVHlw
ZWRBcnJheUJhc2U7Ci0KLSNlbmRpZiAvLyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5QmFzZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhZTMwYzE3YzI4NmNjNmZlYjgzZTVmNTM2NWI5NTM3MjZmM2YxOTRkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXlCYXNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgVHlwZWRBcnJheUJhc2VfaAotI2RlZmluZSBUeXBl
ZEFycmF5QmFzZV9oCi0KLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgotI2luY2x1ZGUgIkFycmF5
QnVmZmVyVmlldy5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1jbGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewotICBwdWJs
aWM6Ci0gICAgVCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihiYXNlQWRk
cmVzcygpKTsgfQotCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJhc2U8VD4qIGFycmF5LCB1bnNp
Z25lZCBvZmZzZXQpCi0gICAgewotICAgICAgICByZXR1cm4gc2V0SW1wbChhcnJheSwgb2Zmc2V0
ICogc2l6ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICBib29sIHNldFJhbmdlKGNvbnN0IFQqIGRhdGEs
IHNpemVfdCBkYXRhTGVuZ3RoLCB1bnNpZ25lZCBvZmZzZXQpCi0gICAgewotICAgICAgICByZXR1
cm4gc2V0UmFuZ2VJbXBsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBkYXRh
TGVuZ3RoICogc2l6ZW9mKFQpLCBvZmZzZXQgKiBzaXplb2YoVCkpOwotICAgIH0KLQotICAgIGJv
b2wgemVyb1JhbmdlKHVuc2lnbmVkIG9mZnNldCwgc2l6ZV90IGxlbmd0aCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB6ZXJvUmFuZ2VJbXBsKG9mZnNldCAqIHNpemVvZihUKSwgbGVuZ3RoICogc2l6
ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3
LiBUaGlzIG11c3QgYmUgcHVibGljIGJlY2F1c2Ugb2YKLSAgICAvLyBydWxlcyBhYm91dCBpbmhl
cml0YW5jZSBvZiBtZW1iZXJzIGluIHRlbXBsYXRlIGNsYXNzZXMsIGFuZAotICAgIC8vIGJlY2F1
c2UgaXQgaXMgYWNjZXNzZWQgdmlhIHBvaW50ZXJzIHRvIHN1YmNsYXNzZXMuCi0gICAgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2xlbmd0aDsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fbGVuZ3RoICogc2l6ZW9mKFQpOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAg
IFR5cGVkQXJyYXlCYXNlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQotICAgICAgICA6IEFycmF5QnVmZmVyVmlldyhi
dWZmZXIsIGJ5dGVPZmZzZXQpCi0gICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3ViY2xhc3M+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCi0gICAgewotICAgICAgICBSZWZQ
dHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUobGVuZ3RoLCBzaXpl
b2YoVCkpOwotICAgICAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKLSAgICAgICAgICAgIHJldHVybiAw
OwotICAgICAgICByZXR1cm4gY3JlYXRlPFN1YmNsYXNzPihidWZmZXIsIDAsIGxlbmd0aCk7Ci0g
ICAgfQotCi0gICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN1YmNsYXNzPiBjcmVhdGUoY29uc3QgVCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCkKLSAg
ICB7Ci0gICAgICAgIFJlZlB0cjxTdWJjbGFzcz4gYSA9IGNyZWF0ZTxTdWJjbGFzcz4obGVuZ3Ro
KTsKLSAgICAgICAgaWYgKGEpCi0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgYS0+c2V0KGksIGFycmF5W2ldKTsKLSAgICAg
ICAgcmV0dXJuIGE7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGxlbmd0aCkKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmKGJ1
ZmZlcik7Ci0gICAgICAgIGlmICghdmVyaWZ5U3ViUmFuZ2U8VD4oYnVmLCBieXRlT2Zmc2V0LCBs
ZW5ndGgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdWJjbGFzcyhidWYsIGJ5dGVPZmZzZXQsIGxlbmd0aCkpOwotICAgIH0KLQotICAgIHRl
bXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KLSAgICBQYXNzUmVmUHRyPFN1YmNsYXNzPiBzdWJhcnJh
eUltcGwoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAotICAgIHsKLSAgICAgICAgdW5zaWduZWQg
b2Zmc2V0LCBsZW5ndGg7Ci0gICAgICAgIGNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChzdGFydCwg
ZW5kLCBtX2xlbmd0aCwgJm9mZnNldCwgJmxlbmd0aCk7Ci0gICAgICAgIGNsYW1wT2Zmc2V0QW5k
TnVtRWxlbWVudHM8VD4oYnVmZmVyKCksIG1fYnl0ZU9mZnNldCwgJm9mZnNldCwgJmxlbmd0aCk7
Ci0gICAgICAgIHJldHVybiBjcmVhdGU8U3ViY2xhc3M+KGJ1ZmZlcigpLCBvZmZzZXQsIGxlbmd0
aCk7Ci0gICAgfQotCi0gICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gaGF2ZSB0byBhY2Nlc3MgdGhp
cyB2aWEgYSB2aXJ0dWFsIGZ1bmN0aW9uIGluIHN1YmNsYXNzZXMsCi0gICAgLy8gd2hpY2ggaXMg
d2h5IGl0IGlzIHByb3RlY3RlZCByYXRoZXIgdGhhbiBwcml2YXRlLgotICAgIHVuc2lnbmVkIG1f
bGVuZ3RoOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6VHlwZWRBcnJh
eUJhc2U7Ci0KLSNlbmRpZiAvLyBUeXBlZEFycmF5QmFzZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9VaW50MTZBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3
Y2RjZmI4YTgyNmMzZmE4MGYxZGM1YmY5ZWQyMmZhYmE5ZjVmNTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
VWludDE2QXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlVpbnQxNkFycmF5LmgiCi0KLW5hbWVzcGFj
ZSBXVEYgewotCi1QYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBVaW50MTZBcnJheTo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hv
cnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGxlbmd0aCk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2
QXJyYXk+IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgc2hvcnQqIGFycmF5LCB1bnNpZ25l
ZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0Pjo6
Y3JlYXRlPFVpbnQxNkFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50
MTZBcnJheT4gVWludDE2QXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4g
VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpjcmVhdGU8VWludDE2QXJyYXk+KGJ1ZmZl
ciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0KLQotVWludDE2QXJyYXk6OlVpbnQxNkFycmF5KFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWdu
ZWQgbGVuZ3RoKQotICAgIDogSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD4o
YnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2QXJy
YXk+IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN1YmFycmF5KHN0YXJ0LCBsZW5ndGgoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IFVpbnQxNkFycmF5OjpzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHN1YmFycmF5SW1wbDxVaW50MTZBcnJheT4oc3RhcnQsIGVuZCk7Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYmIxY2UzM2NlYjBiYWNmNDkyNTdlOWQ0MGZhM2Q4ODVkMjIyM2E2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIFVpbnQxNkFycmF5X2gKLSNkZWZpbmUgVWludDE2QXJyYXlfaAot
Ci0jaW5jbHVkZSAiSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIgotCi1uYW1lc3BhY2UgV1RGIHsK
LQotY2xhc3MgQXJyYXlCdWZmZXI7Ci0KLWNsYXNzIFVpbnQxNkFycmF5IDogcHVibGljIEludGVn
cmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxVaW50MTZBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBzaG9ydCogYXJyYXks
IHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IGNy
ZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQs
IHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBDYW7igJl0IHVzZSAidXNpbmciIGhlcmUgZHVl
IHRvIGEgYnVnIGluIHRoZSBSVkNUIGNvbXBpbGVyLgotICAgIGJvb2wgc2V0KFR5cGVkQXJyYXlC
YXNlPHVuc2lnbmVkIHNob3J0PiogYXJyYXksIHVuc2lnbmVkIG9mZnNldCkgeyByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2
b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJh
eUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQoaW5kZXgsIHZhbHVlKTsgfQotCi0gICAgUGFzc1Jl
ZlB0cjxVaW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKLSAgICBQYXNzUmVm
UHRyPFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1w
cml2YXRlOgotICAgIFVpbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1
ZmZlclZpZXcuCi0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRTaG9ydEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6
VWludDE2QXJyYXk7Ci0KLSNlbmRpZiAvLyBVaW50MTZBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZlYzUyY2ZmZTU5YTdiMDYyOWU4ZmJhMzY3ZTFlODJkOTg4OTkwOTAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvVWludDMyQXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCi0KLW5hbWVz
cGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQg
aW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5PihsZW5ndGgpOwotfQotCi1QYXNzUmVmUHRyPFVpbnQz
MkFycmF5PiBVaW50MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGludCogYXJyYXksIHVuc2lnbmVk
IGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3Jl
YXRlPFVpbnQzMkFycmF5PihhcnJheSwgbGVuZ3RoKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJB
cnJheT4gVWludDMyQXJyYXk6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIs
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gVHlw
ZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6Y3JlYXRlPFVpbnQzMkFycmF5PihidWZmZXIsIGJ5
dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLVVpbnQzMkFycmF5OjpVaW50MzJBcnJheShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCkKLSAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PihidWZmZXIs
IGJ5dGVPZmZzZXQsIGxlbmd0aCkKLXsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWlu
dDMyQXJyYXk6OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3ViYXJy
YXkoc3RhcnQsIGxlbmd0aCgpKTsKLX0KLQotUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMy
QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKLXsKLSAgICByZXR1cm4g
c3ViYXJyYXlJbXBsPFVpbnQzMkFycmF5PihzdGFydCwgZW5kKTsKLX0KLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDU1NzhkMDdlY2I0ODU3M2ZkMDRhNmQ4Yzc3MjJkZGUzZjk2MmI3MTAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvVWludDMyQXJyYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpZm5kZWYgVWludDMyQXJyYXlfaAotI2RlZmluZSBVaW50MzJBcnJheV9oCi0KLSNpbmNs
dWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1jbGFz
cyBBcnJheUJ1ZmZlcjsKLQotY2xhc3MgVWludDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBl
ZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxVaW50MzJBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBpbnQqIGFycmF5LCB1bnNpZ25lZCBs
ZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOwotCi0gICAgLy8gQ2Fu4oCZdCB1c2UgInVzaW5nIiBoZXJlIGR1ZSB0byBhIGJ1ZyBp
biB0aGUgUlZDVCBjb21waWxlci4KLSAgICBib29sIHNldChUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBpbnQ+KiBhcnJheSwgdW5zaWduZWQgb2Zmc2V0KSB7IHJldHVybiBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBpbnQ+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2b2lkIHNldCh1bnNpZ25l
ZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQg
aW50Pjo6c2V0KGluZGV4LCB2YWx1ZSk7IH0KLQotICAgIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBVaW50
MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1
cGVyY2xhc3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47
Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwg
Ym9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpVaW50MzJBcnJheTsKLQotI2VuZGlmIC8v
IFVpbnQzMkFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1Vp
bnQ4QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMjY4ZTczZmUxMjU2MzkwNjY2ODI5ZDAz
MDc1Y2EzMWZjOTFmM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiVWludDhBcnJheS5oIgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUGFzc1JlZlB0cjxVaW50
OEFycmF5PiBVaW50OEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHJldHVy
biBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRlPFVpbnQ4QXJyYXk+KGxlbmd0
aCk7Ci19Ci0KLVBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKHVuc2ln
bmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpjcmVhdGU8VWludDhBcnJheT4oYXJyYXksIGxlbmd0aCk7
Ci19Ci0KLVBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6Y3JlYXRlKFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKQotewotICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPjo6Y3JlYXRl
PFVpbnQ4QXJyYXk+KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0KLQotVWludDhBcnJh
eTo6VWludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICA6IEludGVncmFsVHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgpCi17Ci19Ci0KLVBhc3NS
ZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdAot
ewotICAgIHJldHVybiBzdWJhcnJheShzdGFydCwgbGVuZ3RoKCkpOwotfQotCi1QYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IFVpbnQ4QXJyYXk6OnN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29u
c3QKLXsKLSAgICByZXR1cm4gc3ViYXJyYXlJbXBsPFVpbnQ4QXJyYXk+KHN0YXJ0LCBlbmQpOwot
fQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZlOTQ1ZTcwZmE2OWZiYzJhNGQwMjBlZGViOWJlOTFkN2QyYTZh
ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBVaW50OEFycmF5X2gKLSNkZWZpbmUgVWludDhBcnJh
eV9oCi0KLSNpbmNsdWRlICJJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgiCi0KLW5hbWVzcGFjZSBX
VEYgewotCi1jbGFzcyBBcnJheUJ1ZmZlcjsKLQotY2xhc3MgVWludDhBcnJheSA6IHB1YmxpYyBJ
bnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUodW5zaWduZWQgY2hhciogYXJyYXks
IHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDhBcnJheT4gY3Jl
YXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIENhbuKAmXQgdXNlICJ1c2luZyIgaGVyZSBkdWUg
dG8gYSBidWcgaW4gdGhlIFJWQ1QgY29tcGlsZXIuCi0gICAgYm9vbCBzZXQoVHlwZWRBcnJheUJh
c2U8dW5zaWduZWQgY2hhcj4qIGFycmF5LCB1bnNpZ25lZCBvZmZzZXQpIHsgcmV0dXJuIFR5cGVk
QXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+OjpzZXQoYXJyYXksIG9mZnNldCk7IH0KLSAgICB2b2lk
IHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKSB7IEludGVncmFsVHlwZWRBcnJheUJh
c2U8dW5zaWduZWQgY2hhcj46OnNldChpbmRleCwgdmFsdWUpOyB9Ci0KLSAgICBQYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxV
aW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwotCi1wcml2YXRl
OgotICAgIFVpbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2
aXNpYmxlIHRvIHN1cGVyY2xhc3MuCi0gICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4K
LSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OlVpbnQ4QXJyYXk7
Ci0KLSNlbmRpZiAvLyBVaW50OEFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmNwcAppbmRleCBlZTBlYmU2NTQzYzZkNTQzOWY0MjQ1MTcyNjUzOGNkYWJiYmM0
ZTcwLi45OTdkYmE1MDBlZDUwMzgzYzY0M2U4ZTFmMDkwNjVkYjBmNmI2ODYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaAppbmRleCA2NzA1
YWM5YWU2ZDM4OGFlZTgyZjVmYjI0ZTNmNmExY2ZjMjE1YTZjLi4wMTU3ZWNlNjVmMGNlNGI3YzQw
N2I3YmNiNTlkNzk2ODc1MTQwYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
QnVmZmVyLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgV2ViR0xCdWZmZXJfaAogI2RlZmlu
ZSBXZWJHTEJ1ZmZlcl9oCiAKLSNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIldl
YkdMT2JqZWN0LmgiCiAKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMR2V0SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8u
Y3BwCmluZGV4IDE3YmU5NzQwNTUwOWEwMTkwOTViZTdmYzYxNmMyZDMxOWZhNmY0MTAuLmJjZTM4
MzY3NmU1Mzk5NDBiYWQxNGUxNzdiZTkxODNlNDQxOTEwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcApAQCAtMzAsMTUgKzMwLDE1IEBACiAKICNpbmNs
dWRlICJXZWJHTEdldEluZm8uaCIKIAotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgotI2luY2x1
ZGUgIkludDMyQXJyYXkuaCIKLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiV2Vi
R0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKICNpbmNsdWRlICJX
ZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisj
aW5jbHVkZSA8d3RmL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9JbnQzMkFycmF5Lmg+
CisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCmluZGV4IGYzN2VmZGRlY2I0
YTE4NGFjZWM5MGExODE0NGM4MDVjYTI4YzZmNDIuLmY3NDdhMDkwMmFkZDcwYTZlNmRiMmQ0MmUz
OTViZDY0OTMzMDgwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMR2V0SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5m
by5oCkBAIC0yNywxMCArMjcsNyBAQAogI2lmbmRlZiBXZWJHTEdldEluZm9faAogI2RlZmluZSBX
ZWJHTEdldEluZm9faAogCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCi0jaW5jbHVkZSAiSW50
MzJBcnJheS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiVWludDhB
cnJheS5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1
ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgpAQCAtMzgsOCArMzUsMTEgQEAKICNp
bmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmgiCiAKKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lu
dDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCmluZGV4IDMwYjhmZjYxN2ZjNDAzMmYyNDJkNGZmMzE5NDg0YzExNTA0YmE5
ZDUuLjBhMDc0MzRhYjRmMjY5M2NmMmViOTdhZWFhMDI3OTc4YTJkOTdmMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApA
QCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJVaW50MTZBcnJheS5o
IgogI2luY2x1ZGUgIldlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgi
CiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgpAQCAtNzAsNiArNjksNyBAQAog
I2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093bkFycmF5UHRyLmg+CisjaW5jbHVkZSA8d3RmL1VpbnQxNkFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgUExBVEZP
Uk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oCmluZGV4IDE1Y2U0OTdiNDhjYTRhYWM2ODA3ZGNhZGM1NzIwZTk2ZWVjOWNiOWUu
LmMwYzVmODIxMzI2MmRhNGQxODBjYzYwZDc5NGExZDJjOGIyMTcyMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yOCwx
NSArMjgsMTUgQEAKIAogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJEcmF3aW5nQnVmZmVyLmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJJbnQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgIlVpbnQ4
QXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTEdldEluZm8uaCIKIAorI2luY2x1ZGUgPHd0Zi9GbG9h
dDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSW50MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9P
d25BcnJheVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCmluZGV4IDU2MjE1OTIyNmNkM2E3OTE5OGZh
ZDhlODNlMTk3MzUyNjQxNDhhYmQuLjA1MDdkYTkzM2YyYzk5ZjliODYzN2Y2NGM3NGJmMzQ0ZDg1
ZTgyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRl
ICJDcnlwdG8uaCIKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJVaW50
OEFycmF5LmgiCisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwCmluZGV4IDcyZTg3NjhhOTZlY2YyMzgxYzdiNTM1YTc5OWE1MDUyOTU1OWRiYWQuLjQz
MWZhOTM2MjAwNzIxM2JlODhmZTU3NjMxNmFhZmZiM2FiMmE5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKQEAg
LTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAKLSNpbmNs
dWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVk
ZSAiRHJhd2luZ0J1ZmZlci5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtMzgsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIu
aCIKIAorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvT3du
QXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093bkFycmF5UHRyLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQz
RE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0Nv
bnRleHQzRE1hYy5tbQppbmRleCAyMmE1OThjZTYxN2Q4N2JkYjJkNzdiY2UyZTNmZWI2ZDU5NjQx
N2JlLi5lM2MzNzFhMmMyMjk4OTk0OTEzMDQwNjk5ODllNTBmZTEwYzNiN2MyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
Q29udGV4dDNETWFjLm1tCkBAIC0zMiwyMiArMzIsMjIgQEAKICNpbXBvcnQgIkJsb2NrRXhjZXB0
aW9ucy5oIgogCiAjaW5jbHVkZSAiQU5HTEUvU2hhZGVyTGFuZy5oIgotI2luY2x1ZGUgIkFycmF5
QnVmZmVyLmgiCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRl
eHQuaD4KICNpbmNsdWRlICJFeHRlbnNpb25zM0RPcGVuR0wuaCIKLSNpbmNsdWRlICJGbG9hdDMy
QXJyYXkuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ2Fu
dmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCi0jaW5jbHVkZSAiSW50MzJB
cnJheS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8T3BlbkdML0NH
TFJlbmRlcmVycy5oPgogI2luY2x1ZGUgPE9wZW5HTC9nbC5oPgotI2luY2x1ZGUgIlVpbnQ4QXJy
YXkuaCIKICNpbmNsdWRlICJXZWJHTExheWVyLmgiCiAjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIK
KyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJW
aWV3Lmg+CisjaW5jbHVkZSA8d3RmL0ludDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvRmxvYXQz
MkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCmluZGV4IGEyNzMyY2FmMTdlNWQ4NjRiOTBkYjI3ZjQ4
ZDEzZDNjOWJlOGY1NTQuLmE2NWNhMDEwNzk4ZTk5MWY5NDBjNjkyN2MzYWM4ZmQ2N2Q2YzFhNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtMzMsMjAgKzMzLDIw
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCi0jaW5jbHVkZSAiQXJyYXlC
dWZmZXIuaCIKLSNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJXZWJHTE9i
amVjdC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJF
eHRlbnNpb25zM0RPcGVuR0wuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCi0jaW5jbHVkZSAi
SW50MzJBcnJheS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiVWlu
dDhBcnJheS5oIgogI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVy
Lmg+CisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPHd0Zi9GbG9h
dDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9V
aW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
c3luY0F1ZGlvRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9Bc3luY0F1ZGlv
RGVjb2Rlci5jcHAKaW5kZXggY2Q0OWFlMGFmZGE2MTkzNzNiMjQ0YWRiYmQ2ZTQwZDAwOTY0ZTBj
NS4uYzI2ODI0Mzk4NmU4ZmFkYjQ0Nzc0MDNjZGQ3Yzc4MzU5NDM5NjdmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcApAQCAtMjgsOSArMjgsOSBA
QAogCiAjaW5jbHVkZSAiQXN5bmNBdWRpb0RlY29kZXIuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVm
ZmVyLmgiCiAjaW5jbHVkZSAiQXVkaW9CdWZmZXIuaCIKICNpbmNsdWRlICJBdWRpb0J1ZmZlckNh
bGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCmluZGV4IGQ1ZTlmMmI0
YjRlMWZlYTI0ODNiMmM3ZWZiODI5MjA4NzNmNmY2NTYuLjRhZWFkY2E1Nzc0MDNlNjljMmRkMTJl
MWUxNTVhZGIxZjU0MzNmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaApA
QCAtMjksNyArMjksNyBAQAogI2lmbmRlZiBBdWRpb0J1ZmZlcl9oCiAjZGVmaW5lIEF1ZGlvQnVm
ZmVyX2gKIAotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMy
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggYzEwMWVlMzVhMTY0ZDhmM2UwNmY4MjU2YmI2MmMwMmQ4
NWFlNTIxYS4uNDg4ZDBhYTMyNWY4MzJiZjRlZDhjMzgyNGU3MDRjMjM1NTNiMDI5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAK
ICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiQXN5bmNBdWRpb0RlY29kZXIuaCIKICNpbmNsdWRlICJBdWRpb0J1ZmZlci5oIgog
I2luY2x1ZGUgIkF1ZGlvQnVmZmVyQ2FsbGJhY2suaCIKQEAgLTY5LDYgKzY4LDcgQEAKICNpbmNs
dWRlIDxzdGRpby5oPgogI2VuZGlmCiAKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmlu
ZGV4IDNkYjljODgyNDNmZjg5YjIwYzZmNjJmYzJlYmEzYzY3MTE0YjQwNTEuLjI3NTg0ODdkYWEx
MTdhN2M0OTUzM2U0ZTYxZGVmZDdhMWY3YmFmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b1BhcmFtLmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgog
I2luY2x1ZGUgIkF1ZGlvUGFyYW1UaW1lbGluZS5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisj
aW5jbHVkZSA8d3RmL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuaAppbmRleCA2Yjg2ZWY4YmIzY2Y3M2YwN2ZmYWVjNDUyZmU1
ZDQwNGIyNDUwYTA2Li4yMmVhODkwODFhNTBiMDA0Mjc0NzU0YTEyMDdlODk0OGJhYzE5NzE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaApAQCAtMzAs
NyArMzAsNyBAQAogI2RlZmluZSBBdWRpb1BhcmFtVGltZWxpbmVfaAogCiAjaW5jbHVkZSAiQXVk
aW9Db250ZXh0LmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSA8d3RmL0Zs
b2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dlYmF1ZGlvL0phdmFTY3JpcHRBdWRpb05vZGUuY3BwCmluZGV4IDkyZTFmYzM2M2M1
ZTdhYTE3YjNiZGYxM2NjZWRmNzgzMmY3ZTZhNGQuLjQyMjE1MDljZjk5YzYxNzQzNWVlODA4NjNk
ZWNmMjhlYmUwN2FhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0phdmFT
Y3JpcHRBdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0phdmFTY3Jp
cHRBdWRpb05vZGUuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0
cHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMy
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4
IDFmYzhiMjRhN2VlZTdlZmQ5MWNiYzEyNWZiOWY2NDJhYTM0ODhhMTMuLjVjYWFiOTE4YzJiNWI1
NGExZDkyNDc1NTUzNjY4ZmRmNjY3MGQyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L1JlYWx0aW1lQW5hbHlzZXIuY3BwCkBAIC0zMSwxNCArMzEsMTQgQEAKICNpbmNsdWRlICJBdWRp
b0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRkZURnJhbWUu
aCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKLSNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAK
ICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXguaD4KKyNpbmNsdWRlIDx3dGYvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0
Zi9VaW50OEFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaAppbmRleCBlYjY3MjYwNmU0MTNhNjJh
NGUyNTFkNmY0NTA0MzVmYzRjNmQxMzQ3Li40MDE2ZThiZGVmNzFlMTIxMGRmNDM0OTg5NjljMzBi
ZjU5YWNjYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9XYXZlU2hhcGVy
UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nl
c3Nvci5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQXVkaW9EU1BLZXJuZWwuaCIKICNp
bmNsdWRlICJBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5o
IgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXku
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCAwNjEwZmJmMGI3NGY2ZDk4MzZhMTkwZmU2OGMxNTE1MjQ4YjAzZDQ5Li45NjIyNmI3ODdlNDhh
YjdmMDNlNWViMjYwZWNlNzZjYWVkODk2NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUg
IldlYlNvY2tldENoYW5uZWwuaCIKIAotI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVk
ZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CkBAIC01Miw2ICs1MSw3IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgog
I2luY2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgogCisjaW5jbHVkZSA8d3RmL0FycmF5QnVm
ZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggOTIxYmQ3NGQ3Yjc5OTY5M2YxNzE0OWI2YzFhNjBm
YzMwYTA0NGU0NC4uMWUyNGNmYmJhNTA2ZWY3NmI2MDQyMTE4ZjcxODg0OGVkZjRiM2ZlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUg
IldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAKLSNpbmNsdWRlICJBcnJheUJ1
ZmZlci5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAtNDYsNiArNDUsNyBAQAogI2luY2x1ZGUg
IldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1
ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNmM0OGFmZDc0ODg5MDUzMDIzYzQz
YThhZDlkYmM3YThkZjg1NGM5Ni4uMDRkOTI3ZWRjYTE0YTcwYjIxOWRjYTQ2MGRmNjNkNDZlNmNm
NTA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yMiw3ICsyMiw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKIAot
I2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNv
bnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5oIgpAQCAtNTIsNiArNTEsNyBAQAogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0VXBsb2FkLmgiCiAjaW5jbHVkZSAibWFy
a3VwLmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvVW51c2VkUGFyYW0uaD4K
</data>
<flag name="review"
          id="116111"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>