<?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>186227</bug_id>
          
          <creation_ts>2018-06-02 03:10:44 -0700</creation_ts>
          <short_desc>[Cocoa] Update some code to be more ARC-compatible to prepare for future ARC adoption</short_desc>
          <delta_ts>2021-01-28 14:58:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>221107</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1429535</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-02 03:10:44 -0700</bug_when>
    <thetext>[Cocoa] Update some code to be more ARC-compatible to prepare for future ARC adoption</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429536</commentid>
    <comment_count>1</comment_count>
      <attachid>341838</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-02 03:26:53 -0700</bug_when>
    <thetext>Created attachment 341838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429542</commentid>
    <comment_count>2</comment_count>
      <attachid>341841</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-02 03:56:39 -0700</bug_when>
    <thetext>Created attachment 341841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429677</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-06-03 12:46:23 -0700</bug_when>
    <thetext>Committed r232452: &lt;https://trac.webkit.org/changeset/232452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429678</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-03 12:47:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/40757453&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341838</attachid>
            <date>2018-06-02 03:26:53 -0700</date>
            <delta_ts>2018-06-02 03:56:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186227-20180602032653.patch</filename>
            <type>text/plain</type>
            <size>86221</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjE4NWM4NWRjMDA0ODU3MGQ1MzlhNjc0YjJjYzMxZGJlOGUzM2FjLi41YTE4OTllMGMxZGI2NTY3
