<?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>161041</bug_id>
          
          <creation_ts>2016-08-21 22:14:35 -0700</creation_ts>
          <short_desc>[ES6] Module should not allow HTML comments</short_desc>
          <delta_ts>2016-08-22 07:13:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221807</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-21 22:14:35 -0700</bug_when>
    <thetext>[ES6] Module should not allow HTML comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221810</commentid>
    <comment_count>1</comment_count>
      <attachid>286586</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-21 22:30:41 -0700</bug_when>
    <thetext>Created attachment 286586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221823</commentid>
    <comment_count>2</comment_count>
      <attachid>286586</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-22 00:12:41 -0700</bug_when>
    <thetext>Comment on attachment 286586
Patch

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

&gt; Source/JavaScriptCore/parser/ParserModes.h:36
&gt; +enum class JSParserScriptMode { Classic, Module };

I propose calling this &quot;JSParserCommentMode&quot; or something to better indicate its use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221850</commentid>
    <comment_count>3</comment_count>
      <attachid>286586</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-22 06:47:13 -0700</bug_when>
    <thetext>Comment on attachment 286586
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/parser/ParserModes.h:36
&gt;&gt; +enum class JSParserScriptMode { Classic, Module };
&gt; 
&gt; I propose calling this &quot;JSParserCommentMode&quot; or something to better indicate its use case.

Sounds nice. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221853</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-22 07:13:56 -0700</bug_when>
    <thetext>Committed r204714: &lt;http://trac.webkit.org/changeset/204714&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286586</attachid>
            <date>2016-08-21 22:30:41 -0700</date>
            <delta_ts>2016-08-22 00:12:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161041-20160822142845.patch</filename>
            <type>text/plain</type>
            <size>50124</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0Njk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MGI1MDkxMjMyMWQ3MDYxYTZlOGVlMWQxMjgzN2FmN2NlOTk2ZmY5Li41YmRhMDEwMjhjZWRiNzI5
ZmEyYTIwYmFlODUxMzEyMzM5MDA5NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2NyBAQAogMjAxNi0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbRVM2XSBNb2R1bGUgc2hvdWxkIG5vdCBhbGxvdyBIVE1MIGNvbW1l
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEw
NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFUzYg
TW9kdWxlcyBpbnRlbnRpb25hbGx5IGRpc2FibGUgSFRNTCBjb21tZW50c1sxXS4KKworICAgICAg
ICBbMV06IGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWh0bWwtbGlrZS1jb21t
ZW50cworCisgICAgICAgICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKHBhcnNlU2Ny
aXB0KToKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwOgorICAgICAg
ICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGUpOgorICAgICAgICAq
IGJ5dGVjb2RlL0V2YWxDb2RlQ2FjaGUuaDoKKyAgICAgICAgKEpTQzo6RXZhbENvZGVDYWNoZTo6
Q2FjaGVLZXk6OkNhY2hlS2V5KToKKyAgICAgICAgKiBieXRlY29kZS9FeGVjdXRhYmxlSW5mby5o
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlSW5mbzo6RXhlY3V0YWJsZUluZm8pOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlSW5mbzo6c2NyaXB0TW9kZSk6CisgICAgICAgIChKU0M6OkV4ZWN1
dGFibGVJbmZvOjpzdXBlckJpbmRpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1Vu
bGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OlVu
bGlua2VkQ29kZUJsb2NrKToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5o
OgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2NyaXB0TW9kZSk6CisgICAgICAg
IChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjpzdXBlckJpbmRpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpT
Qzo6Z2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6VW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKToKKyAg
ICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6c2NyaXB0TW9kZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9y
OjptYWtlRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6c3VwZXJC
aW5kaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAo
SlNDOjpMZXhlcjxUPjo6TGV4ZXIpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToKKyAg
ICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OlBhcnNlcik6CisgICAgICAgICogcGFyc2Vy
L1BhcnNlci5oOgorICAgICAgICAoSlNDOjpwYXJzZSk6CisgICAgICAgICogcGFyc2VyL1BhcnNl
ck1vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZUNvZGVLZXkuaDoKKyAgICAgICAgKEpT
Qzo6U291cmNlQ29kZUZsYWdzOjpTb3VyY2VDb2RlRmxhZ3MpOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VDb2RlS2V5OjpTb3VyY2VDb2RlS2V5KToKKyAgICAgICAgKiBydW50aW1lL0NvZGVDYWNoZS5j
cHA6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKToKKyAgICAg
ICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRQcm9ncmFtQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6
Q29kZUNhY2hlOjpnZXRFdmFsQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpn
ZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRG
dW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZSk6CisgICAgICAgICogcnVudGltZS9Db2Rl
Q2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbXBsZXRpb24uY3BwOgorICAgICAgICAoSlND
OjpjaGVja1N5bnRheCk6CisgICAgICAgIChKU0M6OmNoZWNrTW9kdWxlU3ludGF4KToKKyAgICAg
ICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0
YWJsZTo6Y2hlY2tTeW50YXgpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
bW9kdWxlTG9hZGVyUHJvdG90eXBlUGFyc2VNb2R1bGUpOgorCisyMDE2LTA4LTIxICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtERkddIFNob3VsZCBu
b3QgZml4dXAgQW55SW50VXNlIGluIDMyXzY0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMjkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0UmVmLmNwcAppbmRleCA4M2QxZmU2MmYxMGEyZDA5MjkzMTBiZjM4YWVmMjYyZGJiZTJj
M2ZkLi5lMjM2ZjUxMDU0ZDgxYzg5MWZmOGRjZGVkMWUxOTNhMWRlOTdlMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApAQCAtNzYsNyArNzYsNyBAQCBzdGF0
aWMgYm9vbCBwYXJzZVNjcmlwdChWTSogdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFy
c2VyRXJyb3ImIGVycm9yKQogewogICAgIHJldHVybiAhIUpTQzo6cGFyc2U8SlNDOjpQcm9ncmFt
Tm9kZT4oCiAgICAgICAgIHZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgSlNQYXJzZXJCdWlsdGlu
TW9kZTo6Tm90QnVpbHRpbiwKLSAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3Qs
IFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLAor
ICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2Rl
OjpDbGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBTdXBlckJpbmRpbmc6Ok5v
dE5lZWRlZCwKICAgICAgICAgZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCmluZGV4IDkyNjcwZTgxZGM4
Y2ZmYjJkZDRjMzZkMzBhNjdkODY4NjFkODBhY2YuLjhmMmRmYTk5MDExYmQ0YWI5NzRiZmUzY2Iz
NTFhNWYzMzlhZjNlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCkBAIC04MCw3ICs4MCw3IEBAIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGUoVk0m
IHZtLCBjb25zdCBTCiAgICAgUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VPdmVycmlkZSA9
IGlzUGFyc2luZ0RlZmF1bHRDb25zdHJ1Y3RvciA/IHNvdXJjZS5wcm92aWRlcigpIDogbnVsbHB0
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9n
cmFtTm9kZT4oCiAgICAgICAgICZ2bSwgc291cmNlLCBJZGVudGlmaWVyKCksIGJ1aWx0aW5Nb2Rl
LAotICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgU291cmNlUGFyc2VNb2Rl
OjpQcm9ncmFtTW9kZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIGVycm9yLAorICAgICAgICBK
U1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2lj
LCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwg
ZXJyb3IsCiAgICAgICAgICZwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lLCBjb25zdHJ1Y3Rvcktp
bmQpOwogCiAgICAgaWYgKCFwcm9ncmFtKSB7CkBAIC0xMDYsNyArMTA2LDcgQEAgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZShW
TSYgdm0sIGNvbnN0IFMKICAgICBSRUxFQVNFX0FTU0VSVChtZXRhZGF0YSk7CiAgICAgbWV0YWRh
dGEtPm92ZXJyaWRlTmFtZShuYW1lKTsKICAgICBWYXJpYWJsZUVudmlyb25tZW50IGR1bW15VERa
VmFyaWFibGVzOwotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1
dGFibGUgPSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRlKCZ2bSwgc291cmNlLCBt
ZXRhZGF0YSwga2luZCwgY29uc3RydWN0QWJpbGl0eSwgZHVtbXlURFpWYXJpYWJsZXMsIERlcml2
ZWRDb250ZXh0VHlwZTo6Tm9uZSwgV1RGTW92ZShzb3VyY2VPdmVycmlkZSkpOworICAgIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZTo6Y3JlYXRlKCZ2bSwgc291cmNlLCBtZXRhZGF0YSwga2luZCwgY29uc3Ry
dWN0QWJpbGl0eSwgSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljLCBkdW1teVREWlZhcmlhYmxl
cywgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBXVEZNb3ZlKHNvdXJjZU92ZXJyaWRlKSk7CiAg
ICAgcmV0dXJuIGZ1bmN0aW9uRXhlY3V0YWJsZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V2YWxDb2RlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9FdmFsQ29kZUNhY2hlLmgKaW5kZXggNTVmMTEwZjViMTlkNzdjMjVmMmVj
MDJmZDI3MWViNTVkY2E4ZWNmYy4uYTllZGY1MzJiZjI5ZmUxZDUyMDlmYmZmYTNhOGM2OWQzY2Yx
ODRkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V2YWxDb2Rl
Q2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXZhbENvZGVDYWNo
ZS5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBwdWJsaWM6CiAg
ICAgICAgICAgICBDYWNoZUtleShjb25zdCBTdHJpbmcmIHNvdXJjZSwgRGVyaXZlZENvbnRleHRU
eXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwg
Ym9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KQogICAgICAgICAgICAgICAgIDogbV9zb3VyY2Uo
c291cmNlLmltcGwoKSkKLSAgICAgICAgICAgICAgICAsIG1fZmxhZ3MoU291cmNlQ29kZVR5cGU6
OkV2YWxUeXBlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBKU1BhcnNlclN0cmlj
dE1vZGU6Ok5vdFN0cmljdCwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUsIGlz
QXJyb3dGdW5jdGlvbkNvbnRleHQpCisgICAgICAgICAgICAgICAgLCBtX2ZsYWdzKFNvdXJjZUNv
ZGVUeXBlOjpFdmFsVHlwZSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgSlNQYXJz
ZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsIEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYywgZGVy
aXZlZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQp
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRhYmxlSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0V4ZWN1dGFibGVJbmZvLmgKaW5kZXggMzE4YTZhMzMyMDdhNzIxZjQyM2Q3
ZWQ0NzRhNTFkNmU1ZDM0NmUzMy4uYjIzOTE0MzZkYmIwYmI5YjIyNWNjODhhMjFhOTNkYzZkYjA5
Mzc5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGFi
bGVJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGFibGVJ
bmZvLmgKQEAgLTM2LDEzICszNiwxNCBAQCBlbnVtIGNsYXNzIEV2YWxDb250ZXh0VHlwZSAgICA6
IHVpbnQ4X3QgeyBOb25lLCBGdW5jdGlvbkV2YWxDb250ZXh0IH07CiAvLyBGSVhNRTogVGhlc2Ug
ZmxhZ3MsIFBhcnNlck1vZGVzIGFuZCBwcm9wYWdhdGlvbiB0byBYWFhDb2RlQmxvY2tzIHNob3Vs
ZCBiZSByZW9yZ2FuaXplZC4KIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTE1NDcKIHN0cnVjdCBFeGVjdXRhYmxlSW5mbyB7Ci0gICAgRXhlY3V0YWJsZUluZm8o
Ym9vbCB1c2VzRXZhbCwgYm9vbCBpc1N0cmljdE1vZGUsIGJvb2wgaXNDb25zdHJ1Y3RvciwgYm9v
bCBpc0J1aWx0aW5GdW5jdGlvbiwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgU3Vw
ZXJCaW5kaW5nIHN1cGVyQmluZGluZywgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSwgRGVyaXZl
ZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250
ZXh0LCBib29sIGlzQ2xhc3NDb250ZXh0LCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBl
KQorICAgIEV4ZWN1dGFibGVJbmZvKGJvb2wgdXNlc0V2YWwsIGJvb2wgaXNTdHJpY3RNb2RlLCBi
b29sIGlzQ29uc3RydWN0b3IsIGJvb2wgaXNCdWlsdGluRnVuY3Rpb24sIENvbnN0cnVjdG9yS2lu
ZCBjb25zdHJ1Y3RvcktpbmQsIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBTdXBlckJp
bmRpbmcgc3VwZXJCaW5kaW5nLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlLCBEZXJpdmVkQ29u
dGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQs
IGJvb2wgaXNDbGFzc0NvbnRleHQsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUpCiAg
ICAgICAgIDogbV91c2VzRXZhbCh1c2VzRXZhbCkKICAgICAgICAgLCBtX2lzU3RyaWN0TW9kZShp
c1N0cmljdE1vZGUpCiAgICAgICAgICwgbV9pc0NvbnN0cnVjdG9yKGlzQ29uc3RydWN0b3IpCiAg
ICAgICAgICwgbV9pc0J1aWx0aW5GdW5jdGlvbihpc0J1aWx0aW5GdW5jdGlvbikKICAgICAgICAg
LCBtX2NvbnN0cnVjdG9yS2luZChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29uc3RydWN0b3JLaW5k
KSkKICAgICAgICAgLCBtX3N1cGVyQmluZGluZyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3VwZXJC
aW5kaW5nKSkKKyAgICAgICAgLCBtX3NjcmlwdE1vZGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNj
cmlwdE1vZGUpKQogICAgICAgICAsIG1fcGFyc2VNb2RlKHBhcnNlTW9kZSkKICAgICAgICAgLCBt
X2Rlcml2ZWRDb250ZXh0VHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVyaXZlZENvbnRleHRU
eXBlKSkKICAgICAgICAgLCBtX2lzQXJyb3dGdW5jdGlvbkNvbnRleHQoaXNBcnJvd0Z1bmN0aW9u
Q29udGV4dCkKQEAgLTUxLDYgKzUyLDcgQEAgc3RydWN0IEV4ZWN1dGFibGVJbmZvIHsKICAgICB7
CiAgICAgICAgIEFTU0VSVChtX2NvbnN0cnVjdG9yS2luZCA9PSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oY29uc3RydWN0b3JLaW5kKSk7CiAgICAgICAgIEFTU0VSVChtX3N1cGVyQmluZGluZyA9PSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oc3VwZXJCaW5kaW5nKSk7CisgICAgICAgIEFTU0VSVChtX3Nj
cmlwdE1vZGUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmlwdE1vZGUpKTsKICAgICB9CiAK
ICAgICBib29sIHVzZXNFdmFsKCkgY29uc3QgeyByZXR1cm4gbV91c2VzRXZhbDsgfQpAQCAtNTks
NiArNjEsNyBAQCBzdHJ1Y3QgRXhlY3V0YWJsZUluZm8gewogICAgIGJvb2wgaXNCdWlsdGluRnVu
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2lzQnVpbHRpbkZ1bmN0aW9uOyB9CiAgICAgQ29uc3Ry
dWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENv
bnN0cnVjdG9yS2luZD4obV9jb25zdHJ1Y3RvcktpbmQpOyB9CiAgICAgU3VwZXJCaW5kaW5nIHN1
cGVyQmluZGluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN1cGVyQmluZGluZz4obV9z
dXBlckJpbmRpbmcpOyB9CisgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxKU1BhcnNlclNjcmlwdE1vZGU+KG1fc2NyaXB0TW9kZSk7
IH0KICAgICBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJz
ZU1vZGU7IH0KICAgICBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGVyaXZlZENvbnRleHRUeXBlPihtX2Rlcml2ZWRDb250
ZXh0VHlwZSk7IH0KICAgICBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RXZhbENvbnRleHRUeXBlPihtX2V2YWxDb250ZXh0VHlwZSk7
IH0KQEAgLTcyLDYgKzc1LDcgQEAgc3RydWN0IEV4ZWN1dGFibGVJbmZvIHsKICAgICB1bnNpZ25l
ZCBtX2lzQnVpbHRpbkZ1bmN0aW9uIDogMTsKICAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdG9yS2lu
ZCA6IDI7CiAgICAgdW5zaWduZWQgbV9zdXBlckJpbmRpbmcgOiAxOworICAgIHVuc2lnbmVkIG1f
c2NyaXB0TW9kZTogMTsKICAgICBTb3VyY2VQYXJzZU1vZGUgbV9wYXJzZU1vZGU7CiAgICAgdW5z
aWduZWQgbV9kZXJpdmVkQ29udGV4dFR5cGUgOiAyOwogICAgIHVuc2lnbmVkIG1faXNBcnJvd0Z1
bmN0aW9uQ29udGV4dCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCAyOTlhYzY4MGQ5YTFkMWU1YTkwZDlmYWUx
YTIyZjg0NGUyOTJlM2UyLi5mN2JmZTZmYTk3MDJiOWZhM2E0ZTI2YWQ1N2U2NjIxMjRiMTM0ZGQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2Rl
QmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9jay5jcHAKQEAgLTYyLDEzICs2MiwxNCBAQCBVbmxpbmtlZENvZGVCbG9jazo6VW5saW5r
ZWRDb2RlQmxvY2soVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ29kZVR5cGUgY29kZQog
ICAgICwgbV9pc0NvbnN0cnVjdG9yKGluZm8uaXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9oYXND
YXB0dXJlZFZhcmlhYmxlcyhmYWxzZSkKICAgICAsIG1faXNCdWlsdGluRnVuY3Rpb24oaW5mby5p
c0J1aWx0aW5GdW5jdGlvbigpKQotICAgICwgbV9jb25zdHJ1Y3RvcktpbmQoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGluZm8uY29uc3RydWN0b3JLaW5kKCkpKQogICAgICwgbV9zdXBlckJpbmRpbmco
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZm8uc3VwZXJCaW5kaW5nKCkpKQotICAgICwgbV9kZXJp
dmVkQ29udGV4dFR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZm8uZGVyaXZlZENvbnRleHRU
eXBlKCkpKQotICAgICwgbV9ldmFsQ29udGV4dFR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGlu
Zm8uZXZhbENvbnRleHRUeXBlKCkpKQorICAgICwgbV9zY3JpcHRNb2RlKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihpbmZvLnNjcmlwdE1vZGUoKSkpCiAgICAgLCBtX2lzQXJyb3dGdW5jdGlvbkNvbnRl
eHQoaW5mby5pc0Fycm93RnVuY3Rpb25Db250ZXh0KCkpCiAgICAgLCBtX2lzQ2xhc3NDb250ZXh0
KGluZm8uaXNDbGFzc0NvbnRleHQoKSkKICAgICAsIG1fd2FzQ29tcGlsZWRXaXRoRGVidWdnaW5n
T3Bjb2RlcyhkZWJ1Z2dlck1vZGUgPT0gRGVidWdnZXJNb2RlOjpEZWJ1Z2dlck9uIHx8IE9wdGlv
bnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSkKKyAgICAsIG1fY29uc3RydWN0
b3JLaW5kKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmZvLmNvbnN0cnVjdG9yS2luZCgpKSkKKyAg
ICAsIG1fZGVyaXZlZENvbnRleHRUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmZvLmRlcml2
ZWRDb250ZXh0VHlwZSgpKSkKKyAgICAsIG1fZXZhbENvbnRleHRUeXBlKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihpbmZvLmV2YWxDb250ZXh0VHlwZSgpKSkKICAgICAsIG1fZmlyc3RMaW5lKDApCiAg
ICAgLCBtX2xpbmVDb3VudCgwKQogICAgICwgbV9lbmRDb2x1bW4oVUlOVF9NQVgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCmluZGV4
IDk5ZDQ3NmI0NjFhM2YzN2VmNDQ0Yzg0Njc2NTY2NmUzMWVjN2M2MGEuLjQ4Y2ZmYTRhMDQ4NzU4
N2YyMjNiODc2OTYwYzY3MjIwNWU2MzEzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCkBAIC0yMDQsNiArMjA0LDcgQEAgY2xh
c3MgVW5saW5rZWRDb2RlQmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIENvbnN0cnVjdG9y
S2luZCBjb25zdHJ1Y3RvcktpbmQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDb25zdHJ1
Y3RvcktpbmQ+KG1fY29uc3RydWN0b3JLaW5kKTsgfQogICAgIFN1cGVyQmluZGluZyBzdXBlckJp
bmRpbmcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTdXBlckJpbmRpbmc+KG1fc3VwZXJC
aW5kaW5nKTsgfQorICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SlNQYXJzZXJTY3JpcHRNb2RlPihtX3NjcmlwdE1vZGUpOyB9CiAK
ICAgICB2b2lkIHNocmlua1RvRml0KCkKICAgICB7CkBAIC00MDUsMTMgKzQwNiwxNCBAQCBjbGFz
cyBVbmxpbmtlZENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewogICAgIHVuc2lnbmVkIG1faXND
b25zdHJ1Y3RvciA6IDE7CiAgICAgdW5zaWduZWQgbV9oYXNDYXB0dXJlZFZhcmlhYmxlcyA6IDE7
CiAgICAgdW5zaWduZWQgbV9pc0J1aWx0aW5GdW5jdGlvbiA6IDE7Ci0gICAgdW5zaWduZWQgbV9j
b25zdHJ1Y3RvcktpbmQgOiAyOwogICAgIHVuc2lnbmVkIG1fc3VwZXJCaW5kaW5nIDogMTsKLSAg
ICB1bnNpZ25lZCBtX2Rlcml2ZWRDb250ZXh0VHlwZSA6IDI7Ci0gICAgdW5zaWduZWQgbV9ldmFs
Q29udGV4dFR5cGUgOiAyOworICAgIHVuc2lnbmVkIG1fc2NyaXB0TW9kZTogMTsKICAgICB1bnNp
Z25lZCBtX2lzQXJyb3dGdW5jdGlvbkNvbnRleHQgOiAxOwogICAgIHVuc2lnbmVkIG1faXNDbGFz
c0NvbnRleHQgOiAxOwogICAgIHVuc2lnbmVkIG1fd2FzQ29tcGlsZWRXaXRoRGVidWdnaW5nT3Bj
b2RlcyA6IDE7CisgICAgdW5zaWduZWQgbV9jb25zdHJ1Y3RvcktpbmQgOiAyOworICAgIHVuc2ln
bmVkIG1fZGVyaXZlZENvbnRleHRUeXBlIDogMjsKKyAgICB1bnNpZ25lZCBtX2V2YWxDb250ZXh0
VHlwZSA6IDI7CiAgICAgdW5zaWduZWQgbV9maXJzdExpbmU7CiAgICAgdW5zaWduZWQgbV9saW5l
Q291bnQ7CiAgICAgdW5zaWduZWQgbV9lbmRDb2x1bW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNw
cAppbmRleCAzZjAxNGY4OGQ3NTU0MjA4OTg3MzZjZTRhMTE3NWM5NmIyMjcxMzhlLi43NGMyZmNm
MjdiNWJjZjYwMzhlZGE2N2ExY2Q5ZWYwMjI2MzczOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZS5jcHAKQEAgLTUxLDkgKzUxLDEwIEBAIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
KiBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2soCiB7CiAgICAgSlNQYXJzZXJCdWls
dGluTW9kZSBidWlsdGluTW9kZSA9IGV4ZWN1dGFibGUtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgPyBK
U1BhcnNlckJ1aWx0aW5Nb2RlOjpCdWlsdGluIDogSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVp
bHRpbjsKICAgICBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IGV4ZWN1dGFibGUtPmlz
SW5TdHJpY3RDb250ZXh0KCkgPyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCA6IEpTUGFyc2Vy
U3RyaWN0TW9kZTo6Tm90U3RyaWN0OworICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2Rl
ID0gZXhlY3V0YWJsZS0+c2NyaXB0TW9kZSgpOwogICAgIEFTU0VSVChpc0Z1bmN0aW9uUGFyc2VN
b2RlKGV4ZWN1dGFibGUtPnBhcnNlTW9kZSgpKSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZ1bmN0
aW9uTm9kZT4gZnVuY3Rpb24gPSBwYXJzZTxGdW5jdGlvbk5vZGU+KAotICAgICAgICAmdm0sIHNv
dXJjZSwgZXhlY3V0YWJsZS0+bmFtZSgpLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgZXhlY3V0
YWJsZS0+cGFyc2VNb2RlKCksIGV4ZWN1dGFibGUtPnN1cGVyQmluZGluZygpLCBlcnJvciwgbnVs
bHB0cik7CisgICAgICAgICZ2bSwgc291cmNlLCBleGVjdXRhYmxlLT5uYW1lKCksIGJ1aWx0aW5N
b2RlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBleGVjdXRhYmxlLT5wYXJzZU1vZGUoKSwgZXhl
Y3V0YWJsZS0+c3VwZXJCaW5kaW5nKCksIGVycm9yLCBudWxscHRyKTsKIAogICAgIGlmICghZnVu
Y3Rpb24pIHsKICAgICAgICAgQVNTRVJUKGVycm9yLmlzVmFsaWQoKSk7CkBAIC02NSw3ICs2Niw3
IEBAIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkRnVu
Y3Rpb25Db2RlQmxvY2soCiAKICAgICBib29sIGlzQ2xhc3NDb250ZXh0ID0gZXhlY3V0YWJsZS0+
c3VwZXJCaW5kaW5nKCkgPT0gU3VwZXJCaW5kaW5nOjpOZWVkZWQ7CiAKLSAgICBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVh
dGUoJnZtLCBGdW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT51c2VzRXZhbCgp
LCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCwgZnVu
Y3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uLCBleGVjdXRhYmxlLT5jb25zdHJ1
Y3RvcktpbmQoKSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5nKCksIHBhcnNlTW9kZSwgZXhlY3V0
YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCksIGZhbHNlLCBpc0NsYXNzQ29udGV4dCwgRXZhbENv
bnRleHRUeXBlOjpGdW5jdGlvbkV2YWxDb250ZXh0KSwgZGVidWdnZXJNb2RlKTsKKyAgICBVbmxp
bmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
OjpjcmVhdGUoJnZtLCBGdW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT51c2Vz
RXZhbCgpLCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVj
dCwgZnVuY3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uLCBleGVjdXRhYmxlLT5j
b25zdHJ1Y3RvcktpbmQoKSwgc2NyaXB0TW9kZSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5nKCks
IHBhcnNlTW9kZSwgZXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCksIGZhbHNlLCBpc0Ns
YXNzQ29udGV4dCwgRXZhbENvbnRleHRUeXBlOjpGdW5jdGlvbkV2YWxDb250ZXh0KSwgZGVidWdn
ZXJNb2RlKTsKIAogICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCBm
dW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNj
b3BlVERaVmFyaWFibGVzKCkpOwogCkBAIC03NCw3ICs3NSw3IEBAIHN0YXRpYyBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2soCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKFZNKiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiYmIHNvdXJjZU92ZXJyaWRl
LCBGdW5jdGlvbk1ldGFkYXRhTm9kZSogbm9kZSwgVW5saW5rZWRGdW5jdGlvbktpbmQga2luZCwg
Q29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5LCBWYXJpYWJsZUVudmlyb25tZW50JiBw
YXJlbnRTY29wZVREWlZhcmlhYmxlcywgRGVyaXZlZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0
VHlwZSkKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZShWTSogdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2UsIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4mJiBzb3VyY2VPdmVycmlkZSwgRnVuY3Rpb25NZXRh
ZGF0YU5vZGUqIG5vZGUsIFVubGlua2VkRnVuY3Rpb25LaW5kIGtpbmQsIENvbnN0cnVjdEFiaWxp
dHkgY29uc3RydWN0QWJpbGl0eSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIFZhcmlh
YmxlRW52aXJvbm1lbnQmIHBhcmVudFNjb3BlVERaVmFyaWFibGVzLCBEZXJpdmVkQ29udGV4dFR5
cGUgZGVyaXZlZENvbnRleHRUeXBlKQogICAgIDogQmFzZSgqdm0sIHN0cnVjdHVyZSkKICAgICAs
IG1fZmlyc3RMaW5lT2Zmc2V0KG5vZGUtPmZpcnN0TGluZSgpIC0gc291cmNlLmZpcnN0TGluZSgp
KQogICAgICwgbV9saW5lQ291bnQobm9kZS0+bGFzdExpbmUoKSAtIG5vZGUtPmZpcnN0TGluZSgp
KQpAQCAtOTQsNiArOTUsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6VW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUoVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdAogICAgICwgbV9jb25z
dHJ1Y3RBYmlsaXR5KHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb25zdHJ1Y3RBYmlsaXR5KSkKICAg
ICAsIG1fY29uc3RydWN0b3JLaW5kKHN0YXRpY19jYXN0PHVuc2lnbmVkPihub2RlLT5jb25zdHJ1
Y3RvcktpbmQoKSkpCiAgICAgLCBtX2Z1bmN0aW9uTW9kZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
bm9kZS0+ZnVuY3Rpb25Nb2RlKCkpKQorICAgICwgbV9zY3JpcHRNb2RlKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JpcHRNb2RlKSkKICAgICAsIG1fc3VwZXJCaW5kaW5nKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihub2RlLT5zdXBlckJpbmRpbmcoKSkpCiAgICAgLCBtX2Rlcml2ZWRDb250ZXh0VHlw
ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVyaXZlZENvbnRleHRUeXBlKSkKICAgICAsIG1fc291
cmNlUGFyc2VNb2RlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihub2RlLT5wYXJzZU1vZGUoKSkpCkBA
IC0xMDcsNiArMTA5LDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKFZNKiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3QKICAgICBBU1NFUlQobV9j
b25zdHJ1Y3RBYmlsaXR5ID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb25zdHJ1Y3RBYmlsaXR5
KSk7CiAgICAgQVNTRVJUKG1fY29uc3RydWN0b3JLaW5kID09IHN0YXRpY19jYXN0PHVuc2lnbmVk
Pihub2RlLT5jb25zdHJ1Y3RvcktpbmQoKSkpOwogICAgIEFTU0VSVChtX2Z1bmN0aW9uTW9kZSA9
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obm9kZS0+ZnVuY3Rpb25Nb2RlKCkpKTsKKyAgICBBU1NF
UlQobV9zY3JpcHRNb2RlID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JpcHRNb2RlKSk7CiAg
ICAgQVNTRVJUKG1fc3VwZXJCaW5kaW5nID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihub2RlLT5z
dXBlckJpbmRpbmcoKSkpOwogICAgIEFTU0VSVChtX2Rlcml2ZWRDb250ZXh0VHlwZSA9PSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZGVyaXZlZENvbnRleHRUeXBlKSk7CiAgICAgQVNTRVJUKG1fc291
cmNlUGFyc2VNb2RlID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihub2RlLT5wYXJzZU1vZGUoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBjZWM3NjEzYjAyN2IxMjdiNjhlYzY1YWYxOTIw
Y2EwYzNhOTFiNjJjLi44Nzk3YmQ4MjQ5OTk1YWVlMjkwZTZjZDk0MmE3ODgwY2EwMjE3Y2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtNjQsMTAgKzY0LDEwIEBAIGNsYXNzIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBK
U0NlbGwgQmFzZTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKLSAgICBzdGF0aWMg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShWTSogdm0sIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgRnVuY3Rpb25NZXRhZGF0YU5vZGUqIG5vZGUsIFVubGlua2VkRnVuY3Rpb25L
aW5kIHVubGlua2VkRnVuY3Rpb25LaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxp
dHksIFZhcmlhYmxlRW52aXJvbm1lbnQmIHBhcmVudFNjb3BlVERaVmFyaWFibGVzLCBEZXJpdmVk
Q29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBSZWZQdHI8U291cmNlUHJvdmlkZXI+JiYg
c291cmNlT3ZlcnJpZGUgPSBudWxscHRyKQorICAgIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZSogY3JlYXRlKFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBGdW5jdGlv
bk1ldGFkYXRhTm9kZSogbm9kZSwgVW5saW5rZWRGdW5jdGlvbktpbmQgdW5saW5rZWRGdW5jdGlv
bktpbmQsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSwgSlNQYXJzZXJTY3JpcHRN
b2RlIHNjcmlwdE1vZGUsIFZhcmlhYmxlRW52aXJvbm1lbnQmIHBhcmVudFNjb3BlVERaVmFyaWFi
bGVzLCBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBSZWZQdHI8U291cmNl
UHJvdmlkZXI+JiYgc291cmNlT3ZlcnJpZGUgPSBudWxscHRyKQogICAgIHsKICAgICAgICAgVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+KHZtLT5oZWFwKSkKLSAgICAgICAgICAg
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKHZtLCB2bS0+dW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIHNvdXJjZSwgV1RGTW92ZShzb3VyY2VPdmVycmlkZSksIG5v
ZGUsIHVubGlua2VkRnVuY3Rpb25LaW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBwYXJlbnRTY29wZVRE
WlZhcmlhYmxlcywgZGVyaXZlZENvbnRleHRUeXBlKTsKKyAgICAgICAgICAgIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKHZtLCB2bS0+dW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1
cmUuZ2V0KCksIHNvdXJjZSwgV1RGTW92ZShzb3VyY2VPdmVycmlkZSksIG5vZGUsIHVubGlua2Vk
RnVuY3Rpb25LaW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBzY3JpcHRNb2RlLCBwYXJlbnRTY29wZVRE
WlZhcmlhYmxlcywgZGVyaXZlZENvbnRleHRUeXBlKTsKICAgICAgICAgaW5zdGFuY2UtPmZpbmlz
aENyZWF0aW9uKCp2bSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CkBAIC0xMjcs
NiArMTI3LDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJs
aWMgSlNDZWxsIHsKIAogICAgIGJvb2wgaXNCdWlsdGluRnVuY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX2lzQnVpbHRpbkZ1bmN0aW9uOyB9CiAgICAgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RB
YmlsaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29uc3RydWN0QWJpbGl0eT4obV9j
b25zdHJ1Y3RBYmlsaXR5KTsgfQorICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNQYXJzZXJTY3JpcHRNb2RlPihtX3NjcmlwdE1v
ZGUpOyB9CiAgICAgYm9vbCBpc0NsYXNzQ29uc3RydWN0b3JGdW5jdGlvbigpIGNvbnN0IHsgcmV0
dXJuIGNvbnN0cnVjdG9yS2luZCgpICE9IENvbnN0cnVjdG9yS2luZDo6Tm9uZTsgfQogICAgIGNv
bnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkgY29uc3Qg
eyByZXR1cm4gJm1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7IH0KICAgICAKQEAgLTE0MCw3ICsx
NDEsNyBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBK
U0NlbGwgewogICAgIHZvaWQgc2V0U291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZShjb25zdCBTdHJp
bmcmIHNvdXJjZU1hcHBpbmdVUkwpIHsgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlID0gc291
cmNlTWFwcGluZ1VSTDsgfQogCiBwcml2YXRlOgotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKFZNKiwgU3RydWN0dXJlKiwgY29uc3QgU291cmNlQ29kZSYsIFJlZlB0cjxTb3VyY2VQcm92
aWRlcj4mJiBzb3VyY2VPdmVycmlkZSwgRnVuY3Rpb25NZXRhZGF0YU5vZGUqLCBVbmxpbmtlZEZ1
bmN0aW9uS2luZCwgQ29uc3RydWN0QWJpbGl0eSwgVmFyaWFibGVFbnZpcm9ubWVudCYsICBKU0M6
OkRlcml2ZWRDb250ZXh0VHlwZSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoVk0q
LCBTdHJ1Y3R1cmUqLCBjb25zdCBTb3VyY2VDb2RlJiwgUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiYm
IHNvdXJjZU92ZXJyaWRlLCBGdW5jdGlvbk1ldGFkYXRhTm9kZSosIFVubGlua2VkRnVuY3Rpb25L
aW5kLCBDb25zdHJ1Y3RBYmlsaXR5LCBKU1BhcnNlclNjcmlwdE1vZGUsIFZhcmlhYmxlRW52aXJv
bm1lbnQmLCAgSlNDOjpEZXJpdmVkQ29udGV4dFR5cGUpOwogCiAgICAgdW5zaWduZWQgbV9maXJz
dExpbmVPZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9saW5lQ291bnQ7CkBAIC0xNjAsNiArMTYxLDcg
QEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgSlNDZWxs
IHsKICAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdEFiaWxpdHk6IDE7CiAgICAgdW5zaWduZWQgbV9j
b25zdHJ1Y3RvcktpbmQgOiAyOwogICAgIHVuc2lnbmVkIG1fZnVuY3Rpb25Nb2RlIDogMjsgLy8g
RnVuY3Rpb25Nb2RlCisgICAgdW5zaWduZWQgbV9zY3JpcHRNb2RlOiAxOyAvLyBKU1BhcnNlclNj
cmlwdE1vZGUKICAgICB1bnNpZ25lZCBtX3N1cGVyQmluZGluZyA6IDE7CiAgICAgdW5zaWduZWQg
bV9kZXJpdmVkQ29udGV4dFR5cGU6IDI7CiAgICAgdW5zaWduZWQgbV9zb3VyY2VQYXJzZU1vZGUg
OiA0OyAvLyBTb3VyY2VQYXJzZU1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCAwNTE2ZTcyYTc0YTZhZjM4
MDVjMjFjZDg5YzM5MWMwMzk4Mzg4YWVlLi4yN2M1ZjUwNGJkYWJlY2Y5ZWI5MzYzMzA0ZjdlNGRi
Nzk4NmVkNzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC0yODUsNiArMjg1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGJvb2wgdXNlc1RoaXMoKSBjb25zdCB7IHJldHVybiBtX3Njb3BlTm9kZS0+
dXNlc1RoaXMoKTsgfQogICAgICAgICBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2RlQmxvY2stPmNvbnN0cnVjdG9yS2luZCgpOyB9CiAgICAgICAg
IFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvZGVCbG9jay0+
c3VwZXJCaW5kaW5nKCk7IH0KKyAgICAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUo
KSBjb25zdCB7IHJldHVybiBtX2NvZGVCbG9jay0+c2NyaXB0TW9kZSgpOyB9CiAKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KICAgICAgICAgc3RhdGljIFBhcnNlckVycm9yIGdl
bmVyYXRlKFZNJiB2bSwgQXJncyYmIC4uLmFyZ3MpCkBAIC04NDMsNyArODQ0LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICBlbHNlIGlmIChwYXJzZU1vZGUgPT0gU291cmNlUGFyc2VN
b2RlOjpNZXRob2RNb2RlICYmIG1ldGFkYXRhLT5jb25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1
Y3RvcktpbmQ6Ok5vbmUpCiAgICAgICAgICAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9IENvbnN0
cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKIAotICAgICAgICAgICAgcmV0dXJuIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUobV92bSwgbV9zY29wZU5vZGUtPnNvdXJjZSgp
LCBtZXRhZGF0YSwgaXNCdWlsdGluRnVuY3Rpb24oKSA/IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9u
IDogVW5saW5rZWROb3JtYWxGdW5jdGlvbiwgY29uc3RydWN0QWJpbGl0eSwgdmFyaWFibGVzVW5k
ZXJURFosIG5ld0Rlcml2ZWRDb250ZXh0VHlwZSk7CisgICAgICAgICAgICByZXR1cm4gVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZShtX3ZtLCBtX3Njb3BlTm9kZS0+c291cmNlKCks
IG1ldGFkYXRhLCBpc0J1aWx0aW5GdW5jdGlvbigpID8gVW5saW5rZWRCdWlsdGluRnVuY3Rpb24g
OiBVbmxpbmtlZE5vcm1hbEZ1bmN0aW9uLCBjb25zdHJ1Y3RBYmlsaXR5LCBzY3JpcHRNb2RlKCks
IHZhcmlhYmxlc1VuZGVyVERaLCBuZXdEZXJpdmVkQ29udGV4dFR5cGUpOwogICAgICAgICB9CiAK
ICAgICAgICAgdm9pZCBnZXRWYXJpYWJsZXNVbmRlclREWihWYXJpYWJsZUVudmlyb25tZW50Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4IGI3MjZkZGE0NTJlNjky
MTNmMmRlOTcxNWFiYzFhM2RkY2M3YmI2NzMuLmJjNzY3NzkyMTg1YzAxMmMzMTRmMDAwZmEyYzEw
MGMwNGE2ZmNlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC00
ODYsMTAgKzQ4NiwxMSBAQCBzdGF0aWMgY29uc3QgTENoYXIgc2luZ2xlQ2hhcmFjdGVyRXNjYXBl
VmFsdWVzRm9yQVNDSUlbMTI4XSA9IHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotTGV4
ZXI8VD46OkxleGVyKFZNKiB2bSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSkKK0xl
eGVyPFQ+OjpMZXhlcihWTSogdm0sIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpT
UGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlKQogICAgIDogbV9pc1JlcGFyc2luZ0Z1bmN0aW9u
KGZhbHNlKQogICAgICwgbV92bSh2bSkKICAgICAsIG1fcGFyc2luZ0J1aWx0aW5GdW5jdGlvbihi
dWlsdGluTW9kZSA9PSBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpCdWlsdGluKQorICAgICwgbV9zY3Jp
cHRNb2RlKHNjcmlwdE1vZGUpCiB7CiB9CiAKQEAgLTE4ODMsOCArMTg4NCwxMCBAQCBKU1Rva2Vu
VHlwZSBMZXhlcjxUPjo6bGV4KEpTVG9rZW4qIHRva2VuUmVjb3JkLCB1bnNpZ25lZCBsZXhlckZs
YWdzLCBib29sIHN0cmljdAogICAgIGNhc2UgQ2hhcmFjdGVyTGVzczoKICAgICAgICAgc2hpZnQo
KTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnIScgJiYgcGVlaygxKSA9PSAnLScgJiYgcGVl
aygyKSA9PSAnLScpIHsKLSAgICAgICAgICAgIC8vIDwhLS0gbWFya3MgdGhlIGJlZ2lubmluZyBv
ZiBhIGxpbmUgY29tbWVudCAoZm9yIHd3dyB1c2FnZSkKLSAgICAgICAgICAgIGdvdG8gaW5TaW5n
bGVMaW5lQ29tbWVudDsKKyAgICAgICAgICAgIGlmIChtX3NjcmlwdE1vZGUgPT0gSlNQYXJzZXJT
Y3JpcHRNb2RlOjpDbGFzc2ljKSB7CisgICAgICAgICAgICAgICAgLy8gPCEtLSBtYXJrcyB0aGUg
YmVnaW5uaW5nIG9mIGEgbGluZSBjb21tZW50IChmb3Igd3d3IHVzYWdlKQorICAgICAgICAgICAg
ICAgIGdvdG8gaW5TaW5nbGVMaW5lQ29tbWVudDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICBpZiAobV9jdXJyZW50ID09ICc8JykgewogICAgICAgICAgICAgc2hpZnQoKTsKQEAg
LTE5MzYsOCArMTkzOSwxMCBAQCBKU1Rva2VuVHlwZSBMZXhlcjxUPjo6bGV4KEpTVG9rZW4qIHRv
a2VuUmVjb3JkLCB1bnNpZ25lZCBsZXhlckZsYWdzLCBib29sIHN0cmljdAogICAgICAgICBpZiAo
bV9jdXJyZW50ID09ICctJykgewogICAgICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgICAgIGlm
IChtX2F0TGluZVN0YXJ0ICYmIG1fY3VycmVudCA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBz
aGlmdCgpOwotICAgICAgICAgICAgICAgIGdvdG8gaW5TaW5nbGVMaW5lQ29tbWVudDsKKyAgICAg
ICAgICAgICAgICBpZiAobV9zY3JpcHRNb2RlID09IEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3Np
YykgeworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBn
b3RvIGluU2luZ2xlTGluZUNvbW1lbnQ7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgdG9rZW4gPSAoIW1fdGVybWluYXRvcikgPyBNSU5VU01JTlVTIDogQVVU
T01JTlVTTUlOVVM7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuaAppbmRleCA4YzgwZWVhMDY4ZWZhYWE3ZTI2YWI4ZWVjNTM3NmRjMzJhMjhmMmI5Li5i
ZjZkNjNhYTIyNGE1MWVlN2VmOWNmYmNmZTc0MDhlMzk2ZmRiNzM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9MZXhlci5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIExleGVyIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIExleGVyKFZNKiwgSlNQYXJz
ZXJCdWlsdGluTW9kZSk7CisgICAgTGV4ZXIoVk0qLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1Bh
cnNlclNjcmlwdE1vZGUpOwogICAgIH5MZXhlcigpOwogCiAgICAgLy8gQ2hhcmFjdGVyIG1hbmlw
dWxhdGlvbiBmdW5jdGlvbnMuCkBAIC0yMTYsNiArMjE2LDcgQEAgY2xhc3MgTGV4ZXIgewogCiAg
ICAgVk0qIG1fdm07CiAgICAgYm9vbCBtX3BhcnNpbmdCdWlsdGluRnVuY3Rpb247CisgICAgSlNQ
YXJzZXJTY3JpcHRNb2RlIG1fc2NyaXB0TW9kZTsKIH07CiAKIHRlbXBsYXRlIDw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggMThlZGMwMmI3ZjgwNTk2ZTUwZGM0
MjA4NTQyYmMzNjU4MGU0YWY5MC4uZDYyNTBmMzk1ODg4MjJmN2RkNGE5ZmVlZDg0MDVhNjQxYzMz
MTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgUGFyc2VyPExleGVyVHlwZT46OmxvZ0Vycm9yKGJvb2wgc2hvdWxkUHJp
bnRUb2tlbiwgY29uc3QgQSYgdmFsdWUxLCBjb25zdCBCCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBMZXhlclR5cGU+Ci1QYXJzZXI8TGV4ZXJUeXBlPjo6UGFyc2VyKFZNKiB2bSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNl
clN0cmljdE1vZGUgc3RyaWN0TW9kZSwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSwgU3VwZXJC
aW5kaW5nIHN1cGVyQmluZGluZywgQ29uc3RydWN0b3JLaW5kIGRlZmF1bHRDb25zdHJ1Y3Rvcktp
bmQsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNFdmFsQ29u
dGV4dCwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKK1BhcnNlcjxMZXhlclR5cGU+
OjpQYXJzZXIoVk0qIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRp
bk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNl
clNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSwgU3VwZXJC
aW5kaW5nIHN1cGVyQmluZGluZywgQ29uc3RydWN0b3JLaW5kIGRlZmF1bHRDb25zdHJ1Y3Rvcktp
bmQsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNFdmFsQ29u
dGV4dCwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKICAgICA6IG1fdm0odm0pCiAg
ICAgLCBtX3NvdXJjZSgmc291cmNlKQogICAgICwgbV9oYXNTdGFja092ZXJmbG93KGZhbHNlKQpA
QCAtMTk4LDExICsxOTgsMTIgQEAgUGFyc2VyPExleGVyVHlwZT46OlBhcnNlcihWTSogdm0sIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZQogICAgICwgbV9zdGF0
ZW1lbnREZXB0aCgwKQogICAgICwgbV9zb3VyY2VFbGVtZW50cygwKQogICAgICwgbV9wYXJzaW5n
QnVpbHRpbihidWlsdGluTW9kZSA9PSBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpCdWlsdGluKQorICAg
ICwgbV9zY3JpcHRNb2RlKHNjcmlwdE1vZGUpCiAgICAgLCBtX3N1cGVyQmluZGluZyhzdXBlckJp
bmRpbmcpCiAgICAgLCBtX2RlZmF1bHRDb25zdHJ1Y3RvcktpbmQoZGVmYXVsdENvbnN0cnVjdG9y
S2luZCkKICAgICAsIG1faW1tZWRpYXRlUGFyZW50QWxsb3dzRnVuY3Rpb25EZWNsYXJhdGlvbklu
U3RhdGVtZW50KGZhbHNlKQogewotICAgIG1fbGV4ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExleGVy
VHlwZT4odm0sIGJ1aWx0aW5Nb2RlKTsKKyAgICBtX2xleGVyID0gc3RkOjptYWtlX3VuaXF1ZTxM
ZXhlclR5cGU+KHZtLCBidWlsdGluTW9kZSwgc2NyaXB0TW9kZSk7CiAgICAgbV9sZXhlci0+c2V0
Q29kZShzb3VyY2UsICZtX3BhcnNlckFyZW5hKTsKICAgICBtX3Rva2VuLm1fbG9jYXRpb24ubGlu
ZSA9IHNvdXJjZS5maXJzdExpbmUoKTsKICAgICBtX3Rva2VuLm1fbG9jYXRpb24uc3RhcnRPZmZz
ZXQgPSBzb3VyY2Uuc3RhcnRPZmZzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oCmluZGV4IDRmYTIyZmFhNDk5YTA3Y2EzYWZjMWU4ZGE1ODFiY2ExODhhYWQ4YTEuLmQ2YTVi
MGZjNDk1YTI2ZGZmN2RkMGEwMjBlMGNjM2EyODY5NTBlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaApAQCAtNzkzLDcgKzc5Myw3IEBAIGNsYXNzIFBhcnNlciB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKIHB1YmxpYzoKLSAgICBQYXJzZXIoVk0qLCBjb25z
dCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlLCBT
b3VyY2VQYXJzZU1vZGUsIFN1cGVyQmluZGluZywgQ29uc3RydWN0b3JLaW5kIGRlZmF1bHRDb25z
dHJ1Y3RvcktpbmQgPSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIERlcml2ZWRDb250ZXh0VHlwZSA9
IERlcml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwgYm9vbCBpc0V2YWxDb250ZXh0ID0gZmFsc2UsIEV2
YWxDb250ZXh0VHlwZSA9IEV2YWxDb250ZXh0VHlwZTo6Tm9uZSk7CisgICAgUGFyc2VyKFZNKiwg
Y29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9k
ZSwgSlNQYXJzZXJTY3JpcHRNb2RlLCBTb3VyY2VQYXJzZU1vZGUsIFN1cGVyQmluZGluZywgQ29u
c3RydWN0b3JLaW5kIGRlZmF1bHRDb25zdHJ1Y3RvcktpbmQgPSBDb25zdHJ1Y3RvcktpbmQ6Ok5v
bmUsIERlcml2ZWRDb250ZXh0VHlwZSA9IERlcml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwgYm9vbCBp
c0V2YWxDb250ZXh0ID0gZmFsc2UsIEV2YWxDb250ZXh0VHlwZSA9IEV2YWxDb250ZXh0VHlwZTo6
Tm9uZSk7CiAgICAgflBhcnNlcigpOwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFBhcnNlZE5vZGU+
CkBAIC0xNTgzLDYgKzE1ODMsNyBAQCBjbGFzcyBQYXJzZXIgewogICAgIFJlZlB0cjxTb3VyY2VQ
cm92aWRlckNhY2hlPiBtX2Z1bmN0aW9uQ2FjaGU7CiAgICAgU291cmNlRWxlbWVudHMqIG1fc291
cmNlRWxlbWVudHM7CiAgICAgYm9vbCBtX3BhcnNpbmdCdWlsdGluOworICAgIEpTUGFyc2VyU2Ny
aXB0TW9kZSBtX3NjcmlwdE1vZGU7CiAgICAgU3VwZXJCaW5kaW5nIG1fc3VwZXJCaW5kaW5nOwog
ICAgIENvbnN0cnVjdG9yS2luZCBtX2RlZmF1bHRDb25zdHJ1Y3RvcktpbmQ7CiAgICAgVmFyaWFi
bGVFbnZpcm9ubWVudCBtX3ZhckRlY2xhcmF0aW9uczsKQEAgLTE3MTIsMTMgKzE3MTMsMTMgQEAg
dGVtcGxhdGUgPGNsYXNzIFBhcnNlZE5vZGU+CiBzdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9kZT4g
cGFyc2UoCiAgICAgVk0qIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsCiAgICAgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwKLSAgICBK
U1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSwg
U3VwZXJCaW5kaW5nIHN1cGVyQmluZGluZywKKyAgICBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0
TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIFNvdXJjZVBhcnNlTW9kZSBwYXJz
ZU1vZGUsIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcsCiAgICAgUGFyc2VyRXJyb3ImIGVycm9y
LCBKU1RleHRQb3NpdGlvbiogcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSA9IG51bGxwdHIsCiAg
ICAgQ29uc3RydWN0b3JLaW5kIGRlZmF1bHRDb25zdHJ1Y3RvcktpbmQgPSBDb25zdHJ1Y3Rvcktp
bmQ6Ok5vbmUsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUgPSBEZXJpdmVk
Q29udGV4dFR5cGU6Ok5vbmUsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUgPSBFdmFs
Q29udGV4dFR5cGU6Ok5vbmUpCiB7CiAgICAgQVNTRVJUKCFzb3VyY2UucHJvdmlkZXIoKS0+c291
cmNlKCkuaXNOdWxsKCkpOwogICAgIGlmIChzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlKCkuaXM4
Qml0KCkpIHsKLSAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2VyKHZtLCBzb3VyY2Us
IGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBwYXJzZU1vZGUsIHN1cGVyQmluZGluZywgZGVmYXVs
dENvbnN0cnVjdG9yS2luZCwgZGVyaXZlZENvbnRleHRUeXBlLCBpc0V2YWxOb2RlPFBhcnNlZE5v
ZGU+KCksIGV2YWxDb250ZXh0VHlwZSk7CisgICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBh
cnNlcih2bSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgcGFy
c2VNb2RlLCBzdXBlckJpbmRpbmcsIGRlZmF1bHRDb25zdHJ1Y3RvcktpbmQsIGRlcml2ZWRDb250
ZXh0VHlwZSwgaXNFdmFsTm9kZTxQYXJzZWROb2RlPigpLCBldmFsQ29udGV4dFR5cGUpOwogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9kZT4gcmVzdWx0ID0gcGFyc2VyLnBhcnNlPFBh
cnNlZE5vZGU+KGVycm9yLCBuYW1lLCBwYXJzZU1vZGUpOwogICAgICAgICBpZiAocG9zaXRpb25C
ZWZvcmVMYXN0TmV3bGluZSkKICAgICAgICAgICAgICpwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5l
ID0gcGFyc2VyLnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUoKTsKQEAgLTE3MjksNyArMTczMCw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYXJzZWROb2RlPiBwYXJzZSgKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShkZWZhdWx0Q29uc3RydWN0b3JL
aW5kID09IENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgIkJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRl
RGVmYXVsdENvbnN0cnVjdG9yIHNob3VsZCBhbHdheXMgdXNlIGEgOC1iaXQgc3RyaW5nIik7Ci0g
ICAgUGFyc2VyPExleGVyPFVDaGFyPj4gcGFyc2VyKHZtLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBz
dHJpY3RNb2RlLCBwYXJzZU1vZGUsIHN1cGVyQmluZGluZywgZGVmYXVsdENvbnN0cnVjdG9yS2lu
ZCwgZGVyaXZlZENvbnRleHRUeXBlLCBpc0V2YWxOb2RlPFBhcnNlZE5vZGU+KCksIGV2YWxDb250
ZXh0VHlwZSk7CisgICAgUGFyc2VyPExleGVyPFVDaGFyPj4gcGFyc2VyKHZtLCBzb3VyY2UsIGJ1
aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2RlLCBwYXJzZU1vZGUsIHN1cGVyQmluZGlu
ZywgZGVmYXVsdENvbnN0cnVjdG9yS2luZCwgZGVyaXZlZENvbnRleHRUeXBlLCBpc0V2YWxOb2Rl
PFBhcnNlZE5vZGU+KCksIGV2YWxDb250ZXh0VHlwZSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBh
cnNlZE5vZGU+IHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQYXJzZWROb2RlPihlcnJvciwgbmFtZSwg
cGFyc2VNb2RlKTsKICAgICBpZiAocG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSkKICAgICAgICAg
KnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUgPSBwYXJzZXIucG9zaXRpb25CZWZvcmVMYXN0TmV3
bGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJN
b2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCmluZGV4
IDRjZmFkN2FiMmI0MDllMzMyMGE3NTgyZjk5ZjgzZTBiZDc0NDM2M2IuLjRkZDdjYjUzMjE1NGM5
YTcxZmFkOGFmNzJkZGVjMmMzNzA5NGQ1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlck1vZGVzLmgKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGVu
dW0gY2xhc3MgSlNQYXJzZXJTdHJpY3RNb2RlIHsgTm90U3RyaWN0LCBTdHJpY3QgfTsKIGVudW0g
Y2xhc3MgSlNQYXJzZXJCdWlsdGluTW9kZSB7IE5vdEJ1aWx0aW4sIEJ1aWx0aW4gfTsKK2VudW0g
Y2xhc3MgSlNQYXJzZXJTY3JpcHRNb2RlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiBlbnVtIGNsYXNz
IEpTUGFyc2VyQ29kZVR5cGUgeyBQcm9ncmFtLCBGdW5jdGlvbiwgTW9kdWxlIH07CiAKIGVudW0g
Y2xhc3MgQ29uc3RydWN0b3JLaW5kIHsgTm9uZSwgQmFzZSwgRXh0ZW5kcyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaAppbmRleCBlZThhNTBmMmQ4ZjA0
MmNhZTk1YTI4NGQ5N2FlYTJkYzg0M2FlMjM2Li4yZmZlMzMzNzc4MjEwM2VmMDA5YTgwZDlmZWYz
NmFhOGU1NDY0YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZUNvZGVLZXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNv
ZGVLZXkuaApAQCAtMzksOCArMzksOSBAQCBjbGFzcyBTb3VyY2VDb2RlRmxhZ3MgewogcHVibGlj
OgogICAgIFNvdXJjZUNvZGVGbGFncygpID0gZGVmYXVsdDsKIAotICAgIFNvdXJjZUNvZGVGbGFn
cyhTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9k
ZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJp
dmVkQ29udGV4dFR5cGUsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGJvb2wgaXNB
cnJvd0Z1bmN0aW9uQ29udGV4dCkKKyAgICBTb3VyY2VDb2RlRmxhZ3MoU291cmNlQ29kZVR5cGUg
Y29kZVR5cGUsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgRGVyaXZlZENv
bnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0
VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KQogICAgICAgICA6IG1fZmxhZ3MoCisg
ICAgICAgICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmlwdE1vZGUpIDw8IDgpIHwKICAg
ICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCkg
PDwgNykgfAogICAgICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihldmFsQ29udGV4dFR5
cGUpIDw8IDYpIHwKICAgICAgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVyaXZlZENv
bnRleHRUeXBlKSA8PCA0KSB8CkBAIC02NiwxMCArNjcsMTAgQEAgY2xhc3MgU291cmNlQ29kZUtl
eSB7CiAgICAgewogICAgIH0KIAotICAgIFNvdXJjZUNvZGVLZXkoY29uc3QgU291cmNlQ29kZSYg
c291cmNlQ29kZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSwg
SlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmlj
dE1vZGUsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIEV2YWxDb250ZXh0
VHlwZSBldmFsQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCkKKyAgICBT
b3VyY2VDb2RlS2V5KGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFN0cmluZyYg
bmFtZSwgU291cmNlQ29kZVR5cGUgY29kZVR5cGUsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRp
bk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUg
c2NyaXB0TW9kZSwgRGVyaXZlZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgRXZhbENv
bnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KQog
ICAgICAgICA6IG1fc291cmNlQ29kZShzb3VyY2VDb2RlKQogICAgICAgICAsIG1fbmFtZShuYW1l
KQotICAgICAgICAsIG1fZmxhZ3MoY29kZVR5cGUsIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBk
ZXJpdmVkQ29udGV4dFR5cGUsIGV2YWxDb250ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4
dCkKKyAgICAgICAgLCBtX2ZsYWdzKGNvZGVUeXBlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwg
c2NyaXB0TW9kZSwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUsIGlzQXJyb3dG
dW5jdGlvbkNvbnRleHQpCiAgICAgICAgICwgbV9oYXNoKHNvdXJjZUNvZGUuaGFzaCgpKQogICAg
IHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2Rl
Q2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcApp
bmRleCA5NmJiZDE3MWFlMzAxODlmZDA3ZmUxMGU3ZDgyNWVkYjVhMzEyOGExLi5mMTQ3ZWQzYWQx
OGNjNTU3YWIyNTk5NmRiNjUwYWMzYmMxYjgyMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKQEAgLTgxLDExICs4MSwxMSBAQCB0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgQ2FjaGVUeXBlczxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+IHsKIH07CiAK
IHRlbXBsYXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGUsIGNsYXNzIEV4ZWN1dGFibGVU
eXBlPgotVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9j
ayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9k
ZSBzdHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJy
b3IsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJv
bm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaKQorVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2Fj
aGU6OmdldEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGVjdXRhYmxl
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1v
ZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGUgc2Ny
aXB0TW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBF
dmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50
KiB2YXJpYWJsZXNVbmRlclREWikKIHsKICAgICBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZlZENv
bnRleHRUeXBlID0gZXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCk7CiAgICAgYm9vbCBp
c0Fycm93RnVuY3Rpb25Db250ZXh0ID0gZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uQ29udGV4
dCgpOwotICAgIFNvdXJjZUNvZGVLZXkga2V5KHNvdXJjZSwgU3RyaW5nKCksIENhY2hlVHlwZXM8
VW5saW5rZWRDb2RlQmxvY2tUeXBlPjo6Y29kZVR5cGUsIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2Rl
LCBkZXJpdmVkQ29udGV4dFR5cGUsIGV2YWxDb250ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9uQ29u
dGV4dCk7CisgICAgU291cmNlQ29kZUtleSBrZXkoc291cmNlLCBTdHJpbmcoKSwgQ2FjaGVUeXBl
czxVbmxpbmtlZENvZGVCbG9ja1R5cGU+Ojpjb2RlVHlwZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1v
ZGUsIHNjcmlwdE1vZGUsIGRlcml2ZWRDb250ZXh0VHlwZSwgZXZhbENvbnRleHRUeXBlLCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0KTsKICAgICBTb3VyY2VDb2RlVmFsdWUqIGNhY2hlID0gbV9zb3Vy
Y2VDb2RlLmZpbmRDYWNoZUFuZFVwZGF0ZUFnZShrZXkpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gc29tZXRoaW5nIHNtYXJ0IGZvciBURFogaW5zdGVhZCBvZiBqdXN0IGRpc2FibGluZyBj
YWNoaW5nLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTQwMTAKQEAgLTEwNCw3ICsxMDQsNyBAQCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNo
ZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZQogICAgIH0K
ICAgICB0eXBlZGVmIHR5cGVuYW1lIENhY2hlVHlwZXM8VW5saW5rZWRDb2RlQmxvY2tUeXBlPjo6
Um9vdE5vZGUgUm9vdE5vZGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJvb3ROb2RlPiByb290Tm9k
ZSA9IHBhcnNlPFJvb3ROb2RlPigKLSAgICAgICAgJnZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwg
YnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIENhY2hlVHlwZXM8VW5saW5rZWRDb2RlQmxvY2tUeXBl
Pjo6cGFyc2VNb2RlLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgZXJyb3IsIG51bGxwdHIsIENv
bnN0cnVjdG9yS2luZDo6Tm9uZSwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFsQ29udGV4dFR5cGUp
OworICAgICAgICAmdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGluTW9kZSwgc3RyaWN0
TW9kZSwgc2NyaXB0TW9kZSwgQ2FjaGVUeXBlczxVbmxpbmtlZENvZGVCbG9ja1R5cGU+OjpwYXJz
ZU1vZGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBlcnJvciwgbnVsbHB0ciwgQ29uc3RydWN0
b3JLaW5kOjpOb25lLCBkZXJpdmVkQ29udGV4dFR5cGUsIGV2YWxDb250ZXh0VHlwZSk7CiAgICAg
aWYgKCFyb290Tm9kZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTEzNiwxOCArMTM2
LDE4IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxv
Y2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlCiBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sq
IENvZGVDYWNoZTo6Z2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYgdm0sIFByb2dyYW1FeGVjdXRhYmxl
KiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1v
ZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBEZWJ1Z2dlck1v
ZGUgZGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IpCiB7CiAgICAgVmFyaWFibGVFbnZp
cm9ubWVudCBlbXB0eVBhcmVudFREWlZhcmlhYmxlczsKLSAgICByZXR1cm4gZ2V0R2xvYmFsQ29k
ZUJsb2NrPFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwg
YnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0
VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50VERaVmFyaWFibGVzKTsKKyAgICByZXR1cm4gZ2V0R2xv
YmFsQ29kZUJsb2NrPFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNv
dXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3Np
YywgZGVidWdnZXJNb2RlLCBlcnJvciwgRXZhbENvbnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJl
bnRURFpWYXJpYWJsZXMpOwogfQogCiBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIENvZGVDYWNoZTo6
Z2V0RXZhbENvZGVCbG9jayhWTSYgdm0sIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpT
UGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQ
YXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0
IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaKQogewotICAgIHJldHVybiBn
ZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRFdmFsQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwg
c291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgZGVidWdnZXJNb2RlLCBlcnJvciwgZXZh
bENvbnRleHRUeXBlLCB2YXJpYWJsZXNVbmRlclREWik7CisgICAgcmV0dXJuIGdldEdsb2JhbENv
ZGVCbG9jazxVbmxpbmtlZEV2YWxDb2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIGJ1
aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIGRlYnVn
Z2VyTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOwogfQog
CiBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0TW9kdWxlUHJv
Z3JhbUNvZGVCbG9jayhWTSYgdm0sIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxl
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1v
ZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvcikKIHsKICAg
ICBWYXJpYWJsZUVudmlyb25tZW50IGVtcHR5UGFyZW50VERaVmFyaWFibGVzOwotICAgIHJldHVy
biBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwg
ZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJp
Y3QsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgJmVtcHR5UGFy
ZW50VERaVmFyaWFibGVzKTsKKyAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2Vk
TW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1v
ZGUsIEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0LCBKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVs
ZSwgZGVidWdnZXJNb2RlLCBlcnJvciwgRXZhbENvbnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJl
bnRURFpWYXJpYWJsZXMpOwogfQogCiAvLyBGSVhNRTogVGhlcmUncyBubyBuZWVkIHRvIGFkZCB0
aGUgZnVuY3Rpb24ncyBuYW1lIHRvIHRoZSBrZXkgaGVyZS4gSXQncyBhbHJlYWR5IGluIHRoZSBz
b3VyY2UgY29kZS4KQEAgLTE1OCw2ICsxNTgsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZSogQ29kZUNhY2hlOjpnZXRGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZShWTSYgdgog
ICAgICAgICBzb3VyY2UsIG5hbWUuc3RyaW5nKCksIFNvdXJjZUNvZGVUeXBlOjpGdW5jdGlvblR5
cGUsCiAgICAgICAgIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sCiAgICAgICAgIEpT
UGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0LAorICAgICAgICBKU1BhcnNlclNjcmlwdE1vZGU6
OkNsYXNzaWMsCiAgICAgICAgIERlcml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwKICAgICAgICAgRXZh
bENvbnRleHRUeXBlOjpOb25lLAogICAgICAgICBpc0Fycm93RnVuY3Rpb25Db250ZXh0KTsKQEAg
LTE3Miw3ICsxNzMsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQ29kZUNhY2hlOjpn
ZXRGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZShWTSYgdgogICAgIEpTVGV4dFBvc2l0
aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2dy
YW1Ob2RlPiBwcm9ncmFtID0gcGFyc2U8UHJvZ3JhbU5vZGU+KAogICAgICAgICAmdm0sIHNvdXJj
ZSwgSWRlbnRpZmllcigpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLAotICAgICAg
ICBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgU291cmNlUGFyc2VNb2RlOjpQcm9ncmFt
TW9kZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsCisgICAgICAgIEpTUGFyc2VyU3RyaWN0TW9k
ZTo6Tm90U3RyaWN0LCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIFNvdXJjZVBhcnNlTW9k
ZTo6UHJvZ3JhbU1vZGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLAogICAgICAgICBlcnJvciwg
JnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogICAgIGlmICghcHJvZ3JhbSkgewogICAgICAg
ICBSRUxFQVNFX0FTU0VSVChlcnJvci5pc1ZhbGlkKCkpOwpAQCAtMjAxLDcgKzIwMiw3IEBAIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6OmdldEZ1bmN0aW9uRXhlY3V0YWJs
ZUZyb21HbG9iYWxDb2RlKFZNJiB2CiAgICAgbWV0YWRhdGEtPnNldEVuZFBvc2l0aW9uKHBvc2l0
aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogICAgIC8vIFRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBv
bmx5IGhhcyBhY2Nlc3MgdG8gZ2xvYmFsIHZhcmlhYmxlcywgc28gbm8gdmFyaWFibGVzIHdpbGwg
YmUgdW5kZXIgVERaLgogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZW1wdHlURFpWYXJpYWJsZXM7
Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJnZtLCBzb3VyY2UsIG1ldGFkYXRhLCBV
bmxpbmtlZE5vcm1hbEZ1bmN0aW9uLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QsIGVt
cHR5VERaVmFyaWFibGVzLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUpOworICAgIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6Y3JlYXRlKCZ2bSwgc291cmNlLCBtZXRhZGF0YSwgVW5saW5rZWROb3JtYWxG
dW5jdGlvbiwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0LCBKU1BhcnNlclNjcmlwdE1v
ZGU6OkNsYXNzaWMsIGVtcHR5VERaVmFyaWFibGVzLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUp
OwogCiAgICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5zZXRTb3VyY2VVUkxEaXJlY3RpdmUoc291cmNl
LnByb3ZpZGVyKCktPnNvdXJjZVVSTCgpKTsKICAgICBmdW5jdGlvbkV4ZWN1dGFibGUtPnNldFNv
dXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU1hcHBpbmdV
UkwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2Fj
aGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCmluZGV4IDUy
OWM0ODk2ZTljNTEzZGRkMDUyNzZiNzUyZThhZGQ5OWJlZWI3MmMuLmY1YjBiMjE2YjIxYjAzMTRh
ZmY3MmUxZmI2NzI5MmI0Mjg2MTBhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvZGVDYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvZGVDYWNoZS5oCkBAIC0xOTksNyArMTk5LDcgQEAgY2xhc3MgQ29kZUNhY2hlIHsKIAogcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVW5saW5rZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBF
eGVjdXRhYmxlVHlwZT4gCi0gICAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZXRHbG9iYWxDb2Rl
QmxvY2soVk0mLCBFeGVjdXRhYmxlVHlwZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1
aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3Im
LCBFdmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICBVbmxp
bmtlZENvZGVCbG9ja1R5cGUqIGdldEdsb2JhbENvZGVCbG9jayhWTSYsIEV4ZWN1dGFibGVUeXBl
KiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiwgRXZh
bENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CiAKICAgICBDb2RlQ2Fj
aGVNYXAgbV9zb3VyY2VDb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tcGxldGlvbi5jcHAKaW5kZXggNjMyZjdmYjYwYTdhZGJhNzgwMDk2M2I3YzBlMzIxMzhlZDQ0
MTRkNC4uZWFlYWNmNjA2ODNkNmRjN2FiMGQxNzBiZjBmNWUxYjIzMDE1ZTNiMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKQEAgLTY1LDcgKzY1LDcg
QEAgYm9vbCBjaGVja1N5bnRheChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFy
c2VyRXJyb3ImIGVycm9yKQogICAgIFJFTEVBU0VfQVNTRVJUKHZtLmF0b21pY1N0cmluZ1RhYmxl
KCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwogICAgIHJldHVybiAh
IXBhcnNlPFByb2dyYW1Ob2RlPigKICAgICAgICAgJnZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwg
SlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwKLSAgICAgICAgSlNQYXJzZXJTdHJpY3RN
b2RlOjpOb3RTdHJpY3QsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIFN1cGVyQmluZGlu
Zzo6Tm90TmVlZGVkLCBlcnJvcik7CisgICAgICAgIEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3Ry
aWN0LCBKU1BhcnNlclNjcmlwdE1vZGU6OkNsYXNzaWMsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3Jh
bU1vZGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBlcnJvcik7CiB9CiAKIGJvb2wgY2hlY2tN
b2R1bGVTeW50YXgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBh
cnNlckVycm9yJiBlcnJvcikKQEAgLTc1LDcgKzc1LDcgQEAgYm9vbCBjaGVja01vZHVsZVN5bnRh
eChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyc2VyRXJyb3Im
IGUKICAgICBSRUxFQVNFX0FTU0VSVCh2bS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVh
ZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxl
UHJvZ3JhbU5vZGU+IG1vZHVsZVByb2dyYW1Ob2RlID0gcGFyc2U8TW9kdWxlUHJvZ3JhbU5vZGU+
KAogICAgICAgICAmdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBKU1BhcnNlckJ1aWx0aW5Nb2Rl
OjpOb3RCdWlsdGluLAotICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCwgU291cmNl
UGFyc2VNb2RlOjpNb2R1bGVBbmFseXplTW9kZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIGVy
cm9yKTsKKyAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QsIEpTUGFyc2VyU2NyaXB0
TW9kZTo6TW9kdWxlLCBTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUFuYWx5emVNb2RlLCBTdXBlckJp
bmRpbmc6Ok5vdE5lZWRlZCwgZXJyb3IpOwogICAgIGlmICghbW9kdWxlUHJvZ3JhbU5vZGUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmNwcAppbmRleCA1ODllYTU5MzQxMjA5ZGQzNWFiMGFkNjgyMmIzMTI3MGU0NTBl
Zjk2Li44NGIzZGQyYmVhNDliZmFkOGUzMTM2N2E3MjZiZDEwMWY3YTIzOWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtNTY4LDggKzU2OCw4
IEBAIEpTT2JqZWN0KiBQcm9ncmFtRXhlY3V0YWJsZTo6Y2hlY2tTeW50YXgoRXhlY1N0YXRlKiBl
eGVjKQogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbU5vZGUgPSBwYXJzZTxQcm9ncmFtTm9kZT4o
Ci0gICAgICAgIHZtLCBtX3NvdXJjZSwgSWRlbnRpZmllcigpLCBKU1BhcnNlckJ1aWx0aW5Nb2Rl
OjpOb3RCdWlsdGluLCAKLSAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsIFNv
dXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBlcnJv
cik7CisgICAgICAgIHZtLCBtX3NvdXJjZSwgSWRlbnRpZmllcigpLCBKU1BhcnNlckJ1aWx0aW5N
b2RlOjpOb3RCdWlsdGluLAorICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwg
SlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2Rl
LCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgZXJyb3IpOwogICAgIGlmIChwcm9ncmFtTm9kZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgQVNTRVJUKGVycm9yLmlzVmFsaWQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggMzViMmQ0Y2M2NzI0MTFl
YTVlOTBmMWE1ZDU1ZjExZjFkODE4Mzg1ZC4uMzhhOWFkYTZkYWRhM2YyMGE0NmQwY2RjZDMyNTJm
OWEzZTI5NWFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
aApAQCAtNDQ2LDcgKzQ0Niw3IEBAIGNsYXNzIEV2YWxFeGVjdXRhYmxlIGZpbmFsIDogcHVibGlj
IFNjcmlwdEV4ZWN1dGFibGUgewogICAgICAgICAKICAgICBERUNMQVJFX0lORk87CiAKLSAgICBF
eGVjdXRhYmxlSW5mbyBleGVjdXRhYmxlSW5mbygpIGNvbnN0IHsgcmV0dXJuIEV4ZWN1dGFibGVJ
bmZvKHVzZXNFdmFsKCksIGlzU3RyaWN0TW9kZSgpLCBmYWxzZSwgZmFsc2UsIENvbnN0cnVjdG9y
S2luZDo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIFNvdXJjZVBhcnNlTW9kZTo6UHJv
Z3JhbU1vZGUsIGRlcml2ZWRDb250ZXh0VHlwZSgpLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KCks
IGZhbHNlLCBldmFsQ29udGV4dFR5cGUoKSk7IH0KKyAgICBFeGVjdXRhYmxlSW5mbyBleGVjdXRh
YmxlSW5mbygpIGNvbnN0IHsgcmV0dXJuIEV4ZWN1dGFibGVJbmZvKHVzZXNFdmFsKCksIGlzU3Ry
aWN0TW9kZSgpLCBmYWxzZSwgZmFsc2UsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgSlNQYXJzZXJT
Y3JpcHRNb2RlOjpDbGFzc2ljLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgU291cmNlUGFyc2VN
b2RlOjpQcm9ncmFtTW9kZSwgZGVyaXZlZENvbnRleHRUeXBlKCksIGlzQXJyb3dGdW5jdGlvbkNv
bnRleHQoKSwgZmFsc2UsIGV2YWxDb250ZXh0VHlwZSgpKTsgfQogCiAgICAgdW5zaWduZWQgbnVt
VmFyaWFibGVzKCkgeyByZXR1cm4gbV91bmxpbmtlZEV2YWxDb2RlQmxvY2stPm51bVZhcmlhYmxl
cygpOyB9CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZGdW5jdGlvbkRlY2xzKCkgeyByZXR1cm4gbV91
bmxpbmtlZEV2YWxDb2RlQmxvY2stPm51bWJlck9mRnVuY3Rpb25EZWNscygpOyB9CkBAIC01MDAs
NyArNTAwLDcgQEAgY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0
RXhlY3V0YWJsZSB7CiAgICAgICAgIAogICAgIERFQ0xBUkVfSU5GTzsKIAotICAgIEV4ZWN1dGFi
bGVJbmZvIGV4ZWN1dGFibGVJbmZvKCkgY29uc3QgeyByZXR1cm4gRXhlY3V0YWJsZUluZm8odXNl
c0V2YWwoKSwgaXNTdHJpY3RNb2RlKCksIGZhbHNlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5kOjpO
b25lLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgU291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9k
ZSwgZGVyaXZlZENvbnRleHRUeXBlKCksIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQoKSwgZmFsc2Us
IEV2YWxDb250ZXh0VHlwZTo6Tm9uZSk7IH0KKyAgICBFeGVjdXRhYmxlSW5mbyBleGVjdXRhYmxl
SW5mbygpIGNvbnN0IHsgcmV0dXJuIEV4ZWN1dGFibGVJbmZvKHVzZXNFdmFsKCksIGlzU3RyaWN0
TW9kZSgpLCBmYWxzZSwgZmFsc2UsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgSlNQYXJzZXJTY3Jp
cHRNb2RlOjpDbGFzc2ljLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgU291cmNlUGFyc2VNb2Rl
OjpQcm9ncmFtTW9kZSwgZGVyaXZlZENvbnRleHRUeXBlKCksIGlzQXJyb3dGdW5jdGlvbkNvbnRl
eHQoKSwgZmFsc2UsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSk7IH0KIAogcHJpdmF0ZToKICAgICBm
cmllbmQgY2xhc3MgRXhlY3V0YWJsZUJhc2U7CkBAIC01NDEsNyArNTQxLDcgQEAgY2xhc3MgTW9k
dWxlUHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiAK
ICAgICBERUNMQVJFX0lORk87CiAKLSAgICBFeGVjdXRhYmxlSW5mbyBleGVjdXRhYmxlSW5mbygp
IGNvbnN0IHsgcmV0dXJuIEV4ZWN1dGFibGVJbmZvKHVzZXNFdmFsKCksIGlzU3RyaWN0TW9kZSgp
LCBmYWxzZSwgZmFsc2UsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOb3RO
ZWVkZWQsIFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVhdGVNb2RlLCBkZXJpdmVkQ29udGV4
dFR5cGUoKSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCgpLCBmYWxzZSwgRXZhbENvbnRleHRUeXBl
OjpOb25lKTsgfQorICAgIEV4ZWN1dGFibGVJbmZvIGV4ZWN1dGFibGVJbmZvKCkgY29uc3QgeyBy
ZXR1cm4gRXhlY3V0YWJsZUluZm8odXNlc0V2YWwoKSwgaXNTdHJpY3RNb2RlKCksIGZhbHNlLCBm
YWxzZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVsZSwg
U3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVhdGVN
b2RlLCBkZXJpdmVkQ29udGV4dFR5cGUoKSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCgpLCBmYWxz
ZSwgRXZhbENvbnRleHRUeXBlOjpOb25lKTsgfQogCiAgICAgVW5saW5rZWRNb2R1bGVQcm9ncmFt
Q29kZUJsb2NrKiB1bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2soKSB7IHJldHVybiBtX3Vu
bGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5nZXQoKTsgfQogCkBAIC02NjEsNiArNjYxLDcg
QEAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIFNjcmlwdEV4ZWN1dGFi
bGUgewogICAgIGNvbnN0IElkZW50aWZpZXImIGluZmVycmVkTmFtZSgpIHsgcmV0dXJuIG1fdW5s
aW5rZWRFeGVjdXRhYmxlLT5pbmZlcnJlZE5hbWUoKTsgfQogICAgIHNpemVfdCBwYXJhbWV0ZXJD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRFeGVjdXRhYmxlLT5wYXJhbWV0ZXJDb3Vu
dCgpOyB9IC8vIEV4Y2x1ZGluZyAndGhpcychCiAgICAgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRFeGVjdXRhYmxlLT5wYXJzZU1vZGUoKTsgfQor
ICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlKCkgY29uc3QgeyByZXR1cm4gbV91bmxp
bmtlZEV4ZWN1dGFibGUtPnNjcmlwdE1vZGUoKTsgfQogICAgIGNvbnN0IFNvdXJjZUNvZGUmIGNs
YXNzU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV91bmxpbmtlZEV4ZWN1dGFibGUtPmNsYXNzU291
cmNlKCk7IH0KIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZp
c2l0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVs
ZUxvYWRlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1
bGVMb2FkZXJQcm90b3R5cGUuY3BwCmluZGV4IDkwMGQ2M2UyZmI2NzAyMDdlY2ZhZWFmOWJjNWY3
MWU0MmZlNjMxMGEuLjJiZDVmYmQyZjBlMjU2ZTUzMTJmZDRlZmZjN2YzZjkyNmY2ODk2Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVy
UHJvdG90eXBlLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlUGFyc2VNb2R1bGUoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVQcm9ncmFt
Tm9kZT4gbW9kdWxlUHJvZ3JhbU5vZGUgPSBwYXJzZTxNb2R1bGVQcm9ncmFtTm9kZT4oCiAgICAg
ICAgICZ2bSwgc291cmNlQ29kZSwgSWRlbnRpZmllcigpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpO
b3RCdWlsdGluLAotICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCwgU291cmNlUGFy
c2VNb2RlOjpNb2R1bGVBbmFseXplTW9kZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIGVycm9y
KTsKKyAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QsIEpTUGFyc2VyU2NyaXB0TW9k
ZTo6TW9kdWxlLCBTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUFuYWx5emVNb2RlLCBTdXBlckJpbmRp
bmc6Ok5vdE5lZWRlZCwgZXJyb3IpOwogCiAgICAgaWYgKGVycm9yLmlzVmFsaWQoKSkgewogICAg
ICAgICB0aHJvd1ZNRXJyb3IoZXhlYywgZXJyb3IudG9FcnJvck9iamVjdChleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIHNvdXJjZUNvZGUpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjYyM2Q4NjllYTAyZDQwMmQ2YmM1YjYwNzQ1
MGNhMDZlZDg1ODhmNC4uNWM1MTViMzUxNmVmYTdjNDQxMWZlMmRlMjhlOGY2MDg1YmQ0OGM5ZiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwxNiBAQAogMjAxNi0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAorICAgICAgICBbRVM2XSBNb2R1bGUgc2hvdWxkIG5vdCBhbGxvdyBIVE1MIGNv
bW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjEwNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IG1vZHVsZXMvaHRtbC1jb21tZW50cy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRUaHJvdyk6
CisgICAgICAgICogdGVzdDI2Mi55YW1sOgorCisyMDE2LTA4LTIxICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtERkddIFNob3VsZCBub3QgZml4dXAg
QW55SW50VXNlIGluIDMyXzY0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjEwMjkKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2h0bWwtY29t
bWVudHMuanMgYi9KU1Rlc3RzL21vZHVsZXMvaHRtbC1jb21tZW50cy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MGM1YzFkNDZhYTQxNTEwMWMzNDU4OTA3MmJhM2UwMzEwMTk1OTlhCi0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9tb2R1bGVzL2h0bWwtY29tbWVudHMuanMKQEAgLTAsMCArMSw0NSBAQAoraW1w
b3J0IHsgc2hvdWxkQmUsIHNob3VsZFRocm93IH0gZnJvbSAiLi9yZXNvdXJjZXMvYXNzZXJ0Lmpz
IjsKKworLy8gRXZhbCdzIGdvYWwgc3ltYm9sIGlzIFNjcmlwdCwgbm90IE1vZHVsZS4KK3Nob3Vs
ZEJlKGV2YWwoYAorPCEtLSBvaworLS0+IG9rCis0MgorYCksIDQyKTsKKworLy8gRnVuY3Rpb24n
cyBnb2FsIHN5bWJvbCBpcyBub3QgTW9kdWxlLgorc2hvdWxkQmUobmV3IEZ1bmN0aW9uKGAKKzwh
LS0gb2sKKy0tPiBvaworcmV0dXJuIDQyCitgKSgpLCA0Mik7CisKK3Nob3VsZFRocm93KCgpID0+
IHsKKyAgICBjaGVja01vZHVsZVN5bnRheChgCisgICAgPCEtLSBuZyAtLT4KKyAgICBgKQorfSwg
YFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc8JzoyYCk7CisKK3Nob3VsZFRocm93KCgp
ID0+IHsKKyAgICBjaGVja01vZHVsZVN5bnRheChgCistLT4KKyAgICBgKQorfSwgYFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHRva2VuICc+JzoyYCk7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAg
ICBjaGVja01vZHVsZVN5bnRheChgCisgICAgZnVuY3Rpb24gaGVsbG8oKQorICAgIHsKKyAgICAg
ICAgPCEtLSBuZyAtLT4KKyAgICB9CisgICAgYCkKK30sIGBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCB0b2tlbiAnPCc6NGApOworCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgY2hlY2tNb2R1bGVT
eW50YXgoYAorICAgIGZ1bmN0aW9uIGhlbGxvKCkKKyAgICB7CistLT4KKyAgICB9CisgICAgYCkK
K30sIGBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnPic6NGApOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIueWFtbAppbmRleCA3ZDY3ZWMz
NzlkOTU4ZmVmNTcxMzVhMzk4YjA1MWZkNzQzNDIxNWExLi43NjAyMjE1MDhlODJiZjZjOGZiYTVk
YjY0YzU3MmVhMzViN2Q3OTAzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIueWFtbAorKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIueWFtbApAQCAtNzA4MjAsMTEgKzcwODIwLDExIEBACiAtIHBhdGg6
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9saXRlcmFscy9zdHJpbmcvbW9uZ29saWFuLXZvd2VsLXNl
cGFyYXRvci5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2Rl
L2NvbW1lbnQtbXVsdGktbGluZS1odG1sLWNsb3NlLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFp
bCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbOm1vZHVsZV0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJTeW50YXhFcnJvciIsIFsiLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzptb2R1bGVdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9tb2R1bGUtY29kZS9jb21tZW50LXNpbmdsZS1saW5lLWh0bWwtY2xvc2UuanMKLSAgY21kOiBy
dW5UZXN0MjYyIDpmYWlsLCAiU3ludGF4RXJyb3IiLCBbIi4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6bW9kdWxlXQorICBjbWQ6IHJ1blRl
c3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOm1vZHVsZV0KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2RlL2NvbW1lbnQtc2luZ2xlLWxpbmUtaHRtbC1vcGVu
LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOm1vZHVsZV0K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJTeW50YXhFcnJvciIsIFsiLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzptb2R1bGVdCiAt
IHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9tb2R1bGUtY29kZS9lYXJseS1kdXAtZXhwb3J0
LWRlY2wuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJTeW50YXhFcnJvciIsIFsiLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpt
b2R1bGVdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9tb2R1bGUtY29kZS9lYXJseS1k
dXAtZXhwb3J0LWRmbHQtaWQuanMK
</data>
<flag name="review"
          id="310110"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>