OGIxMjcxZmRhZjI5MWU1NzM5OWIxNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOC0wNi0wMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBVcGRhdGUgc29tZSBjb2RlIHRvIGJlIG1vcmUgQVJDLWNvbXBhdGli
bGUgdG8gcHJlcGFyZSBmb3IgZnV0dXJlIEFSQyBhZG9wdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MjI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0Lm1tOgorICAgICAg
ICAoLVtKU0NvbnRleHQgbmFtZV0pOiBVc2UgQ0ZCcmlkZ2luZ1JlbGVhc2UgaW5zdGVhZCBvZiBh
dXRvcmVsZWFzZS4KKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKHZhbHVlVG9P
YmplY3RXaXRob3V0Q29weSk6IFVzZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9y
ZWxlYXNlLgorICAgICAgICAoY29udGFpbmVyVmFsdWVUb09iamVjdCk6IFVzZSBhZG9wdENGIGlu
c3RlYWQgb2YgYXV0b3JlbGVhc2UuIFRoaXMgaXMgbm90IG9ubHkgbW9yZQorICAgICAgICBBUkMt
Y29tcGF0aWJsZSwgYnV0IG1vcmUgZWZmaWNpZW50LgorICAgICAgICAodmFsdWVUb1N0cmluZyk6
IFVzZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9yZWxlYXNlLgorCiAyMDE4LTA2
LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0aGUgd2F0Y2hPUyBidWlsZCBhZnRlciByMjMyMzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk5YjgwN2Jm
MzAxMzFhMGMxMGJkNGM3M2RlZGJiNTA5ZmZlYTFiYi4uYmZjZDFjNDdmNzA1NjBmYWJjZTgzNjQw
OWNmMDdkYTk3ZTYyMTk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA2LTAy
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwZGF0
ZSBzb21lIGNvZGUgdG8gYmUgbW9yZSBBUkMtY29tcGF0aWJsZSB0byBwcmVwYXJlIGZvciBmdXR1
cmUgQVJDIGFkb3B0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODYyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpjSW5z
dGFuY2U6On5PYmpjSW5zdGFuY2UpOiBVc2UgQGF1dG9yZWxlYXNlcG9vbCBpbnN0ZWFkIG9mIE5T
QXV0b3JlbGVhc2VQb29sLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbToK
KyAgICAgICAgKC1bV0FLVmlldyBfYXBwZW5kRGVzY3JpcHRpb25Ub1N0cmluZzphdExldmVsOl0p
OiBEaXR0by4KKwogMjAxOC0wNi0wMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBFZGl0b3IgY2FuIGhvbGQgcmVmZXJlbmNlcyB0byBEb2N1bWVudHMgYWZ0ZXIg
eW91IG5hdmlnYXRlIGF3YXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0MTFiNDA5
YjYyOTIyYjZlNmQ1ZTM0NzVkNTk5OTY0MTAyNjRiYzA0Li5iZjQzYzVkZWQ0YTE1NGNlNjRmMGNh
NGJkYzQ4ZjFkYjI4NzcyZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTgtMDYtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gVXBkYXRlIHNvbWUgY29kZSB0byBiZSBtb3JlIEFSQy1jb21wYXRpYmxl
IHRvIHByZXBhcmUgZm9yIGZ1dHVyZSBBUkMgYWRvcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjIyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJLaXRFcnJvcnMubToKKyAgICAg
ICAgKCtbTlNFcnJvciBfcmVnaXN0ZXJXZWJLaXRFcnJvcnNdKTogVXNlIEBhdXRvcmVsZWFzZXBv
b2wgaW5zdGVhZCBvZiBOU0F1dG9yZWxlYXNlUG9vbC4KKyAgICAgICAgKiBQbHVnaW5zL1dlYlBs
dWdpbkRhdGFiYXNlLm1tOgorICAgICAgICAoLVtXZWJQbHVnaW5EYXRhYmFzZSByZWZyZXNoXSk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0U3RhdHVzYmFyVGV4dCk6IERpdHRvLgorCiAyMDE4
LTA2LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjIzMTQ1Nik6IENvbGxvcXV5IGlzIGJyb2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dC5tbQppbmRleCBjNjMyZjM5NWMwMmFiMTZlOTkyMzYyOGZjZGFjYTgzYzBhYjVh
ZmU5Li5hZGI3ODAxMzhkODU3OTNhYzY5YzRjYzRiYWQ4ZmIyODhmNzMyMTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQpAQCAtMTk3LDcgKzE5Nyw3IEBAIC0gKE5TU3Ry
aW5nICopbmFtZQogICAgIGlmICghbmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHJl
dHVybiAoTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG5hbWUpKS5hdXRvcmVsZWFzZSgpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVs
ZWFzZShKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBuYW1lKSk7CiB9
CiAKIC0gKHZvaWQpc2V0TmFtZTooTlNTdHJpbmcgKiluYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWUubW0KaW5kZXggZTdlMzI5Y2FmYjk4OWZiYzBiY2RlYzBiMzBiZGFhNzNiZmVkMjE2
NC4uYzhmNDk3YTBjMTRiMDQ4YTExNGQyZTc0MGNlYjE5OWI2MzNjM2FiYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpAQCAtNjg2LDkgKzY4Niw4IEBAIHN0YXRpYyBKU0NvbnRh
aW5lckNvbnZlcnRvcjo6VGFzayB2YWx1ZVRvT2JqZWN0V2l0aG91dENvcHkoSlNHbG9iYWxDb250
ZXh0UmVmIGNvCiAgICAgICAgIH0gZWxzZSBpZiAoSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIHZh
bHVlKSkgewogICAgICAgICAgICAgLy8gV291bGQgYmUgbmljZSB0byB1bmlxdWUgc3RyaW5ncywg
dG9vLgogICAgICAgICAgICAgSlNTdHJpbmdSZWYganNzdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIHZhbHVlLCAwKTsKLSAgICAgICAgICAgIE5TU3RyaW5nICogc3RyaW5nTlMg
PSAoTlNTdHJpbmcgKilKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBq
c3N0cmluZyk7CisgICAgICAgICAgICBwcmltaXRpdmUgPSBDRkJyaWRnaW5nUmVsZWFzZShKU1N0
cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc3N0cmluZykpOwogICAgICAg
ICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzc3RyaW5nKTsKLSAgICAgICAgICAgIHByaW1pdGl2ZSA9
IFtzdHJpbmdOUyBhdXRvcmVsZWFzZV07CiAgICAgICAgIH0gZWxzZSBpZiAoSlNWYWx1ZUlzTnVs
bChjb250ZXh0LCB2YWx1ZSkpCiAgICAgICAgICAgICBwcmltaXRpdmUgPSBbTlNOdWxsIG51bGxd
OwogICAgICAgICBlbHNlIHsKQEAgLTc0OSw3ICs3NDgsNyBAQCBzdGF0aWMgaWQgY29udGFpbmVy
VmFsdWVUb09iamVjdChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNDb250YWluZXJDb252
ZXJ0bwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewog
ICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSA9IEpTUHJvcGVydHlOYW1l
QXJyYXlHZXROYW1lQXRJbmRleChwcm9wZXJ0eU5hbWVBcnJheSwgaSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGlkIG9iamMgPSBjb252ZXJ0b3IuY29udmVydChKU09iamVjdEdldFByb3BlcnR5KGNv
bnRleHQsIGpzLCBwcm9wZXJ0eU5hbWUsIDApKSkKLSAgICAgICAgICAgICAgICAgICAgZGljdGlv
bmFyeVtbKE5TU3RyaW5nICopSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcHJvcGVydHlOYW1lKSBhdXRvcmVsZWFzZV1dID0gb2JqYzsKKyAgICAgICAgICAgICAgICAg
ICAgZGljdGlvbmFyeVsoX19icmlkZ2UgTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHByb3BlcnR5TmFtZSkpLmdldCgpXSA9IG9iamM7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNl
KHByb3BlcnR5TmFtZUFycmF5KTsKQEAgLTc5Nyw5ICs3OTYsOSBAQCBpZCB2YWx1ZVRvU3RyaW5n
KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVm
KiBleGNlcAogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gc3RyaW5nQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGpzc3RyaW5nKSk7CisgICAgTlNTdHJpbmcgKnN0cmluZyA9IENGQnJpZGdp
bmdSZWxlYXNlKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpzc3Ry
aW5nKSk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGpzc3RyaW5nKTsKLSAgICByZXR1cm4gKE5TU3Ry
aW5nICopc3RyaW5nQ0YuYXV0b3JlbGVhc2UoKTsKKyAgICByZXR1cm4gc3RyaW5nOwogfQogCiBp
ZCB2YWx1ZVRvRGF0ZShKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfaW5zdGFuY2UubW0KaW5kZXggYjdkMjRkNDRhMjRhNmIwNTUyNzc0NWY2MWU5NDczN2RlOWI3
OTY4Yi4uZDhmYWI3NjU3MGE3ZGFkNjFhYThlYzliZjVkZjRjYTZmYTViZGZmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCkBAIC0xMjEsMTYgKzEyMSwx
NCBAQCBSZWZQdHI8T2JqY0luc3RhbmNlPiBPYmpjSW5zdGFuY2U6OmNyZWF0ZShpZCBpbnN0YW5j
ZSwgUmVmUHRyPFJvb3RPYmplY3Q+JiYgcm9vdAogT2JqY0luc3RhbmNlOjp+T2JqY0luc3RhbmNl
KCkgCiB7CiAgICAgLy8gQm90aCAtZmluYWxpemVGb3JXZWJTY3JpcHQgYW5kIC1kZWFsbG9jLy1m
aW5hbGl6ZSBvZiBfaW5zdGFuY2UgbWF5IHJlcXVpcmUgYXV0b3JlbGVhc2UgcG9vbHMuCi0gICAg
TlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0
XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgQVNTRVJUKF9pbnN0YW5jZSk7Cisg
ICAgICAgIHdyYXBwZXJDYWNoZSgpLnJlbW92ZShfaW5zdGFuY2UuZ2V0KCkpOwogCi0gICAgQVNT
RVJUKF9pbnN0YW5jZSk7Ci0gICAgd3JhcHBlckNhY2hlKCkucmVtb3ZlKF9pbnN0YW5jZS5nZXQo
KSk7Ci0KLSAgICBpZiAoW19pbnN0YW5jZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGZpbmFsaXplRm9yV2ViU2NyaXB0KV0pCi0gICAgICAgIFtfaW5zdGFuY2UuZ2V0KCkgcGVy
Zm9ybVNlbGVjdG9yOkBzZWxlY3RvcihmaW5hbGl6ZUZvcldlYlNjcmlwdCldOwotICAgIF9pbnN0
YW5jZSA9IDA7Ci0KLSAgICBbcG9vbCBkcmFpbl07CisgICAgICAgIGlmIChbX2luc3RhbmNlLmdl
dCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZmluYWxpemVGb3JXZWJTY3JpcHQpXSkK
KyAgICAgICAgICAgIFtfaW5zdGFuY2UuZ2V0KCkgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rvcihm
aW5hbGl6ZUZvcldlYlNjcmlwdCldOworICAgICAgICBfaW5zdGFuY2UgPSAwOworICAgIH0KIH0K
IAogdm9pZCBPYmpjSW5zdGFuY2U6OnZpcnR1YWxCZWdpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0KaW5kZXggNDJkYzA0ODJiNDU1MThlYTc2YTM2YTc0NWZm
ZjI1MzJjNDE1ZWY3OC4uYmIzYTc1MWUwNTkyZTA1NTM5ZjU3NDdhOGZmYjAwY2VhY2U4MDVhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQpAQCAtNzc2LDIw
ICs3NzYsMTggQEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogCiAtICh2b2lkKV9hcHBlbmRE
ZXNjcmlwdGlvblRvU3RyaW5nOihOU011dGFibGVTdHJpbmcgKilpbmZvIGF0TGV2ZWw6KGludCls
ZXZlbAogewotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9v
bCBhbGxvY10gaW5pdF07CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIGlmIChbaW5m
byBsZW5ndGhdKQorICAgICAgICAgICAgW2luZm8gYXBwZW5kU3RyaW5nOkAiXG4iXTsKIAotICAg
IGlmIChbaW5mbyBsZW5ndGhdICE9IDApCi0gICAgICAgIFtpbmZvIGFwcGVuZFN0cmluZzpAIlxu
Il07CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGxldmVsOyBpKyspCisgICAgICAgICAg
ICBbaW5mbyBhcHBlbmRTdHJpbmc6QCIgICB8ICJdOwogCi0gICAgZm9yIChpbnQgaSA9IDE7IGkg
PD0gbGV2ZWw7IGkrKykKLSAgICAgICAgW2luZm8gYXBwZW5kU3RyaW5nOkAiICAgfCAiXTsKKyAg
ICAgICAgW2luZm8gYXBwZW5kU3RyaW5nOltzZWxmIGRlc2NyaXB0aW9uXV07CiAKLSAgICBbaW5m
byBhcHBlbmRTdHJpbmc6W3NlbGYgZGVzY3JpcHRpb25dXTsKLQotICAgIGZvciAoV0FLVmlldyAq
c3VidmlldyBpbiBbc2VsZiBzdWJ2aWV3c10pCi0gICAgICAgIFtzdWJ2aWV3IF9hcHBlbmREZXNj
cmlwdGlvblRvU3RyaW5nOmluZm8gYXRMZXZlbDpsZXZlbCArIDFdOwotCi0gICAgW3Bvb2wgcmVs
ZWFzZV07CisgICAgICAgIGZvciAoV0FLVmlldyAqc3VidmlldyBpbiBbc2VsZiBzdWJ2aWV3c10p
CisgICAgICAgICAgICBbc3VidmlldyBfYXBwZW5kRGVzY3JpcHRpb25Ub1N0cmluZzppbmZvIGF0
TGV2ZWw6bGV2ZWwgKyAxXTsKKyAgICB9CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYktpdEVycm9ycy5tCmluZGV4IGZjNTE5MTU0ZWE0YzYzYWJhN2VhZWJjMzli
ZGQ2MDZkN2RjZGMyZmEuLjA3ZWY1NmU4Nzg5Njc5MjRlZmYyYmZmNzJjNWZmNjM5N2NkZjdhMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRFcnJvcnMubQpAQCAtNjYs
MzAgKzY2LDI4IEBAICsgKHZvaWQpX3JlZ2lzdGVyV2ViS2l0RXJyb3JzCiB7CiAgICAgc3RhdGlj
IGRpc3BhdGNoX29uY2VfdCBmbGFnOwogICAgIGRpc3BhdGNoX29uY2UoJmZsYWcsIF57Ci0gICAg
ICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10g
aW5pdF07Ci0KLSAgICAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgotICAgICAgICAgICAgLy8gUG9saWN5IGVycm9ycwot
ICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkNhbm5vdFNob3dNSU1FVHlwZSwgICAg
ICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yQ2Fubm90
U2hvd01JTUVUeXBlXSwKLSAgICAgICAgICAgIFdlYktpdEVycm9yRGVzY3JpcHRpb25DYW5ub3RT
aG93VVJMLCAgICAgICAgICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OiBX
ZWJLaXRFcnJvckNhbm5vdFNob3dVUkxdLAotICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlw
dGlvbkZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsICAgW05TTnVtYmVyIG51bWJl
cldpdGhJbnQ6IFdlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZV0s
Ci0gICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uQ2Fubm90VXNlUmVzdHJpY3RlZFBv
cnQsICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydF0sCi0gICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9u
RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciwgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEludDogV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyXSwKLQotICAg
ICAgICAgICAgLy8gUGx1Zy1pbiBhbmQgamF2YSBlcnJvcnMKLSAgICAgICAgICAgIFdlYktpdEVy
cm9yRGVzY3JpcHRpb25DYW5ub3RGaW5kUGx1Z2luLCAgICAgICAgICAgICAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoSW50OiBXZWJLaXRFcnJvckNhbm5vdEZpbmRQbHVnSW5dLAotICAgICAg
ICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkNhbm5vdExvYWRQbHVnaW4sICAgICAgICAgICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yQ2Fubm90TG9hZFBs
dWdJbl0sCi0gICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uSmF2YVVuYXZhaWxhYmxl
LCAgICAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJy
b3JKYXZhVW5hdmFpbGFibGVdLAotICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvblBs
dWdJbkNhbmNlbGxlZENvbm5lY3Rpb24sICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJ
bnQ6IFdlYktpdEVycm9yUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlvbl0sCi0gICAgICAgICAgICBX
ZWJLaXRFcnJvckRlc2NyaXB0aW9uUGx1Z0luV2lsbEhhbmRsZUxvYWQsICAgICAgICAgICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9h
ZF0sCi0KLSAgICAgICAgICAgIC8vIEdlb2xvY2F0aW9uIGVycm9ycwotICAgICAgICAgICAgV2Vi
S2l0RXJyb3JEZXNjcmlwdGlvbkdlb2xvY2F0aW9uTG9jYXRpb25Vbmtub3duLCAgICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yR2VvbG9jYXRpb25Mb2NhdGlvblVu
a25vd25dLAotICAgICAgICAgICAgbmlsXTsKLQotICAgICAgICBbTlNFcnJvciBfd2Via2l0X2Fk
ZEVycm9yc1dpdGhDb2Rlc0FuZERlc2NyaXB0aW9uczpkaWN0IGluRG9tYWluOldlYktpdEVycm9y
RG9tYWluXTsKLQotICAgICAgICBbcG9vbCBkcmFpbl07CisgICAgICAgIEBhdXRvcmVsZWFzZXBv
b2wgeworICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgorICAgICAgICAgICAgICAgIC8vIFBvbGljeSBlcnJv
cnMKKyAgICAgICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uQ2Fubm90U2hvd01JTUVU
eXBlLCAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJy
b3JDYW5ub3RTaG93TUlNRVR5cGVdLAorICAgICAgICAgICAgICAgIFdlYktpdEVycm9yRGVzY3Jp
cHRpb25DYW5ub3RTaG93VVJMLCAgICAgICAgICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoSW50OiBXZWJLaXRFcnJvckNhbm5vdFNob3dVUkxdLAorICAgICAgICAgICAgICAgIFdl
YktpdEVycm9yRGVzY3JpcHRpb25GcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCAg
IFtOU051bWJlciBudW1iZXJXaXRoSW50OiBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2VdLAorICAgICAgICAgICAgICAgIFdlYktpdEVycm9yRGVzY3JpcHRpb25D
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
SW50OiBXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0XSwKKyAgICAgICAgICAgICAg
ICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciwg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2Vk
QnlDb250ZW50RmlsdGVyXSwKKworICAgICAgICAgICAgICAgIC8vIFBsdWctaW4gYW5kIGphdmEg
ZXJyb3JzCisgICAgICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkNhbm5vdEZpbmRQ
bHVnaW4sICAgICAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktp
dEVycm9yQ2Fubm90RmluZFBsdWdJbl0sCisgICAgICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNj
cmlwdGlvbkNhbm5vdExvYWRQbHVnaW4sICAgICAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yQ2Fubm90TG9hZFBsdWdJbl0sCisgICAgICAgICAgICAg
ICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkphdmFVbmF2YWlsYWJsZSwgICAgICAgICAgICAgICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9ySmF2YVVuYXZhaWxhYmxl
XSwKKyAgICAgICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uUGx1Z0luQ2FuY2VsbGVk
Q29ubmVjdGlvbiwgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJy
b3JQbHVnSW5DYW5jZWxsZWRDb25uZWN0aW9uXSwKKyAgICAgICAgICAgICAgICBXZWJLaXRFcnJv
ckRlc2NyaXB0aW9uUGx1Z0luV2lsbEhhbmRsZUxvYWQsICAgICAgICAgICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZF0sCisKKyAg
ICAgICAgICAgICAgICAvLyBHZW9sb2NhdGlvbiBlcnJvcnMKKyAgICAgICAgICAgICAgICBXZWJL
aXRFcnJvckRlc2NyaXB0aW9uR2VvbG9jYXRpb25Mb2NhdGlvblVua25vd24sICAgICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JHZW9sb2NhdGlvbkxvY2F0aW9uVW5r
bm93bl0sCisgICAgICAgICAgICAgICAgbmlsXTsKKworICAgICAgICAgICAgW05TRXJyb3IgX3dl
YmtpdF9hZGRFcnJvcnNXaXRoQ29kZXNBbmREZXNjcmlwdGlvbnM6ZGljdCBpbkRvbWFpbjpXZWJL
aXRFcnJvckRvbWFpbl07CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0KaW5kZXggNDVh
ZmFkMzAyMWJkMjcyOTg5YmIwNzQ0OGUwOWZlNGZmZDBmZjgzOC4uZDg2ZjIzMTljNGQ3Nzg5Njg0
YTdkZmEwMzBhZGIzMDA5Y2ZmMjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tCkBAIC0yNDgsNzkgKzI0OCw4MCBAQCAt
ICh2b2lkKXJlZnJlc2gKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBkb2VzIGEgYml0IG9mIGF1dG9y
ZWxlYXNpbmcsIHNvIGNyZWF0ZSBhbiBhdXRvcmVsZWFzZSBwb29sIHRvIGVuc3VyZSB0aGF0IGNh
bGxpbmcKICAgICAvLyAtcmVmcmVzaCBtdWx0aXBsZSB0aW1lcyBkb2VzIG5vdCBibG9hdCB0aGUg
ZGVmYXVsdCBwb29sLgotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxl
YXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgCi0gICAgLy8gQ3JlYXRlIG1hcCBmcm9tIHBsdWct
aW4gcGF0aCB0byBXZWJCYXNlUGx1Z2luUGFja2FnZQotICAgIGlmICghcGx1Z2lucykKLSAgICAg
ICAgcGx1Z2lucyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eToxMl07Ci0KLSAgICAvLyBGaW5kIGFsbCBwbHVnLWlucyBvbiBkaXNrCi0gICAgTlNNdXRhYmxl
U2V0ICpuZXdQbHVnaW5zID0gW3NlbGYgX3NjYW5Gb3JOZXdQbHVnaW5zXTsKLQotICAgIC8vIEZp
bmQgcGx1Zy1pbnMgdG8gcmVtb3ZlIGZyb20gZGF0YWJhc2UgKGkuZS4sIHBsdWctaW5zIHRoYXQg
bm8gbG9uZ2VyIGV4aXN0IG9uIGRpc2spCi0gICAgTlNNdXRhYmxlU2V0ICpwbHVnaW5zVG9SZW1v
dmUgPSBbTlNNdXRhYmxlU2V0IHNldF07Ci0gICAgTlNFbnVtZXJhdG9yICpwbHVnaW5FbnVtZXJh
dG9yID0gW3BsdWdpbnMgb2JqZWN0RW51bWVyYXRvcl07Ci0gICAgV2ViQmFzZVBsdWdpblBhY2th
Z2UgKnBsdWdpbjsKLSAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVtZXJhdG9yIG5leHRP
YmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAgLy8gQW55IHBsdWctaW5zIHRoYXQgd2VyZSByZW1v
dmVkIGZyb20gZGlzayBzaW5jZSB0aGUgbGFzdCByZWZyZXNoIHNob3VsZCBiZSByZW1vdmVkIGZy
b20KLSAgICAgICAgLy8gdGhlIGRhdGFiYXNlLgotICAgICAgICBpZiAoIVtuZXdQbHVnaW5zIGNv
bnRhaW5zT2JqZWN0OnBsdWdpbl0pCi0gICAgICAgICAgICBbcGx1Z2luc1RvUmVtb3ZlIGFkZE9i
amVjdDpwbHVnaW5dOwotICAgICAgICAgICAgCi0gICAgICAgIC8vIFJlbW92ZSBldmVyeSBtZW1i
ZXIgb2YgJ3BsdWdpbnMnIGZyb20gJ25ld1BsdWdpbnMnLiAgQWZ0ZXIgdGhpcyBsb29wIGV4aXRz
LCAnbmV3UGx1Z2lucycKLSAgICAgICAgLy8gd2lsbCBiZSB0aGUgc2V0IG9mIG5ldyBwbHVnLWlu
cyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UuCi0gICAgICAgIFtuZXdQbHVn
aW5zIHJlbW92ZU9iamVjdDpwbHVnaW5dOwotICAgIH0KKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgLy8gQ3JlYXRlIG1hcCBmcm9tIHBsdWctaW4gcGF0aCB0byBXZWJCYXNlUGx1Z2lu
UGFja2FnZQorICAgICAgICBpZiAoIXBsdWdpbnMpCisgICAgICAgICAgICBwbHVnaW5zID0gW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjEyXTsKKworICAgICAg
ICAvLyBGaW5kIGFsbCBwbHVnLWlucyBvbiBkaXNrCisgICAgICAgIE5TTXV0YWJsZVNldCAqbmV3
UGx1Z2lucyA9IFtzZWxmIF9zY2FuRm9yTmV3UGx1Z2luc107CisKKyAgICAgICAgLy8gRmluZCBw
bHVnLWlucyB0byByZW1vdmUgZnJvbSBkYXRhYmFzZSAoaS5lLiwgcGx1Zy1pbnMgdGhhdCBubyBs
b25nZXIgZXhpc3Qgb24gZGlzaykKKyAgICAgICAgTlNNdXRhYmxlU2V0ICpwbHVnaW5zVG9SZW1v
dmUgPSBbTlNNdXRhYmxlU2V0IHNldF07CisgICAgICAgIE5TRW51bWVyYXRvciAqcGx1Z2luRW51
bWVyYXRvciA9IFtwbHVnaW5zIG9iamVjdEVudW1lcmF0b3JdOworICAgICAgICBXZWJCYXNlUGx1
Z2luUGFja2FnZSAqcGx1Z2luOworICAgICAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVt
ZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKKyAgICAgICAgICAgIC8vIEFueSBwbHVnLWlu
cyB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIGRpc2sgc2luY2UgdGhlIGxhc3QgcmVmcmVzaCBzaG91
bGQgYmUgcmVtb3ZlZCBmcm9tCisgICAgICAgICAgICAvLyB0aGUgZGF0YWJhc2UuCisgICAgICAg
ICAgICBpZiAoIVtuZXdQbHVnaW5zIGNvbnRhaW5zT2JqZWN0OnBsdWdpbl0pCisgICAgICAgICAg
ICAgICAgW3BsdWdpbnNUb1JlbW92ZSBhZGRPYmplY3Q6cGx1Z2luXTsKKworICAgICAgICAgICAg
Ly8gUmVtb3ZlIGV2ZXJ5IG1lbWJlciBvZiAncGx1Z2lucycgZnJvbSAnbmV3UGx1Z2lucycuIEFm
dGVyIHRoaXMgbG9vcCBleGl0cywgJ25ld1BsdWdpbnMnCisgICAgICAgICAgICAvLyB3aWxsIGJl
IHRoZSBzZXQgb2YgbmV3IHBsdWctaW5zIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkYXRh
YmFzZS4KKyAgICAgICAgICAgIFtuZXdQbHVnaW5zIHJlbW92ZU9iamVjdDpwbHVnaW5dOworICAg
ICAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaWYgKFtuZXdQbHVnaW5zIGNvdW50XSA+
IDApCi0gICAgICAgIExPRyhQbHVnaW5zLCAiTmV3IHBsdWdpbnM6XG4lQCIsIG5ld1BsdWdpbnMp
OwotICAgIGlmIChbcGx1Z2luc1RvUmVtb3ZlIGNvdW50XSA+IDApCi0gICAgICAgIExPRyhQbHVn
aW5zLCAiUmVtb3ZlZCBwbHVnaW5zOlxuJUAiLCBwbHVnaW5zVG9SZW1vdmUpOworICAgICAgICBp
ZiAoW25ld1BsdWdpbnMgY291bnRdID4gMCkKKyAgICAgICAgICAgIExPRyhQbHVnaW5zLCAiTmV3
IHBsdWdpbnM6XG4lQCIsIG5ld1BsdWdpbnMpOworICAgICAgICBpZiAoW3BsdWdpbnNUb1JlbW92
ZSBjb3VudF0gPiAwKQorICAgICAgICAgICAgTE9HKFBsdWdpbnMsICJSZW1vdmVkIHBsdWdpbnM6
XG4lQCIsIHBsdWdpbnNUb1JlbW92ZSk7CiAjZW5kaWYKIAotICAgIC8vIFJlbW92ZSBwbHVnaW5z
IGZyb20gZGF0YWJhc2UKLSAgICBwbHVnaW5FbnVtZXJhdG9yID0gW3BsdWdpbnNUb1JlbW92ZSBv
YmplY3RFbnVtZXJhdG9yXTsKLSAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVtZXJhdG9y
IG5leHRPYmplY3RdKSAhPSBuaWwpIAotICAgICAgICBbc2VsZiBfcmVtb3ZlUGx1Z2luOnBsdWdp
bl07Ci0gICAgCi0gICAgLy8gQWRkIG5ldyBwbHVnaW5zIHRvIGRhdGFiYXNlCi0gICAgcGx1Z2lu
RW51bWVyYXRvciA9IFtuZXdQbHVnaW5zIG9iamVjdEVudW1lcmF0b3JdOwotICAgIHdoaWxlICgo
cGx1Z2luID0gW3BsdWdpbkVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKLSAgICAgICAg
W3NlbGYgX2FkZFBsdWdpbjpwbHVnaW5dOwotCi0gICAgLy8gQnVpbGQgYSBsaXN0IG9mIE1JTUUg
dHlwZXMuCi0gICAgTlNNdXRhYmxlU2V0ICpNSU1FVHlwZXMgPSBbW05TTXV0YWJsZVNldCBhbGxv
Y10gaW5pdF07Ci0gICAgcGx1Z2luRW51bWVyYXRvciA9IFtwbHVnaW5zIG9iamVjdEVudW1lcmF0
b3JdOwotICAgIHdoaWxlICgocGx1Z2luID0gW3BsdWdpbkVudW1lcmF0b3IgbmV4dE9iamVjdF0p
KSB7Ci0gICAgICAgIGNvbnN0IFBsdWdpbkluZm8mIHBsdWdpbkluZm8gPSBbcGx1Z2luIHBsdWdp
bkluZm9dOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBsdWdpbkluZm8ubWltZXMu
c2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBbTUlNRVR5cGVzIGFkZE9iamVjdDpwbHVnaW5JbmZv
Lm1pbWVzW2ldLnR5cGVdOwotICAgIH0KLSAgICAKLSAgICAvLyBSZWdpc3RlciBwbHVnLWluIHZp
ZXdzIGFuZCByZXByZXNlbnRhdGlvbnMuCi0gICAgTlNFbnVtZXJhdG9yICpNSU1FRW51bWVyYXRv
ciA9IFtNSU1FVHlwZXMgb2JqZWN0RW51bWVyYXRvcl07Ci0gICAgTlNTdHJpbmcgKk1JTUVUeXBl
OwotICAgIHdoaWxlICgoTUlNRVR5cGUgPSBbTUlNRUVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9
IG5pbCkgewotICAgICAgICBbcmVnaXN0ZXJlZE1JTUVUeXBlcyBhZGRPYmplY3Q6TUlNRVR5cGVd
OwotCi0gICAgICAgIGlmIChbV2ViVmlldyBjYW5TaG93TUlNRVR5cGVBc0hUTUw6TUlNRVR5cGVd
KQotICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgcGx1Zy1pbnMgdG8gb3ZlcnJpZGUgb3VyIGNv
cmUgSFRNTCB0eXBlcy4KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBwbHVnaW4gPSBb
c2VsZiBwbHVnaW5Gb3JNSU1FVHlwZTpNSU1FVHlwZV07Ci0gICAgICAgIGlmIChbcGx1Z2luIGlz
SmF2YVBsdWdJbl0pCi0gICAgICAgICAgICAvLyBEb24ndCByZWdpc3RlciB0aGUgSmF2YSBwbHVn
LWluIGZvciBhIGRvY3VtZW50IHZpZXcgc2luY2UgSmF2YSBmaWxlcyBzaG91bGQgYmUgZG93bmxv
YWRlZCB3aGVuIG5vdCBlbWJlZGRlZC4KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBp
ZiAoW3BsdWdpbiBpc1F1aWNrVGltZVBsdWdJbl0gJiYgW1tXZWJGcmFtZVZpZXcgX3ZpZXdUeXBl
c0FsbG93SW1hZ2VUeXBlT21pc3Npb246Tk9dIG9iamVjdEZvcktleTpNSU1FVHlwZV0pCi0gICAg
ICAgICAgICAvLyBEb24ndCBhbGxvdyB0aGUgUVQgcGx1Zy1pbiB0byBvdmVycmlkZSBhbnkgdHlw
ZXMgYmVjYXVzZSBpdCBjbGFpbXMgbWFueSB0aGF0IHdlIGNhbiBoYW5kbGUgb3Vyc2VsdmVzLgot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoc2VsZiA9PSBzaGFy
ZWREYXRhYmFzZSkKLSAgICAgICAgICAgIFtXZWJWaWV3IF9yZWdpc3RlclBsdWdpbk1JTUVUeXBl
Ok1JTUVUeXBlXTsKKyAgICAgICAgLy8gUmVtb3ZlIHBsdWdpbnMgZnJvbSBkYXRhYmFzZQorICAg
ICAgICBwbHVnaW5FbnVtZXJhdG9yID0gW3BsdWdpbnNUb1JlbW92ZSBvYmplY3RFbnVtZXJhdG9y
XTsKKyAgICAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51bWVyYXRvciBuZXh0T2JqZWN0
XSkgIT0gbmlsKQorICAgICAgICAgICAgW3NlbGYgX3JlbW92ZVBsdWdpbjpwbHVnaW5dOworCisg
ICAgICAgIC8vIEFkZCBuZXcgcGx1Z2lucyB0byBkYXRhYmFzZQorICAgICAgICBwbHVnaW5FbnVt
ZXJhdG9yID0gW25ld1BsdWdpbnMgb2JqZWN0RW51bWVyYXRvcl07CisgICAgICAgIHdoaWxlICgo
cGx1Z2luID0gW3BsdWdpbkVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKKyAgICAgICAg
ICAgIFtzZWxmIF9hZGRQbHVnaW46cGx1Z2luXTsKKworICAgICAgICAvLyBCdWlsZCBhIGxpc3Qg
b2YgTUlNRSB0eXBlcy4KKyAgICAgICAgTlNNdXRhYmxlU2V0ICpNSU1FVHlwZXMgPSBbW05TTXV0
YWJsZVNldCBhbGxvY10gaW5pdF07CisgICAgICAgIHBsdWdpbkVudW1lcmF0b3IgPSBbcGx1Z2lu
cyBvYmplY3RFbnVtZXJhdG9yXTsKKyAgICAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51
bWVyYXRvciBuZXh0T2JqZWN0XSkpIHsKKyAgICAgICAgICAgIGNvbnN0IFBsdWdpbkluZm8mIHBs
dWdpbkluZm8gPSBbcGx1Z2luIHBsdWdpbkluZm9dOworICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBwbHVnaW5JbmZvLm1pbWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAg
IFtNSU1FVHlwZXMgYWRkT2JqZWN0OnBsdWdpbkluZm8ubWltZXNbaV0udHlwZV07CisgICAgICAg
IH0KKworICAgICAgICAvLyBSZWdpc3RlciBwbHVnLWluIHZpZXdzIGFuZCByZXByZXNlbnRhdGlv
bnMuCisgICAgICAgIE5TRW51bWVyYXRvciAqTUlNRUVudW1lcmF0b3IgPSBbTUlNRVR5cGVzIG9i
amVjdEVudW1lcmF0b3JdOworICAgICAgICBOU1N0cmluZyAqTUlNRVR5cGU7CisgICAgICAgIHdo
aWxlICgoTUlNRVR5cGUgPSBbTUlNRUVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewor
ICAgICAgICAgICAgW3JlZ2lzdGVyZWRNSU1FVHlwZXMgYWRkT2JqZWN0Ok1JTUVUeXBlXTsKKwor
ICAgICAgICAgICAgaWYgKFtXZWJWaWV3IGNhblNob3dNSU1FVHlwZUFzSFRNTDpNSU1FVHlwZV0p
IHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBhbGxvdyBwbHVnLWlucyB0byBvdmVycmlkZSBv
dXIgY29yZSBIVE1MIHR5cGVzLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcGx1Z2luID0gW3NlbGYgcGx1Z2luRm9yTUlNRVR5cGU6TUlNRVR5
cGVdOworICAgICAgICAgICAgaWYgKFtwbHVnaW4gaXNKYXZhUGx1Z0luXSkgeworICAgICAgICAg
ICAgICAgIC8vIERvbid0IHJlZ2lzdGVyIHRoZSBKYXZhIHBsdWctaW4gZm9yIGEgZG9jdW1lbnQg
dmlldyBzaW5jZSBKYXZhIGZpbGVzIHNob3VsZCBiZSBkb3dubG9hZGVkIHdoZW4gbm90IGVtYmVk
ZGVkLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKFtwbHVnaW4gaXNRdWlja1RpbWVQbHVnSW5dICYmIFtbV2ViRnJhbWVWaWV3IF92aWV3
VHlwZXNBbGxvd0ltYWdlVHlwZU9taXNzaW9uOk5PXSBvYmplY3RGb3JLZXk6TUlNRVR5cGVdKSB7
CisgICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgdGhlIFFUIHBsdWctaW4gdG8gb3ZlcnJp
ZGUgYW55IHR5cGVzIGJlY2F1c2UgaXQgY2xhaW1zIG1hbnkgdGhhdCB3ZSBjYW4gaGFuZGxlIG91
cnNlbHZlcy4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKHNlbGYgPT0gc2hhcmVkRGF0YWJhc2UpCisgICAgICAgICAgICAgICAgW1dl
YlZpZXcgX3JlZ2lzdGVyUGx1Z2luTUlNRVR5cGU6TUlNRVR5cGVdOworICAgICAgICB9CisgICAg
ICAgIFtNSU1FVHlwZXMgcmVsZWFzZV07CiAgICAgfQotICAgIFtNSU1FVHlwZXMgcmVsZWFzZV07
Ci0gICAgCi0gICAgW3Bvb2wgZHJhaW5dOwogfQogCiAtIChCT09MKWlzTUlNRVR5cGVSZWdpc3Rl
cmVkOihOU1N0cmluZyAqKU1JTUVUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggODFmZTIxZDdh
NmI3NDFlYWViZTQzOWY5YjU3MzFlYzJiNjU5MGYzOC4uN2Q1ZmY1YWQ1ZmI0ZTAzNGE5YTQ3YjVj
MTJmMzMwZjc0ZDQ2ZmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNTU4LDkgKzU1OCw5IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3Rh
dHVzKQogewogICAgIC8vIFdlIHdhbnQgdGhlIHRlbXBvcmFyaWVzIGFsbG9jYXRlZCBoZXJlIHRv
IGJlIHJlbGVhc2VkIGV2ZW4gYmVmb3JlIHJldHVybmluZyB0byB0aGUgCiAgICAgLy8gZXZlbnQg
bG9vcDsgc2VlIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODgwPi4K
LSAgICBOU0F1dG9yZWxlYXNlUG9vbCogbG9jYWxQb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBh
bGxvY10gaW5pdF07Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpzZXRTdGF0dXNUZXh0OiksIChOU1N0cmluZyAqKXN0YXR1cyk7Ci0gICAgW2xvY2FsUG9v
bCBkcmFpbl07CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIENhbGxVSURlbGVnYXRl
KG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6c2V0U3RhdHVzVGV4dDopLCAoTlNTdHJpbmcg
KilzdGF0dXMpOworICAgIH0KIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzSW1t
ZWRpYXRlSW52YWxpZGF0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBhOWI0ODllMTkyOGVkMjY4YzBjMmExNzRmODk5OGVjZDM1NDkyZmU4
Li43OTQxMDNkMzNhMDRmNzI0NTkxNGYyYjVhZDhmMjM0MWY1YTZhMmEyIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI5IEBACisy
MDE4LTA2LTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIFVwZGF0ZSBzb21lIGNvZGUgdG8gYmUgbW9yZSBBUkMtY29tcGF0aWJsZSB0byBwcmVwYXJl
IGZvciBmdXR1cmUgQVJDIGFkb3B0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODYyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9u
TWFjLm1tOgorICAgICAgICAoK1tOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6XSk6IFVz
ZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9yZWxlYXNlLgorICAgICAgICAoLVtO
U1N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl0pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZyB0
eXBlY2FzdC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlck1hYy5tbTogQWRkIGEgbWlzc2luZyBpbmNsdWRlLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAg
ICAoLVtOU1N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl0pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlk
Z2luZyB0eXBlY2FzdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6aXNF
cXVhbCk6IERpdHRvLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6aXNF
cXVhbCk6IERpdHRvLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tOgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZSBfd2FpdEZvcldlYlRocmVhZF0pOiBV
c2UgQGF1dG9yZWxlYXNlcG9vbCBpbnN0ZWFkIG9mIE5TQXV0b3JlbGVhc2VQb29sLgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVNYWluKTogRGl0dG8uCisgICAgICAgIChXZWJUaHJlYWRMb2NrQWZ0
ZXJEZWxlZ2F0ZUNhbGxiYWNrc0hhdmVDb21wbGV0ZWQpOiBEaXR0by4KKyAgICAgICAgKHJ1blRl
c3QpOiBEaXR0by4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mby5tbToKKyAgICAgICAgKGNvcHlGaWxlKTogVXNlIGEgc3RkOjpwYWlyIHRv
IHJldHVybiBib3RoIGEgVVJMIGFuZCBhbiBlcnJvciByYXRoZXIgdGhhbiB1c2luZyBhbgorICAg
ICAgICBvdXQgYXJndW1lbnQgZm9yIHRoZSBOU0Vycm9yLgorICAgICAgICAoLVtEdW1wUmVuZGVy
VHJlZUZpbGVQcm9taXNlUmVjZWl2ZXIgcmVjZWl2ZVByb21pc2VkRmlsZXNBdERlc3RpbmF0aW9u
Om9wdGlvbnM6b3BlcmF0aW9uUXVldWU6cmVhZGVyOl0pOgorICAgICAgICBVcGRhdGVkIGZvciB0
aGUgYWJvdmUgY2hhbmdlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlV2luZG93Lm1tOgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZVdpbmRvdyBfYWRkVG9P
cGVuV2luZG93c10pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZyB0eXBlY2FzdC4KKyAgICAg
ICAgKC1bRHVtcFJlbmRlclRyZWVXaW5kb3cgY2xvc2VdKTogRGl0dG8uCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RIZWxwZXIubToKKyAgICAgICAgKHNldERpc3BsYXlD
b2xvclByb2ZpbGUpOiBEaXR0by4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9Qb2xp
Y3lEZWxlZ2F0ZS5tbTogQWRkIGEgbWlzc2luZyBpbmNsdWRlLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoLVtSZXNvdXJj
ZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OnJlc291cmNlOndpbGxTZW5kUmVxdWVzdDpyZWRpcmVjdFJl
c3BvbnNlOmZyb21EYXRhU291cmNlOl0pOgorICAgICAgICBBZGQgX19icmlkZ2UgdG8gYSBicmlk
Z2luZyB0eXBlY2FzdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbToKKyAgICAgICAgKC1bQVBJVGVzdERlbGVnYXRlSVBob25lIGluaXRXaXRoVGVzdFJ1bm5l
cjp1dGY4RGF0YTpiYXNlVVJMOl0pOiBEaXR0by4KKyAgICAgICAgKFRlc3RSdW5uZXI6OmFwaVRl
c3ROZXdXaW5kb3dEYXRhTG9hZEJhc2VVUkwpOiBVc2UgQGF1dG9yZWxlYXNlcG9vbCBpbnN0ZWFk
IG9mIE5TQXV0b3JlbGVhc2VQb29sLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rl
eHRJbnB1dENvbnRyb2xsZXJNYWMubTogRml4IGEgY29tbWVudC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6cmVwbGFjZVRleHRBdFJhbmdlKTogQWRkIF9fYnJpZGdlIHRvIGEg
YnJpZGdpbmcgdHlwZWNhc3QuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29u
dGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKTogRGl0dG8uCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL1dvcmtRdWV1ZUl0ZW1NYWMubW06CisgICAgICAgIChMb2FkSXRl
bTo6aW52b2tlIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChMb2FkSFRNTFN0cmluZ0l0ZW06Omlu
dm9rZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoU2NyaXB0SXRlbTo6aW52b2tlIGNvbnN0KTog
RGl0dG8uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoK1tOU1N0cmluZyBzdHJpbmdX
aXRoSlNTdHJpbmdSZWY6XSk6IFVzZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9y
ZWxlYXNlLgorICAgICAgICAoLVtOU1N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl0pOiBBZGQgX19i
cmlkZ2UgdG8gYSBicmlkZ2luZyB0eXBlY2FzdC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW06CisgICAgICAg
ICgrW05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjpdKTogVXNlIENGQnJpZGdpbmdSZWxl
YXNlIGluc3RlYWQgb2YgYXV0b3JlbGVhc2UuCisgICAgICAgICgtW05TU3RyaW5nIGNyZWF0ZUpT
U3RyaW5nUmVmXSk6IEFkZCBfX2JyaWRnZSB0byBhIGJyaWRnaW5nIHR5cGVjYXN0LgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjph
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQpOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZyB0eXBlY2Fz
dC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bTlNTdHJpbmcgY3JlYXRl
SlNTdHJpbmdSZWZdKTogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW06CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjppc0VxdWFsKTogRGl0dG8uCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6
aXNFcXVhbCk6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZSk6IERpdHRvLgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lVGV4dE1hcmtlclJhbmdl
Rm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKTogRGl0dG8uCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclRleHRNYXJrZXJSYW5n
ZSk6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFy
a2VyUmFuZ2VGb3JNYXJrZXJzKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSk6IERpdHRvLgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlclJhbmdlKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAgICAoV1RS
OjpjcmVhdGVKU1N0cmluZ1JlZik6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKTogRGl0dG8uCisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JU
ZXh0TWFya2VyUmFuZ2VXaXRoT3B0aW9ucyk6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFp
bnNBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW5kZXhGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzVGV4dE1hcmtlclZhbGlkKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxlZnRXb3JkVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtl
cik6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyaWdodFdv
cmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzV29yZFN0YXJ0VGV4dE1hcmtlckZvclRleHRN
YXJrZXIpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4
dFdvcmRFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJhZ3JhcGhUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFy
a2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZp
b3VzUGFyYWdyYXBoU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0UGFyYWdyYXBoRW5kVGV4dE1hcmtl
ckZvclRleHRNYXJrZXIpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VudGVuY2VUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om5leHRTZW50ZW5jZUVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKTogRGl0
dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOiBEaXR0
by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCk6IERpdHRv
LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcyk6IERp
dHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RDb250ZXh0
KTogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3
TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6
IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVu
ZGxlUGF0aCk6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6
ZVRlc3RQbHVnaW5EaXJlY3RvcnkpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QpOiBEaXR0by4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdU
Ujo6bnNTdHJpbmcpOiBVc2UgQ0ZCcmlkZ2luZ1JlbGVhc2UgaW5zdGVhZCBvZiBhdXRvcmVsZWFz
ZS4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZl
bnRTdHJlYW0pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZworICAgICAgICB0eXBlY2FzdC4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2lu
Z0luZm8ubW06IEFkZCBhIG1pc3NpbmcgaW5jbHVkZS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tOgorICAgICAgICAoLVtMb2Nh
bFBhc3RlYm9hcmQgc2V0UHJvcGVydHlMaXN0OmZvclR5cGU6XSk6IEFkZCBfYnJpZGdlIHRvIGEg
YnJpZGdpbmcgdHlwZWNhc3QuCisgICAgICAgICgtW0xvY2FsUGFzdGVib2FyZCBzZXRTdHJpbmc6
Zm9yVHlwZTpdKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9tYWlu
Lm1tOgorICAgICAgICAobWFpbik6IFVzZSBAYXV0b3JlbGVhc2Vwb29sIGluc3RlYWQgb2YgTlNB
dXRvcmVsZWFzZVBvb2wuCisKIDIwMTgtMDYtMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzb21lIHRlc3RzIGZvciBsbGRiX3dlYmtpdC5weQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpp
bmRleCA4OThkNGYwYWE2N2MzYTJlY2Y3YmNkM2Y5MDBkZTVlMjhkZTdjYzk0Li42NTk3Y2FkMTgw
NWExNTRhMjVhMGIyMjk3OTM5MGU3ZTM4ZjcxYWZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpAQCAtNDIsMTMgKzQyLDEyIEBA
ICsgKE5TU3RyaW5nICopc3RyaW5nV2l0aEpTU3RyaW5nUmVmOihKU1N0cmluZ1JlZilqc1N0cmlu
Z1JlZgogICAgIGlmICghanNTdHJpbmdSZWYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBD
RlN0cmluZ1JlZiBjZlN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGpzU3RyaW5nUmVmKTsKLSAgICByZXR1cm4gWyhOU1N0cmluZyAqKWNmU3RyaW5nIGF1
dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2UoSlNTdHJpbmdDb3B5Q0ZT
dHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNTdHJpbmdSZWYpKTsKIH0KIAogLSAoSlNTdHJp
bmdSZWYpY3JlYXRlSlNTdHJpbmdSZWYKIHsKLSAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
Q0ZTdHJpbmcoKENGU3RyaW5nUmVmKXNlbGYpOworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdp
dGhDRlN0cmluZygoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc2VsZik7CiB9CiAKIE5TRGljdGlvbmFy
eSAqc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRlcmlh
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50ICpzdGFydEVsZW1l
bnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCB1bnNpZ25lZCByZXN1bHRzTGltaXQsIEpTVmFsdWVS
ZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBib29sIHZpc2libGVPbmx5LCBi
b29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCA0YzVlMTdjMWJm
MDUxZDg4ZWNjM2FiMTI3YzFmNjk0OWE0MjAzMGUzLi42YjU0NDU1M2ZmYTg4NjY5NDdmZjY3MjNi
MzQ1ZTExOGUzYmE3YzE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCkBAIC0zNCw4ICszNCw4IEBACiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3Ry
aW5nUmVmLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+Ci0jaW1w
b3J0IDxXZWJLaXQvV2ViRnJhbWUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJI
VE1MVmlldy5oPgogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDVlOWQ2YTE1OWU0M2UwNjk1ZGNi
ODUxYzM2ZTQ2ZTNlYjQzZTRhYmIuLjAzYWE5YzY4NWExMGU3NDYxNGU5ZDI2ZWI1NmMyNTI2ZmM5
YjQxMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTUyLDcgKzUyLDcgQEAgQGltcGxl
bWVudGF0aW9uIE5TU3RyaW5nIChKU1N0cmluZ1JlZkFkZGl0aW9ucykKIAogLSAoSlNTdHJpbmdS
ZWYpY3JlYXRlSlNTdHJpbmdSZWYKIHsKLSAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZT
dHJpbmcoKENGU3RyaW5nUmVmKXNlbGYpOworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhD
RlN0cmluZygoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc2VsZik7CiB9CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5t
bQppbmRleCBiNDc4MWUyNzU4YzM1OGExZTM3MTdkYWEwYWZlOTUxODVhOGM0MWNhLi4wZWZmOTE2
OTUwNjQ1ODlmZDllOGVmYjVjNjM1NjFkYTE5OTgwNWQ3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tCkBAIC00OCw3
ICs0OCw3IEBAIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjp+QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIoKQogCiBib29sIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjppc0VxdWFsKEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyKiBvdGhlcikKIHsKLSAgICByZXR1cm4gWyhpZClwbGF0Zm9ybVRleHRNYXJr
ZXIoKSBpc0VxdWFsOihpZClvdGhlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOworICAgIHJldHVy
biBbKF9fYnJpZGdlIGlkKXBsYXRmb3JtVGV4dE1hcmtlcigpIGlzRXF1YWw6KF9fYnJpZGdlIGlk
KW90aGVyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiB9CiAKIFBsYXRmb3JtVGV4dE1hcmtlciBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6cGxhdGZvcm1UZXh0TWFya2VyKCkgY29uc3QgCkBAIC03
NCw3ICs3NCw3IEBAIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6On5BY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlKCkKIAogYm9vbCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpp
c0VxdWFsKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIG90aGVyKQogewotICAgIHJldHVy
biBbKGlkKXBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCkgaXNFcXVhbDooaWQpb3RoZXItPnBsYXRm
b3JtVGV4dE1hcmtlclJhbmdlKCldOworICAgIHJldHVybiBbKF9fYnJpZGdlIGlkKXBsYXRmb3Jt
VGV4dE1hcmtlclJhbmdlKCkgaXNFcXVhbDooX19icmlkZ2UgaWQpb3RoZXItPnBsYXRmb3JtVGV4
dE1hcmtlclJhbmdlKCldOwogfQogCiBQbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlOjpwbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggODAxNjU2ZjVlMzYw
ZjEyZGI0YjBlNzc1MmUxMWFkNTkwZThhYzVmOC4uMzlhNzBiNWM3MTc5Y2FjMWIxYWM0YzZjNDkx
NmM3NmUzZTZiNjMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQpAQCAtMTMzNyw5ICsxMzM3LDkgQEAgLSAodm9pZClfd2FpdEZvcldlYlRocmVhZAogICAg
ICAgICBbc2VsZiBfd2ViVGhyZWFkSW52b2tlZF07CiAgICAgfSk7CiAgICAgd2hpbGUgKCFfaGFz
Rmx1c2hlZFdlYlRocmVhZFJ1blF1ZXVlKSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpw
b29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIFtbTlNSdW5M
b29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURh
dGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwotICAgICAgICBbcG9vbCByZWxlYXNlXTsKKyAgICAg
ICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVu
TG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlz
dGFudFBhc3RdXTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMTM2NywyMyArMTM2NywyNSBA
QCBpbnQgRHVtcFJlbmRlclRyZWVNYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIF9VSUFwcGxpY2F0aW9uTG9hZFdlYktpdCgpOwogI2VuZGlm
Ci0gICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9j
XSBpbml0XTsKIAotICAgIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZygp
OyAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgTlNBcHBsaWNhdGlvbiBpbml0aWFsaXphdGlvbi4K
KyAgICBAYXV0b3JlbGVhc2Vwb29vbCB7CisgICAgICAgIHNldERlZmF1bHRzVG9Db25zaXN0ZW50
VmFsdWVzRm9yVGVzdGluZygpOyAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgTlNBcHBsaWNhdGlv
biBpbml0aWFsaXphdGlvbi4KIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgW0R1bXBSZW5kZXJU
cmVlQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dOyAvLyBGb3JjZSBBcHBLaXQgdG8gaW5p
dCBpdHNlbGYKKyAgICAgICAgW0R1bXBSZW5kZXJUcmVlQXBwbGljYXRpb24gc2hhcmVkQXBwbGlj
YXRpb25dOyAvLyBGb3JjZSBBcHBLaXQgdG8gaW5pdCBpdHNlbGYKIAotICAgIGR1bXBSZW5kZXJU
cmVlKGFyZ2MsIGFyZ3YpOworICAgICAgICBkdW1wUmVuZGVyVHJlZShhcmdjLCBhcmd2KTsKICNl
bHNlCi0gICAgX2FyZ2MgPSBhcmdjOwotICAgIF9hcmd2ID0gYXJndjsKLSAgICBVSUFwcGxpY2F0
aW9uTWFpbihhcmdjLCAoY2hhcioqKWFyZ3YsIEAiRHVtcFJlbmRlclRyZWUiLCBAIkR1bXBSZW5k
ZXJUcmVlIik7Ci0jZW5kaWYKLSAgICBbV2ViQ29yZVN0YXRpc3RpY3MgZ2FyYmFnZUNvbGxlY3RK
YXZhU2NyaXB0T2JqZWN0c107Ci0gICAgW1dlYkNvcmVTdGF0aXN0aWNzIGVtcHR5Q2FjaGVdOyAv
LyBPdGhlcndpc2UgU1ZHSW1hZ2VzIHRyaWdnZXIgZmFsc2UgcG9zaXRpdmVzIGZvciBGcmFtZS9O
b2RlIGNvdW50cwotICAgIEpTQzo6ZmluYWxpemVTdGF0c0F0RW5kT2ZUZXN0aW5nKCk7Ci0gICAg
W3Bvb2wgcmVsZWFzZV07CisgICAgICAgIF9hcmdjID0gYXJnYzsKKyAgICAgICAgX2FyZ3YgPSBh
cmd2OworICAgICAgICBVSUFwcGxpY2F0aW9uTWFpbihhcmdjLCAoY2hhcioqKWFyZ3YsIEAiRHVt
cFJlbmRlclRyZWUiLCBAIkR1bXBSZW5kZXJUcmVlIik7CisjZW5kaWYKKworICAgICAgICBbV2Vi
Q29yZVN0YXRpc3RpY3MgZ2FyYmFnZUNvbGxlY3RKYXZhU2NyaXB0T2JqZWN0c107CisgICAgICAg
IFtXZWJDb3JlU3RhdGlzdGljcyBlbXB0eUNhY2hlXTsgLy8gT3RoZXJ3aXNlIFNWR0ltYWdlcyB0
cmlnZ2VyIGZhbHNlIHBvc2l0aXZlcyBmb3IgRnJhbWUvTm9kZSBjb3VudHMKKyAgICAgICAgSlND
OjpmaW5hbGl6ZVN0YXRzQXRFbmRPZlRlc3RpbmcoKTsKKyAgICB9CisKICAgICByZXR1cm5pbmdG
cm9tTWFpbiA9IHRydWU7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xODY3LDkgKzE4NjksOSBAQCBz
dGF0aWMgdm9pZCBXZWJUaHJlYWRMb2NrQWZ0ZXJEZWxlZ2F0ZUNhbGxiYWNrc0hhdmVDb21wbGV0
ZWQoKQogICAgIH0pOwogCiAgICAgd2hpbGUgKGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KGRlbGVn
YXRlU2VtYXBob3JlLCBESVNQQVRDSF9USU1FX05PVykpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFz
ZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLSAgICAgICAg
W1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUg
YmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07Ci0gICAgICAgIFtwb29sIHJlbGVhc2Vd
OworICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgIFtbTlNSdW5Mb29wIGN1
cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6W05T
RGF0ZSBkaXN0YW50UGFzdF1dOworICAgICAgICB9CiAgICAgfQogCiAgICAgV2ViVGhyZWFkTG9j
aygpOwpAQCAtMTk5NCw3MCArMTk5Niw3MCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0
cmluZyYgaW5wdXRMaW5lKQogICAgIGlmIChpZ25vcmVXZWJDb3JlTm9kZUxlYWtzKQogICAgICAg
ICBbV2ViQ29yZVN0YXRpc3RpY3Mgc3RhcnRJZ25vcmluZ1dlYkNvcmVOb2RlTGVha3NdOwogCi0g
ICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBp
bml0XTsKLSAgICBbbWFpbkZyYW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6dXJsXV07Ci0gICAgW3Bvb2wgcmVsZWFzZV07CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7
CisgICAgICAgIFttYWluRnJhbWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp1cmxdXTsKKyAgICB9CiAKICAgICB3aGlsZSAoIWRvbmUpIHsKLSAgICAgICAgcG9vbCA9
IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotICAgICAgICBDRlJ1bkxvb3BSdW5J
bk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCAxMCwgZmFsc2UpOwotICAgICAgICBbcG9vbCBy
ZWxlYXNlXTsKKyAgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICBDRlJ1bkxv
b3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCAxMCwgZmFsc2UpOworICAgICAgICB9
CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFsoRHVtcFJlbmRlclRyZWUgKilVSUFw
cCBfd2FpdEZvcldlYlRocmVhZF07CiAgICAgV2ViVGhyZWFkTG9ja0FmdGVyRGVsZWdhdGVDYWxs
YmFja3NIYXZlQ29tcGxldGVkKCk7CiAjZW5kaWYKLSAgICBwb29sID0gW1tOU0F1dG9yZWxlYXNl
UG9vbCBhbGxvY10gaW5pdF07Ci0gICAgW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgY2xlYXJTYXZl
ZEV2ZW50c107Ci0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U2VsZWN0ZWRET01SYW5nZTpu
aWwgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW1dOwogCi0gICAgd29ya1F1
ZXVlLmNsZWFyKCk7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIFtFdmVudFNlbmRp
bmdDb250cm9sbGVyIGNsZWFyU2F2ZWRFdmVudHNdOworICAgICAgICBbW21haW5GcmFtZSB3ZWJW
aWV3XSBzZXRTZWxlY3RlZERPTVJhbmdlOm5pbCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbV07CiAKLSAgICAvLyBJZiB0aGUgdGVzdCBwYWdlIGNvdWxkIGhhdmUgcG9zc2li
bHkgb3BlbmVkIHRoZSBXZWIgSW5zcGVjdG9yIGZyb250ZW5kLAotICAgIC8vIHRoZW4gdHJ5IHRv
IGNsb3NlIGl0IGluIGNhc2UgaXQgd2FzIGFjY2lkZW50YWxseSBsZWZ0IG9wZW4uCi0gICAgaWYg
KHNob3VsZEVuYWJsZURldmVsb3BlckV4dHJhcyhwYXRoT3JVUkwuY19zdHIoKSkpIHsKLSAgICAg
ICAgZ1Rlc3RSdW5uZXItPmNsb3NlV2ViSW5zcGVjdG9yKCk7Ci0gICAgICAgIGdUZXN0UnVubmVy
LT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKTsKLSAgICB9CisgICAgICAgIHdvcmtR
dWV1ZS5jbGVhcigpOworCisgICAgICAgIC8vIElmIHRoZSB0ZXN0IHBhZ2UgY291bGQgaGF2ZSBw
b3NzaWJseSBvcGVuZWQgdGhlIFdlYiBJbnNwZWN0b3IgZnJvbnRlbmQsCisgICAgICAgIC8vIHRo
ZW4gdHJ5IHRvIGNsb3NlIGl0IGluIGNhc2UgaXQgd2FzIGFjY2lkZW50YWxseSBsZWZ0IG9wZW4u
CisgICAgICAgIGlmIChzaG91bGRFbmFibGVEZXZlbG9wZXJFeHRyYXMocGF0aE9yVVJMLmNfc3Ry
KCkpKSB7CisgICAgICAgICAgICBnVGVzdFJ1bm5lci0+Y2xvc2VXZWJJbnNwZWN0b3IoKTsKKyAg
ICAgICAgICAgIGdUZXN0UnVubmVyLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZhbHNlKTsK
KyAgICAgICAgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgV2Vi
VmlldyBpcyBwYXJlbnRlZCwgc2luY2UgdGhlIHRlc3QgbWF5IGhhdmUgdW5wYXJlbnRlZCBpdC4K
LSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKLSAgICBpZiAoIVt3
ZWJWaWV3IHN1cGVydmlld10pCi0gICAgICAgIFtbbWFpbldpbmRvdyBjb250ZW50Vmlld10gYWRk
U3Vidmlldzp3ZWJWaWV3XTsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBXZWJWaWV3IGlzIHBh
cmVudGVkLCBzaW5jZSB0aGUgdGVzdCBtYXkgaGF2ZSB1bnBhcmVudGVkIGl0LgorICAgICAgICBX
ZWJWaWV3ICp3ZWJWaWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKKyAgICAgICAgaWYgKCFbd2Vi
VmlldyBzdXBlcnZpZXddKQorICAgICAgICAgICAgW1ttYWluV2luZG93IGNvbnRlbnRWaWV3XSBh
ZGRTdWJ2aWV3OndlYlZpZXddOwogI2VuZGlmCiAKLSAgICBpZiAoZ1Rlc3RSdW5uZXItPmNsb3Nl
UmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpKSB7Ci0gICAgICAgIE5TQXJyYXkqIGFycmF5
ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5kb3dzXTsKKyAgICAgICAgaWYgKGdUZXN0
UnVubmVyLT5jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSkgeworICAgICAgICAg
ICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRvd3NdOwog
Ci0gICAgICAgIHVuc2lnbmVkIGNvdW50ID0gW2FycmF5IGNvdW50XTsKLSAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgICAgIE5TV2luZG93ICp3
aW5kb3cgPSBbYXJyYXkgb2JqZWN0QXRJbmRleDppXTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gW2FycmF5IGNvdW50XTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFthcnJh
eSBvYmplY3RBdEluZGV4OmldOwogCi0gICAgICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2Ug
dGhlIG1haW4gd2luZG93Ci0gICAgICAgICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdl
YlZpZXddIHdpbmRvd10pCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAg
ICAgLy8gRG9uJ3QgdHJ5IHRvIGNsb3NlIHRoZSBtYWluIHdpbmRvdworICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cgPT0gW1ttYWluRnJhbWUgd2ViVmlld10gd2luZG93XSkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgICAgICAgICAgV2Vi
VmlldyAqd2ViVmlldyA9IFtbW3dpbmRvdyBjb250ZW50Vmlld10gc3Vidmlld3NdIG9iamVjdEF0
SW5kZXg6MF07CisgICAgICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IFtbW3dpbmRvdyBj
b250ZW50Vmlld10gc3Vidmlld3NdIG9iamVjdEF0SW5kZXg6MF07CiAjZWxzZQotICAgICAgICAg
ICAgQVNTRVJUKFtbd2luZG93IGNvbnRlbnRWaWV3XSBpc0tpbmRPZkNsYXNzOltXZWJWaWV3IGNs
YXNzXV0pOwotICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IChXZWJWaWV3ICopW3dpbmRv
dyBjb250ZW50Vmlld107CisgICAgICAgICAgICAgICAgQVNTRVJUKFtbd2luZG93IGNvbnRlbnRW
aWV3XSBpc0tpbmRPZkNsYXNzOltXZWJWaWV3IGNsYXNzXV0pOworICAgICAgICAgICAgICAgIFdl
YlZpZXcgKndlYlZpZXcgPSAoV2ViVmlldyAqKVt3aW5kb3cgY29udGVudFZpZXddOwogI2VuZGlm
CiAKLSAgICAgICAgICAgIFt3ZWJWaWV3IGNsb3NlXTsKLSAgICAgICAgICAgIFt3aW5kb3cgY2xv
c2VdOworICAgICAgICAgICAgICAgIFt3ZWJWaWV3IGNsb3NlXTsKKyAgICAgICAgICAgICAgICBb
d2luZG93IGNsb3NlXTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0KIAotICAgIHJl
c2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhvcHRpb25zKTsKKyAgICAg
ICAgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKG9wdGlvbnMpOwog
Ci0gICAgLy8gTG9hZGluZyBhbiBlbXB0eSByZXF1ZXN0IHN5bmNocm9ub3VzbHkgcmVwbGFjZXMg
dGhlIGRvY3VtZW50IHdpdGggYSBibGFuayBvbmUsIHdoaWNoIGlzIG5lY2Vzc2FyeQotICAgIC8v
IHRvIHN0b3AgdGltZXJzLCBXZWJTb2NrZXRzIGFuZCBvdGhlciBhY3Rpdml0eSB0aGF0IGNvdWxk
IG90aGVyd2lzZSBzcGlsbCBvdXRwdXQgaW50byBuZXh0IHRlc3QncyByZXN1bHRzLgotICAgIFtt
YWluRnJhbWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAIiJdXV07Ci0KLSAgICBbcG9vbCByZWxlYXNlXTsKKyAgICAgICAgLy8g
TG9hZGluZyBhbiBlbXB0eSByZXF1ZXN0IHN5bmNocm9ub3VzbHkgcmVwbGFjZXMgdGhlIGRvY3Vt
ZW50IHdpdGggYSBibGFuayBvbmUsIHdoaWNoIGlzIG5lY2Vzc2FyeQorICAgICAgICAvLyB0byBz
dG9wIHRpbWVycywgV2ViU29ja2V0cyBhbmQgb3RoZXIgYWN0aXZpdHkgdGhhdCBjb3VsZCBvdGhl
cndpc2Ugc3BpbGwgb3V0cHV0IGludG8gbmV4dCB0ZXN0J3MgcmVzdWx0cy4KKyAgICAgICAgW21h
aW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAiIl1dXTsKKyAgICB9CiAKICAgICAvLyBXZSBzaG91bGQgb25seSBoYXZl
IG91ciBtYWluIHdpbmRvdyBsZWZ0IG9wZW4gd2hlbiB3ZSdyZSBkb25lCiAgICAgQVNTRVJUKENG
QXJyYXlHZXRDb3VudChvcGVuV2luZG93c1JlZikgPT0gMSk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0KaW5kZXggMjhh
OWU3MTRlNTAzNWE3NTkzOGY3OGE3YjBmNTZiYjQ1MmQwMTE5MS4uNjg4MjAzZDNlZjk3MTU3Yzk5
MjRmZWNkYzY2OTM3ODU1ZmRkYTY1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5tbQpAQCAtOTYsNyArOTYsNyBAQCAt
ICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLXN0YXRpYyBOU1VSTCAq
Y29weUZpbGUoTlNVUkwgKnNvdXJjZVVSTCwgTlNVUkwgKmRlc3RpbmF0aW9uRGlyZWN0b3J5LCBO
U0Vycm9yIComZXJyb3IpCitzdGF0aWMgc3RkOjpwYWlyPE5TVVJMICosIE5TRXJyb3IgKj4gY29w
eUZpbGUoTlNVUkwgKnNvdXJjZVVSTCwgTlNVUkwgKmRlc3RpbmF0aW9uRGlyZWN0b3J5KQogewog
ICAgIC8vIEVtdWxhdGUgaG93IENGUGFzdGVib2FyZCBmaW5kcyB1bmlxdWUgZGVzdGluYXRpb24g
ZmlsZSBuYW1lcyBieSBpbnNlcnRpbmcgIiAyIiwgIiAzIiwgYW5kIHNvCiAgICAgLy8gb24gYmV0
d2VlbiB0aGUgZmlsZSBuYW1lJ3MgYmFzZSBhbmQgZXh0ZW5zaW9uIHVudGlsIGEgbmV3IGZpbGUg
aXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgaW4KQEAgLTEwNSwxNiArMTA1LDE2IEBAIHN0YXRpYyBO
U1VSTCAqY29weUZpbGUoTlNVUkwgKnNvdXJjZVVSTCwgTlNVUkwgKmRlc3RpbmF0aW9uRGlyZWN0
b3J5LCBOU0Vycm9yIComCiAgICAgTlNVSW50ZWdlciBudW1iZXIgPSAyOwogICAgIE5TU3RyaW5n
ICpmaWxlTmFtZSA9IHNvdXJjZVVSTC5sYXN0UGF0aENvbXBvbmVudDsKICAgICBOU1VSTCAqZGVz
dGluYXRpb25VUkwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGVOYW1lIHJlbGF0aXZlVG9V
Ukw6ZGVzdGluYXRpb25EaXJlY3RvcnldOworICAgIE5TRXJyb3IgKmVycm9yOwogICAgIHdoaWxl
ICghW05TRmlsZU1hbmFnZXIuZGVmYXVsdE1hbmFnZXIgY29weUl0ZW1BdFVSTDpzb3VyY2VVUkwg
dG9VUkw6ZGVzdGluYXRpb25VUkwgZXJyb3I6JmVycm9yXSkgewogICAgICAgICBpZiAoZXJyb3Iu
ZG9tYWluICE9IE5TQ29jb2FFcnJvckRvbWFpbiB8fCBlcnJvci5jb2RlICE9IE5TRmlsZVdyaXRl
RmlsZUV4aXN0c0Vycm9yKQotICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgICAgIHJl
dHVybiB7IG5pbCwgZXJyb3IgfTsKIAogICAgICAgICBOU1N0cmluZyAqbmV3RmlsZU5hbWUgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAICVsdS4lQCIsIGZpbGVOYW1lLnN0cmluZ0J5
RGVsZXRpbmdQYXRoRXh0ZW5zaW9uLCAodW5zaWduZWQgbG9uZyludW1iZXIrKywgZmlsZU5hbWUu
cGF0aEV4dGVuc2lvbl07CiAgICAgICAgIGRlc3RpbmF0aW9uVVJMID0gW05TVVJMIGZpbGVVUkxX
aXRoUGF0aDpuZXdGaWxlTmFtZSByZWxhdGl2ZVRvVVJMOmRlc3RpbmF0aW9uRGlyZWN0b3J5XTsK
LSAgICAgICAgZXJyb3IgPSBuaWw7CiAgICAgfQogCi0gICAgcmV0dXJuIGRlc3RpbmF0aW9uVVJM
OworICAgIHJldHVybiB7IGRlc3RpbmF0aW9uVVJMLCBuaWwgfTsKIH0KIAogLSAodm9pZClyZWNl
aXZlUHJvbWlzZWRGaWxlc0F0RGVzdGluYXRpb246KE5TVVJMICopZGVzdGluYXRpb25EaXJlY3Rv
cnkgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBvcGVyYXRpb25RdWV1ZTooTlNPcGVy
YXRpb25RdWV1ZSAqKW9wZXJhdGlvblF1ZXVlIHJlYWRlcjoodm9pZCAoXikoTlNVUkwgKmZpbGVV
UkwsIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9yT3JOaWwpKXJlYWRlcgpAQCAtMTI1LDggKzEy
NSw5IEBAIC0gKHZvaWQpcmVjZWl2ZVByb21pc2VkRmlsZXNBdERlc3RpbmF0aW9uOihOU1VSTCAq
KWRlc3RpbmF0aW9uRGlyZWN0b3J5IG9wdGlvbnM6CiAgICAgTlNBcnJheTxOU1VSTCAqPiAqc291
cmNlVVJMcyA9IF9kcmFnZ2luZ1NvdXJjZS5wcm9taXNlZEZpbGVVUkxzOwogICAgIGZvciAoTlNV
UkwgKnNvdXJjZVVSTCBpbiBzb3VyY2VVUkxzKSB7CiAgICAgICAgIFtvcGVyYXRpb25RdWV1ZSBh
ZGRPcGVyYXRpb25XaXRoQmxvY2s6XnsKLSAgICAgICAgICAgIE5TRXJyb3IgKmVycm9yID0gbmls
OwotICAgICAgICAgICAgTlNVUkwgKmRlc3RpbmF0aW9uVVJMID0gY29weUZpbGUoc291cmNlVVJM
LCBkZXN0aW5hdGlvbkRpcmVjdG9yeSwgZXJyb3IpOworICAgICAgICAgICAgTlNFcnJvciAqZXJy
b3I7CisgICAgICAgICAgICBOU1VSTCAqZGVzdGluYXRpb25VUkw7CisgICAgICAgICAgICBzdGQ6
OnRpZShkZXN0aW5hdGlvblVSTCwgZXJyb3IpID0gY29weUZpbGUoc291cmNlVVJMLCBkZXN0aW5h
dGlvbkRpcmVjdG9yeSk7CiAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb25VUkwpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewog
ICAgICAgICAgICAgICAgICAgICBbX2Rlc3RpbmF0aW9uVVJMcyBhZGRPYmplY3Q6ZGVzdGluYXRp
b25VUkxdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlV2luZG93Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2lu
ZG93Lm1tCmluZGV4IDY3M2U2ODhkYTg5MjAyNjFkMWI1NDc1NGI4ODFkMGRjMzIxNzM0YjYuLjE1
ZWM0M2JiZDllYmY2NTBmMWQyOWRiZDNjNTI2ZjIxOGQyZWE0NzAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5tbQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cubW0KQEAgLTY4LDcgKzY4LDcg
QEAgLSAodm9pZClfYWRkVG9PcGVuV2luZG93cwogICAgIGlmICghb3BlbldpbmRvd3NSZWYpCiAg
ICAgICAgIG9wZW5XaW5kb3dzUmVmID0gQ0ZBcnJheUNyZWF0ZU11dGFibGUoTlVMTCwgMCwgJk5v
blJldGFpbmluZ0FycmF5Q2FsbGJhY2tzKTsKIAotICAgIENGQXJyYXlBcHBlbmRWYWx1ZShvcGVu
V2luZG93c1JlZiwgc2VsZik7CisgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKG9wZW5XaW5kb3dzUmVm
LCAoX19icmlkZ2UgQ0ZUeXBlUmVmKXNlbGYpOwogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAg
LTEwMiw3ICsxMDIsNyBAQCAtICh2b2lkKWNsb3NlCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKIAogICAgIENGUmFuZ2UgYXJy
YXlSYW5nZSA9IENGUmFuZ2VNYWtlKDAsIENGQXJyYXlHZXRDb3VudChvcGVuV2luZG93c1JlZikp
OwotICAgIENGSW5kZXggaSA9IENGQXJyYXlHZXRGaXJzdEluZGV4T2ZWYWx1ZShvcGVuV2luZG93
c1JlZiwgYXJyYXlSYW5nZSwgc2VsZik7CisgICAgQ0ZJbmRleCBpID0gQ0ZBcnJheUdldEZpcnN0
SW5kZXhPZlZhbHVlKG9wZW5XaW5kb3dzUmVmLCBhcnJheVJhbmdlLCAoX19icmlkZ2UgQ0ZUeXBl
UmVmKXNlbGYpOwogICAgIGlmIChpICE9IGtDRk5vdEZvdW5kKQogICAgICAgICBDRkFycmF5UmVt
b3ZlVmFsdWVBdEluZGV4KG9wZW5XaW5kb3dzUmVmLCBpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RIZWxwZXIubSBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0SGVscGVyLm0KaW5kZXggODhhYTg2ZmRmNWVhNGZlNjE5YTY0YTVi
NWZjZGE5ZDllNWZlODdkZi4uMzMwZjI3ZWYwYmViNDk3YTQ5Mzg3MmFmYTM4YzdhYWFmN2IzNmQ0
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RIZWxwZXIu
bQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdEhlbHBlci5tCkBAIC0x
NDcsNyArMTQ3LDcgQEAgc3RhdGljIHZvaWQgc2F2ZURpc3BsYXlDb2xvclByb2ZpbGVzKE5TQXJy
YXkgKmRpc3BsYXlVVUlEU3RyaW5ncykKIHN0YXRpYyB2b2lkIHNldERpc3BsYXlDb2xvclByb2Zp
bGUoTlNTdHJpbmcgKmRpc3BsYXlVVUlEU3RyaW5nLCBOU1VSTCAqY29sb3JQcm9maWxlVVJMKQog
ewogICAgIE5TRGljdGlvbmFyeSAqcHJvZmlsZUluZm8gPSBAewotICAgICAgICAoTlNTdHJpbmcg
KilrQ29sb3JTeW5jRGV2aWNlRGVmYXVsdFByb2ZpbGVJRCA6IGNvbG9yUHJvZmlsZVVSTAorICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ29sb3JTeW5jRGV2aWNlRGVmYXVsdFByb2ZpbGVJ
RCA6IGNvbG9yUHJvZmlsZVVSTAogICAgIH07CiAKICAgICBDRlVVSURSZWYgdXVpZCA9IENGVVVJ
RENyZWF0ZUZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENGU3RyaW5nUmVmKWRpc3Bs
YXlVVUlEU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Qb2xp
Y3lEZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Qb2xpY3lEZWxlZ2F0ZS5t
bQppbmRleCBiZTgxNmNjNDQ3OTRmZTNhYzcxMzgyYWYwMDkwMjUwNjNmOTlkZTlhLi42Y2Q0ODkz
N2Y1NTM0Y2IwYzBlZjk2YTMxMzcwNTI1MGFmNzBjZWY4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvUG9saWN5RGVsZWdhdGUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1BvbGljeURlbGVnYXRlLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJEdW1w
UmVuZGVyVHJlZS5oIgogI2ltcG9ydCAiVGVzdFJ1bm5lci5oIgogI2ltcG9ydCA8V2ViS2l0L0RP
TUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJEYXRhU291cmNlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV2ViRnJhbWUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJQb2xpY3lEZWxlZ2F0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYlZpZXcuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQppbmRleCA2Y2I1ZjI0MjYyMzk3YjIxZDExMGFhNTBh
ZGNkNDdhODhiMjRjM2Y5Li4zMGU4MDVmZGFkNDQ1NDU4OGVhNTc2MmViOGQ1MmMwYWQ2ZGQ1ZmRh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUmVzb3VyY2VMb2FkRGVsZWdh
dGUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRl
Lm1tCkBAIC0xNzIsNyArMTcyLDcgQEAgLShOU1VSTFJlcXVlc3QgKil3ZWJWaWV3OiAoV2ViVmll
dyAqKXd2IHJlc291cmNlOmlkZW50aWZpZXIgd2lsbFNlbmRSZXF1ZXN0OiAoTlMKICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmIChkaXNhbGxvd2VkVVJMcyAmJiBDRlNldENvbnRhaW5zVmFsdWUo
ZGlzYWxsb3dlZFVSTHMsIHVybCkpCisgICAgaWYgKGRpc2FsbG93ZWRVUkxzICYmIENGU2V0Q29u
dGFpbnNWYWx1ZShkaXNhbGxvd2VkVVJMcywgKF9fYnJpZGdlIENGVVJMUmVmKXVybCkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICpuZXdSZXF1ZXN0ID0g
W3JlcXVlc3QgbXV0YWJsZUNvcHldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5l
ck1hYy5tbQppbmRleCAxZTlkNjI3YjViNWJmNjEyYWFlYmQzYWFmY2E2MjNjN2RlNWUzNmE5Li5l
NmQyZDc2Y2ZiZWNhYTE0ODY2NTBkYjNjZjg5ZTkyNWM2YTU3ODY2IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtOTI3LDggKzkyNyw4IEBAIC0gKGlkKWlu
aXRXaXRoVGVzdFJ1bm5lcjooVGVzdFJ1bm5lciopcnVubmVyIHV0ZjhEYXRhOihKU1N0cmluZ1Jl
ZilkYXRhU3RyaW5nIGJhCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICB0ZXN0UnVubmVyID0g
cnVubmVyOwotICAgIGRhdGEgPSBbWyhOU1N0cmluZyAqKWFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZT
dHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YVN0cmluZykpLmdldCgpIGRhdGFVc2luZ0Vu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSByZXRhaW5dOwotICAgIGJhc2VVUkwgPSBbW05T
VVJMIFVSTFdpdGhTdHJpbmc6KE5TU3RyaW5nICopYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmlu
ZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNlVVJMU3RyaW5nKSkuZ2V0KCldIHJldGFpbl07Cisg
ICAgZGF0YSA9IFtbKF9fYnJpZGdlIE5TU3RyaW5nICopYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhU3RyaW5nKSkuZ2V0KCkgZGF0YVVzaW5nRW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIHJldGFpbl07CisgICAgYmFzZVVSTCA9IFtbTlNV
UkwgVVJMV2l0aFN0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29w
eUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2VVUkxTdHJpbmcpKS5nZXQoKV0gcmV0
YWluXTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTAwNCwzMyArMTAwNCwzMyBAQCB2b2lk
IFRlc3RSdW5uZXI6OmFwaVRlc3ROZXdXaW5kb3dEYXRhTG9hZEJhc2VVUkwoSlNTdHJpbmdSZWYg
dXRmOERhdGEsIEpTU3RyaW5nUgogICAgIH0KICNlbmRpZgogCi0gICAgTlNBdXRvcmVsZWFzZVBv
b2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKyAgICBAYXV0b3Jl
bGVhc2Vwb29sIHsKKyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1dGY4RGF0YUNGID0g
YWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB1dGY4RGF0
YSkpOworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VVUkxDRiA9IGFkb3B0Q0Yo
SlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzZVVSTCkpOwogCi0g
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1dGY4RGF0YUNGID0gYWRvcHRDRihKU1N0cmluZ0Nv
cHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB1dGY4RGF0YSkpOwotICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gYmFzZVVSTENGID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNlVVJMKSk7Ci0gICAgCi0gICAgV2ViVmlldyAqd2ViVmll
dyA9IFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGZyYW1lTmFtZTpA
IiIgZ3JvdXBOYW1lOkAiIl07CisgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBmcmFtZU5hbWU6QCIiIGdyb3VwTmFtZTpA
IiJdOwogCi0gICAgYm9vbCBkb25lID0gZmFsc2U7Ci0gICAgQVBJVGVzdERlbGVnYXRlICpkZWxl
Z2F0ZSA9IFtbQVBJVGVzdERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbXBsZXRpb25Db25kaXRp
b246JmRvbmVdOwotICAgIFt3ZWJWaWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOmRlbGVnYXRlXTsK
KyAgICAgICAgYm9vbCBkb25lID0gZmFsc2U7CisgICAgICAgIEFQSVRlc3REZWxlZ2F0ZSAqZGVs
ZWdhdGUgPSBbW0FQSVRlc3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb21wbGV0aW9uQ29uZGl0
aW9uOiZkb25lXTsKKyAgICAgICAgW3dlYlZpZXcgc2V0RnJhbWVMb2FkRGVsZWdhdGU6ZGVsZWdh
dGVdOwogCi0gICAgW1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZERhdGE6WyhOU1N0cmluZyAqKXV0
ZjhEYXRhQ0YuZ2V0KCkgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIE1J
TUVUeXBlOkAidGV4dC9odG1sIiB0ZXh0RW5jb2RpbmdOYW1lOkAidXRmLTgiIGJhc2VVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6KE5TU3RyaW5nICopYmFzZVVSTENGLmdldCgpXV07Ci0gICAgCi0g
ICAgd2hpbGUgKCFkb25lKSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tO
U0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIFtbTlNSdW5Mb29wIGN1cnJl
bnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6W05TRGF0
ZSBkaXN0YW50UGFzdF1dOwotICAgICAgICBbcG9vbCByZWxlYXNlXTsKLSAgICB9CisgICAgICAg
IFtbd2ViVmlldyBtYWluRnJhbWVdIGxvYWREYXRhOlsoX19icmlkZ2UgTlNTdHJpbmcgKil1dGY4
RGF0YUNGLmdldCgpIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBNSU1F
VHlwZTpAInRleHQvaHRtbCIgdGV4dEVuY29kaW5nTmFtZTpAInV0Zi04IiBiYXNlVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWJhc2VVUkxDRi5nZXQoKV1dOwor
CisgICAgICAgIHdoaWxlICghZG9uZSkgeworICAgICAgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7
CisgICAgICAgICAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNE
ZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CisgICAg
ICAgICAgICAgICAgW3Bvb2wgcmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAog
I2lmIFBMQVRGT1JNKElPUykKLSAgICBbKER1bXBSZW5kZXJUcmVlICopW1VJQXBwbGljYXRpb24g
c2hhcmVkQXBwbGljYXRpb25dIF93YWl0Rm9yV2ViVGhyZWFkXTsKKyAgICAgICAgWyhEdW1wUmVu
ZGVyVHJlZSAqKVtVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBfd2FpdEZvcldlYlRo
cmVhZF07CiAjZW5kaWYKIAotICAgIFt3ZWJWaWV3IGNsb3NlXTsKLSAgICBbd2ViVmlldyByZWxl
YXNlXTsKLSAgICBbZGVsZWdhdGUgcmVsZWFzZV07Ci0gICAgW3Bvb2wgcmVsZWFzZV07CisgICAg
ICAgIFt3ZWJWaWV3IGNsb3NlXTsKKyAgICAgICAgW3dlYlZpZXcgcmVsZWFzZV07CisgICAgICAg
IFtkZWxlZ2F0ZSByZWxlYXNlXTsKKyAgICB9CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6YXBpVGVz
dEdvVG9DdXJyZW50QmFja0ZvcndhcmRJdGVtKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyTWFjLm0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvVGV4dElucHV0Q29udHJvbGxlck1hYy5tCmluZGV4IGY3OTkzMGQxY2UyY2FkZDJhMThm
MDdiZjU0M2NhNzgwNDIwZTgxZmYuLmU3ZDAyMzZiN2Y5MDAzNGRmOTRmYzUwMGE4Y2Q2MTRlZjk3
OTlmMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250
cm9sbGVyTWFjLm0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRy
b2xsZXJNYWMubQpAQCAtNTQ2LDQgKzU0Niw0IEBAIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRz
OihOU0FycmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlCiAK
IEBlbmQKIAotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxl
ck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMu
bW0KaW5kZXggNzE3Mjk4NzMxOWFhMzU5ZTk4YWVmY2JjYWYzNjkyMGExYjlkM2RkYi4uYjNhYzZh
ZTY5YzA2YzA3MTA3YTU1MTFhYzY4NDEwMzE5OWVmOGUzNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC03MCw3ICs3MCw3IEBA
IHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpyZXBsYWNlVGV4dEF0UmFuZ2UoSlNTdHJpbmdSZWYg
dGV4dCwgaW50IGxvY2F0aW9uLCBpbnQKIHsKICAgICBhdXRvIHRleHRUb0luc2VydCA9IGFkb3B0
Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdGV4dCkpOwogICAg
IGF1dG8gcmFuZ2VBdHRyaWJ1dGUgPSBhZG9wdE5TKFtbTlNEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aE9iamVjdHNBbmRLZXlzOk5TU3RyaW5nRnJvbVJhbmdlKE5TTWFrZVJhbmdlKGxvY2F0aW9u
ID09IC0xID8gTlNOb3RGb3VuZCA6IGxvY2F0aW9uLCBsZW5ndGgpKSwgTlNUZXh0SW5wdXRSZXBs
YWNlbWVudFJhbmdlQXR0cmlidXRlTmFtZSwgbmlsXSk7Ci0gICAgYXV0byB0ZXh0QW5kUmFuZ2Ug
PSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzooTlNT
dHJpbmcgKil0ZXh0VG9JbnNlcnQuZ2V0KCkgYXR0cmlidXRlczpyYW5nZUF0dHJpYnV0ZS5nZXQo
KV0pOworICAgIGF1dG8gdGV4dEFuZFJhbmdlID0gYWRvcHROUyhbW05TQXR0cmlidXRlZFN0cmlu
ZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopdGV4dFRvSW5zZXJ0
LmdldCgpIGF0dHJpYnV0ZXM6cmFuZ2VBdHRyaWJ1dGUuZ2V0KCldKTsKIAogICAgIFttYWluRnJh
bWUud2ViVmlldyBpbnNlcnRUZXh0OnRleHRBbmRSYW5nZS5nZXQoKV07CiB9CkBAIC05OCw3ICs5
OCw3IEBAIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29udGVudHNPZlVzZXJJbnRl
cmZhY2VJdGVtKEpTU3RyaW5nUmVmIGludGVyZmFjCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQK
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IGludGVyZmFjZUl0ZW1DRiA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZT
dHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaW50ZXJmYWNlSXRlbSkpOwotICAgIE5TRGljdGlv
bmFyeSAqY29udGVudERpY3Rpb25hcnkgPSBbd2ViVmlldyBfY29udGVudHNPZlVzZXJJbnRlcmZh
Y2VJdGVtOihOU1N0cmluZyAqKWludGVyZmFjZUl0ZW1DRi5nZXQoKV07CisgICAgTlNEaWN0aW9u
YXJ5ICpjb250ZW50RGljdGlvbmFyeSA9IFt3ZWJWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFj
ZUl0ZW06KF9fYnJpZGdlIE5TU3RyaW5nICopaW50ZXJmYWNlSXRlbUNGLmdldCgpXTsKICAgICBy
ZXR1cm4gSlNWYWx1ZVRvT2JqZWN0KG1fY29udGV4dC0+anNDb250ZXh0KCksIFtKU1ZhbHVlIHZh
bHVlV2l0aE9iamVjdDpjb250ZW50RGljdGlvbmFyeSBpbkNvbnRleHQ6W0pTQ29udGV4dCBjb250
ZXh0V2l0aEpTR2xvYmFsQ29udGV4dFJlZjptX2NvbnRleHQtPmpzQ29udGV4dCgpXV0uSlNWYWx1
ZVJlZiwgbnVsbHB0cik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShpbnRlcmZhY2VJdGVtKTsK
QEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVm
ZXJlbmNlKEpTU3RyaW5nUmVmIHByZWZlcmVuY2VSZWYsIEpTU3RyaW5nUgogCiAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiB2YWx1ZSA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgdmFsdWVSZWYpKTsKICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhwcmVmZXJlbmNlUmVmLCAiV2ViS2l0TWluaW11bUZvbnRTaXplIikpCi0gICAg
ICAgIHByZWZlcmVuY2VzLm1pbmltdW1Gb250U2l6ZSA9IFsoTlNTdHJpbmcgKil2YWx1ZS5nZXQo
KSBkb3VibGVWYWx1ZV07CisgICAgICAgIHByZWZlcmVuY2VzLm1pbmltdW1Gb250U2l6ZSA9IFso
X19icmlkZ2UgTlNTdHJpbmcgKil2YWx1ZS5nZXQoKSBkb3VibGVWYWx1ZV07CiB9CiAKIHZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpzaW11bGF0ZVJvdGF0aW9uKERldmljZU9yaWVudGF0aW9uKiwg
SlNWYWx1ZVJlZikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Xb3JrUXVl
dWVJdGVtTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1dvcmtRdWV1ZUl0ZW1NYWMu
bW0KaW5kZXggMTc0NTVjOThiNjA5MDA5Nzg3MWM2YjBiMmQ1NzI1YTE0YTljNDk1OC4uN2NjMWMy
OWM4MGUzMTU5YjliZGYyMTg5ZjkzNjk1YWM4N2U3MThlZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1dvcmtRdWV1ZUl0ZW1NYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1dvcmtRdWV1ZUl0ZW1NYWMubW0KQEAgLTQxLDkgKzQxLDkgQEAKIGJvb2wgTG9h
ZEl0ZW06Omludm9rZSgpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1cmxD
RiA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV91
cmwuZ2V0KCkpKTsKLSAgICBOU1N0cmluZyAqdXJsTlMgPSAoTlNTdHJpbmcgKil1cmxDRi5nZXQo
KTsKKyAgICBOU1N0cmluZyAqdXJsTlMgPSAoX19icmlkZ2UgTlNTdHJpbmcgKil1cmxDRi5nZXQo
KTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRhcmdldENGID0gYWRvcHRDRihKU1N0cmlu
Z0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3RhcmdldC5nZXQoKSkpOwotICAg
IE5TU3RyaW5nICp0YXJnZXROUyA9IChOU1N0cmluZyAqKXRhcmdldENGLmdldCgpOworICAgIE5T
U3RyaW5nICp0YXJnZXROUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXRhcmdldENGLmdldCgpOwog
CiAgICAgV2ViRnJhbWUgKnRhcmdldEZyYW1lOwogICAgIGlmICh0YXJnZXROUyAmJiBbdGFyZ2V0
TlMgbGVuZ3RoXSkKQEAgLTYxLDExICs2MSwxMSBAQCBib29sIExvYWRIVE1MU3RyaW5nSXRlbTo6
aW52b2tlKCkgY29uc3QKIAogICAgIGlmIChtX3VucmVhY2hhYmxlVVJMKSB7CiAgICAgICAgIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gdW5yZWFjaGFibGVVUkxDRiA9IGFkb3B0Q0YoSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV91bnJlYWNoYWJsZVVSTC5nZXQoKSkp
OwotICAgICAgICBbbWFpbkZyYW1lIGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nOihOU1N0cmluZyAq
KWNvbnRlbnRDRi5nZXQoKSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOihOU1N0cmluZyAq
KWJhc2VVUkxDRi5nZXQoKV0gZm9yVW5yZWFjaGFibGVVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
KE5TU3RyaW5nICopdW5yZWFjaGFibGVVUkxDRi5nZXQoKV1dOworICAgICAgICBbbWFpbkZyYW1l
IGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWNvbnRlbnRDRi5n
ZXQoKSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWJh
c2VVUkxDRi5nZXQoKV0gZm9yVW5yZWFjaGFibGVVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6KF9f
YnJpZGdlIE5TU3RyaW5nICopdW5yZWFjaGFibGVVUkxDRi5nZXQoKV1dOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBbbWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOihOU1N0cmlu
ZyAqKWNvbnRlbnRDRi5nZXQoKSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOihOU1N0cmlu
ZyAqKWJhc2VVUkxDRi5nZXQoKV1dOworICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6KF9f
YnJpZGdlIE5TU3RyaW5nICopY29udGVudENGLmdldCgpIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopYmFzZVVSTENGLmdldCgpXV07CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBSZWxvYWRJdGVtOjppbnZva2UoKSBj
b25zdAogYm9vbCBTY3JpcHRJdGVtOjppbnZva2UoKSBjb25zdAogewogICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gc2NyaXB0Q0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG1fc2NyaXB0LmdldCgpKSk7Ci0gICAgTlNTdHJpbmcgKnNjcmlwdE5T
ID0gKE5TU3RyaW5nICopc2NyaXB0Q0YuZ2V0KCk7CisgICAgTlNTdHJpbmcgKnNjcmlwdE5TID0g
KF9fYnJpZGdlIE5TU3RyaW5nICopc2NyaXB0Q0YuZ2V0KCk7CiAgICAgW1ttYWluRnJhbWUgd2Vi
Vmlld10gc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6c2NyaXB0TlNdOwog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW0KaW5kZXggZmYyNTY5MTdmZGRkMDkwOWI5OTk3YjFmMmE5ZWI4OWIxOTFlYTE4Yi4uZDY3
ZWU0NDE2YTU5M2MwNmY2ZWM3YzJlYmM1ODA5MWU2M2M3ZDFhNCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dElPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0xMDgsMTMgKzEwOCwxMiBAQCArIChOU1N0
cmluZyAqKXN0cmluZ1dpdGhKU1N0cmluZ1JlZjooSlNTdHJpbmdSZWYpanNTdHJpbmdSZWYKICAg
ICBpZiAoIWpzU3RyaW5nUmVmKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAgIENGU3Ry
aW5nUmVmIGNmU3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwganNTdHJpbmdSZWYpOwotICAgIHJldHVybiBbKE5TU3RyaW5nICopY2ZTdHJpbmcgYXV0b3Jl
bGVhc2VdOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShKU1N0cmluZ0NvcHlDRlN0cmlu
ZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc1N0cmluZ1JlZikpOwogfQogCiAtIChKU1N0cmluZ1Jl
ZiljcmVhdGVKU1N0cmluZ1JlZgogewotICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0
cmluZygoQ0ZTdHJpbmdSZWYpc2VsZik7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENG
U3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzZWxmKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eUNvbW1vbk1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0KaW5kZXggN2Q0Njc3ODhlNTcyOTdhZDJiZDZhYjBj
ZTdhODg1NjBjZDIxMmU0OS4uOWVhNjQzMjJkMTEyMjA2ZDI5MThhYjQ0N2NiMzY5YWMyNTg0ZWEy
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tCkBAIC00MiwxMyArNDIs
MTIgQEAgKyAoTlNTdHJpbmcgKilzdHJpbmdXaXRoSlNTdHJpbmdSZWY6KEpTU3RyaW5nUmVmKWpz
U3RyaW5nUmVmCiAgICAgaWYgKCFqc1N0cmluZ1JlZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIENGU3RyaW5nUmVmIGNmU3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwganNTdHJpbmdSZWYpOwotICAgIHJldHVybiBbKE5TU3RyaW5nICopY2ZTdHJp
bmcgYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVsZWFzZShKU1N0cmluZ0Nv
cHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc1N0cmluZ1JlZikpOwogfQogCiAtIChK
U1N0cmluZ1JlZiljcmVhdGVKU1N0cmluZ1JlZgogewotICAgIHJldHVybiBKU1N0cmluZ0NyZWF0
ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpc2VsZik7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzZWxmKTsKIH0KIAogbmFtZXNw
YWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCmlu
ZGV4IDc1MGVkODQ2MmYwMmU3YjU4NjUwNDlkMDU3ZGU0Nzg2NzdjNWRmYzIuLjMxMGZhNDg3MTU0
MmU3ZjhiZGI5MTE3MzYzODU0OThhMTllMDRlNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1t
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyTWFjLm1tCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyBpZCBmaW5kQWNj
ZXNzaWJsZU9iamVjdEJ5SWQoaWQgb2JqLCBOU1N0cmluZyAqaWRBdHRyaWJ1dGUpCiBSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFjY2Vzc2li
bGVFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZEF0dHJpYnV0ZSkKIHsKICAgICBXS0J1bmRsZVBh
Z2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsK
LSAgICBpZCByb290ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+KFdLQWNjZXNzaWJp
bGl0eVJvb3RPYmplY3QocGFnZSkpOworICAgIGlkIHJvb3QgPSAoX19icmlkZ2UgaWQpV0tBY2Nl
c3NpYmlsaXR5Um9vdE9iamVjdChwYWdlKTsKIAogICAgIGlkIHJlc3VsdCA9IGZpbmRBY2Nlc3Np
YmxlT2JqZWN0QnlJZChyb290LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmlkQXR0
cmlidXRlXSk7CiAgICAgaWYgKHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjFkNGIyNTg0NDVlMDNmNjljNGYwNTk1
MjE3NTI0ZDEwMTM4OGM2OC4uZjNlY2IzYjQ2MGRlNjc5NDBiMzY5NmJlZGQ0ZDU5NWMwYmY1ZTJk
YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KQEAgLTU0LDcgKzU0LDcgQEAgQGltcGxlbWVudGF0aW9uIE5TU3RyaW5nIChKU1N0cmlu
Z1JlZkFkZGl0aW9ucykKIAogLSAoSlNTdHJpbmdSZWYpY3JlYXRlSlNTdHJpbmdSZWYKIHsKLSAg
ICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKXNlbGYpOwor
ICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoX19icmlkZ2UgQ0ZTdHJpbmdS
ZWYpc2VsZik7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJNYWMubW0KaW5kZXggZmFjZTkwY2U1MGUyMzk3MDRlZDE3ODQzYjA1Mjc3YTM4YzljMjA3Zi4u
NWViOTVmMjI3NDAxZjg3ZDZmMzlmNGQ1NDljMGZjYzg1NDZkN2E4NyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW0KQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNw
YWNlIFdUUiB7CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmlzRXF1YWwoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqIG90aGVyKQogewotICAgIHJldHVybiBbKGlkKXBsYXRmb3JtVGV4
dE1hcmtlcigpIGlzRXF1YWw6KGlkKW90aGVyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CisgICAg
cmV0dXJuIFsoX19icmlkZ2UgaWQpcGxhdGZvcm1UZXh0TWFya2VyKCkgaXNFcXVhbDooX19icmlk
Z2UgaWQpb3RoZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5t
bQppbmRleCAyMTg2NDk3ZGZhYWYzZjk4M2VhNTdjNGFlMjMxZTcwNjQ0YmEwZGVjLi5kMzgzZGZh
NDQzNDM1MTRmOTNmNzY3NTBiYjI4ODRmYzhkZWU5N2M1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0KQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdUUiB7CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6Omlz
RXF1YWwoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogb3RoZXIpCiB7Ci0gICAgcmV0dXJu
IFsoaWQpcGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKSBpc0VxdWFsOihpZClvdGhlci0+cGxhdGZv
cm1UZXh0TWFya2VyUmFuZ2UoKV07CisgICAgcmV0dXJuIFsoX19icmlkZ2UgaWQpcGxhdGZvcm1U
ZXh0TWFya2VyUmFuZ2UoKSBpc0VxdWFsOihfX2JyaWRnZSBpZClvdGhlci0+cGxhdGZvcm1UZXh0
TWFya2VyUmFuZ2UoKV07CiB9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGNjYzdmMjFhYzc4ZWY2NzgxYjNi
M2YxNjllYTNiMGY5NTBiMjE0NDIuLjllMDc0ZDE0OTdmZTIyMjE3NjZlNzUxY2QwM2FiMTNkZmUw
YzQ4MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAt
MTQwMiw3ICsxNDAyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGUKIGJvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UqIG1hcmtlclJhbmdlKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBU
SU9OUwotICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNldFZhbHVlOihpZCltYXJrZXJSYW5n
ZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdOworICAgIFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eVNldFZhbHVlOihfX2JyaWRnZSBpZCltYXJrZXJSYW5nZS0+cGxhdGZvcm1UZXh0TWFy
a2VyUmFuZ2UoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2VBdHRyaWJ1dGVdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVy
biB0cnVlOwpAQCAtMTY3MCw3ICsxNjcwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpyZW1vdmVTZWxlY3Rpb24oKQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2Vy
KEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAgIEJFR0lOX0FYX09C
SkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhMaW5lVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtl
ciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07Cisg
ICAgaWQgdGV4dE1hcmtlclJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWU6QCJBWExpbmVUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6
KF9fYnJpZGdlIGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3JlYXRlKHRleHRNYXJrZXJSYW5nZSk7
CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTY5MCw3ICsxNjkwLDcgQEAg
UmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnRleHRNYXJrZXJSYW5nZUZvckUKIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0
TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCiB7
CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNOdW1iZXIqIGxlbmd0aFZhbHVl
ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWExlbmd0aEZvclRl
eHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihpZClyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2Vy
UmFuZ2UoKV07CisgICAgTlNOdW1iZXIqIGxlbmd0aFZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWExlbmd0aEZvclRleHRNYXJrZXJSYW5nZSIgZm9yUGFy
YW1ldGVyOihfX2JyaWRnZSBpZClyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKV07CiAg
ICAgcmV0dXJuIFtsZW5ndGhWYWx1ZSBpbnRWYWx1ZV07CiAgICAgRU5EX0FYX09CSkNfRVhDRVBU
SU9OUwogICAgIApAQCAtMTcwMCw3ICsxNzAwLDcgQEAgaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnRleHRNYXJrZXJSYW5nZUxlbmd0aChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKgog
UmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpw
cmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7
CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgcHJldmlvdXNNYXJrZXIgPSBb
bV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUHJldmlvdXNUZXh0TWFy
a2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRl
eHRNYXJrZXIoKV07CisgICAgaWQgcHJldmlvdXNNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUHJldmlvdXNUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIg
Zm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIo
KV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUocHJldmlvdXNN
YXJrZXIpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE3MTAsNyArMTcx
MCw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cHJldmlvdXNUZXh0TWFya2VyKEFjY2VzCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9O
UwotICAgIGlkIG5leHRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTpAIkFYTmV4dFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRl
eHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCBuZXh0TWFya2VyID0gW21f
ZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWE5leHRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9y
bVRleHRNYXJrZXIoKV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVh
dGUobmV4dE1hcmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTcy
MCw3ICsxNzIwLDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpuZXh0VGV4dE1hcmtlcihBY2Nlc3NpYmkKIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2Uo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogbWFya2VyUmFuZ2UpCiB7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdGV4dFN0cmluZyA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBh
cmFtZXRlcjooaWQpbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCldOworICAg
IGlkIHRleHRTdHJpbmcgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpA
IkFYU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKW1h
cmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKICAgICByZXR1cm4gW3RleHRT
dHJpbmcgY3JlYXRlSlNTdHJpbmdSZWZdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAg
ICAKQEAgLTE3MzAsNyArMTczMCw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzCiBSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4
dE1hcmtlclJhbmdlRm9yTWFya2VycyhBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogc3RhcnRNYXJr
ZXIsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiBlbmRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCi0gICAgTlNBcnJheSogdGV4dE1hcmtlcnMgPSBbTlNBcnJheSBhcnJh
eVdpdGhPYmplY3RzOihpZClzdGFydE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCksIChpZCll
bmRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpLCBuaWxdOworICAgIE5TQXJyYXkqIHRleHRN
YXJrZXJzID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czooX19icmlkZ2UgaWQpc3RhcnRNYXJr
ZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpLCAoX19icmlkZ2UgaWQpZW5kTWFya2VyLT5wbGF0Zm9y
bVRleHRNYXJrZXIoKSwgbmlsXTsKICAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVGV4dE1hcmtlclJhbmdlRm9yVW5vcmRl
cmVkVGV4dE1hcmtlcnMiIGZvclBhcmFtZXRlcjp0ZXh0TWFya2Vyc107CiAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2VyUmFuZ2UpOwogICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTE3NjcsNyArMTc2Nyw3IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cmVzZXRTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSgpCiBSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4
dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiBy
YW5nZSkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFya2Vy
ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFN0YXJ0VGV4dE1h
cmtlckZvclRleHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihpZClyYW5nZS0+cGxhdGZvcm1U
ZXh0TWFya2VyUmFuZ2UoKV07CisgICAgaWQgdGV4dE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFu
Z2UiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJh
bmdlKCldOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKHRleHRN
YXJrZXIpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE3NzcsNyArMTc3
Nyw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2Vy
UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCiB7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdGV4dE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdl
IiBmb3JQYXJhbWV0ZXI6KGlkKXJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKKyAg
ICBpZCB0ZXh0TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
QCJBWEVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBhcmFtZXRlcjooX19icmlk
Z2UgaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCldOwogICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKHRleHRNYXJrZXIpOwogICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKICAgICAKQEAgLTE4MTcsNyArMTgxNyw3IEBAIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvclBvaW50
KGludCB4CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyKiBtYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQg
dWlFbGVtZW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFVJ
RWxlbWVudEZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjooaWQpbWFya2VyLT5wbGF0Zm9ybVRl
eHRNYXJrZXIoKV07CisgICAgaWQgdWlFbGVtZW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6QCJBWFVJRWxlbWVudEZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjoo
X19icmlkZ2UgaWQpbWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiAgICAgaWYgKHVpRWxl
bWVudCkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh1aUVs
ZW1lbnQpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTE4MzUsOSArMTgzNSw5IEBA
IHN0YXRpYyBKU1N0cmluZ1JlZiBjcmVhdGVKU1N0cmluZ1JlZihpZCBzdHJpbmcpCiAgICAgICAg
ICAgICBtaXNzcGVsbGVkID0gW1thdHRycyBvYmplY3RGb3JLZXk6TlNBY2Nlc3NpYmlsaXR5TWFy
a2VkTWlzc3BlbGxlZFRleHRBdHRyaWJ1dGVdIGJvb2xWYWx1ZV07CiAgICAgICAgIGlmIChtaXNz
cGVsbGVkKQogICAgICAgICAgICAgW211dGFibGVTdHJpbmcgYXBwZW5kU3RyaW5nOkAiTWlzc3Bl
bGxlZCwgIl07Ci0gICAgICAgIGlkIGZvbnQgPSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6KGlk
KWtBWEZvbnRUZXh0QXR0cmlidXRlXTsKKyAgICAgICAgaWQgZm9udCA9IFthdHRyaWJ1dGVzIG9i
amVjdEZvcktleTooX19icmlkZ2UgaWQpa0FYRm9udFRleHRBdHRyaWJ1dGVdOwogICAgICAgICBp
ZiAoZm9udCkKLSAgICAgICAgICAgIFttdXRhYmxlU3RyaW5nIGFwcGVuZEZvcm1hdDpAIiVAIC0g
JUAsICIsIChpZClrQVhGb250VGV4dEF0dHJpYnV0ZSwgZm9udF07CisgICAgICAgICAgICBbbXV0
YWJsZVN0cmluZyBhcHBlbmRGb3JtYXQ6QCIlQCAtICVALCAiLCAoX19icmlkZ2UgaWQpa0FYRm9u
dFRleHRBdHRyaWJ1dGUsIGZvbnRdOwogICAgIH07CiAgICAgW3N0cmluZyBlbnVtZXJhdGVBdHRy
aWJ1dGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCBbc3RyaW5nIGxlbmd0aF0pIG9wdGlvbnM6KE5T
QXR0cmlidXRlZFN0cmluZ0VudW1lcmF0aW9uT3B0aW9ucykwIHVzaW5nQmxvY2s6YXR0cmlidXRl
RW51bWVyYXRpb25CbG9ja107CiAgICAgW211dGFibGVTdHJpbmcgYXBwZW5kU3RyaW5nOltzdHJp
bmcgc3RyaW5nXV07CkBAIC0xODQ5LDcgKzE4NDksNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJS
YQogICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gbmlsOwogCiAgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCi0gICAgc3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0
cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBh
cmFtZXRlcjooaWQpbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCldOworICAg
IHN0cmluZyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhBdHRy
aWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlk
KW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKICAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCiAKICAgICBpZiAoIVtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1
dGVkU3RyaW5nIGNsYXNzXV0pCkBAIC0xODY0LDkgKzE4NjQsOSBAQCBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRN
YXJrZXJSYQogCiAgICAgaWQgcGFyYW1ldGVyID0gbmlsOwogICAgIGlmIChpbmNsdWRlU3BlbGxD
aGVjaykKLSAgICAgICAgcGFyYW1ldGVyID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9i
amVjdHNBbmRLZXlzOltOU051bWJlciBudW1iZXJXaXRoQm9vbDppbmNsdWRlU3BlbGxDaGVja10s
IEAiQVhTcGVsbENoZWNrIiwgKGlkKW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5n
ZSgpLCBAIkFYVGV4dE1hcmtlclJhbmdlIiwgbmlsXTsKKyAgICAgICAgcGFyYW1ldGVyID0gW05T
RGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU051bWJlciBudW1iZXJX
aXRoQm9vbDppbmNsdWRlU3BlbGxDaGVja10sIEAiQVhTcGVsbENoZWNrIiwgKF9fYnJpZGdlIGlk
KW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpLCBAIkFYVGV4dE1hcmtlclJh
bmdlIiwgbmlsXTsKICAgICBlbHNlCi0gICAgICAgIHBhcmFtZXRlciA9IChpZCltYXJrZXJSYW5n
ZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKTsKKyAgICAgICAgcGFyYW1ldGVyID0gKF9fYnJp
ZGdlIGlkKW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpOwogCiAgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgc3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VX
aXRoT3B0aW9ucyIgZm9yUGFyYW1ldGVyOnBhcmFtZXRlcl07CkBAIC0xODgxLDcgKzE4ODEsNyBA
QCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJp
bmdSZWYgYXR0cmlidXRlLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKIHsK
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0F0dHJpYnV0ZWRTdHJpbmcqIHN0
cmluZyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhBdHRyaWJ1
dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6KGlkKXJhbmdlLT5wbGF0
Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKKyAgICBOU0F0dHJpYnV0ZWRTdHJpbmcqIHN0cmluZyA9
IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhBdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXJhbmdlLT5w
bGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKICAgICBpZiAoIVtzdHJpbmcgaXNLaW5kT2ZDbGFz
czpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAKQEAgLTE4OTYsNyArMTg5Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0
cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlCiBpbnQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyKiBtYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNO
dW1iZXIqIGluZGV4TnVtYmVyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6QCJBWEluZGV4Rm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCltYXJrZXItPnBsYXRm
b3JtVGV4dE1hcmtlcigpXTsKKyAgICBOU051bWJlciogaW5kZXhOdW1iZXIgPSBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYSW5kZXhGb3JUZXh0TWFya2VyIiBmb3JQ
YXJhbWV0ZXI6KF9fYnJpZGdlIGlkKW1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwogICAg
IHJldHVybiBbaW5kZXhOdW1iZXIgaW50VmFsdWVdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElP
TlMKICAgICAKQEAgLTE5MDYsNyArMTkwNiw3IEBAIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjppbmRleEZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIG1hcmtlcikKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0TWFya2VyVmFsaWQoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
Ci0gICAgTlNOdW1iZXIqIHZhbGlkTnVtYmVyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0
cmlidXRlVmFsdWU6QCJBWFRleHRNYXJrZXJJc1ZhbGlkIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRN
YXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBOU051bWJlciogdmFsaWROdW1iZXIg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVGV4dE1hcmtlcklz
VmFsaWQiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0
TWFya2VyKCldOwogICAgIHJldHVybiBbdmFsaWROdW1iZXIgYm9vbFZhbHVlXTsKICAgICBFTkRf
QVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC0xOTQ2LDcgKzE5NDYsNyBAQCBSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJr
ZXIoKQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmxlZnRXb3JkVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElP
TlMKLSAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpAIkFYTGVmdFdvcmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQ
YXJhbWV0ZXI6KGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCB0
ZXh0TWFya2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpA
IkFYTGVmdFdvcmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9f
YnJpZGdlIGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3JlYXRlKHRleHRNYXJrZXJSYW5nZSk7CiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTk1Niw3ICsxOTU2LDcgQEAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmxlZnRXb3JkVGV4dE1hcmtlclIKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyaWdodFdvcmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhSaWdodFdvcmRUZXh0TWFya2VyUmFuZ2VG
b3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1h
cmtlcigpXTsKKyAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUmlnaHRXb3JkVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtl
ciIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJr
ZXIoKV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0
ZXh0TWFya2VyUmFuZ2UpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE5
NjYsNyArMTk2Niw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyaWdodFdvcmRUZXh0TWFya2VyCiBSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzV29yZFN0YXJ0
VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJr
ZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgcHJldmlvdXNXb3Jk
U3RhcnRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFY
UHJldmlvdXNXb3JkU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihp
ZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CisgICAgaWQgcHJldmlvdXNXb3Jk
U3RhcnRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFY
UHJldmlvdXNXb3JkU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihf
X2JyaWRnZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUocHJldmlvdXNXb3JkU3RhcnRNYXJrZXIp
OwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE5NzYsNyArMTk3Niw3IEBA
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cHJldmlvdXNXb3JkU3RhcnRUZXh0TWFyCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRXb3JkRW5kVGV4dE1hcmtlckZvclRleHRNYXJr
ZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCi0gICAgaWQgbmV4dFdvcmRFbmRNYXJrZXIgPSBbbV9lbGVtZW50IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYTmV4dFdvcmRFbmRUZXh0TWFya2VyRm9yVGV4
dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIo
KV07CisgICAgaWQgbmV4dFdvcmRFbmRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpAIkFYTmV4dFdvcmRFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9y
UGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07
CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUobmV4dFdvcmRFbmRN
YXJrZXIpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE5ODYsNyArMTk4
Niw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bmV4dFdvcmRFbmRUZXh0TWFya2VyRm9yCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYWdyYXBoVGV4dE1hcmtlclJh
bmdlRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsK
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBb
bV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUGFyYWdyYXBoVGV4dE1h
cmtlclJhbmdlRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2VyLT5wbGF0
Zm9ybVRleHRNYXJrZXIoKV07CisgICAgaWQgdGV4dE1hcmtlclJhbmdlID0gW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFBhcmFncmFwaFRleHRNYXJrZXJSYW5nZUZv
clRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpdGV4dE1hcmtlci0+cGxhdGZv
cm1UZXh0TWFya2VyKCldOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
OjpjcmVhdGUodGV4dE1hcmtlclJhbmdlKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAg
ICAgCkBAIC0xOTk2LDcgKzE5OTYsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYWdyYXBoVGV4dE1hcmtlcgogUmVmUHRy
PEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91
c1BhcmFncmFwaFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAg
aWQgcHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1BhcmFncmFwaFN0YXJ0VGV4dE1hcmtlckZvclRl
eHRNYXJrZXIiIGZvclBhcmFtZXRlcjooaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2Vy
KCldOworICAgIGlkIHByZXZpb3VzUGFyYWdyYXBoU3RhcnRNYXJrZXIgPSBbbV9lbGVtZW50IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUHJldmlvdXNQYXJhZ3JhcGhTdGFydFRleHRN
YXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJrZXIt
PnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI6OmNyZWF0ZShwcmV2aW91c1BhcmFncmFwaFN0YXJ0TWFya2VyKTsKICAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCiAgICAgCkBAIC0yMDA2LDcgKzIwMDYsNyBAQCBSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzUGFyYWdyYXBo
U3RhcnRUZQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpuZXh0UGFyYWdyYXBoRW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCi0gICAgaWQgbmV4dFBhcmFncmFwaEVuZE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0UGFyYWdyYXBoRW5kVGV4dE1hcmtlckZvclRleHRN
YXJrZXIiIGZvclBhcmFtZXRlcjooaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCld
OworICAgIGlkIG5leHRQYXJhZ3JhcGhFbmRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIkFYTmV4dFBhcmFncmFwaEVuZFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1h
cmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZShuZXh0
UGFyYWdyYXBoRW5kTWFya2VyKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBA
IC0yMDE2LDcgKzIwMTYsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om5leHRQYXJhZ3JhcGhFbmRUZXh0TWFyawogUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNl
VGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4
dE1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFy
a2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2Vu
dGVuY2VUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRN
YXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBb
bV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2VudGVuY2VUZXh0TWFy
a2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJr
ZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZTo6Y3JlYXRlKHRleHRNYXJrZXJSYW5nZSk7CiAgICAgRU5EX0FYX09CSkNfRVhD
RVBUSU9OUwogICAgIApAQCAtMjAyNiw3ICsyMDI2LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlVGV4dE1hcmtl
clIKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCi0gICAgaWQgcHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlciA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1NlbnRlbmNlU3RhcnRUZXh0TWFy
a2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRl
eHRNYXJrZXIoKV07CisgICAgaWQgcHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlciA9IFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1NlbnRlbmNlU3Rh
cnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0ZXh0
TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyOjpjcmVhdGUocHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlcik7CiAgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMjAzNiw3ICsyMDM2LDcgQEAgUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1Nl
bnRlbmNlU3RhcnRUZXgKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bmV4dFNlbnRlbmNlRW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19F
WENFUFRJT05TCi0gICAgaWQgbmV4dFBhcmFncmFwaEVuZE1hcmtlciA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0U2VudGVuY2VFbmRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJr
ZXIoKV07CisgICAgaWQgbmV4dFBhcmFncmFwaEVuZE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0U2VudGVuY2VFbmRUZXh0TWFya2VyRm9yVGV4
dE1hcmtlciIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRl
eHRNYXJrZXIoKV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUo
bmV4dFBhcmFncmFwaEVuZE1hcmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAg
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tCmluZGV4IDgzZGEzNjY1NDA2MmEyNGNiOTQzMjEwNTdlNmFkNmU3Njc2NTgzMDkuLjMz
M2E5ZTk0OWRiZGY5NjAxMTJkMDJhNWU4NGZhM2VlZWMzNjU1NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTYxLDgg
KzYxLDggQEAgdm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29uc3QgY2hhciog
bGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVjdGUKICAgICBbZ2xvYmFsV2ViVmlld0NvbmZp
Z3VyYXRpb24gcmVsZWFzZV07CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24gPSBbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOwogCi0gICAgZ2xvYmFsV2ViVmlld0Nv
bmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQ7Ci0gICAg
Z2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IChXS1dlYnNpdGVE
YXRhU3RvcmUgKilXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKGNvbnRleHQpOworICAgIGds
b2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnByb2Nlc3NQb29sID0gKF9fYnJpZGdlIFdLUHJvY2Vz
c1Bvb2wgKiljb250ZXh0OworICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVE
YXRhU3RvcmUgPSAoX19icmlkZ2UgV0tXZWJzaXRlRGF0YVN0b3JlICopV0tDb250ZXh0R2V0V2Vi
c2l0ZURhdGFTdG9yZShjb250ZXh0KTsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5f
YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgPSBZRVM7CiAgICAgZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24uX2FwcGxlUGF5RW5hYmxlZCA9IFlFUzsKIApAQCAtNzEsNyArNzEsNyBA
QCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5
UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAgIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoY29udGV4dCksIHRydWUp
OwogI2VuZGlmCiAKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmUqIHBvb2xXZWJzaXRlRGF0YVN0b3Jl
ID0gKFdLV2Vic2l0ZURhdGFTdG9yZSAqKVdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoKFdL
Q29udGV4dFJlZilnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCk7CisgICAg
V0tXZWJzaXRlRGF0YVN0b3JlKiBwb29sV2Vic2l0ZURhdGFTdG9yZSA9IChfX2JyaWRnZSBXS1dl
YnNpdGVEYXRhU3RvcmUgKilXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKChfX2JyaWRnZSBX
S0NvbnRleHRSZWYpZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wpOwogICAg
IFtwb29sV2Vic2l0ZURhdGFTdG9yZSBfc2V0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE6IDQw
MCAqIDEwMjRdOwogICAgIGlmIChsaWJyYXJ5UGF0aCkgewogICAgICAgICBTdHJpbmcgY2FjaGVT
dG9yYWdlRGlyZWN0b3J5ID0gU3RyaW5nKGxpYnJhcnlQYXRoKSArICcvJyArICJDYWNoZVN0b3Jh
Z2UiOwpAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvY29hUGxhdGZv
cm1Jbml0aWFsaXplKCkKIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250
ZXh0KCkKIHsKICNpZiBXS19BUElfRU5BQkxFRAotICAgIHJldHVybiAoV0tDb250ZXh0UmVmKWds
b2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnByb2Nlc3NQb29sOworICAgIHJldHVybiAoX19icmlk
Z2UgV0tDb250ZXh0UmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnByb2Nlc3NQb29sOwog
I2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgpAQCAtMTIyLDcgKzEyMiw3IEBAIFdL
Q29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250ZXh0KCkKIFdLUHJlZmVyZW5j
ZXNSZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQogewogI2lmIFdLX0FQ
SV9FTkFCTEVECi0gICAgcmV0dXJuIChXS1ByZWZlcmVuY2VzUmVmKWdsb2JhbFdlYlZpZXdDb25m
aWd1cmF0aW9uLnByZWZlcmVuY2VzOworICAgIHJldHVybiAoX19icmlkZ2UgV0tQcmVmZXJlbmNl
c1JlZilnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcmVmZXJlbmNlczsKICNlbHNlCiAgICAg
cmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKQEAgLTE3NCw3ICsxNzQsNyBAQCBXS0NvbnRleHRSZWYg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqdXN0Q29udGV4dChXS0NvbnRleHRSZWYgY29udGV4
dCwgV0tDb250ZQogewogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgaW5pdGlhbGl6ZVdlYlZpZXdD
b25maWd1cmF0aW9uKGxpYnJhcnlQYXRoRm9yVGVzdGluZygpLCBpbmplY3RlZEJ1bmRsZVBhdGgo
KSwgY29udGV4dCwgY29udGV4dENvbmZpZ3VyYXRpb24pOwotICAgIHJldHVybiAoV0tDb250ZXh0
UmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnByb2Nlc3NQb29sOworICAgIHJldHVybiAo
X19icmlkZ2UgV0tDb250ZXh0UmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnByb2Nlc3NQ
b29sOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDRiZWNjNjkzNGYx
OWY1ZTU2OTc3ZTkxYzAyNTc4NDgzZmExNzkwY2UuLjExNWNmMDM5NWEzMzU1NTlhMTBmOThhMzI5
NjZkYmVlYjE4MmRiNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Bs
YXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTEzOCw3ICsxMzgsNyBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uLCBjb25z
dCBUZQogICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRW
YWx1ZTpAWUVTIGZvcktleTpAIldlYktpdDJVc2VSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSJd
OwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvcGllZENvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtjb25maWd1cmF0aW9uIGNvcHldKTsKLSAgICBXS1ByZWZlcmVuY2Vz
U2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKChXS1ByZWZlcmVuY2VzUmVmKVtjb3BpZWRDb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgbV9vcHRpb25zLnVzZVRocmVhZGVkU2Nyb2xsaW5nKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKChfX2JyaWRnZSBX
S1ByZWZlcmVuY2VzUmVmKVtjb3BpZWRDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgbV9vcHRp
b25zLnVzZVRocmVhZGVkU2Nyb2xsaW5nKTsKIAogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVj
dCgwLCAwLCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmlld0hl
aWdodCk7CiAgICAgbV92aWV3ID0gW1tUZXN0UnVubmVyV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOnJlY3QgY29uZmlndXJhdGlvbjpjb3BpZWRDb25maWd1cmF0aW9uLmdldCgpXTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXgg
YzkyMDk2OTg5NDdjMmY2ZGI4YmJmY2RlMGU2MGY3MDQ2ZWUzYjljNi4uZTgwMDk0ODQ0ZTY3MWNl
MmI3OTVlNTQxMmYwYTZlMDc3MmM3OTE3NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTkwLDEyICs5MCwxMiBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlh
bGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCiB7CiAgICAgTlNTdHJpbmcgKm5zQnVuZGxlUGF0aCA9
IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdIHN0cmluZ0J5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAIldlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUiXTsKLSAg
ICBtX2luamVjdGVkQnVuZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygo
Q0ZTdHJpbmdSZWYpbnNCdW5kbGVQYXRoKSk7CisgICAgbV9pbmplY3RlZEJ1bmRsZVBhdGguYWRv
cHQoV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKF9fYnJpZGdlIENGU3RyaW5nUmVmKW5zQnVu
ZGxlUGF0aCkpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdp
bkRpcmVjdG9yeSgpCiB7Ci0gICAgbV90ZXN0UGx1Z2luRGlyZWN0b3J5LmFkb3B0KFdLU3RyaW5n
Q3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZVBhdGhdKSk7CisgICAgbV90ZXN0UGx1Z2luRGlyZWN0b3J5LmFkb3B0KFdLU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZVBhdGhdKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBUZXN0
SW52b2NhdGlvbiYgdGVzdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmV0YWluUHRyPENGVVJM
UmVmPiB0ZXN0VVJMID0gYWRvcHRDRihXS1VSTENvcHlDRlVSTChrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCB0ZXN0LnVybCgpKSk7Ci0gICAgTlNVUkwgKmZpbHRlclVSTCA9IFsoTlNVUkwgKil0ZXN0VVJM
LmdldCgpIFVSTEJ5QXBwZW5kaW5nUGF0aEV4dGVuc2lvbjpAImpzb24iXTsKKyAgICBOU1VSTCAq
ZmlsdGVyVVJMID0gWyhfX2JyaWRnZSBOU1VSTCAqKXRlc3RVUkwuZ2V0KCkgVVJMQnlBcHBlbmRp
bmdQYXRoRXh0ZW5zaW9uOkAianNvbiJdOwogCiAgICAgTlNTdHJpbmdFbmNvZGluZyBlbmNvZGlu
ZzsKICAgICBOU1N0cmluZyAqY29udGVudEV4dGVuc2lvblN0cmluZyA9IFtbTlNTdHJpbmcgYWxs
b2NdIGluaXRXaXRoQ29udGVudHNPZlVSTDpmaWx0ZXJVUkwgdXNlZEVuY29kaW5nOiZlbmNvZGlu
ZyBlcnJvcjpOVUxMXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2Ny
aXB0Q29udHJvbGxlck1hYy5tbQppbmRleCAyMmZkMzVmMDNlOGZmNWRiMDc5NWU3YTFkMjlkMDM4
NDhjOTk3ODQ2Li4xZjRlZWQ0MzljYmQ0NGU5YWUwZTA3YTkxMmRiZjMwNzU1ZTY1ZjViIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMu
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFj
Lm1tCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXVFIgewogCiBOU1N0cmluZyAqbnNTdHJp
bmcoSlNTdHJpbmdSZWYgc3RyaW5nKQogewotICAgIHJldHVybiAoTlNTdHJpbmcgKilhZG9wdENG
KEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0cmluZykpLmF1dG9y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKEpTU3RyaW5nQ29weUNGU3Ry
aW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0cmluZykpOwogfQogCiB2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZG9Bc3luY1Rhc2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKQEAgLTIzNiw3ICsyMzYs
NyBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZl
bnRTdHJlYW0oSlNTdHJpbmdSZWYgZXZlbnRTdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7
CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdHJlYW0gPSBhZG9wdENGKEpTU3RyaW5nQ29w
eUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGV2ZW50U3RyZWFtKSk7Ci0gICAgcGxheUJh
Y2tFdmVudHMobV9jb250ZXh0LCAoTlNTdHJpbmcgKilzdHJlYW0uZ2V0KCksIGNhbGxiYWNrKTsK
KyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIChfX2JyaWRnZSBOU1N0cmluZyAqKXN0cmVh
bS5nZXQoKSwgY2FsbGJhY2spOwogfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Zmlyc3RS
ZXNwb25kZXJTdXBwcmVzc2lvbkZvcldlYlZpZXcoYm9vbCBzaG91bGRTdXBwcmVzcykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2lu
Z0luZm8ubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJh
Z2dpbmdJbmZvLm1tCmluZGV4IDFlYTJjODQzMTgyYzMwOGEyMmQ5MjNjNmIwMTJjNmExYWUwY2Ni
ZWEuLjU2NWRiMmYxMjRmOGYyYzMyNDhlOWMzMjFiY2M4ZTljOGRkY2I4ZTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8u
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdn
aW5nSW5mby5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiRXZlbnRTZW5kZXJQcm94eS5o
IgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW1wb3J0ICJUZXN0Q29udHJvbGxlci5o
IgorI2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmlldy5oIgogCiB1c2luZyBuYW1lc3BhY2UgV1RS
OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVu
bmVyUGFzdGVib2FyZC5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RS
dW5uZXJQYXN0ZWJvYXJkLm1tCmluZGV4IDYzZGYxYTNjNmJiMWFiMTVhNWVkZWMyZjY4Y2U2MDAx
NjhjNDUyN2UuLmEyNjE4MGUwMWY0MTE4NTA2OTlkMWZjYmExMWFjOWQ2NTY2M2MzNWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJQYXN0ZWJv
YXJkLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJQ
YXN0ZWJvYXJkLm1tCkBAIC0xODksOCArMTg5LDggQEAgLSAoQk9PTClzZXRQcm9wZXJ0eUxpc3Q6
KGlkKXByb3BlcnR5TGlzdCBmb3JUeXBlOihOU1N0cmluZyAqKWRhdGFUeXBlCiB7CiAgICAgQ0ZE
YXRhUmVmIGRhdGEgPSAwOwogICAgIGlmIChwcm9wZXJ0eUxpc3QpCi0gICAgICAgIGRhdGEgPSBD
RlByb3BlcnR5TGlzdENyZWF0ZVhNTERhdGEoMCwgcHJvcGVydHlMaXN0KTsKLSAgICBCT09MIHJl
c3VsdCA9IFtzZWxmIHNldERhdGE6KE5TRGF0YSAqKWRhdGEgZm9yVHlwZTpkYXRhVHlwZV07Cisg
ICAgICAgIGRhdGEgPSBDRlByb3BlcnR5TGlzdENyZWF0ZVhNTERhdGEoMCwgKF9fYnJpZGdlIENG
VHlwZVJlZilwcm9wZXJ0eUxpc3QpOworICAgIEJPT0wgcmVzdWx0ID0gW3NlbGYgc2V0RGF0YToo
X19icmlkZ2UgTlNEYXRhICopZGF0YSBmb3JUeXBlOmRhdGFUeXBlXTsKICAgICBpZiAoZGF0YSkK
ICAgICAgICAgQ0ZSZWxlYXNlKGRhdGEpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0yMDUsNyAr
MjA1LDcgQEAgLSAoQk9PTClzZXRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGZvclR5cGU6KE5T
U3RyaW5nICopZGF0YVR5cGUKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGF0YSA9IENGU3Ry
aW5nQ3JlYXRlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbigwLCAoQ0ZTdHJpbmdSZWYpc3RyaW5nLCBr
Q0ZTdHJpbmdFbmNvZGluZ1VURjgsIDApOwogICAgIH0KLSAgICBCT09MIHJlc3VsdCA9IFtzZWxm
IHNldERhdGE6KE5TRGF0YSAqKWRhdGEgZm9yVHlwZTpkYXRhVHlwZV07CisgICAgQk9PTCByZXN1
bHQgPSBbc2VsZiBzZXREYXRhOihfX2JyaWRnZSBOU0RhdGEgKilkYXRhIGZvclR5cGU6ZGF0YVR5
cGVdOwogICAgIGlmIChkYXRhKQogICAgICAgICBDRlJlbGVhc2UoZGF0YSk7CiAgICAgcmV0dXJu
IHJlc3VsdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21haW4ubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9tYWluLm1tCmluZGV4IDY2MzdkYjJkNzg3MTY1
NjUzZGQxYTRhOThkZmQ0OThiMjk2ZTcyNTkuLjZiMzViOTYyZmY0ZDM4OWJhNjBkMWI1MTMzMzY4
MmVmMjkxNjYyNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21haW4u
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbQpAQCAtNTcsMTUgKzU3
LDEyIEBAIHN0YXRpYyB2b2lkIGRpc2FibGVBcHBOYXBJblVJUHJvY2VzcygpCiAKIGludCBtYWlu
KGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiB7Ci0gICAgTlNBdXRvcmVsZWFzZVBvb2wg
KnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLSAgICBbTlNBcHBsaWNh
dGlvbiBzaGFyZWRBcHBsaWNhdGlvbl07Ci0gICAgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXNGb3JUZXN0aW5nKCk7Ci0gICAgZGlzYWJsZUFwcE5hcEluVUlQcm9jZXNzKCk7IC8vIEZvciBz
ZWNvbmRhcnkgcHJvY2Vzc2VzLCBhcHAgbmFwIGlzIGRpc2FibGVkIHVzaW5nIFdLUHJlZmVyZW5j
ZXNTZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpLgotCi0g
ICAgeworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBbTlNBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl07CisgICAgICAgIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9y
VGVzdGluZygpOworICAgICAgICBkaXNhYmxlQXBwTmFwSW5VSVByb2Nlc3MoKTsgLy8gRm9yIHNl
Y29uZGFyeSBwcm9jZXNzZXMsIGFwcCBuYXAgaXMgZGlzYWJsZWQgdXNpbmcgV0tQcmVmZXJlbmNl
c1NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCkuCiAgICAg
ICAgIFdUUjo6VGVzdENvbnRyb2xsZXIgY29udHJvbGxlcihhcmdjLCBhcmd2KTsKICAgICB9Ci0g
ICAgW3Bvb2wgZHJhaW5dOwogICAgIHJldHVybiAwOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341841</attachid>
            <date>2018-06-02 03:56:39 -0700</date>
            <delta_ts>2018-06-02 16:02:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186227-20180602035639.patch</filename>
            <type>text/plain</type>
            <size>86187</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjE4NWM4NWRjMDA0ODU3MGQ1MzlhNjc0YjJjYzMxZGJlOGUzM2FjLi41YTE4OTllMGMxZGI2NTY3
OGIxMjcxZmRhZjI5MWU1NzM5OWIxNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOC0wNi0wMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBVcGRhdGUgc29tZSBjb2RlIHRvIGJlIG1vcmUgQVJDLWNvbXBhdGli
bGUgdG8gcHJlcGFyZSBmb3IgZnV0dXJlIEFSQyBhZG9wdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MjI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0Lm1tOgorICAgICAg
ICAoLVtKU0NvbnRleHQgbmFtZV0pOiBVc2UgQ0ZCcmlkZ2luZ1JlbGVhc2UgaW5zdGVhZCBvZiBh
dXRvcmVsZWFzZS4KKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKHZhbHVlVG9P
YmplY3RXaXRob3V0Q29weSk6IFVzZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9y
ZWxlYXNlLgorICAgICAgICAoY29udGFpbmVyVmFsdWVUb09iamVjdCk6IFVzZSBhZG9wdENGIGlu
c3RlYWQgb2YgYXV0b3JlbGVhc2UuIFRoaXMgaXMgbm90IG9ubHkgbW9yZQorICAgICAgICBBUkMt
Y29tcGF0aWJsZSwgYnV0IG1vcmUgZWZmaWNpZW50LgorICAgICAgICAodmFsdWVUb1N0cmluZyk6
IFVzZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9yZWxlYXNlLgorCiAyMDE4LTA2
LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0aGUgd2F0Y2hPUyBidWlsZCBhZnRlciByMjMyMzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk5YjgwN2Jm
MzAxMzFhMGMxMGJkNGM3M2RlZGJiNTA5ZmZlYTFiYi4uYmZjZDFjNDdmNzA1NjBmYWJjZTgzNjQw
OWNmMDdkYTk3ZTYyMTk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA2LTAy
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVwZGF0
ZSBzb21lIGNvZGUgdG8gYmUgbW9yZSBBUkMtY29tcGF0aWJsZSB0byBwcmVwYXJlIGZvciBmdXR1
cmUgQVJDIGFkb3B0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODYyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpjSW5z
dGFuY2U6On5PYmpjSW5zdGFuY2UpOiBVc2UgQGF1dG9yZWxlYXNlcG9vbCBpbnN0ZWFkIG9mIE5T
QXV0b3JlbGVhc2VQb29sLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbToK
KyAgICAgICAgKC1bV0FLVmlldyBfYXBwZW5kRGVzY3JpcHRpb25Ub1N0cmluZzphdExldmVsOl0p
OiBEaXR0by4KKwogMjAxOC0wNi0wMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBFZGl0b3IgY2FuIGhvbGQgcmVmZXJlbmNlcyB0byBEb2N1bWVudHMgYWZ0ZXIg
eW91IG5hdmlnYXRlIGF3YXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0MTFiNDA5
YjYyOTIyYjZlNmQ1ZTM0NzVkNTk5OTY0MTAyNjRiYzA0Li5iZjQzYzVkZWQ0YTE1NGNlNjRmMGNh
NGJkYzQ4ZjFkYjI4NzcyZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTgtMDYtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gVXBkYXRlIHNvbWUgY29kZSB0byBiZSBtb3JlIEFSQy1jb21wYXRpYmxl
IHRvIHByZXBhcmUgZm9yIGZ1dHVyZSBBUkMgYWRvcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjIyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJLaXRFcnJvcnMubToKKyAgICAg
ICAgKCtbTlNFcnJvciBfcmVnaXN0ZXJXZWJLaXRFcnJvcnNdKTogVXNlIEBhdXRvcmVsZWFzZXBv
b2wgaW5zdGVhZCBvZiBOU0F1dG9yZWxlYXNlUG9vbC4KKyAgICAgICAgKiBQbHVnaW5zL1dlYlBs
dWdpbkRhdGFiYXNlLm1tOgorICAgICAgICAoLVtXZWJQbHVnaW5EYXRhYmFzZSByZWZyZXNoXSk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0U3RhdHVzYmFyVGV4dCk6IERpdHRvLgorCiAyMDE4
LTA2LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjIzMTQ1Nik6IENvbGxvcXV5IGlzIGJyb2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dC5tbQppbmRleCBjNjMyZjM5NWMwMmFiMTZlOTkyMzYyOGZjZGFjYTgzYzBhYjVh
ZmU5Li5hZGI3ODAxMzhkODU3OTNhYzY5YzRjYzRiYWQ4ZmIyODhmNzMyMTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQpAQCAtMTk3LDcgKzE5Nyw3IEBAIC0gKE5TU3Ry
aW5nICopbmFtZQogICAgIGlmICghbmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHJl
dHVybiAoTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG5hbWUpKS5hdXRvcmVsZWFzZSgpOworICAgIHJldHVybiBDRkJyaWRnaW5nUmVs
ZWFzZShKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBuYW1lKSk7CiB9
CiAKIC0gKHZvaWQpc2V0TmFtZTooTlNTdHJpbmcgKiluYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWUubW0KaW5kZXggZTdlMzI5Y2FmYjk4OWZiYzBiY2RlYzBiMzBiZGFhNzNiZmVkMjE2
NC4uYzhmNDk3YTBjMTRiMDQ4YTExNGQyZTc0MGNlYjE5OWI2MzNjM2FiYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpAQCAtNjg2LDkgKzY4Niw4IEBAIHN0YXRpYyBKU0NvbnRh
aW5lckNvbnZlcnRvcjo6VGFzayB2YWx1ZVRvT2JqZWN0V2l0aG91dENvcHkoSlNHbG9iYWxDb250
ZXh0UmVmIGNvCiAgICAgICAgIH0gZWxzZSBpZiAoSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIHZh
bHVlKSkgewogICAgICAgICAgICAgLy8gV291bGQgYmUgbmljZSB0byB1bmlxdWUgc3RyaW5ncywg
dG9vLgogICAgICAgICAgICAgSlNTdHJpbmdSZWYganNzdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIHZhbHVlLCAwKTsKLSAgICAgICAgICAgIE5TU3RyaW5nICogc3RyaW5nTlMg
PSAoTlNTdHJpbmcgKilKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBq
c3N0cmluZyk7CisgICAgICAgICAgICBwcmltaXRpdmUgPSBDRkJyaWRnaW5nUmVsZWFzZShKU1N0
cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc3N0cmluZykpOwogICAgICAg
ICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzc3RyaW5nKTsKLSAgICAgICAgICAgIHByaW1pdGl2ZSA9
IFtzdHJpbmdOUyBhdXRvcmVsZWFzZV07CiAgICAgICAgIH0gZWxzZSBpZiAoSlNWYWx1ZUlzTnVs
bChjb250ZXh0LCB2YWx1ZSkpCiAgICAgICAgICAgICBwcmltaXRpdmUgPSBbTlNOdWxsIG51bGxd
OwogICAgICAgICBlbHNlIHsKQEAgLTc0OSw3ICs3NDgsNyBAQCBzdGF0aWMgaWQgY29udGFpbmVy
VmFsdWVUb09iamVjdChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNDb250YWluZXJDb252
ZXJ0bwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewog
ICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSA9IEpTUHJvcGVydHlOYW1l
QXJyYXlHZXROYW1lQXRJbmRleChwcm9wZXJ0eU5hbWVBcnJheSwgaSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGlkIG9iamMgPSBjb252ZXJ0b3IuY29udmVydChKU09iamVjdEdldFByb3BlcnR5KGNv
bnRleHQsIGpzLCBwcm9wZXJ0eU5hbWUsIDApKSkKLSAgICAgICAgICAgICAgICAgICAgZGljdGlv
bmFyeVtbKE5TU3RyaW5nICopSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcHJvcGVydHlOYW1lKSBhdXRvcmVsZWFzZV1dID0gb2JqYzsKKyAgICAgICAgICAgICAgICAg
ICAgZGljdGlvbmFyeVsoX19icmlkZ2UgTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHByb3BlcnR5TmFtZSkpLmdldCgpXSA9IG9iamM7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNl
KHByb3BlcnR5TmFtZUFycmF5KTsKQEAgLTc5Nyw5ICs3OTYsOSBAQCBpZCB2YWx1ZVRvU3RyaW5n
KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVm
KiBleGNlcAogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gc3RyaW5nQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGpzc3RyaW5nKSk7CisgICAgTlNTdHJpbmcgKnN0cmluZyA9IENGQnJpZGdp
bmdSZWxlYXNlKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpzc3Ry
aW5nKSk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGpzc3RyaW5nKTsKLSAgICByZXR1cm4gKE5TU3Ry
aW5nICopc3RyaW5nQ0YuYXV0b3JlbGVhc2UoKTsKKyAgICByZXR1cm4gc3RyaW5nOwogfQogCiBp
ZCB2YWx1ZVRvRGF0ZShKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfaW5zdGFuY2UubW0KaW5kZXggYjdkMjRkNDRhMjRhNmIwNTUyNzc0NWY2MWU5NDczN2RlOWI3
OTY4Yi4uZDhmYWI3NjU3MGE3ZGFkNjFhYThlYzliZjVkZjRjYTZmYTViZGZmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCkBAIC0xMjEsMTYgKzEyMSwx
NCBAQCBSZWZQdHI8T2JqY0luc3RhbmNlPiBPYmpjSW5zdGFuY2U6OmNyZWF0ZShpZCBpbnN0YW5j
ZSwgUmVmUHRyPFJvb3RPYmplY3Q+JiYgcm9vdAogT2JqY0luc3RhbmNlOjp+T2JqY0luc3RhbmNl
KCkgCiB7CiAgICAgLy8gQm90aCAtZmluYWxpemVGb3JXZWJTY3JpcHQgYW5kIC1kZWFsbG9jLy1m
aW5hbGl6ZSBvZiBfaW5zdGFuY2UgbWF5IHJlcXVpcmUgYXV0b3JlbGVhc2UgcG9vbHMuCi0gICAg
TlNBdXRvcmVsZWFzZVBvb2wqIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0
XTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgQVNTRVJUKF9pbnN0YW5jZSk7Cisg
ICAgICAgIHdyYXBwZXJDYWNoZSgpLnJlbW92ZShfaW5zdGFuY2UuZ2V0KCkpOwogCi0gICAgQVNT
RVJUKF9pbnN0YW5jZSk7Ci0gICAgd3JhcHBlckNhY2hlKCkucmVtb3ZlKF9pbnN0YW5jZS5nZXQo
KSk7Ci0KLSAgICBpZiAoW19pbnN0YW5jZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGZpbmFsaXplRm9yV2ViU2NyaXB0KV0pCi0gICAgICAgIFtfaW5zdGFuY2UuZ2V0KCkgcGVy
Zm9ybVNlbGVjdG9yOkBzZWxlY3RvcihmaW5hbGl6ZUZvcldlYlNjcmlwdCldOwotICAgIF9pbnN0
YW5jZSA9IDA7Ci0KLSAgICBbcG9vbCBkcmFpbl07CisgICAgICAgIGlmIChbX2luc3RhbmNlLmdl
dCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZmluYWxpemVGb3JXZWJTY3JpcHQpXSkK
KyAgICAgICAgICAgIFtfaW5zdGFuY2UuZ2V0KCkgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rvcihm
aW5hbGl6ZUZvcldlYlNjcmlwdCldOworICAgICAgICBfaW5zdGFuY2UgPSAwOworICAgIH0KIH0K
IAogdm9pZCBPYmpjSW5zdGFuY2U6OnZpcnR1YWxCZWdpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dBS1ZpZXcubW0KaW5kZXggNDJkYzA0ODJiNDU1MThlYTc2YTM2YTc0NWZm
ZjI1MzJjNDE1ZWY3OC4uYmIzYTc1MWUwNTkyZTA1NTM5ZjU3NDdhOGZmYjAwY2VhY2U4MDVhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLVmlldy5tbQpAQCAtNzc2LDIw
ICs3NzYsMTggQEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogCiAtICh2b2lkKV9hcHBlbmRE
ZXNjcmlwdGlvblRvU3RyaW5nOihOU011dGFibGVTdHJpbmcgKilpbmZvIGF0TGV2ZWw6KGludCls
ZXZlbAogewotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9v
bCBhbGxvY10gaW5pdF07CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIGlmIChbaW5m
byBsZW5ndGhdKQorICAgICAgICAgICAgW2luZm8gYXBwZW5kU3RyaW5nOkAiXG4iXTsKIAotICAg
IGlmIChbaW5mbyBsZW5ndGhdICE9IDApCi0gICAgICAgIFtpbmZvIGFwcGVuZFN0cmluZzpAIlxu
Il07CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGxldmVsOyBpKyspCisgICAgICAgICAg
ICBbaW5mbyBhcHBlbmRTdHJpbmc6QCIgICB8ICJdOwogCi0gICAgZm9yIChpbnQgaSA9IDE7IGkg
PD0gbGV2ZWw7IGkrKykKLSAgICAgICAgW2luZm8gYXBwZW5kU3RyaW5nOkAiICAgfCAiXTsKKyAg
ICAgICAgW2luZm8gYXBwZW5kU3RyaW5nOltzZWxmIGRlc2NyaXB0aW9uXV07CiAKLSAgICBbaW5m
byBhcHBlbmRTdHJpbmc6W3NlbGYgZGVzY3JpcHRpb25dXTsKLQotICAgIGZvciAoV0FLVmlldyAq
c3VidmlldyBpbiBbc2VsZiBzdWJ2aWV3c10pCi0gICAgICAgIFtzdWJ2aWV3IF9hcHBlbmREZXNj
cmlwdGlvblRvU3RyaW5nOmluZm8gYXRMZXZlbDpsZXZlbCArIDFdOwotCi0gICAgW3Bvb2wgcmVs
ZWFzZV07CisgICAgICAgIGZvciAoV0FLVmlldyAqc3VidmlldyBpbiBbc2VsZiBzdWJ2aWV3c10p
CisgICAgICAgICAgICBbc3VidmlldyBfYXBwZW5kRGVzY3JpcHRpb25Ub1N0cmluZzppbmZvIGF0
TGV2ZWw6bGV2ZWwgKyAxXTsKKyAgICB9CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYktpdEVycm9ycy5tCmluZGV4IGZjNTE5MTU0ZWE0YzYzYWJhN2VhZWJjMzli
ZGQ2MDZkN2RjZGMyZmEuLjA3ZWY1NmU4Nzg5Njc5MjRlZmYyYmZmNzJjNWZmNjM5N2NkZjdhMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0RXJyb3JzLm0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRFcnJvcnMubQpAQCAtNjYs
MzAgKzY2LDI4IEBAICsgKHZvaWQpX3JlZ2lzdGVyV2ViS2l0RXJyb3JzCiB7CiAgICAgc3RhdGlj
IGRpc3BhdGNoX29uY2VfdCBmbGFnOwogICAgIGRpc3BhdGNoX29uY2UoJmZsYWcsIF57Ci0gICAg
ICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10g
aW5pdF07Ci0KLSAgICAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgotICAgICAgICAgICAgLy8gUG9saWN5IGVycm9ycwot
ICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkNhbm5vdFNob3dNSU1FVHlwZSwgICAg
ICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yQ2Fubm90
U2hvd01JTUVUeXBlXSwKLSAgICAgICAgICAgIFdlYktpdEVycm9yRGVzY3JpcHRpb25DYW5ub3RT
aG93VVJMLCAgICAgICAgICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OiBX
ZWJLaXRFcnJvckNhbm5vdFNob3dVUkxdLAotICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlw
dGlvbkZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsICAgW05TTnVtYmVyIG51bWJl
cldpdGhJbnQ6IFdlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZV0s
Ci0gICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uQ2Fubm90VXNlUmVzdHJpY3RlZFBv
cnQsICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydF0sCi0gICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9u
RnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciwgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEludDogV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2VkQnlDb250ZW50RmlsdGVyXSwKLQotICAg
ICAgICAgICAgLy8gUGx1Zy1pbiBhbmQgamF2YSBlcnJvcnMKLSAgICAgICAgICAgIFdlYktpdEVy
cm9yRGVzY3JpcHRpb25DYW5ub3RGaW5kUGx1Z2luLCAgICAgICAgICAgICAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoSW50OiBXZWJLaXRFcnJvckNhbm5vdEZpbmRQbHVnSW5dLAotICAgICAg
ICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkNhbm5vdExvYWRQbHVnaW4sICAgICAgICAgICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yQ2Fubm90TG9hZFBs
dWdJbl0sCi0gICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uSmF2YVVuYXZhaWxhYmxl
LCAgICAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJy
b3JKYXZhVW5hdmFpbGFibGVdLAotICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvblBs
dWdJbkNhbmNlbGxlZENvbm5lY3Rpb24sICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJ
bnQ6IFdlYktpdEVycm9yUGx1Z0luQ2FuY2VsbGVkQ29ubmVjdGlvbl0sCi0gICAgICAgICAgICBX
ZWJLaXRFcnJvckRlc2NyaXB0aW9uUGx1Z0luV2lsbEhhbmRsZUxvYWQsICAgICAgICAgICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9h
ZF0sCi0KLSAgICAgICAgICAgIC8vIEdlb2xvY2F0aW9uIGVycm9ycwotICAgICAgICAgICAgV2Vi
S2l0RXJyb3JEZXNjcmlwdGlvbkdlb2xvY2F0aW9uTG9jYXRpb25Vbmtub3duLCAgICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yR2VvbG9jYXRpb25Mb2NhdGlvblVu
a25vd25dLAotICAgICAgICAgICAgbmlsXTsKLQotICAgICAgICBbTlNFcnJvciBfd2Via2l0X2Fk
ZEVycm9yc1dpdGhDb2Rlc0FuZERlc2NyaXB0aW9uczpkaWN0IGluRG9tYWluOldlYktpdEVycm9y
RG9tYWluXTsKLQotICAgICAgICBbcG9vbCBkcmFpbl07CisgICAgICAgIEBhdXRvcmVsZWFzZXBv
b2wgeworICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgorICAgICAgICAgICAgICAgIC8vIFBvbGljeSBlcnJv
cnMKKyAgICAgICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uQ2Fubm90U2hvd01JTUVU
eXBlLCAgICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJy
b3JDYW5ub3RTaG93TUlNRVR5cGVdLAorICAgICAgICAgICAgICAgIFdlYktpdEVycm9yRGVzY3Jp
cHRpb25DYW5ub3RTaG93VVJMLCAgICAgICAgICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoSW50OiBXZWJLaXRFcnJvckNhbm5vdFNob3dVUkxdLAorICAgICAgICAgICAgICAgIFdl
YktpdEVycm9yRGVzY3JpcHRpb25GcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlLCAg
IFtOU051bWJlciBudW1iZXJXaXRoSW50OiBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2VdLAorICAgICAgICAgICAgICAgIFdlYktpdEVycm9yRGVzY3JpcHRpb25D
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
SW50OiBXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0XSwKKyAgICAgICAgICAgICAg
ICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uRnJhbWVMb2FkQmxvY2tlZEJ5Q29udGVudEZpbHRlciwg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JGcmFtZUxvYWRCbG9ja2Vk
QnlDb250ZW50RmlsdGVyXSwKKworICAgICAgICAgICAgICAgIC8vIFBsdWctaW4gYW5kIGphdmEg
ZXJyb3JzCisgICAgICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkNhbm5vdEZpbmRQ
bHVnaW4sICAgICAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktp
dEVycm9yQ2Fubm90RmluZFBsdWdJbl0sCisgICAgICAgICAgICAgICAgV2ViS2l0RXJyb3JEZXNj
cmlwdGlvbkNhbm5vdExvYWRQbHVnaW4sICAgICAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6IFdlYktpdEVycm9yQ2Fubm90TG9hZFBsdWdJbl0sCisgICAgICAgICAgICAg
ICAgV2ViS2l0RXJyb3JEZXNjcmlwdGlvbkphdmFVbmF2YWlsYWJsZSwgICAgICAgICAgICAgICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6IFdlYktpdEVycm9ySmF2YVVuYXZhaWxhYmxl
XSwKKyAgICAgICAgICAgICAgICBXZWJLaXRFcnJvckRlc2NyaXB0aW9uUGx1Z0luQ2FuY2VsbGVk
Q29ubmVjdGlvbiwgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJy
b3JQbHVnSW5DYW5jZWxsZWRDb25uZWN0aW9uXSwKKyAgICAgICAgICAgICAgICBXZWJLaXRFcnJv
ckRlc2NyaXB0aW9uUGx1Z0luV2lsbEhhbmRsZUxvYWQsICAgICAgICAgICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZF0sCisKKyAg
ICAgICAgICAgICAgICAvLyBHZW9sb2NhdGlvbiBlcnJvcnMKKyAgICAgICAgICAgICAgICBXZWJL
aXRFcnJvckRlc2NyaXB0aW9uR2VvbG9jYXRpb25Mb2NhdGlvblVua25vd24sICAgICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEludDogV2ViS2l0RXJyb3JHZW9sb2NhdGlvbkxvY2F0aW9uVW5r
bm93bl0sCisgICAgICAgICAgICAgICAgbmlsXTsKKworICAgICAgICAgICAgW05TRXJyb3IgX3dl
YmtpdF9hZGRFcnJvcnNXaXRoQ29kZXNBbmREZXNjcmlwdGlvbnM6ZGljdCBpbkRvbWFpbjpXZWJL
aXRFcnJvckRvbWFpbl07CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubW0KaW5kZXggNDVh
ZmFkMzAyMWJkMjcyOTg5YmIwNzQ0OGUwOWZlNGZmZDBmZjgzOC4uZDg2ZjIzMTljNGQ3Nzg5Njg0
YTdkZmEwMzBhZGIzMDA5Y2ZmMjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tCkBAIC0yNDgsNzkgKzI0OCw4MCBAQCAt
ICh2b2lkKXJlZnJlc2gKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBkb2VzIGEgYml0IG9mIGF1dG9y
ZWxlYXNpbmcsIHNvIGNyZWF0ZSBhbiBhdXRvcmVsZWFzZSBwb29sIHRvIGVuc3VyZSB0aGF0IGNh
bGxpbmcKICAgICAvLyAtcmVmcmVzaCBtdWx0aXBsZSB0aW1lcyBkb2VzIG5vdCBibG9hdCB0aGUg
ZGVmYXVsdCBwb29sLgotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxl
YXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgCi0gICAgLy8gQ3JlYXRlIG1hcCBmcm9tIHBsdWct
aW4gcGF0aCB0byBXZWJCYXNlUGx1Z2luUGFja2FnZQotICAgIGlmICghcGx1Z2lucykKLSAgICAg
ICAgcGx1Z2lucyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eToxMl07Ci0KLSAgICAvLyBGaW5kIGFsbCBwbHVnLWlucyBvbiBkaXNrCi0gICAgTlNNdXRhYmxl
U2V0ICpuZXdQbHVnaW5zID0gW3NlbGYgX3NjYW5Gb3JOZXdQbHVnaW5zXTsKLQotICAgIC8vIEZp
bmQgcGx1Zy1pbnMgdG8gcmVtb3ZlIGZyb20gZGF0YWJhc2UgKGkuZS4sIHBsdWctaW5zIHRoYXQg
bm8gbG9uZ2VyIGV4aXN0IG9uIGRpc2spCi0gICAgTlNNdXRhYmxlU2V0ICpwbHVnaW5zVG9SZW1v
dmUgPSBbTlNNdXRhYmxlU2V0IHNldF07Ci0gICAgTlNFbnVtZXJhdG9yICpwbHVnaW5FbnVtZXJh
dG9yID0gW3BsdWdpbnMgb2JqZWN0RW51bWVyYXRvcl07Ci0gICAgV2ViQmFzZVBsdWdpblBhY2th
Z2UgKnBsdWdpbjsKLSAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVtZXJhdG9yIG5leHRP
YmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAgLy8gQW55IHBsdWctaW5zIHRoYXQgd2VyZSByZW1v
dmVkIGZyb20gZGlzayBzaW5jZSB0aGUgbGFzdCByZWZyZXNoIHNob3VsZCBiZSByZW1vdmVkIGZy
b20KLSAgICAgICAgLy8gdGhlIGRhdGFiYXNlLgotICAgICAgICBpZiAoIVtuZXdQbHVnaW5zIGNv
bnRhaW5zT2JqZWN0OnBsdWdpbl0pCi0gICAgICAgICAgICBbcGx1Z2luc1RvUmVtb3ZlIGFkZE9i
amVjdDpwbHVnaW5dOwotICAgICAgICAgICAgCi0gICAgICAgIC8vIFJlbW92ZSBldmVyeSBtZW1i
ZXIgb2YgJ3BsdWdpbnMnIGZyb20gJ25ld1BsdWdpbnMnLiAgQWZ0ZXIgdGhpcyBsb29wIGV4aXRz
LCAnbmV3UGx1Z2lucycKLSAgICAgICAgLy8gd2lsbCBiZSB0aGUgc2V0IG9mIG5ldyBwbHVnLWlu
cyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UuCi0gICAgICAgIFtuZXdQbHVn
aW5zIHJlbW92ZU9iamVjdDpwbHVnaW5dOwotICAgIH0KKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgLy8gQ3JlYXRlIG1hcCBmcm9tIHBsdWctaW4gcGF0aCB0byBXZWJCYXNlUGx1Z2lu
UGFja2FnZQorICAgICAgICBpZiAoIXBsdWdpbnMpCisgICAgICAgICAgICBwbHVnaW5zID0gW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjEyXTsKKworICAgICAg
ICAvLyBGaW5kIGFsbCBwbHVnLWlucyBvbiBkaXNrCisgICAgICAgIE5TTXV0YWJsZVNldCAqbmV3
UGx1Z2lucyA9IFtzZWxmIF9zY2FuRm9yTmV3UGx1Z2luc107CisKKyAgICAgICAgLy8gRmluZCBw
bHVnLWlucyB0byByZW1vdmUgZnJvbSBkYXRhYmFzZSAoaS5lLiwgcGx1Zy1pbnMgdGhhdCBubyBs
b25nZXIgZXhpc3Qgb24gZGlzaykKKyAgICAgICAgTlNNdXRhYmxlU2V0ICpwbHVnaW5zVG9SZW1v
dmUgPSBbTlNNdXRhYmxlU2V0IHNldF07CisgICAgICAgIE5TRW51bWVyYXRvciAqcGx1Z2luRW51
bWVyYXRvciA9IFtwbHVnaW5zIG9iamVjdEVudW1lcmF0b3JdOworICAgICAgICBXZWJCYXNlUGx1
Z2luUGFja2FnZSAqcGx1Z2luOworICAgICAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVt
ZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKKyAgICAgICAgICAgIC8vIEFueSBwbHVnLWlu
cyB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIGRpc2sgc2luY2UgdGhlIGxhc3QgcmVmcmVzaCBzaG91
bGQgYmUgcmVtb3ZlZCBmcm9tCisgICAgICAgICAgICAvLyB0aGUgZGF0YWJhc2UuCisgICAgICAg
ICAgICBpZiAoIVtuZXdQbHVnaW5zIGNvbnRhaW5zT2JqZWN0OnBsdWdpbl0pCisgICAgICAgICAg
ICAgICAgW3BsdWdpbnNUb1JlbW92ZSBhZGRPYmplY3Q6cGx1Z2luXTsKKworICAgICAgICAgICAg
Ly8gUmVtb3ZlIGV2ZXJ5IG1lbWJlciBvZiAncGx1Z2lucycgZnJvbSAnbmV3UGx1Z2lucycuIEFm
dGVyIHRoaXMgbG9vcCBleGl0cywgJ25ld1BsdWdpbnMnCisgICAgICAgICAgICAvLyB3aWxsIGJl
IHRoZSBzZXQgb2YgbmV3IHBsdWctaW5zIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkYXRh
YmFzZS4KKyAgICAgICAgICAgIFtuZXdQbHVnaW5zIHJlbW92ZU9iamVjdDpwbHVnaW5dOworICAg
ICAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaWYgKFtuZXdQbHVnaW5zIGNvdW50XSA+
IDApCi0gICAgICAgIExPRyhQbHVnaW5zLCAiTmV3IHBsdWdpbnM6XG4lQCIsIG5ld1BsdWdpbnMp
OwotICAgIGlmIChbcGx1Z2luc1RvUmVtb3ZlIGNvdW50XSA+IDApCi0gICAgICAgIExPRyhQbHVn
aW5zLCAiUmVtb3ZlZCBwbHVnaW5zOlxuJUAiLCBwbHVnaW5zVG9SZW1vdmUpOworICAgICAgICBp
ZiAoW25ld1BsdWdpbnMgY291bnRdID4gMCkKKyAgICAgICAgICAgIExPRyhQbHVnaW5zLCAiTmV3
IHBsdWdpbnM6XG4lQCIsIG5ld1BsdWdpbnMpOworICAgICAgICBpZiAoW3BsdWdpbnNUb1JlbW92
ZSBjb3VudF0gPiAwKQorICAgICAgICAgICAgTE9HKFBsdWdpbnMsICJSZW1vdmVkIHBsdWdpbnM6
XG4lQCIsIHBsdWdpbnNUb1JlbW92ZSk7CiAjZW5kaWYKIAotICAgIC8vIFJlbW92ZSBwbHVnaW5z
IGZyb20gZGF0YWJhc2UKLSAgICBwbHVnaW5FbnVtZXJhdG9yID0gW3BsdWdpbnNUb1JlbW92ZSBv
YmplY3RFbnVtZXJhdG9yXTsKLSAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVtZXJhdG9y
IG5leHRPYmplY3RdKSAhPSBuaWwpIAotICAgICAgICBbc2VsZiBfcmVtb3ZlUGx1Z2luOnBsdWdp
bl07Ci0gICAgCi0gICAgLy8gQWRkIG5ldyBwbHVnaW5zIHRvIGRhdGFiYXNlCi0gICAgcGx1Z2lu
RW51bWVyYXRvciA9IFtuZXdQbHVnaW5zIG9iamVjdEVudW1lcmF0b3JdOwotICAgIHdoaWxlICgo
cGx1Z2luID0gW3BsdWdpbkVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKLSAgICAgICAg
W3NlbGYgX2FkZFBsdWdpbjpwbHVnaW5dOwotCi0gICAgLy8gQnVpbGQgYSBsaXN0IG9mIE1JTUUg
dHlwZXMuCi0gICAgTlNNdXRhYmxlU2V0ICpNSU1FVHlwZXMgPSBbW05TTXV0YWJsZVNldCBhbGxv
Y10gaW5pdF07Ci0gICAgcGx1Z2luRW51bWVyYXRvciA9IFtwbHVnaW5zIG9iamVjdEVudW1lcmF0
b3JdOwotICAgIHdoaWxlICgocGx1Z2luID0gW3BsdWdpbkVudW1lcmF0b3IgbmV4dE9iamVjdF0p
KSB7Ci0gICAgICAgIGNvbnN0IFBsdWdpbkluZm8mIHBsdWdpbkluZm8gPSBbcGx1Z2luIHBsdWdp
bkluZm9dOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBsdWdpbkluZm8ubWltZXMu
c2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBbTUlNRVR5cGVzIGFkZE9iamVjdDpwbHVnaW5JbmZv
Lm1pbWVzW2ldLnR5cGVdOwotICAgIH0KLSAgICAKLSAgICAvLyBSZWdpc3RlciBwbHVnLWluIHZp
ZXdzIGFuZCByZXByZXNlbnRhdGlvbnMuCi0gICAgTlNFbnVtZXJhdG9yICpNSU1FRW51bWVyYXRv
ciA9IFtNSU1FVHlwZXMgb2JqZWN0RW51bWVyYXRvcl07Ci0gICAgTlNTdHJpbmcgKk1JTUVUeXBl
OwotICAgIHdoaWxlICgoTUlNRVR5cGUgPSBbTUlNRUVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9
IG5pbCkgewotICAgICAgICBbcmVnaXN0ZXJlZE1JTUVUeXBlcyBhZGRPYmplY3Q6TUlNRVR5cGVd
OwotCi0gICAgICAgIGlmIChbV2ViVmlldyBjYW5TaG93TUlNRVR5cGVBc0hUTUw6TUlNRVR5cGVd
KQotICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgcGx1Zy1pbnMgdG8gb3ZlcnJpZGUgb3VyIGNv
cmUgSFRNTCB0eXBlcy4KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBwbHVnaW4gPSBb
c2VsZiBwbHVnaW5Gb3JNSU1FVHlwZTpNSU1FVHlwZV07Ci0gICAgICAgIGlmIChbcGx1Z2luIGlz
SmF2YVBsdWdJbl0pCi0gICAgICAgICAgICAvLyBEb24ndCByZWdpc3RlciB0aGUgSmF2YSBwbHVn
LWluIGZvciBhIGRvY3VtZW50IHZpZXcgc2luY2UgSmF2YSBmaWxlcyBzaG91bGQgYmUgZG93bmxv
YWRlZCB3aGVuIG5vdCBlbWJlZGRlZC4KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBp
ZiAoW3BsdWdpbiBpc1F1aWNrVGltZVBsdWdJbl0gJiYgW1tXZWJGcmFtZVZpZXcgX3ZpZXdUeXBl
c0FsbG93SW1hZ2VUeXBlT21pc3Npb246Tk9dIG9iamVjdEZvcktleTpNSU1FVHlwZV0pCi0gICAg
ICAgICAgICAvLyBEb24ndCBhbGxvdyB0aGUgUVQgcGx1Zy1pbiB0byBvdmVycmlkZSBhbnkgdHlw
ZXMgYmVjYXVzZSBpdCBjbGFpbXMgbWFueSB0aGF0IHdlIGNhbiBoYW5kbGUgb3Vyc2VsdmVzLgot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoc2VsZiA9PSBzaGFy
ZWREYXRhYmFzZSkKLSAgICAgICAgICAgIFtXZWJWaWV3IF9yZWdpc3RlclBsdWdpbk1JTUVUeXBl
Ok1JTUVUeXBlXTsKKyAgICAgICAgLy8gUmVtb3ZlIHBsdWdpbnMgZnJvbSBkYXRhYmFzZQorICAg
ICAgICBwbHVnaW5FbnVtZXJhdG9yID0gW3BsdWdpbnNUb1JlbW92ZSBvYmplY3RFbnVtZXJhdG9y
XTsKKyAgICAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51bWVyYXRvciBuZXh0T2JqZWN0
XSkgIT0gbmlsKQorICAgICAgICAgICAgW3NlbGYgX3JlbW92ZVBsdWdpbjpwbHVnaW5dOworCisg
ICAgICAgIC8vIEFkZCBuZXcgcGx1Z2lucyB0byBkYXRhYmFzZQorICAgICAgICBwbHVnaW5FbnVt
ZXJhdG9yID0gW25ld1BsdWdpbnMgb2JqZWN0RW51bWVyYXRvcl07CisgICAgICAgIHdoaWxlICgo
cGx1Z2luID0gW3BsdWdpbkVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKKyAgICAgICAg
ICAgIFtzZWxmIF9hZGRQbHVnaW46cGx1Z2luXTsKKworICAgICAgICAvLyBCdWlsZCBhIGxpc3Qg
b2YgTUlNRSB0eXBlcy4KKyAgICAgICAgTlNNdXRhYmxlU2V0ICpNSU1FVHlwZXMgPSBbW05TTXV0
YWJsZVNldCBhbGxvY10gaW5pdF07CisgICAgICAgIHBsdWdpbkVudW1lcmF0b3IgPSBbcGx1Z2lu
cyBvYmplY3RFbnVtZXJhdG9yXTsKKyAgICAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51
bWVyYXRvciBuZXh0T2JqZWN0XSkpIHsKKyAgICAgICAgICAgIGNvbnN0IFBsdWdpbkluZm8mIHBs
dWdpbkluZm8gPSBbcGx1Z2luIHBsdWdpbkluZm9dOworICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBwbHVnaW5JbmZvLm1pbWVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAg
IFtNSU1FVHlwZXMgYWRkT2JqZWN0OnBsdWdpbkluZm8ubWltZXNbaV0udHlwZV07CisgICAgICAg
IH0KKworICAgICAgICAvLyBSZWdpc3RlciBwbHVnLWluIHZpZXdzIGFuZCByZXByZXNlbnRhdGlv
bnMuCisgICAgICAgIE5TRW51bWVyYXRvciAqTUlNRUVudW1lcmF0b3IgPSBbTUlNRVR5cGVzIG9i
amVjdEVudW1lcmF0b3JdOworICAgICAgICBOU1N0cmluZyAqTUlNRVR5cGU7CisgICAgICAgIHdo
aWxlICgoTUlNRVR5cGUgPSBbTUlNRUVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewor
ICAgICAgICAgICAgW3JlZ2lzdGVyZWRNSU1FVHlwZXMgYWRkT2JqZWN0Ok1JTUVUeXBlXTsKKwor
ICAgICAgICAgICAgaWYgKFtXZWJWaWV3IGNhblNob3dNSU1FVHlwZUFzSFRNTDpNSU1FVHlwZV0p
IHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBhbGxvdyBwbHVnLWlucyB0byBvdmVycmlkZSBv
dXIgY29yZSBIVE1MIHR5cGVzLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcGx1Z2luID0gW3NlbGYgcGx1Z2luRm9yTUlNRVR5cGU6TUlNRVR5
cGVdOworICAgICAgICAgICAgaWYgKFtwbHVnaW4gaXNKYXZhUGx1Z0luXSkgeworICAgICAgICAg
ICAgICAgIC8vIERvbid0IHJlZ2lzdGVyIHRoZSBKYXZhIHBsdWctaW4gZm9yIGEgZG9jdW1lbnQg
dmlldyBzaW5jZSBKYXZhIGZpbGVzIHNob3VsZCBiZSBkb3dubG9hZGVkIHdoZW4gbm90IGVtYmVk
ZGVkLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKFtwbHVnaW4gaXNRdWlja1RpbWVQbHVnSW5dICYmIFtbV2ViRnJhbWVWaWV3IF92aWV3
VHlwZXNBbGxvd0ltYWdlVHlwZU9taXNzaW9uOk5PXSBvYmplY3RGb3JLZXk6TUlNRVR5cGVdKSB7
CisgICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgdGhlIFFUIHBsdWctaW4gdG8gb3ZlcnJp
ZGUgYW55IHR5cGVzIGJlY2F1c2UgaXQgY2xhaW1zIG1hbnkgdGhhdCB3ZSBjYW4gaGFuZGxlIG91
cnNlbHZlcy4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKHNlbGYgPT0gc2hhcmVkRGF0YWJhc2UpCisgICAgICAgICAgICAgICAgW1dl
YlZpZXcgX3JlZ2lzdGVyUGx1Z2luTUlNRVR5cGU6TUlNRVR5cGVdOworICAgICAgICB9CisgICAg
ICAgIFtNSU1FVHlwZXMgcmVsZWFzZV07CiAgICAgfQotICAgIFtNSU1FVHlwZXMgcmVsZWFzZV07
Ci0gICAgCi0gICAgW3Bvb2wgZHJhaW5dOwogfQogCiAtIChCT09MKWlzTUlNRVR5cGVSZWdpc3Rl
cmVkOihOU1N0cmluZyAqKU1JTUVUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggODFmZTIxZDdh
NmI3NDFlYWViZTQzOWY5YjU3MzFlYzJiNjU5MGYzOC4uN2Q1ZmY1YWQ1ZmI0ZTAzNGE5YTQ3YjVj
MTJmMzMwZjc0ZDQ2ZmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNTU4LDkgKzU1OCw5IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3Rh
dHVzKQogewogICAgIC8vIFdlIHdhbnQgdGhlIHRlbXBvcmFyaWVzIGFsbG9jYXRlZCBoZXJlIHRv
IGJlIHJlbGVhc2VkIGV2ZW4gYmVmb3JlIHJldHVybmluZyB0byB0aGUgCiAgICAgLy8gZXZlbnQg
bG9vcDsgc2VlIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODgwPi4K
LSAgICBOU0F1dG9yZWxlYXNlUG9vbCogbG9jYWxQb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBh
bGxvY10gaW5pdF07Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpzZXRTdGF0dXNUZXh0OiksIChOU1N0cmluZyAqKXN0YXR1cyk7Ci0gICAgW2xvY2FsUG9v
bCBkcmFpbl07CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIENhbGxVSURlbGVnYXRl
KG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6c2V0U3RhdHVzVGV4dDopLCAoTlNTdHJpbmcg
KilzdGF0dXMpOworICAgIH0KIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzSW1t
ZWRpYXRlSW52YWxpZGF0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBhOWI0ODllMTkyOGVkMjY4YzBjMmExNzRmODk5OGVjZDM1NDkyZmU4
Li43OTQxMDNkMzNhMDRmNzI0NTkxNGYyYjVhZDhmMjM0MWY1YTZhMmEyIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI5IEBACisy
MDE4LTA2LTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIFVwZGF0ZSBzb21lIGNvZGUgdG8gYmUgbW9yZSBBUkMtY29tcGF0aWJsZSB0byBwcmVwYXJl
IGZvciBmdXR1cmUgQVJDIGFkb3B0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODYyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9u
TWFjLm1tOgorICAgICAgICAoK1tOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6XSk6IFVz
ZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9yZWxlYXNlLgorICAgICAgICAoLVtO
U1N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl0pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZyB0
eXBlY2FzdC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlck1hYy5tbTogQWRkIGEgbWlzc2luZyBpbmNsdWRlLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAg
ICAoLVtOU1N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl0pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlk
Z2luZyB0eXBlY2FzdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6aXNF
cXVhbCk6IERpdHRvLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6aXNF
cXVhbCk6IERpdHRvLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tOgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZSBfd2FpdEZvcldlYlRocmVhZF0pOiBV
c2UgQGF1dG9yZWxlYXNlcG9vbCBpbnN0ZWFkIG9mIE5TQXV0b3JlbGVhc2VQb29sLgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVNYWluKTogRGl0dG8uCisgICAgICAgIChXZWJUaHJlYWRMb2NrQWZ0
ZXJEZWxlZ2F0ZUNhbGxiYWNrc0hhdmVDb21wbGV0ZWQpOiBEaXR0by4KKyAgICAgICAgKHJ1blRl
c3QpOiBEaXR0by4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mby5tbToKKyAgICAgICAgKGNvcHlGaWxlKTogVXNlIGEgc3RkOjpwYWlyIHRv
IHJldHVybiBib3RoIGEgVVJMIGFuZCBhbiBlcnJvciByYXRoZXIgdGhhbiB1c2luZyBhbgorICAg
ICAgICBvdXQgYXJndW1lbnQgZm9yIHRoZSBOU0Vycm9yLgorICAgICAgICAoLVtEdW1wUmVuZGVy
VHJlZUZpbGVQcm9taXNlUmVjZWl2ZXIgcmVjZWl2ZVByb21pc2VkRmlsZXNBdERlc3RpbmF0aW9u
Om9wdGlvbnM6b3BlcmF0aW9uUXVldWU6cmVhZGVyOl0pOgorICAgICAgICBVcGRhdGVkIGZvciB0
aGUgYWJvdmUgY2hhbmdlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlV2luZG93Lm1tOgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZVdpbmRvdyBfYWRkVG9P
cGVuV2luZG93c10pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZyB0eXBlY2FzdC4KKyAgICAg
ICAgKC1bRHVtcFJlbmRlclRyZWVXaW5kb3cgY2xvc2VdKTogRGl0dG8uCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RIZWxwZXIubToKKyAgICAgICAgKHNldERpc3BsYXlD
b2xvclByb2ZpbGUpOiBEaXR0by4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9Qb2xp
Y3lEZWxlZ2F0ZS5tbTogQWRkIGEgbWlzc2luZyBpbmNsdWRlLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoLVtSZXNvdXJj
ZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OnJlc291cmNlOndpbGxTZW5kUmVxdWVzdDpyZWRpcmVjdFJl
c3BvbnNlOmZyb21EYXRhU291cmNlOl0pOgorICAgICAgICBBZGQgX19icmlkZ2UgdG8gYSBicmlk
Z2luZyB0eXBlY2FzdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbToKKyAgICAgICAgKC1bQVBJVGVzdERlbGVnYXRlSVBob25lIGluaXRXaXRoVGVzdFJ1bm5l
cjp1dGY4RGF0YTpiYXNlVVJMOl0pOiBEaXR0by4KKyAgICAgICAgKFRlc3RSdW5uZXI6OmFwaVRl
c3ROZXdXaW5kb3dEYXRhTG9hZEJhc2VVUkwpOiBVc2UgQGF1dG9yZWxlYXNlcG9vbCBpbnN0ZWFk
IG9mIE5TQXV0b3JlbGVhc2VQb29sLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rl
eHRJbnB1dENvbnRyb2xsZXJNYWMubTogRml4IGEgY29tbWVudC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6cmVwbGFjZVRleHRBdFJhbmdlKTogQWRkIF9fYnJpZGdlIHRvIGEg
YnJpZGdpbmcgdHlwZWNhc3QuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29u
dGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKTogRGl0dG8uCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL1dvcmtRdWV1ZUl0ZW1NYWMubW06CisgICAgICAgIChMb2FkSXRl
bTo6aW52b2tlIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChMb2FkSFRNTFN0cmluZ0l0ZW06Omlu
dm9rZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoU2NyaXB0SXRlbTo6aW52b2tlIGNvbnN0KTog
RGl0dG8uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoK1tOU1N0cmluZyBzdHJpbmdX
aXRoSlNTdHJpbmdSZWY6XSk6IFVzZSBDRkJyaWRnaW5nUmVsZWFzZSBpbnN0ZWFkIG9mIGF1dG9y
ZWxlYXNlLgorICAgICAgICAoLVtOU1N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl0pOiBBZGQgX19i
cmlkZ2UgdG8gYSBicmlkZ2luZyB0eXBlY2FzdC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW06CisgICAgICAg
ICgrW05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjpdKTogVXNlIENGQnJpZGdpbmdSZWxl
YXNlIGluc3RlYWQgb2YgYXV0b3JlbGVhc2UuCisgICAgICAgICgtW05TU3RyaW5nIGNyZWF0ZUpT
U3RyaW5nUmVmXSk6IEFkZCBfX2JyaWRnZSB0byBhIGJyaWRnaW5nIHR5cGVjYXN0LgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjph
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQpOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZyB0eXBlY2Fz
dC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bTlNTdHJpbmcgY3JlYXRl
SlNTdHJpbmdSZWZdKTogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW06CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjppc0VxdWFsKTogRGl0dG8uCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6
aXNFcXVhbCk6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZSk6IERpdHRvLgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lVGV4dE1hcmtlclJhbmdl
Rm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKTogRGl0dG8uCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclRleHRNYXJrZXJSYW5n
ZSk6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFy
a2VyUmFuZ2VGb3JNYXJrZXJzKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSk6IERpdHRvLgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlclJhbmdlKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAgICAoV1RS
OjpjcmVhdGVKU1N0cmluZ1JlZik6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKTogRGl0dG8uCisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JU
ZXh0TWFya2VyUmFuZ2VXaXRoT3B0aW9ucyk6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFp
bnNBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW5kZXhGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzVGV4dE1hcmtlclZhbGlkKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxlZnRXb3JkVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtl
cik6IERpdHRvLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyaWdodFdv
cmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzV29yZFN0YXJ0VGV4dE1hcmtlckZvclRleHRN
YXJrZXIpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4
dFdvcmRFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJhZ3JhcGhUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFy
a2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZp
b3VzUGFyYWdyYXBoU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcik6IERpdHRvLgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0UGFyYWdyYXBoRW5kVGV4dE1hcmtl
ckZvclRleHRNYXJrZXIpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VudGVuY2VUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyKTogRGl0dG8uCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om5leHRTZW50ZW5jZUVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKTogRGl0
dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOiBEaXR0
by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCk6IERpdHRv
LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcyk6IERp
dHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RDb250ZXh0
KTogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3
TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6
IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVu
ZGxlUGF0aCk6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6
ZVRlc3RQbHVnaW5EaXJlY3RvcnkpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QpOiBEaXR0by4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdU
Ujo6bnNTdHJpbmcpOiBVc2UgQ0ZCcmlkZ2luZ1JlbGVhc2UgaW5zdGVhZCBvZiBhdXRvcmVsZWFz
ZS4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZl
bnRTdHJlYW0pOiBBZGQgX19icmlkZ2UgdG8gYSBicmlkZ2luZworICAgICAgICB0eXBlY2FzdC4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2lu
Z0luZm8ubW06IEFkZCBhIG1pc3NpbmcgaW5jbHVkZS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tOgorICAgICAgICAoLVtMb2Nh
bFBhc3RlYm9hcmQgc2V0UHJvcGVydHlMaXN0OmZvclR5cGU6XSk6IEFkZCBfYnJpZGdlIHRvIGEg
YnJpZGdpbmcgdHlwZWNhc3QuCisgICAgICAgICgtW0xvY2FsUGFzdGVib2FyZCBzZXRTdHJpbmc6
Zm9yVHlwZTpdKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9tYWlu
Lm1tOgorICAgICAgICAobWFpbik6IFVzZSBAYXV0b3JlbGVhc2Vwb29sIGluc3RlYWQgb2YgTlNB
dXRvcmVsZWFzZVBvb2wuCisKIDIwMTgtMDYtMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzb21lIHRlc3RzIGZvciBsbGRiX3dlYmtpdC5weQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpp
bmRleCA4OThkNGYwYWE2N2MzYTJlY2Y3YmNkM2Y5MDBkZTVlMjhkZTdjYzk0Li42NTk3Y2FkMTgw
NWExNTRhMjVhMGIyMjk3OTM5MGU3ZTM4ZjcxYWZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpAQCAtNDIsMTMgKzQyLDEyIEBA
ICsgKE5TU3RyaW5nICopc3RyaW5nV2l0aEpTU3RyaW5nUmVmOihKU1N0cmluZ1JlZilqc1N0cmlu
Z1JlZgogICAgIGlmICghanNTdHJpbmdSZWYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBD
RlN0cmluZ1JlZiBjZlN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGpzU3RyaW5nUmVmKTsKLSAgICByZXR1cm4gWyhOU1N0cmluZyAqKWNmU3RyaW5nIGF1
dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1JlbGVhc2UoSlNTdHJpbmdDb3B5Q0ZT
dHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNTdHJpbmdSZWYpKTsKIH0KIAogLSAoSlNTdHJp
bmdSZWYpY3JlYXRlSlNTdHJpbmdSZWYKIHsKLSAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
Q0ZTdHJpbmcoKENGU3RyaW5nUmVmKXNlbGYpOworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdp
dGhDRlN0cmluZygoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc2VsZik7CiB9CiAKIE5TRGljdGlvbmFy
eSAqc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRlcmlh
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50ICpzdGFydEVsZW1l
bnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCB1bnNpZ25lZCByZXN1bHRzTGltaXQsIEpTVmFsdWVS
ZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBib29sIHZpc2libGVPbmx5LCBi
b29sIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCA0YzVlMTdjMWJm
MDUxZDg4ZWNjM2FiMTI3YzFmNjk0OWE0MjAzMGUzLi42YjU0NDU1M2ZmYTg4NjY5NDdmZjY3MjNi
MzQ1ZTExOGUzYmE3YzE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCkBAIC0zNCw4ICszNCw4IEBACiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3Ry
aW5nUmVmLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+Ci0jaW1w
b3J0IDxXZWJLaXQvV2ViRnJhbWUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJI
VE1MVmlldy5oPgogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDVlOWQ2YTE1OWU0M2UwNjk1ZGNi
ODUxYzM2ZTQ2ZTNlYjQzZTRhYmIuLjAzYWE5YzY4NWExMGU3NDYxNGU5ZDI2ZWI1NmMyNTI2ZmM5
YjQxMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTUyLDcgKzUyLDcgQEAgQGltcGxl
bWVudGF0aW9uIE5TU3RyaW5nIChKU1N0cmluZ1JlZkFkZGl0aW9ucykKIAogLSAoSlNTdHJpbmdS
ZWYpY3JlYXRlSlNTdHJpbmdSZWYKIHsKLSAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZT
dHJpbmcoKENGU3RyaW5nUmVmKXNlbGYpOworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhD
RlN0cmluZygoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc2VsZik7CiB9CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5t
bQppbmRleCBiNDc4MWUyNzU4YzM1OGExZTM3MTdkYWEwYWZlOTUxODVhOGM0MWNhLi4wZWZmOTE2
OTUwNjQ1ODlmZDllOGVmYjVjNjM1NjFkYTE5OTgwNWQ3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tCkBAIC00OCw3
ICs0OCw3IEBAIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjp+QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIoKQogCiBib29sIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjppc0VxdWFsKEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyKiBvdGhlcikKIHsKLSAgICByZXR1cm4gWyhpZClwbGF0Zm9ybVRleHRNYXJr
ZXIoKSBpc0VxdWFsOihpZClvdGhlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOworICAgIHJldHVy
biBbKF9fYnJpZGdlIGlkKXBsYXRmb3JtVGV4dE1hcmtlcigpIGlzRXF1YWw6KF9fYnJpZGdlIGlk
KW90aGVyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiB9CiAKIFBsYXRmb3JtVGV4dE1hcmtlciBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6cGxhdGZvcm1UZXh0TWFya2VyKCkgY29uc3QgCkBAIC03
NCw3ICs3NCw3IEBAIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6On5BY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlKCkKIAogYm9vbCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpp
c0VxdWFsKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIG90aGVyKQogewotICAgIHJldHVy
biBbKGlkKXBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCkgaXNFcXVhbDooaWQpb3RoZXItPnBsYXRm
b3JtVGV4dE1hcmtlclJhbmdlKCldOworICAgIHJldHVybiBbKF9fYnJpZGdlIGlkKXBsYXRmb3Jt
VGV4dE1hcmtlclJhbmdlKCkgaXNFcXVhbDooX19icmlkZ2UgaWQpb3RoZXItPnBsYXRmb3JtVGV4
dE1hcmtlclJhbmdlKCldOwogfQogCiBQbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlOjpwbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggODAxNjU2ZjVlMzYw
ZjEyZGI0YjBlNzc1MmUxMWFkNTkwZThhYzVmOC4uYzFkYTdkY2FkYmM3OGIwOGNjY2Y1NDYzZTA2
YzQ1NTgwNTFmNDc2MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQpAQCAtMTMzNyw5ICsxMzM3LDkgQEAgLSAodm9pZClfd2FpdEZvcldlYlRocmVhZAogICAg
ICAgICBbc2VsZiBfd2ViVGhyZWFkSW52b2tlZF07CiAgICAgfSk7CiAgICAgd2hpbGUgKCFfaGFz
Rmx1c2hlZFdlYlRocmVhZFJ1blF1ZXVlKSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpw
b29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIFtbTlNSdW5M
b29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURh
dGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwotICAgICAgICBbcG9vbCByZWxlYXNlXTsKKyAgICAg
ICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVu
TG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlz
dGFudFBhc3RdXTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMTM2NywyMyArMTM2NywyNSBA
QCBpbnQgRHVtcFJlbmRlclRyZWVNYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIF9VSUFwcGxpY2F0aW9uTG9hZFdlYktpdCgpOwogI2VuZGlm
Ci0gICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9j
XSBpbml0XTsKIAotICAgIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZygp
OyAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgTlNBcHBsaWNhdGlvbiBpbml0aWFsaXphdGlvbi4K
KyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRW
YWx1ZXNGb3JUZXN0aW5nKCk7IC8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBOU0FwcGxpY2F0aW9u
IGluaXRpYWxpemF0aW9uLgogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBbRHVtcFJlbmRlclRy
ZWVBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl07IC8vIEZvcmNlIEFwcEtpdCB0byBpbml0
IGl0c2VsZgorICAgICAgICBbRHVtcFJlbmRlclRyZWVBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNh
dGlvbl07IC8vIEZvcmNlIEFwcEtpdCB0byBpbml0IGl0c2VsZgogCi0gICAgZHVtcFJlbmRlclRy
ZWUoYXJnYywgYXJndik7CisgICAgICAgIGR1bXBSZW5kZXJUcmVlKGFyZ2MsIGFyZ3YpOwogI2Vs
c2UKLSAgICBfYXJnYyA9IGFyZ2M7Ci0gICAgX2FyZ3YgPSBhcmd2OwotICAgIFVJQXBwbGljYXRp
b25NYWluKGFyZ2MsIChjaGFyKiopYXJndiwgQCJEdW1wUmVuZGVyVHJlZSIsIEAiRHVtcFJlbmRl
clRyZWUiKTsKLSNlbmRpZgotICAgIFtXZWJDb3JlU3RhdGlzdGljcyBnYXJiYWdlQ29sbGVjdEph
dmFTY3JpcHRPYmplY3RzXTsKLSAgICBbV2ViQ29yZVN0YXRpc3RpY3MgZW1wdHlDYWNoZV07IC8v
IE90aGVyd2lzZSBTVkdJbWFnZXMgdHJpZ2dlciBmYWxzZSBwb3NpdGl2ZXMgZm9yIEZyYW1lL05v
ZGUgY291bnRzCi0gICAgSlNDOjpmaW5hbGl6ZVN0YXRzQXRFbmRPZlRlc3RpbmcoKTsKLSAgICBb
cG9vbCByZWxlYXNlXTsKKyAgICAgICAgX2FyZ2MgPSBhcmdjOworICAgICAgICBfYXJndiA9IGFy
Z3Y7CisgICAgICAgIFVJQXBwbGljYXRpb25NYWluKGFyZ2MsIChjaGFyKiopYXJndiwgQCJEdW1w
UmVuZGVyVHJlZSIsIEAiRHVtcFJlbmRlclRyZWUiKTsKKyNlbmRpZgorCisgICAgICAgIFtXZWJD
b3JlU3RhdGlzdGljcyBnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzXTsKKyAgICAgICAg
W1dlYkNvcmVTdGF0aXN0aWNzIGVtcHR5Q2FjaGVdOyAvLyBPdGhlcndpc2UgU1ZHSW1hZ2VzIHRy
aWdnZXIgZmFsc2UgcG9zaXRpdmVzIGZvciBGcmFtZS9Ob2RlIGNvdW50cworICAgICAgICBKU0M6
OmZpbmFsaXplU3RhdHNBdEVuZE9mVGVzdGluZygpOworICAgIH0KKwogICAgIHJldHVybmluZ0Zy
b21NYWluID0gdHJ1ZTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTE4NjcsOSArMTg2OSw5IEBAIHN0
YXRpYyB2b2lkIFdlYlRocmVhZExvY2tBZnRlckRlbGVnYXRlQ2FsbGJhY2tzSGF2ZUNvbXBsZXRl
ZCgpCiAgICAgfSk7CiAKICAgICB3aGlsZSAoZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoZGVsZWdh
dGVTZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfTk9XKSkgewotICAgICAgICBOU0F1dG9yZWxlYXNl
UG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotICAgICAgICBb
W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBi
ZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXTsKLSAgICAgICAgW3Bvb2wgcmVsZWFzZV07
CisgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAgICAgW1tOU1J1bkxvb3AgY3Vy
cmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNE
YXRlIGRpc3RhbnRQYXN0XV07CisgICAgICAgIH0KICAgICB9CiAKICAgICBXZWJUaHJlYWRMb2Nr
KCk7CkBAIC0xOTk0LDcwICsxOTk2LDcwIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Ry
aW5nJiBpbnB1dExpbmUpCiAgICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVha3MpCiAgICAgICAg
IFtXZWJDb3JlU3RhdGlzdGljcyBzdGFydElnbm9yaW5nV2ViQ29yZU5vZGVMZWFrc107CiAKLSAg
ICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGlu
aXRdOwotICAgIFttYWluRnJhbWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp1cmxdXTsKLSAgICBbcG9vbCByZWxlYXNlXTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgW21haW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOnVybF1dOworICAgIH0KIAogICAgIHdoaWxlICghZG9uZSkgewotICAgICAgICBwb29sID0g
W1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIENGUnVuTG9vcFJ1bklu
TW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIDEwLCBmYWxzZSk7Ci0gICAgICAgIFtwb29sIHJl
bGVhc2VdOworICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgIENGUnVuTG9v
cFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIDEwLCBmYWxzZSk7CisgICAgICAgIH0K
ICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgWyhEdW1wUmVuZGVyVHJlZSAqKVVJQXBw
IF93YWl0Rm9yV2ViVGhyZWFkXTsKICAgICBXZWJUaHJlYWRMb2NrQWZ0ZXJEZWxlZ2F0ZUNhbGxi
YWNrc0hhdmVDb21wbGV0ZWQoKTsKICNlbmRpZgotICAgIHBvb2wgPSBbW05TQXV0b3JlbGVhc2VQ
b29sIGFsbG9jXSBpbml0XTsKLSAgICBbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBjbGVhclNhdmVk
RXZlbnRzXTsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTZWxlY3RlZERPTVJhbmdlOm5p
bCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbV07CiAKLSAgICB3b3JrUXVl
dWUuY2xlYXIoKTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgW0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIgY2xlYXJTYXZlZEV2ZW50c107CisgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZp
ZXddIHNldFNlbGVjdGVkRE9NUmFuZ2U6bmlsIGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlE
b3duc3RyZWFtXTsKIAotICAgIC8vIElmIHRoZSB0ZXN0IHBhZ2UgY291bGQgaGF2ZSBwb3NzaWJs
eSBvcGVuZWQgdGhlIFdlYiBJbnNwZWN0b3IgZnJvbnRlbmQsCi0gICAgLy8gdGhlbiB0cnkgdG8g
Y2xvc2UgaXQgaW4gY2FzZSBpdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3Blbi4KLSAgICBpZiAo
c2hvdWxkRW5hYmxlRGV2ZWxvcGVyRXh0cmFzKHBhdGhPclVSTC5jX3N0cigpKSkgewotICAgICAg
ICBnVGVzdFJ1bm5lci0+Y2xvc2VXZWJJbnNwZWN0b3IoKTsKLSAgICAgICAgZ1Rlc3RSdW5uZXIt
PnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmFsc2UpOwotICAgIH0KKyAgICAgICAgd29ya1F1
ZXVlLmNsZWFyKCk7CisKKyAgICAgICAgLy8gSWYgdGhlIHRlc3QgcGFnZSBjb3VsZCBoYXZlIHBv
c3NpYmx5IG9wZW5lZCB0aGUgV2ViIEluc3BlY3RvciBmcm9udGVuZCwKKyAgICAgICAgLy8gdGhl
biB0cnkgdG8gY2xvc2UgaXQgaW4gY2FzZSBpdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3Blbi4K
KyAgICAgICAgaWYgKHNob3VsZEVuYWJsZURldmVsb3BlckV4dHJhcyhwYXRoT3JVUkwuY19zdHIo
KSkpIHsKKyAgICAgICAgICAgIGdUZXN0UnVubmVyLT5jbG9zZVdlYkluc3BlY3RvcigpOworICAg
ICAgICAgICAgZ1Rlc3RSdW5uZXItPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmFsc2UpOwor
ICAgICAgICB9CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgLy8gTWFrZSBzdXJlIHRoZSBXZWJW
aWV3IGlzIHBhcmVudGVkLCBzaW5jZSB0aGUgdGVzdCBtYXkgaGF2ZSB1bnBhcmVudGVkIGl0Lgot
ICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbbWFpbkZyYW1lIHdlYlZpZXddOwotICAgIGlmICghW3dl
YlZpZXcgc3VwZXJ2aWV3XSkKLSAgICAgICAgW1ttYWluV2luZG93IGNvbnRlbnRWaWV3XSBhZGRT
dWJ2aWV3OndlYlZpZXddOworICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIFdlYlZpZXcgaXMgcGFy
ZW50ZWQsIHNpbmNlIHRoZSB0ZXN0IG1heSBoYXZlIHVucGFyZW50ZWQgaXQuCisgICAgICAgIFdl
YlZpZXcgKndlYlZpZXcgPSBbbWFpbkZyYW1lIHdlYlZpZXddOworICAgICAgICBpZiAoIVt3ZWJW
aWV3IHN1cGVydmlld10pCisgICAgICAgICAgICBbW21haW5XaW5kb3cgY29udGVudFZpZXddIGFk
ZFN1YnZpZXc6d2ViVmlld107CiAjZW5kaWYKIAotICAgIGlmIChnVGVzdFJ1bm5lci0+Y2xvc2VS
ZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkpIHsKLSAgICAgICAgTlNBcnJheSogYXJyYXkg
PSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRvd3NdOworICAgICAgICBpZiAoZ1Rlc3RS
dW5uZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpKSB7CisgICAgICAgICAg
ICBOU0FycmF5KiBhcnJheSA9IFtEdW1wUmVuZGVyVHJlZVdpbmRvdyBvcGVuV2luZG93c107CiAK
LSAgICAgICAgdW5zaWduZWQgY291bnQgPSBbYXJyYXkgY291bnRdOwotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICAgICAgTlNXaW5kb3cgKndp
bmRvdyA9IFthcnJheSBvYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgdW5zaWduZWQgY291
bnQgPSBbYXJyYXkgY291bnRdOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBOU1dpbmRvdyAqd2luZG93ID0gW2FycmF5
IG9iamVjdEF0SW5kZXg6aV07CiAKLSAgICAgICAgICAgIC8vIERvbid0IHRyeSB0byBjbG9zZSB0
aGUgbWFpbiB3aW5kb3cKLSAgICAgICAgICAgIGlmICh3aW5kb3cgPT0gW1ttYWluRnJhbWUgd2Vi
Vmlld10gd2luZG93XSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAg
ICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93CisgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdyA9PSBbW21haW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3ddKQorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgICAgICBXZWJW
aWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNvbnRlbnRWaWV3XSBzdWJ2aWV3c10gb2JqZWN0QXRJ
bmRleDowXTsKKyAgICAgICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNv
bnRlbnRWaWV3XSBzdWJ2aWV3c10gb2JqZWN0QXRJbmRleDowXTsKICNlbHNlCi0gICAgICAgICAg
ICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xh
c3NdXSk7Ci0gICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gKFdlYlZpZXcgKilbd2luZG93
IGNvbnRlbnRWaWV3XTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZp
ZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7CisgICAgICAgICAgICAgICAgV2Vi
VmlldyAqd2ViVmlldyA9IChXZWJWaWV3ICopW3dpbmRvdyBjb250ZW50Vmlld107CiAjZW5kaWYK
IAotICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwotICAgICAgICAgICAgW3dpbmRvdyBjbG9z
ZV07CisgICAgICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOworICAgICAgICAgICAgICAgIFt3
aW5kb3cgY2xvc2VdOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfQogCi0gICAgcmVz
ZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKG9wdGlvbnMpOworICAgICAg
ICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcob3B0aW9ucyk7CiAK
LSAgICAvLyBMb2FkaW5nIGFuIGVtcHR5IHJlcXVlc3Qgc3luY2hyb25vdXNseSByZXBsYWNlcyB0
aGUgZG9jdW1lbnQgd2l0aCBhIGJsYW5rIG9uZSwgd2hpY2ggaXMgbmVjZXNzYXJ5Ci0gICAgLy8g
dG8gc3RvcCB0aW1lcnMsIFdlYlNvY2tldHMgYW5kIG90aGVyIGFjdGl2aXR5IHRoYXQgY291bGQg
b3RoZXJ3aXNlIHNwaWxsIG91dHB1dCBpbnRvIG5leHQgdGVzdCdzIHJlc3VsdHMuCi0gICAgW21h
aW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAiIl1dXTsKLQotICAgIFtwb29sIHJlbGVhc2VdOworICAgICAgICAvLyBM
b2FkaW5nIGFuIGVtcHR5IHJlcXVlc3Qgc3luY2hyb25vdXNseSByZXBsYWNlcyB0aGUgZG9jdW1l
bnQgd2l0aCBhIGJsYW5rIG9uZSwgd2hpY2ggaXMgbmVjZXNzYXJ5CisgICAgICAgIC8vIHRvIHN0
b3AgdGltZXJzLCBXZWJTb2NrZXRzIGFuZCBvdGhlciBhY3Rpdml0eSB0aGF0IGNvdWxkIG90aGVy
d2lzZSBzcGlsbCBvdXRwdXQgaW50byBuZXh0IHRlc3QncyByZXN1bHRzLgorICAgICAgICBbbWFp
bkZyYW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCIiXV1dOworICAgIH0KIAogICAgIC8vIFdlIHNob3VsZCBvbmx5IGhhdmUg
b3VyIG1haW4gd2luZG93IGxlZnQgb3BlbiB3aGVuIHdlJ3JlIGRvbmUKICAgICBBU1NFUlQoQ0ZB
cnJheUdldENvdW50KG9wZW5XaW5kb3dzUmVmKSA9PSAxKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5tbQppbmRleCAyOGE5
ZTcxNGU1MDM1YTc1OTM4Zjc4YTdiMGY1NmJiNDUyZDAxMTkxLi42ODgyMDNkM2VmOTcxNTdjOTky
NGZlY2RjNjY5Mzc4NTVmZGRhNjVlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCkBAIC05Niw3ICs5Niw3IEBAIC0g
KHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotc3RhdGljIE5TVVJMICpj
b3B5RmlsZShOU1VSTCAqc291cmNlVVJMLCBOU1VSTCAqZGVzdGluYXRpb25EaXJlY3RvcnksIE5T
RXJyb3IgKiZlcnJvcikKK3N0YXRpYyBzdGQ6OnBhaXI8TlNVUkwgKiwgTlNFcnJvciAqPiBjb3B5
RmlsZShOU1VSTCAqc291cmNlVVJMLCBOU1VSTCAqZGVzdGluYXRpb25EaXJlY3RvcnkpCiB7CiAg
ICAgLy8gRW11bGF0ZSBob3cgQ0ZQYXN0ZWJvYXJkIGZpbmRzIHVuaXF1ZSBkZXN0aW5hdGlvbiBm
aWxlIG5hbWVzIGJ5IGluc2VydGluZyAiIDIiLCAiIDMiLCBhbmQgc28KICAgICAvLyBvbiBiZXR3
ZWVuIHRoZSBmaWxlIG5hbWUncyBiYXNlIGFuZCBleHRlbnNpb24gdW50aWwgYSBuZXcgZmlsZSBp
cyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBpbgpAQCAtMTA1LDE2ICsxMDUsMTYgQEAgc3RhdGljIE5T
VVJMICpjb3B5RmlsZShOU1VSTCAqc291cmNlVVJMLCBOU1VSTCAqZGVzdGluYXRpb25EaXJlY3Rv
cnksIE5TRXJyb3IgKiYKICAgICBOU1VJbnRlZ2VyIG51bWJlciA9IDI7CiAgICAgTlNTdHJpbmcg
KmZpbGVOYW1lID0gc291cmNlVVJMLmxhc3RQYXRoQ29tcG9uZW50OwogICAgIE5TVVJMICpkZXN0
aW5hdGlvblVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6ZmlsZU5hbWUgcmVsYXRpdmVUb1VS
TDpkZXN0aW5hdGlvbkRpcmVjdG9yeV07CisgICAgTlNFcnJvciAqZXJyb3I7CiAgICAgd2hpbGUg
KCFbTlNGaWxlTWFuYWdlci5kZWZhdWx0TWFuYWdlciBjb3B5SXRlbUF0VVJMOnNvdXJjZVVSTCB0
b1VSTDpkZXN0aW5hdGlvblVSTCBlcnJvcjomZXJyb3JdKSB7CiAgICAgICAgIGlmIChlcnJvci5k
b21haW4gIT0gTlNDb2NvYUVycm9yRG9tYWluIHx8IGVycm9yLmNvZGUgIT0gTlNGaWxlV3JpdGVG
aWxlRXhpc3RzRXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICAgICAgcmV0
dXJuIHsgbmlsLCBlcnJvciB9OwogCiAgICAgICAgIE5TU3RyaW5nICpuZXdGaWxlTmFtZSA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAgJWx1LiVAIiwgZmlsZU5hbWUuc3RyaW5nQnlE
ZWxldGluZ1BhdGhFeHRlbnNpb24sICh1bnNpZ25lZCBsb25nKW51bWJlcisrLCBmaWxlTmFtZS5w
YXRoRXh0ZW5zaW9uXTsKICAgICAgICAgZGVzdGluYXRpb25VUkwgPSBbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOm5ld0ZpbGVOYW1lIHJlbGF0aXZlVG9VUkw6ZGVzdGluYXRpb25EaXJlY3RvcnldOwot
ICAgICAgICBlcnJvciA9IG5pbDsKICAgICB9CiAKLSAgICByZXR1cm4gZGVzdGluYXRpb25VUkw7
CisgICAgcmV0dXJuIHsgZGVzdGluYXRpb25VUkwsIG5pbCB9OwogfQogCiAtICh2b2lkKXJlY2Vp
dmVQcm9taXNlZEZpbGVzQXREZXN0aW5hdGlvbjooTlNVUkwgKilkZXN0aW5hdGlvbkRpcmVjdG9y
eSBvcHRpb25zOihOU0RpY3Rpb25hcnkgKilvcHRpb25zIG9wZXJhdGlvblF1ZXVlOihOU09wZXJh
dGlvblF1ZXVlICopb3BlcmF0aW9uUXVldWUgcmVhZGVyOih2b2lkICheKShOU1VSTCAqZmlsZVVS
TCwgTlNFcnJvciAqIF9fbnVsbGFibGUgZXJyb3JPck5pbCkpcmVhZGVyCkBAIC0xMjUsOCArMTI1
LDkgQEAgLSAodm9pZClyZWNlaXZlUHJvbWlzZWRGaWxlc0F0RGVzdGluYXRpb246KE5TVVJMICop
ZGVzdGluYXRpb25EaXJlY3Rvcnkgb3B0aW9uczoKICAgICBOU0FycmF5PE5TVVJMICo+ICpzb3Vy
Y2VVUkxzID0gX2RyYWdnaW5nU291cmNlLnByb21pc2VkRmlsZVVSTHM7CiAgICAgZm9yIChOU1VS
TCAqc291cmNlVVJMIGluIHNvdXJjZVVSTHMpIHsKICAgICAgICAgW29wZXJhdGlvblF1ZXVlIGFk
ZE9wZXJhdGlvbldpdGhCbG9jazpeewotICAgICAgICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7
Ci0gICAgICAgICAgICBOU1VSTCAqZGVzdGluYXRpb25VUkwgPSBjb3B5RmlsZShzb3VyY2VVUkws
IGRlc3RpbmF0aW9uRGlyZWN0b3J5LCBlcnJvcik7CisgICAgICAgICAgICBOU0Vycm9yICplcnJv
cjsKKyAgICAgICAgICAgIE5TVVJMICpkZXN0aW5hdGlvblVSTDsKKyAgICAgICAgICAgIHN0ZDo6
dGllKGRlc3RpbmF0aW9uVVJMLCBlcnJvcikgPSBjb3B5RmlsZShzb3VyY2VVUkwsIGRlc3RpbmF0
aW9uRGlyZWN0b3J5KTsKICAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvblVSTCkgewogICAgICAg
ICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAg
ICAgICAgICAgICAgICAgICAgIFtfZGVzdGluYXRpb25VUkxzIGFkZE9iamVjdDpkZXN0aW5hdGlv
blVSTF07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWVXaW5kb3cubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5k
b3cubW0KaW5kZXggNjczZTY4OGRhODkyMDI2MWQxYjU0NzU0Yjg4MWQwZGMzMjE3MzRiNi4uMTVl
YzQzYmJkOWViZjY1MGYxZDI5ZGJkM2M1MjZmMjE4ZDJlYTQ3MCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5tbQpAQCAtNjgsNyArNjgsNyBA
QCAtICh2b2lkKV9hZGRUb09wZW5XaW5kb3dzCiAgICAgaWYgKCFvcGVuV2luZG93c1JlZikKICAg
ICAgICAgb3BlbldpbmRvd3NSZWYgPSBDRkFycmF5Q3JlYXRlTXV0YWJsZShOVUxMLCAwLCAmTm9u
UmV0YWluaW5nQXJyYXlDYWxsYmFja3MpOwogCi0gICAgQ0ZBcnJheUFwcGVuZFZhbHVlKG9wZW5X
aW5kb3dzUmVmLCBzZWxmKTsKKyAgICBDRkFycmF5QXBwZW5kVmFsdWUob3BlbldpbmRvd3NSZWYs
IChfX2JyaWRnZSBDRlR5cGVSZWYpc2VsZik7CiB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpAQCAt
MTAyLDcgKzEwMiw3IEBAIC0gKHZvaWQpY2xvc2UKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwogCiAgICAgQ0ZSYW5nZSBhcnJh
eVJhbmdlID0gQ0ZSYW5nZU1ha2UoMCwgQ0ZBcnJheUdldENvdW50KG9wZW5XaW5kb3dzUmVmKSk7
Ci0gICAgQ0ZJbmRleCBpID0gQ0ZBcnJheUdldEZpcnN0SW5kZXhPZlZhbHVlKG9wZW5XaW5kb3dz
UmVmLCBhcnJheVJhbmdlLCBzZWxmKTsKKyAgICBDRkluZGV4IGkgPSBDRkFycmF5R2V0Rmlyc3RJ
bmRleE9mVmFsdWUob3BlbldpbmRvd3NSZWYsIGFycmF5UmFuZ2UsIChfX2JyaWRnZSBDRlR5cGVS
ZWYpc2VsZik7CiAgICAgaWYgKGkgIT0ga0NGTm90Rm91bmQpCiAgICAgICAgIENGQXJyYXlSZW1v
dmVWYWx1ZUF0SW5kZXgob3BlbldpbmRvd3NSZWYsIGkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdEhlbHBlci5tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RIZWxwZXIubQppbmRleCA4OGFhODZmZGY1ZWE0ZmU2MTlhNjRhNWI1
ZmNkYTlkOWU1ZmU4N2RmLi4zMzBmMjdlZjBiZWI0OTdhNDkzODcyYWZhMzhjN2FhYWY3YjM2ZDRl
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdEhlbHBlci5t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0SGVscGVyLm0KQEAgLTE0
Nyw3ICsxNDcsNyBAQCBzdGF0aWMgdm9pZCBzYXZlRGlzcGxheUNvbG9yUHJvZmlsZXMoTlNBcnJh
eSAqZGlzcGxheVVVSURTdHJpbmdzKQogc3RhdGljIHZvaWQgc2V0RGlzcGxheUNvbG9yUHJvZmls
ZShOU1N0cmluZyAqZGlzcGxheVVVSURTdHJpbmcsIE5TVVJMICpjb2xvclByb2ZpbGVVUkwpCiB7
CiAgICAgTlNEaWN0aW9uYXJ5ICpwcm9maWxlSW5mbyA9IEB7Ci0gICAgICAgIChOU1N0cmluZyAq
KWtDb2xvclN5bmNEZXZpY2VEZWZhdWx0UHJvZmlsZUlEIDogY29sb3JQcm9maWxlVVJMCisgICAg
ICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDb2xvclN5bmNEZXZpY2VEZWZhdWx0UHJvZmlsZUlE
IDogY29sb3JQcm9maWxlVVJMCiAgICAgfTsKIAogICAgIENGVVVJRFJlZiB1dWlkID0gQ0ZVVUlE
Q3JlYXRlRnJvbVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ0ZTdHJpbmdSZWYpZGlzcGxh
eVVVSURTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BvbGlj
eURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BvbGljeURlbGVnYXRlLm1t
CmluZGV4IGJlODE2Y2M0NDc5NGZlM2FjNzEzODJhZjAwOTAyNTA2M2Y5OWRlOWEuLjZjZDQ4OTM3
ZjU1MzRjYjBjMGVmOTZhMzEzNzA1MjUwYWY3MGNlZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9Qb2xpY3lEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvUG9saWN5RGVsZWdhdGUubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkR1bXBS
ZW5kZXJUcmVlLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgiCiAjaW1wb3J0IDxXZWJLaXQvRE9N
RWxlbWVudC5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2UuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJGcmFtZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlBvbGljeURlbGVnYXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViVmlldy5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1Jlc291cmNlTG9hZERlbGVnYXRlLm1tCmluZGV4IDZjYjVmMjQyNjIzOTdiMjFkMTEwYWE1MGFk
Y2Q0N2E4OGIyNGMzZjkuLjMwZTgwNWZkYWQ0NDU0NTg4ZWE1NzYyZWI4ZDUyYzBhZDZkZDVmZGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUmVzb3VyY2VMb2FkRGVsZWdhdGUu
bW0KQEAgLTE3Miw3ICsxNzIsNyBAQCAtKE5TVVJMUmVxdWVzdCAqKXdlYlZpZXc6IChXZWJWaWV3
ICopd3YgcmVzb3VyY2U6aWRlbnRpZmllciB3aWxsU2VuZFJlcXVlc3Q6IChOUwogICAgICAgICB9
CiAgICAgfQogCi0gICAgaWYgKGRpc2FsbG93ZWRVUkxzICYmIENGU2V0Q29udGFpbnNWYWx1ZShk
aXNhbGxvd2VkVVJMcywgdXJsKSkKKyAgICBpZiAoZGlzYWxsb3dlZFVSTHMgJiYgQ0ZTZXRDb250
YWluc1ZhbHVlKGRpc2FsbG93ZWRVUkxzLCAoX19icmlkZ2UgQ0ZVUkxSZWYpdXJsKSkKICAgICAg
ICAgcmV0dXJuIG5pbDsKIAogICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm5ld1JlcXVlc3QgPSBb
cmVxdWVzdCBtdXRhYmxlQ29weV07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tCmluZGV4IDFlOWQ2MjdiNWI1YmY2MTJhYWViZDNhYWZjYTYyM2M3ZGU1ZTM2YTkuLjZl
MDJmZjAzYTIzOTI4MTMyNGY0ZmFhMmU1ZjFhN2RjNTFmMTg2OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC05MjcsOCArOTI3LDggQEAgLSAoaWQpaW5p
dFdpdGhUZXN0UnVubmVyOihUZXN0UnVubmVyKilydW5uZXIgdXRmOERhdGE6KEpTU3RyaW5nUmVm
KWRhdGFTdHJpbmcgYmEKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHRlc3RSdW5uZXIgPSBy
dW5uZXI7Ci0gICAgZGF0YSA9IFtbKE5TU3RyaW5nICopYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhU3RyaW5nKSkuZ2V0KCkgZGF0YVVzaW5nRW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIHJldGFpbl07Ci0gICAgYmFzZVVSTCA9IFtbTlNV
UkwgVVJMV2l0aFN0cmluZzooTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2VVUkxTdHJpbmcpKS5nZXQoKV0gcmV0YWluXTsKKyAg
ICBkYXRhID0gW1soX19icmlkZ2UgTlNTdHJpbmcgKilhZG9wdENGKEpTU3RyaW5nQ29weUNGU3Ry
aW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRhdGFTdHJpbmcpKS5nZXQoKSBkYXRhVXNpbmdFbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gcmV0YWluXTsKKyAgICBiYXNlVVJMID0gW1tOU1VS
TCBVUkxXaXRoU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWFkb3B0Q0YoSlNTdHJpbmdDb3B5
Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzZVVSTFN0cmluZykpLmdldCgpXSByZXRh
aW5dOwogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xMDA0LDMzICsxMDA0LDMyIEBAIHZvaWQg
VGVzdFJ1bm5lcjo6YXBpVGVzdE5ld1dpbmRvd0RhdGFMb2FkQmFzZVVSTChKU1N0cmluZ1JlZiB1
dGY4RGF0YSwgSlNTdHJpbmdSCiAgICAgfQogI2VuZGlmCiAKLSAgICBOU0F1dG9yZWxlYXNlUG9v
bCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOworICAgIEBhdXRvcmVs
ZWFzZXBvb2wgeworICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHV0ZjhEYXRhQ0YgPSBh
ZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHV0ZjhEYXRh
KSk7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYmFzZVVSTENGID0gYWRvcHRDRihK
U1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNlVVJMKSk7CiAKLSAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHV0ZjhEYXRhQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29w
eUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHV0ZjhEYXRhKSk7Ci0gICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiBiYXNlVVJMQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJhc2VVUkwpKTsKLSAgICAKLSAgICBXZWJWaWV3ICp3ZWJWaWV3
ID0gW1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgZnJhbWVOYW1lOkAi
IiBncm91cE5hbWU6QCIiXTsKKyAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IFtbV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGZyYW1lTmFtZTpAIiIgZ3JvdXBOYW1lOkAi
Il07CiAKLSAgICBib29sIGRvbmUgPSBmYWxzZTsKLSAgICBBUElUZXN0RGVsZWdhdGUgKmRlbGVn
YXRlID0gW1tBUElUZXN0RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29tcGxldGlvbkNvbmRpdGlv
bjomZG9uZV07Ci0gICAgW3dlYlZpZXcgc2V0RnJhbWVMb2FkRGVsZWdhdGU6ZGVsZWdhdGVdOwor
ICAgICAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgQVBJVGVzdERlbGVnYXRlICpkZWxl
Z2F0ZSA9IFtbQVBJVGVzdERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbXBsZXRpb25Db25kaXRp
b246JmRvbmVdOworICAgICAgICBbd2ViVmlldyBzZXRGcmFtZUxvYWREZWxlZ2F0ZTpkZWxlZ2F0
ZV07CiAKLSAgICBbW3dlYlZpZXcgbWFpbkZyYW1lXSBsb2FkRGF0YTpbKE5TU3RyaW5nICopdXRm
OERhdGFDRi5nZXQoKSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gTUlN
RVR5cGU6QCJ0ZXh0L2h0bWwiIHRleHRFbmNvZGluZ05hbWU6QCJ1dGYtOCIgYmFzZVVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMQ0YuZ2V0KCldXTsKLSAgICAKLSAg
ICB3aGlsZSAoIWRvbmUpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05T
QXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLSAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVu
dFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRl
IGRpc3RhbnRQYXN0XV07Ci0gICAgICAgIFtwb29sIHJlbGVhc2VdOwotICAgIH0KKyAgICAgICAg
W1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZERhdGE6WyhfX2JyaWRnZSBOU1N0cmluZyAqKXV0ZjhE
YXRhQ0YuZ2V0KCkgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIE1JTUVU
eXBlOkAidGV4dC9odG1sIiB0ZXh0RW5jb2RpbmdOYW1lOkAidXRmLTgiIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopYmFzZVVSTENGLmdldCgpXV07CisK
KyAgICAgICAgd2hpbGUgKCFkb25lKSB7CisgICAgICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0Rl
ZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFsoRHVtcFJlbmRl
clRyZWUgKilbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gX3dhaXRGb3JXZWJUaHJl
YWRdOworICAgICAgICBbKER1bXBSZW5kZXJUcmVlICopW1VJQXBwbGljYXRpb24gc2hhcmVkQXBw
bGljYXRpb25dIF93YWl0Rm9yV2ViVGhyZWFkXTsKICNlbmRpZgogCi0gICAgW3dlYlZpZXcgY2xv
c2VdOwotICAgIFt3ZWJWaWV3IHJlbGVhc2VdOwotICAgIFtkZWxlZ2F0ZSByZWxlYXNlXTsKLSAg
ICBbcG9vbCByZWxlYXNlXTsKKyAgICAgICAgW3dlYlZpZXcgY2xvc2VdOworICAgICAgICBbd2Vi
VmlldyByZWxlYXNlXTsKKyAgICAgICAgW2RlbGVnYXRlIHJlbGVhc2VdOworICAgIH0KIH0KIAog
dm9pZCBUZXN0UnVubmVyOjphcGlUZXN0R29Ub0N1cnJlbnRCYWNrRm9yd2FyZEl0ZW0oKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXJNYWMu
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyTWFjLm0KaW5k
ZXggZjc5OTMwZDFjZTJjYWRkMmExOGYwN2JmNTQzY2E3ODA0MjBlODFmZi4uZTdkMDIzNmI3Zjkw
MDM0ZGY5NGZjNTAwYThjZDYxNGVmOTc5OWYwOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXJNYWMubQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlck1hYy5tCkBAIC01NDYsNCArNTQ2LDQgQEAgLSAo
Qk9PTClpbnRlcnByZXRLZXlFdmVudHM6KE5TQXJyYXkgKilldmVudEFycmF5IHdpdGhTZW5kZXI6
KFdlYkhUTUxWaWV3ICopc2VuZGUKIAogQGVuZAogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykK
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCA3MTcyOTg3MzE5YWEzNTllOThhZWZjYmNh
ZjM2OTIwYTFiOWQzZGRiLi5iM2FjNmFlNjljMDZjMDcxMDdhNTUxMWFjNjg0MTAzMTk5ZWY4ZTM2
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVy
TWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMubW0KQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnJlcGxhY2VU
ZXh0QXRSYW5nZShKU1N0cmluZ1JlZiB0ZXh0LCBpbnQgbG9jYXRpb24sIGludAogewogICAgIGF1
dG8gdGV4dFRvSW5zZXJ0ID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCB0ZXh0KSk7CiAgICAgYXV0byByYW5nZUF0dHJpYnV0ZSA9IGFkb3B0TlMoW1tO
U0RpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6TlNTdHJpbmdGcm9tUmFu
Z2UoTlNNYWtlUmFuZ2UobG9jYXRpb24gPT0gLTEgPyBOU05vdEZvdW5kIDogbG9jYXRpb24sIGxl
bmd0aCkpLCBOU1RleHRJbnB1dFJlcGxhY2VtZW50UmFuZ2VBdHRyaWJ1dGVOYW1lLCBuaWxdKTsK
LSAgICBhdXRvIHRleHRBbmRSYW5nZSA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxs
b2NdIGluaXRXaXRoU3RyaW5nOihOU1N0cmluZyAqKXRleHRUb0luc2VydC5nZXQoKSBhdHRyaWJ1
dGVzOnJhbmdlQXR0cmlidXRlLmdldCgpXSk7CisgICAgYXV0byB0ZXh0QW5kUmFuZ2UgPSBhZG9w
dE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzooX19icmlkZ2Ug
TlNTdHJpbmcgKil0ZXh0VG9JbnNlcnQuZ2V0KCkgYXR0cmlidXRlczpyYW5nZUF0dHJpYnV0ZS5n
ZXQoKV0pOwogCiAgICAgW21haW5GcmFtZS53ZWJWaWV3IGluc2VydFRleHQ6dGV4dEFuZFJhbmdl
LmdldCgpXTsKIH0KQEAgLTk4LDcgKzk4LDcgQEAgSlNPYmplY3RSZWYgVUlTY3JpcHRDb250cm9s
bGVyOjpjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oSlNTdHJpbmdSZWYgaW50ZXJmYWMKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbbWFpbkZyYW1l
IHdlYlZpZXddOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaW50ZXJmYWNlSXRlbUNGID0g
YWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpbnRlcmZh
Y2VJdGVtKSk7Ci0gICAgTlNEaWN0aW9uYXJ5ICpjb250ZW50RGljdGlvbmFyeSA9IFt3ZWJWaWV3
IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopaW50ZXJmYWNlSXRlbUNG
LmdldCgpXTsKKyAgICBOU0RpY3Rpb25hcnkgKmNvbnRlbnREaWN0aW9uYXJ5ID0gW3dlYlZpZXcg
X2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooX19icmlkZ2UgTlNTdHJpbmcgKilpbnRlcmZh
Y2VJdGVtQ0YuZ2V0KCldOwogICAgIHJldHVybiBKU1ZhbHVlVG9PYmplY3QobV9jb250ZXh0LT5q
c0NvbnRleHQoKSwgW0pTVmFsdWUgdmFsdWVXaXRoT2JqZWN0OmNvbnRlbnREaWN0aW9uYXJ5IGlu
Q29udGV4dDpbSlNDb250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOm1fY29udGV4
dC0+anNDb250ZXh0KCldXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKGludGVyZmFjZUl0ZW0pOwpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZVJlZiwg
SlNTdHJpbmdSCiAKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHZhbHVlID0gYWRvcHRDRihK
U1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB2YWx1ZVJlZikpOwogICAg
IGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHByZWZlcmVuY2VSZWYsICJXZWJLaXRN
aW5pbXVtRm9udFNpemUiKSkKLSAgICAgICAgcHJlZmVyZW5jZXMubWluaW11bUZvbnRTaXplID0g
WyhOU1N0cmluZyAqKXZhbHVlLmdldCgpIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgcHJlZmVyZW5j
ZXMubWluaW11bUZvbnRTaXplID0gWyhfX2JyaWRnZSBOU1N0cmluZyAqKXZhbHVlLmdldCgpIGRv
dWJsZVZhbHVlXTsKIH0KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNpbXVsYXRlUm90YXRp
b24oRGV2aWNlT3JpZW50YXRpb24qLCBKU1ZhbHVlUmVmKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1dvcmtRdWV1ZUl0ZW1NYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvV29ya1F1ZXVlSXRlbU1hYy5tbQppbmRleCAxNzQ1NWM5OGI2MDkwMDk3ODcxYzZiMGIy
ZDU3MjVhMTRhOWM0OTU4Li43Y2MxYzI5YzgwZTMxNTliOWJkZjIxODlmOTM2OTVhYzg3ZTcxOGVk
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvV29ya1F1ZXVlSXRlbU1hYy5t
bQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvV29ya1F1ZXVlSXRlbU1hYy5tbQpAQCAt
NDEsOSArNDEsOSBAQAogYm9vbCBMb2FkSXRlbTo6aW52b2tlKCkgY29uc3QKIHsKICAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHVybENGID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3VybC5nZXQoKSkpOwotICAgIE5TU3RyaW5nICp1cmxOUyA9
IChOU1N0cmluZyAqKXVybENGLmdldCgpOworICAgIE5TU3RyaW5nICp1cmxOUyA9IChfX2JyaWRn
ZSBOU1N0cmluZyAqKXVybENGLmdldCgpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGFy
Z2V0Q0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1fdGFyZ2V0LmdldCgpKSk7Ci0gICAgTlNTdHJpbmcgKnRhcmdldE5TID0gKE5TU3RyaW5nICop
dGFyZ2V0Q0YuZ2V0KCk7CisgICAgTlNTdHJpbmcgKnRhcmdldE5TID0gKF9fYnJpZGdlIE5TU3Ry
aW5nICopdGFyZ2V0Q0YuZ2V0KCk7CiAKICAgICBXZWJGcmFtZSAqdGFyZ2V0RnJhbWU7CiAgICAg
aWYgKHRhcmdldE5TICYmIFt0YXJnZXROUyBsZW5ndGhdKQpAQCAtNjEsMTEgKzYxLDExIEBAIGJv
b2wgTG9hZEhUTUxTdHJpbmdJdGVtOjppbnZva2UoKSBjb25zdAogCiAgICAgaWYgKG1fdW5yZWFj
aGFibGVVUkwpIHsKICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1bnJlYWNoYWJsZVVS
TENGID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBt
X3VucmVhY2hhYmxlVVJMLmdldCgpKSk7Ci0gICAgICAgIFttYWluRnJhbWUgbG9hZEFsdGVybmF0
ZUhUTUxTdHJpbmc6KE5TU3RyaW5nICopY29udGVudENGLmdldCgpIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6KE5TU3RyaW5nICopYmFzZVVSTENGLmdldCgpXSBmb3JVbnJlYWNoYWJsZVVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzooTlNTdHJpbmcgKil1bnJlYWNoYWJsZVVSTENGLmdldCgp
XV07CisgICAgICAgIFttYWluRnJhbWUgbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmc6KF9fYnJpZGdl
IE5TU3RyaW5nICopY29udGVudENGLmdldCgpIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
KF9fYnJpZGdlIE5TU3RyaW5nICopYmFzZVVSTENGLmdldCgpXSBmb3JVbnJlYWNoYWJsZVVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKil1bnJlYWNoYWJsZVVSTENG
LmdldCgpXV07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIFttYWluRnJhbWUg
bG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopY29udGVudENGLmdldCgpIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6KE5TU3RyaW5nICopYmFzZVVSTENGLmdldCgpXV07CisgICAgW21haW5G
cmFtZSBsb2FkSFRNTFN0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKiljb250ZW50Q0YuZ2V0KCkg
YmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKiliYXNlVVJM
Q0YuZ2V0KCldXTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNzgsNyArNzgsNyBAQCBib29s
IFJlbG9hZEl0ZW06Omludm9rZSgpIGNvbnN0CiBib29sIFNjcmlwdEl0ZW06Omludm9rZSgpIGNv
bnN0CiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzY3JpcHRDRiA9IGFkb3B0Q0YoSlNT
dHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zY3JpcHQuZ2V0KCkpKTsK
LSAgICBOU1N0cmluZyAqc2NyaXB0TlMgPSAoTlNTdHJpbmcgKilzY3JpcHRDRi5nZXQoKTsKKyAg
ICBOU1N0cmluZyAqc2NyaXB0TlMgPSAoX19icmlkZ2UgTlNTdHJpbmcgKilzY3JpcHRDRi5nZXQo
KTsKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
RnJvbVN0cmluZzpzY3JpcHROU107CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRleCBmZjI1NjkxN2ZkZGQwOTA5Yjk5OTdi
MWYyYTllYjg5YjE5MWVhMThiLi5kNjdlZTQ0MTZhNTkzYzA2ZjZlYzdjMmViYzU4MDkxZTYzYzdk
MWE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lv
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAgLTEw
OCwxMyArMTA4LDEyIEBAICsgKE5TU3RyaW5nICopc3RyaW5nV2l0aEpTU3RyaW5nUmVmOihKU1N0
cmluZ1JlZilqc1N0cmluZ1JlZgogICAgIGlmICghanNTdHJpbmdSZWYpCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgCi0gICAgQ0ZTdHJpbmdSZWYgY2ZTdHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc1N0cmluZ1JlZik7Ci0gICAgcmV0dXJuIFsoTlNT
dHJpbmcgKiljZlN0cmluZyBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIENGQnJpZGdpbmdSZWxl
YXNlKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpzU3RyaW5nUmVm
KSk7CiB9CiAKIC0gKEpTU3RyaW5nUmVmKWNyZWF0ZUpTU3RyaW5nUmVmCiB7Ci0gICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilzZWxmKTsKKyAgICByZXR1
cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXNlbGYp
OwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQppbmRleCA3
ZDQ2Nzc4OGU1NzI5N2FkMmJkNmFiMGNlN2E4ODU2MGNkMjEyZTQ5Li45ZWE2NDMyMmQxMTIyMDZk
MjkxOGFiNDQ3Y2IzNjlhYzI1ODRlYTJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21t
b25NYWMubW0KQEAgLTQyLDEzICs0MiwxMiBAQCArIChOU1N0cmluZyAqKXN0cmluZ1dpdGhKU1N0
cmluZ1JlZjooSlNTdHJpbmdSZWYpanNTdHJpbmdSZWYKICAgICBpZiAoIWpzU3RyaW5nUmVmKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQ0ZTdHJpbmdSZWYgY2ZTdHJpbmcgPSBKU1N0cmlu
Z0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc1N0cmluZ1JlZik7Ci0gICAgcmV0
dXJuIFsoTlNTdHJpbmcgKiljZlN0cmluZyBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIENGQnJp
ZGdpbmdSZWxlYXNlKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpz
U3RyaW5nUmVmKSk7CiB9CiAKIC0gKEpTU3RyaW5nUmVmKWNyZWF0ZUpTU3RyaW5nUmVmCiB7Ci0g
ICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilzZWxmKTsK
KyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKF9fYnJpZGdlIENGU3RyaW5n
UmVmKXNlbGYpOwogfQogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFj
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0KaW5kZXggNzUwZWQ4NDYyZjAyZTdiNTg2NTA0OWQwNTdkZTQ3
ODY3N2M1ZGZjMi4uMzEwZmE0ODcxNTQyZTdmOGJkYjkxMTczNjM4NTQ5OGExOWUwNGU3NyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KQEAgLTk2LDcgKzk2
LDcgQEAgc3RhdGljIGlkIGZpbmRBY2Nlc3NpYmxlT2JqZWN0QnlJZChpZCBvYmosIE5TU3RyaW5n
ICppZEF0dHJpYnV0ZSkKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkQXR0cmli
dXRlKQogewogICAgIFdLQnVuZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwotICAgIGlkIHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0Zm9y
bVVJRWxlbWVudD4oV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChwYWdlKSk7CisgICAgaWQgcm9v
dCA9IChfX2JyaWRnZSBpZClXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KHBhZ2UpOwogCiAgICAg
aWQgcmVzdWx0ID0gZmluZEFjY2Vzc2libGVPYmplY3RCeUlkKHJvb3QsIFtOU1N0cmluZyBzdHJp
bmdXaXRoSlNTdHJpbmdSZWY6aWRBdHRyaWJ1dGVdKTsKICAgICBpZiAocmVzdWx0KQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCA2
MWQ0YjI1ODQ0NWUwM2Y2OWM0ZjA1OTUyMTc1MjRkMTAxMzg4YzY4Li5mM2VjYjNiNDYwZGU2Nzk0
MGIzNjk2YmVkZDRkNTk1YzBiZjVlMmRiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtNTQsNyArNTQsNyBAQCBAaW1wbGVtZW50
YXRpb24gTlNTdHJpbmcgKEpTU3RyaW5nUmVmQWRkaXRpb25zKQogCiAtIChKU1N0cmluZ1JlZilj
cmVhdGVKU1N0cmluZ1JlZgogewotICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmlu
ZygoQ0ZTdHJpbmdSZWYpc2VsZik7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3Ry
aW5nKChfX2JyaWRnZSBDRlN0cmluZ1JlZilzZWxmKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQppbmRleCBmYWNlOTBjZTUwZTIzOTcwNGVk
MTc4NDNiMDUyNzdhMzhjOWMyMDdmLi41ZWI5NWYyMjc0MDFmODdkNmYzOWY0ZDU0OWMwZmNjODU0
NmQ3YTg3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQpA
QCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV1RSIHsKIAogYm9vbCBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlcjo6aXNFcXVhbChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogb3RoZXIpCiB7Ci0gICAg
cmV0dXJuIFsoaWQpcGxhdGZvcm1UZXh0TWFya2VyKCkgaXNFcXVhbDooaWQpb3RoZXItPnBsYXRm
b3JtVGV4dE1hcmtlcigpXTsKKyAgICByZXR1cm4gWyhfX2JyaWRnZSBpZClwbGF0Zm9ybVRleHRN
YXJrZXIoKSBpc0VxdWFsOihfX2JyaWRnZSBpZClvdGhlci0+cGxhdGZvcm1UZXh0TWFya2VyKCld
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tCmluZGV4IDIxODY0OTdkZmFhZjNmOTgzZWE1N2M0YWUy
MzFlNzA2NDRiYTBkZWMuLmQzODNkZmE0NDM0MzUxNGY5M2Y3Njc1MGJiMjg4NGZjOGRlZTk3YzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5t
bQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV1RSIHsKICAgICAKIGJvb2wgQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZTo6aXNFcXVhbChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
KiBvdGhlcikKIHsKLSAgICByZXR1cm4gWyhpZClwbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpIGlz
RXF1YWw6KGlkKW90aGVyLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKKyAgICByZXR1cm4g
WyhfX2JyaWRnZSBpZClwbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpIGlzRXF1YWw6KF9fYnJpZGdl
IGlkKW90aGVyLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKIH0KICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5k
ZXggY2NjN2YyMWFjNzhlZjY3ODFiM2IzZjE2OWVhM2IwZjk1MGIyMTQ0Mi4uOWUwNzRkMTQ5N2Zl
MjIyMTc2NmU3NTFjZDAzYWIxM2RmZTBjNDgxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNDAyLDcgKzE0MDIsNyBAQCBib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNp
Z25lZCBsZQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFZpc2libGVU
ZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogbWFya2VyUmFuZ2UpCiB7CiAg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
U2V0VmFsdWU6KGlkKW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpIGZvckF0
dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV07
CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6KF9fYnJpZGdlIGlkKW1hcmtl
clJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV07CiAgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNjcwLDcgKzE2NzAsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbigpCiBSZWZQdHI8QWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZVRleHRN
YXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJr
ZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdGV4dE1hcmtlclJh
bmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWExpbmVUZXh0
TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRNYXJrZXItPnBs
YXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYTGluZVRleHRNYXJrZXJSYW5nZUZvclRl
eHRNYXJrZXIiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1U
ZXh0TWFya2VyKCldOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpj
cmVhdGUodGV4dE1hcmtlclJhbmdlKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAg
CkBAIC0xNjkwLDcgKzE2OTAsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yRQogaW50IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUxlbmd0aChBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlKiByYW5nZSkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAg
ICBOU051bWJlciogbGVuZ3RoVmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpAIkFYTGVuZ3RoRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6KGlkKXJh
bmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKKyAgICBOU051bWJlciogbGVuZ3RoVmFs
dWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYTGVuZ3RoRm9y
VGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXJhbmdlLT5wbGF0Zm9y
bVRleHRNYXJrZXJSYW5nZSgpXTsKICAgICByZXR1cm4gW2xlbmd0aFZhbHVlIGludFZhbHVlXTsK
ICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC0xNzAwLDcgKzE3MDAsNyBAQCBp
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UqCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAg
ICBpZCBwcmV2aW91c01hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOkAiQVhQcmV2aW91c1RleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlk
KXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCBwcmV2aW91c01hcmtl
ciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1Rl
eHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJr
ZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI6OmNyZWF0ZShwcmV2aW91c01hcmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
UwogICAgIApAQCAtMTcxMCw3ICsxNzEwLDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXMKIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4
dFRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgbmV4dE1hcmtlciA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0VGV4dE1hcmtlckZvclRleHRNYXJr
ZXIiIGZvclBhcmFtZXRlcjooaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwor
ICAgIGlkIG5leHRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpAIkFYTmV4dFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdl
IGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZShuZXh0TWFya2VyKTsKICAgICBFTkRfQVhfT0JKQ19F
WENFUFRJT05TCiAgICAgCkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vz
c2liaQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0
cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiBtYXJr
ZXJSYW5nZSkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0U3Ry
aW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihpZCltYXJrZXJSYW5nZS0+cGxhdGZvcm1U
ZXh0TWFya2VyUmFuZ2UoKV07CisgICAgaWQgdGV4dFN0cmluZyA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBh
cmFtZXRlcjooX19icmlkZ2UgaWQpbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdl
KCldOwogICAgIHJldHVybiBbdGV4dFN0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl07CiAgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTczMCw3ICsxNzMwLDcgQEAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZShBY2Nlc3MKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyKiBzdGFydE1hcmtlciwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIGVuZE1h
cmtlcikKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0FycmF5KiB0ZXh0
TWFya2VycyA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6KGlkKXN0YXJ0TWFya2VyLT5wbGF0
Zm9ybVRleHRNYXJrZXIoKSwgKGlkKWVuZE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCksIG5p
bF07CisgICAgTlNBcnJheSogdGV4dE1hcmtlcnMgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Rz
OihfX2JyaWRnZSBpZClzdGFydE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCksIChfX2JyaWRn
ZSBpZCllbmRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpLCBuaWxdOwogICAgIGlkIHRleHRN
YXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhU
ZXh0TWFya2VyUmFuZ2VGb3JVbm9yZGVyZWRUZXh0TWFya2VycyIgZm9yUGFyYW1ldGVyOnRleHRN
YXJrZXJzXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3JlYXRl
KHRleHRNYXJrZXJSYW5nZSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwpAQCAtMTc2Nyw3
ICsxNzY3LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZXNldFNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlKCkKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBU
SU9OUwotICAgIGlkIHRleHRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpAIkFYU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0
ZXI6KGlkKXJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKKyAgICBpZCB0ZXh0TWFy
a2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFN0YXJ0VGV4
dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZClyYW5n
ZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyOjpjcmVhdGUodGV4dE1hcmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
UwogICAgIApAQCAtMTc3Nyw3ICsxNzc3LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWEKIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5k
VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
KiByYW5nZSkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFy
a2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEVuZFRleHRN
YXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBhcmFtZXRlcjooaWQpcmFuZ2UtPnBsYXRmb3Jt
VGV4dE1hcmtlclJhbmdlKCldOworICAgIGlkIHRleHRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYRW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5n
ZSIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZClyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFu
Z2UoKV07CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUodGV4dE1h
cmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTgxNyw3ICsxODE3
LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyRm9yUG9pbnQoaW50IHgKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRN
YXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIG1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKLSAgICBpZCB1aUVsZW1lbnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVUlFbGVtZW50Rm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVy
OihpZCltYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCB1aUVsZW1lbnQgPSBb
bV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVUlFbGVtZW50Rm9yVGV4
dE1hcmtlciIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCltYXJrZXItPnBsYXRmb3JtVGV4dE1h
cmtlcigpXTsKICAgICBpZiAodWlFbGVtZW50KQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y3JlYXRlKHVpRWxlbWVudCk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
UwpAQCAtMTgzNSw5ICsxODM1LDkgQEAgc3RhdGljIEpTU3RyaW5nUmVmIGNyZWF0ZUpTU3RyaW5n
UmVmKGlkIHN0cmluZykKICAgICAgICAgICAgIG1pc3NwZWxsZWQgPSBbW2F0dHJzIG9iamVjdEZv
cktleTpOU0FjY2Vzc2liaWxpdHlNYXJrZWRNaXNzcGVsbGVkVGV4dEF0dHJpYnV0ZV0gYm9vbFZh
bHVlXTsKICAgICAgICAgaWYgKG1pc3NwZWxsZWQpCiAgICAgICAgICAgICBbbXV0YWJsZVN0cmlu
ZyBhcHBlbmRTdHJpbmc6QCJNaXNzcGVsbGVkLCAiXTsKLSAgICAgICAgaWQgZm9udCA9IFthdHRy
aWJ1dGVzIG9iamVjdEZvcktleTooaWQpa0FYRm9udFRleHRBdHRyaWJ1dGVdOworICAgICAgICBp
ZCBmb250ID0gW2F0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5OihfX2JyaWRnZSBpZClrQVhGb250VGV4
dEF0dHJpYnV0ZV07CiAgICAgICAgIGlmIChmb250KQotICAgICAgICAgICAgW211dGFibGVTdHJp
bmcgYXBwZW5kRm9ybWF0OkAiJUAgLSAlQCwgIiwgKGlkKWtBWEZvbnRUZXh0QXR0cmlidXRlLCBm
b250XTsKKyAgICAgICAgICAgIFttdXRhYmxlU3RyaW5nIGFwcGVuZEZvcm1hdDpAIiVAIC0gJUAs
ICIsIChfX2JyaWRnZSBpZClrQVhGb250VGV4dEF0dHJpYnV0ZSwgZm9udF07CiAgICAgfTsKICAg
ICBbc3RyaW5nIGVudW1lcmF0ZUF0dHJpYnV0ZXNJblJhbmdlOk5TTWFrZVJhbmdlKDAsIFtzdHJp
bmcgbGVuZ3RoXSkgb3B0aW9uczooTlNBdHRyaWJ1dGVkU3RyaW5nRW51bWVyYXRpb25PcHRpb25z
KTAgdXNpbmdCbG9jazphdHRyaWJ1dGVFbnVtZXJhdGlvbkJsb2NrXTsKICAgICBbbXV0YWJsZVN0
cmluZyBhcHBlbmRTdHJpbmc6W3N0cmluZyBzdHJpbmddXTsKQEAgLTE4NDksNyArMTg0OSw3IEBA
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhCiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nKiBzdHJpbmcg
PSBuaWw7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBzdHJpbmcgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYQXR0cmlidXRlZFN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihpZCltYXJrZXJSYW5nZS0+cGxhdGZvcm1U
ZXh0TWFya2VyUmFuZ2UoKV07CisgICAgc3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiIGZv
clBhcmFtZXRlcjooX19icmlkZ2UgaWQpbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJh
bmdlKCldOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghW3N0cmluZyBp
c0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkKQEAgLTE4NjQsOSArMTg2
NCw5IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhCiAKICAgICBpZCBwYXJhbWV0ZXIgPSBuaWw7
CiAgICAgaWYgKGluY2x1ZGVTcGVsbENoZWNrKQotICAgICAgICBwYXJhbWV0ZXIgPSBbTlNEaWN0
aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6W05TTnVtYmVyIG51bWJlcldpdGhC
b29sOmluY2x1ZGVTcGVsbENoZWNrXSwgQCJBWFNwZWxsQ2hlY2siLCAoaWQpbWFya2VyUmFuZ2Ut
PnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCksIEAiQVhUZXh0TWFya2VyUmFuZ2UiLCBuaWxdOwor
ICAgICAgICBwYXJhbWV0ZXIgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0Fu
ZEtleXM6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOmluY2x1ZGVTcGVsbENoZWNrXSwgQCJBWFNw
ZWxsQ2hlY2siLCAoX19icmlkZ2UgaWQpbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJh
bmdlKCksIEAiQVhUZXh0TWFya2VyUmFuZ2UiLCBuaWxdOwogICAgIGVsc2UKLSAgICAgICAgcGFy
YW1ldGVyID0gKGlkKW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpOworICAg
ICAgICBwYXJhbWV0ZXIgPSAoX19icmlkZ2UgaWQpbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1h
cmtlclJhbmdlKCk7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBzdHJpbmcg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYQXR0cmlidXRlZFN0
cmluZ0ZvclRleHRNYXJrZXJSYW5nZVdpdGhPcHRpb25zIiBmb3JQYXJhbWV0ZXI6cGFyYW1ldGVy
XTsKQEAgLTE4ODEsNyArMTg4MSw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhCiBib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VD
b250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUsIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UqIHJhbmdlKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAg
IE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0
cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBh
cmFtZXRlcjooaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCldOworICAgIE5TQXR0
cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiIGZvclBhcmFtZXRl
cjooX19icmlkZ2UgaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCldOwogICAgIGlm
ICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAtMTg5Niw3ICsxODk2LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29u
dGFpbnNBdHRyaWJ1dGUKIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRleHRN
YXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIG1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKLSAgICBOU051bWJlciogaW5kZXhOdW1iZXIgPSBbbV9lbGVtZW50IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYSW5kZXhGb3JUZXh0TWFya2VyIiBmb3JQYXJh
bWV0ZXI6KGlkKW1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOworICAgIE5TTnVtYmVyKiBp
bmRleE51bWJlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhJ
bmRleEZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpbWFya2VyLT5wbGF0
Zm9ybVRleHRNYXJrZXIoKV07CiAgICAgcmV0dXJuIFtpbmRleE51bWJlciBpbnRWYWx1ZV07CiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTkwNiw3ICsxOTA2LDcgQEAgaW50
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlciogbWFya2VyKQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1RleHRN
YXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU051bWJlciogdmFsaWROdW1iZXIgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVGV4dE1hcmtlcklzVmFsaWQi
IGZvclBhcmFtZXRlcjooaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOworICAg
IE5TTnVtYmVyKiB2YWxpZE51bWJlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOkAiQVhUZXh0TWFya2VySXNWYWxpZCIgZm9yUGFyYW1ldGVyOihfX2JyaWRnZSBpZCl0
ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiAgICAgcmV0dXJuIFt2YWxpZE51bWJl
ciBib29sVmFsdWVdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE5NDYs
NyArMTk0Niw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlcigpCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGVmdFdvcmRUZXh0TWFya2VyUmFuZ2VG
b3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhMZWZ0V29yZFRleHRNYXJrZXJS
YW5nZUZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjooaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1U
ZXh0TWFya2VyKCldOworICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhMZWZ0V29yZFRleHRNYXJrZXJSYW5nZUZvclRleHRN
YXJrZXIiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0
TWFya2VyKCldOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpjcmVh
dGUodGV4dE1hcmtlclJhbmdlKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBA
IC0xOTU2LDcgKzE5NTYsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGVmdFdvcmRUZXh0TWFya2VyUgogUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJpZ2h0V29y
ZFRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRl
eHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdGV4dE1h
cmtlclJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFJp
Z2h0V29yZFRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjooaWQpdGV4
dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOworICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9
IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhSaWdodFdvcmRUZXh0
TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRN
YXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZTo6Y3JlYXRlKHRleHRNYXJrZXJSYW5nZSk7CiAgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUwogICAgIApAQCAtMTk2Niw3ICsxOTY2LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJpZ2h0V29yZFRleHRN
YXJrZXIKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cHJldmlvdXNXb3JkU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElP
TlMKLSAgICBpZCBwcmV2aW91c1dvcmRTdGFydE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1dvcmRTdGFydFRleHRNYXJrZXJGb3JUZXh0
TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigp
XTsKKyAgICBpZCBwcmV2aW91c1dvcmRTdGFydE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1dvcmRTdGFydFRleHRNYXJrZXJGb3JUZXh0
TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4
dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZShw
cmV2aW91c1dvcmRTdGFydE1hcmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogICAg
IApAQCAtMTk3Niw3ICsxOTc2LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1dvcmRTdGFydFRleHRNYXIKIFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFdvcmRF
bmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1h
cmtlcikKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBuZXh0V29yZEVu
ZE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0
V29yZEVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRNYXJr
ZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCBuZXh0V29yZEVuZE1hcmtlciA9IFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0V29yZEVuZFRleHRN
YXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJrZXIt
PnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI6OmNyZWF0ZShuZXh0V29yZEVuZE1hcmtlcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
UwogICAgIApAQCAtMTk4Niw3ICsxOTg2LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0V29yZEVuZFRleHRNYXJrZXJGb3IKIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpwYXJhZ3JhcGhUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAg
IGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOkAiQVhQYXJhZ3JhcGhUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0
ZXI6KGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCB0ZXh0TWFy
a2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUGFy
YWdyYXBoVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihfX2JyaWRn
ZSBpZCl0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CiAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2VyUmFuZ2UpOwogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTE5OTYsNyArMTk5Niw3IEBAIFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJh
Z3JhcGhUZXh0TWFya2VyCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzUGFyYWdyYXBoU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAgICBCRUdJTl9B
WF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBwcmV2aW91c1BhcmFncmFwaFN0YXJ0TWFya2VyID0g
W21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFByZXZpb3VzUGFyYWdy
YXBoU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFy
a2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CisgICAgaWQgcHJldmlvdXNQYXJhZ3JhcGhTdGFy
dE1hcmtlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2
aW91c1BhcmFncmFwaFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjoo
X19icmlkZ2UgaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwogICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKHByZXZpb3VzUGFyYWdyYXBoU3RhcnRN
YXJrZXIpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTIwMDYsNyArMjAw
Niw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cHJldmlvdXNQYXJhZ3JhcGhTdGFydFRlCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRQYXJhZ3JhcGhFbmRUZXh0TWFya2Vy
Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBuZXh0UGFyYWdyYXBoRW5kTWFya2Vy
ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWE5leHRQYXJhZ3Jh
cGhFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOihpZCl0ZXh0TWFya2Vy
LT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CisgICAgaWQgbmV4dFBhcmFncmFwaEVuZE1hcmtlciA9
IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0UGFyYWdyYXBo
RW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjooX19icmlkZ2UgaWQpdGV4
dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcjo6Y3JlYXRlKG5leHRQYXJhZ3JhcGhFbmRNYXJrZXIpOwogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTIwMTYsNyArMjAxNiw3IEBAIFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFBhcmFncmFwaEVu
ZFRleHRNYXJrCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VudGVuY2VUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOkAiQVhTZW50ZW5jZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIi
IGZvclBhcmFtZXRlcjooaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOworICAg
IGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOkAiQVhTZW50ZW5jZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRl
cjooX19icmlkZ2UgaWQpdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwogICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpjcmVhdGUodGV4dE1hcmtlclJhbmdl
KTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC0yMDI2LDcgKzIwMjYsNyBA
QCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VudGVuY2VUZXh0TWFya2VyUgogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1NlbnRlbmNlU3RhcnRUZXh0TWFya2Vy
Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBwcmV2aW91c1BhcmFncmFwaFN0YXJ0
TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFByZXZp
b3VzU2VudGVuY2VTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlk
KXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCBwcmV2aW91c1BhcmFn
cmFwaFN0YXJ0TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
QCJBWFByZXZpb3VzU2VudGVuY2VTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJh
bWV0ZXI6KF9fYnJpZGdlIGlkKXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZShwcmV2aW91c1BhcmFncmFw
aFN0YXJ0TWFya2VyKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC0yMDM2
LDcgKzIwMzYsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRleAogUmVmUHRyPEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0
TWFya2VyRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikK
IHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBuZXh0UGFyYWdyYXBoRW5k
TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWE5leHRT
ZW50ZW5jZUVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KGlkKXRleHRN
YXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKKyAgICBpZCBuZXh0UGFyYWdyYXBoRW5kTWFy
a2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWE5leHRTZW50
ZW5jZUVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6KF9fYnJpZGdlIGlk
KXRleHRNYXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI6OmNyZWF0ZShuZXh0UGFyYWdyYXBoRW5kTWFya2VyKTsKICAgICBFTkRf
QVhfT0JKQ19FWENFUFRJT05TCiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggODNkYTM2NjU0MDYyYTI0Y2I5NDMy
MTA1N2U2YWQ2ZTc2NzY1ODMwOS4uMzMzYTllOTQ5ZGJkZjk2MDExMmQwMmE1ZTg0ZmEzZWVlYzM2
NTU2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbQpAQCAtNjEsOCArNjEsOCBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29u
ZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQog
ICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbiByZWxlYXNlXTsKICAgICBnbG9iYWxXZWJW
aWV3Q29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF07
CiAKLSAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IChXS1Byb2Nl
c3NQb29sICopY29udGV4dDsKLSAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRl
RGF0YVN0b3JlID0gKFdLV2Vic2l0ZURhdGFTdG9yZSAqKVdLQ29udGV4dEdldFdlYnNpdGVEYXRh
U3RvcmUoY29udGV4dCk7CisgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bv
b2wgPSAoX19icmlkZ2UgV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQ7CisgICAgZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IChfX2JyaWRnZSBXS1dlYnNpdGVEYXRh
U3RvcmUgKilXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKGNvbnRleHQpOwogICAgIGdsb2Jh
bFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9
IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0g
WUVTOwogCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0
aW9uKGNvbnN0IGNoYXIqIGxpYnJhcnlQYXRoLCBXS1N0cmluZ1JlZiBpbmplY3RlCiAgICAgV0tD
b29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb250ZXh0R2V0Q29va2ll
TWFuYWdlcihjb250ZXh0KSwgdHJ1ZSk7CiAjZW5kaWYKIAotICAgIFdLV2Vic2l0ZURhdGFTdG9y
ZSogcG9vbFdlYnNpdGVEYXRhU3RvcmUgPSAoV0tXZWJzaXRlRGF0YVN0b3JlICopV0tDb250ZXh0
R2V0V2Vic2l0ZURhdGFTdG9yZSgoV0tDb250ZXh0UmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0
aW9uLnByb2Nlc3NQb29sKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmUqIHBvb2xXZWJzaXRlRGF0
YVN0b3JlID0gKF9fYnJpZGdlIFdLV2Vic2l0ZURhdGFTdG9yZSAqKVdLQ29udGV4dEdldFdlYnNp
dGVEYXRhU3RvcmUoKF9fYnJpZGdlIFdLQ29udGV4dFJlZilnbG9iYWxXZWJWaWV3Q29uZmlndXJh
dGlvbi5wcm9jZXNzUG9vbCk7CiAgICAgW3Bvb2xXZWJzaXRlRGF0YVN0b3JlIF9zZXRDYWNoZVN0
b3JhZ2VQZXJPcmlnaW5RdW90YTogNDAwICogMTAyNF07CiAgICAgaWYgKGxpYnJhcnlQYXRoKSB7
CiAgICAgICAgIFN0cmluZyBjYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBTdHJpbmcobGlicmFyeVBh
dGgpICsgJy8nICsgIkNhY2hlU3RvcmFnZSI7CkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y29jb2FQbGF0Zm9ybUluaXRpYWxpemUoKQogV0tDb250ZXh0UmVmIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUNvbnRleHQoKQogewogI2lmIFdLX0FQSV9FTkFCTEVECi0gICAg
cmV0dXJuIChXS0NvbnRleHRSZWYpZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bv
b2w7CisgICAgcmV0dXJuIChfX2JyaWRnZSBXS0NvbnRleHRSZWYpZ2xvYmFsV2ViVmlld0NvbmZp
Z3VyYXRpb24ucHJvY2Vzc1Bvb2w7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlm
CkBAIC0xMjIsNyArMTIyLDcgQEAgV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUNvbnRleHQoKQogV0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVm
ZXJlbmNlcygpCiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQKLSAgICByZXR1cm4gKFdLUHJlZmVyZW5j
ZXNSZWYpZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXM7CisgICAgcmV0dXJu
IChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnBy
ZWZlcmVuY2VzOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgpAQCAtMTc0LDcg
KzE3NCw3IEBAIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RDb250
ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRlCiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQK
ICAgICBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24obGlicmFyeVBhdGhGb3JUZXN0aW5n
KCksIGluamVjdGVkQnVuZGxlUGF0aCgpLCBjb250ZXh0LCBjb250ZXh0Q29uZmlndXJhdGlvbik7
Ci0gICAgcmV0dXJuIChXS0NvbnRleHRSZWYpZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJv
Y2Vzc1Bvb2w7CisgICAgcmV0dXJuIChfX2JyaWRnZSBXS0NvbnRleHRSZWYpZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2w7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdl
YlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdN
YWMubW0KaW5kZXggNGJlY2M2OTM0ZjE5ZjVlNTY5NzdlOTFjMDI1Nzg0ODNmYTE3OTBjZS4uMTE1
Y2YwMzk1YTMzNTU1OWExMGY5OGEzMjk2NmRiZWViMTgyZGI3OSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMTM4LDcgKzEzOCw3
IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24qIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFRlCiAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHNldFZhbHVlOkBZRVMgZm9yS2V5OkAiV2ViS2l0MlVzZVJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhIl07CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29waWVkQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW2NvbmZpZ3VyYXRpb24gY29w
eV0pOwotICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQoKFdLUHJl
ZmVyZW5jZXNSZWYpW2NvcGllZENvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLCBtX29wdGlvbnMu
dXNlVGhyZWFkZWRTY3JvbGxpbmcpOworICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9s
bGluZ0VuYWJsZWQoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvcGllZENvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdLCBtX29wdGlvbnMudXNlVGhyZWFkZWRTY3JvbGxpbmcpOwogCiAgICAg
TlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgs
IFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKICAgICBtX3ZpZXcgPSBbW1Rlc3RSdW5uZXJX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb25maWd1cmF0aW9uOmNvcGllZENv
bmZpZ3VyYXRpb24uZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvVGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0
Q29udHJvbGxlck1hYy5tbQppbmRleCBjOTIwOTY5ODk0N2MyZjZkYjhiYmZjZGUwZTYwZjcwNDZl
ZTNiOWM2Li5lODAwOTQ4NDRlNjcxY2UyYjc5NWU1NDEyZjBhNmUwNzcyYzc5MTc0IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtOTAs
MTIgKzkwLDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCiB2b2lk
IFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQYXRoKCkKIHsKICAgICBO
U1N0cmluZyAqbnNCdW5kbGVQYXRoID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0
aF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViS2l0VGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlLmJ1bmRsZSJdOwotICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3Ry
aW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZiluc0J1bmRsZVBhdGgpKTsKKyAgICBt
X2luamVjdGVkQnVuZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpbnNCdW5kbGVQYXRoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmluaXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5KCkKIHsKLSAgICBtX3Rlc3RQbHVnaW5E
aXJlY3RvcnkuYWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKVtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0pKTsKKyAgICBtX3Rlc3RQbHVnaW5EaXJl
Y3RvcnkuYWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKF9fYnJpZGdlIENGU3RyaW5n
UmVmKVtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0pKTsKIH0KIAogdm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkK
QEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3Vy
ZVZpZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQogICAgICAgICByZXR1cm47
CiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHRlc3RVUkwgPSBhZG9wdENGKFdLVVJMQ29weUNG
VVJMKGtDRkFsbG9jYXRvckRlZmF1bHQsIHRlc3QudXJsKCkpKTsKLSAgICBOU1VSTCAqZmlsdGVy
VVJMID0gWyhOU1VSTCAqKXRlc3RVUkwuZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoRXh0ZW5zaW9u
OkAianNvbiJdOworICAgIE5TVVJMICpmaWx0ZXJVUkwgPSBbKF9fYnJpZGdlIE5TVVJMICopdGVz
dFVSTC5nZXQoKSBVUkxCeUFwcGVuZGluZ1BhdGhFeHRlbnNpb246QCJqc29uIl07CiAKICAgICBO
U1N0cmluZ0VuY29kaW5nIGVuY29kaW5nOwogICAgIE5TU3RyaW5nICpjb250ZW50RXh0ZW5zaW9u
U3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDb250ZW50c09mVVJMOmZpbHRlclVS
TCB1c2VkRW5jb2Rpbmc6JmVuY29kaW5nIGVycm9yOk5VTExdOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IDIyZmQzNWYw
M2U4ZmY1ZGIwNzk1ZTdhMWQyOWQwMzg0OGM5OTc4NDYuLjFmNGVlZDQzOWNiZDQ0ZTlhZTBlMDdh
OTEyZGJmMzA3NTVlNjVmNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFj
L1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdU
UiB7CiAKIE5TU3RyaW5nICpuc1N0cmluZyhKU1N0cmluZ1JlZiBzdHJpbmcpCiB7Ci0gICAgcmV0
dXJuIChOU1N0cmluZyAqKWFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgc3RyaW5nKSkuYXV0b3JlbGVhc2UoKTsKKyAgICByZXR1cm4gQ0ZCcmlkZ2luZ1Jl
bGVhc2UoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RyaW5nKSk7
CiB9CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKQpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21w
bGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQogdm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBldmVudFN0cmVhbSwg
SlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cmVh
bSA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZXZl
bnRTdHJlYW0pKTsKLSAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIChOU1N0cmluZyAqKXN0
cmVhbS5nZXQoKSwgY2FsbGJhY2spOworICAgIHBsYXlCYWNrRXZlbnRzKG1fY29udGV4dCwgKF9f
YnJpZGdlIE5TU3RyaW5nICopc3RyZWFtLmdldCgpLCBjYWxsYmFjayk7CiB9CiAKIHZvaWQgVUlT
Y3JpcHRDb250cm9sbGVyOjpmaXJzdFJlc3BvbmRlclN1cHByZXNzaW9uRm9yV2ViVmlldyhib29s
IHNob3VsZFN1cHByZXNzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
V2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8ubW0KaW5kZXggMWVhMmM4NDMxODJjMzA4
YTIyZDkyM2M2YjAxMmM2YTFhZTBjY2JlYS4uNTY1ZGIyZjEyNGY4ZjJjMzI0OGU5YzMyMWJjYzhl
OWM4ZGRjYjhlMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0
VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1w
b3J0ICJFdmVudFNlbmRlclByb3h5LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNp
bXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCisjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJWaWV3Lmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBXVFI7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0KaW5kZXggNjNkZjFhM2M2
YmIxYWIxNWE1ZWRlYzJmNjhjZTYwMDE2OGM0NTI3ZS4uYTI2MTgwZTAxZjQxMTg1MDY5OWQxZmNi
YTExYWM5ZDY1NjYzYzM1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
V2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0KQEAgLTE4OSw4ICsxODksOCBAQCAt
IChCT09MKXNldFByb3BlcnR5TGlzdDooaWQpcHJvcGVydHlMaXN0IGZvclR5cGU6KE5TU3RyaW5n
ICopZGF0YVR5cGUKIHsKICAgICBDRkRhdGFSZWYgZGF0YSA9IDA7CiAgICAgaWYgKHByb3BlcnR5
TGlzdCkKLSAgICAgICAgZGF0YSA9IENGUHJvcGVydHlMaXN0Q3JlYXRlWE1MRGF0YSgwLCBwcm9w
ZXJ0eUxpc3QpOwotICAgIEJPT0wgcmVzdWx0ID0gW3NlbGYgc2V0RGF0YTooTlNEYXRhICopZGF0
YSBmb3JUeXBlOmRhdGFUeXBlXTsKKyAgICAgICAgZGF0YSA9IENGUHJvcGVydHlMaXN0Q3JlYXRl
WE1MRGF0YSgwLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKXByb3BlcnR5TGlzdCk7CisgICAgQk9PTCBy
ZXN1bHQgPSBbc2VsZiBzZXREYXRhOihfX2JyaWRnZSBOU0RhdGEgKilkYXRhIGZvclR5cGU6ZGF0
YVR5cGVdOwogICAgIGlmIChkYXRhKQogICAgICAgICBDRlJlbGVhc2UoZGF0YSk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKQEAgLTIwNSw3ICsyMDUsNyBAQCAtIChCT09MKXNldFN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgZm9yVHlwZTooTlNTdHJpbmcgKilkYXRhVHlwZQogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBkYXRhID0gQ0ZTdHJpbmdDcmVhdGVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKDAs
IChDRlN0cmluZ1JlZilzdHJpbmcsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwgMCk7CiAgICAgfQot
ICAgIEJPT0wgcmVzdWx0ID0gW3NlbGYgc2V0RGF0YTooTlNEYXRhICopZGF0YSBmb3JUeXBlOmRh
dGFUeXBlXTsKKyAgICBCT09MIHJlc3VsdCA9IFtzZWxmIHNldERhdGE6KF9fYnJpZGdlIE5TRGF0
YSAqKWRhdGEgZm9yVHlwZTpkYXRhVHlwZV07CiAgICAgaWYgKGRhdGEpCiAgICAgICAgIENGUmVs
ZWFzZShkYXRhKTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvbWFpbi5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21haW4u
bW0KaW5kZXggNjYzN2RiMmQ3ODcxNjU2NTNkZDFhNGE5OGRmZDQ5OGIyOTZlNzI1OS4uNmIzNWI5
NjJmZjRkMzg5YmE2MGQxYjUxMzMzNjgyZWYyOTE2NjI1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9tYWluLm1tCkBAIC01NywxNSArNTcsMTIgQEAgc3RhdGljIHZvaWQgZGlzYWJsZUFwcE5hcElu
VUlQcm9jZXNzKCkKIAogaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKIHsK
LSAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2Nd
IGluaXRdOwotICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKLSAgICBzZXRE
ZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlc0ZvclRlc3RpbmcoKTsKLSAgICBkaXNhYmxlQXBwTmFw
SW5VSVByb2Nlc3MoKTsgLy8gRm9yIHNlY29uZGFyeSBwcm9jZXNzZXMsIGFwcCBuYXAgaXMgZGlz
YWJsZWQgdXNpbmcgV0tQcmVmZXJlbmNlc1NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKCkuCi0KLSAgICB7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAg
ICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKKyAgICAgICAgc2V0RGVmYXVs
dHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCk7CisgICAgICAgIGRpc2FibGVBcHBOYXBJ
blVJUHJvY2VzcygpOyAvLyBGb3Igc2Vjb25kYXJ5IHByb2Nlc3NlcywgYXBwIG5hcCBpcyBkaXNh
YmxlZCB1c2luZyBXS1ByZWZlcmVuY2VzU2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBw
cmVzc2lvbkVuYWJsZWQoKS4KICAgICAgICAgV1RSOjpUZXN0Q29udHJvbGxlciBjb250cm9sbGVy
KGFyZ2MsIGFyZ3YpOwogICAgIH0KLSAgICBbcG9vbCBkcmFpbl07CiAgICAgcmV0dXJuIDA7CiB9
CiAK
</data>
<flag name="review"
          id="359999"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>