<?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>140764</bug_id>
          
          <creation_ts>2015-01-22 07:19:07 -0800</creation_ts>
          <short_desc>Fix unused parameter warnings and handle them as build error</short_desc>
          <delta_ts>2015-03-05 06:07:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063354</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-22 07:19:07 -0800</bug_when>
    <thetext>I noticed zillion patches fix newly introduced unused parameter
warnings on GTK and EFL. Now they are handled as warnings, not error.
Mac port handles unused parameters as build error, except in WebKit,
WebKit2 and WebInspectorUI. ( WebInspectorUI is warning free now, but 
there are zillion warnings in WebKit and Webkit2. )

I think we should stop this dog-cat game, introducing new 
warnings, fixing them, new warnings, fixing them ...

I propose fixing all of them now and then handle them as errors
to avoid introducing these warnings again and again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063355</commentid>
    <comment_count>1</comment_count>
      <attachid>245141</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-22 07:23:27 -0800</bug_when>
    <thetext>Created attachment 245141
Patch

WIP patch for bots (tested on EFL and Mac locally)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063356</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 07:27:28 -0800</bug_when>
    <thetext>Attachment 245141 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:539:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:399:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:404:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:410:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:415:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.cpp:383:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:181:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:3031:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:308:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/Shared/mac/ObjCObjectGraph.mm:54:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/Shared/mac/ObjCObjectGraph.mm:178:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 11 in 78 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063357</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-22 07:28:32 -0800</bug_when>
    <thetext>note: I haven&apos;t fixed WebKit1 and don&apos;t want to do it, because it 
is used by only Apple, warnings in it don&apos;t affect GTK and EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064152</commentid>
    <comment_count>4</comment_count>
      <attachid>245347</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-26 06:27:57 -0800</bug_when>
    <thetext>Created attachment 245347
Patch

updated to ToT + check iOS EWS too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064153</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-26 06:30:04 -0800</bug_when>
    <thetext>Attachment 245347 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:539:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:399:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:404:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:410:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm:415:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.cpp:383:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:181:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:3031:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:308:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/Shared/mac/ObjCObjectGraph.mm:54:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/Shared/mac/ObjCObjectGraph.mm:178:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 11 in 78 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074490</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-05 06:07:17 -0800</bug_when>
    <thetext>webkit-dev thread: https://lists.webkit.org/pipermail/webkit-dev/2015-January/027184.html

It would be too big change, close as wontfix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245141</attachid>
            <date>2015-01-22 07:23:27 -0800</date>
            <delta_ts>2015-01-22 07:23:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140764-20150122072333.patch</filename>
            <type>text/plain</type>
            <size>139327</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
NmRhYzUxOTg0MjkwNGViMWMzZmE0ZTIyNjdkMmNmNjkyOTI4ZTA5Li40OGM3YzdhN2M0ZTk0MGU2
ZmM4OWY3MjQ1ZWY4ODA3MjI4OGUzMDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wMS0yMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFuZCBoYW5kbGUg
dGhlbSBhcyBidWlsZCBlcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQwNzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDE1LTAxLTIy
ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEV4cGVjdGVkIGd1dHRlciBoaWdobGlnaHQgd2hlbiBzZWxlY3RpbmcgY29uc29s
ZSBpbnB1dCBsaW5lLCBqdXN0IGxpa2Ugb3V0cHV0IGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmZjViYzQx
NDkwYTA4OWI4NmU1ZDRlNDlhNzZiODgwYWUzM2ZlODFmLi41MTU3MWQyM2VjYTMwYzJlZjU0ODE1
YTNkMGIwZjFkMmViNmJkY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIxIEBACisyMDE1LTAx
LTIyICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4
IHVudXNlZCBwYXJhbWV0ZXIgd2FybmluZ3MgYW5kIGhhbmRsZSB0aGVtIGFzIGJ1aWxkIGVycm9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA3NjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJh
Y2tpbmdTdG9yZVNRTGl0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0S2V5UmFuZ2VSZWNvcmRGcm9tT2Jq
ZWN0U3RvcmUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbToK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2lsbFNlbmRTeW5jTWVzc2FnZSk6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jUmVwbHkpOgorICAgICAgICAqIFBsYXRm
b3JtL21hYy9Xb3JrUXVldWVNYWMuY3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVBy
b2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgIChBUEk6
Ok9iamVjdEltcGw6Om9wZXJhdG9yIG5ldyk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9f
V0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5kbGUgY29weVdpdGhab25l
Ol0pOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnku
bW06CisgICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IHVucmVnaXN0ZXJFeHBvcnRl
ZE9iamVjdDppbnRlcmZhY2U6XSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRl
ZEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXS0dyYXBoaWNzQ29udGV4dEdldENHQ29udGV4dCk6
CisgICAgICAgICogU2hhcmVkL0FQSS9jL2NmL1dLRXJyb3JDRi5jcHA6CisgICAgICAgIChXS0Vy
cm9yQ29weUNGRXJyb3IpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tOgor
ICAgICAgICAoV0tVUkxDb3B5Q0ZVUkwpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XS05TQXJy
YXkubW06CisgICAgICAgICgtW1dLTlNBcnJheSBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICog
U2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tOgorICAgICAgICAoLVtXS05TRGF0YSBjb3B5V2l0aFpv
bmU6XSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tOgorICAgICAg
ICAoLVtXS05TRGljdGlvbmFyeSBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICogU2hhcmVkL0Nv
Y29hL1dLTlNFcnJvci5tbToKKyAgICAgICAgKC1bV0tOU0Vycm9yIGNvcHlXaXRoWm9uZTpdKToK
KyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV0tOU1N0cmluZy5tbToKKyAgICAgICAgKC1bV0tOU1N0
cmluZyBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dLTlNVUkwubW06
CisgICAgICAgICgtW1dLTlNVUkwgY29weVdpdGhab25lOl0pOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9XS05TVVJMUmVxdWVzdC5tbToKKyAgICAgICAgKC1bV0tOU1VSTFJlcXVlc3QgY29weVdp
dGhab25lOl0pOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XS09iamVjdC5tbToKKyAgICAgICAg
KC1bV0tPYmplY3QgZm9yd2FyZGluZ1RhcmdldEZvclNlbGVjdG9yOl0pOgorICAgICAgICAqIFNo
YXJlZC9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24pOgorICAgICAgICAoLVtXS0Rvd25sb2FkQXNEZWxl
Z2F0ZSBkb3dubG9hZERpZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0Rvd25sb2FkQXNEZWxlZ2F0
ZSBkb3dubG9hZDp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAg
KC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxvYWQ6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZTpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxv
YWQ6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOl0pOgorICAgICAgICAoLVtXS0Rv
d25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZDpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxvYWRTaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZTpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93
bmxvYWQ6ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXS0Rvd25sb2FkQXNEZWxl
Z2F0ZSBkb3dubG9hZDp3aWxsUmVzdW1lV2l0aFJlc3BvbnNlOmZyb21CeXRlOl0pOgorICAgICAg
ICAoLVtXS0Rvd25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZDpkaWRSZWNlaXZlRGF0YU9mTGVuZ3Ro
Ol0pOgorICAgICAgICAoLVtXS0Rvd25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZDpzaG91bGREZWNv
ZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZTpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdh
dGUgZG93bmxvYWQ6ZGlkQ3JlYXRlRGVzdGluYXRpb246XSk6CisgICAgICAgICgtW1dLRG93bmxv
YWRBc0RlbGVnYXRlIGRvd25sb2FkRGlkRmluaXNoOl0pOgorICAgICAgICAqIFNoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50
Lm1tOgorICAgICAgICAoV2ViS2l0OjpyZWV4ZWNDYWxsQmFjayk6CisgICAgICAgIChtYWluKToK
KyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENT
ZXJ2aWNlTWFpbi5tbToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAg
ICAgICAgKCtbV0tDdXN0b21Qcm90b2NvbCByZXF1ZXN0SXNDYWNoZUVxdWl2YWxlbnQ6dG9SZXF1
ZXN0Ol0pOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OnNoYXJlYWJsZVJlc291cmNlRGVhbGxvY2F0ZSk6CisgICAgICAgICogU2hhcmVk
L21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2ll
U3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL09iakNPYmplY3RHcmFwaC5tbToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkVHJhbnNmb3Jt
R3JhcGgpOgorICAgICAgICAoV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6OmVuY29kZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKEFQ
STo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vic2l0ZURhdGFEaXJlY3RvcnlGaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0
ZU1hYy5tbToKKyAgICAgICAgKFdLQ29udGV4dElzUGx1Z0luVXBkYXRlQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdLQ29udGV4dFJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2wpOgorICAgICAg
ICAoV0tDb250ZXh0VW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAg
ICAgICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAo
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKGRpZENv
bW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZSk6CisgICAgICAgIChkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKToKKyAgICAgICAgKGRpZFN0YXJ0UHJvZ3Jl
c3MpOgorICAgICAgICAoZGlkRmluaXNoUHJvZ3Jlc3MpOgorICAgICAgICAoZGlkQ2hhbmdlQmFj
a0ZvcndhcmRMaXN0KToKKyAgICAgICAgKHByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChzZXRV
cFBhZ2VQb2xpY3lDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFt
ZUluZm8ubW06CisgICAgICAgICgtW1dLRnJhbWVJbmZvIGNvcHlXaXRoWm9uZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbToKKyAgICAgICAgKC1bV0tV
c2VyU2NyaXB0IGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoQ29kZXI6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyByZXNpemVTdWJ2aWV3c1dpdGhPbGRTaXplOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldEFsbG93c1JlbW90ZUluc3BlY3Rpb246XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0Rm9ybURlbGVnYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZ29C
YWNrOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZ29Gb3J3YXJkOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgcmVsb2FkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVsb2FkRnJvbU9yaWdp
bjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHN0b3BMb2FkaW5nOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAg
ICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbToKKyAgICAgICAgKC1b
X1dLVGh1bWJuYWlsVmlldyBzZXRVc2VzU25hcHNob3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgY2VudGVyU2VsZWN0aW9uSW5W
aXNpYmxlQXJlYTpdKToKKyAgICAgICAgKC1bV0tWaWV3IHN0YXJ0U3BlYWtpbmc6XSk6CisgICAg
ICAgICgtW1dLVmlldyBjaGVja1NwZWxsaW5nOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xl
Q29udGludW91c1NwZWxsQ2hlY2tpbmc6XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVHcmFt
bWFyQ2hlY2tpbmc6XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb246XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVTbWFydEluc2VydERlbGV0
ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9u
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xlQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbjpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHRvZ2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb246XSk6Cisg
ICAgICAgICgtW1dLVmlldyB0b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnQ6XSk6CisgICAg
ICAgICgtW1dLVmlldyB1cHBlcmNhc2VXb3JkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbG93ZXJj
YXNlV29yZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGNhcGl0YWxpemVXb3JkOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgX3dhbnRzS2V5RG93bkZvckV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcg
ZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgcHJl
cGFyZUZvckRyYWdPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBfaGl0VGVzdDpkcmFn
VHlwZXM6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlU2NyZWVuOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZzpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF93aW5kb3dEaWRSZXNpZ25LZXk6XSk6CisgICAgICAgICgtW1dLVmlldyBf
d2luZG93RGlkTWluaWF0dXJpemU6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkRGVt
aW5pYXR1cml6ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRNb3ZlOl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZFJlc2l6ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93
aW5kb3dEaWRPcmRlck9mZlNjcmVlbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRP
cmRlck9uU2NyZWVuOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICgt
W1dLVmlldyBfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1dLVmlldyBfYXBw
bGljYXRpb25XaWxsVGVybWluYXRlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2RpY3Rpb25hcnlM
b29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXNzaWJpbGl0
eUhpdFRlc3Q6XSk6CisgICAgICAgICgtW1dLVmlldyBhZGRUcmFja2luZ1JlY3Q6b3duZXI6dXNl
ckRhdGE6YXNzdW1lSW5zaWRlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2FkZFRyYWNraW5nUmVj
dDpvd25lcjp1c2VyRGF0YTphc3N1bWVJbnNpZGU6dXNlVHJhY2tpbmdOdW06XSk6CisgICAgICAg
ICgtW1dLVmlldyBfYWRkVHJhY2tpbmdSZWN0czpvd25lcjp1c2VyRGF0YUxpc3Q6YXNzdW1lSW5z
aWRlTGlzdDp0cmFja2luZ051bXM6Y291bnQ6XSk6CisgICAgICAgICgtW1dLVmlldyB2aWV3OnN0
cmluZ0ZvclRvb2xUaXA6cG9pbnQ6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLVmlldyBwYXN0
ZWJvYXJkQ2hhbmdlZE93bmVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2FjdGlvbk1lbnVJdGVt
c0ZvckhpdFRlc3RSZXN1bHQ6d2l0aFR5cGU6ZGVmYXVsdEFjdGlvbk1lbnVJdGVtczpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF9hY3Rpb25NZW51SXRlbXNGb3JIaXRUZXN0UmVzdWx0OndpdGhUeXBl
OmRlZmF1bHRBY3Rpb25NZW51SXRlbXM6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLVmlldyBf
aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6d2l0aFR5
cGU6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLUmVzcG9uZGVyQ2hhaW5TaW5rIG5vUmVzcG9u
ZGVyRm9yOl0pOgorICAgICAgICAoLVtXS1Jlc3BvbmRlckNoYWluU2luayBkb0NvbW1hbmRCeVNl
bGVjdG9yOl0pOgorICAgICAgICAoLVtXS1Jlc3BvbmRlckNoYWluU2luayB0cnlUb1BlcmZvcm06
d2l0aDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVu
dDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5h
dmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6TG9hZGVyQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkQ29t
bWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpMb2Fk
ZXJDbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6TmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRGYWls
TG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRl
OjpMb2FkZXJDbGllbnQ6OnByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVn
aXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EYXRhYmFz
ZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5
OjppbnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0VG9SZUV4ZWNTZXJ2aWNlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9h
ZGVyIGNvbm5lY3Rpb246ZGlkRmFpbFdpdGhFcnJvcjpdKToKKyAgICAgICAgKC1bV0tDdXN0b21Q
cm90b2NvbExvYWRlciBjb25uZWN0aW9uOndpbGxDYWNoZVJlc3BvbnNlOl0pOgorICAgICAgICAo
LVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0p
OgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGNvbm5lY3Rpb246ZGlkUmVjZWl2
ZURhdGE6XSk6CisgICAgICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIgY29ubmVjdGlvbjp3
aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV0tDdXN0b21Q
cm90b2NvbExvYWRlciBjb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50UGhhc2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVQcm94eTo6Y29udGVudEZpbHRlckRpZEhhbmRsZU5hdmlnYXRpb25BY3Rpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6ZW5jb2RlU2Vzc2lvbkhpc3RvcnlFbnRyeURhdGEpOgorICAgICAgICAoV2ViS2l0
OjplbmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3
TmVlZHNEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNjcm9sbFZp
ZXcpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRh
Rm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmRpZFBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdl
YktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OmRpZENvbGxlY3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hv
dEFmdGVyUmVwYWludCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9y
ZS5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnBydW5lU25hcHNob3Rz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5t
bToKKyAgICAgICAgKC1bV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyIHJldHJpZXZlS2V5Ym9h
cmRVSU1vZGVGcm9tUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyIGNhbmNlbE9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciBhcHBsaWNhdGlvbkRpZENoYW5nZVNjcmVlblBhcmFtZXRlcnM6XSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FeGl0RnVsbFNj
cmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGN1c3RvbVdpbmRvd3NUb0Vu
dGVyRnVsbFNjcmVlbkZvcldpbmRvdzpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlciBjdXN0b21XaW5kb3dzVG9FeGl0RnVsbFNjcmVlbkZvcldpbmRvdzpdKToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB3aW5kb3c6c3RhcnRDdXN0b21B
bmltYXRpb25Ub0VudGVyRnVsbFNjcmVlbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB3aW5kb3c6c3RhcnRDdXN0b21BbmltYXRpb25Ub0V4
aXRGdWxsU2NyZWVuV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyIHdpbmRvd0RpZEZhaWxUb0VudGVyRnVsbFNjcmVlbjpdKToKKyAgICAgICAg
KC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRFbnRlckZ1bGxTY3JlZW46
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2luZG93RGlkRmFp
bFRvRXhpdEZ1bGxTY3JlZW46XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgd2luZG93RGlkRXhpdEZ1bGxTY3JlZW46XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XS1ByaW50aW5nVmlldy5tbToKKyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcgbG9jYXRpb25P
ZlByaW50UmVjdDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYzo6V2ViQ29sb3JQaWNrZXJN
YWMpOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyB3aW5kb3dXaWxsQ2xvc2U6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpwb3B1bGF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tXZWJJ
bnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGF0dGFjaFJpZ2h0Ol0pOgorICAgICAgICAoLVtXS1dl
Ykluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgYXR0YWNoQm90dG9tOl0pOgorICAgICAgICAoLVtX
S1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgd2luZG93RGlkTW92ZTpdKToKKyAgICAgICAg
KC1bV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIHdpbmRvd0RpZFJlc2l6ZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIHdpbmRvd1dpbGxDbG9zZTpd
KToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGluc3BlY3RlZFZp
ZXdGcmFtZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktpdDo6cnVuT3BlblBhbmVsKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2VuZDo6Z2V0RGF0YWJh
c2VOYW1lcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QlNlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25u
ZWN0aW9uOjpzZXRJbmRleEtleXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbi5tbToKKyAgICAgICAgKGRpZENyZWF0ZVBhZ2UpOgorICAgICAgICAod2lsbERlc3Ry
b3lQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAoZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGaW5pc2hM
b2FkRm9yRnJhbWUpOgorICAgICAgICAoZ2xvYmFsT2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZSk6
CisgICAgICAgIChkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkpOgorICAgICAgICAoZGlkQ29t
bWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KToKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAoZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToKKyAgICAgICAgKGRpZExheW91dEZvckZy
YW1lKToKKyAgICAgICAgKGRpZExheW91dCk6CisgICAgICAgIChkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgIChkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JG
cmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKC1b
V0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFjY2Vzc2liaWxpdHlIaXRUZXN0Ol0pOgor
ICAgICAgICAoLVtXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIGFjdGlvbkZvcktleTpdKToKKyAg
ICAgICAgKC1bV0tQREZMYXllckNvbnRyb2xsZXJEZWxlZ2F0ZSBwZGZMYXllckNvbnRyb2xsZXI6
Y2xpY2tlZExpbmtXaXRoVVJMOl0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRl
bGVnYXRlIHBkZkxheWVyQ29udHJvbGxlcjpkaWRDaGFuZ2VBY3RpdmVBbm5vdGF0aW9uOl0pOgor
ICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRlIHBkZkxheWVyQ29udHJvbGxl
cjpkaWRDaGFuZ2VDb250ZW50U2NhbGVGYWN0b3I6XSk6CisgICAgICAgICgtW1dLUERGTGF5ZXJD
b250cm9sbGVyRGVsZWdhdGUgcGRmTGF5ZXJDb250cm9sbGVyOmRpZENoYW5nZURpc3BsYXlNb2Rl
Ol0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRlIHBkZkxheWVyQ29u
dHJvbGxlcjpkaWRDaGFuZ2VTZWxlY3Rpb246XSk6CisgICAgICAgIChXZWJLaXQ6OmpzUERGRG9j
SW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6anNQREZEb2NQcmludCk6
CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c3RyZWFtRGlkRmFpbCk6CisgICAgICAgIChX
ZWJLaXQ6OlBERlBsdWdpbjo6bWFudWFsU3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luOjp1cGRhdGVDb250cm9sVGludHMpOgorICAgICAgICAoV2Vi
S2l0OjpQREZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6
UERGUGx1Z2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlBE
RlBsdWdpbjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QpOgorICAgICAgICAoV2ViS2l0OjpQ
REZQbHVnaW46OmNvdW50RmluZE1hdGNoZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjp1
cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjphZGp1c3RUcmFu
c2llbnRab29tKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmNvbW1pdFRyYW5zaWVu
dFpvb20pOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6YWRkVHJhbnNhY3Rpb25DYWxs
YmFja0lEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZU92ZXJsYXk6OkNsaWVudDo6YWN0aW9uQ29udGV4dEZv
clJlc3VsdEF0UG9pbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5tbToKKyAgICAgICAgKC1bV0tBbmltYXRpb25EZWxlZ2F0ZSBh
bmltYXRpb25EaWRTdG9wOmZpbmlzaGVkOl0pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxh
dGZvcm1DQUxheWVyUmVtb3RlOjpjb3B5Q29udGVudHNGcm9tTGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENvbnRlbnRzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2Nyb2xsKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5t
bToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmlsaXR5
SXNBdHRyaWJ1dGVTZXR0YWJsZTpdKToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6Zm9yQXR0cmlidXRlOl0pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OndlYkdMUG9saWN5Rm9yVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cmVzb2x2ZVdlYkdMUG9saWN5Rm9yVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb25DbG9zZWQpOgorCiAyMDE1LTAxLTIyICBTaGl2YWt1bWFyIEpNICA8c2hpdmEu
am1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkIHdhcm5pbmcgaW4gV2ViS2l0Mi9V
SVByb2Nlc3MgbW9kdWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IDgxNTE1YzYzOWM5NjIzYmVhYzM0NTk3OGI5MjdiY2Qx
ZDQ2Mjc3NjEuLjRjYmZkZmIxMzI5NTYwYzY4NGVmNmI1ODFiN2Y5NGVjMjNiMWY0N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CkBAIC00OSw3ICs0OSw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVMKIEdD
Q19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9
IFlFUwogTElOS0VSX0RJU1BMQVlTX01BTkdMRURfTkFNRVMgPSBZRVM7Ci1XQVJOSU5HX0NGTEFH
UyA9IC1XYWxsIC1XIC1XY2hhci1zdWJzY3JpcHRzIC1XZm9ybWF0LXNlY3VyaXR5IC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XcG9pbnRlci1hcml0aCAtV3dyaXRlLXN0cmluZ3MgLVduby11
bnVzZWQtcGFyYW1ldGVyIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzOworV0FSTklOR19DRkxBR1Mg
PSAtV2FsbCAtVyAtV2NoYXItc3Vic2NyaXB0cyAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3Npbmct
Zm9ybWF0LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGggLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10
aW1lLWRlc3RydWN0b3JzOwogCiBFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVTID0gJChFTkdJTkVF
UklOR19CVUlMRF9ERUZJTkVTXyQoRU5HSU5FRVJJTkdfQlVJTEQpKTsKIEVOR0lORUVSSU5HX0JV
SUxEX0RFRklORVNfMSA9IEVOR0lORUVSSU5HX0JVSUxEPTE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCBiODMxZTA0M2EzMDhjY2JmY2Q0ZTFlOWZh
NGE2MDVjN2QwN2I1MGZjLi44Yzk1MTYzMWU2YjVmMTlhY2UxYjA5YTkyYTRhZDUyNWQxYmQwZGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTc1
LDcgKzc1LDcgQEAgR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogTElOS0VSX0RJU1BM
QVlTX01BTkdMRURfTkFNRVMgPSBZRVM7CiBPVEhFUl9NSUdGTEFHUyA9IC1GJChCVUlMVF9QUk9E
VUNUU19ESVIpOwogUFJFQklORElORyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4
dHJhIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5IC1X
aW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAt
V25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50
LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1X
Z2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFs
bHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjaGFyLXN1YnNjcmlw
dHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNzaW5n
LWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1h
cml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGlt
ZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFy
ZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKaW5kZXggNWY4MjIzMGE5NzIyMjFlZjNjNDUwOWI4ZDNiODhhMDUzYjBlYWJiNy4u
ODE0MzFiNmMyZWM1YjRjNmFiYWMwM2M4MDA4M2M1ZTRmZjc4ZmMxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgICAgIHJl
bW92ZURhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24obV9pZGJDb25uZWN0aW9ucy5iZWdpbigp
LT5rZXkpOwogfQogCi12b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQor
dm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UpCiB7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAppbmRleCA4MjIxYTQyZDExYmNh
YjBlY2Y2YzkzYTExOGEyYzM2NWNhZTJlYTZhLi5kYjJiM2U5YmU1ZjRiM2Q3YmNhZmFhZDhjYTQz
ODJjMDlhY2QwZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCkBAIC0xMTQ2LDcgKzExNDYsNyBA
QCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSYW5nZShj
b25zdCBJREJJZGVudGlmaWVyJiB0cmFucwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFVu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSZWNvcmQoU1FMaXRlSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IFdl
YkNvcmU6OklEQktleURhdGEmIGtleSkKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6OmRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFuc2FjdGlvbiYsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYga2V5KQogewogICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKQEAgLTEyMzMs
NyArMTIzMyw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Omdl
dEtleVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJJCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmdldEtleVJhbmdl
UmVjb3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZSYga2V5UmFu
Z2UsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxJREJLZXk+JiByZXN1bHRL
ZXkpCitib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRLZXlSYW5n
ZVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5UmFuZ2UmIGtleVJh
bmdlLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgcmVzdWx0LCBSZWZQdHI8SURCS2V5PiYpCiB7CiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCmlu
ZGV4IDU3YzlmMjBkOGJjMTUyNzQzNzkxNDA0OWY5ZTkwMTdkNTc2Yjk5YzIuLmQ0ZDYzZTIwYjgz
NTc5YTIxOGI5OGVjODFhN2E5NzY0MWI3ZTYwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KQEAgLTYwMCw2ICs2MDAsOCBAQCB2b2lk
IENvbm5lY3Rpb246OndpbGxTZW5kU3luY01lc3NhZ2UodW5zaWduZWQgZmxhZ3MpCiAjaWYgIVRB
UkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKICAgICBpZiAoKGZsYWdzICYgSW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpICYm
IFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAg
IF9BWFVJRWxlbWVudE5vdGlmeVByb2Nlc3NTdXNwZW5kU3RhdHVzKEFYU3VzcGVuZFN0YXR1c1N1
c3BlbmRlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmbGFncyk7CiAjZW5kaWYKIH0KIApA
QCAtNjA4LDYgKzYxMCw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNSZXBseSh1
bnNpZ25lZCBmbGFncykKICNpZiAhVEFSR0VUX09TX0lQSE9ORSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAogICAgIGlmICgoZmxhZ3MgJiBJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCkgJiYgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKICAgICAgICAgX0FYVUlFbGVtZW50Tm90aWZ5UHJvY2Vzc1N1c3BlbmRT
dGF0dXMoQVhTdXNwZW5kU3RhdHVzUnVubmluZyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShm
bGFncyk7CiAjZW5kaWYKIH0gICAgCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21h
Yy9Xb3JrUXVldWVNYWMuY3BwCmluZGV4IDc4Yjc1ZjlmNzUxMTc0ZTQ0ZDU4NjljMmMwNzFjOWIw
Mzk5MzQ5MjUuLjk1ZjBhMzc3Y2M5MzM1Yzk3MDI4MWIzNDA0MTQ2MjBlMjdjNWYyN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Xb3JrUXVldWVNYWMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Xb3JrUXVldWVNYWMuY3BwCkBAIC02Nyw2ICs2
Nyw4IEBAIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFt
ZSwgUU9TIHFvcykKICAgICBkaXNwYXRjaF9xdWV1ZV9hdHRyX3QgYXR0ciA9IDA7CiAjaWYgSEFW
RShRT1NfQ0xBU1NFUykKICAgICBhdHRyID0gZGlzcGF0Y2hfcXVldWVfYXR0cl9tYWtlX3dpdGhf
cW9zX2NsYXNzKERJU1BBVENIX1FVRVVFX1NFUklBTCwgZGlzcGF0Y2hRT1NDbGFzcyhxb3MpLCAw
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHFvcyk7CiAjZW5kaWYKICAgICBtX2Rpc3BhdGNo
UXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUobmFtZSwgYXR0cik7CiAgICAgZGlzcGF0Y2hf
c2V0X2NvbnRleHQobV9kaXNwYXRjaFF1ZXVlLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IDA2MDkyZDk2
NzJiN2ZiMjczOTg5ZmU0MmJkYzdkNDcxMjNmZjNiMWMuLjgxNzdiMDk3ZDcyYjVmZDcxZWY1ODRi
ZTdmZjdiZTA0MTFiNzU4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtNDE2LDcgKzQxNiw3IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0CiAgICAgICAgIGRpc2tQYXRoOm1fbnN1cmxDYWNoZURpcmVjdG9yeV0p
LmdldCgpXTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9j
ZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewogI2lmIGRlZmluZWQoX19p
Mzg2X18pCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc2hpbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSU9iamVjdC5oCmluZGV4IGM1ZGZkMzQ2MjI3NzNlZjZkMmNkZTRiZmJhZGU4MTkzYTI0Yzg4
Y2YuLjYwNTE0M2IyMDdhZDYwMjc0ZTY1OGE5MDM0MmQ5Y2I3NTRhMTRkNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMjM1LDcgKzIzNSw3IEBAIHByb3RlY3RlZDoK
IAogI2lmIERFTEVHQVRFX1JFRl9DT1VOVElOR19UT19DT0NPQQogICAgIHZvaWQqIG9wZXJhdG9y
IG5ldyhzaXplX3Qgc2l6ZSkgeyByZXR1cm4gbmV3T2JqZWN0KHNpemUsIEFQSVR5cGUpOyB9Ci0g
ICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCB2b2lkKiB2YWx1ZSkgeyByZXR1cm4g
dmFsdWU7IH0KKyAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkKiB2YWx1ZSkgeyBy
ZXR1cm4gdmFsdWU7IH0KICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5kZXggMGE3MmZlZjI4MTA3MjFmODMyMWFk
OTY2N2E1ZGIwZDhmODkxYWRhNS4uZDE4MGQzOTk4NWQzM2I5Yzg3NmQ2NDA1NWZkOTgxNjE1MDYy
NjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFt
ZUhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1l
SGFuZGxlLm1tCkBAIC02Niw2ICs2Niw3IEBAIC0gKHVpbnQ2NF90KV9mcmFtZUlECiAKIC0gKGlk
KWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogeworICAgIFVOVVNFRF9QQVJBTSh6b25lKTsK
ICAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXgg
ZjVlOWMwOTQ3ZDRmMmFiNmU1OGEwYWIzYTIwMWYxMTZhODIxZDdlYi4uZTJkYjMxODZjYjM4YjFh
MDYxNWNmNWRmNDRhYWRmYTZkYTI5YmZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC02MSw3
ICs2MSw3IEBAIC0gKHZvaWQpcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDooaWQpb2JqZWN0IGludGVy
ZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopCiAKIC0gKHZvaWQpdW5yZWdpc3RlckV4
cG9ydGVkT2JqZWN0OihpZClvYmplY3QgaW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJbnRlcmZh
Y2UgKilpbnRlcmZhY2UKIHsKLSAgICBBU1NFUlQoX2V4cG9ydGVkT2JqZWN0cy5nZXQoaW50ZXJm
YWNlLmlkZW50aWZpZXIpLmZpcnN0ID09IG9iamVjdCk7CisgICAgQVNTRVJUX1VOVVNFRChvYmpl
Y3QsIF9leHBvcnRlZE9iamVjdHMuZ2V0KGludGVyZmFjZS5pZGVudGlmaWVyKS5maXJzdCA9PSBv
YmplY3QpOwogICAgIEFTU0VSVChfZXhwb3J0ZWRPYmplY3RzLmdldChpbnRlcmZhY2UuaWRlbnRp
Zmllcikuc2Vjb25kID09IGludGVyZmFjZSk7CiAKICAgICBfZXhwb3J0ZWRPYmplY3RzLnJlbW92
ZShpbnRlcmZhY2UuaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tEZXByZWNhdGVkRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0RlcHJlY2F0ZWRGdW5jdGlvbnMuY3BwCmluZGV4IGZiMTM4ODBjNjZmZmIzMTVj
NTJjNzU5MDgwNjNhMjZjMDA3YzIyYjQuLjI3ODczOTczYzUzZTI5YmYyNGYxZTU3M2U4YzI5MmU0
NzU1OWM3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RlcHJl
Y2F0ZWRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Rl
cHJlY2F0ZWRGdW5jdGlvbnMuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBXS0luc3BlY3Rv
clRvZ2dsZUphdmFTY3JpcHRQcm9maWxpbmcoV0tJbnNwZWN0b3JSZWYpCiB9CiAKICNpZiBQTEFU
Rk9STShNQUMpCi1DR0NvbnRleHRSZWYgV0tHcmFwaGljc0NvbnRleHRHZXRDR0NvbnRleHQoV0tH
cmFwaGljc0NvbnRleHRSZWYgZ3JhcGhpY3NDb250ZXh0KQorQ0dDb250ZXh0UmVmIFdLR3JhcGhp
Y3NDb250ZXh0R2V0Q0dDb250ZXh0KFdLR3JhcGhpY3NDb250ZXh0UmVmKQogewogICAgIHJldHVy
biBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2Nm
L1dLRXJyb3JDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJvckNG
LmNwcAppbmRleCA3ODkyNDgzYmVhYzFlZjczZjgxMTBlZTRlYThlNjIwMmZhZTQ0NmJhLi4zYTg5
ZDY5OGU4ZjY5M2FlN2JhMGVkY2U1ZTFiMjNhNmQxOTQ4Y2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJvckNGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJvckNGLmNwcApAQCAtMzgsNyArMzgsNyBAQCBXS0Vycm9y
UmVmIFdLRXJyb3JDcmVhdGVXaXRoQ0ZFcnJvcihDRkVycm9yUmVmIGNmRXJyb3IpCiAgICAgcmV0
dXJuIHRvQVBJKGVycm9yLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCi1DRkVycm9yUmVmIFdL
RXJyb3JDb3B5Q0ZFcnJvcihDRkFsbG9jYXRvclJlZiBhbGxvYywgV0tFcnJvclJlZiBlcnJvcikK
K0NGRXJyb3JSZWYgV0tFcnJvckNvcHlDRkVycm9yKENGQWxsb2NhdG9yUmVmLCBXS0Vycm9yUmVm
IGVycm9yKQogewogICAgIFJldGFpblB0cjxDRkVycm9yUmVmPiBjZkVycm9yID0gdG9JbXBsKGVy
cm9yKS0+cGxhdGZvcm1FcnJvcigpLmNmRXJyb3IoKTsKICAgICByZXR1cm4gY2ZFcnJvci5sZWFr
UmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tVUkxD
Ri5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tCmluZGV4IDFh
OWM1ZmQ0OGZhYTIxMzAwN2U4YmIxZDQyZDNhYzI5YTM2ZDkyM2YuLjRkNTNlMDY4MmRiNWZjNTcy
MDEzMGZiYmU0MDYxNzE2MGQ5NjYwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9jZi9XS1VSTENGLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9j
Zi9XS1VSTENGLm1tCkBAIC02Niw2ICs2Niw3IEBAIFdLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0aENG
VVJMKENGVVJMUmVmIGNmVVJMKQogCiBDRlVSTFJlZiBXS1VSTENvcHlDRlVSTChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3JSZWYsIFdLVVJMUmVmIFVSTFJlZikKIHsKKyAgICBVTlVTRURfUEFSQU0o
YWxsb2NhdG9yUmVmKTsKICAgICBBU1NFUlQoIXRvSW1wbChVUkxSZWYpLT5zdHJpbmcoKS5pc051
bGwoKSk7CiAKICAgICAvLyBXZSBmaXJzdCBjcmVhdGUgYSBDU3RyaW5nIGFuZCB0aGVuIGNyZWF0
ZSB0aGUgQ0ZVUkwgZnJvbSBpdC4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBDRlVSTCBpcyBz
dG9yZWQgaW4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0Fy
cmF5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNBcnJheS5tbQppbmRleCBh
NTFiNGRhODNkNDhmOWFiNjI0NTA0YzNhZjcxMzJlZjdkZmEwNzI1Li5jOGRmYWYzMGI2YzQzOGFk
NjNkMTQwZjQ5ZjNiM2UyYTZlOWE4MWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29jb2EvV0tOU0FycmF5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9X
S05TQXJyYXkubW0KQEAgLTU2LDYgKzU2LDcgQEAgLSAoaWQpb2JqZWN0QXRJbmRleDooTlNVSW50
ZWdlcilpCiAKIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogeworICAgIFVOVVNF
RF9QQVJBTSh6b25lKTsKICAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tCmluZGV4IDlkODBmMzQ3YjdlMDhhNTBiYTJhZGI0
NDkzMDY2ZjdjZTZhYTNmMWEuLmVmZjJiOGYyYzU1NWU1ODJiYzU1NDNlNzQzZDZlNjA4ODZjNjI5
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRGF0YS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RhdGEubW0KQEAgLTU1LDYgKzU1
LDcgQEAgLSAoY29uc3Qgdm9pZCopYnl0ZXMKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUg
Kil6b25lCiB7CisgICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRh
aW5dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0Rp
Y3Rpb25hcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RpY3Rpb25hcnku
bW0KaW5kZXggY2JjZjRjNmViODAzMjYwYzc1ZjljZWRlMzgzMzU0OWM0M2NlMGJlNi4uMDNjMjg3
NDhiZTQ1YjFiOWZmOTA5MWI2MTJiMmJiMDhjMWIzMDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db2NvYS9XS05TRGljdGlvbmFyeS5tbQpAQCAtNzgsNiArNzgsNyBAQCAtIChOU0Vu
dW1lcmF0b3IgKilrZXlFbnVtZXJhdG9yCiAKIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICop
em9uZQogeworICAgIFVOVVNFRF9QQVJBTSh6b25lKTsKICAgICByZXR1cm4gW3NlbGYgcmV0YWlu
XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNFcnJv
ci5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRXJyb3IubW0KaW5kZXggODIw
NTk0ZTk0YTcyMDk3NzhjMTljYTdmMGQ2YmYwNTFkODAwZDRjNi4uMWMwNDQyOGM0ZGNiNGJmOTA2
MDQyNzJiOTgxZTBkNmNjYjA1YmEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NvY29hL1dLTlNFcnJvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tO
U0Vycm9yLm1tCkBAIC00MSw2ICs0MSw3IEBAIC0gKE5TT2JqZWN0ICopX3dlYl9jcmVhdGVUYXJn
ZXQKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CisgICAgVU5VU0VEX1BB
UkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU1N0cmluZy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db2NvYS9XS05TU3RyaW5nLm1tCmluZGV4IDQzZDU3OWRhOTE0MTM4OTA3Njc1ZmZh
MmQ4YzIzYjdhYTgyOGNiN2EuLjQ3NGU4NzMwYTYyMmJjMjI3MGZhZjNiN2JkM2MwODE3ZWIyZjVi
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TU3RyaW5nLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TU3RyaW5nLm1tCkBAIC00NSw2
ICs0NSw3IEBAIC0gKE5TT2JqZWN0ICopX3dlYl9jcmVhdGVUYXJnZXQKIAogLSAoaWQpY29weVdp
dGhab25lOihOU1pvbmUgKil6b25lCiB7CisgICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJl
dHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29jb2EvV0tOU1VSTC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TVVJM
Lm1tCmluZGV4IDA1NmEyZDk4YWUzYTZmODU3NWZiNzI4YzE2MTM0Y2IwN2E4OThiNTYuLjI3YTNh
NzRiYmRmOWZlMWJkMGU2YjUzODU3MTM3ZWVjNWE2ZWIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TVVJMLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db2NvYS9XS05TVVJMLm1tCkBAIC00Myw2ICs0Myw3IEBAIC0gKE5TT2JqZWN0ICopX3dlYl9j
cmVhdGVUYXJnZXQKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CisgICAg
VU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU1VSTFJlcXVlc3QubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU1VSTFJlcXVlc3QubW0KaW5kZXggMzBlYmRi
NzkwMjRjZGJmZGZhMzE2ODBhYzcxMzFmMzI1MDBiNDZkYS4uMDM2ODE2NDlhNzdjMTA3YTQzMDhl
NGY4Y2U2MzMyNzYzZTBkY2VjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
Y29hL1dLTlNVUkxSZXF1ZXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9X
S05TVVJMUmVxdWVzdC5tbQpAQCAtNDYsNiArNDYsNyBAQCAtIChOU1VSTCAqKVVSTAogCiAtIChp
ZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKIHsKKyAgICBVTlVTRURfUEFSQU0oem9uZSk7
CiAgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db2NvYS9XS09iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2Nv
YS9XS09iamVjdC5tbQppbmRleCBjNTg5NTYxYmUxOTk0OTk2ZWM4MmIxYWNiNGQ5ZjlkNjIyMmY2
MmRlLi5iY2ZhOGVmNmRkNjA3ZTI5YjE1MjEzMTEzY2M3OGY2MDY0YjYwZjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tPYmplY3QubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvY29hL1dLT2JqZWN0Lm1tCkBAIC0xMDIsNiArMTAyLDcgQEAgLSAoQk9P
TCljb25mb3Jtc1RvUHJvdG9jb2w6KFByb3RvY29sICopcHJvdG9jb2wKIAogLSAoaWQpZm9yd2Fy
ZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKKyAgICBVTlVTRURfUEFSQU0o
c2VsZWN0b3IpOwogICAgIGluaXRpYWxpemVUYXJnZXRJZk5lZWRlZChzZWxmKTsKIAogICAgIHJl
dHVybiBfdGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fk
cy9tYWMvRG93bmxvYWRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21h
Yy9Eb3dubG9hZE1hYy5tbQppbmRleCBmOGIxMDk5ZTI4NWY0OGQ3NjliMWMxYjIwMjFhZjRjMzAw
NzA0MmYyLi44ZDRjZjEwZjZhYjMxMTYxMDFlNWEzYjlmMjg4ZDdkZDI0ZGE0NjEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQpA
QCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAg
ICAgbV9uc1VSTERvd25sb2FkID0gbnVsbHB0cjsKIH0KIAotdm9pZCBEb3dubG9hZDo6ZGlkRGVj
aWRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBhbGxvd092ZXJ3
cml0ZSkKK3ZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYs
IGJvb2wpCiB7CiB9CiAKQEAgLTE4Nyw2ICsxODcsNyBAQCAtICh2b2lkKWludmFsaWRhdGUKIAog
LSAodm9pZClkb3dubG9hZERpZEJlZ2luOihOU1VSTERvd25sb2FkICopZG93bmxvYWQKIHsKKyAg
ICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRpc3BhdGNoT25NYWluVGhyZWFkKF57CiAg
ICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAgICBfZG93bmxvYWQtPmRpZFN0YXJ0KCk7
CkBAIC0xOTUsMTEgKzE5NiwxNSBAQCAtICh2b2lkKWRvd25sb2FkRGlkQmVnaW46KE5TVVJMRG93
bmxvYWQgKilkb3dubG9hZAogCiAtIChOU1VSTFJlcXVlc3QgKilkb3dubG9hZDooTlNVUkxEb3du
bG9hZCAqKWRvd25sb2FkIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBy
ZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQogeworICAg
IFVOVVNFRF9QQVJBTShkb3dubG9hZCk7CisgICAgVU5VU0VEX1BBUkFNKHJlZGlyZWN0UmVzcG9u
c2UpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCiAtIChCT09MKWRvd25sb2FkOihOU1VSTERv
d25sb2FkICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNl
OihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZQogeworICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHJvdGVjdGlvblNwYWNlKTsKICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50LgogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IE5POwpAQCAtMjA3LDYgKzIxMiw3IEBAIC0gKEJPT0wpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQg
Kiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhCiAKIC0gKHZv
aWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UK
IHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRpc3BhdGNoT25NYWluVGhyZWFk
KF57CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAgICBfZG93bmxvYWQtPmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb3JlKGNoYWxsZW5nZSkpOwpAQCAtMjE1LDE3
ICsyMjEsMjEgQEAgLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlMKIAogLSAodm9pZClkb3dubG9hZDoo
TlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCiB7CisgICAgVU5VU0VE
X1BBUkFNKGRvd25sb2FkKTsKKyAgICBVTlVTRURfUEFSQU0oY2hhbGxlbmdlKTsKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50LgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIC0gKEJPT0wpZG93
bmxvYWRTaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTooTlNVUkxEb3dubG9hZCAqKWRvd25sb2Fk
CiB7CisgICAgVU5VU0VEX1BBUkFNKGRvd25sb2FkKTsKICAgICByZXR1cm4gTk87CiB9CiAKIC0g
KHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlUmVzcG9u
c2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQogeworICAgIFVOVVNFRF9QQVJBTShkb3dubG9h
ZCk7CiAgICAgZGlzcGF0Y2hPbk1haW5UaHJlYWQoXnsKICAgICAgICAgaWYgKF9kb3dubG9hZCkK
ICAgICAgICAgICAgIF9kb3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKQEAg
LTIzNCwxMiArMjQ0LDE2IEBAIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3du
bG9hZCBkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyCiAKIC0gKHZvaWQpZG93
bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCB3aWxsUmVzdW1lV2l0aFJlc3BvbnNlOihO
U1VSTFJlc3BvbnNlICopcmVzcG9uc2UgZnJvbUJ5dGU6KGxvbmcgbG9uZylzdGFydGluZ0J5dGUK
IHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOworICAgIFVOVVNFRF9QQVJBTShyZXNwb25z
ZSk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXJ0aW5nQnl0ZSk7CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudC4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiAtICh2b2lkKWRvd25sb2FkOihOU1VS
TERvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZURhdGFPZkxlbmd0aDooTlNVSW50ZWdlcils
ZW5ndGgKIHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRpc3BhdGNoT25NYWlu
VGhyZWFkKF57CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAgICBfZG93bmxvYWQt
PmRpZFJlY2VpdmVEYXRhKGxlbmd0aCk7CkBAIC0yNDgsNiArMjYyLDcgQEAgLSAodm9pZClkb3du
bG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVEYXRhT2ZMZW5ndGg6KE5T
VUludGVnZXIpbGUKIAogLSAoQk9PTClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2Fk
IHNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlOihOU1N0cmluZyAqKWVuY29kaW5nVHlw
ZQogeworICAgIFVOVVNFRF9QQVJBTShkb3dubG9hZCk7CiAgICAgX19ibG9jayBCT09MIHJldHVy
blZhbHVlOwogICAgIGRpc3BhdGNoT25NYWluVGhyZWFkKF57CiAgICAgICAgIGlmIChfZG93bmxv
YWQpCkBAIC0yNzQsNiArMjg5LDcgQEAgLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAq
KWRvd25sb2FkIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW0KIAogLSAodm9p
ZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENyZWF0ZURlc3RpbmF0aW9u
OihOU1N0cmluZyAqKXBhdGgKIHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRp
c3BhdGNoT25NYWluVGhyZWFkKF57CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAg
ICBfZG93bmxvYWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKHBhdGgpOwpAQCAtMjgyLDYgKzI5OCw3
IEBAIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRDcmVhdGVE
ZXN0aW5hdGlvbjooTlNTdHJpbmcgKilwYXRoCiAKIC0gKHZvaWQpZG93bmxvYWREaWRGaW5pc2g6
KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZAogeworICAgIFVOVVNFRF9QQVJBTShkb3dubG9hZCk7
CiAgICAgZGlzcGF0Y2hPbk1haW5UaHJlYWQoXnsKICAgICAgICAgaWYgKF9kb3dubG9hZCkKICAg
ICAgICAgICAgIF9kb3dubG9hZC0+ZGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNl
TWFpbi5EZXZlbG9wbWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCmluZGV4
IGI0NWFjNmI1Y2JjZTVmMzUxOTEyNzYxZTg1YTFlYjAzMzY2ODc4NjUuLjEzMDRjZmY4MTBhYjJk
MzRjZWQ5ODlmYmM0NDg0NTI3MDA2OGQ2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRl
dmVsb3BtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCkBAIC04NSw3
ICs4NSw3IEBAIHN0YXRpYyBOT19SRVRVUk4gdm9pZCByZWV4ZWMoUmVleGVjSW5mbyAqaW5mbykK
ICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiB9CiAKLXN0YXRpYyBOT19SRVRVUk4gdm9pZCByZWV4
ZWNDYWxsQmFjayhDRlJ1bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCAqaW5mbykKK3N0YXRpYyBO
T19SRVRVUk4gdm9pZCByZWV4ZWNDYWxsQmFjayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCAqaW5m
bykKIHsKICAgICByZWV4ZWMoc3RhdGljX2Nhc3Q8UmVleGVjSW5mbyAqPihpbmZvKSk7CiB9CkBA
IC0xNjIsNyArMTYyLDcgQEAgc3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNf
Y29ubmVjdGlvbl90IHBlZXIpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLWludCBtYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCBtYWluKGludCwgY2hhcioqKQogewogICAgIHhw
Y19tYWluKFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZU1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQppbmRleCAyZTZhOTgwNzY4
NzUyYjMwNzRiYTY5OWRlOWZiM2QwMDgwNjFlMDE0Li5kMjQxZTUyNTFiODZlZDFiNDFmZDRkY2U3
MzQ2ZTYxYjg0Nzg5YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENT
ZXJ2aWNlTWFpbi5tbQpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZl
bnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3QgcGVlcikKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoraW50IG1haW4oaW50LCBjaGFy
KiopCiB7CiAgICAgeHBjX21haW4oWFBDU2VydmljZUV2ZW50SGFuZGxlcik7CiAgICAgcmV0dXJu
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ29jb2EubW0KaW5kZXggM2U0M2UyYmFlNzRlYTcxOWMzNjM1ZjU5YmU3MDI2NTQ2M2E5Mzkw
OS4uOTczNDFjZjY4Y2M0OTY1NTNmNjFlNzg3MmFiMWYwMDNjMTM3OGZmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3Rv
bVByb3RvY29sTWFuYWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQpA
QCAtODgsNiArODgsOCBAQCArIChOU1VSTFJlcXVlc3QgKiljYW5vbmljYWxSZXF1ZXN0Rm9yUmVx
dWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAogCiArIChCT09MKXJlcXVlc3RJc0NhY2hlRXF1
aXZhbGVudDooTlNVUkxSZXF1ZXN0ICopYSB0b1JlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKWIKIHsK
KyAgICBVTlVTRURfUEFSQU0oYSk7CisgICAgVU5VU0VEX1BBUkFNKGIpOwogICAgIHJldHVybiBO
TzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAKaW5k
ZXggY2Y5NjFkMmU4NjU0ZDUyYjliMDQ1ZDM3ZTYxYjU5MWE0YmEwMTQzMS4uMmM5OTJmNzZmYjJj
YzBhOThiYjkzNjQ1NjE3M2EzYjgyMWUwYTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2hhcmVhYmxlUmVzb3VyY2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgU2hhcmVhYmxlUmVz
b3VyY2U6OkhhbmRsZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5k
bGUmIGhhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIHNoYXJlYWJsZVJlc291
cmNlRGVhbGxvY2F0ZSh2b2lkICpwdHIsIHZvaWQgKmluZm8pCitzdGF0aWMgdm9pZCBzaGFyZWFi
bGVSZXNvdXJjZURlYWxsb2NhdGUodm9pZCAqLCB2b2lkICppbmZvKQogewogICAgIChzdGF0aWNf
Y2FzdDxTaGFyZWFibGVSZXNvdXJjZSo+KGluZm8pKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZWQgYnkg
cmVmKCkgaW4gY3JlYXRlU2hhcmVhYmxlUmVzb3VyY2VEZWFsbG9jYXRvcigpCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQppbmRleCA4NGFiNWIw
MjkwYjQxODJmZDBiMTRhY2M4ZTdjMTIzNDQzY2Y0Y2M3Li42MTY0NTAxY2U1YWRmNjIzYThhMjQ1
YTQwZTFlZTNhZTI0MThlMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29v
a2llU3RvcmFnZVNoaW0ubW0KQEAgLTU5LDcgKzU5LDcgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotc3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJl
cXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBpbkNvb2tpZVN0
b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCkKK3N0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2Vi
S2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYsIENGVVJMUmVmIGluUmVxdWVzdFVSTCkKIHsKICAgICBTdHJpbmcgY29va2ll
czsKICAgICBVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbSBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCmluZGV4IDM4OWU5NTBiOTYzYTUxYzNmMjUyMGVi
NGZlNzdmYjU1YTMxMGQwYjUuLjIzOWU5ZjMxMDdjM2I2YTMzNjlhZGU0YTgyNzU2MjQwY2I5Yjhl
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBo
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCkBA
IC01MSw3ICs1MSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRyYW5zZm9ybUdyYXBoKGlkIG9iamVj
dCwgY29uc3QgT2JqQ09iamVjdEdyYXBoOjpUcmFuc2Zvcm1lciYKIAogICAgIGlmIChOU0RpY3Rp
b25hcnkgKmRpY3Rpb25hcnkgPSBkeW5hbWljX29iamNfY2FzdDxOU0RpY3Rpb25hcnk+KG9iamVj
dCkpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgW2RpY3Rpb25hcnkg
ZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOlsmdHJhbnNmb3JtZXIsICZyZXN1bHRd
KGlkIGtleSwgaWQgb2JqZWN0LCBCT09MKiBzdG9wKSB7CisgICAgICAgIFtkaWN0aW9uYXJ5IGVu
dW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9jazpbJnRyYW5zZm9ybWVyLCAmcmVzdWx0XShp
ZCwgaWQgb2JqZWN0LCBCT09MKiBzdG9wKSB7CiAgICAgICAgICAgICBpZiAoc2hvdWxkVHJhbnNm
b3JtR3JhcGgob2JqZWN0LCB0cmFuc2Zvcm1lcikpIHsKICAgICAgICAgICAgICAgICByZXN1bHQg
PSB0cnVlOwogICAgICAgICAgICAgICAgICpzdG9wID0gWUVTOwpAQCAtMTc1LDcgKzE3NSw3IEBA
IHZvaWQgT2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGlkIG9iamVjdCkKICAgICAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gb2JqZWN0
OwogCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGRpY3Rpb25hcnku
Y291bnQpOwotICAgICAgICBbZGljdGlvbmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5n
QmxvY2s6WyZlbmNvZGVyXShpZCBrZXksIGlkIG9iamVjdCwgQk9PTCAqc3RvcCkgeworICAgICAg
ICBbZGljdGlvbmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6WyZlbmNvZGVy
XShpZCBrZXksIGlkIG9iamVjdCwgQk9PTCAqKSB7CiAgICAgICAgICAgICBlbmNvZGUoZW5jb2Rl
ciwga2V5KTsKICAgICAgICAgICAgIGVuY29kZShlbmNvZGVyLCBvYmplY3QpOwogICAgICAgICB9
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDhiZTA3MjgwYWY1MTE3ZmU5MGU0NWE1YzUwZWIwM2Q0YTQzNGMwNjYu
LjcyMzFhMzc0MmRiMTIyODMyZWZmMGVjN2NlYWRhMDcwNzJmNmQ4ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAt
NzAsNyArNzAsNyBAQCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24gV2Vi
c2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNvbmZpZwogICAgIHJldHVybiBjb25maWd1
cmF0aW9uOwogfQogCi1TdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6d2Vic2l0ZURhdGFEaXJlY3Rv
cnlGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RvcnlOYW1lKQor
U3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OndlYnNpdGVEYXRhRGlyZWN0b3J5RmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4K
ICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KaW5kZXggMmJiNjk2NTZhZmEx
MzgwMDhiODhlMWY0ZTA3OTgyYzI0OWRkN2E5Mi4uNTFmYzIxNDRjMzI5MDQ3NGIxZDU2Mjk3ZmIz
YzlmZDYyOTU5ZWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQpAQCAtNDMsNyArNDMsNyBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1ib29sIFdLQ29udGV4dElzUGx1Z0luVXBkYXRlQXZh
aWxhYmxlKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBwbHVnSW5CdW5kbGVJ
ZGVudGlmaWVyUmVmKQorYm9vbCBXS0NvbnRleHRJc1BsdWdJblVwZGF0ZUF2YWlsYWJsZShXS0Nv
bnRleHRSZWYsIFdLU3RyaW5nUmVmIHBsdWdJbkJ1bmRsZUlkZW50aWZpZXJSZWYpCiB7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHJldHVybiBmYWxzZTsKQEAgLTk1LDEyICs5NSwxMiBAQCB2b2lk
IFdLQ29udGV4dFJlc2V0SFNUU0hvc3RzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogCiAKIAotdm9p
ZCBXS0NvbnRleHRSZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1N0cmluZ1JlZiBzY2hlbWUpCit2b2lkIFdLQ29udGV4dFJlZ2lzdGVyU2NoZW1l
Rm9yQ3VzdG9tUHJvdG9jb2woV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUpCiB7CiAg
ICAgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyR2xvYmFsVVJMU2NoZW1lQXNIYXZpbmdDdXN0b21Q
cm90b2NvbEhhbmRsZXJzKHRvV1RGU3RyaW5nKHNjaGVtZSkpOwogfQogCi12b2lkIFdLQ29udGV4
dFVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbChXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tTdHJpbmdSZWYgc2NoZW1lKQordm9pZCBXS0NvbnRleHRVbnJlZ2lzdGVyU2NoZW1lRm9yQ3Vz
dG9tUHJvdG9jb2woV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUpCiB7CiAgICAgV2Vi
UHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJHbG9iYWxVUkxTY2hlbWVBc0hhdmluZ0N1c3RvbVByb3Rv
Y29sSGFuZGxlcnModG9XVEZTdHJpbmcoc2NoZW1lKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLm1tCmluZGV4IDZjNDlhYTcyZTM1ZDY4ODNhYmJkYzdlMzhiODNhZjc1ZTM2ODEw
MWEuLjc0OTczNTliMGJkNjNiYWMxYTg4MjcxODdmZGFmMGI5NDM0ZTJiYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC0zOTQsNyArMzk0LDcgQEAgLSAodm9pZClzZXRQ
YWdlWm9vbTooQ0dGbG9hdClwYWdlWm9vbQogICAgIF9wYWdlLT5zZXRQYWdlWm9vbUZhY3Rvcihw
YWdlWm9vbSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUp
KQogICAgICAgICByZXR1cm47CkBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGljIHZvaWQgZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0sKICAgICAgICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlk
U3RhcnRQcm92aXNpb25hbExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAotc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZy
YW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZDpicm93c2lu
Z0NvbnRleHRdOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYg
ZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRp
YyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTQzMCw3ICs0MzAsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZgogICAgICAgICBbbG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3Np
bmdDb250ZXh0IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3I6d3JhcHBlcigqdG9JbXBs
KGVycm9yKSldOwogfQogCi1zdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsK
QEAgLTQ0Miw3ICs0NDIsNyBAQCBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1cwogICAgICAgICBbbG9h
ZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDb21taXRMb2FkOmJyb3dzaW5n
Q29udGV4dF07CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNDU0LDcgKzQ1NCw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzCiAgICAgICAgIFtsb2Fk
RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaExvYWQ6YnJvd3NpbmdD
b250ZXh0XTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJy
b3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ2Niw3
ICs0NjYsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFn
ZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0VycgogICAgICAgICBbbG9hZERlbGVnYXRl
IGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3NpbmdDb250ZXh0IGRpZEZhaWxMb2FkV2l0
aEVycm9yOndyYXBwZXIoKnRvSW1wbChlcnJvcikpXTsKIH0KIAotc3RhdGljIGJvb2wgY2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2VJbkZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tQcm90ZWN0aW9u
U3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAg
IFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUg
PSBicm93c2luZ0NvbnRleHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC00NzcsNyArNDc3LDcg
QEAgc3RhdGljIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJh
bWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9hZERlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5f
bG9hZERlbGVnYXRlLmdldCgpOwpAQCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYKICAgICAgICAgWyhpZCA8V0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRl
Pilsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2luZ0NvbnRleHQg
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOndyYXBwZXIoKnRvSW1wbChhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkU3RhcnRQcm9ncmVzcyhX
S1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0
YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBi
cm93c2luZ0NvbnRleHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC01MDQsNyArNTA0LDcgQEAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlcjpicm93c2luZ0NvbnRleHQgZXN0aW1hdGVkUHJvZ3Jlc3NDaGFuZ2VkVG86dG9JbXBsKHBh
Z2UpLT5lc3RpbWF0ZWRQcm9ncmVzcygpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNoUHJv
Z3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9p
ZCBkaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWREZWxl
Z2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTUxMyw3ICs1
MTMsNyBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKICAgICAgICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRl
eHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAotc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlS
ZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFdLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBicm93c2lu
Z0NvbnRleHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC01MjYsNyArNTI2LDcgQEAgc3RhdGlj
IHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYgYWQKICAgICBbbG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXJEaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q6YnJvd3NpbmdDb250ZXh0IGFkZGVkSXRlbTph
ZGRlZCByZW1vdmVkSXRlbXM6cmVtb3ZlZF07CiB9CiAKLXN0YXRpYyB2b2lkIHByb2Nlc3NEaWRD
cmFzaChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lk
IHByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWREZWxlZ2F0
ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTU5Myw3ICs1OTMs
NyBAQCBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyICpicm93c2luZ0NvbnRleHQsCiAgICAgcG9saWN5Q2xpZW50LmJhc2UudmVyc2lv
biA9IDI7CiAgICAgcG9saWN5Q2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IGJyb3dzaW5nQ29udGV4
dDsKIAotICAgIHBvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0g
W10oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlw
ZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3Vz
ZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1lLCBXS1VSTFJl
cXVlc3RSZWYgb3JpZ2luYWxSZXF1ZXN0LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCisgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24gPSBbXShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0
aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZl
bnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1lLCBX
S1VSTFJlcXVlc3RSZWYgb3JpZ2luYWxSZXF1ZXN0LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiAgICAgewogICAgICAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJ
bmZvOwogICAgICAgICBhdXRvIHBvbGljeURlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5fcG9s
aWN5RGVsZWdhdGUuZ2V0KCk7CkBAIC02MTgsNyArNjE4LDcgQEAgc3RhdGljIHZvaWQgc2V0VXBQ
YWdlUG9saWN5Q2xpZW50KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250
ZXh0LAogICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKICAg
ICB9OwogCi0gICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbiA9
IFtdKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5
cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91
c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1Jl
ZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHBvbGljeUNsaWVudC5kZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24gPSBbXShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVy
UmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgewog
ICAgICAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChX
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgICAgICBhdXRvIHBv
bGljeURlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5fcG9saWN5RGVsZWdhdGUuZ2V0KCk7CkBA
IC02MzgsNyArNjM4LDcgQEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5Q2xpZW50KFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LAogICAgICAgICAgICAgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKICAgICB9OwogCi0gICAgcG9saWN5Q2xp
ZW50LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlID0gW10oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCisgICAgcG9s
aWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlID0gW10oV0tQYWdlUmVmLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYgcmVx
dWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHsKICAgICAgICAg
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICAgICAgYXV0byBwb2xpY3lEZWxl
Z2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X3BvbGljeURlbGVnYXRlLmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8ubW0KaW5kZXggNDY0
Mjk1MTg0NTIzZmExNWY1MDk0MmZhNGZhZTEwMjA4MzIyOGE0NC4uMGQwZWQ5OGRjYjM1OTJmMTUz
MjQwODVkOGZlZDg2ZjAyMjdkYTM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLm1tCkBAIC02MCw2ICs2MCw3IEBAIC0gKE5TVVJMUmVx
dWVzdCAqKXJlcXVlc3QKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7Cisg
ICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlw
dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1t
CmluZGV4IDRjMjcxNmNhZmNjMjlmY2Q1MDIwNjRkM2I3YWRhNzE1MzIwOGU0MDEuLjg0M2MyN2Vk
Y2ZmYWQ5MzMyM2YyYmZkMGEwZDYwMzM1NGU0MzI3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCkBAIC01Nyw2ICs1Nyw3IEBA
IC0gKEJPT0wpaXNGb3JNYWluRnJhbWVPbmx5CiAKIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25l
ICopem9uZQogeworICAgIFVOVVNFRF9QQVJBTSh6b25lKTsKICAgICByZXR1cm4gW3NlbGYgcmV0
YWluXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCA4MzIwNjk1MDg1ZTY5ZTQxZDgzZWRiOWY2MDI1ZTkyYzg5ZTk4YmIyLi5m
OTRhYTU2ODEzM2Y1MmM5NDMzZTFjYzk0MjVkMTg0MWU3OGU2YTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzc0LDYgKzM3NCw3
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJh
dGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENv
ZGVyOihOU0NvZGVyICopY29kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oY29kZXIpOwogICAgIFtz
ZWxmIHJlbGVhc2VdOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC0xNTcwLDYgKzE1NzEsNyBAQCAt
IChCT09MKWFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzCiAKIC0gKHZvaWQpcmVz
aXplU3Vidmlld3NXaXRoT2xkU2l6ZTooTlNTaXplKW9sZFNpemUKIHsKKyAgICBVTlVTRURfUEFS
QU0ob2xkU2l6ZSk7CiAgICAgW193a1ZpZXcgc2V0RnJhbWU6c2VsZi5ib3VuZHNdOwogfQogCkBA
IC0xODExLDYgKzE4MTMsOCBAQCAtICh2b2lkKV9zZXRBbGxvd3NSZW1vdGVJbnNwZWN0aW9uOihC
T09MKWFsbG93CiB7CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgX3BhZ2UtPnNl
dEFsbG93c1JlbW90ZUluc3BlY3Rpb24oYWxsb3cpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
YWxsb3cpOwogI2VuZGlmCiB9CiAKQEAgLTIwNjgsNyArMjA3Miw3IEBAIC0gKHZvaWQpX3NldEZv
cm1EZWxlZ2F0ZTooaWQgPF9XS0Zvcm1EZWxlZ2F0ZT4pZm9ybURlbGVnYXRlCiAKICAgICAgICAg
dmlydHVhbCB+Rm9ybUNsaWVudCgpIHsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3Vi
bWl0Rm9ybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdl
YktpdDo6V2ViRnJhbWVQcm94eSYgc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8
V1RGOjpTdHJpbmcsIFdURjo6U3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgQVBJOjpPYmplY3Qq
IHVzZXJEYXRhLCBSZWY8V2ViS2l0OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk+JiYg
bGlzdGVuZXIpIG92ZXJyaWRlCisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3VibWl0Rm9ybShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdURjo6U3Ry
aW5nPj4mIHRleHRGaWVsZFZhbHVlcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBSZWY8V2ViS2l0
OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIpIG92ZXJyaWRlCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh1c2VyRGF0YSAmJiB1c2VyRGF0YS0+dHlwZSgpICE9
IEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCF1c2Vy
RGF0YSB8fCB1c2VyRGF0YS0+dHlwZSgpID09IEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhKTsKQEAg
LTI1ODEsMjYgKzI1ODUsMzEgQEAgLSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOihp
ZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4paXRlbQogCiAtIChJQkFjdGlvbilnb0Jh
Y2s6KGlkKXNlbmRlcgogeworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIFtzZWxmIGdv
QmFja107CiB9CiAKIC0gKElCQWN0aW9uKWdvRm9yd2FyZDooaWQpc2VuZGVyCiB7CisgICAgVU5V
U0VEX1BBUkFNKHNlbmRlcik7CiAgICAgW3NlbGYgZ29Gb3J3YXJkXTsKIH0KIAogLSAoSUJBY3Rp
b24pcmVsb2FkOihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBb
c2VsZiByZWxvYWRdOwogfQogCiAtIChJQkFjdGlvbilyZWxvYWRGcm9tT3JpZ2luOihpZClzZW5k
ZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBbc2VsZiByZWxvYWRGcm9tT3Jp
Z2luXTsKIH0KIAogLSAoSUJBY3Rpb24pc3RvcExvYWRpbmc6KGlkKXNlbmRlcgogeworICAgIFVO
VVNFRF9QQVJBTShzZW5kZXIpOwogICAgIF9wYWdlLT5zdG9wTG9hZGluZygpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IGNjMWRiMzFkYjg1NDMzNWRjYWYzMTli
Y2RjYzNjZjBmMjcxYTQ3ZTUuLmU0Y2Q1Y2RhOTY2NzA1YTM1NDBkZjAyZTBjNjFkMWYzZDQzODMy
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0xMDgsNiArMTA4LDcg
QEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9u
ZSAqKXpvbmUKIHsKKyAgICBVTlVTRURfUEFSQU0oem9uZSk7CiAgICAgcmV0dXJuIHdyYXBwZXIo
X3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+Y29weSgpLmxlYWtSZWYoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmll
dy5tbQppbmRleCBkZjkzMjNmMTJhMjA2ZDlhZWY2MTUzYWRlNGM3MTdkMjFiMjcwZTY0Li40NWIw
MTIzZWNmNWE5OGI5OWIwNjA2NzdmZWRmOWQ1MjY4NzQzZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tCkBAIC0x
NjMsNiArMTYzLDcgQEAgLSAodm9pZClzZXRTY2FsZTooQ0dGbG9hdClzY2FsZQogLy8gVGhpcyBz
aG91bGQgYmUgcmVtb3ZlZCB3aGVuIGFsbCBjbGllbnRzIGdvIGF3YXk7IGl0IGlzIGFsd2F5cyBZ
RVMgbm93LgogLSAodm9pZClzZXRVc2VzU25hcHNob3Q6KEJPT0wpdXNlc1NuYXBzaG90CiB7Cisg
ICAgVU5VU0VEX1BBUkFNKHVzZXNTbmFwc2hvdCk7CiB9CiAKIC0gKEJPT0wpdXNlc1NuYXBzaG90
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMDUxYTAx
NjdiMWNiMmI2MTMwZDk3MWQwYWJmZThiYzQyZGY1OGNhOS4uNTZkMGMzOWFjNmFjNGUyMTY2NTk5
MDg0MzllMDdlOGQzM2E4MTZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQpAQCAtNTc2LDcgKzU3Niw3IEBAIHN0YXRpYyBTdHJpbmcgY29tbWFuZE5hbWVG
b3JTZWxlY3RvcihTRUwgc2VsZWN0b3IpCiAKIC8vIEVkaXRpbmcgY29tbWFuZHMKIAotI2RlZmlu
ZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21tYW5kOihpZClzZW5kZXIgeyBf
ZGF0YS0+X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZvclNlbGVjdG9yKF9j
bWQpKTsgfQorI2RlZmluZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21tYW5k
OihpZClzZW5kZXIgeyBVTlVTRURfUEFSQU0oc2VuZGVyKTsgX2RhdGEtPl9wYWdlLT5leGVjdXRl
RWRpdENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3RvcihfY21kKSk7IH0KIAogV0VCQ09SRV9D
T01NQU5EKGFsaWduQ2VudGVyKQogV0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQpAQCAt
NzAwLDYgKzcwMCw3IEBAIC0gKEJPT0wpd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQ6KE5TUGFz
dGVib2FyZCAqKXBhc3RlYm9hcmQgdHlwZXM6KE5TQXJyYXkgKil0CiAKIC0gKHZvaWQpY2VudGVy
U2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyIAogeyAKKyAgICBVTlVTRURfUEFSQU0o
c2VuZGVyKTsKICAgICBfZGF0YS0+X3BhZ2UtPmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEo
KTsKIH0KIApAQCAtODkyLDYgKzg5Myw3IEBAIC0gKEJPT0wpdmFsaWRhdGVVc2VySW50ZXJmYWNl
SXRlbTooaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+KWl0ZW0KIAogLSAoSUJBY3Rp
b24pc3RhcnRTcGVha2luZzooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7
CiAgICAgX2RhdGEtPl9wYWdlLT5nZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoW3NlbGZd
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAg
ICAgIGlmIChlcnJvciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTI3LDYgKzkyOSw3IEBAIC0gKElCQWN0aW9uKXNob3dHdWVzc1BhbmVsOihp
ZClzZW5kZXIKIAogLSAoSUJBY3Rpb24pY2hlY2tTcGVsbGluZzooaWQpc2VuZGVyCiB7CisgICAg
VU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT5hZHZhbmNlVG9OZXh0TWlz
c3BlbGxpbmcoZmFsc2UpOwogfQogCkBAIC05MzksNiArOTQyLDcgQEAgLSAodm9pZCljaGFuZ2VT
cGVsbGluZzooaWQpc2VuZGVyCiAKIC0gKElCQWN0aW9uKXRvZ2dsZUNvbnRpbnVvdXNTcGVsbENo
ZWNraW5nOihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBib29s
IHNwZWxsQ2hlY2tpbmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQ29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQpOwogCkBAIC05NjEsNiArOTY1
LDcgQEAgLSAodm9pZClzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcKIAogLSAo
SUJBY3Rpb24pdG9nZ2xlR3JhbW1hckNoZWNraW5nOihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURf
UEFSQU0oc2VuZGVyKTsKICAgICBib29sIGdyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSAhVGV4dENo
ZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRDaGVja2Vy
OjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGdyYW1tYXJDaGVja2luZ0VuYWJsZWQpOwogCkBA
IC05NjksNiArOTc0LDcgQEAgLSAoSUJBY3Rpb24pdG9nZ2xlR3JhbW1hckNoZWNraW5nOihpZClz
ZW5kZXIKIAogLSAoSUJBY3Rpb24pdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uOihp
ZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBUZXh0Q2hlY2tlcjo6
c2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRl
KCkuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKIAogICAgIF9kYXRhLT5f
cGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKQEAgLTk5Miw2ICs5OTgs
NyBAQCAtICh2b2lkKW9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFuZWw6KGlkKXNlbmRlcgogCiAt
IChJQkFjdGlvbil0b2dnbGVTbWFydEluc2VydERlbGV0ZTooaWQpc2VuZGVyCiB7CisgICAgVU5V
U0VEX1BBUkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoIV9kYXRhLT5fcGFnZS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSk7CiB9
CiAKQEAgLTEwMTEsNiArMTAxOCw3IEBAIC0gKHZvaWQpc2V0QXV0b21hdGljUXVvdGVTdWJzdGl0
dXRpb25FbmFibGVkOihCT09MKWZsYWcKIAogLSAodm9pZCl0b2dnbGVBdXRvbWF0aWNRdW90ZVN1
YnN0aXR1dGlvbjooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAg
VGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENo
ZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwogICAg
IF9kYXRhLT5fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KQEAg
LTEwMzEsNiArMTAzOSw3IEBAIC0gKHZvaWQpc2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVu
YWJsZWQ6KEJPT0wpZmxhZwogCiAtICh2b2lkKXRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRp
b246KGlkKXNlbmRlcgogeworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIFRleHRDaGVj
a2VyOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0
YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk7CiAgICAgX2RhdGEtPl9w
YWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQpAQCAtMTA1MSw2ICsx
MDYwLDcgQEAgLSAodm9pZClzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZDooQk9PTClm
bGFnCiAKIC0gKHZvaWQpdG9nZ2xlQXV0b21hdGljTGlua0RldGVjdGlvbjooaWQpc2VuZGVyCiB7
CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0xp
bmtEZXRlY3Rpb25FbmFibGVkKTsKICAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVU
ZXh0Q2hlY2tlclN0YXRlKCk7CiB9CkBAIC0xMDcxLDIyICsxMDgxLDI2IEBAIC0gKHZvaWQpc2V0
QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZDooQk9PTClmbGFnCiAKIC0gKHZvaWQpdG9n
Z2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50OihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFS
QU0oc2VuZGVyKTsKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50
RW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkKTsKICAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0
YXRlKCk7CiB9CiAKIC0gKHZvaWQpdXBwZXJjYXNlV29yZDooaWQpc2VuZGVyCiB7CisgICAgVU5V
U0VEX1BBUkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT51cHBlcmNhc2VXb3JkKCk7CiB9
CiAKIC0gKHZvaWQpbG93ZXJjYXNlV29yZDooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFN
KHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT5sb3dlcmNhc2VXb3JkKCk7CiB9CiAKIC0gKHZv
aWQpY2FwaXRhbGl6ZVdvcmQ6KGlkKXNlbmRlcgogeworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIp
OwogICAgIF9kYXRhLT5fcGFnZS0+Y2FwaXRhbGl6ZVdvcmQoKTsKIH0KIApAQCAtMTExNSw2ICsx
MTI5LDcgQEAgLSAodm9pZClkaXNwbGF5SWZOZWVkZWQKIC8vIHN1cHBvcnQgdGhlbSB2aWEgdGhl
IGtleSBiaW5kaW5ncyBtZWNoYW5pc20uCiAtIChCT09MKV93YW50c0tleURvd25Gb3JFdmVudDoo
TlNFdmVudCAqKWV2ZW50CiB7CisgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4g
WUVTOwogfQogCkBAIC0yMzEyLDYgKzIzMjcsNyBAQCAtIChOU0FycmF5ICopdmFsaWRBdHRyaWJ1
dGVzRm9yTWFya2VkVGV4dAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAtICh2b2lkKWRyYWdn
ZWRJbWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgZW5kZWRBdDooTlNQb2ludClhUG9pbnQgb3BlcmF0
aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKGFuSW1h
Z2UpOwogICAgIE5TUG9pbnQgd2luZG93SW1hZ2VMb2MgPSBbW3NlbGYgd2luZG93XSBjb252ZXJ0
U2NyZWVuVG9CYXNlOmFQb2ludF07CiAgICAgTlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdpbmRv
d0ltYWdlTG9jOwogICAgCkBAIC0yMzc3LDYgKzIzOTMsNyBAQCAtICh2b2lkKWRyYWdnaW5nRXhp
dGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogCiAtIChCT09MKXByZXBhcmVG
b3JEcmFnT3BlcmF0aW9uOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogeworICAg
IFVOVVNFRF9QQVJBTShkcmFnZ2luZ0luZm8pOwogICAgIHJldHVybiBZRVM7CiB9CiAKQEAgLTI0
NDUsNiArMjQ2Miw3IEBAIC0gKEJPT0wpcGVyZm9ybURyYWdPcGVyYXRpb246KGlkIDxOU0RyYWdn
aW5nSW5mbz4pZHJhZ2dpbmdJbmZvCiAvLyBpbiB0aGUgZHJhZyBwYXN0ZWJvYXJkIGF1dG9tYXRp
Y2FsbHkgd2hlbiB0aGUgZHJhZyBzdGFydCAoaS5lLiBkcmFnZ2luZyBhIERJViBlbGVtZW50KS4K
IC0gKE5TVmlldyAqKV9oaXRUZXN0OihOU1BvaW50ICopcG9pbnQgZHJhZ1R5cGVzOihOU1NldCAq
KXR5cGVzCiB7CisgICAgVU5VU0VEX1BBUkFNKHR5cGVzKTsKICAgICBpZiAoW1tzZWxmIHN1cGVy
dmlld10gbW91c2U6KnBvaW50IGluUmVjdDpbc2VsZiBmcmFtZV1dKQogICAgICAgICByZXR1cm4g
c2VsZjsKICAgICByZXR1cm4gbmlsOwpAQCAtMjYwMSwxNiArMjYxOSwxOSBAQCAtICh2b2lkKV93
aW5kb3dEaWRCZWNvbWVLZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAKIC0gKHZv
aWQpX3dpbmRvd0RpZENoYW5nZVNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
IHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBbc2VsZiBkb1dpbmRvd0Rp
ZENoYW5nZVNjcmVlbl07CiB9CiAKIC0gKHZvaWQpX3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGlu
ZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90
aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPmxheWVySG9zdGluZ01vZGVEaWRDaGFuZ2Uo
KTsKIH0KIAogLSAodm9pZClfd2luZG93RGlkUmVzaWduS2V5OihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIE5TV2lu
ZG93ICpmb3JtZXJLZXlXaW5kb3cgPSBbbm90aWZpY2F0aW9uIG9iamVjdF07CiAgICAgaWYgKGZv
cm1lcktleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGZvcm1lcktleVdpbmRvdyA9PSBbW3Nl
bGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkgewogICAgICAgICBbc2VsZiBfdXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZV07CkBAIC0yNjIwLDMxICsyNjQxLDM3IEBAIC0gKHZvaWQpX3dpbmRvd0RpZFJl
c2lnbktleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIAogLSAodm9pZClfd2luZG93
RGlkTWluaWF0dXJpemU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CisgICAgVU5V
U0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRD
aGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwogfQogCiAtICh2b2lkKV93aW5kb3dEaWREZW1p
bmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9Q
QVJBTShub3RpZmljYXRpb24pOwogICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdl
KFZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogLSAodm9pZClfd2luZG93RGlkTW92ZTooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0
aW9uKTsKICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107ICAgIAogfQogCiAt
ICh2b2lkKV93aW5kb3dEaWRSZXNpemU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7
CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgW3NlbGYgX3VwZGF0ZVdpbmRv
d0FuZFZpZXdGcmFtZXNdOwogfQogCiAtICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjoo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZp
Y2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6
OklzVmlzaWJsZSB8IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogfQogCiAtICh2b2lkKV93
aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewor
ICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0
YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgVmlld1N0YXRlOjpXaW5kb3dJc0Fj
dGl2ZSk7CiB9CiAKQEAgLTI2NjEsMTIgKzI2ODgsMTQgQEAgLSAodm9pZClfd2luZG93RGlkQ2hh
bmdlQmFja2luZ1Byb3BlcnRpZXM6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAtICh2b2lkKV93aW5kb3dE
aWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsK
KyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdT
dGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAjZW5kaWYKIAogLSAodm9p
ZClkcmF3UmVjdDooTlNSZWN0KXJlY3QKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CiAgICAg
TE9HKFZpZXcsICJkcmF3UmVjdDogeDolZywgeTolZywgd2lkdGg6JWcsIGhlaWdodDolZyIsIHJl
Y3Qub3JpZ2luLngsIHJlY3Qub3JpZ2luLnksIHJlY3Quc2l6ZS53aWR0aCwgcmVjdC5zaXplLmhl
aWdodCk7CiAgICAgX2RhdGEtPl9wYWdlLT5lbmRQcmludGluZygpOwogfQpAQCAtMjcwNiwxNiAr
MjczNSwxOSBAQCAtICh2b2lkKXZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcwogCiAtICh2
b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
IHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIC0gKHZvaWQpX2Fw
cGxpY2F0aW9uV2lsbFRlcm1pbmF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsK
KyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnByb2Nl
c3MoKS5wcm9jZXNzUG9vbCgpLmFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogfQogCiAtICh2
b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBbc2Vs
ZiBfc2V0VGV4dEluZGljYXRvcjpuaWwgZmFkZU91dDpOT107CiB9CiAKQEAgLTI3NjksNiArMjgw
MSw3IEBAIC0gKEJPT0wpYWNjZXNzaWJpbGl0eUlzSWdub3JlZAogCiAtIChpZClhY2Nlc3NpYmls
aXR5SGl0VGVzdDooTlNQb2ludClwb2ludAogeworICAgIFVOVVNFRF9QQVJBTShwb2ludCk7CiAg
ICAgW3NlbGYgZW5hYmxlQWNjZXNzaWJpbGl0eUlmTmVjZXNzYXJ5XTsKICAgICByZXR1cm4gX2Rh
dGEtPl9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQuZ2V0KCk7CiB9CkBAIC0yOTgzLDYgKzMwMTYs
OCBAQCAtIChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0KXJlY3QKIAogLSAoTlNU
cmFja2luZ1JlY3RUYWcpYWRkVHJhY2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQpb3du
ZXIgdXNlckRhdGE6KHZvaWQgKilkYXRhIGFzc3VtZUluc2lkZTooQk9PTClhc3N1bWVJbnNpZGUK
IHsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFzc3VtZUluc2lk
ZSk7CiAgICAgQVNTRVJUKF9kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgPT0gbmlsKTsKICAgICBf
ZGF0YS0+X3RyYWNraW5nUmVjdE93bmVyID0gb3duZXI7CiAgICAgX2RhdGEtPl90cmFja2luZ1Jl
Y3RVc2VyRGF0YSA9IGRhdGE7CkBAIC0yOTkxLDcgKzMwMjYsOSBAQCAtIChOU1RyYWNraW5nUmVj
dFRhZylhZGRUcmFja2luZ1JlY3Q6KE5TUmVjdClyZWN0IG93bmVyOihpZClvd25lciB1c2VyRGF0
YToodm9pZAogCiAtIChOU1RyYWNraW5nUmVjdFRhZylfYWRkVHJhY2tpbmdSZWN0OihOU1JlY3Qp
cmVjdCBvd25lcjooaWQpb3duZXIgdXNlckRhdGE6KHZvaWQgKilkYXRhIGFzc3VtZUluc2lkZToo
Qk9PTClhc3N1bWVJbnNpZGUgdXNlVHJhY2tpbmdOdW06KGludCl0YWcKIHsKLSAgICBBU1NFUlQo
dGFnID09IDAgfHwgdGFnID09IFRSQUNLSU5HX1JFQ1RfVEFHKTsKKyAgICBVTlVTRURfUEFSQU0o
cmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFzc3VtZUluc2lkZSk7CisgICAgQVNTRVJUX1VOVVNF
RCh0YWcsIHRhZyA9PSAwIHx8IHRhZyA9PSBUUkFDS0lOR19SRUNUX1RBRyk7CiAgICAgQVNTRVJU
KF9kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgPT0gbmlsKTsKICAgICBfZGF0YS0+X3RyYWNraW5n
UmVjdE93bmVyID0gb3duZXI7CiAgICAgX2RhdGEtPl90cmFja2luZ1JlY3RVc2VyRGF0YSA9IGRh
dGE7CkBAIC0zMDAwLDYgKzMwMzcsOSBAQCAtIChOU1RyYWNraW5nUmVjdFRhZylfYWRkVHJhY2tp
bmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQpb3duZXIgdXNlckRhdGE6KHZvaQogCiAtICh2
b2lkKV9hZGRUcmFja2luZ1JlY3RzOihOU1JlY3QgKilyZWN0cyBvd25lcjooaWQpb3duZXIgdXNl
ckRhdGFMaXN0Oih2b2lkICoqKXVzZXJEYXRhTGlzdCBhc3N1bWVJbnNpZGVMaXN0OihCT09MICop
YXNzdW1lSW5zaWRlTGlzdCB0cmFja2luZ051bXM6KE5TVHJhY2tpbmdSZWN0VGFnICopdHJhY2tp
bmdOdW1zIGNvdW50OihpbnQpY291bnQKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVjdHMpOworICAg
IFVOVVNFRF9QQVJBTShhc3N1bWVJbnNpZGVMaXN0KTsKKyAgICBVTlVTRURfUEFSQU0oY291bnQp
OwogICAgIEFTU0VSVChjb3VudCA9PSAxKTsKICAgICBBU1NFUlQodHJhY2tpbmdOdW1zWzBdID09
IDAgfHwgdHJhY2tpbmdOdW1zWzBdID09IFRSQUNLSU5HX1JFQ1RfVEFHKTsKICAgICBBU1NFUlQo
X2RhdGEtPl90cmFja2luZ1JlY3RPd25lciA9PSBuaWwpOwpAQCAtMzA3OCw2ICszMTE4LDEwIEBA
IC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkCiAKIC0gKE5TU3RyaW5nICopdmlldzoo
TlNWaWV3ICopdmlldyBzdHJpbmdGb3JUb29sVGlwOihOU1Rvb2xUaXBUYWcpdGFnIHBvaW50OihO
U1BvaW50KXBvaW50IHVzZXJEYXRhOih2b2lkICopZGF0YQogeworICAgIFVOVVNFRF9QQVJBTSh2
aWV3KTsKKyAgICBVTlVTRURfUEFSQU0odGFnKTsKKyAgICBVTlVTRURfUEFSQU0ocG9pbnQpOwor
ICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICAgICByZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29yZVN0
cmluZyhfZGF0YS0+X3BhZ2UtPnRvb2xUaXAoKSk7CiB9CiAKQEAgLTMzMjYsNiArMzM3MCw3IEBA
IC0gKHZvaWQpX3NldFByb21pc2VkRGF0YTooV2ViQ29yZTo6SW1hZ2UgKilpbWFnZSB3aXRoRmls
ZU5hbWU6KE5TU3RyaW5nICopZmlsZW5hCiAKIC0gKHZvaWQpcGFzdGVib2FyZENoYW5nZWRPd25l
cjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogeworICAgIFVOVVNFRF9QQVJBTShwYXN0ZWJv
YXJkKTsKICAgICBfZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSAwOwogICAgIF9kYXRhLT5fcHJvbWlz
ZWRGaWxlbmFtZSA9ICIiOwogICAgIF9kYXRhLT5fcHJvbWlzZWRVUkwgPSAiIjsKQEAgLTQzMjks
MTYgKzQzNzQsMjIgQEAgLSAodm9pZClfc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjazoo
dm9pZCheKShDR1JlY3QpKWNhbGxiYWNrCiAKIC0gKE5TQXJyYXkgKilfYWN0aW9uTWVudUl0ZW1z
Rm9ySGl0VGVzdFJlc3VsdDooV0tIaXRUZXN0UmVzdWx0UmVmKWhpdFRlc3RSZXN1bHQgd2l0aFR5
cGU6KF9XS0FjdGlvbk1lbnVUeXBlKXR5cGUgZGVmYXVsdEFjdGlvbk1lbnVJdGVtczooTlNBcnJh
eSAqKWRlZmF1bHRNZW51SXRlbXMKIHsKKyAgICBVTlVTRURfUEFSQU0oaGl0VGVzdFJlc3VsdCk7
CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOwogICAgIHJldHVybiBkZWZhdWx0TWVudUl0ZW1zOwog
fQogCiAtIChOU0FycmF5ICopX2FjdGlvbk1lbnVJdGVtc0ZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0
VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOihfV0tBY3Rpb25NZW51VHlwZSl0
eXBlIGRlZmF1bHRBY3Rpb25NZW51SXRlbXM6KE5TQXJyYXkgKilkZWZhdWx0TWVudUl0ZW1zIHVz
ZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGEKIHsKKyAgICBVTlVTRURfUEFSQU0odXNlckRhdGEp
OwogICAgIHJldHVybiBbc2VsZiBfYWN0aW9uTWVudUl0ZW1zRm9ySGl0VGVzdFJlc3VsdDpoaXRU
ZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgZGVmYXVsdEFjdGlvbk1lbnVJdGVtczpkZWZhdWx0TWVu
dUl0ZW1zXTsKIH0KIAogLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJG
b3JIaXRUZXN0UmVzdWx0OihXS0hpdFRlc3RSZXN1bHRSZWYpaGl0VGVzdFJlc3VsdCB3aXRoVHlw
ZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRh
dGEKIHsKKyAgICBVTlVTRURfUEFSQU0oaGl0VGVzdFJlc3VsdCk7CisgICAgVU5VU0VEX1BBUkFN
KHR5cGUpOworICAgIFVOVVNFRF9QQVJBTSh1c2VyRGF0YSk7CiAgICAgcmV0dXJuIG5pbDsKIH0K
IApAQCAtNDQxNCwxNiArNDQ2NSwyMCBAQCAtIChib29sKWRpZFJlY2VpdmVVbmhhbmRsZWRDb21t
YW5kCiAKIC0gKHZvaWQpbm9SZXNwb25kZXJGb3I6KFNFTClzZWxlY3RvcgogeworICAgIFVOVVNF
RF9QQVJBTShzZWxlY3Rvcik7CiAgICAgX2RpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kID0gdHJ1
ZTsKIH0KIAogLSAodm9pZClkb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKKyAg
ICBVTlVTRURfUEFSQU0oc2VsZWN0b3IpOwogICAgIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFu
ZCA9IHRydWU7CiB9CiAKIC0gKEJPT0wpdHJ5VG9QZXJmb3JtOihTRUwpYWN0aW9uIHdpdGg6KGlk
KW9iamVjdAogeworICAgIFVOVVNFRF9QQVJBTShhY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShv
YmplY3QpOwogICAgIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZCA9IHRydWU7CiAgICAgcmV0
dXJuIFlFUzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLm1tCmluZGV4IDM0ZjQwOWU1M2Q2ZDZiODZlZGFlM2Y2M2ViOTUyMzM4OWExMGY5
MTIuLjIyMTk2YmY1ZTUyY2E4Njk2MWEwMTY1MWJjM2ZlYjIyM2YzNjI2MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtMjIy
LDcgKzIyMiw3IEBAIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50Ojp+UG9saWN5Q2xpZW50
KCkKIHsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5KiBkZXN0
aW5hdGlvbkZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIFdlYkZyYW1lUHJveHkqIHNvdXJjZUZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVyLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEpCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1l
UHJveHkqIGRlc3RpbmF0aW9uRnJhbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb25EYXRhJiBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgV2ViRnJhbWVQcm94eSogc291cmNlRnJhbWUsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYg
bGlzdGVuZXIsIEFQSTo6T2JqZWN0KikKIHsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBu
c1VSTFJlcXVlc3QgPSBhZG9wdE5TKHdyYXBwZXIoKkFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRlKHJl
cXVlc3QpLmxlYWtSZWYoKSkpOwogCkBAIC0yOTEsMTIgKzI5MSwxMiBAQCB2b2lkIE5hdmlnYXRp
b25TdGF0ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdl
YlBhZ2VQcm94eQogICAgIH1dOwogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQYWdl
UHJveHksIFdlYkZyYW1lUHJveHkmIHNvdXJjZUZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgUmVmPFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQordm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBXZWJGcmFtZVByb3h5JiBzb3VyY2VG
cmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdURjo6U3RyaW5n
JiwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKQogewogICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24od2Vi
UGFnZVByb3h5LCBudWxscHRyLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgJnNvdXJjZUZyYW1lLCBy
ZXF1ZXN0LCByZXF1ZXN0LCBXVEY6Om1vdmUobGlzdGVuZXIpLCB1c2VyRGF0YSk7CiB9CiAKLXZv
aWQgTmF2aWdhdGlvblN0YXRlOjpQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFJlZjxXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkK
K3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFJlZjxXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KikKIHsKICAg
ICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5kbGVyKSB7CiAg
ICAgICAgIE5TVVJMICp1cmwgPSByZXNvdXJjZVJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKS5VUkw7
CkBAIC0zNjMsNyArMzYzLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6On5Mb2Fk
ZXJDbGllbnQoKQogewogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJh
bWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6
Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZy
YW1lUHJveHksIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmplY3QqKQogewog
ICAgIGlmICghd2ViRnJhbWVQcm94eS5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBA
IC0zODMsNyArMzgzLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkKICAgICBbbmF2aWdhdGlv
bkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uOndrTmF2aWdhdGlvbl07CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0
YXRlOjpMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiB3
ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KikK
K3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBB
UEk6Ok9iamVjdCopCiB7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5LmlzTWFpbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTQxNyw3ICs0MTcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRXJy
b3I+IGNyZWF0ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmlldywg
VwogICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46b3Jp
Z2luYWxFcnJvci5kb21haW4gY29kZTpvcmlnaW5hbEVycm9yLmNvZGUgdXNlckluZm86dXNlcklu
Zm8uZ2V0KCldKTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9u
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqKQordm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdp
dGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJv
eHksIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYgZXJyb3IsIEFQSTo6T2JqZWN0KikKIHsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkuaXNN
YWluRnJhbWUoKSkgewogICAgICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TmF2aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJ
blN1YmZyYW1lV2l0aEVycm9yKQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpMb2FkZXJDbGllbnQ6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXZWJQCiAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRl
Lm1fd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOndrTmF2aWdhdGlvbi5nZXQo
KSB3aXRoRXJyb3I6ZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCldOwogfQogCi12b2lk
IE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV2Vi
UGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmln
YXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KikKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpM
b2FkZXJDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFt
ZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6
T2JqZWN0KikKIHsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkuaXNNYWluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpMb2Fk
ZXJDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlCiAg
ICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkaWRDb21taXROYXZpZ2F0aW9uOndrTmF2aWdhdGlvbl07CiB9CiAKLXZvaWQgTmF2aWdhdGlv
blN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0
aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9h
ZGVyQ2xpZW50OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkmLCBX
ZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24s
IEFQSTo6T2JqZWN0KikKIHsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkuaXNNYWluRnJhbWUoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRl
OjpMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94
eSYKICAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5h
dmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJW
aWV3IG5hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQ6d2tOYXZpZ2F0aW9uXTsKIH0KIAot
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZEZvckZyYW1l
KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5JiwgV2Vi
RnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBB
UEk6Ok9iamVjdCopCiB7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5LmlzTWFpbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwOSw3ICs1MDksNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6
TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZQogICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dl
YlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjp3a05hdmlnYXRpb25dOwogfQogCi12b2lkIE5hdmln
YXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVu
dDo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVBy
b3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBBUEk6Ok9iamVjdCopCiB7CiAgICAgaWYgKCF3
ZWJGcmFtZVByb3h5LmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYzNCw3ICs2
MzQsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKFdlYgogICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2Vi
VmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOndyYXBwZXIoKmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKV07CiB9CiAKLXZvaWQg
TmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OnByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYgcGFnZSkKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OnBy
b2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBhZ2VQcm94eSYpCiB7CiAgICAgaWYgKCFtX25hdmln
YXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYlByb2Nlc3NE
aWRDcmFzaCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlODdhZjQ5ZGIwMTU1ZWE4YTYwNTk2OTc4NjU3N2U4OGVj
NzBlNWFjLi41YTY5Njc3ZTc4YjM3MjFiNGI1OTMyOTdkMGY4Y2RiZjJjYTdjZGZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTc4LDcgKzE3
OCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6CiAgICAgfV07CiB9CiAKLXZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJQYWdlUHJveHkqLCBXZWJG
cmFtZVByb3h5KiwgQVBJOjpTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFtZSwg
dW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJl
bnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWduZWQg
bG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHN0ZDo6ZnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9u
ZyBsb25nKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSTo6
U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0
IFdURjo6U3RyaW5nJiwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQg
bG9uZyBsb25nIGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRV
c2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAodW5zaWduZWQgbG9uZyBsb25nKT4gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFG
b3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRh
YmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA0ZTE0YzMyMjg0ZGIzOGQ1
NWZlNTBhNjkyZDYwMWVhZWE3OTIwMTlkLi5hNDliY2ZjZTYzZWYzMzQ3Yzc0MmJlOWVlNmNmM2Vm
MzU5ZmNjMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMzk2LDIzICszOTYsMjMgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKQogICAgICAgICBzZXRFbmhh
bmNlZEFjY2Vzc2liaWxpdHkoW1tbbm90ZSB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAiQVhFbmhh
bmNlZFVzZXJJbnRlcmZhY2UiXSBib29sVmFsdWVdKTsKICAgICB9XTsKIAotICAgIG1fYXV0b21h
dGljVGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU1NwZWxsQ2hlY2tlckRp
ZENoYW5nZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1
ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZp
Y2F0aW9uICpub3RpZmljYXRpb24pIHsKKyAgICBtX2F1dG9tYXRpY1RleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSBhZGRPYnNlcnZlckZvck5hbWU6TlNTcGVsbENoZWNrZXJEaWRDaGFuZ2VBdXRvbWF0aWNUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1
ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAg
IFRleHRDaGVja2VyOjpkaWRDaGFuZ2VBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKCk7
CiAgICAgICAgIHRleHRDaGVja2VyU3RhdGVDaGFuZ2VkKCk7CiAgICAgfV07CiAgICAgCi0gICAg
bV9hdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25Ob3RpZmljYXRpb25PYnNlcnZlciA9IFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TU3Bl
bGxDaGVja2VyRGlkQ2hhbmdlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0aW9u
IG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Js
b2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworICAgIG1fYXV0b21hdGljU3Bl
bGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU1NwZWxsQ2hlY2tlckRpZENo
YW5nZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbk5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1
ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZp
Y2F0aW9uICopIHsKICAgICAgICAgVGV4dENoZWNrZXI6OmRpZENoYW5nZUF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbkVuYWJsZWQoKTsKICAgICAgICAgdGV4dENoZWNrZXJTdGF0ZUNoYW5nZWQo
KTsKICAgICB9XTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5
MAotICAgIG1fYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlciA9
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1l
Ok5TU3BlbGxDaGVja2VyRGlkQ2hhbmdlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmlj
YXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVz
aW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CisgICAgbV9hdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbk5vdGlmaWNhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNTcGVsbENoZWNrZXJE
aWRDaGFuZ2VBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbk5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
IHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90
aWZpY2F0aW9uICopIHsKICAgICAgICAgVGV4dENoZWNrZXI6OmRpZENoYW5nZUF1dG9tYXRpY1F1
b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwogICAgICAgICB0ZXh0Q2hlY2tlclN0YXRlQ2hhbmdl
ZCgpOwogICAgIH1dOwogCi0gICAgbV9hdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uTm90aWZpY2F0
aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpOU1NwZWxsQ2hlY2tlckRpZENoYW5nZUF1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb25Ob3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJy
ZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7Cisg
ICAgbV9hdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXIgPSBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU1Nw
ZWxsQ2hlY2tlckRpZENoYW5nZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb24g
b2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxv
Y2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIFRleHRDaGVja2VyOjpkaWRDaGFuZ2VB
dXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwogICAgICAgICB0ZXh0Q2hlY2tlclN0
YXRlQ2hhbmdlZCgpOwogICAgIH1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3NDc1ODQ3
YTdkYzBlOTkwNTU2M2NlMmYwY2E4MjYwYTI5OGRkYWJkLi5lZDA4MDdiN2VhMDk2ZjMzZjRkMzMx
MjQzNjMzZjQ1YmNjNmViOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA1LDcgKzEw
NSw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpCiAgICAgbV9wcm9jZXNzUG9vbC0+ZGF0YWJhc2VQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKIH0K
IAotdm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQordm9pZCBEYXRhYmFzZVByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggMThiMzY4MjNjN2NlNTEwOTBi
Yzg2NWRjNzg2YmJhOGU5NDVmOTdkZC4uYTFhNmQyNjNiMWFmZjBhMGEwM2RmMDhjOWNmZmE4ZmFk
YzQ4ZTU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAq
LywgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVHZW9tZXRyeSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBp
bnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdJ
bnRyaW5zaWNDb250ZW50U2l6ZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY0NvbnRl
bnRTaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5PiBtX2V4cG9zZWRS
ZWN0Q2hhbmdlZFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBhOTUzZWEzMWZjYmJm
M2Y0MzE1ZWJiNzRhZDkwYzczMWY0OGE4NGJjLi5kNmQzY2I3MjI2NDg5NjQ1OGNjMzJjZWJjNTAz
ODY4MWNhYmViZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjI2LDcgKzIyNiw3IEBA
IHN0YXRpYyB2b2lkIGNvbm5lY3RUb1NlcnZpY2UoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVu
Y2hPcHRpb25zJiBsYXVuY2hPcHRpb25zCiAjZW5kaWYKIAogICAgIC8vIFhQQyByZXF1aXJlcyBo
YXZpbmcgYW4gZXZlbnQgaGFuZGxlciwgZXZlbiBpZiBpdCBpcyBub3QgdXNlZC4KLSAgICB4cGNf
Y29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLmdldCgpLCBeKHhwY19vYmpl
Y3RfdCBldmVudCkgeyB9KTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihj
b25uZWN0aW9uLmdldCgpLCBeKHhwY19vYmplY3RfdCkgeyB9KTsKICAgICB4cGNfY29ubmVjdGlv
bl9yZXN1bWUoY29ubmVjdGlvbi5nZXQoKSk7CiAgICAgCiAgICAgaWYgKHNob3VsZExlYWtCb29z
dChsYXVuY2hPcHRpb25zKSkgewpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyB2b2lkIGNvbm5l
Y3RUb1JlRXhlY1NlcnZpY2UoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBs
YXVuY2hPCiAgICAgLy8gdG8gaW5kaWNhdGUgdGhhdCB0aGUgc2VydmljZSBpbnN0YW5jZSByZS1l
eGVjZWQgaXRzZWxmLCBhbmQgaXMgbm93IHJlYWR5IHRvIGJlCiAgICAgLy8gY29ubmVjdGVkIHRv
LgogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKHJlRXhlY0Nvbm5lY3Rpb24s
IF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUoZXZl
bnQpID09IFhQQ19UWVBFX0VSUk9SKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChldmVudCwgeHBj
X2dldF90eXBlKGV2ZW50KSA9PSBYUENfVFlQRV9FUlJPUik7CiAKICAgICAgICAgY29ubmVjdFRv
U2VydmljZShsYXVuY2hPcHRpb25zLCB0cnVlLCB0aGF0LCBkaWRGaW5pc2hMYXVuY2hpbmdQcm9j
ZXNzRnVuY3Rpb24sIGluc3RhbmNlVVVJRC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4
IGQwZTVjMzU3YTllMGQ0ZWRmOWZlZDcwOTJlZDhlYmY2NjQ1MjljMGQuLjVlZjllZWY5MzA2Yjdk
ZmY1ZGYyMjA0NDgxYmZlMWNjNTIzM2Y5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtODEsNiAr
ODEsNyBAQCAtICh2b2lkKWRlYWxsb2MKIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgogewor
ICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBSZXNvdXJjZUVycm9yIGNvcmVFcnJv
cihlcnJvcik7CiAgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6RGlkRmFpbFdpdGhFcnJvcihfY3VzdG9tUHJvdG9jb2xJRCwgY29yZUVycm9yKSwg
MCk7CiAgICAgX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LT5zdG9wTG9hZGluZyhfY3VzdG9t
UHJvdG9jb2xJRCk7CkBAIC04OCw2ICs4OSw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyCiAK
IC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKilj
b25uZWN0aW9uIHdpbGxDYWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopY2FjaGVk
UmVzcG9uc2UKIHsKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAgICAgQVNTRVJUKF9z
dG9yYWdlUG9saWN5ID09IE5TVVJMQ2FjaGVTdG9yYWdlTm90QWxsb3dlZCk7CiAgICAgX3N0b3Jh
Z2VQb2xpY3kgPSBbY2FjaGVkUmVzcG9uc2Ugc3RvcmFnZVBvbGljeV07CiAgICAgcmV0dXJuIGNh
Y2hlZFJlc3BvbnNlOwpAQCAtOTUsMjMgKzk3LDI4IEBAIC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2Ug
Kiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxDYWNoZVJlc3Bv
CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRS
ZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQogeworICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlIGNvcmVSZXNwb25zZShyZXNw
b25zZSk7CiAgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29sTWFu
YWdlcjo6RGlkUmVjZWl2ZVJlc3BvbnNlKF9jdXN0b21Qcm90b2NvbElELCBjb3JlUmVzcG9uc2Us
IF9zdG9yYWdlUG9saWN5KSwgMCk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25u
ZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YQogeworICAg
IFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgY29yZURh
dGEoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0
aF0pOwogICAgIF9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFn
ZXI6OkRpZExvYWREYXRhKF9jdXN0b21Qcm90b2NvbElELCBjb3JlRGF0YSksIDApOwogfQogCiAt
IChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9u
IHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZWRpcmVjdFJlc3BvbnNl
OihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQogeworICAgIFVOVVNFRF9QQVJBTShj
b25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocmVkaXJlY3RSZXNwb25zZSk7CiAgICAgcmV0
dXJuIHJlcXVlc3Q7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6KE5T
VVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KIHsKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlv
bik7CiAgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29sTWFuYWdl
cjo6RGlkRmluaXNoTG9hZGluZyhfY3VzdG9tUHJvdG9jb2xJRCksIDApOwogICAgIF9jdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eS0+c3RvcExvYWRpbmcoX2N1c3RvbVByb3RvY29sSUQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNDFhYjdjNWY1ZWZkZjU5YWJmNTFkZDUxMDMwMTY4ODc0
MDI0MzgzNy4uMWJiYTMxY2I3MjUzMDU0ODNjMDdmMzRhY2YwMjc4YjY1MzgxZGE1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFNjcm9sbGluZ1RyZWU6OkV2ZW50UmVz
dWx0IFJlbW90ZVNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZSkKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlKQogewogICAgIC8vIEZJWE1FOiBoYW5kIG9mZiB0byBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk/CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAK
aW5kZXggNzZkZTdlOGViMzY5Mzc3Y2VjMmIzY2FkODMzOGNmZWY2NTU4YjUzNi4uMjRkYmI5Yjdm
NWU4MWNhZjFjOWQxNjQ4NDQ2NzY1NTMwMmUyZDJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtMjQzLDYgKzI0Myw4IEBAIGJvb2wgV2ViRnJhbWVQ
cm94eTo6Y29udGVudEZpbHRlckRpZEhhbmRsZU5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29y
ZTo6UmVzb3VyCiAgICAgICAgICAgICByZXRhaW5lZFBhZ2UtPnJlbG9hZChmYWxzZSk7CiAgICAg
ICAgIH0pOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwogI2VuZGlm
CiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKaW5kZXggMTY0YWNiZDBmNDQ2
NDJjOGQ5ZThkZDQxZDJiNDg5YjhmZjdhZWE2Yy4uMDUxMDIwMjJjZDM2OWVmNWY0NmVjYjIwOWU3
OGE4ODQyMDFiODIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9M
ZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBlbmNvZGVTZXNzaW9uSGlzdG9yeUVudHJ5RGF0YShj
b25zdCBGcmFtZVN0YXRlJiBmcmFtCiAgICAgICAgICAgICBudWxscHRyLCAvLyBjb3B5RGVzY3Jp
cHRpb24KICAgICAgICAgICAgIG51bGxwdHIsIC8vIGFsbG9jYXRlCiAgICAgICAgICAgICBudWxs
cHRyLCAvLyByZWFsbG9jYXRlCi0gICAgICAgICAgICBbXSh2b2lkICpwdHIsIHZvaWQgKmluZm8p
IHsKKyAgICAgICAgICAgIFtdKHZvaWQgKnB0ciwgdm9pZCAqKSB7CiAgICAgICAgICAgICAgICAg
V1RGOjpmYXN0RnJlZShwdHIpOwogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIG51bGxwdHIs
IC8vIHByZWZlcnJlZFNpemUKQEAgLTQ4OSw3ICs0ODksNyBAQCBSZWZQdHI8QVBJOjpEYXRhPiBl
bmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUp
CiAgICAgLy8gQ29weSBpbiB0aGUgYWN0dWFsIHNlc3Npb24gc3RhdGUgZGF0YQogICAgIENGRGF0
YUdldEJ5dGVzKGRhdGEuZ2V0KCksIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIGJ1ZmZlci5nZXQo
KSArIHNpemVvZih1aW50MzJfdCkpOwogCi0gICAgcmV0dXJuIEFQSTo6RGF0YTo6Y3JlYXRlV2l0
aG91dENvcHlpbmcoYnVmZmVyLmxlYWtQdHIoKSwgYnVmZmVyU2l6ZSwgW10gKHVuc2lnbmVkIGNo
YXIqIGJ1ZmZlciwgY29uc3Qgdm9pZCogY29udGV4dCkgeworICAgIHJldHVybiBBUEk6OkRhdGE6
OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGJ1ZmZlci5sZWFrUHRyKCksIGJ1ZmZlclNpemUsIFtdICh1
bnNpZ25lZCBjaGFyKiBidWZmZXIsIGNvbnN0IHZvaWQqKSB7CiAgICAgICAgIGZhc3RGcmVlKGJ1
ZmZlcik7CiAgICAgfSwgbnVsbHB0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA4OGFiZDRmNDk0ZDM0YTY0MjIyMmI3YzdjZjY5
ZTExMjM5MzY2ZTBlLi4zODdkOGY0NTc3MTMyZjI5MDAyODE2ZWJiNGRlYTkxMDQ4Mjk3Yjc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAg
LTE1Nyw3ICsxNTcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogICAgIHJldHVybiBbbV93a1ZpZXcg
X2NyZWF0ZURyYXdpbmdBcmVhUHJveHldOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKQog
ewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMTcyLDEyICsxNzIsMTIgQEAgYm9v
bCBQYWdlQ2xpZW50SW1wbDo6Y2FuU2Nyb2xsVmlldygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFBhZ2VDbGllbnRJbXBsOjpzY3JvbGxWaWV3KGNvbnN0IEludFJlY3QmIHNjcm9sbFJl
Y3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNj
cm9sbFZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmKQogewogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNv
bnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIGlzUHJvZ3JhbW1hdGljU2Nyb2xs
KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50Jiwg
Ym9vbCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTMxNCwxMSArMzE0LDEx
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYgb2xk
VG9vbFRpcCwgY29uc3QgU3RyaW5nJiBuZXdUCiAgICAgW21fd2tWaWV3IF90b29sVGlwQ2hhbmdl
ZEZyb206bnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhvbGRUb29sVGlwKSB0bzpuc1N0cmluZ0Zy
b21XZWJDb3JlU3RyaW5nKG5ld1Rvb2xUaXApXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVz
ZUN1c3RvbUNvbnRlbnRQcm92aWRlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1pdExv
YWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKIHsKIH0KIAotdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhUmVmZXJlbmNlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0RhdGFG
b3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJikKIHsKIH0KIApAQCAtNzc5LDYgKzc3OSwxMCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRQZXJmb3JtQWN0aW9uTWVudUhpdFRlc3QoY29uc3QgQWN0aW9uTWVudUhpdFRlc3RSZXN1
bHQmCiB7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKICAg
ICBbbV93a1ZpZXcgX2RpZFBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdDpyZXN1bHQgZm9ySW1tZWRp
YXRlQWN0aW9uOmZvckltbWVkaWF0ZUFjdGlvbiB1c2VyRGF0YTp1c2VyRGF0YV07CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworICAgIFVOVVNFRF9QQVJBTShmb3JJbW1lZGlhdGVB
Y3Rpb24pOworICAgIFVOVVNFRF9QQVJBTSh1c2VyRGF0YSk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGJmMjBjNzNlODcyN2UzMzM3NjkzNjEx
ZjFiMGJmMjYyNWM4YzliY2YuLjBjZjQwYTQxYzgyYmNhMDhiZGY1NzlmNTMwY2YyNjhiZDk1MDdl
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTk3LDE4ICs5Nywx
OCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6Om1pbmltdW1MYXlv
dXRTaXplRGlkQ2hhbmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAotdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNv
bnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHk6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QsIGNvbnN0
IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCiB7CiAgICAgbV93ZWJQYWdlUHJv
eHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKIH0K
IAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBk
YXRlSW5mbyYpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCwgY29uc3QgVXBkYXRlSW5mbyYpCiB7
CiAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkLgogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnVw
ZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKHVpbnQ2NF90LCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0
KQogewogICAgIG1fd2ViUGFnZVByb3h5LnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KGxheWVyVHJlZUNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQppbmRleCA1NTc0OTE3ZjBjODM5
MzBhYmRlYjg3ZDA4MTI3NGVmZGFkNmUwOTAwLi4zYjJmMGNlZTZjY2YzYzcwYzBiMjJmZTZhY2U3
NmQ4OTg3YjhkOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRp
YyBmbG9hdCBtYXhpbXVtUmVjdGFuZ2xlQ29tcG9uZW50RGVsdGEoRmxvYXRSZWN0IGEsIEZsb2F0
UmVjdCBiKQogICAgIHJldHVybiBzdGQ6Om1heChmYWJzKGEueCgpIC0gYi54KCkpLCBzdGQ6Om1h
eChmYWJzKGEueSgpIC0gYi55KCkpLCBzdGQ6Om1heChmYWJzKGEud2lkdGgoKSAtIGIud2lkdGgo
KSksIGZhYnMoYS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpKSkpOwogfQogCi12b2lkIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6ZGlkQ29sbGVjdEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9uR2Vz
dHVyZShGbG9hdFBvaW50IG9yaWdpbiwgRmxvYXRSZWN0IHJlbmRlclJlY3QsIEZsb2F0UmVjdCB2
aXNpYmxlQ29udGVudFJlY3QsIGJvb2wgaXNSZXBsYWNlZEVsZW1lbnQsIGRvdWJsZSB2aWV3cG9y
dE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlKQordm9pZCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmRpZENvbGxlY3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdl
c3R1cmUoRmxvYXRQb2ludCBvcmlnaW4sIEZsb2F0UmVjdCByZW5kZXJSZWN0LCBGbG9hdFJlY3Qg
dmlzaWJsZUNvbnRlbnRSZWN0LCBib29sIGlzUmVwbGFjZWRFbGVtZW50LCBkb3VibGUsIGRvdWJs
ZSkKIHsKICAgICBkb3VibGUgY3VycmVudFNjYWxlRmFjdG9yID0gbV93ZWJQYWdlUHJveHkucGFn
ZVNjYWxlRmFjdG9yKCk7CiAKQEAgLTYwMiw3ICs2MDIsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0
SXRlbQogICAgICAgICBbc25hcHNob3RMYXllclBhcmVudCBpbnNlcnRTdWJsYXllcjptX3N3aXBl
TGF5ZXIuZ2V0KCkgYWJvdmU6bGF5ZXJBZGphY2VudFRvU25hcHNob3RdOwogfQogCi12b2lkIFZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qIHRhcmdldEl0ZW0sIGRvdWJsZSBwcm9ncmVzcywgU3dpcGVEaXJlY3Rpb24gZGlyZWN0
aW9uKQordm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKiwgZG91YmxlIHByb2dyZXNzLCBTd2lwZURpcmVjdGlvbiBkaXJl
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fYWN0aXZlR2VzdHVyZVR5cGUgPT0gVmlld0dlc3R1cmVU
eXBlOjpTd2lwZSk7CiAKQEAgLTc1NSw3ICs3NTUsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdEFmdGVyUmVwYWludCgpCiAgICAgbV9zd2lwZVdhaXRp
bmdGb3JSZXBhaW50ID0gdHJ1ZTsKIAogICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5ID0g
Jm1fd2ViUGFnZVByb3h5OwotICAgIG1fd2ViUGFnZVByb3h5LmZvcmNlUmVwYWludChWb2lkQ2Fs
bGJhY2s6OmNyZWF0ZShbd2ViUGFnZVByb3h5XSAoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgIG1fd2ViUGFnZVByb3h5LmZvcmNlUmVwYWludChWb2lkQ2FsbGJhY2s6OmNyZWF0ZShb
d2ViUGFnZVByb3h5XSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICB3ZWJQYWdlUHJv
eHktPnJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKTsKICAgICB9KSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQppbmRl
eCAxYThhZTA3MTlkMjk2OWNiODk1YTc1N2IzM2Q3NmNjYTc3MjllNjhiLi4zYzNmZDBmYTFkODcz
ZTk5Zjc2NDQ0NjlkZWYyZmVkN2M2ZTFlMjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBW
aWV3U25hcHNob3RTdG9yZTo6d2lsbFJlbW92ZUltYWdlRnJvbVNuYXBzaG90KFZpZXdTbmFwc2hv
dCYgc25hcHNob3QpCiAgICAgbV9zbmFwc2hvdENhY2hlU2l6ZSAtPSBzbmFwc2hvdC5pbWFnZVNp
emVJbkJ5dGVzKCk7CiB9CiAKLXZvaWQgVmlld1NuYXBzaG90U3RvcmU6OnBydW5lU25hcHNob3Rz
KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQordm9pZCBWaWV3U25hcHNob3RTdG9yZTo6cHJ1
bmVTbmFwc2hvdHMoV2ViUGFnZVByb3h5JikKIHsKICAgICBpZiAobV9zbmFwc2hvdENhY2hlU2l6
ZSA8PSBtYXhpbXVtU25hcHNob3RDYWNoZVNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRj
aGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFjY2Vz
c1dhdGNoZXIubW0KaW5kZXggNjFkNjdhZDM4YmJiMGE0Njg5N2I0Yjk0MzNhNDU2OTBlZWYwYWRj
Yy4uOGRmNDljYTU3YWM3OWJiNTcyY2FlNzM1OWI1YzUzZDI5ZWRlMDczNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFjY2Vz
c1dhdGNoZXIubW0KQEAgLTQ1LDYgKzQ1LDcgQEAgLSAodm9pZClub3RpZnlBbGxQcm9jZXNzUG9v
bHMKIAogLSAodm9pZClyZXRyaWV2ZUtleWJvYXJkVUlNb2RlRnJvbVByZWZlcmVuY2VzOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRp
b24pOwogICAgIEJPT0wgb2xkVmFsdWUgPSBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogCiAg
ICAgQ0ZQcmVmZXJlbmNlc0FwcFN5bmNocm9uaXplKGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxp
Y2F0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCBhYTljMTkxZjg3ODhiYmI5NzM2
ZTczZWYzMGU5YTZjNTUzZjM2ZjMyLi4xNTYxNjk0MmNlYjlhZjJhN2NiYTZkOTk3MjEzYjM5ZGUx
NzVkZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC0xNDcsNiArMTQ3LDcgQEAgLSAo
V2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcqKXdlYlZpZXdQbGFjZWhvbGRlcgogCiAt
ICh2b2lkKWNhbmNlbE9wZXJhdGlvbjooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFNKHNl
bmRlcik7CiAgICAgLy8gSWYgdGhlIHBhZ2UgZG9lc24ndCByZXNwb25kIGluIERlZmF1bHRXYXRj
aGRvZ1RpbWVySW50ZXJ2YWwgc2Vjb25kcywgaXQgY291bGQgYmUgYmVjYXVzZQogICAgIC8vIHRo
ZSBXZWJQcm9jZXNzIGhhcyBodW5nLCBzbyBleGl0IGFueXdheS4KICAgICBpZiAoIV93YXRjaGRv
Z1RpbWVyKSB7CkBAIC0xNjEsNiArMTYyLDcgQEAgLSAodm9pZCljYW5jZWxPcGVyYXRpb246KGlk
KXNlbmRlcgogCiAtICh2b2lkKWFwcGxpY2F0aW9uRGlkQ2hhbmdlU2NyZWVuUGFyYW1ldGVyczoo
TlNOb3RpZmljYXRpb24qKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmlj
YXRpb24pOwogICAgIC8vIFRoZSB1c2VyIG1heSBoYXZlIGNoYW5nZWQgdGhlIG1haW4gc2NyZWVu
IGJ5IG1vdmluZyB0aGUgbWVudSBiYXIsIG9yIHRoZXkgbWF5IGhhdmUgY2hhbmdlZAogICAgIC8v
IHRoZSBEb2NrJ3Mgc2l6ZSBvciBsb2NhdGlvbiwgb3IgdGhleSBtYXkgaGF2ZSBjaGFuZ2VkIHRo
ZSBmdWxsU2NyZWVuIHNjcmVlbidzIGRpbWVuc2lvbnMuIAogICAgIC8vIFVwZGF0ZSBvdXIgcHJl
c2VudGF0aW9uIHBhcmFtZXRlcnMsIGFuZCBlbnN1cmUgdGhhdCB0aGUgZnVsbCBzY3JlZW4gd2lu
ZG93IG9jY3VwaWVzIHRoZSAKQEAgLTM1Nyw2ICszNTksOCBAQCAtICh2b2lkKWV4aXRGdWxsU2Ny
ZWVuCiAKIC0gKHZvaWQpYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JilmaW5hbEZyYW1lCiB7CisgICAgVU5VU0VEX1BBUkFNKGluaXRpYWxGcmFtZSk7
CisgICAgVU5VU0VEX1BBUkFNKGZpbmFsRnJhbWUpOwogICAgIGlmIChfZnVsbFNjcmVlblN0YXRl
ICE9IFdhaXRpbmdUb0V4aXRGdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47CiAgICAgX2Z1bGxT
Y3JlZW5TdGF0ZSA9IEV4aXRpbmdGdWxsU2NyZWVuOwpAQCAtMzc3LDYgKzM4MSw3IEBAIC0gKHZv
aWQpYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKWluaXRpYWxGcmFtCiAKIC0gKHZvaWQpZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1h
dGlvbjooYm9vbCljb21wbGV0ZWQKIHsKKyAgICBVTlVTRURfUEFSQU0oY29tcGxldGVkKTsKICAg
ICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSAhPSBFeGl0aW5nRnVsbFNjcmVlbikKICAgICAgICAgcmV0
dXJuOwogICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBOb3RJbkZ1bGxTY3JlZW47CkBAIC00NjgsNDEg
KzQ3Myw0OSBAQCAtICh2b2lkKWNsb3NlCiAKIC0gKE5TQXJyYXkgKiljdXN0b21XaW5kb3dzVG9F
bnRlckZ1bGxTY3JlZW5Gb3JXaW5kb3c6KE5TV2luZG93ICopd2luZG93CiB7CisgICAgVU5VU0VE
X1BBUkFNKHdpbmRvdyk7CiAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6W3Nl
bGYgd2luZG93XSwgX2JhY2tncm91bmRXaW5kb3cuZ2V0KCksIG5pbF07CiB9CiAKIC0gKE5TQXJy
YXkgKiljdXN0b21XaW5kb3dzVG9FeGl0RnVsbFNjcmVlbkZvcldpbmRvdzooTlNXaW5kb3cgKil3
aW5kb3cKIHsKKyAgICBVTlVTRURfUEFSQU0od2luZG93KTsKICAgICByZXR1cm4gW05TQXJyYXkg
YXJyYXlXaXRoT2JqZWN0czpbc2VsZiB3aW5kb3ddLCBfYmFja2dyb3VuZFdpbmRvdy5nZXQoKSwg
bmlsXTsKIH0KIAogLSAodm9pZCl3aW5kb3c6KE5TV2luZG93ICopd2luZG93IHN0YXJ0Q3VzdG9t
QW5pbWF0aW9uVG9FbnRlckZ1bGxTY3JlZW5XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1
cmF0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKHdpbmRvdyk7CiAgICAgW3NlbGYgX3N0YXJ0RW50
ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOmR1cmF0aW9uXTsKIH0KIAogLSAodm9p
ZCl3aW5kb3c6KE5TV2luZG93ICopd2luZG93IHN0YXJ0Q3VzdG9tQW5pbWF0aW9uVG9FeGl0RnVs
bFNjcmVlbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKKyAgICBVTlVT
RURfUEFSQU0od2luZG93KTsKICAgICBbc2VsZiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlv
bldpdGhEdXJhdGlvbjpkdXJhdGlvbl07CiB9CiAKIC0gKHZvaWQpd2luZG93RGlkRmFpbFRvRW50
ZXJGdWxsU2NyZWVuOihOU1dpbmRvdyAqKXdpbmRvdwogeworICAgIFVOVVNFRF9QQVJBTSh3aW5k
b3cpOwogICAgIFtzZWxmIGZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uOk5PXTsKIH0K
IAogLSAodm9pZCl3aW5kb3dEaWRFbnRlckZ1bGxTY3JlZW46KE5TTm90aWZpY2F0aW9uKilub3Rp
ZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBbc2VsZiBm
aW5pc2hlZEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbjpZRVNdOwogfQogCiAtICh2b2lkKXdpbmRv
d0RpZEZhaWxUb0V4aXRGdWxsU2NyZWVuOihOU1dpbmRvdyAqKXdpbmRvdwogeworICAgIFVOVVNF
RF9QQVJBTSh3aW5kb3cpOwogICAgIFtzZWxmIGZpbmlzaGVkRXhpdEZ1bGxTY3JlZW5BbmltYXRp
b246Tk9dOwogfQogCiAtICh2b2lkKXdpbmRvd0RpZEV4aXRGdWxsU2NyZWVuOihOU05vdGlmaWNh
dGlvbiopbm90aWZpY2F0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAg
ICAgW3NlbGYgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpZRVNdOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCBhZDk3
N2FhYzcyZGFkMGY5YWNlNjYwYTRmNGJhMDRiNjkyMjc1ODY3Li4xYmI1MjA3NDk0YTYzMzI4YmQ5
Mzk5NGNhZTJiZDZiMTEyMmY2ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTYzMiw2ICs2MzIsNyBAQCAtIChOU1JlY3QpcmVjdEZv
clBhZ2U6KE5TSW50ZWdlcilwYWdlCiAvLyBUZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgPHJkYXI6
Ly9wcm9ibGVtLzg5NDQ1MzU+LiBGb3JjZSBjb3JyZWN0IHByaW50b3V0IHBvc2l0aW9uaW5nLgog
LSAoTlNQb2ludClsb2NhdGlvbk9mUHJpbnRSZWN0OihOU1JlY3QpYVJlY3QKIHsKKyAgICBVTlVT
RURfUEFSQU0oYVJlY3QpOwogICAgIEFTU0VSVChfcHJpbnRPcGVyYXRpb24gPT0gW05TUHJpbnRP
cGVyYXRpb24gY3VycmVudE9wZXJhdGlvbl0pOwogICAgIHJldHVybiBOU01ha2VQb2ludChbW19w
cmludE9wZXJhdGlvbiBwcmludEluZm9dIGxlZnRNYXJnaW5dLCBbW19wcmludE9wZXJhdGlvbiBw
cmludEluZm9dIGJvdHRvbU1hcmdpbl0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggNzNjNjRhYzVmOGE0NGJkMGViYTE2
MzgyM2NlNmZmZWUzYjVjZWVjNC4uZDA5NzRkN2VjOWFkMzEzY2NhZTY3NDM5MGY3OTk1ZjE2NjY4
MTExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBp
Y2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlj
a2VyTWFjLm1tCkBAIC04Niw3ICs4Niw3IEBAIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29sb3JQ
aWNrZXJNYWMoKQogICAgICAgICBlbmRQaWNrZXIoKTsKIH0KIAotV2ViQ29sb3JQaWNrZXJNYWM6
OldlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVj
dCwgV0tWaWV3KiB2aWV3KQorV2ViQ29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlja2VyTWFjKFdl
YkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xvclBp
Y2tlcihjbGllbnQpCiB7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKQEAg
LTE4MCw2ICsxODAsNyBAQCAtICh2b2lkKWludmFsaWRhdGUKIAogLSAodm9pZCl3aW5kb3dXaWxs
Q2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFN
KG5vdGlmaWNhdGlvbik7CiAgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVTOwogICAgIF9waWNr
ZXItPmVuZFBpY2tlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IGRjNjQ5NWEwNGZiOGY3YmZlMjQy
ZjZlMjAzNDYxZDgyZWQzYWQ0MTUuLjQ4ZDNhZGZkNDE4M2IyOGJhOWZkZjA5Y2NiM2Q0NWQ4NDNm
NTc0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KQEAgLTQyOCw2ICs0MjgsOCBAQCB2b2lkIFdlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRh
PiYgaXRlbQogICAgICAgICBzZXR1cFNlcnZpY2VzTWVudShjb250ZXh0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogI2VuZGlmCiAK
ICAgICBpZiAobV9wb3B1cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDg5YjBhOWY1MzM0MjllMDYxZTY0ZGRlMWY5
NTljYjZkZmNjNzI0NjYuLjczZWE0OTU4OWM2NjAxYWI4NzljZmZlZTgwYTgyYWFjYjM5ZTFjMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJv
eHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbQpAQCAtMTExLDExICsxMTEsMTMgQEAgLSAoaWQpaW5pdFdpdGhXZWJJbnNwZWN0
b3JQcm94eTooV2ViSW5zcGVjdG9yUHJveHkqKWluc3BlY3RvclByb3h5CiAKIC0gKElCQWN0aW9u
KWF0dGFjaFJpZ2h0OihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAg
ICBzdGF0aWNfY2FzdDxXZWJJbnNwZWN0b3JQcm94eSo+KF9pbnNwZWN0b3JQcm94eSktPmF0dGFj
aChBdHRhY2htZW50U2lkZVJpZ2h0KTsKIH0KIAogLSAoSUJBY3Rpb24pYXR0YWNoQm90dG9tOihp
ZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBzdGF0aWNfY2FzdDxX
ZWJJbnNwZWN0b3JQcm94eSo+KF9pbnNwZWN0b3JQcm94eSktPmF0dGFjaChBdHRhY2htZW50U2lk
ZUJvdHRvbSk7CiB9CiAKQEAgLTEzMSwxNiArMTMzLDE5IEBAIC0gKHZvaWQpZGlkUmVsYXVuY2hQ
cm9jZXNzCiAKIC0gKHZvaWQpd2luZG93RGlkTW92ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBzdGF0aWNfY2Fz
dDxXZWJJbnNwZWN0b3JQcm94eSo+KF9pbnNwZWN0b3JQcm94eSktPndpbmRvd0ZyYW1lRGlkQ2hh
bmdlKCk7CiB9CiAKIC0gKHZvaWQpd2luZG93RGlkUmVzaXplOihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIHN0YXRp
Y19jYXN0PFdlYkluc3BlY3RvclByb3h5Kj4oX2luc3BlY3RvclByb3h5KS0+d2luZG93RnJhbWVE
aWRDaGFuZ2UoKTsKIH0KIAogLSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9u
ICopbm90aWZpY2F0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAg
c3RhdGljX2Nhc3Q8V2ViSW5zcGVjdG9yUHJveHkqPihfaW5zcGVjdG9yUHJveHkpLT5jbG9zZSgp
OwogfQogCkBAIC0xNTEsNiArMTU2LDcgQEAgLSAodm9pZClpZ25vcmVOZXh0SW5zcGVjdGVkVmll
d0ZyYW1lRGlkQ2hhbmdlCiAKIC0gKHZvaWQpaW5zcGVjdGVkVmlld0ZyYW1lRGlkQ2hhbmdlOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmlj
YXRpb24pOwogICAgIGlmIChfaWdub3JlTmV4dEluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZSkg
ewogICAgICAgICBfaWdub3JlTmV4dEluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZSA9IE5POwog
ICAgICAgICByZXR1cm47CkBAIC0yNTgsNyArMjY0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcg
bG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3Vy
aXQKICAgICByZXR1cm4gc3RkOjptYXg8dW5zaWduZWQgbG9uZyBsb25nPihleHBlY3RlZFVzYWdl
LCBjdXJyZW50RGF0YWJhc2VVc2FnZSAqIDEuMjUpOwogfQogCi1zdGF0aWMgdm9pZCBydW5PcGVu
UGFuZWwoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLT3BlblBhbmVsUGFyYW1l
dGVyc1JlZiBwYXJhbWV0ZXJzLCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZiwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmIHBhcmFtZXRlcnMsIFdL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgV2ViSW5zcGVjdG9yUHJveHkqIHdlYkluc3BlY3RvclByb3h5ID0gc3RhdGlj
X2Nhc3Q8V2ViSW5zcGVjdG9yUHJveHkqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CiAgICAgQVNTRVJUKHdlYkluc3BlY3RvclByb3h5KTsKQEAgLTI4NCw3ICsyOTAsNyBAQCBzdGF0
aWMgdm9pZCBydW5PcGVuUGFuZWwoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
T3BlblBhbmVsUGFyYW1ldGVycwogICAgICAgICAgICAgV0tSZWxlYXNlKGZpbGVVUkxzKTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyQ2FuY2Vs
KGxpc3RlbmVyKTsKLSAgICAgICAgCisKICAgICAgICAgV0tSZWxlYXNlKGxpc3RlbmVyKTsKICAg
ICB9XTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCmluZGV4
IGY5MjU1NzMyMTI5MTdkYmQ2ODRiYjlmODliYTMwNDQxNDRjMzEzMWIuLjY5ODRlYTM3YjUxMDNm
MTQwYTlmZjMxNTIxY2I0OWQ1N2U1MTZlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZh
Y3RvcnlCYWNrZW5kLmNwcApAQCAtODgsNyArODgsNyBAQCBXZWJJREJGYWN0b3J5QmFja2VuZDo6
fldlYklEQkZhY3RvcnlCYWNrZW5kKCkKIHsKIH0KIAotdm9pZCBXZWJJREJGYWN0b3J5QmFja2Vu
ZDo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBj
b25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG1haW5GcmFtZU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3ZvaWQg
V2ViSURCRmFjdG9yeUJhY2tlbmQ6OmdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcywgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKQogewogICAgIExPRyhJREIsICJXZWJJREJGYWN0b3J5QmFja2VuZDo6Z2V0RGF0YWJhc2VO
YW1lcyIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAK
aW5kZXggNDExNjNkOTFkZjViMGE2MGYyNTgyODI4MGM2NDNmMDRjMjEwZTYyNi4uMjA0MDYwYmM0
YzUxZmJkYWVhZDRmZmZiMzNiYWNiNGQ3Njk3MDcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgV2ViSURC
U2VydmVyQ29ubmVjdGlvbjo6cm9sbGJhY2tUcmFuc2FjdGlvblN5bmMoaW50NjRfdCB0cmFuc2Fj
dGlvbklEKQogICAgIHJldHVybiBzdWNjZXNzOwogfQogCi12b2lkIFdlYklEQlNlcnZlckNvbm5l
Y3Rpb246OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGludDY0X3QgZGF0YWJh
c2VJRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRh
JiwgSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SURzLCBj
b25zdCBWZWN0b3I8VmVjdG9yPFJlZlB0cjxJREJLZXk+Pj4mIGluZGV4S2V5cywgc3RkOjpmdW5j
dGlvbjx2b2lkIChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKQordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpzZXRJbmRleEtleXMoaW50NjRfdCwg
aW50NjRfdCwgaW50NjRfdCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIElEQktleSYs
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8UmVmUHRyPElEQktl
eT4+PiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRl
eCA0ZTkyMzkwNTE2ZDlmOGZhYWZkYTA2Y2IwZDgzYzI2OWIzZWVhZDk5Li5kM2ViMTBkZDA0ZTg5
MTUxZTRmMTJiOGYyZmMzY2Y3MGJmYTQxZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDEyICs2MSwxMiBAQCB2b2lkIFdlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQor
dm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uQ2xvc2VkKHRoaXMpOwogfQogCi12b2lkIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VOYW1lKQordm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luLm1tCmluZGV4IDg0Y2I1MTc5MmNhZWFhMzY5YzFjYWU0YzdmZDExODQ2
NjY4NGFlMjMuLjAwMjRkNmExOTZiY2FmMjRiYjA3OTUzNGQ3NGYyMjFjNzNiNWIwOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S1dlYlByb2Nlc3NQbHVnSW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5tbQpAQCAtNTIsNyArNTIsNyBA
QCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLXN0YXRpYyB2b2lk
IGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5k
bGVSZWYsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewog
ICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKnBsdWdJbkNvbnRyb2xsZXIgPSAoV0tX
ZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgaWQgPFdLV2ViUHJv
Y2Vzc1BsdWdJbj4gcHJpbmNpcGFsQ2xhc3NJbnN0YW5jZSA9IHBsdWdJbkNvbnRyb2xsZXItPl9w
cmluY2lwYWxDbGFzc0luc3RhbmNlLmdldCgpOwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IGNvbnN0IHZvaWQqCiAgICAgICAgIFtwcmluY2lwYWxDbGFzc0luc3RhbmNlIHdlYlByb2Nlc3NQ
bHVnSW46cGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6
d3JhcHBlcigqdG9JbXBsKHBhZ2UpKV07CiB9CiAKLXN0YXRpYyB2b2lkIHdpbGxEZXN0cm95UGFn
ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQorc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUmVmLCBXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXS1dlYlBy
b2Nlc3NQbHVnSW5Db250cm9sbGVyICpwbHVnSW5Db250cm9sbGVyID0gKFdLV2ViUHJvY2Vzc1Bs
dWdJbkNvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGlkIDxXS1dlYlByb2Nlc3NQbHVnSW4+
IHByaW5jaXBhbENsYXNzSW5zdGFuY2UgPSBwbHVnSW5Db250cm9sbGVyLT5fcHJpbmNpcGFsQ2xh
c3NJbnN0YW5jZS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4
IDJmYjhmOTUzOWVjYzgzMTE0ZDI2YTY2YTZhYzQzNzc3NjZjYmY4ODcuLjU2NzBmYTUzOTY3NGZk
N2UxODgxYTVhZTNkMjdlN2QyMWVkYzlkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5tbQpAQCAtNzgsNyArNzgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIHsKICAgICBSZXRhaW5QdHI8X1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnk+IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKIH0KIAotc3RhdGljIHZvaWQgZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YVJlZiwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQogewogICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqcGx1Z2luQ29udGV4dENvbnRyb2xsZXIgPSAoV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWREZWxl
Z2F0ZSA9IHBsdWdpbkNvbnRleHRDb250cm9sbGVyLT5fbG9hZERlbGVnYXRlLmdldCgpOwpAQCAt
ODcsNyArODcsNyBAQCBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUgogICAgICAgICBbbG9hZERlbGVn
YXRlIHdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6cGx1Z2luQ29udGV4
dENvbnRyb2xsZXIgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTp3cmFwcGVyKCp0b0lt
cGwoZnJhbWUpKV07CiB9CiAKLXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgKnVzZXJEYXRhUmVmLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5
cGVSZWYgKiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAg
ICAgYXV0byBsb2FkRGVsZWdhdGUgPSBwbHVnaW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxl
Z2F0ZS5nZXQoKTsKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHAKICAg
ICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3Rh
dGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJl
ZiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKIHsKICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIg
KnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBwbHVn
aW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTEwNSw3ICsxMDUs
NyBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgd2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwbHVnaW5Db250ZXh0Q29udHJvbGxl
ciBkaWRGaW5pc2hMb2FkRm9yRnJhbWU6d3JhcHBlcigqdG9JbXBsKGZyYW1lKSldOwogfQogCi1z
dGF0aWMgdm9pZCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNj
cmlwdFdvcmxkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZ2xvYmFsT2Jq
ZWN0SXNBdmFpbGFibGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9hZERlbGVnYXRlID0g
cGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC0xMTQsNyAr
MTE0LDcgQEAgc3RhdGljIHZvaWQgZ2xvYmFsT2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVIKICAgICAgICAgW2xvYWREZWxlZ2F0ZSB3
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250
cm9sbGVyIGdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWU6d3JhcHBlcigqdG9JbXBsKGZy
YW1lKSkgaW5TY3JpcHRXb3JsZDp3cmFwcGVyKCp0b0ltcGwoc2NyaXB0V29ybGQpKV07CiB9CiAK
LXN0YXRpYyB2b2lkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNo
eShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9h
ZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0KCk7
CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFy
Y2h5KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGYKICAgICAgICAgW2xv
YWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdp
bkNvbnRleHRDb250cm9sbGVyIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeTp3cmFwcGVyKCp0
b0ltcGwoZnJhbWUpKV07CiB9CiAKLXN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENvbW1pdExv
YWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAg
IGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdh
dGUuZ2V0KCk7CkBAIC0xMzIsNyArMTMyLDcgQEAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLAogICAg
ICAgICBbbG9hZERlbGVnYXRlIHdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXI6cGx1Z2luQ29udGV4dENvbnRyb2xsZXIgZGlkQ29tbWl0TG9hZEZvckZyYW1lOndyYXBwZXIo
KnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAg
V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0
Q29udHJvbGxlciA9IChXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIg
KiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRy
b2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIHZv
aWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYKICAgICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3RhdGlj
IHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiB3a0Vycm9yLCBXS1R5cGVSZWYqIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IFdLRXJyb3JSZWYgd2tFcnJvciwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
IHsKICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKnBsdWdp
bkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBwbHVnaW5Db250
ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBz
dGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZUZyYW1lUmVmCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwbHVnaW5Db250ZXh0Q29udHJvbGxlciBkaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpIGVycm9yOndy
YXBwZXIoKnRvSW1wbCh3a0Vycm9yKSldOwogfQogCi1zdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVmKiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVmKiwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2Fk
RGVsZWdhdGUgPSBwbHVnaW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsK
QEAgLTE2NCw3ICsxNjQsNyBAQCBzdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbQogICAgIH0KIH0KIAot
c3RhdGljIHZvaWQgZGlkTGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBk
aWRMYXlvdXRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8g
bG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0
KCk7CkBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIHZvaWQgZGlkTGF5b3V0Rm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnMKICAgICAgICAg
W2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBs
dWdpbkNvbnRleHRDb250cm9sbGVyIGRpZExheW91dEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChm
cmFtZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkTGF5b3V0KFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0xheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lcywgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZExheW91dChXS0J1bmRsZVBhZ2VS
ZWYsIFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQogewogICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlciAqcGx1Z2luQ29udGV4dENvbnRyb2xsZXIgPSAoV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWREZWxlZ2F0
ZSA9IHBsdWdpbkNvbnRleHRDb250cm9sbGVyLT5fbG9hZERlbGVnYXRlLmdldCgpOwpAQCAtMTgy
LDcgKzE4Miw3IEBAIHN0YXRpYyB2b2lkIGRpZExheW91dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9uZXMsIFdLVHlwCiAgICAgICAgIFtsb2FkRGVsZWdh
dGUgd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwbHVnaW5Db250ZXh0
Q29udHJvbGxlciByZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpyZW5kZXJpbmdQcm9ncmVzc0V2
ZW50cyh0b0xheW91dE1pbGVzdG9uZXMobWlsZXN0b25lcykpXTsKIH0KIAotc3RhdGljIHZvaWQg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAg
IGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdh
dGUuZ2V0KCk7CkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIHZvaWQgZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGwKICAg
ICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlk
SGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRI
YW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwog
ICAgIGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVs
ZWdhdGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4uaAppbmRleCA2MDRlNjExMjk3ZGQ4MmYxNDczNWYwZjFjMTYyNTM3MWU1ZDQx
YTg1Li41OTI4NzFlNTQyZDExZjEyNGZlZjk3ODZjMWVhYmEyNjliZjhlNDM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTEw
OSw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIC8vIFBsdWdpbiBmdW5jdGlvbnMuCiAgICAgdmly
dHVhbCBib29sIGluaXRpYWxpemUoY29uc3QgUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgdm9p
ZCBkZXN0cm95KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdEluV2luZG93
Q29vcmRpbmF0ZXMpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRyb2xUaW50cyhXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTbmFwc2hvdHRpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFNoYXJlYWJsZUJpdG1hcD4gc25hcHNob3QoKSBvdmVycmlkZTsKQEAgLTE0MiwxNiArMTQyLDE2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpIG92ZXJyaWRlIHsg
fQogICAgIHZpcnR1YWwgTlBPYmplY3QqIHBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpIG92ZXJy
aWRlIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJv
b2wpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hh
bmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0
ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMp
IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJy
aWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKSBv
dmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkgb3ZlcnJpZGUg
eyB9CisgICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVy
SG9zdGluZ01vZGUpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgV2ViQ29yZTo6U2Nyb2xsYmFy
KiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLmdldCgpOyB9CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRpY2Fs
U2Nyb2xsYmFyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzdG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5nZWQoYm9vbCkgb3Zl
cnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChi
b29sKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYg
Zm9ybVZhbHVlKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBn
ZXRGb3JtVmFsdWUoU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6
U2Nyb2xsR3JhbnVsYXJpdHkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+IGxpdmVSZXNvdXJjZURhdGEoKSBjb25zdCBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQppbmRleCBlNTA4ZGQ3OWY5NGY4NGU1OGUzNTEyZmYxNGNjNmQwM2UxZjgxOTc2Li5mZGM3YWZi
ZWFiZjkxNGJiNThhZmNkOTg1MDljMjdlYzkzZTZkY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMjY4LDYgKzI2OCw3
IEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50CiAKIC0gKGlkKWFjY2Vzc2li
aWxpdHlIaXRUZXN0OihOU1BvaW50KXBvaW50CiB7CisgICAgVU5VU0VEX1BBUkFNKHBvaW50KTsK
ICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMjk4LDYgKzI5OSw3IEBAIC0gKGlkKWluaXRXaXRo
UERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbgogCiAtIChpZDxDQUFjdGlvbj4p
YWN0aW9uRm9yS2V5OihOU1N0cmluZyAqKWtleQogeworICAgIFVOVVNFRF9QQVJBTShrZXkpOwog
ICAgIHJldHVybiBuaWw7CiB9CiAKQEAgLTM2NywyNiArMzY5LDMxIEBAIC0gKHZvaWQpc2F2ZVRv
UERGCiAKIC0gKHZvaWQpcGRmTGF5ZXJDb250cm9sbGVyOihQREZMYXllckNvbnRyb2xsZXIgKilw
ZGZMYXllckNvbnRyb2xsZXIgY2xpY2tlZExpbmtXaXRoVVJMOihOU1VSTCAqKXVybAogeworICAg
IFVOVVNFRF9QQVJBTShwZGZMYXllckNvbnRyb2xsZXIpOwogICAgIF9wZGZQbHVnaW4tPmNsaWNr
ZWRMaW5rKHVybCk7CiB9CiAKIC0gKHZvaWQpcGRmTGF5ZXJDb250cm9sbGVyOihQREZMYXllckNv
bnRyb2xsZXIgKilwZGZMYXllckNvbnRyb2xsZXIgZGlkQ2hhbmdlQWN0aXZlQW5ub3RhdGlvbjoo
UERGQW5ub3RhdGlvbiAqKWFubm90YXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0ocGRmTGF5ZXJD
b250cm9sbGVyKTsKICAgICBfcGRmUGx1Z2luLT5zZXRBY3RpdmVBbm5vdGF0aW9uKGFubm90YXRp
b24pOwogfQogCiAtICh2b2lkKXBkZkxheWVyQ29udHJvbGxlcjooUERGTGF5ZXJDb250cm9sbGVy
ICopcGRmTGF5ZXJDb250cm9sbGVyIGRpZENoYW5nZUNvbnRlbnRTY2FsZUZhY3RvcjooQ0dGbG9h
dClzY2FsZUZhY3RvcgogeworICAgIFVOVVNFRF9QQVJBTShwZGZMYXllckNvbnRyb2xsZXIpOwog
ICAgIF9wZGZQbHVnaW4tPm5vdGlmeUNvbnRlbnRTY2FsZUZhY3RvckNoYW5nZWQoc2NhbGVGYWN0
b3IpOwogfQogCiAtICh2b2lkKXBkZkxheWVyQ29udHJvbGxlcjooUERGTGF5ZXJDb250cm9sbGVy
ICopcGRmTGF5ZXJDb250cm9sbGVyIGRpZENoYW5nZURpc3BsYXlNb2RlOihpbnQpbW9kZQogewor
ICAgIFVOVVNFRF9QQVJBTShwZGZMYXllckNvbnRyb2xsZXIpOwogICAgIF9wZGZQbHVnaW4tPm5v
dGlmeURpc3BsYXlNb2RlQ2hhbmdlZChtb2RlKTsKIH0KIAogLSAodm9pZClwZGZMYXllckNvbnRy
b2xsZXI6KFBERkxheWVyQ29udHJvbGxlciAqKXBkZkxheWVyQ29udHJvbGxlciBkaWRDaGFuZ2VT
ZWxlY3Rpb246KFBERlNlbGVjdGlvbiAqKXNlbGVjdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShw
ZGZMYXllckNvbnRyb2xsZXIpOwogICAgIF9wZGZQbHVnaW4tPm5vdGlmeVNlbGVjdGlvbkNoYW5n
ZWQoc2VsZWN0aW9uKTsKIH0KIApAQCAtODE3LDcgKzgyNCw3IEBAIHZvaWQgUERGUGx1Z2luOjph
ZGRBcmNoaXZlUmVzb3VyY2UoKQogICAgIHBsdWdpblZpZXcoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQo
KS0+bG9hZGVyKCktPmFkZEFyY2hpdmVSZXNvdXJjZShyZXNvdXJjZS5yZWxlYXNlKCkpOwogfQog
Ci1zdGF0aWMgdm9pZCBqc1BERkRvY0luaXRpYWxpemUoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmpl
Y3RSZWYgb2JqZWN0KQorc3RhdGljIHZvaWQganNQREZEb2NJbml0aWFsaXplKEpTQ29udGV4dFJl
ZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewogICAgIFBERlBsdWdpbiogcGRmVmlldyA9IHN0YXRp
Y19jYXN0PFBERlBsdWdpbio+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKICAgICBwZGZW
aWV3LT5yZWYoKTsKQEAgLTgyOSw3ICs4MzYsNyBAQCBzdGF0aWMgdm9pZCBqc1BERkRvY0ZpbmFs
aXplKEpTT2JqZWN0UmVmIG9iamVjdCkKICAgICBwZGZWaWV3LT5kZXJlZigpOwogfQogCi1KU1Zh
bHVlUmVmIFBERlBsdWdpbjo6anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K0pTVmFsdWVSZWYgUERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QsIGNvbnN0IEpTVmFsdWVS
ZWZbXSwgSlNWYWx1ZVJlZiopCiB7CiAgICAgUERGUGx1Z2luKiBwZGZWaWV3ID0gc3RhdGljX2Nh
c3Q8UERGUGx1Z2luKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKIApAQCAtOTUy
LDE0ICs5NTksMTQgQEAgdm9pZCBQREZQbHVnaW46OnN0cmVhbURpZEZpbmlzaExvYWRpbmcodWlu
dDY0X3Qgc3RyZWFtSUQpCiAgICAgcGRmRG9jdW1lbnREaWRMb2FkKCk7CiB9CiAKLXZvaWQgUERG
UGx1Z2luOjpzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHdhc0NhbmNlbGxl
ZCkKK3ZvaWQgUERGUGx1Z2luOjpzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBib29s
KQogewogICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtSUQsIHN0cmVhbUlEID09IHBkZkRvY3VtZW50
UmVxdWVzdElEKTsKIAogICAgIG1fZGF0YS5jbGVhcigpOwogfQogCi12b2lkIFBERlBsdWdpbjo6
bWFudWFsU3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFVSTCYgcmVzcG9uc2VVUkwsIHVp
bnQzMl90IHN0cmVhbUxlbmd0aCwgIHVpbnQzMl90IGxhc3RNb2RpZmllZFRpbWUsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgaGVhZGVycywgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSkKK3ZvaWQgUERGUGx1Z2luOjptYW51YWxTdHJlYW1EaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgVVJMJiwgdWludDMyX3QsICB1aW50MzJfdCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKIHsK
ICAgICBtX3N1Z2dlc3RlZEZpbGVuYW1lID0gc3VnZ2VzdGVkRmlsZW5hbWU7CiAKQEAgLTEwOTcs
NyArMTEwNCw3IEBAIHZvaWQgUERGUGx1Z2luOjpkZXN0cm95KCkKIAogdm9pZCBQREZQbHVnaW46
OnVwZGF0ZUNvbnRyb2xUaW50cyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCkKIHsK
LSAgICBBU1NFUlQoZ3JhcGhpY3NDb250ZXh0LT51cGRhdGluZ0NvbnRyb2xUaW50cygpKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKGdyYXBoaWNzQ29udGV4dCwgZ3JhcGhpY3NDb250ZXh0LT51cGRhdGlu
Z0NvbnRyb2xUaW50cygpKTsKIAogICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIpCiAgICAg
ICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwpAQCAtMTQ5Niw3ICsxNTAz
LDcgQEAgYm9vbCBQREZQbHVnaW46OmhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgV2ViS2V5Ym9h
cmRFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBQREZQbHVn
aW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0
IFN0cmluZyYgYXJndW1lbnQpCitib29sIFBERlBsdWdpbjo6aGFuZGxlRWRpdGluZ0NvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJikKIHsKICAgICBpZiAoY29t
bWFuZE5hbWUgPT0gImNvcHkiKQogICAgICAgICBbbV9wZGZMYXllckNvbnRyb2xsZXIgY29weVNl
bGVjdGlvbl07CkBAIC0xNTM1LDcgKzE1NDIsNyBAQCB2b2lkIFBERlBsdWdpbjo6c2V0U2Nyb2xs
T2Zmc2V0KGNvbnN0IEludFBvaW50JiBvZmZzZXQpCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0
XTsKIH0KIAotdm9pZCBQREZQbHVnaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJh
ciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQREZQbHVnaW46OmludmFs
aWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JikK
IHsKICAgICBpZiAoc2Nyb2xsYmFyID09IGhvcml6b250YWxTY3JvbGxiYXIoKSkKICAgICAgICAg
W21faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyIHNldE5lZWRzRGlzcGxheV07CkBAIC0xNTQzLDcg
KzE1NTAsNyBAQCB2b2lkIFBERlBsdWdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlYwogICAgICAgICBbbV92ZXJ0aWNhbFNj
cm9sbGJhckxheWVyIHNldE5lZWRzRGlzcGxheV07CiB9CiAKLXZvaWQgUERGUGx1Z2luOjppbnZh
bGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQREZQbHVn
aW46OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKQogewogICAgIFtt
X3Njcm9sbENvcm5lckxheWVyIHNldE5lZWRzRGlzcGxheV07CiB9CkBAIC0xNzAyLDcgKzE3MDks
NyBAQCB2b2lkIFBERlBsdWdpbjo6c2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1dGVkU3RyaW5nKE5T
QXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBDRwogICAgIHdlYkZyYW1lKCktPnBhZ2UoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0
aW9uYXJ5UG9wdXBJbmZvKSk7CiB9CiAKLXVuc2lnbmVkIFBERlBsdWdpbjo6Y291bnRGaW5kTWF0
Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgV2ViQ29yZTo6RmluZE9wdGlvbnMgb3B0aW9ucywg
dW5zaWduZWQgbWF4TWF0Y2hDb3VudCkKK3Vuc2lnbmVkIFBERlBsdWdpbjo6Y291bnRGaW5kTWF0
Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgV2ViQ29yZTo6RmluZE9wdGlvbnMgb3B0aW9ucywg
dW5zaWduZWQpCiB7CiAgICAgaWYgKCF0YXJnZXQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGVhNWEzOThkOGNkMTNiZTFiZjdmOGYyNjY4
NTkxMTM3ZGM1Mzc5NDIuLmQ0NTgzMDk3NTI2ZTM5M2JjZjc4NjM4NWViYzUzMTdiYTQ0ZWVhZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg4Niw3ICs4ODYsNyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAjaWYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykKIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkgY29uc3QKIHsK
LSAgICBBU1NFUlQobV9wYWdlLT5jb3JlUGFnZSgpID09IHBhZ2UpOworICAgIEFTU0VSVF9VTlVT
RUQocGFnZSwgbV9wYWdlLT5jb3JlUGFnZSgpID09IHBhZ2UpOwogICAgIGlmIChtX3BhZ2UtPmRy
YXdpbmdBcmVhKCktPnR5cGUoKSA9PSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUpCiAg
ICAgICAgIHJldHVybiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKG1fcGFnZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgK
aW5kZXggZTQ1Mzg2OTU2MDk1NDg3YjVkNmMwODU5ZTBkODAwNjZhYzVjMjYyOS4uODBmZjg0NmQz
YWM1MjU3ODQ0NmMzZGQ2OTdjYWNhNDVmZDA3MTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTE1MCwxNCArMTUwLDE0IEBAIHBy
aXZhdGU6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBVc2VkIGJ5IFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbGF5
ZXJQb3NpdGlvbikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29sb3JTcGFjZShjb25zdCBDb2xvclNwYWNlRGF0YSYpIHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50
IG9yaWdpbikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zaWVudFpvb20oZG91Ymxl
IHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgeyB9CisgICAgdmlydHVhbCB2b2lk
IGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0
UG9pbnQpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRCh1
aW50NjRfdCBjYWxsYmFja0lEKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVh
bCB2b2lkIGFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRCh1aW50NjRfdCkgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogI2VuZGlmCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRG
T1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2VPdmVybGF5LmgKaW5kZXggNTc2ZjVhOTc1N2Y3MzVmN2JmODc1M2RjNGFmMzhhYWMxNTY2YjA4
ZS4uMzU5NDdhNWIyZWM2OWRjZmNiMzhjNTNiZDQxMDA0NWYxNmZkYmViZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKQEAgLTU2
LDcgKzU2LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2Nyb2xsRnJhbWUo
V2ViUGFnZU92ZXJsYXkmLCBXZWJGcmFtZSopIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotICAg
ICAgICB2aXJ0dWFsIEREQWN0aW9uQ29udGV4dCAqYWN0aW9uQ29udGV4dEZvclJlc3VsdEF0UG9p
bnQoV2ViUGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uLCBSZWZQdHI8
V2ViQ29yZTo6UmFuZ2U+JiByYW5nZUhhbmRsZSkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgICAg
ICB2aXJ0dWFsIEREQWN0aW9uQ29udGV4dCAqYWN0aW9uQ29udGV4dEZvclJlc3VsdEF0UG9pbnQo
V2ViUGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpGbG9hdFBvaW50LCBSZWZQdHI8V2ViQ29yZTo6UmFu
Z2U+JikgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YURldGVj
dG9yc0RpZFByZXNlbnRVSShXZWJQYWdlT3ZlcmxheSYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGF0YURldGVjdG9yc0RpZENoYW5nZVVJKFdlYlBhZ2VPdmVybGF5JikgeyB9CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFdlYlBhZ2VPdmVybGF5JikgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KaW5kZXggYTQ0MTE0MzcxNjJkZTA0
ZDUxYzVjN2QxNTZlYTRkMWIzZmJjY2RiOS4uZDQ2ZjZmOWM0YWVlM2IwZGM2MjJkYWE4MjNkMWE3
N2Y0ZDUwMjE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQpAQCAtOTMs
NiArOTMsNyBAQCAtICh2b2lkKWFuaW1hdGlvbkRpZFN0YXJ0OihDQUFuaW1hdGlvbiAqKWFuaW1h
dGlvbgogCiAtICh2b2lkKWFuaW1hdGlvbkRpZFN0b3A6KENBQW5pbWF0aW9uICopYW5pbWF0aW9u
IGZpbmlzaGVkOihCT09MKWZpbmlzaGVkCiB7CisgICAgVU5VU0VEX1BBUkFNKGZpbmlzaGVkKTsK
ICAgICBpZiAoIV9sYXllclRyZWVIb3N0KQogICAgICAgICByZXR1cm47CiAKQEAgLTQ5NCw3ICs0
OTUsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShjb25z
dCBDb2xvciYgdmFsdWUpCiAgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtleWZyYW1l
VmFsdWUodmFsdWUpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZy
b21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJv
bVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQpCiB7CiAgICAgaWYg
KGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuY3BwCmluZGV4IDE4YjA0YWI5NGQxMTQzOGFjMGJmNzMzMmM1YzM3YzgwN2Ni
YTk4YzcuLjNkMzcxMzZmZjgxNjFmZjBiOWZiYjliMjc0ZTRkNzEwZDExZGZmN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KCkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OmNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewot
ICAgIEFTU0VSVChtX3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9PSBsYXllci0+bGF5ZXJJRCgp
KTsKKyAgICBBU1NFUlRfVU5VU0VEKGxheWVyLCBtX3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9
PSBsYXllci0+bGF5ZXJJRCgpKTsKICAgICAKICAgICBpZiAoIW1fcHJvcGVydGllcy5jaGFuZ2Vk
UHJvcGVydGllcykKICAgICAgICAgbV9jb250ZXh0LT5sYXllclByb3BlcnR5Q2hhbmdlZFdoaWxl
QnVpbGRpbmdUcmFuc2FjdGlvbigqdGhpcyk7CkBAIC01NTIsNyArNTUyLDcgQEAgQ0ZUeXBlUmVm
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y29udGVudHMoKSBjb25zdAogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Q29udGVudHMoQ0ZUeXBl
UmVmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENvbnRlbnRzKENGVHlw
ZVJlZikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXgg
ZjEzMWQ1ZTJmMDgyNGJiNTI0ODMzNTE5NmYwYmNjYzYyNjYwMWVhYy4uMWU3NWU5YWFhOWM3YzA5
YzMyMmRkNzUwMTY0NjVlY2Y1YzA5ZjkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLm1tCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JikKIHsKIH0KIAotdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJl
Y3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJikKIHsKIH0KIApA
QCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldFJv
b3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllCiAgICAgc2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IEludFNp
emUmIGxheWVyUG9zaXRpb24pCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRh
dGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSW50U2l6ZSYpCiB7CiAg
ICAgbV92aWV3U2l6ZSA9IHZpZXdTaXplOwogICAgIG1fd2ViUGFnZS5zZXRTaXplKHZpZXdTaXpl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDJmNDVi
MmY0YjU5NWM1MDViODQ2Y2VhZjgyZjM4MTY2MDFkMDQwZWQuLjg3YzhhZGJkMTk1ZWRiYWVkZjZl
NDI5YTY3YTRlZGZhMDM0MTgwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQpAQCAtMTA2LDExICsxMDYsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIHJl
Y3QpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXROZWVkc0Rpc3BsYXlJ
blJlY3QoY29uc3QgSW50UmVjdCYpCiB7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjcm9s
bChjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYpCiB7CiAgICAgdXBkYXRlU2Nyb2xsZWRF
eHBvc2VkUmVjdCgpOwogfQpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsCiAgICAgdXBkYXRlUm9vdExheWVycygpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5GcmFtZUNvbnRl
bnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikKIHsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IDE2NGFlNTc0NTUyMjI1MmVjZDMzNjYz
NzE4MTkyNWIwZDFmNDljNTQuLmI4ZTkzODA4MTFiMjQ1YTgxYTM4OTE3Zjg3YWI2MjlkMWMzMjc2
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0KQEAg
LTg5LDExICs4OSwxNCBAQCAtIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eVBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGVOYW1lcwogCiAtIChCT09MKWFjY2Vzc2liaWxpdHlJc0F0dHJpYnV0ZVNldHRhYmxl
OihOU1N0cmluZyAqKWF0dHJpYnV0ZQogeworICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGUpOwog
ICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6KGlkKXZh
bHVlIGZvckF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKKyAgICBVTlVTRURfUEFS
QU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGUpOwogfQogCiAtIChOU1BvaW50
KWNvbnZlcnRTY3JlZW5Qb2ludFRvUm9vdFZpZXc6KE5TUG9pbnQpcG9pbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA0
ZGI2YWI3NzE3ZGRiY2M1MzI0MWY3M2MwOGQ3Y2I5NTA2MWJiYzVmLi4xNTRhNTRiMjNiZjU4Yzdh
NzAwNTYxMzMxYWQ2ZmZmMDljMjAwODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xMjksNyArMTI5LDcgQEAgTlNP
YmplY3QgKldlYlBhZ2U6OmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQbHVnaW4oKQog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRD
aGFuZ2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit2b2lkIFdlYlBhZ2U6OnBs
YXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpCiB7
CiB9CiAKQEAgLTUzNiw3ICs1MzYsNyBAQCBEaWN0aW9uYXJ5UG9wdXBJbmZvIFdlYlBhZ2U6OmRp
Y3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZShGcmFtZSogZnJhbWUsIFJhbmdlJiByYQogCiAgICAg
TlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFu
YWdlcl07CiAKLSAgICBbbnNBdHRyaWJ1dGVkU3RyaW5nIGVudW1lcmF0ZUF0dHJpYnV0ZXNJblJh
bmdlOk5TTWFrZVJhbmdlKDAsIFtuc0F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkgb3B0aW9uczow
IHVzaW5nQmxvY2s6XihOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMsIE5TUmFuZ2UgcmFuZ2UsIEJP
T0wgKnN0b3ApIHsKKyAgICBbbnNBdHRyaWJ1dGVkU3RyaW5nIGVudW1lcmF0ZUF0dHJpYnV0ZXNJ
blJhbmdlOk5TTWFrZVJhbmdlKDAsIFtuc0F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkgb3B0aW9u
czowIHVzaW5nQmxvY2s6XihOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMsIE5TUmFuZ2UgcmFuZ2Us
IEJPT0wgKikgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gc2NhbGVk
QXR0cmlidXRlcyA9IGFkb3B0TlMoW2F0dHJpYnV0ZXMgbXV0YWJsZUNvcHldKTsKIAogICAgICAg
ICBOU0ZvbnQgKmZvbnQgPSBbc2NhbGVkQXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250QXR0
cmlidXRlTmFtZV07CkBAIC05MjYsNyArOTI2LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNU
b1BERkZyb21QREZEb2N1bWVudChDR0NvbnRleHRSZWYgY29udGV4dCwgUERGRG9jdW1lbnQgKnAK
IH0KIAogI2lmIEVOQUJMRShXRUJHTCkKLVdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSBXZWJQYWdl
Ojp3ZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXJsKQor
V2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IFdlYlBhZ2U6OndlYkdMUG9saWN5Rm9yVVJMKFdlYkZy
YW1lKiwgY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgdWludDMyX3QgcG9saWN5UmVzdWx0ID0g
MDsKIApAQCAtOTM2LDcgKzkzNiw3IEBAIFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSBXZWJQYWdl
Ojp3ZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluCiAgICAgcmV0
dXJuIFdlYkdMQWxsb3dDcmVhdGlvbjsKIH0KIAotV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IFdl
YlBhZ2U6OnJlc29sdmVXZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgdXJsKQorV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IFdlYlBhZ2U6OnJlc29sdmVXZWJH
TFBvbGljeUZvclVSTChXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIHVpbnQz
Ml90IHBvbGljeVJlc3VsdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IDg5MTNhNGIyYTNiMzVlZjI2YTZhMGY4MDFlYzkxMTNmNTQwZTliOGUuLjZj
ZjJkZjA0Njk1NjgzYzc5N2VmMWE0MmU2ODI3OTQ5YTUxZGZhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTAxMiw3ICsxMDEyLDcgQEAgV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyJiBXZWJQcm9jZXNzOjp3ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKQog
dm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVCht
X3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgQVNTRVJUKG1fd2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworICAgIEFTU0VSVF9VTlVTRUQo
Y29ubmVjdGlvbiwgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlv
bik7CiAKICAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRIZWxwZXJzLmNtYWtlCmluZGV4IDJhMjIzNTJhNTJjYWU2ZjFiMWRlNjlhYmZlMTRiMjhi
YmJlNmRkMTEuLjkzYmE2MzUyYzY1ZDk3NDk1MTQzOWJkYWZiY2Y2NTE2NTg3NTk2MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRIZWxwZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRIZWxwZXJzLmNtYWtlCkBAIC0zMiw3ICszMiw3IEBAIG1hY3JvKFdFQktJVF9TRVRf
RVhUUkFfQ09NUElMRVJfRkxBR1MgX3RhcmdldCkKICAgICAgICAgaWYgKE9QVElPTl9FTkFCTEVf
V0VSUk9SKQogICAgICAgICAgICAgIyBGSVhNRTogV2hlbiB3ZSB1c2UgLWZuby10cmVlLWRjZSB0
byBzdXBwb3J0IHRoZSBqc0NTdGFjayBicmFuY2ggbWVyZ2UsIGJ1aWxkIGVycm9yIG9jY3VycyBk
dWUgdG8gdGhlIHVuaW5pdGlhbGl6YXRpb24uIFRlbXBvcmFyaWx5IHdlIHNldAogICAgICAgICAg
ICAgIyB1bmluaXRpYWxpemVkIGFzIGJ1aWxkIHdhcm5pbmcgaW4gb3JkZXIgdG8gc3VwcG9ydCB0
aGUganNDU3RhY2sgbWVyZ2UuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjc3NzcuCi0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XZXJyb3IgLVdu
by1lcnJvcj11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZXJyb3I9dW5pbml0aWFsaXplZCAtV25vLWVy
cm9yPWxpdGVyYWwtc3VmZml4ICR7T0xEX0NPTVBJTEVfRkxBR1N9IikKKyAgICAgICAgICAgIHNl
dChPTERfQ09NUElMRV9GTEFHUyAiLVdlcnJvciAtV25vLWVycm9yPXVuaW5pdGlhbGl6ZWQgLVdu
by1lcnJvcj1saXRlcmFsLXN1ZmZpeCAke09MRF9DT01QSUxFX0ZMQUdTfSIpCiAgICAgICAgIGVu
ZGlmICgpCiAKICAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0gUFJPUEVS
VElFUwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDlmNmFmNTM2MWJl
NjJlNmFmMGE4MmEyOWIxNGRjYWQ1YzZmY2MyMDQuLmQ0ZTJhNWIxMWNhZmIwZGMxY2YyY2FkYmE0
OTE2OTM2ZjBjNWUwZmEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxNS0wMS0yMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFuZCBoYW5k
bGUgdGhlbSBhcyBidWlsZCBlcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQwNzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZToKKwogMjAx
NS0wMS0yMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtFRkxdW1dLMl0gRUZMIE1pbmlCcm93c2VyIGRvZXNuJ3QgcnVuIGJlY2F1c2Ugc2hhcmVkIGxp
YnJhcnkgaXMgbm90IGZvdW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245347</attachid>
            <date>2015-01-26 06:27:57 -0800</date>
            <delta_ts>2015-01-26 06:41:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140764-20150126152953.patch</filename>
            <type>text/plain</type>
            <size>139243</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
NzQ4YzE4MGJlZjZjZmJhMTg1MzFhMmM5NTBkOTIyN2ExNjQ2ZmRlLi41NTBkYWMzOGZmOGU0MTNk
Njk1OTExNGJlMDAxMWJlNDc1ODBmYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wMS0yNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFuZCBoYW5kbGUg
dGhlbSBhcyBidWlsZCBlcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQwNzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorCiAyMDE1LTAxLTIz
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogT2JqZWN0IFByZXZpZXdzIGluIHRoZSBDb25zb2xlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWEz
NDhhMGVlNjFjNGYxNjNmZjE3NmUzM2Q0Y2NhYjM0NDAzZDRkNy4uYzNmNzRmYzQxNDlkNjM3OWEx
NmU1MjQ5NGY3ZWYwYzhlZWI4ODJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyMSBAQAorMjAx
NS0wMS0yNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgorCisgICAgICAg
IEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFuZCBoYW5kbGUgdGhlbSBhcyBidWlsZCBl
cnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQw
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6Cisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmdldEtleVJhbmdlUmVjb3JkRnJv
bU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMu
bW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OndpbGxTZW5kU3luY01lc3NhZ2UpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY1JlcGx5KToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZv
cm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAo
QVBJOjpPYmplY3RJbXBsOjpvcGVyYXRvciBuZXcpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29j
b2EvX1dLRnJhbWVIYW5kbGUubW06CisgICAgICAgICgtW19XS0ZyYW1lSGFuZGxlIGNvcHlXaXRo
Wm9uZTpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5Lm1tOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSB1bnJlZ2lzdGVyRXhw
b3J0ZWRPYmplY3Q6aW50ZXJmYWNlOl0pOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0RlcHJl
Y2F0ZWRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV0tHcmFwaGljc0NvbnRleHRHZXRDR0NvbnRl
eHQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9jZi9XS0Vycm9yQ0YuY3BwOgorICAgICAgICAo
V0tFcnJvckNvcHlDRkVycm9yKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvY2YvV0tVUkxDRi5t
bToKKyAgICAgICAgKFdLVVJMQ29weUNGVVJMKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV0tO
U0FycmF5Lm1tOgorICAgICAgICAoLVtXS05TQXJyYXkgY29weVdpdGhab25lOl0pOgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9XS05TRGF0YS5tbToKKyAgICAgICAgKC1bV0tOU0RhdGEgY29weVdp
dGhab25lOl0pOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XS05TRGljdGlvbmFyeS5tbToKKyAg
ICAgICAgKC1bV0tOU0RpY3Rpb25hcnkgY29weVdpdGhab25lOl0pOgorICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9XS05TRXJyb3IubW06CisgICAgICAgICgtW1dLTlNFcnJvciBjb3B5V2l0aFpvbmU6
XSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dLTlNTdHJpbmcubW06CisgICAgICAgICgtW1dL
TlNTdHJpbmcgY29weVdpdGhab25lOl0pOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XS05TVVJM
Lm1tOgorICAgICAgICAoLVtXS05TVVJMIGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKiBTaGFy
ZWQvQ29jb2EvV0tOU1VSTFJlcXVlc3QubW06CisgICAgICAgICgtW1dLTlNVUkxSZXF1ZXN0IGNv
cHlXaXRoWm9uZTpdKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV0tPYmplY3QubW06CisgICAg
ICAgICgtW1dLT2JqZWN0IGZvcndhcmRpbmdUYXJnZXRGb3JTZWxlY3RvcjpdKToKKyAgICAgICAg
KiBTaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFz
RGVsZWdhdGUgZG93bmxvYWREaWRCZWdpbjpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVs
ZWdhdGUgZG93bmxvYWQ6d2lsbFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAg
ICAgICgtW1dLRG93bmxvYWRBc0RlbGVnYXRlIGRvd25sb2FkOmNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2U6XSk6CisgICAgICAgICgtW1dLRG93bmxvYWRBc0RlbGVnYXRlIGRv
d25sb2FkOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpdKToKKyAgICAgICAgKC1b
V0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxvYWQ6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6XSk6CisgICAgICAgICgtW1dLRG93bmxvYWRBc0RlbGVnYXRlIGRvd25sb2FkU2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2U6XSk6CisgICAgICAgICgtW1dLRG93bmxvYWRBc0RlbGVnYXRl
IGRvd25sb2FkOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFz
RGVsZWdhdGUgZG93bmxvYWQ6d2lsbFJlc3VtZVdpdGhSZXNwb25zZTpmcm9tQnl0ZTpdKToKKyAg
ICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxvYWQ6ZGlkUmVjZWl2ZURhdGFPZkxl
bmd0aDpdKToKKyAgICAgICAgKC1bV0tEb3dubG9hZEFzRGVsZWdhdGUgZG93bmxvYWQ6c2hvdWxk
RGVjb2RlU291cmNlRGF0YU9mTUlNRVR5cGU6XSk6CisgICAgICAgICgtW1dLRG93bmxvYWRBc0Rl
bGVnYXRlIGRvd25sb2FkOmRpZENyZWF0ZURlc3RpbmF0aW9uOl0pOgorICAgICAgICAoLVtXS0Rv
d25sb2FkQXNEZWxlZ2F0ZSBkb3dubG9hZERpZEZpbmlzaDpdKToKKyAgICAgICAgKiBTaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5EZXZlbG9w
bWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6cmVleGVjQ2FsbEJhY2spOgorICAgICAgICAobWFp
bik6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBTaGFyZWQvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW06
CisgICAgICAgICgrW1dLQ3VzdG9tUHJvdG9jb2wgcmVxdWVzdElzQ2FjaGVFcXVpdmFsZW50OnRv
UmVxdWVzdDpdKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpzaGFyZWFibGVSZXNvdXJjZURlYWxsb2NhdGUpOgorICAgICAgICAqIFNo
YXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW06CisgICAgICAgIChXZWJLaXQ6OndlYktpdENv
b2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6CisgICAgICAgICogU2hh
cmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW06CisgICAgICAgIChXZWJLaXQ6OnNob3VsZFRyYW5z
Zm9ybUdyYXBoKToKKyAgICAgICAgKFdlYktpdDo6T2JqQ09iamVjdEdyYXBoOjplbmNvZGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OndlYnNpdGVEYXRhRGlyZWN0b3J5RmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFBy
aXZhdGVNYWMubW06CisgICAgICAgIChXS0NvbnRleHRJc1BsdWdJblVwZGF0ZUF2YWlsYWJsZSk6
CisgICAgICAgIChXS0NvbnRleHRSZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sKToKKyAg
ICAgICAgKFdLQ29udGV4dFVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW06
CisgICAgICAgIChkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAg
ICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChk
aWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmluaXNoTG9hZEZvckZyYW1lKToK
KyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAoY2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUpOgorICAgICAgICAoZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZSk6CisgICAgICAgIChkaWRTdGFydFBy
b2dyZXNzKToKKyAgICAgICAgKGRpZEZpbmlzaFByb2dyZXNzKToKKyAgICAgICAgKGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgIChwcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAo
c2V0VXBQYWdlUG9saWN5Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
RnJhbWVJbmZvLm1tOgorICAgICAgICAoLVtXS0ZyYW1lSW5mbyBjb3B5V2l0aFpvbmU6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW06CisgICAgICAgICgt
W1dLVXNlclNjcmlwdCBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBpbml0V2l0aENvZGVyOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVzaXplU3Vidmlld3NXaXRoT2xkU2l6ZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9zZXRBbGxvd3NSZW1vdGVJbnNwZWN0aW9uOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldEZvcm1EZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IGdvQmFjazpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGdvRm9yd2FyZDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHJlbG9hZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJlbG9hZEZyb21P
cmlnaW46XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzdG9wTG9hZGluZzpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAg
ICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGNvcHlXaXRoWm9uZTpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW06CisgICAgICAg
ICgtW19XS1RodW1ibmFpbFZpZXcgc2V0VXNlc1NuYXBzaG90Ol0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGNlbnRlclNlbGVjdGlv
bkluVmlzaWJsZUFyZWE6XSk6CisgICAgICAgICgtW1dLVmlldyBzdGFydFNwZWFraW5nOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgY2hlY2tTcGVsbGluZzpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRv
Z2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xl
R3JhbW1hckNoZWNraW5nOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xlQXV0b21hdGljU3Bl
bGxpbmdDb3JyZWN0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xlU21hcnRJbnNlcnRE
ZWxldGU6XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1
dGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRp
b246XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50Ol0pOgor
ICAgICAgICAoLVtXS1ZpZXcgdXBwZXJjYXNlV29yZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGxv
d2VyY2FzZVdvcmQ6XSk6CisgICAgICAgICgtW1dLVmlldyBjYXBpdGFsaXplV29yZDpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF93YW50c0tleURvd25Gb3JFdmVudDpdKToKKyAgICAgICAgKC1bV0tW
aWV3IGRyYWdnZWRJbWFnZTplbmRlZEF0Om9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3
IHByZXBhcmVGb3JEcmFnT3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2hpdFRlc3Q6
ZHJhZ1R5cGVzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZENoYW5nZVNjcmVlbjpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkUmVzaWduS2V5Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE1pbmlhdHVyaXplOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0Rp
ZERlbWluaWF0dXJpemU6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkTW92ZTpdKToK
KyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRSZXNpemU6XSk6CisgICAgICAgICgtW1dLVmll
dyBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6CisgICAgICAgICgtW1dLVmlldyBfd2luZG93
RGlkT3JkZXJPblNjcmVlbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VP
Y2NsdXNpb25TdGF0ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAg
ICAoLVtXS1ZpZXcgX2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOl0pOgorICAgICAgICAoLVtXS1ZpZXcg
X2FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaWN0aW9u
YXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IGFjY2Vzc2li
aWxpdHlIaXRUZXN0Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgYWRkVHJhY2tpbmdSZWN0Om93bmVy
OnVzZXJEYXRhOmFzc3VtZUluc2lkZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9hZGRUcmFja2lu
Z1JlY3Q6b3duZXI6dXNlckRhdGE6YXNzdW1lSW5zaWRlOnVzZVRyYWNraW5nTnVtOl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgX2FkZFRyYWNraW5nUmVjdHM6b3duZXI6dXNlckRhdGFMaXN0OmFzc3Vt
ZUluc2lkZUxpc3Q6dHJhY2tpbmdOdW1zOmNvdW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgdmll
dzpzdHJpbmdGb3JUb29sVGlwOnBvaW50OnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1ZpZXcg
cGFzdGVib2FyZENoYW5nZWRPd25lcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9hY3Rpb25NZW51
SXRlbXNGb3JIaXRUZXN0UmVzdWx0OndpdGhUeXBlOmRlZmF1bHRBY3Rpb25NZW51SXRlbXM6XSk6
CisgICAgICAgICgtW1dLVmlldyBfYWN0aW9uTWVudUl0ZW1zRm9ySGl0VGVzdFJlc3VsdDp3aXRo
VHlwZTpkZWZhdWx0QWN0aW9uTWVudUl0ZW1zOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0Ondp
dGhUeXBlOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1Jlc3BvbmRlckNoYWluU2luayBub1Jl
c3BvbmRlckZvcjpdKToKKyAgICAgICAgKC1bV0tSZXNwb25kZXJDaGFpblNpbmsgZG9Db21tYW5k
QnlTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bV0tSZXNwb25kZXJDaGFpblNpbmsgdHJ5VG9QZXJm
b3JtOndpdGg6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpQb2xpY3lDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9u
U3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpMb2FkZXJD
bGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9u
U3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmRp
ZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25T
dGF0ZTo6TG9hZGVyQ2xpZW50Ojpwcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNs
aWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRGF0
YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJh
c2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQ
cm94eTo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpj
b25uZWN0VG9TZXJ2aWNlKToKKyAgICAgICAgKFdlYktpdDo6Y29ubmVjdFRvUmVFeGVjU2Vydmlj
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2Nv
bExvYWRlciBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAgICAgICgtW1dLQ3Vz
dG9tUHJvdG9jb2xMb2FkZXIgY29ubmVjdGlvbjp3aWxsQ2FjaGVSZXNwb25zZTpdKToKKyAgICAg
ICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25z
ZTpdKToKKyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBjb25uZWN0aW9uOmRpZFJl
Y2VpdmVEYXRhOl0pOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGNvbm5lY3Rp
b246d2lsbFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dLQ3Vz
dG9tUHJvdG9jb2xMb2FkZXIgY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmVuY29kZVNlc3Npb25IaXN0b3J5RW50cnlEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6ZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0
Vmlld05lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzY3Jv
bGxWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5G
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRQZXJmb3JtQWN0aW9uTWVudUhpdFRlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZW50ZXJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHk6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAg
IChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZUFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0
dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9s
bGVyOjpkaWRDb2xsZWN0R2VvbWV0cnlGb3JTbWFydE1hZ25pZmljYXRpb25HZXN0dXJlKToKKyAg
ICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTd2lwZUdlc3R1cmUp
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlbW92ZVN3aXBlU25h
cHNob3RBZnRlclJlcGFpbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90
U3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlZpZXdTbmFwc2hvdFN0b3JlOjpwcnVuZVNuYXBz
aG90cyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNo
ZXIubW06CisgICAgICAgICgtW1dLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlciByZXRyaWV2ZUtl
eWJvYXJkVUlNb2RlRnJvbVByZWZlcmVuY2VzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciBjYW5jZWxPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgYXBwbGljYXRpb25EaWRDaGFuZ2VTY3JlZW5QYXJhbWV0ZXJz
Ol0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRXhpdEZ1
bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpd
KToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBjdXN0b21XaW5kb3dz
VG9FbnRlckZ1bGxTY3JlZW5Gb3JXaW5kb3c6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIgY3VzdG9tV2luZG93c1RvRXhpdEZ1bGxTY3JlZW5Gb3JXaW5kb3c6XSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2luZG93OnN0YXJ0Q3Vz
dG9tQW5pbWF0aW9uVG9FbnRlckZ1bGxTY3JlZW5XaXRoRHVyYXRpb246XSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2luZG93OnN0YXJ0Q3VzdG9tQW5pbWF0aW9u
VG9FeGl0RnVsbFNjcmVlbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRGYWlsVG9FbnRlckZ1bGxTY3JlZW46XSk6CisgICAg
ICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2luZG93RGlkRW50ZXJGdWxsU2Ny
ZWVuOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHdpbmRvd0Rp
ZEZhaWxUb0V4aXRGdWxsU2NyZWVuOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIHdpbmRvd0RpZEV4aXRGdWxsU2NyZWVuOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAgICgtW1dLUHJpbnRpbmdWaWV3IGxvY2F0
aW9uT2ZQcmludFJlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tl
ck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlj
a2VyTWFjKToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgd2luZG93V2lsbENsb3NlOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dL
V2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciBhdHRhY2hSaWdodDpdKToKKyAgICAgICAgKC1b
V0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGF0dGFjaEJvdHRvbTpdKToKKyAgICAgICAg
KC1bV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIHdpbmRvd0RpZE1vdmU6XSk6CisgICAg
ICAgICgtW1dLV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciB3aW5kb3dEaWRSZXNpemU6XSk6
CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciB3aW5kb3dXaWxsQ2xv
c2U6XSk6CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciBpbnNwZWN0
ZWRWaWV3RnJhbWVEaWRDaGFuZ2U6XSk6CisgICAgICAgIChXZWJLaXQ6OnJ1bk9wZW5QYW5lbCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlC
YWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRmFjdG9yeUJhY2tlbmQ6OmdldERh
dGFiYXNlTmFtZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVy
Q29ubmVjdGlvbjo6c2V0SW5kZXhLZXlzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW4ubW06CisgICAgICAgIChkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgKHdpbGxE
ZXN0cm95UGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAg
KGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmlu
aXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKGdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJh
bWUpOgorICAgICAgICAoZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KToKKyAgICAgICAgKGRp
ZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAg
KGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgIChkaWRMYXlvdXRG
b3JGcmFtZSk6CisgICAgICAgIChkaWRMYXlvdXQpOgorICAgICAgICAoZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUpOgorICAgICAgICAoZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAg
ICgtW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpd
KToKKyAgICAgICAgKC1bV0tQREZQbHVnaW5TY3JvbGxiYXJMYXllciBhY3Rpb25Gb3JLZXk6XSk6
CisgICAgICAgICgtW1dLUERGTGF5ZXJDb250cm9sbGVyRGVsZWdhdGUgcGRmTGF5ZXJDb250cm9s
bGVyOmNsaWNrZWRMaW5rV2l0aFVSTDpdKToKKyAgICAgICAgKC1bV0tQREZMYXllckNvbnRyb2xs
ZXJEZWxlZ2F0ZSBwZGZMYXllckNvbnRyb2xsZXI6ZGlkQ2hhbmdlQWN0aXZlQW5ub3RhdGlvbjpd
KToKKyAgICAgICAgKC1bV0tQREZMYXllckNvbnRyb2xsZXJEZWxlZ2F0ZSBwZGZMYXllckNvbnRy
b2xsZXI6ZGlkQ2hhbmdlQ29udGVudFNjYWxlRmFjdG9yOl0pOgorICAgICAgICAoLVtXS1BERkxh
eWVyQ29udHJvbGxlckRlbGVnYXRlIHBkZkxheWVyQ29udHJvbGxlcjpkaWRDaGFuZ2VEaXNwbGF5
TW9kZTpdKToKKyAgICAgICAgKC1bV0tQREZMYXllckNvbnRyb2xsZXJEZWxlZ2F0ZSBwZGZMYXll
ckNvbnRyb2xsZXI6ZGlkQ2hhbmdlU2VsZWN0aW9uOl0pOgorICAgICAgICAoV2ViS2l0Ojpqc1BE
RkRvY0luaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmpzUERGRG9jUHJp
bnQpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnN0cmVhbURpZEZhaWwpOgorICAgICAg
ICAoV2ViS2l0OjpQREZQbHVnaW46Om1hbnVhbFN0cmVhbURpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6dXBkYXRlQ29udHJvbFRpbnRzKToKKyAgICAgICAg
KFdlYktpdDo6UERGUGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZCk6CisgICAgICAgIChXZWJL
aXQ6OlBERlBsdWdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViS2l0
OjpQREZQbHVnaW46OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYktp
dDo6UERGUGx1Z2luOjpjb3VudEZpbmRNYXRjaGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YTo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6YWRqdXN0
VHJhbnNpZW50Wm9vbSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpjb21taXRUcmFu
c2llbnRab29tKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9u
Q2FsbGJhY2tJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VPdmVybGF5OjpDbGllbnQ6OmFjdGlvbkNvbnRl
eHRGb3JSZXN1bHRBdFBvaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW06CisgICAgICAgICgtW1dLQW5pbWF0aW9uRGVsZWdh
dGUgYW5pbWF0aW9uRGlkU3RvcDpmaW5pc2hlZDpdKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y29weUNvbnRlbnRzRnJvbUxheWVyKToKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRDb250ZW50cyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjcm9sbCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RN
YWMubW06CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgYWNjZXNzaWJp
bGl0eUlzQXR0cmlidXRlU2V0dGFibGU6XSk6CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QgYWNjZXNzaWJpbGl0eVNldFZhbHVlOmZvckF0dHJpYnV0ZTpdKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkaWN0aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp3ZWJHTFBvbGljeUZvclVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnJlc29sdmVXZWJHTFBvbGljeUZvclVSTCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToKKwogMjAxNS0wMS0yNiAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gZ3RrZG9jIGRvZXMgbm90
IGFwcGVhciBpbiBEZXZIZWxwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IDgxNTE1YzYzOWM5NjIzYmVhYzM0NTk3OGI5Mjdi
Y2QxZDQ2Mjc3NjEuLjRjYmZkZmIxMzI5NTYwYzY4NGVmNmI1ODFiN2Y5NGVjMjNiMWY0N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCkBAIC00OSw3ICs0OSw3IEBAIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVMK
IEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJM
RSA9IFlFUwogTElOS0VSX0RJU1BMQVlTX01BTkdMRURfTkFNRVMgPSBZRVM7Ci1XQVJOSU5HX0NG
TEFHUyA9IC1XYWxsIC1XIC1XY2hhci1zdWJzY3JpcHRzIC1XZm9ybWF0LXNlY3VyaXR5IC1XbWlz
c2luZy1mb3JtYXQtYXR0cmlidXRlIC1XcG9pbnRlci1hcml0aCAtV3dyaXRlLXN0cmluZ3MgLVdu
by11bnVzZWQtcGFyYW1ldGVyIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzOworV0FSTklOR19DRkxB
R1MgPSAtV2FsbCAtVyAtV2NoYXItc3Vic2NyaXB0cyAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3Np
bmctZm9ybWF0LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGggLVd3cml0ZS1zdHJpbmdzIC1XZXhp
dC10aW1lLWRlc3RydWN0b3JzOwogCiBFTkdJTkVFUklOR19CVUlMRF9ERUZJTkVTID0gJChFTkdJ
TkVFUklOR19CVUlMRF9ERUZJTkVTXyQoRU5HSU5FRVJJTkdfQlVJTEQpKTsKIEVOR0lORUVSSU5H
X0JVSUxEX0RFRklORVNfMSA9IEVOR0lORUVSSU5HX0JVSUxEPTE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCBiODMxZTA0M2EzMDhjY2JmY2Q0ZTFl
OWZhNGE2MDVjN2QwN2I1MGZjLi44Yzk1MTYzMWU2YjVmMTlhY2UxYjA5YTkyYTRhZDUyNWQxYmQw
ZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAg
LTc1LDcgKzc1LDcgQEAgR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogTElOS0VSX0RJ
U1BMQVlTX01BTkdMRURfTkFNRVMgPSBZRVM7CiBPVEhFUl9NSUdGTEFHUyA9IC1GJChCVUlMVF9Q
Uk9EVUNUU19ESVIpOwogUFJFQklORElORyA9IE5POwotV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5k
YW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3Jz
IC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQt
ZmFsbHRocm91Z2g7CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjaGFyLXN1YnNj
cmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0LXNlbGYgLVdtaXNz
aW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRl
ci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQt
dGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29t
cGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKaW5kZXggNWY4MjIzMGE5NzIyMjFlZjNjNDUwOWI4ZDNiODhhMDUzYjBlYWJi
Ny4uODE0MzFiNmMyZWM1YjRjNmFiYWMwM2M4MDA4M2M1ZTRmZjc4ZmMxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgICAg
IHJlbW92ZURhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24obV9pZGJDb25uZWN0aW9ucy5iZWdp
bigpLT5rZXkpOwogfQogCi12b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1l
KQordm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UpCiB7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRl
L1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAppbmRleCA4MjIxYTQyZDEx
YmNhYjBlY2Y2YzkzYTExOGEyYzM2NWNhZTJlYTZhLi5kYjJiM2U5YmU1ZjRiM2Q3YmNhZmFhZDhj
YTQzODJjMDlhY2QwZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUv
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCkBAIC0xMTQ2LDcgKzExNDYs
NyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSYW5n
ZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFucwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSZWNvcmQoU1FMaXRl
SURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0
IFdlYkNvcmU6OklEQktleURhdGEmIGtleSkKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGU6OmRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFuc2FjdGlvbiYsIGludDY0X3Qg
b2JqZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYga2V5KQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKQEAgLTEy
MzMsNyArMTIzMyw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6
OmdldEtleVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJJCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmdldEtleVJh
bmdlUmVjb3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZSYga2V5
UmFuZ2UsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxJREJLZXk+JiByZXN1
bHRLZXkpCitib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRLZXlS
YW5nZVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5UmFuZ2UmIGtl
eVJhbmdlLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgcmVzdWx0LCBSZWZQdHI8SURCS2V5PiYpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fc3FsaXRlREIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9u
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1t
CmluZGV4IDU3YzlmMjBkOGJjMTUyNzQzNzkxNDA0OWY5ZTkwMTdkNTc2Yjk5YzIuLmQ0ZDYzZTIw
YjgzNTc5YTIxOGI5OGVjODFhN2E5NzY0MWI3ZTYwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KQEAgLTYwMCw2ICs2MDAsOCBAQCB2
b2lkIENvbm5lY3Rpb246OndpbGxTZW5kU3luY01lc3NhZ2UodW5zaWduZWQgZmxhZ3MpCiAjaWYg
IVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKICAgICBpZiAoKGZsYWdzICYgSW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
ICYmIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAg
ICAgIF9BWFVJRWxlbWVudE5vdGlmeVByb2Nlc3NTdXNwZW5kU3RhdHVzKEFYU3VzcGVuZFN0YXR1
c1N1c3BlbmRlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmbGFncyk7CiAjZW5kaWYKIH0K
IApAQCAtNjA4LDYgKzYxMCw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNSZXBs
eSh1bnNpZ25lZCBmbGFncykKICNpZiAhVEFSR0VUX09TX0lQSE9ORSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAogICAgIGlmICgoZmxhZ3MgJiBJbmZvcm1QbGF0
Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkgJiYgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgX0FYVUlFbGVtZW50Tm90aWZ5UHJvY2Vzc1N1c3Bl
bmRTdGF0dXMoQVhTdXNwZW5kU3RhdHVzUnVubmluZyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShmbGFncyk7CiAjZW5kaWYKIH0gICAgCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L21hYy9Xb3JrUXVldWVNYWMuY3BwCmluZGV4IDc4Yjc1ZjlmNzUxMTc0ZTQ0ZDU4NjljMmMwNzFj
OWIwMzk5MzQ5MjUuLjk1ZjBhMzc3Y2M5MzM1Yzk3MDI4MWIzNDA0MTQ2MjBlMjdjNWYyN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Xb3JrUXVldWVNYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Xb3JrUXVldWVNYWMuY3BwCkBAIC02Nyw2
ICs2Nyw4IEBAIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciog
bmFtZSwgUU9TIHFvcykKICAgICBkaXNwYXRjaF9xdWV1ZV9hdHRyX3QgYXR0ciA9IDA7CiAjaWYg
SEFWRShRT1NfQ0xBU1NFUykKICAgICBhdHRyID0gZGlzcGF0Y2hfcXVldWVfYXR0cl9tYWtlX3dp
dGhfcW9zX2NsYXNzKERJU1BBVENIX1FVRVVFX1NFUklBTCwgZGlzcGF0Y2hRT1NDbGFzcyhxb3Mp
LCAwKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHFvcyk7CiAjZW5kaWYKICAgICBtX2Rpc3Bh
dGNoUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUobmFtZSwgYXR0cik7CiAgICAgZGlzcGF0
Y2hfc2V0X2NvbnRleHQobV9kaXNwYXRjaFF1ZXVlLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IDA2MDky
ZDk2NzJiN2ZiMjczOTg5ZmU0MmJkYzdkNDcxMjNmZjNiMWMuLjgxNzdiMDk3ZDcyYjVmZDcxZWY1
ODRiZTdmZjdiZTA0MTFiNzU4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtNDE2LDcgKzQxNiw3IEBAIHZvaWQg
UGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0CiAgICAgICAgIGRpc2tQYXRoOm1fbnN1cmxDYWNoZURpcmVjdG9y
eV0pLmdldCgpXTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQ
cm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewogI2lmIGRlZmluZWQo
X19pMzg2X18pCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc2hpbS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSU9iamVjdC5oCmluZGV4IGM1ZGZkMzQ2MjI3NzNlZjZkMmNkZTRiZmJhZGU4MTkzYTI0
Yzg4Y2YuLjYwNTE0M2IyMDdhZDYwMjc0ZTY1OGE5MDM0MmQ5Y2I3NTRhMTRkNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMjM1LDcgKzIzNSw3IEBAIHByb3RlY3Rl
ZDoKIAogI2lmIERFTEVHQVRFX1JFRl9DT1VOVElOR19UT19DT0NPQQogICAgIHZvaWQqIG9wZXJh
dG9yIG5ldyhzaXplX3Qgc2l6ZSkgeyByZXR1cm4gbmV3T2JqZWN0KHNpemUsIEFQSVR5cGUpOyB9
Ci0gICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCB2b2lkKiB2YWx1ZSkgeyByZXR1
cm4gdmFsdWU7IH0KKyAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkKiB2YWx1ZSkg
eyByZXR1cm4gdmFsdWU7IH0KICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5kZXggMGE3MmZlZjI4MTA3MjFmODMy
MWFkOTY2N2E1ZGIwZDhmODkxYWRhNS4uZDE4MGQzOTk4NWQzM2I5Yzg3NmQ2NDA1NWZkOTgxNjE1
MDYyNjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tG
cmFtZUhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLm1tCkBAIC02Niw2ICs2Niw3IEBAIC0gKHVpbnQ2NF90KV9mcmFtZUlECiAKIC0g
KGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogeworICAgIFVOVVNFRF9QQVJBTSh6b25l
KTsKICAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5k
ZXggZjVlOWMwOTQ3ZDRmMmFiNmU1OGEwYWIzYTIwMWYxMTZhODIxZDdlYi4uZTJkYjMxODZjYjM4
YjFhMDYxNWNmNWRmNDRhYWRmYTZkYTI5YmZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC02
MSw3ICs2MSw3IEBAIC0gKHZvaWQpcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDooaWQpb2JqZWN0IGlu
dGVyZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopCiAKIC0gKHZvaWQpdW5yZWdpc3Rl
ckV4cG9ydGVkT2JqZWN0OihpZClvYmplY3QgaW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJbnRl
cmZhY2UgKilpbnRlcmZhY2UKIHsKLSAgICBBU1NFUlQoX2V4cG9ydGVkT2JqZWN0cy5nZXQoaW50
ZXJmYWNlLmlkZW50aWZpZXIpLmZpcnN0ID09IG9iamVjdCk7CisgICAgQVNTRVJUX1VOVVNFRChv
YmplY3QsIF9leHBvcnRlZE9iamVjdHMuZ2V0KGludGVyZmFjZS5pZGVudGlmaWVyKS5maXJzdCA9
PSBvYmplY3QpOwogICAgIEFTU0VSVChfZXhwb3J0ZWRPYmplY3RzLmdldChpbnRlcmZhY2UuaWRl
bnRpZmllcikuc2Vjb25kID09IGludGVyZmFjZSk7CiAKICAgICBfZXhwb3J0ZWRPYmplY3RzLnJl
bW92ZShpbnRlcmZhY2UuaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tEZXByZWNhdGVkRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0RlcHJlY2F0ZWRGdW5jdGlvbnMuY3BwCmluZGV4IGZiMTM4ODBjNjZmZmIz
MTVjNTJjNzU5MDgwNjNhMjZjMDA3YzIyYjQuLjI3ODczOTczYzUzZTI5YmYyNGYxZTU3M2U4YzI5
MmU0NzU1OWM3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Rl
cHJlY2F0ZWRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0RlcHJlY2F0ZWRGdW5jdGlvbnMuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBXS0luc3Bl
Y3RvclRvZ2dsZUphdmFTY3JpcHRQcm9maWxpbmcoV0tJbnNwZWN0b3JSZWYpCiB9CiAKICNpZiBQ
TEFURk9STShNQUMpCi1DR0NvbnRleHRSZWYgV0tHcmFwaGljc0NvbnRleHRHZXRDR0NvbnRleHQo
V0tHcmFwaGljc0NvbnRleHRSZWYgZ3JhcGhpY3NDb250ZXh0KQorQ0dDb250ZXh0UmVmIFdLR3Jh
cGhpY3NDb250ZXh0R2V0Q0dDb250ZXh0KFdLR3JhcGhpY3NDb250ZXh0UmVmKQogewogICAgIHJl
dHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L2NmL1dLRXJyb3JDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJv
ckNGLmNwcAppbmRleCA3ODkyNDgzYmVhYzFlZjczZjgxMTBlZTRlYThlNjIwMmZhZTQ0NmJhLi4z
YTg5ZDY5OGU4ZjY5M2FlN2JhMGVkY2U1ZTFiMjNhNmQxOTQ4Y2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJvckNGLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJvckNGLmNwcApAQCAtMzgsNyArMzgsNyBAQCBXS0Vy
cm9yUmVmIFdLRXJyb3JDcmVhdGVXaXRoQ0ZFcnJvcihDRkVycm9yUmVmIGNmRXJyb3IpCiAgICAg
cmV0dXJuIHRvQVBJKGVycm9yLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCi1DRkVycm9yUmVm
IFdLRXJyb3JDb3B5Q0ZFcnJvcihDRkFsbG9jYXRvclJlZiBhbGxvYywgV0tFcnJvclJlZiBlcnJv
cikKK0NGRXJyb3JSZWYgV0tFcnJvckNvcHlDRkVycm9yKENGQWxsb2NhdG9yUmVmLCBXS0Vycm9y
UmVmIGVycm9yKQogewogICAgIFJldGFpblB0cjxDRkVycm9yUmVmPiBjZkVycm9yID0gdG9JbXBs
KGVycm9yKS0+cGxhdGZvcm1FcnJvcigpLmNmRXJyb3IoKTsKICAgICByZXR1cm4gY2ZFcnJvci5s
ZWFrUmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tV
UkxDRi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tCmluZGV4
IDFhOWM1ZmQ0OGZhYTIxMzAwN2U4YmIxZDQyZDNhYzI5YTM2ZDkyM2YuLjRkNTNlMDY4MmRiNWZj
NTcyMDEzMGZiYmU0MDYxNzE2MGQ5NjYwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9jZi9XS1VSTENGLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9jZi9XS1VSTENGLm1tCkBAIC02Niw2ICs2Niw3IEBAIFdLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0
aENGVVJMKENGVVJMUmVmIGNmVVJMKQogCiBDRlVSTFJlZiBXS1VSTENvcHlDRlVSTChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3JSZWYsIFdLVVJMUmVmIFVSTFJlZikKIHsKKyAgICBVTlVTRURfUEFS
QU0oYWxsb2NhdG9yUmVmKTsKICAgICBBU1NFUlQoIXRvSW1wbChVUkxSZWYpLT5zdHJpbmcoKS5p
c051bGwoKSk7CiAKICAgICAvLyBXZSBmaXJzdCBjcmVhdGUgYSBDU3RyaW5nIGFuZCB0aGVuIGNy
ZWF0ZSB0aGUgQ0ZVUkwgZnJvbSBpdC4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBDRlVSTCBp
cyBzdG9yZWQgaW4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tO
U0FycmF5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNBcnJheS5tbQppbmRl
eCBhNTFiNGRhODNkNDhmOWFiNjI0NTA0YzNhZjcxMzJlZjdkZmEwNzI1Li5jOGRmYWYzMGI2YzQz
OGFkNjNkMTQwZjQ5ZjNiM2UyYTZlOWE4MWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29jb2EvV0tOU0FycmF5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2Nv
YS9XS05TQXJyYXkubW0KQEAgLTU2LDYgKzU2LDcgQEAgLSAoaWQpb2JqZWN0QXRJbmRleDooTlNV
SW50ZWdlcilpCiAKIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogeworICAgIFVO
VVNFRF9QQVJBTSh6b25lKTsKICAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tCmluZGV4IDlkODBmMzQ3YjdlMDhhNTBiYTJh
ZGI0NDkzMDY2ZjdjZTZhYTNmMWEuLmVmZjJiOGYyYzU1NWU1ODJiYzU1NDNlNzQzZDZlNjA4ODZj
NjI5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRGF0YS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RhdGEubW0KQEAgLTU1LDYg
KzU1LDcgQEAgLSAoY29uc3Qgdm9pZCopYnl0ZXMKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pv
bmUgKil6b25lCiB7CisgICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiBy
ZXRhaW5dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tO
U0RpY3Rpb25hcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RpY3Rpb25h
cnkubW0KaW5kZXggY2JjZjRjNmViODAzMjYwYzc1ZjljZWRlMzgzMzU0OWM0M2NlMGJlNi4uMDNj
Mjg3NDhiZTQ1YjFiOWZmOTA5MWI2MTJiMmJiMDhjMWIzMDJiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db2NvYS9XS05TRGljdGlvbmFyeS5tbQpAQCAtNzgsNiArNzgsNyBAQCAtIChO
U0VudW1lcmF0b3IgKilrZXlFbnVtZXJhdG9yCiAKIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25l
ICopem9uZQogeworICAgIFVOVVNFRF9QQVJBTSh6b25lKTsKICAgICByZXR1cm4gW3NlbGYgcmV0
YWluXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNF
cnJvci5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRXJyb3IubW0KaW5kZXgg
ODIwNTk0ZTk0YTcyMDk3NzhjMTljYTdmMGQ2YmYwNTFkODAwZDRjNi4uMWMwNDQyOGM0ZGNiNGJm
OTA2MDQyNzJiOTgxZTBkNmNjYjA1YmEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NvY29hL1dLTlNFcnJvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2Ev
V0tOU0Vycm9yLm1tCkBAIC00MSw2ICs0MSw3IEBAIC0gKE5TT2JqZWN0ICopX3dlYl9jcmVhdGVU
YXJnZXQKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CisgICAgVU5VU0VE
X1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU1N0cmluZy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db2NvYS9XS05TU3RyaW5nLm1tCmluZGV4IDQzZDU3OWRhOTE0MTM4OTA3Njc1
ZmZhMmQ4YzIzYjdhYTgyOGNiN2EuLjQ3NGU4NzMwYTYyMmJjMjI3MGZhZjNiN2JkM2MwODE3ZWIy
ZjViZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TU3RyaW5n
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TU3RyaW5nLm1tCkBAIC00
NSw2ICs0NSw3IEBAIC0gKE5TT2JqZWN0ICopX3dlYl9jcmVhdGVUYXJnZXQKIAogLSAoaWQpY29w
eVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CisgICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAg
IHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29jb2EvV0tOU1VSTC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05T
VVJMLm1tCmluZGV4IDA1NmEyZDk4YWUzYTZmODU3NWZiNzI4YzE2MTM0Y2IwN2E4OThiNTYuLjI3
YTNhNzRiYmRmOWZlMWJkMGU2YjUzODU3MTM3ZWVjNWE2ZWIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TVVJMLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db2NvYS9XS05TVVJMLm1tCkBAIC00Myw2ICs0Myw3IEBAIC0gKE5TT2JqZWN0ICopX3dl
Yl9jcmVhdGVUYXJnZXQKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7Cisg
ICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU1VSTFJlcXVlc3QubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU1VSTFJlcXVlc3QubW0KaW5kZXggMzBl
YmRiNzkwMjRjZGJmZGZhMzE2ODBhYzcxMzFmMzI1MDBiNDZkYS4uMDM2ODE2NDlhNzdjMTA3YTQz
MDhlNGY4Y2U2MzMyNzYzZTBkY2VjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NvY29hL1dLTlNVUkxSZXF1ZXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2Nv
YS9XS05TVVJMUmVxdWVzdC5tbQpAQCAtNDYsNiArNDYsNyBAQCAtIChOU1VSTCAqKVVSTAogCiAt
IChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKIHsKKyAgICBVTlVTRURfUEFSQU0oem9u
ZSk7CiAgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db2NvYS9XS09iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b2NvYS9XS09iamVjdC5tbQppbmRleCBjNTg5NTYxYmUxOTk0OTk2ZWM4MmIxYWNiNGQ5ZjlkNjIy
MmY2MmRlLi5iY2ZhOGVmNmRkNjA3ZTI5YjE1MjEzMTEzY2M3OGY2MDY0YjYwZjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tPYmplY3QubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvY29hL1dLT2JqZWN0Lm1tCkBAIC0xMDIsNiArMTAyLDcgQEAgLSAo
Qk9PTCljb25mb3Jtc1RvUHJvdG9jb2w6KFByb3RvY29sICopcHJvdG9jb2wKIAogLSAoaWQpZm9y
d2FyZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKKyAgICBVTlVTRURfUEFS
QU0oc2VsZWN0b3IpOwogICAgIGluaXRpYWxpemVUYXJnZXRJZk5lZWRlZChzZWxmKTsKIAogICAg
IHJldHVybiBfdGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25s
b2Fkcy9tYWMvRG93bmxvYWRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRz
L21hYy9Eb3dubG9hZE1hYy5tbQppbmRleCBmOGIxMDk5ZTI4NWY0OGQ3NjliMWMxYjIwMjFhZjRj
MzAwNzA0MmYyLi44ZDRjZjEwZjZhYjMxMTYxMDFlNWEzYjlmMjg4ZDdkZDI0ZGE0NjEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5t
bQpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgRG93bmxvYWQ6OnBsYXRmb3JtSW52YWxpZGF0ZSgp
CiAgICAgbV9uc1VSTERvd25sb2FkID0gbnVsbHB0cjsKIH0KIAotdm9pZCBEb3dubG9hZDo6ZGlk
RGVjaWRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBhbGxvd092
ZXJ3cml0ZSkKK3ZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmlu
ZyYsIGJvb2wpCiB7CiB9CiAKQEAgLTE4Nyw2ICsxODcsNyBAQCAtICh2b2lkKWludmFsaWRhdGUK
IAogLSAodm9pZClkb3dubG9hZERpZEJlZ2luOihOU1VSTERvd25sb2FkICopZG93bmxvYWQKIHsK
KyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRpc3BhdGNoT25NYWluVGhyZWFkKF57
CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAgICBfZG93bmxvYWQtPmRpZFN0YXJ0
KCk7CkBAIC0xOTUsMTEgKzE5NiwxNSBAQCAtICh2b2lkKWRvd25sb2FkRGlkQmVnaW46KE5TVVJM
RG93bmxvYWQgKilkb3dubG9hZAogCiAtIChOU1VSTFJlcXVlc3QgKilkb3dubG9hZDooTlNVUkxE
b3dubG9hZCAqKWRvd25sb2FkIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVz
dCByZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQogewor
ICAgIFVOVVNFRF9QQVJBTShkb3dubG9hZCk7CisgICAgVU5VU0VEX1BBUkFNKHJlZGlyZWN0UmVz
cG9uc2UpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCiAtIChCT09MKWRvd25sb2FkOihOU1VS
TERvd25sb2FkICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZQogeworICAgIFVOVVNF
RF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHJvdGVjdGlvblNwYWNlKTsK
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0
dXJuIE5POwpAQCAtMjA3LDYgKzIxMiw3IEBAIC0gKEJPT0wpZG93bmxvYWQ6KE5TVVJMRG93bmxv
YWQgKiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhCiAKIC0g
KHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVu
Z2UKIHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRpc3BhdGNoT25NYWluVGhy
ZWFkKF57CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAgICBfZG93bmxvYWQtPmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb3JlKGNoYWxsZW5nZSkpOwpAQCAtMjE1
LDE3ICsyMjEsMjEgQEAgLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2Fk
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlMKIAogLSAodm9pZClkb3dubG9h
ZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCiB7CisgICAgVU5V
U0VEX1BBUkFNKGRvd25sb2FkKTsKKyAgICBVTlVTRURfUEFSQU0oY2hhbGxlbmdlKTsKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50LgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIC0gKEJPT0wp
ZG93bmxvYWRTaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTooTlNVUkxEb3dubG9hZCAqKWRvd25s
b2FkCiB7CisgICAgVU5VU0VEX1BBUkFNKGRvd25sb2FkKTsKICAgICByZXR1cm4gTk87CiB9CiAK
IC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlUmVz
cG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQogeworICAgIFVOVVNFRF9QQVJBTShkb3du
bG9hZCk7CiAgICAgZGlzcGF0Y2hPbk1haW5UaHJlYWQoXnsKICAgICAgICAgaWYgKF9kb3dubG9h
ZCkKICAgICAgICAgICAgIF9kb3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsK
QEAgLTIzNCwxMiArMjQ0LDE2IEBAIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilk
b3dubG9hZCBkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyCiAKIC0gKHZvaWQp
ZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCB3aWxsUmVzdW1lV2l0aFJlc3BvbnNl
OihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UgZnJvbUJ5dGU6KGxvbmcgbG9uZylzdGFydGluZ0J5
dGUKIHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOworICAgIFVOVVNFRF9QQVJBTShyZXNw
b25zZSk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXJ0aW5nQnl0ZSk7CiAgICAgLy8gRklYTUU6IElt
cGxlbWVudC4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiAtICh2b2lkKWRvd25sb2FkOihO
U1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZURhdGFPZkxlbmd0aDooTlNVSW50ZWdl
cilsZW5ndGgKIHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAgIGRpc3BhdGNoT25N
YWluVGhyZWFkKF57CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAgICAgICBfZG93bmxv
YWQtPmRpZFJlY2VpdmVEYXRhKGxlbmd0aCk7CkBAIC0yNDgsNiArMjYyLDcgQEAgLSAodm9pZClk
b3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVEYXRhT2ZMZW5ndGg6
KE5TVUludGVnZXIpbGUKIAogLSAoQk9PTClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25s
b2FkIHNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlOihOU1N0cmluZyAqKWVuY29kaW5n
VHlwZQogeworICAgIFVOVVNFRF9QQVJBTShkb3dubG9hZCk7CiAgICAgX19ibG9jayBCT09MIHJl
dHVyblZhbHVlOwogICAgIGRpc3BhdGNoT25NYWluVGhyZWFkKF57CiAgICAgICAgIGlmIChfZG93
bmxvYWQpCkBAIC0yNzQsNiArMjg5LDcgQEAgLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9h
ZCAqKWRvd25sb2FkIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW0KIAogLSAo
dm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENyZWF0ZURlc3RpbmF0
aW9uOihOU1N0cmluZyAqKXBhdGgKIHsKKyAgICBVTlVTRURfUEFSQU0oZG93bmxvYWQpOwogICAg
IGRpc3BhdGNoT25NYWluVGhyZWFkKF57CiAgICAgICAgIGlmIChfZG93bmxvYWQpCiAgICAgICAg
ICAgICBfZG93bmxvYWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKHBhdGgpOwpAQCAtMjgyLDYgKzI5
OCw3IEBAIC0gKHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRDcmVh
dGVEZXN0aW5hdGlvbjooTlNTdHJpbmcgKilwYXRoCiAKIC0gKHZvaWQpZG93bmxvYWREaWRGaW5p
c2g6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZAogeworICAgIFVOVVNFRF9QQVJBTShkb3dubG9h
ZCk7CiAgICAgZGlzcGF0Y2hPbk1haW5UaHJlYWQoXnsKICAgICAgICAgaWYgKF9kb3dubG9hZCkK
ICAgICAgICAgICAgIF9kb3dubG9hZC0+ZGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2
aWNlTWFpbi5EZXZlbG9wbWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCmlu
ZGV4IGI0NWFjNmI1Y2JjZTVmMzUxOTEyNzYxZTg1YTFlYjAzMzY2ODc4NjUuLjEzMDRjZmY4MTBh
YjJkMzRjZWQ5ODlmYmM0NDg0NTI3MDA2OGQ2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWlu
LkRldmVsb3BtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tCkBAIC04
NSw3ICs4NSw3IEBAIHN0YXRpYyBOT19SRVRVUk4gdm9pZCByZWV4ZWMoUmVleGVjSW5mbyAqaW5m
bykKICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiB9CiAKLXN0YXRpYyBOT19SRVRVUk4gdm9pZCBy
ZWV4ZWNDYWxsQmFjayhDRlJ1bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCAqaW5mbykKK3N0YXRp
YyBOT19SRVRVUk4gdm9pZCByZWV4ZWNDYWxsQmFjayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCAq
aW5mbykKIHsKICAgICByZWV4ZWMoc3RhdGljX2Nhc3Q8UmVleGVjSW5mbyAqPihpbmZvKSk7CiB9
CkBAIC0xNjIsNyArMTYyLDcgQEAgc3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4
cGNfY29ubmVjdGlvbl90IHBlZXIpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLWludCBt
YWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCBtYWluKGludCwgY2hhcioqKQogewogICAg
IHhwY19tYWluKFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOwogICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZU1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQppbmRleCAyZTZhOTgw
NzY4NzUyYjMwNzRiYTY5OWRlOWZiM2QwMDgwNjFlMDE0Li5kMjQxZTUyNTFiODZlZDFiNDFmZDRk
Y2U3MzQ2ZTYxYjg0Nzg5YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9Y
UENTZXJ2aWNlTWFpbi5tbQpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNl
RXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3QgcGVlcikKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoraW50IG1haW4oaW50LCBj
aGFyKiopCiB7CiAgICAgeHBjX21haW4oWFBDU2VydmljZUV2ZW50SGFuZGxlcik7CiAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Q
cm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyQ29jb2EubW0KaW5kZXggM2U0M2UyYmFlNzRlYTcxOWMzNjM1ZjU5YmU3MDI2NTQ2M2E5
MzkwOS4uOTczNDFjZjY4Y2M0OTY1NTNmNjFlNzg3MmFiMWYwMDNjMTM3OGZmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1
c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5t
bQpAQCAtODgsNiArODgsOCBAQCArIChOU1VSTFJlcXVlc3QgKiljYW5vbmljYWxSZXF1ZXN0Rm9y
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAogCiArIChCT09MKXJlcXVlc3RJc0NhY2hl
RXF1aXZhbGVudDooTlNVUkxSZXF1ZXN0ICopYSB0b1JlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKWIK
IHsKKyAgICBVTlVTRURfUEFSQU0oYSk7CisgICAgVU5VU0VEX1BBUkFNKGIpOwogICAgIHJldHVy
biBOTzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJl
c291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAK
aW5kZXggY2Y5NjFkMmU4NjU0ZDUyYjliMDQ1ZDM3ZTYxYjU5MWE0YmEwMTQzMS4uMmM5OTJmNzZm
YjJjYzBhOThiYjkzNjQ1NjE3M2EzYjgyMWUwYTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgU2hhcmVhYmxl
UmVzb3VyY2U6OkhhbmRsZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBI
YW5kbGUmIGhhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIHNoYXJlYWJsZVJl
c291cmNlRGVhbGxvY2F0ZSh2b2lkICpwdHIsIHZvaWQgKmluZm8pCitzdGF0aWMgdm9pZCBzaGFy
ZWFibGVSZXNvdXJjZURlYWxsb2NhdGUodm9pZCAqLCB2b2lkICppbmZvKQogewogICAgIChzdGF0
aWNfY2FzdDxTaGFyZWFibGVSZXNvdXJjZSo+KGluZm8pKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZWQg
YnkgcmVmKCkgaW4gY3JlYXRlU2hhcmVhYmxlUmVzb3VyY2VEZWFsbG9jYXRvcigpCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQppbmRleCA4NGFi
NWIwMjkwYjQxODJmZDBiMTRhY2M4ZTdjMTIzNDQzY2Y0Y2M3Li42MTY0NTAxY2U1YWRmNjIzYThh
MjQ1YTQwZTFlZTNhZTI0MThlMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTU5LDcgKzU5LDcgQEAgQGVuZAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotc3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29w
eVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBpbkNvb2tp
ZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCkKK3N0YXRpYyBDRkRpY3Rpb25hcnlSZWYg
d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIENGVVJMUmVmIGluUmVxdWVzdFVSTCkKIHsKICAgICBTdHJpbmcgY29v
a2llczsKICAgICBVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCmluZGV4IDdjZGM0NGZlOTQ2ODdiNmNmYjRm
MGRhMDA3MTg3YjM2ZTdkZTQ1NjkuLjA5NDcyNDBlNjNhNTZjYmNjYmUyY2EzZjM0MWVhZWI0ZDIy
OGYwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdy
YXBoLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1t
CkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRyYW5zZm9ybUdyYXBoKGlkIG9i
amVjdCwgY29uc3QgT2JqQ09iamVjdEdyYXBoOjpUcmFuc2Zvcm1lciYKIAogICAgIGlmIChOU0Rp
Y3Rpb25hcnkgKmRpY3Rpb25hcnkgPSBkeW5hbWljX29iamNfY2FzdDxOU0RpY3Rpb25hcnk+KG9i
amVjdCkpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgW2RpY3Rpb25h
cnkgZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOlsmdHJhbnNmb3JtZXIsICZyZXN1
bHRdKGlkIGtleSwgaWQgb2JqZWN0LCBCT09MKiBzdG9wKSB7CisgICAgICAgIFtkaWN0aW9uYXJ5
IGVudW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9jazpbJnRyYW5zZm9ybWVyLCAmcmVzdWx0
XShpZCwgaWQgb2JqZWN0LCBCT09MKiBzdG9wKSB7CiAgICAgICAgICAgICBpZiAoc2hvdWxkVHJh
bnNmb3JtR3JhcGgob2JqZWN0LCB0cmFuc2Zvcm1lcikpIHsKICAgICAgICAgICAgICAgICByZXN1
bHQgPSB0cnVlOwogICAgICAgICAgICAgICAgICpzdG9wID0gWUVTOwpAQCAtMTc1LDcgKzE3NSw3
IEBAIHZvaWQgT2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGlkIG9iamVjdCkKICAgICAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gb2Jq
ZWN0OwogCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGRpY3Rpb25h
cnkuY291bnQpOwotICAgICAgICBbZGljdGlvbmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1Vz
aW5nQmxvY2s6WyZlbmNvZGVyXShpZCBrZXksIGlkIG9iamVjdCwgQk9PTCAqc3RvcCkgeworICAg
ICAgICBbZGljdGlvbmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6WyZlbmNv
ZGVyXShpZCBrZXksIGlkIG9iamVjdCwgQk9PTCAqKSB7CiAgICAgICAgICAgICBlbmNvZGUoZW5j
b2Rlciwga2V5KTsKICAgICAgICAgICAgIGVuY29kZShlbmNvZGVyLCBvYmplY3QpOwogICAgICAg
ICB9XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVE
YXRhU3RvcmUuY3BwCmluZGV4IDhiZTA3MjgwYWY1MTE3ZmU5MGU0NWE1YzUwZWIwM2Q0YTQzNGMw
NjYuLjcyMzFhMzc0MmRiMTIyODMyZWZmMGVjN2NlYWRhMDcwNzJmNmQ4ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcApA
QCAtNzAsNyArNzAsNyBAQCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24g
V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNvbmZpZwogICAgIHJldHVybiBjb25m
aWd1cmF0aW9uOwogfQogCi1TdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6d2Vic2l0ZURhdGFEaXJl
Y3RvcnlGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RvcnlOYW1l
KQorU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OndlYnNpdGVEYXRhRGlyZWN0b3J5RmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dC4KICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KaW5kZXggMmJiNjk2NTZh
ZmExMzgwMDhiODhlMWY0ZTA3OTgyYzI0OWRkN2E5Mi4uNTFmYzIxNDRjMzI5MDQ3NGIxZDU2Mjk3
ZmIzYzlmZDYyOTU5ZWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQpAQCAtNDMsNyArNDMsNyBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1ib29sIFdLQ29udGV4dElzUGx1Z0luVXBkYXRl
QXZhaWxhYmxlKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBwbHVnSW5CdW5k
bGVJZGVudGlmaWVyUmVmKQorYm9vbCBXS0NvbnRleHRJc1BsdWdJblVwZGF0ZUF2YWlsYWJsZShX
S0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIHBsdWdJbkJ1bmRsZUlkZW50aWZpZXJSZWYpCiB7CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIHJldHVybiBmYWxzZTsKQEAgLTk1LDEyICs5NSwxMiBAQCB2
b2lkIFdLQ29udGV4dFJlc2V0SFNUU0hvc3RzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogCiAKIAot
dm9pZCBXS0NvbnRleHRSZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBzY2hlbWUpCit2b2lkIFdLQ29udGV4dFJlZ2lzdGVyU2No
ZW1lRm9yQ3VzdG9tUHJvdG9jb2woV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUpCiB7
CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyR2xvYmFsVVJMU2NoZW1lQXNIYXZpbmdDdXN0
b21Qcm90b2NvbEhhbmRsZXJzKHRvV1RGU3RyaW5nKHNjaGVtZSkpOwogfQogCi12b2lkIFdLQ29u
dGV4dFVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbChXS0NvbnRleHRSZWYgY29udGV4
dCwgV0tTdHJpbmdSZWYgc2NoZW1lKQordm9pZCBXS0NvbnRleHRVbnJlZ2lzdGVyU2NoZW1lRm9y
Q3VzdG9tUHJvdG9jb2woV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBzY2hlbWUpCiB7CiAgICAg
V2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJHbG9iYWxVUkxTY2hlbWVBc0hhdmluZ0N1c3RvbVBy
b3RvY29sSGFuZGxlcnModG9XVEZTdHJpbmcoc2NoZW1lKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyLm1tCmluZGV4IDZjNDlhYTcyZTM1ZDY4ODNhYmJkYzdlMzhiODNhZjc1ZTM2
ODEwMWEuLjc0OTczNTliMGJkNjNiYWMxYTg4MjcxODdmZGFmMGI5NDM0ZTJiYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC0zOTQsNyArMzk0LDcgQEAgLSAodm9pZClz
ZXRQYWdlWm9vbTooQ0dGbG9hdClwYWdlWm9vbQogICAgIF9wYWdlLT5zZXRQYWdlWm9vbUZhY3Rv
cihwYWdlWm9vbSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJh
bWUpKQogICAgICAgICByZXR1cm47CkBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGljIHZvaWQgZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0sKICAgICAgICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVy
RGlkU3RhcnRQcm92aXNpb25hbExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAotc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tU
eXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFp
bkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRp
YyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZDpicm93
c2luZ0NvbnRleHRdOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JS
ZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0
YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkp
CiAgICAgICAgIHJldHVybjsKQEAgLTQzMCw3ICs0MzAsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWls
UHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZgogICAgICAgICBbbG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJv
d3NpbmdDb250ZXh0IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3I6d3JhcHBlcigqdG9J
bXBsKGVycm9yKSldOwogfQogCi1zdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTQ0Miw3ICs0NDIsNyBAQCBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1cwogICAgICAgICBb
bG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDb21taXRMb2FkOmJyb3dz
aW5nQ29udGV4dF07CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNDU0LDcgKzQ1NCw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzCiAgICAgICAgIFts
b2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaExvYWQ6YnJvd3Np
bmdDb250ZXh0XTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tU
eXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
RXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAg
ICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ2
Niw3ICs0NjYsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0VycgogICAgICAgICBbbG9hZERlbGVn
YXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3NpbmdDb250ZXh0IGRpZEZhaWxMb2Fk
V2l0aEVycm9yOndyYXBwZXIoKnRvSW1wbChlcnJvcikpXTsKIH0KIAotc3RhdGljIGJvb2wgY2Fu
QXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2VJbkZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tQcm90ZWN0
aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewog
ICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdh
dGUgPSBicm93c2luZ0NvbnRleHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC00NzcsNyArNDc3
LDcgQEAgc3RhdGljIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUlu
RnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYg
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMg
dm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9hZERlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0
LT5fbG9hZERlbGVnYXRlLmdldCgpOwpAQCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYKICAgICAgICAgWyhpZCA8V0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2
YXRlPilsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2luZ0NvbnRl
eHQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOndyYXBwZXIoKnRvSW1wbChhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkU3RhcnRQcm9ncmVz
cyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRp
ZFN0YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUg
PSBicm93c2luZ0NvbnRleHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC01MDQsNyArNTA0LDcg
QEAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlcjpicm93c2luZ0NvbnRleHQgZXN0aW1hdGVkUHJvZ3Jlc3NDaGFuZ2VkVG86dG9JbXBs
KHBhZ2UpLT5lc3RpbWF0ZWRQcm9ncmVzcygpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNo
UHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMg
dm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CiB7CiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAo
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWRE
ZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTUxMyw3
ICs1MTMsNyBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICAgICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0Nv
bnRleHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAot
c3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJk
TGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJy
YXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBicm93
c2luZ0NvbnRleHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC01MjYsNyArNTI2LDcgQEAgc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgYWQKICAgICBbbG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q6YnJvd3NpbmdDb250ZXh0IGFkZGVkSXRl
bTphZGRlZCByZW1vdmVkSXRlbXM6cmVtb3ZlZF07CiB9CiAKLXN0YXRpYyB2b2lkIHByb2Nlc3NE
aWRDcmFzaChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2
b2lkIHByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWREZWxl
Z2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTU5Myw3ICs1
OTMsNyBAQCBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQsCiAgICAgcG9saWN5Q2xpZW50LmJhc2UudmVy
c2lvbiA9IDI7CiAgICAgcG9saWN5Q2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IGJyb3dzaW5nQ29u
dGV4dDsKIAotICAgIHBvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
ID0gW10oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9u
VHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRN
b3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1lLCBXS1VS
TFJlcXVlc3RSZWYgb3JpZ2luYWxSZXF1ZXN0LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tG
cmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCisgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gPSBbXShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZp
Z2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1l
LCBXS1VSTFJlcXVlc3RSZWYgb3JpZ2luYWxSZXF1ZXN0LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiAgICAgewogICAgICAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGll
bnRJbmZvOwogICAgICAgICBhdXRvIHBvbGljeURlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5f
cG9saWN5RGVsZWdhdGUuZ2V0KCk7CkBAIC02MTgsNyArNjE4LDcgQEAgc3RhdGljIHZvaWQgc2V0
VXBQYWdlUG9saWN5Q2xpZW50KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdD
b250ZXh0LAogICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsK
ICAgICB9OwogCi0gICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
biA9IFtdKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlv
blR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmlu
Z1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHBvbGljeUNsaWVudC5k
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24gPSBbXShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlm
aWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1
ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAg
ewogICAgICAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9
IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgICAgICBhdXRv
IHBvbGljeURlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5fcG9saWN5RGVsZWdhdGUuZ2V0KCk7
CkBAIC02MzgsNyArNjM4LDcgQEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5Q2xpZW50KFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LAogICAgICAgICAgICAg
V0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKICAgICB9OwogCi0gICAgcG9saWN5
Q2xpZW50LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlID0gW10oV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiBy
ZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCisgICAg
cG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlID0gW10oV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHsKICAgICAg
ICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICAgICAgYXV0byBwb2xpY3lE
ZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X3BvbGljeURlbGVnYXRlLmdldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8ubW0KaW5kZXgg
NDY0Mjk1MTg0NTIzZmExNWY1MDk0MmZhNGZhZTEwMjA4MzIyOGE0NC4uMGQwZWQ5OGRjYjM1OTJm
MTUzMjQwODVkOGZlZDg2ZjAyMjdkYTM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLm1tCkBAIC02MCw2ICs2MCw3IEBAIC0gKE5TVVJM
UmVxdWVzdCAqKXJlcXVlc3QKIAogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7
CisgICAgVU5VU0VEX1BBUkFNKHpvbmUpOwogICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0
Lm1tCmluZGV4IDRjMjcxNmNhZmNjMjlmY2Q1MDIwNjRkM2I3YWRhNzE1MzIwOGU0MDEuLjg0M2My
N2VkY2ZmYWQ5MzMyM2YyYmZkMGEwZDYwMzM1NGU0MzI3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCkBAIC01Nyw2ICs1Nyw3
IEBAIC0gKEJPT0wpaXNGb3JNYWluRnJhbWVPbmx5CiAKIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNa
b25lICopem9uZQogeworICAgIFVOVVNFRF9QQVJBTSh6b25lKTsKICAgICByZXR1cm4gW3NlbGYg
cmV0YWluXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCBjM2I3NjBhNmYzZjE0OTRjZGI0YzQ0NGZlMDQwOWU3NzJhZmM5NDNi
Li5jNTcxOTdlYTZlZjkzNDk3NjcyZTEwY2Q0NTE0YzcxZGIzY2I2NTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzczLDYgKzM3
Myw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmln
dXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aENvZGVyOihOU0NvZGVyICopY29kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oY29kZXIpOwogICAg
IFtzZWxmIHJlbGVhc2VdOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC0xNTY5LDYgKzE1NzAsNyBA
QCAtIChCT09MKWFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzCiAKIC0gKHZvaWQp
cmVzaXplU3Vidmlld3NXaXRoT2xkU2l6ZTooTlNTaXplKW9sZFNpemUKIHsKKyAgICBVTlVTRURf
UEFSQU0ob2xkU2l6ZSk7CiAgICAgW193a1ZpZXcgc2V0RnJhbWU6c2VsZi5ib3VuZHNdOwogfQog
CkBAIC0xODEwLDYgKzE4MTIsOCBAQCAtICh2b2lkKV9zZXRBbGxvd3NSZW1vdGVJbnNwZWN0aW9u
OihCT09MKWFsbG93CiB7CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgX3BhZ2Ut
PnNldEFsbG93c1JlbW90ZUluc3BlY3Rpb24oYWxsb3cpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oYWxsb3cpOwogI2VuZGlmCiB9CiAKQEAgLTIwNjcsNyArMjA3MSw3IEBAIC0gKHZvaWQpX3Nl
dEZvcm1EZWxlZ2F0ZTooaWQgPF9XS0Zvcm1EZWxlZ2F0ZT4pZm9ybURlbGVnYXRlCiAKICAgICAg
ICAgdmlydHVhbCB+Rm9ybUNsaWVudCgpIHsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxs
U3VibWl0Rm9ybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSYgc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8V1RGOjpTdHJpbmcsIFdURjo6U3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBSZWY8V2ViS2l0OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk+
JiYgbGlzdGVuZXIpIG92ZXJyaWRlCisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU3VibWl0Rm9y
bShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdlYktpdDo6
V2ViRnJhbWVQcm94eSYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdURjo6
U3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBSZWY8V2Vi
S2l0OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIpIG92ZXJyaWRl
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh1c2VyRGF0YSAmJiB1c2VyRGF0YS0+dHlwZSgp
ICE9IEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCF1
c2VyRGF0YSB8fCB1c2VyRGF0YS0+dHlwZSgpID09IEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhKTsK
QEAgLTI1ODAsMjYgKzI1ODQsMzEgQEAgLSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVt
OihpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4paXRlbQogCiAtIChJQkFjdGlvbiln
b0JhY2s6KGlkKXNlbmRlcgogeworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIFtzZWxm
IGdvQmFja107CiB9CiAKIC0gKElCQWN0aW9uKWdvRm9yd2FyZDooaWQpc2VuZGVyCiB7CisgICAg
VU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgW3NlbGYgZ29Gb3J3YXJkXTsKIH0KIAogLSAoSUJB
Y3Rpb24pcmVsb2FkOihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAg
ICBbc2VsZiByZWxvYWRdOwogfQogCiAtIChJQkFjdGlvbilyZWxvYWRGcm9tT3JpZ2luOihpZClz
ZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBbc2VsZiByZWxvYWRGcm9t
T3JpZ2luXTsKIH0KIAogLSAoSUJBY3Rpb24pc3RvcExvYWRpbmc6KGlkKXNlbmRlcgogeworICAg
IFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIF9wYWdlLT5zdG9wTG9hZGluZygpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IGNjMWRiMzFkYjg1NDMzNWRjYWYz
MTliY2RjYzNjZjBmMjcxYTQ3ZTUuLmU0Y2Q1Y2RhOTY2NzA1YTM1NDBkZjAyZTBjNjFkMWYzZDQz
ODMyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0xMDgsNiArMTA4
LDcgQEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5T
Wm9uZSAqKXpvbmUKIHsKKyAgICBVTlVTRURfUEFSQU0oem9uZSk7CiAgICAgcmV0dXJuIHdyYXBw
ZXIoX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+Y29weSgpLmxlYWtSZWYoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWls
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWls
Vmlldy5tbQppbmRleCBkZjkzMjNmMTJhMjA2ZDlhZWY2MTUzYWRlNGM3MTdkMjFiMjcwZTY0Li40
NWIwMTIzZWNmNWE5OGI5OWIwNjA2NzdmZWRmOWQ1MjY4NzQzZjFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tCkBA
IC0xNjMsNiArMTYzLDcgQEAgLSAodm9pZClzZXRTY2FsZTooQ0dGbG9hdClzY2FsZQogLy8gVGhp
cyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGFsbCBjbGllbnRzIGdvIGF3YXk7IGl0IGlzIGFsd2F5
cyBZRVMgbm93LgogLSAodm9pZClzZXRVc2VzU25hcHNob3Q6KEJPT0wpdXNlc1NuYXBzaG90CiB7
CisgICAgVU5VU0VEX1BBUkFNKHVzZXNTbmFwc2hvdCk7CiB9CiAKIC0gKEJPT0wpdXNlc1NuYXBz
aG90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNzYz
ZWU2OTBiZjI5MGQ5ZmNjYjdmMTIwODk1NWFkZTRiMDAwZGU0Yy4uYzVlMmMzNWZiOWRhNDBlNGFi
YzlhNDIyZmNmMmU0Yzk3ZGQ4MzUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtNTc2LDcgKzU3Niw3IEBAIHN0YXRpYyBTdHJpbmcgY29tbWFuZE5h
bWVGb3JTZWxlY3RvcihTRUwgc2VsZWN0b3IpCiAKIC8vIEVkaXRpbmcgY29tbWFuZHMKIAotI2Rl
ZmluZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21tYW5kOihpZClzZW5kZXIg
eyBfZGF0YS0+X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZvclNlbGVjdG9y
KF9jbWQpKTsgfQorI2RlZmluZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21t
YW5kOihpZClzZW5kZXIgeyBVTlVTRURfUEFSQU0oc2VuZGVyKTsgX2RhdGEtPl9wYWdlLT5leGVj
dXRlRWRpdENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3RvcihfY21kKSk7IH0KIAogV0VCQ09S
RV9DT01NQU5EKGFsaWduQ2VudGVyKQogV0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQpA
QCAtNzAwLDYgKzcwMCw3IEBAIC0gKEJPT0wpd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQ6KE5T
UGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgdHlwZXM6KE5TQXJyYXkgKil0CiAKIC0gKHZvaWQpY2Vu
dGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyIAogeyAKKyAgICBVTlVTRURfUEFS
QU0oc2VuZGVyKTsKICAgICBfZGF0YS0+X3BhZ2UtPmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFy
ZWEoKTsKIH0KIApAQCAtODkyLDYgKzg5Myw3IEBAIC0gKEJPT0wpdmFsaWRhdGVVc2VySW50ZXJm
YWNlSXRlbTooaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+KWl0ZW0KIAogLSAoSUJB
Y3Rpb24pc3RhcnRTcGVha2luZzooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRl
cik7CiAgICAgX2RhdGEtPl9wYWdlLT5nZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoW3Nl
bGZdKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAg
ICAgICAgIGlmIChlcnJvciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtOTI3LDYgKzkyOSw3IEBAIC0gKElCQWN0aW9uKXNob3dHdWVzc1BhbmVs
OihpZClzZW5kZXIKIAogLSAoSUJBY3Rpb24pY2hlY2tTcGVsbGluZzooaWQpc2VuZGVyCiB7Cisg
ICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT5hZHZhbmNlVG9OZXh0
TWlzc3BlbGxpbmcoZmFsc2UpOwogfQogCkBAIC05MzksNiArOTQyLDcgQEAgLSAodm9pZCljaGFu
Z2VTcGVsbGluZzooaWQpc2VuZGVyCiAKIC0gKElCQWN0aW9uKXRvZ2dsZUNvbnRpbnVvdXNTcGVs
bENoZWNraW5nOihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBi
b29sIHNwZWxsQ2hlY2tpbmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRDb250aW51b3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQpOwogCkBAIC05NjEsNiAr
OTY1LDcgQEAgLSAodm9pZClzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcKIAog
LSAoSUJBY3Rpb24pdG9nZ2xlR3JhbW1hckNoZWNraW5nOihpZClzZW5kZXIKIHsKKyAgICBVTlVT
RURfUEFSQU0oc2VuZGVyKTsKICAgICBib29sIGdyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSAhVGV4
dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRDaGVj
a2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGdyYW1tYXJDaGVja2luZ0VuYWJsZWQpOwog
CkBAIC05NjksNiArOTc0LDcgQEAgLSAoSUJBY3Rpb24pdG9nZ2xlR3JhbW1hckNoZWNraW5nOihp
ZClzZW5kZXIKIAogLSAoSUJBY3Rpb24pdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9u
OihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBUZXh0Q2hlY2tl
cjo6c2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0
YXRlKCkuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKIAogICAgIF9kYXRh
LT5fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKQEAgLTk5Miw2ICs5
OTgsNyBAQCAtICh2b2lkKW9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFuZWw6KGlkKXNlbmRlcgog
CiAtIChJQkFjdGlvbil0b2dnbGVTbWFydEluc2VydERlbGV0ZTooaWQpc2VuZGVyCiB7CisgICAg
VU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT5zZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoIV9kYXRhLT5fcGFnZS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSk7
CiB9CiAKQEAgLTEwMTEsNiArMTAxOCw3IEBAIC0gKHZvaWQpc2V0QXV0b21hdGljUXVvdGVTdWJz
dGl0dXRpb25FbmFibGVkOihCT09MKWZsYWcKIAogLSAodm9pZCl0b2dnbGVBdXRvbWF0aWNRdW90
ZVN1YnN0aXR1dGlvbjooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CiAg
ICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4
dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwog
ICAgIF9kYXRhLT5fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0K
QEAgLTEwMzEsNiArMTAzOSw3IEBAIC0gKHZvaWQpc2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlv
bkVuYWJsZWQ6KEJPT0wpZmxhZwogCiAtICh2b2lkKXRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb246KGlkKXNlbmRlcgogeworICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIFRleHRD
aGVja2VyOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6
OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk7CiAgICAgX2RhdGEt
Pl9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQpAQCAtMTA1MSw2
ICsxMDYwLDcgQEAgLSAodm9pZClzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZDooQk9P
TClmbGFnCiAKIC0gKHZvaWQpdG9nZ2xlQXV0b21hdGljTGlua0RldGVjdGlvbjooaWQpc2VuZGVy
CiB7CisgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKTsKICAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRh
dGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CkBAIC0xMDcxLDIyICsxMDgxLDI2IEBAIC0gKHZvaWQp
c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZDooQk9PTClmbGFnCiAKIC0gKHZvaWQp
dG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50OihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURf
UEFSQU0oc2VuZGVyKTsKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2Vt
ZW50RW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1l
bnRFbmFibGVkKTsKICAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tl
clN0YXRlKCk7CiB9CiAKIC0gKHZvaWQpdXBwZXJjYXNlV29yZDooaWQpc2VuZGVyCiB7CisgICAg
VU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT51cHBlcmNhc2VXb3JkKCk7
CiB9CiAKIC0gKHZvaWQpbG93ZXJjYXNlV29yZDooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BB
UkFNKHNlbmRlcik7CiAgICAgX2RhdGEtPl9wYWdlLT5sb3dlcmNhc2VXb3JkKCk7CiB9CiAKIC0g
KHZvaWQpY2FwaXRhbGl6ZVdvcmQ6KGlkKXNlbmRlcgogeworICAgIFVOVVNFRF9QQVJBTShzZW5k
ZXIpOwogICAgIF9kYXRhLT5fcGFnZS0+Y2FwaXRhbGl6ZVdvcmQoKTsKIH0KIApAQCAtMTExNSw2
ICsxMTI5LDcgQEAgLSAodm9pZClkaXNwbGF5SWZOZWVkZWQKIC8vIHN1cHBvcnQgdGhlbSB2aWEg
dGhlIGtleSBiaW5kaW5ncyBtZWNoYW5pc20uCiAtIChCT09MKV93YW50c0tleURvd25Gb3JFdmVu
dDooTlNFdmVudCAqKWV2ZW50CiB7CisgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1
cm4gWUVTOwogfQogCkBAIC0yMzEyLDYgKzIzMjcsNyBAQCAtIChOU0FycmF5ICopdmFsaWRBdHRy
aWJ1dGVzRm9yTWFya2VkVGV4dAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAtICh2b2lkKWRy
YWdnZWRJbWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgZW5kZWRBdDooTlNQb2ludClhUG9pbnQgb3Bl
cmF0aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKGFu
SW1hZ2UpOwogICAgIE5TUG9pbnQgd2luZG93SW1hZ2VMb2MgPSBbW3NlbGYgd2luZG93XSBjb252
ZXJ0U2NyZWVuVG9CYXNlOmFQb2ludF07CiAgICAgTlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdp
bmRvd0ltYWdlTG9jOwogICAgCkBAIC0yMzc3LDYgKzIzOTMsNyBAQCAtICh2b2lkKWRyYWdnaW5n
RXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogCiAtIChCT09MKXByZXBh
cmVGb3JEcmFnT3BlcmF0aW9uOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewor
ICAgIFVOVVNFRF9QQVJBTShkcmFnZ2luZ0luZm8pOwogICAgIHJldHVybiBZRVM7CiB9CiAKQEAg
LTI0NDUsNiArMjQ2Miw3IEBAIC0gKEJPT0wpcGVyZm9ybURyYWdPcGVyYXRpb246KGlkIDxOU0Ry
YWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCiAvLyBpbiB0aGUgZHJhZyBwYXN0ZWJvYXJkIGF1dG9t
YXRpY2FsbHkgd2hlbiB0aGUgZHJhZyBzdGFydCAoaS5lLiBkcmFnZ2luZyBhIERJViBlbGVtZW50
KS4KIC0gKE5TVmlldyAqKV9oaXRUZXN0OihOU1BvaW50ICopcG9pbnQgZHJhZ1R5cGVzOihOU1Nl
dCAqKXR5cGVzCiB7CisgICAgVU5VU0VEX1BBUkFNKHR5cGVzKTsKICAgICBpZiAoW1tzZWxmIHN1
cGVydmlld10gbW91c2U6KnBvaW50IGluUmVjdDpbc2VsZiBmcmFtZV1dKQogICAgICAgICByZXR1
cm4gc2VsZjsKICAgICByZXR1cm4gbmlsOwpAQCAtMjYwMSwxNiArMjYxOSwxOSBAQCAtICh2b2lk
KV93aW5kb3dEaWRCZWNvbWVLZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAKIC0g
KHZvaWQpX3dpbmRvd0RpZENoYW5nZVNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBbc2VsZiBkb1dpbmRv
d0RpZENoYW5nZVNjcmVlbl07CiB9CiAKIC0gKHZvaWQpX3dpbmRvd0RpZENoYW5nZUxheWVySG9z
dGluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPmxheWVySG9zdGluZ01vZGVEaWRDaGFu
Z2UoKTsKIH0KIAogLSAodm9pZClfd2luZG93RGlkUmVzaWduS2V5OihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIE5T
V2luZG93ICpmb3JtZXJLZXlXaW5kb3cgPSBbbm90aWZpY2F0aW9uIG9iamVjdF07CiAgICAgaWYg
KGZvcm1lcktleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGZvcm1lcktleVdpbmRvdyA9PSBb
W3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkgewogICAgICAgICBbc2VsZiBfdXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZV07CkBAIC0yNjIwLDMxICsyNjQxLDM3IEBAIC0gKHZvaWQpX3dpbmRvd0Rp
ZFJlc2lnbktleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIAogLSAodm9pZClfd2lu
ZG93RGlkTWluaWF0dXJpemU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CisgICAg
VU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVE
aWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwogfQogCiAtICh2b2lkKV93aW5kb3dEaWRE
ZW1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNF
RF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hh
bmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogLSAodm9pZClfd2luZG93RGlkTW92ZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZp
Y2F0aW9uKTsKICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107ICAgIAogfQog
CiAtICh2b2lkKV93aW5kb3dEaWRSZXNpemU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
CiB7CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgW3NlbGYgX3VwZGF0ZVdp
bmRvd0FuZFZpZXdGcmFtZXNdOwogfQogCiAtICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVl
bjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90
aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3Rh
dGU6OklzVmlzaWJsZSB8IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogfQogCiAtICh2b2lk
KV93aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgog
eworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIF9kYXRhLT5fcGFnZS0+dmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgVmlld1N0YXRlOjpXaW5kb3dJ
c0FjdGl2ZSk7CiB9CiAKQEAgLTI2NjEsMTIgKzI2ODgsMTQgQEAgLSAodm9pZClfd2luZG93RGlk
Q2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAtICh2b2lkKV93aW5k
b3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
IHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAjZW5kaWYKIAogLSAo
dm9pZClkcmF3UmVjdDooTlNSZWN0KXJlY3QKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CiAg
ICAgTE9HKFZpZXcsICJkcmF3UmVjdDogeDolZywgeTolZywgd2lkdGg6JWcsIGhlaWdodDolZyIs
IHJlY3Qub3JpZ2luLngsIHJlY3Qub3JpZ2luLnksIHJlY3Quc2l6ZS53aWR0aCwgcmVjdC5zaXpl
LmhlaWdodCk7CiAgICAgX2RhdGEtPl9wYWdlLT5lbmRQcmludGluZygpOwogfQpAQCAtMjcwNiwx
NiArMjczNSwxOSBAQCAtICh2b2lkKXZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcwogCiAt
ICh2b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIC0gKHZvaWQp
X2FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
IHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBfZGF0YS0+X3BhZ2UtPnBy
b2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogfQogCiAt
ICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24g
Kilub3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBb
c2VsZiBfc2V0VGV4dEluZGljYXRvcjpuaWwgZmFkZU91dDpOT107CiB9CiAKQEAgLTI3NjksNiAr
MjgwMSw3IEBAIC0gKEJPT0wpYWNjZXNzaWJpbGl0eUlzSWdub3JlZAogCiAtIChpZClhY2Nlc3Np
YmlsaXR5SGl0VGVzdDooTlNQb2ludClwb2ludAogeworICAgIFVOVVNFRF9QQVJBTShwb2ludCk7
CiAgICAgW3NlbGYgZW5hYmxlQWNjZXNzaWJpbGl0eUlmTmVjZXNzYXJ5XTsKICAgICByZXR1cm4g
X2RhdGEtPl9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQuZ2V0KCk7CiB9CkBAIC0yOTgzLDYgKzMw
MTYsOCBAQCAtIChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0KXJlY3QKIAogLSAo
TlNUcmFja2luZ1JlY3RUYWcpYWRkVHJhY2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQp
b3duZXIgdXNlckRhdGE6KHZvaWQgKilkYXRhIGFzc3VtZUluc2lkZTooQk9PTClhc3N1bWVJbnNp
ZGUKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFzc3VtZUlu
c2lkZSk7CiAgICAgQVNTRVJUKF9kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgPT0gbmlsKTsKICAg
ICBfZGF0YS0+X3RyYWNraW5nUmVjdE93bmVyID0gb3duZXI7CiAgICAgX2RhdGEtPl90cmFja2lu
Z1JlY3RVc2VyRGF0YSA9IGRhdGE7CkBAIC0yOTkxLDcgKzMwMjYsOSBAQCAtIChOU1RyYWNraW5n
UmVjdFRhZylhZGRUcmFja2luZ1JlY3Q6KE5TUmVjdClyZWN0IG93bmVyOihpZClvd25lciB1c2Vy
RGF0YToodm9pZAogCiAtIChOU1RyYWNraW5nUmVjdFRhZylfYWRkVHJhY2tpbmdSZWN0OihOU1Jl
Y3QpcmVjdCBvd25lcjooaWQpb3duZXIgdXNlckRhdGE6KHZvaWQgKilkYXRhIGFzc3VtZUluc2lk
ZTooQk9PTClhc3N1bWVJbnNpZGUgdXNlVHJhY2tpbmdOdW06KGludCl0YWcKIHsKLSAgICBBU1NF
UlQodGFnID09IDAgfHwgdGFnID09IFRSQUNLSU5HX1JFQ1RfVEFHKTsKKyAgICBVTlVTRURfUEFS
QU0ocmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGFzc3VtZUluc2lkZSk7CisgICAgQVNTRVJUX1VO
VVNFRCh0YWcsIHRhZyA9PSAwIHx8IHRhZyA9PSBUUkFDS0lOR19SRUNUX1RBRyk7CiAgICAgQVNT
RVJUKF9kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgPT0gbmlsKTsKICAgICBfZGF0YS0+X3RyYWNr
aW5nUmVjdE93bmVyID0gb3duZXI7CiAgICAgX2RhdGEtPl90cmFja2luZ1JlY3RVc2VyRGF0YSA9
IGRhdGE7CkBAIC0zMDAwLDYgKzMwMzcsOSBAQCAtIChOU1RyYWNraW5nUmVjdFRhZylfYWRkVHJh
Y2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQpb3duZXIgdXNlckRhdGE6KHZvaQogCiAt
ICh2b2lkKV9hZGRUcmFja2luZ1JlY3RzOihOU1JlY3QgKilyZWN0cyBvd25lcjooaWQpb3duZXIg
dXNlckRhdGFMaXN0Oih2b2lkICoqKXVzZXJEYXRhTGlzdCBhc3N1bWVJbnNpZGVMaXN0OihCT09M
ICopYXNzdW1lSW5zaWRlTGlzdCB0cmFja2luZ051bXM6KE5TVHJhY2tpbmdSZWN0VGFnICopdHJh
Y2tpbmdOdW1zIGNvdW50OihpbnQpY291bnQKIHsKKyAgICBVTlVTRURfUEFSQU0ocmVjdHMpOwor
ICAgIFVOVVNFRF9QQVJBTShhc3N1bWVJbnNpZGVMaXN0KTsKKyAgICBVTlVTRURfUEFSQU0oY291
bnQpOwogICAgIEFTU0VSVChjb3VudCA9PSAxKTsKICAgICBBU1NFUlQodHJhY2tpbmdOdW1zWzBd
ID09IDAgfHwgdHJhY2tpbmdOdW1zWzBdID09IFRSQUNLSU5HX1JFQ1RfVEFHKTsKICAgICBBU1NF
UlQoX2RhdGEtPl90cmFja2luZ1JlY3RPd25lciA9PSBuaWwpOwpAQCAtMzA3OCw2ICszMTE4LDEw
IEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkCiAKIC0gKE5TU3RyaW5nICopdmll
dzooTlNWaWV3ICopdmlldyBzdHJpbmdGb3JUb29sVGlwOihOU1Rvb2xUaXBUYWcpdGFnIHBvaW50
OihOU1BvaW50KXBvaW50IHVzZXJEYXRhOih2b2lkICopZGF0YQogeworICAgIFVOVVNFRF9QQVJB
TSh2aWV3KTsKKyAgICBVTlVTRURfUEFSQU0odGFnKTsKKyAgICBVTlVTRURfUEFSQU0ocG9pbnQp
OworICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICAgICByZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29y
ZVN0cmluZyhfZGF0YS0+X3BhZ2UtPnRvb2xUaXAoKSk7CiB9CiAKQEAgLTMzMjYsNiArMzM3MCw3
IEBAIC0gKHZvaWQpX3NldFByb21pc2VkRGF0YTooV2ViQ29yZTo6SW1hZ2UgKilpbWFnZSB3aXRo
RmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZW5hCiAKIC0gKHZvaWQpcGFzdGVib2FyZENoYW5nZWRP
d25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogeworICAgIFVOVVNFRF9QQVJBTShwYXN0
ZWJvYXJkKTsKICAgICBfZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSAwOwogICAgIF9kYXRhLT5fcHJv
bWlzZWRGaWxlbmFtZSA9ICIiOwogICAgIF9kYXRhLT5fcHJvbWlzZWRVUkwgPSAiIjsKQEAgLTQz
MjksMTYgKzQzNzQsMjIgQEAgLSAodm9pZClfc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFj
azoodm9pZCheKShDR1JlY3QpKWNhbGxiYWNrCiAKIC0gKE5TQXJyYXkgKilfYWN0aW9uTWVudUl0
ZW1zRm9ySGl0VGVzdFJlc3VsdDooV0tIaXRUZXN0UmVzdWx0UmVmKWhpdFRlc3RSZXN1bHQgd2l0
aFR5cGU6KF9XS0FjdGlvbk1lbnVUeXBlKXR5cGUgZGVmYXVsdEFjdGlvbk1lbnVJdGVtczooTlNB
cnJheSAqKWRlZmF1bHRNZW51SXRlbXMKIHsKKyAgICBVTlVTRURfUEFSQU0oaGl0VGVzdFJlc3Vs
dCk7CisgICAgVU5VU0VEX1BBUkFNKHR5cGUpOwogICAgIHJldHVybiBkZWZhdWx0TWVudUl0ZW1z
OwogfQogCiAtIChOU0FycmF5ICopX2FjdGlvbk1lbnVJdGVtc0ZvckhpdFRlc3RSZXN1bHQ6KFdL
SGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOihfV0tBY3Rpb25NZW51VHlw
ZSl0eXBlIGRlZmF1bHRBY3Rpb25NZW51SXRlbXM6KE5TQXJyYXkgKilkZWZhdWx0TWVudUl0ZW1z
IHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGEKIHsKKyAgICBVTlVTRURfUEFSQU0odXNlckRh
dGEpOwogICAgIHJldHVybiBbc2VsZiBfYWN0aW9uTWVudUl0ZW1zRm9ySGl0VGVzdFJlc3VsdDpo
aXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgZGVmYXVsdEFjdGlvbk1lbnVJdGVtczpkZWZhdWx0
TWVudUl0ZW1zXTsKIH0KIAogLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JIaXRUZXN0UmVzdWx0OihXS0hpdFRlc3RSZXN1bHRSZWYpaGl0VGVzdFJlc3VsdCB3aXRo
VHlwZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNl
ckRhdGEKIHsKKyAgICBVTlVTRURfUEFSQU0oaGl0VGVzdFJlc3VsdCk7CisgICAgVU5VU0VEX1BB
UkFNKHR5cGUpOworICAgIFVOVVNFRF9QQVJBTSh1c2VyRGF0YSk7CiAgICAgcmV0dXJuIG5pbDsK
IH0KIApAQCAtNDQxOCwxNiArNDQ2OSwyMCBAQCAtIChib29sKWRpZFJlY2VpdmVVbmhhbmRsZWRD
b21tYW5kCiAKIC0gKHZvaWQpbm9SZXNwb25kZXJGb3I6KFNFTClzZWxlY3RvcgogeworICAgIFVO
VVNFRF9QQVJBTShzZWxlY3Rvcik7CiAgICAgX2RpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kID0g
dHJ1ZTsKIH0KIAogLSAodm9pZClkb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsK
KyAgICBVTlVTRURfUEFSQU0oc2VsZWN0b3IpOwogICAgIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29t
bWFuZCA9IHRydWU7CiB9CiAKIC0gKEJPT0wpdHJ5VG9QZXJmb3JtOihTRUwpYWN0aW9uIHdpdGg6
KGlkKW9iamVjdAogeworICAgIFVOVVNFRF9QQVJBTShhY3Rpb24pOworICAgIFVOVVNFRF9QQVJB
TShvYmplY3QpOwogICAgIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZCA9IHRydWU7CiAgICAg
cmV0dXJuIFlFUzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLm1tCmluZGV4IDM0ZjQwOWU1M2Q2ZDZiODZlZGFlM2Y2M2ViOTUyMzM4OWEx
MGY5MTIuLjIyMTk2YmY1ZTUyY2E4Njk2MWEwMTY1MWJjM2ZlYjIyM2YzNjI2MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAt
MjIyLDcgKzIyMiw3IEBAIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50Ojp+UG9saWN5Q2xp
ZW50KCkKIHsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5KiBk
ZXN0aW5hdGlvbkZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIFdlYkZyYW1lUHJveHkqIHNvdXJjZUZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVy
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYsIFdlYkZy
YW1lUHJveHkqIGRlc3RpbmF0aW9uRnJhbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb25EYXRhJiBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViRnJhbWVQcm94eSogc291cmNlRnJhbWUsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+
JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KikKIHsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0
PiBuc1VSTFJlcXVlc3QgPSBhZG9wdE5TKHdyYXBwZXIoKkFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRl
KHJlcXVlc3QpLmxlYWtSZWYoKSkpOwogCkBAIC0yOTEsMTIgKzI5MSwxMiBAQCB2b2lkIE5hdmln
YXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KFdlYlBhZ2VQcm94eQogICAgIH1dOwogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViUGFnZVByb3h5JiB3ZWJQ
YWdlUHJveHksIFdlYkZyYW1lUHJveHkmIHNvdXJjZUZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgUmVmPFdlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQor
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6OlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBXZWJGcmFtZVByb3h5JiBzb3Vy
Y2VGcmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEmIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdURjo6U3Ry
aW5nJiwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhKQogewogICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
d2ViUGFnZVByb3h5LCBudWxscHRyLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgJnNvdXJjZUZyYW1l
LCByZXF1ZXN0LCByZXF1ZXN0LCBXVEY6Om1vdmUobGlzdGVuZXIpLCB1c2VyRGF0YSk7CiB9CiAK
LXZvaWQgTmF2aWdhdGlvblN0YXRlOjpQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFJlZjxXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSkKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFJlZjxX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KikKIHsK
ICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5kbGVyKSB7
CiAgICAgICAgIE5TVVJMICp1cmwgPSByZXNvdXJjZVJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKS5V
Ukw7CkBAIC0zNjMsNyArMzYzLDcgQEAgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6On5M
b2FkZXJDbGllbnQoKQogewogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
RnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBB
UEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdl
YkZyYW1lUHJveHksIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmplY3QqKQog
ewogICAgIGlmICghd2ViRnJhbWVQcm94eS5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47
CkBAIC0zODMsNyArMzgzLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkKICAgICBbbmF2aWdh
dGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOndrTmF2aWdhdGlvbl07CiB9CiAKLXZvaWQgTmF2aWdhdGlv
blN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0
KikKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYktpdDo6
V2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9u
LCBBUEk6Ok9iamVjdCopCiB7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5LmlzTWFpbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTQxNyw3ICs0MTcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5T
RXJyb3I+IGNyZWF0ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmll
dywgVwogICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46
b3JpZ2luYWxFcnJvci5kb21haW4gY29kZTpvcmlnaW5hbEVycm9yLmNvZGUgdXNlckluZm86dXNl
ckluZm8uZ2V0KCldKTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0
aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqKQor
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1l
UHJveHksIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIEFQSTo6T2JqZWN0KikKIHsKICAgICBpZiAoIXdlYkZyYW1lUHJveHku
aXNNYWluRnJhbWUoKSkgewogICAgICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TmF2aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExv
YWRJblN1YmZyYW1lV2l0aEVycm9yKQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHZvaWQgTmF2aWdhdGlv
blN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JG
cmFtZShXZWJQCiAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0
YXRlLm1fd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOndrTmF2aWdhdGlvbi5n
ZXQoKSB3aXRoRXJyb3I6ZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCldOwogfQogCi12
b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5h
dmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KikKK3ZvaWQgTmF2aWdhdGlvblN0YXRl
OjpMb2FkZXJDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJG
cmFtZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQ
STo6T2JqZWN0KikKIHsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkuaXNNYWluRnJhbWUoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpM
b2FkZXJDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
CiAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2Vi
VmlldyBkaWRDb21taXROYXZpZ2F0aW9uOndrTmF2aWdhdGlvbl07CiB9CiAKLXZvaWQgTmF2aWdh
dGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6
TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRp
b24sIEFQSTo6T2JqZWN0KikKIHsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkuaXNNYWluRnJhbWUo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYlBhZ2VQ
cm94eSYKICAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+
KG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93
ZWJWaWV3IG5hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQ6d2tOYXZpZ2F0aW9uXTsKIH0K
IAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5Jiwg
V2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9u
LCBBUEk6Ok9iamVjdCopCiB7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5LmlzTWFpbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTUwOSw3ICs1MDksNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5JiBwYWdl
LCBXZQogICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5t
X3dlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjp3a05hdmlnYXRpb25dOwogfQogCi12b2lkIE5h
dmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1l
KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJv
ciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNs
aWVudDo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFt
ZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBBUEk6Ok9iamVjdCopCiB7CiAgICAgaWYg
KCF3ZWJGcmFtZVByb3h5LmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYzNCw3
ICs2MzQsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKFdlYgogICAgIFtzdGF0aWNfY2FzdDxpZCA8
V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBf
d2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOndyYXBwZXIoKmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKV07CiB9CiAKLXZv
aWQgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OnByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYgcGFnZSkKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6
OnByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBhZ2VQcm94eSYpCiB7CiAgICAgaWYgKCFtX25h
dmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYlByb2Nl
c3NEaWRDcmFzaCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlODdhZjQ5ZGIwMTU1ZWE4YTYwNTk2OTc4NjU3N2U4
OGVjNzBlNWFjLi41YTY5Njc3ZTc4YjM3MjFiNGI1OTMyOTdkMGY4Y2RiZjJjYTdjZGZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTc4LDcg
KzE3OCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQo
V2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6CiAgICAgfV07CiB9CiAKLXZvaWQgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJQYWdlUHJveHkqLCBX
ZWJGcmFtZVByb3h5KiwgQVBJOjpTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWdu
ZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHN0ZDo6ZnVuY3Rpb248dm9pZCAodW5zaWduZWQg
bG9uZyBsb25nKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQ
STo6U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBXVEY6OlN0cmluZyYsIGNv
bnN0IFdURjo6U3RyaW5nJiwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWdu
ZWQgbG9uZyBsb25nIGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJl
bnRVc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHN0ZDo6ZnVuY3Rpb248
dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVv
dGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnRE
YXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlcikgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA0ZTE0YzMyMjg0ZGIz
OGQ1NWZlNTBhNjkyZDYwMWVhZWE3OTIwMTlkLi5hNDliY2ZjZTYzZWYzMzQ3Yzc0MmJlOWVlNmNm
M2VmMzU5ZmNjMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMzk2LDIzICszOTYsMjMgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKQogICAgICAgICBzZXRF
bmhhbmNlZEFjY2Vzc2liaWxpdHkoW1tbbm90ZSB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAiQVhF
bmhhbmNlZFVzZXJJbnRlcmZhY2UiXSBib29sVmFsdWVdKTsKICAgICB9XTsKIAotICAgIG1fYXV0
b21hdGljVGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU1NwZWxsQ2hlY2tl
ckRpZENoYW5nZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
IHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90
aWZpY2F0aW9uICpub3RpZmljYXRpb24pIHsKKyAgICBtX2F1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNTcGVsbENoZWNrZXJEaWRDaGFuZ2VBdXRvbWF0aWNU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25R
dWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAg
ICAgIFRleHRDaGVja2VyOjpkaWRDaGFuZ2VBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVk
KCk7CiAgICAgICAgIHRleHRDaGVja2VyU3RhdGVDaGFuZ2VkKCk7CiAgICAgfV07CiAgICAgCi0g
ICAgbV9hdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25Ob3RpZmljYXRpb25PYnNlcnZlciA9IFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5T
U3BlbGxDaGVja2VyRGlkQ2hhbmdlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0
aW9uIG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2lu
Z0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworICAgIG1fYXV0b21hdGlj
U3BlbGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU1NwZWxsQ2hlY2tlckRp
ZENoYW5nZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbk5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
IHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90
aWZpY2F0aW9uICopIHsKICAgICAgICAgVGV4dENoZWNrZXI6OmRpZENoYW5nZUF1dG9tYXRpY1Nw
ZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKTsKICAgICAgICAgdGV4dENoZWNrZXJTdGF0ZUNoYW5n
ZWQoKTsKICAgICB9XTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA5MAotICAgIG1fYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZl
ciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JO
YW1lOk5TU3BlbGxDaGVja2VyRGlkQ2hhbmdlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3Rp
ZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVd
IHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CisgICAgbV9hdXRv
bWF0aWNRdW90ZVN1YnN0aXR1dGlvbk5vdGlmaWNhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNTcGVsbENoZWNr
ZXJEaWRDaGFuZ2VBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbk5vdGlmaWNhdGlvbiBvYmplY3Q6
bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5T
Tm90aWZpY2F0aW9uICopIHsKICAgICAgICAgVGV4dENoZWNrZXI6OmRpZENoYW5nZUF1dG9tYXRp
Y1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwogICAgICAgICB0ZXh0Q2hlY2tlclN0YXRlQ2hh
bmdlZCgpOwogICAgIH1dOwogCi0gICAgbV9hdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uTm90aWZp
Y2F0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyRm9yTmFtZTpOU1NwZWxsQ2hlY2tlckRpZENoYW5nZUF1dG9tYXRpY0Rhc2hTdWJz
dGl0dXRpb25Ob3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBj
dXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7
CisgICAgbV9hdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXIgPSBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpO
U1NwZWxsQ2hlY2tlckRpZENoYW5nZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRp
b24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5n
QmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIFRleHRDaGVja2VyOjpkaWRDaGFu
Z2VBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwogICAgICAgICB0ZXh0Q2hlY2tl
clN0YXRlQ2hhbmdlZCgpOwogICAgIH1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiNjMx
OWQ4YzU2Zjc1Yzg1MWZjMDcwODM3NGYyYjIyYmQ1YjE2MjZhLi45NTUyZTJmMzkwOTIwNzNkOTA0
NjhmMmU5MmNiYzE1MmIzNWM0N2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA2LDcg
KzEwNiw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpCiAgICAgbV9wcm9jZXNzUG9vbC0+ZGF0YWJhc2VQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsK
IH0KIAotdm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQordm9pZCBEYXRhYmFzZVByb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
U3RyaW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggMThiMzY4MjNjN2NlNTEw
OTBiYzg2NWRjNzg2YmJhOGU5NDVmOTdkZC4uYTFhNmQyNjNiMWFmZjBhMGEwM2RmMDhjOWNmZmE4
ZmFkYzQ4ZTU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJ
RCAqLywgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVHZW9tZXRyeSgpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBpbnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBu
ZXdJbnRyaW5zaWNDb250ZW50U2l6ZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY0Nv
bnRlbnRTaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KIAogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5PiBtX2V4cG9z
ZWRSZWN0Q2hhbmdlZFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBhOTUzZWEzMWZj
YmJmM2Y0MzE1ZWJiNzRhZDkwYzczMWY0OGE4NGJjLi5kNmQzY2I3MjI2NDg5NjQ1OGNjMzJjZWJj
NTAzODY4MWNhYmViZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjI2LDcgKzIyNiw3
IEBAIHN0YXRpYyB2b2lkIGNvbm5lY3RUb1NlcnZpY2UoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zCiAjZW5kaWYKIAogICAgIC8vIFhQQyByZXF1aXJl
cyBoYXZpbmcgYW4gZXZlbnQgaGFuZGxlciwgZXZlbiBpZiBpdCBpcyBub3QgdXNlZC4KLSAgICB4
cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLmdldCgpLCBeKHhwY19v
YmplY3RfdCBldmVudCkgeyB9KTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxl
cihjb25uZWN0aW9uLmdldCgpLCBeKHhwY19vYmplY3RfdCkgeyB9KTsKICAgICB4cGNfY29ubmVj
dGlvbl9yZXN1bWUoY29ubmVjdGlvbi5nZXQoKSk7CiAgICAgCiAgICAgaWYgKHNob3VsZExlYWtC
b29zdChsYXVuY2hPcHRpb25zKSkgewpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyB2b2lkIGNv
bm5lY3RUb1JlRXhlY1NlcnZpY2UoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPCiAgICAgLy8gdG8gaW5kaWNhdGUgdGhhdCB0aGUgc2VydmljZSBpbnN0YW5jZSBy
ZS1leGVjZWQgaXRzZWxmLCBhbmQgaXMgbm93IHJlYWR5IHRvIGJlCiAgICAgLy8gY29ubmVjdGVk
IHRvLgogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKHJlRXhlY0Nvbm5lY3Rp
b24sIF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUo
ZXZlbnQpID09IFhQQ19UWVBFX0VSUk9SKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChldmVudCwg
eHBjX2dldF90eXBlKGV2ZW50KSA9PSBYUENfVFlQRV9FUlJPUik7CiAKICAgICAgICAgY29ubmVj
dFRvU2VydmljZShsYXVuY2hPcHRpb25zLCB0cnVlLCB0aGF0LCBkaWRGaW5pc2hMYXVuY2hpbmdQ
cm9jZXNzRnVuY3Rpb24sIGluc3RhbmNlVVVJRC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmlu
ZGV4IGQwZTVjMzU3YTllMGQ0ZWRmOWZlZDcwOTJlZDhlYmY2NjQ1MjljMGQuLjVlZjllZWY5MzA2
YjdkZmY1ZGYyMjA0NDgxYmZlMWNjNTIzM2Y5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtODEs
NiArODEsNyBAQCAtICh2b2lkKWRlYWxsb2MKIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgog
eworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBSZXNvdXJjZUVycm9yIGNvcmVF
cnJvcihlcnJvcik7CiAgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3Rv
Y29sTWFuYWdlcjo6RGlkRmFpbFdpdGhFcnJvcihfY3VzdG9tUHJvdG9jb2xJRCwgY29yZUVycm9y
KSwgMCk7CiAgICAgX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LT5zdG9wTG9hZGluZyhfY3Vz
dG9tUHJvdG9jb2xJRCk7CkBAIC04OCw2ICs4OSw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJy
CiAKIC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
Kiljb25uZWN0aW9uIHdpbGxDYWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopY2Fj
aGVkUmVzcG9uc2UKIHsKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAgICAgQVNTRVJU
KF9zdG9yYWdlUG9saWN5ID09IE5TVVJMQ2FjaGVTdG9yYWdlTm90QWxsb3dlZCk7CiAgICAgX3N0
b3JhZ2VQb2xpY3kgPSBbY2FjaGVkUmVzcG9uc2Ugc3RvcmFnZVBvbGljeV07CiAgICAgcmV0dXJu
IGNhY2hlZFJlc3BvbnNlOwpAQCAtOTUsMjMgKzk3LDI4IEBAIC0gKE5TQ2FjaGVkVVJMUmVzcG9u
c2UgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxDYWNoZVJl
c3BvCiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBk
aWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQogeworICAgIFVOVVNF
RF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlIGNvcmVSZXNwb25zZShy
ZXNwb25zZSk7CiAgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6RGlkUmVjZWl2ZVJlc3BvbnNlKF9jdXN0b21Qcm90b2NvbElELCBjb3JlUmVzcG9u
c2UsIF9zdG9yYWdlUG9saWN5KSwgMCk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YQogewor
ICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgY29y
ZURhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxl
bmd0aF0pOwogICAgIF9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1h
bmFnZXI6OkRpZExvYWREYXRhKF9jdXN0b21Qcm90b2NvbElELCBjb3JlRGF0YSksIDApOwogfQog
CiAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0
aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZWRpcmVjdFJlc3Bv
bnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQogeworICAgIFVOVVNFRF9QQVJB
TShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
cmV0dXJuIHJlcXVlc3Q7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6
KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KIHsKKyAgICBVTlVTRURfUEFSQU0oY29ubmVj
dGlvbik7CiAgICAgX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29sTWFu
YWdlcjo6RGlkRmluaXNoTG9hZGluZyhfY3VzdG9tUHJvdG9jb2xJRCksIDApOwogICAgIF9jdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eS0+c3RvcExvYWRpbmcoX2N1c3RvbVByb3RvY29sSUQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNDFhYjdjNWY1ZWZkZjU5YWJmNTFkZDUxMDMwMTY4
ODc0MDI0MzgzNy4uMWJiYTMxY2I3MjUzMDU0ODNjMDdmMzRhY2YwMjc4YjY1MzgxZGE1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFNjcm9sbGluZ1RyZWU6OkV2ZW50
UmVzdWx0IFJlbW90ZVNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6Omhh
bmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZSkKK3ZvaWQg
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlKQogewogICAgIC8vIEZJWE1FOiBoYW5kIG9mZiB0byBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk/CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5j
cHAKaW5kZXggNzZkZTdlOGViMzY5Mzc3Y2VjMmIzY2FkODMzOGNmZWY2NTU4YjUzNi4uMjRkYmI5
YjdmNWU4MWNhZjFjOWQxNjQ4NDQ2NzY1NTMwMmUyZDJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtMjQzLDYgKzI0Myw4IEBAIGJvb2wgV2ViRnJh
bWVQcm94eTo6Y29udGVudEZpbHRlckRpZEhhbmRsZU5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2Vi
Q29yZTo6UmVzb3VyCiAgICAgICAgICAgICByZXRhaW5lZFBhZ2UtPnJlbG9hZChmYWxzZSk7CiAg
ICAgICAgIH0pOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwogI2Vu
ZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKaW5kZXggMTY0YWNiZDBm
NDQ2NDJjOGQ5ZThkZDQxZDJiNDg5YjhmZjdhZWE2Yy4uMDUxMDIwMjJjZDM2OWVmNWY0NmVjYjIw
OWU3OGE4ODQyMDFiODIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBA
IHN0YXRpYyBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBlbmNvZGVTZXNzaW9uSGlzdG9yeUVudHJ5RGF0
YShjb25zdCBGcmFtZVN0YXRlJiBmcmFtCiAgICAgICAgICAgICBudWxscHRyLCAvLyBjb3B5RGVz
Y3JpcHRpb24KICAgICAgICAgICAgIG51bGxwdHIsIC8vIGFsbG9jYXRlCiAgICAgICAgICAgICBu
dWxscHRyLCAvLyByZWFsbG9jYXRlCi0gICAgICAgICAgICBbXSh2b2lkICpwdHIsIHZvaWQgKmlu
Zm8pIHsKKyAgICAgICAgICAgIFtdKHZvaWQgKnB0ciwgdm9pZCAqKSB7CiAgICAgICAgICAgICAg
ICAgV1RGOjpmYXN0RnJlZShwdHIpOwogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIG51bGxw
dHIsIC8vIHByZWZlcnJlZFNpemUKQEAgLTQ4OSw3ICs0ODksNyBAQCBSZWZQdHI8QVBJOjpEYXRh
PiBlbmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0YXRlJiBzZXNzaW9uU3Rh
dGUpCiAgICAgLy8gQ29weSBpbiB0aGUgYWN0dWFsIHNlc3Npb24gc3RhdGUgZGF0YQogICAgIENG
RGF0YUdldEJ5dGVzKGRhdGEuZ2V0KCksIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIGJ1ZmZlci5n
ZXQoKSArIHNpemVvZih1aW50MzJfdCkpOwogCi0gICAgcmV0dXJuIEFQSTo6RGF0YTo6Y3JlYXRl
V2l0aG91dENvcHlpbmcoYnVmZmVyLmxlYWtQdHIoKSwgYnVmZmVyU2l6ZSwgW10gKHVuc2lnbmVk
IGNoYXIqIGJ1ZmZlciwgY29uc3Qgdm9pZCogY29udGV4dCkgeworICAgIHJldHVybiBBUEk6OkRh
dGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGJ1ZmZlci5sZWFrUHRyKCksIGJ1ZmZlclNpemUsIFtd
ICh1bnNpZ25lZCBjaGFyKiBidWZmZXIsIGNvbnN0IHZvaWQqKSB7CiAgICAgICAgIGZhc3RGcmVl
KGJ1ZmZlcik7CiAgICAgfSwgbnVsbHB0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA4OGFiZDRmNDk0ZDM0YTY0MjIyMmI3Yzdj
ZjY5ZTExMjM5MzY2ZTBlLi4zODdkOGY0NTc3MTMyZjI5MDAyODE2ZWJiNGRlYTkxMDQ4Mjk3Yjc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0K
QEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFn
ZUNsaWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogICAgIHJldHVybiBbbV93a1Zp
ZXcgX2NyZWF0ZURyYXdpbmdBcmVhUHJveHldOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpz
ZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMTcyLDEyICsxNzIsMTIgQEAg
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuU2Nyb2xsVmlldygpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzY3JvbGxWaWV3KGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnNjcm9sbFZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmKQogewogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIGlzUHJvZ3JhbW1hdGljU2Ny
b2xsKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50
JiwgYm9vbCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTMxNCwxMSArMzE0
LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYg
b2xkVG9vbFRpcCwgY29uc3QgU3RyaW5nJiBuZXdUCiAgICAgW21fd2tWaWV3IF90b29sVGlwQ2hh
bmdlZEZyb206bnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhvbGRUb29sVGlwKSB0bzpuc1N0cmlu
Z0Zyb21XZWJDb3JlU3RyaW5nKG5ld1Rvb2xUaXApXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1p
dExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKIHsKIH0KIAotdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIo
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBkYXRhUmVmZXJlbmNlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0Rh
dGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJikKIHsKIH0KIApAQCAtNzc5LDYgKzc3OSwxMCBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtQWN0aW9uTWVudUhpdFRlc3QoY29uc3QgQWN0aW9uTWVudUhpdFRlc3RS
ZXN1bHQmCiB7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAK
ICAgICBbbV93a1ZpZXcgX2RpZFBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdDpyZXN1bHQgZm9ySW1t
ZWRpYXRlQWN0aW9uOmZvckltbWVkaWF0ZUFjdGlvbiB1c2VyRGF0YTp1c2VyRGF0YV07CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworICAgIFVOVVNFRF9QQVJBTShmb3JJbW1lZGlh
dGVBY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTSh1c2VyRGF0YSk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGJmMjBjNzNlODcyN2UzMzM3Njkz
NjExZjFiMGJmMjYyNWM4YzliY2YuLjBjZjQwYTQxYzgyYmNhMDhiZGY1NzlmNTMwY2YyNjhiZDk1
MDdlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTk3LDE4ICs5
NywxOCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6Om1pbmltdW1M
YXlvdXRTaXplRGlkQ2hhbmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAotdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHk6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QsIGNv
bnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCiB7CiAgICAgbV93ZWJQYWdl
UHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsK
IH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpleGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3Qg
VXBkYXRlSW5mbyYpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmV4
aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCwgY29uc3QgVXBkYXRlSW5mbyYp
CiB7CiAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkLgogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6
OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0
YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKHVpbnQ2NF90LCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250
ZXh0KQogewogICAgIG1fd2ViUGFnZVByb3h5LnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGxheWVyVHJlZUNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQppbmRleCA1NTc0OTE3ZjBj
ODM5MzBhYmRlYjg3ZDA4MTI3NGVmZGFkNmUwOTAwLi4zYjJmMGNlZTZjY2YzYzcwYzBiMjJmZTZh
Y2U3NmQ4OTg3YjhkOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0
YXRpYyBmbG9hdCBtYXhpbXVtUmVjdGFuZ2xlQ29tcG9uZW50RGVsdGEoRmxvYXRSZWN0IGEsIEZs
b2F0UmVjdCBiKQogICAgIHJldHVybiBzdGQ6Om1heChmYWJzKGEueCgpIC0gYi54KCkpLCBzdGQ6
Om1heChmYWJzKGEueSgpIC0gYi55KCkpLCBzdGQ6Om1heChmYWJzKGEud2lkdGgoKSAtIGIud2lk
dGgoKSksIGZhYnMoYS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpKSkpOwogfQogCi12b2lkIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6ZGlkQ29sbGVjdEdlb21ldHJ5Rm9yU21hcnRNYWduaWZpY2F0aW9u
R2VzdHVyZShGbG9hdFBvaW50IG9yaWdpbiwgRmxvYXRSZWN0IHJlbmRlclJlY3QsIEZsb2F0UmVj
dCB2aXNpYmxlQ29udGVudFJlY3QsIGJvb2wgaXNSZXBsYWNlZEVsZW1lbnQsIGRvdWJsZSB2aWV3
cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlKQordm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OmRpZENvbGxlY3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlv
bkdlc3R1cmUoRmxvYXRQb2ludCBvcmlnaW4sIEZsb2F0UmVjdCByZW5kZXJSZWN0LCBGbG9hdFJl
Y3QgdmlzaWJsZUNvbnRlbnRSZWN0LCBib29sIGlzUmVwbGFjZWRFbGVtZW50LCBkb3VibGUsIGRv
dWJsZSkKIHsKICAgICBkb3VibGUgY3VycmVudFNjYWxlRmFjdG9yID0gbV93ZWJQYWdlUHJveHku
cGFnZVNjYWxlRmFjdG9yKCk7CiAKQEAgLTYwMiw3ICs2MDIsNyBAQCB2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFy
Z2V0SXRlbQogICAgICAgICBbc25hcHNob3RMYXllclBhcmVudCBpbnNlcnRTdWJsYXllcjptX3N3
aXBlTGF5ZXIuZ2V0KCkgYWJvdmU6bGF5ZXJBZGphY2VudFRvU25hcHNob3RdOwogfQogCi12b2lk
IFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGRvdWJsZSBwcm9ncmVzcywgU3dpcGVEaXJlY3Rpb24gZGly
ZWN0aW9uKQordm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZShX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiwgZG91YmxlIHByb2dyZXNzLCBTd2lwZURpcmVjdGlvbiBk
aXJlY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fYWN0aXZlR2VzdHVyZVR5cGUgPT0gVmlld0dlc3R1
cmVUeXBlOjpTd2lwZSk7CiAKQEAgLTc1NSw3ICs3NTUsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdEFmdGVyUmVwYWludCgpCiAgICAgbV9zd2lwZVdh
aXRpbmdGb3JSZXBhaW50ID0gdHJ1ZTsKIAogICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5
ID0gJm1fd2ViUGFnZVByb3h5OwotICAgIG1fd2ViUGFnZVByb3h5LmZvcmNlUmVwYWludChWb2lk
Q2FsbGJhY2s6OmNyZWF0ZShbd2ViUGFnZVByb3h5XSAoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJv
cikgeworICAgIG1fd2ViUGFnZVByb3h5LmZvcmNlUmVwYWludChWb2lkQ2FsbGJhY2s6OmNyZWF0
ZShbd2ViUGFnZVByb3h5XSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICB3ZWJQYWdl
UHJveHktPnJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKTsKICAgICB9KSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQpp
bmRleCAxYThhZTA3MTlkMjk2OWNiODk1YTc1N2IzM2Q3NmNjYTc3MjllNjhiLi4zYzNmZDBmYTFk
ODczZTk5Zjc2NDQ0NjlkZWYyZmVkN2M2ZTFlMjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTk0LDcgKzk0LDcgQEAgdm9p
ZCBWaWV3U25hcHNob3RTdG9yZTo6d2lsbFJlbW92ZUltYWdlRnJvbVNuYXBzaG90KFZpZXdTbmFw
c2hvdCYgc25hcHNob3QpCiAgICAgbV9zbmFwc2hvdENhY2hlU2l6ZSAtPSBzbmFwc2hvdC5pbWFn
ZVNpemVJbkJ5dGVzKCk7CiB9CiAKLXZvaWQgVmlld1NuYXBzaG90U3RvcmU6OnBydW5lU25hcHNo
b3RzKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQordm9pZCBWaWV3U25hcHNob3RTdG9yZTo6
cHJ1bmVTbmFwc2hvdHMoV2ViUGFnZVByb3h5JikKIHsKICAgICBpZiAobV9zbmFwc2hvdENhY2hl
U2l6ZSA8PSBtYXhpbXVtU25hcHNob3RDYWNoZVNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NX
YXRjaGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFj
Y2Vzc1dhdGNoZXIubW0KaW5kZXggNjFkNjdhZDM4YmJiMGE0Njg5N2I0Yjk0MzNhNDU2OTBlZWYw
YWRjYy4uOGRmNDljYTU3YWM3OWJiNTcyY2FlNzM1OWI1YzUzZDI5ZWRlMDczNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNo
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxLZXlib2FyZEFj
Y2Vzc1dhdGNoZXIubW0KQEAgLTQ1LDYgKzQ1LDcgQEAgLSAodm9pZClub3RpZnlBbGxQcm9jZXNz
UG9vbHMKIAogLSAodm9pZClyZXRyaWV2ZUtleWJvYXJkVUlNb2RlRnJvbVByZWZlcmVuY2VzOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmlj
YXRpb24pOwogICAgIEJPT0wgb2xkVmFsdWUgPSBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwog
CiAgICAgQ0ZQcmVmZXJlbmNlc0FwcFN5bmNocm9uaXplKGtDRlByZWZlcmVuY2VzQ3VycmVudEFw
cGxpY2F0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCBhYTljMTkxZjg3ODhiYmI5
NzM2ZTczZWYzMGU5YTZjNTUzZjM2ZjMyLi4xNTYxNjk0MmNlYjlhZjJhN2NiYTZkOTk3MjEzYjM5
ZGUxNzVkZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC0xNDcsNiArMTQ3LDcgQEAg
LSAoV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcqKXdlYlZpZXdQbGFjZWhvbGRlcgog
CiAtICh2b2lkKWNhbmNlbE9wZXJhdGlvbjooaWQpc2VuZGVyCiB7CisgICAgVU5VU0VEX1BBUkFN
KHNlbmRlcik7CiAgICAgLy8gSWYgdGhlIHBhZ2UgZG9lc24ndCByZXNwb25kIGluIERlZmF1bHRX
YXRjaGRvZ1RpbWVySW50ZXJ2YWwgc2Vjb25kcywgaXQgY291bGQgYmUgYmVjYXVzZQogICAgIC8v
IHRoZSBXZWJQcm9jZXNzIGhhcyBodW5nLCBzbyBleGl0IGFueXdheS4KICAgICBpZiAoIV93YXRj
aGRvZ1RpbWVyKSB7CkBAIC0xNjEsNiArMTYyLDcgQEAgLSAodm9pZCljYW5jZWxPcGVyYXRpb246
KGlkKXNlbmRlcgogCiAtICh2b2lkKWFwcGxpY2F0aW9uRGlkQ2hhbmdlU2NyZWVuUGFyYW1ldGVy
czooTlNOb3RpZmljYXRpb24qKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwogICAgIC8vIFRoZSB1c2VyIG1heSBoYXZlIGNoYW5nZWQgdGhlIG1haW4gc2Ny
ZWVuIGJ5IG1vdmluZyB0aGUgbWVudSBiYXIsIG9yIHRoZXkgbWF5IGhhdmUgY2hhbmdlZAogICAg
IC8vIHRoZSBEb2NrJ3Mgc2l6ZSBvciBsb2NhdGlvbiwgb3IgdGhleSBtYXkgaGF2ZSBjaGFuZ2Vk
IHRoZSBmdWxsU2NyZWVuIHNjcmVlbidzIGRpbWVuc2lvbnMuIAogICAgIC8vIFVwZGF0ZSBvdXIg
cHJlc2VudGF0aW9uIHBhcmFtZXRlcnMsIGFuZCBlbnN1cmUgdGhhdCB0aGUgZnVsbCBzY3JlZW4g
d2luZG93IG9jY3VwaWVzIHRoZSAKQEAgLTM1Nyw2ICszNTksOCBAQCAtICh2b2lkKWV4aXRGdWxs
U2NyZWVuCiAKIC0gKHZvaWQpYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JilmaW5hbEZyYW1lCiB7CisgICAgVU5VU0VEX1BBUkFNKGluaXRpYWxGcmFt
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGZpbmFsRnJhbWUpOwogICAgIGlmIChfZnVsbFNjcmVlblN0
YXRlICE9IFdhaXRpbmdUb0V4aXRGdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47CiAgICAgX2Z1
bGxTY3JlZW5TdGF0ZSA9IEV4aXRpbmdGdWxsU2NyZWVuOwpAQCAtMzc3LDYgKzM4MSw3IEBAIC0g
KHZvaWQpYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKWluaXRpYWxGcmFtCiAKIC0gKHZvaWQpZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFu
aW1hdGlvbjooYm9vbCljb21wbGV0ZWQKIHsKKyAgICBVTlVTRURfUEFSQU0oY29tcGxldGVkKTsK
ICAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSAhPSBFeGl0aW5nRnVsbFNjcmVlbikKICAgICAgICAg
cmV0dXJuOwogICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBOb3RJbkZ1bGxTY3JlZW47CkBAIC00Njgs
NDEgKzQ3Myw0OSBAQCAtICh2b2lkKWNsb3NlCiAKIC0gKE5TQXJyYXkgKiljdXN0b21XaW5kb3dz
VG9FbnRlckZ1bGxTY3JlZW5Gb3JXaW5kb3c6KE5TV2luZG93ICopd2luZG93CiB7CisgICAgVU5V
U0VEX1BBUkFNKHdpbmRvdyk7CiAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6
W3NlbGYgd2luZG93XSwgX2JhY2tncm91bmRXaW5kb3cuZ2V0KCksIG5pbF07CiB9CiAKIC0gKE5T
QXJyYXkgKiljdXN0b21XaW5kb3dzVG9FeGl0RnVsbFNjcmVlbkZvcldpbmRvdzooTlNXaW5kb3cg
Kil3aW5kb3cKIHsKKyAgICBVTlVTRURfUEFSQU0od2luZG93KTsKICAgICByZXR1cm4gW05TQXJy
YXkgYXJyYXlXaXRoT2JqZWN0czpbc2VsZiB3aW5kb3ddLCBfYmFja2dyb3VuZFdpbmRvdy5nZXQo
KSwgbmlsXTsKIH0KIAogLSAodm9pZCl3aW5kb3c6KE5TV2luZG93ICopd2luZG93IHN0YXJ0Q3Vz
dG9tQW5pbWF0aW9uVG9FbnRlckZ1bGxTY3JlZW5XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFs
KWR1cmF0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKHdpbmRvdyk7CiAgICAgW3NlbGYgX3N0YXJ0
RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOmR1cmF0aW9uXTsKIH0KIAogLSAo
dm9pZCl3aW5kb3c6KE5TV2luZG93ICopd2luZG93IHN0YXJ0Q3VzdG9tQW5pbWF0aW9uVG9FeGl0
RnVsbFNjcmVlbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKKyAgICBV
TlVTRURfUEFSQU0od2luZG93KTsKICAgICBbc2VsZiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1h
dGlvbldpdGhEdXJhdGlvbjpkdXJhdGlvbl07CiB9CiAKIC0gKHZvaWQpd2luZG93RGlkRmFpbFRv
RW50ZXJGdWxsU2NyZWVuOihOU1dpbmRvdyAqKXdpbmRvdwogeworICAgIFVOVVNFRF9QQVJBTSh3
aW5kb3cpOwogICAgIFtzZWxmIGZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uOk5PXTsK
IH0KIAogLSAodm9pZCl3aW5kb3dEaWRFbnRlckZ1bGxTY3JlZW46KE5TTm90aWZpY2F0aW9uKilu
b3RpZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBbc2Vs
ZiBmaW5pc2hlZEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbjpZRVNdOwogfQogCiAtICh2b2lkKXdp
bmRvd0RpZEZhaWxUb0V4aXRGdWxsU2NyZWVuOihOU1dpbmRvdyAqKXdpbmRvdwogeworICAgIFVO
VVNFRF9QQVJBTSh3aW5kb3cpOwogICAgIFtzZWxmIGZpbmlzaGVkRXhpdEZ1bGxTY3JlZW5Bbmlt
YXRpb246Tk9dOwogfQogCiAtICh2b2lkKXdpbmRvd0RpZEV4aXRGdWxsU2NyZWVuOihOU05vdGlm
aWNhdGlvbiopbm90aWZpY2F0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7
CiAgICAgW3NlbGYgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpZRVNdOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCBh
ZDk3N2FhYzcyZGFkMGY5YWNlNjYwYTRmNGJhMDRiNjkyMjc1ODY3Li4xYmI1MjA3NDk0YTYzMzI4
YmQ5Mzk5NGNhZTJiZDZiMTEyMmY2ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTYzMiw2ICs2MzIsNyBAQCAtIChOU1JlY3QpcmVj
dEZvclBhZ2U6KE5TSW50ZWdlcilwYWdlCiAvLyBUZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgPHJk
YXI6Ly9wcm9ibGVtLzg5NDQ1MzU+LiBGb3JjZSBjb3JyZWN0IHByaW50b3V0IHBvc2l0aW9uaW5n
LgogLSAoTlNQb2ludClsb2NhdGlvbk9mUHJpbnRSZWN0OihOU1JlY3QpYVJlY3QKIHsKKyAgICBV
TlVTRURfUEFSQU0oYVJlY3QpOwogICAgIEFTU0VSVChfcHJpbnRPcGVyYXRpb24gPT0gW05TUHJp
bnRPcGVyYXRpb24gY3VycmVudE9wZXJhdGlvbl0pOwogICAgIHJldHVybiBOU01ha2VQb2ludChb
W19wcmludE9wZXJhdGlvbiBwcmludEluZm9dIGxlZnRNYXJnaW5dLCBbW19wcmludE9wZXJhdGlv
biBwcmludEluZm9dIGJvdHRvbU1hcmdpbl0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggNzNjNjRhYzVmOGE0NGJkMGVi
YTE2MzgyM2NlNmZmZWUzYjVjZWVjNC4uZDA5NzRkN2VjOWFkMzEzY2NhZTY3NDM5MGY3OTk1ZjE2
NjY4MTExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xv
clBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9y
UGlja2VyTWFjLm1tCkBAIC04Niw3ICs4Niw3IEBAIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29s
b3JQaWNrZXJNYWMoKQogICAgICAgICBlbmRQaWNrZXIoKTsKIH0KIAotV2ViQ29sb3JQaWNrZXJN
YWM6OldlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
cmVjdCwgV0tWaWV3KiB2aWV3KQorV2ViQ29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlja2VyTWFj
KFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xv
clBpY2tlcihjbGllbnQpCiB7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikK
QEAgLTE4MCw2ICsxODAsNyBAQCAtICh2b2lkKWludmFsaWRhdGUKIAogLSAodm9pZCl3aW5kb3dX
aWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CisgICAgVU5VU0VEX1BB
UkFNKG5vdGlmaWNhdGlvbik7CiAgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVTOwogICAgIF9w
aWNrZXItPmVuZFBpY2tlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IGRjNjQ5NWEwNGZiOGY3YmZl
MjQyZjZlMjAzNDYxZDgyZWQzYWQ0MTUuLjQ4ZDNhZGZkNDE4M2IyOGJhOWZkZjA5Y2NiM2Q0NWQ4
NDNmNTc0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTQyOCw2ICs0MjgsOCBAQCB2b2lkIFdlYkNvbnRl
eHRNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1E
YXRhPiYgaXRlbQogICAgICAgICBzZXR1cFNlcnZpY2VzTWVudShjb250ZXh0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwogI2VuZGlm
CiAKICAgICBpZiAobV9wb3B1cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDg5YjBhOWY1MzM0MjllMDYxZTY0ZGRl
MWY5NTljYjZkZmNjNzI0NjYuLjczZWE0OTU4OWM2NjAxYWI4NzljZmZlZTgwYTgyYWFjYjM5ZTFj
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9y
UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0
b3JQcm94eU1hYy5tbQpAQCAtMTExLDExICsxMTEsMTMgQEAgLSAoaWQpaW5pdFdpdGhXZWJJbnNw
ZWN0b3JQcm94eTooV2ViSW5zcGVjdG9yUHJveHkqKWluc3BlY3RvclByb3h5CiAKIC0gKElCQWN0
aW9uKWF0dGFjaFJpZ2h0OihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsK
ICAgICBzdGF0aWNfY2FzdDxXZWJJbnNwZWN0b3JQcm94eSo+KF9pbnNwZWN0b3JQcm94eSktPmF0
dGFjaChBdHRhY2htZW50U2lkZVJpZ2h0KTsKIH0KIAogLSAoSUJBY3Rpb24pYXR0YWNoQm90dG9t
OihpZClzZW5kZXIKIHsKKyAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICBzdGF0aWNfY2Fz
dDxXZWJJbnNwZWN0b3JQcm94eSo+KF9pbnNwZWN0b3JQcm94eSktPmF0dGFjaChBdHRhY2htZW50
U2lkZUJvdHRvbSk7CiB9CiAKQEAgLTEzMSwxNiArMTMzLDE5IEBAIC0gKHZvaWQpZGlkUmVsYXVu
Y2hQcm9jZXNzCiAKIC0gKHZvaWQpd2luZG93RGlkTW92ZTooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBzdGF0aWNf
Y2FzdDxXZWJJbnNwZWN0b3JQcm94eSo+KF9pbnNwZWN0b3JQcm94eSktPndpbmRvd0ZyYW1lRGlk
Q2hhbmdlKCk7CiB9CiAKIC0gKHZvaWQpd2luZG93RGlkUmVzaXplOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIHN0
YXRpY19jYXN0PFdlYkluc3BlY3RvclByb3h5Kj4oX2luc3BlY3RvclByb3h5KS0+d2luZG93RnJh
bWVEaWRDaGFuZ2UoKTsKIH0KIAogLSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCiB7CisgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAg
ICAgc3RhdGljX2Nhc3Q8V2ViSW5zcGVjdG9yUHJveHkqPihfaW5zcGVjdG9yUHJveHkpLT5jbG9z
ZSgpOwogfQogCkBAIC0xNTEsNiArMTU2LDcgQEAgLSAodm9pZClpZ25vcmVOZXh0SW5zcGVjdGVk
Vmlld0ZyYW1lRGlkQ2hhbmdlCiAKIC0gKHZvaWQpaW5zcGVjdGVkVmlld0ZyYW1lRGlkQ2hhbmdl
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogeworICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwogICAgIGlmIChfaWdub3JlTmV4dEluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5n
ZSkgewogICAgICAgICBfaWdub3JlTmV4dEluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZSA9IE5P
OwogICAgICAgICByZXR1cm47CkBAIC0yNTgsNyArMjY0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv
bmcgbG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1Nl
Y3VyaXQKICAgICByZXR1cm4gc3RkOjptYXg8dW5zaWduZWQgbG9uZyBsb25nPihleHBlY3RlZFVz
YWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSAqIDEuMjUpOwogfQogCi1zdGF0aWMgdm9pZCBydW5P
cGVuUGFuZWwoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLT3BlblBhbmVsUGFy
YW1ldGVyc1JlZiBwYXJhbWV0ZXJzLCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmIHBhcmFtZXRlcnMs
IFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCiB7CiAgICAgV2ViSW5zcGVjdG9yUHJveHkqIHdlYkluc3BlY3RvclByb3h5ID0gc3Rh
dGljX2Nhc3Q8V2ViSW5zcGVjdG9yUHJveHkqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7CiAgICAgQVNTRVJUKHdlYkluc3BlY3RvclByb3h5KTsKQEAgLTI4NCw3ICsyOTAsNyBAQCBz
dGF0aWMgdm9pZCBydW5PcGVuUGFuZWwoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLT3BlblBhbmVsUGFyYW1ldGVycwogICAgICAgICAgICAgV0tSZWxlYXNlKGZpbGVVUkxzKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyQ2Fu
Y2VsKGxpc3RlbmVyKTsKLSAgICAgICAgCisKICAgICAgICAgV0tSZWxlYXNlKGxpc3RlbmVyKTsK
ICAgICB9XTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCmlu
ZGV4IGY5MjU1NzMyMTI5MTdkYmQ2ODRiYjlmODliYTMwNDQxNDRjMzEzMWIuLjY5ODRlYTM3YjUx
MDNmMTQwYTlmZjMxNTIxY2I0OWQ1N2U1MTZlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkZhY3RvcnlCYWNrZW5kLmNwcApAQCAtODgsNyArODgsNyBAQCBXZWJJREJGYWN0b3J5QmFja2Vu
ZDo6fldlYklEQkZhY3RvcnlCYWNrZW5kKCkKIHsKIH0KIAotdm9pZCBXZWJJREJGYWN0b3J5QmFj
a2VuZDo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIG1haW5GcmFtZU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3Zv
aWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6OmdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKQogewogICAgIExPRyhJREIsICJXZWJJREJGYWN0b3J5QmFja2VuZDo6Z2V0RGF0YWJh
c2VOYW1lcyIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5j
cHAKaW5kZXggNDExNjNkOTFkZjViMGE2MGYyNTgyODI4MGM2NDNmMDRjMjEwZTYyNi4uMjA0MDYw
YmM0YzUxZmJkYWVhZDRmZmZiMzNiYWNiNGQ3Njk3MDcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgV2Vi
SURCU2VydmVyQ29ubmVjdGlvbjo6cm9sbGJhY2tUcmFuc2FjdGlvblN5bmMoaW50NjRfdCB0cmFu
c2FjdGlvbklEKQogICAgIHJldHVybiBzdWNjZXNzOwogfQogCi12b2lkIFdlYklEQlNlcnZlckNv
bm5lY3Rpb246OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGludDY0X3QgZGF0
YWJhc2VJRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiwgSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SURz
LCBjb25zdCBWZWN0b3I8VmVjdG9yPFJlZlB0cjxJREJLZXk+Pj4mIGluZGV4S2V5cywgc3RkOjpm
dW5jdGlvbjx2b2lkIChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNh
bGxiYWNrKQordm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpzZXRJbmRleEtleXMoaW50NjRf
dCwgaW50NjRfdCwgaW50NjRfdCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIElEQktl
eSYsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8UmVmUHRyPElE
QktleT4+PiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9y
Pik+KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCA0ZTkyMzkwNTE2ZDlmOGZhYWZkYTA2Y2IwZDgzYzI2OWIzZWVhZDk5Li5kM2ViMTBkZDA0
ZTg5MTUxZTRmMTJiOGYyZmMzY2Y3MGJmYTQxZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTYxLDEyICs2MSwxMiBAQCB2b2lkIFdlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQordm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29u
bmVjdGlvbiYpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOwogfQogCi12b2lkIFdlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKQordm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tXZWJQcm9jZXNzUGx1Z0luLm1tCmluZGV4IDg0Y2I1MTc5MmNhZWFhMzY5YzFjYWU0YzdmZDEx
ODQ2NjY4NGFlMjMuLjAwMjRkNmExOTZiY2FmMjRiYjA3OTUzNGQ3NGYyMjFjNzNiNWIwOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS1dlYlByb2Nlc3NQbHVnSW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5tbQpAQCAtNTIsNyArNTIs
NyBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLXN0YXRpYyB2
b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tC
dW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewogICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKnBsdWdJbkNvbnRyb2xsZXIgPSAo
V0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgaWQgPFdLV2Vi
UHJvY2Vzc1BsdWdJbj4gcHJpbmNpcGFsQ2xhc3NJbnN0YW5jZSA9IHBsdWdJbkNvbnRyb2xsZXIt
Pl9wcmluY2lwYWxDbGFzc0luc3RhbmNlLmdldCgpOwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMg
dm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIGNvbnN0IHZvaWQqCiAgICAgICAgIFtwcmluY2lwYWxDbGFzc0luc3RhbmNlIHdlYlByb2Nl
c3NQbHVnSW46cGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xs
ZXI6d3JhcHBlcigqdG9JbXBsKHBhZ2UpKV07CiB9CiAKLXN0YXRpYyB2b2lkIHdpbGxEZXN0cm95
UGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUmVmLCBX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXS1dl
YlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICpwbHVnSW5Db250cm9sbGVyID0gKFdLV2ViUHJvY2Vz
c1BsdWdJbkNvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGlkIDxXS1dlYlByb2Nlc3NQbHVn
SW4+IHByaW5jaXBhbENsYXNzSW5zdGFuY2UgPSBwbHVnSW5Db250cm9sbGVyLT5fcHJpbmNpcGFs
Q2xhc3NJbnN0YW5jZS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmlu
ZGV4IDJmYjhmOTUzOWVjYzgzMTE0ZDI2YTY2YTZhYzQzNzc3NjZjYmY4ODcuLjU2NzBmYTUzOTY3
NGZkN2UxODgxYTVhZTNkMjdlN2QyMWVkYzlkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlci5tbQpAQCAtNzgsNyArNzgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIHsKICAgICBSZXRhaW5QdHI8X1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnk+IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKIH0KIAotc3RhdGljIHZvaWQg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YVJlZiwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlciAqcGx1Z2luQ29udGV4dENvbnRyb2xsZXIgPSAoV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWRE
ZWxlZ2F0ZSA9IHBsdWdpbkNvbnRleHRDb250cm9sbGVyLT5fbG9hZERlbGVnYXRlLmdldCgpOwpA
QCAtODcsNyArODcsNyBAQCBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUgogICAgICAgICBbbG9hZERl
bGVnYXRlIHdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6cGx1Z2luQ29u
dGV4dENvbnRyb2xsZXIgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTp3cmFwcGVyKCp0
b0ltcGwoZnJhbWUpKV07CiB9CiAKLXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgKnVzZXJEYXRhUmVmLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
S1R5cGVSZWYgKiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0g
KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87
CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBwbHVnaW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWRE
ZWxlZ2F0ZS5nZXQoKTsKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHAK
ICAgICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAot
c3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKIHsKICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgKnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBw
bHVnaW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTEwNSw3ICsx
MDUsNyBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgd2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwbHVnaW5Db250ZXh0Q29udHJv
bGxlciBkaWRGaW5pc2hMb2FkRm9yRnJhbWU6d3JhcHBlcigqdG9JbXBsKGZyYW1lKSldOwogfQog
Ci1zdGF0aWMgdm9pZCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
IHNjcmlwdFdvcmxkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZ2xvYmFs
T2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9hZERlbGVnYXRl
ID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC0xMTQs
NyArMTE0LDcgQEAgc3RhdGljIHZvaWQgZ2xvYmFsT2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVIKICAgICAgICAgW2xvYWREZWxlZ2F0
ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRD
b250cm9sbGVyIGdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWU6d3JhcHBlcigqdG9JbXBs
KGZyYW1lKSkgaW5TY3JpcHRXb3JsZDp3cmFwcGVyKCp0b0ltcGwoc2NyaXB0V29ybGQpKV07CiB9
CiAKLXN0YXRpYyB2b2lkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJh
cmNoeShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZios
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8g
bG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0
KCk7CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGll
cmFyY2h5KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGYKICAgICAgICAg
W2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBs
dWdpbkNvbnRleHRDb250cm9sbGVyIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeTp3cmFwcGVy
KCp0b0ltcGwoZnJhbWUpKV07CiB9CiAKLXN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVm
KiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENvbW1p
dExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwog
ICAgIGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVs
ZWdhdGUuZ2V0KCk7CkBAIC0xMzIsNyArMTMyLDcgQEAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLAog
ICAgICAgICBbbG9hZERlbGVnYXRlIHdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXI6cGx1Z2luQ29udGV4dENvbnRyb2xsZXIgZGlkQ29tbWl0TG9hZEZvckZyYW1lOndyYXBw
ZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9p
ZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAg
ICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250
ZXh0Q29udHJvbGxlciA9IChXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgKiljbGllbnRJbmZvOwogICAgIGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENv
bnRyb2xsZXItPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGlj
IHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYKICAgICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3Rh
dGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiB3a0Vycm9yLCBXS1R5cGVSZWYq
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmFpbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJh
bWUsIFdLRXJyb3JSZWYgd2tFcnJvciwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKIHsKICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKnBs
dWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBwbHVnaW5D
b250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKQEAgLTE1MCw3ICsxNTAsNyBA
QCBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmCiAgICAgICAgIFtsb2FkRGVsZWdhdGUgd2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwbHVnaW5Db250ZXh0Q29udHJvbGxlciBk
aWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpIGVycm9y
OndyYXBwZXIoKnRvSW1wbCh3a0Vycm9yKSldOwogfQogCi1zdGF0aWMgdm9pZCBkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVm
KiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVmKiwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXIgKnBsdWdpbkNvbnRleHRDb250cm9sbGVyID0gKFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CiAgICAgYXV0byBs
b2FkRGVsZWdhdGUgPSBwbHVnaW5Db250ZXh0Q29udHJvbGxlci0+X2xvYWREZWxlZ2F0ZS5nZXQo
KTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBzdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbQogICAgIH0KIH0K
IAotc3RhdGljIHZvaWQgZGlkTGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9p
ZCBkaWRMYXlvdXRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJh
bWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwogICAgIGF1
dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVsZWdhdGUu
Z2V0KCk7CkBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIHZvaWQgZGlkTGF5b3V0Rm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnMKICAgICAg
ICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
OnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZExheW91dEZvckZyYW1lOndyYXBwZXIoKnRvSW1w
bChmcmFtZSkpXTsKIH0KIAotc3RhdGljIHZvaWQgZGlkTGF5b3V0KFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0xheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lcywgV0tUeXBlUmVmKiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZExheW91dChXS0J1bmRsZVBh
Z2VSZWYsIFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBXS1R5cGVSZWYqLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQogewogICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqcGx1Z2luQ29udGV4dENvbnRyb2xsZXIgPSAoV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKICAgICBhdXRvIGxvYWREZWxl
Z2F0ZSA9IHBsdWdpbkNvbnRleHRDb250cm9sbGVyLT5fbG9hZERlbGVnYXRlLmdldCgpOwpAQCAt
MTgyLDcgKzE4Miw3IEBAIHN0YXRpYyB2b2lkIGRpZExheW91dChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9uZXMsIFdLVHlwCiAgICAgICAgIFtsb2FkRGVs
ZWdhdGUgd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwbHVnaW5Db250
ZXh0Q29udHJvbGxlciByZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpyZW5kZXJpbmdQcm9ncmVz
c0V2ZW50cyh0b0xheW91dE1pbGVzdG9uZXMobWlsZXN0b25lcykpXTsKIH0KIAotc3RhdGljIHZv
aWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9IChX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwog
ICAgIGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2FkRGVs
ZWdhdGUuZ2V0KCk7CkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIHZvaWQgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGwK
ICAgICAgICAgW2xvYWREZWxlZ2F0ZSB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckZyYW1lOndyYXBwZXIoKnRvSW1wbChmcmFtZSkpXTsKIH0KIAotc3RhdGljIHZvaWQg
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBk
aWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpwbHVnaW5Db250ZXh0Q29udHJvbGxlciA9
IChXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZv
OwogICAgIGF1dG8gbG9hZERlbGVnYXRlID0gcGx1Z2luQ29udGV4dENvbnRyb2xsZXItPl9sb2Fk
RGVsZWdhdGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW4uaAppbmRleCA2MDRlNjExMjk3ZGQ4MmYxNDczNWYwZjFjMTYyNTM3MWU1
ZDQxYTg1Li41OTI4NzFlNTQyZDExZjEyNGZlZjk3ODZjMWVhYmEyNjliZjhlNDM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAg
LTEwOSw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIC8vIFBsdWdpbiBmdW5jdGlvbnMuCiAgICAg
dmlydHVhbCBib29sIGluaXRpYWxpemUoY29uc3QgUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdEluV2lu
ZG93Q29vcmRpbmF0ZXMpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRyb2xUaW50cyhXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTbmFwc2hvdHRp
bmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFNoYXJlYWJsZUJpdG1hcD4gc25hcHNob3QoKSBvdmVycmlkZTsKQEAgLTE0MiwxNiArMTQy
LDE2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpIG92ZXJyaWRl
IHsgfQogICAgIHZpcnR1YWwgTlBPYmplY3QqIHBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpIG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2Vk
KGJvb2wpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVz
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRp
bmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hh
bmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92
ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29s
KSBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkgb3ZlcnJp
ZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExh
eWVySG9zdGluZ01vZGUpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgV2ViQ29yZTo6U2Nyb2xs
YmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9ob3Jpem9udGFs
U2Nyb2xsYmFyLmdldCgpOyB9CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRp
Y2FsU2Nyb2xsYmFyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5nZWQoYm9vbCkg
b3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZChib29sKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmlu
ZyYgZm9ybVZhbHVlKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBnZXRGb3JtVmFsdWUoU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaGFuZGxlU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29y
ZTo6U2Nyb2xsR3JhbnVsYXJpdHkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGxpdmVSZXNvdXJjZURhdGEoKSBjb25zdCBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQppbmRleCBlNTA4ZGQ3OWY5NGY4NGU1OGUzNTEyZmYxNGNjNmQwM2UxZjgxOTc2Li5mZGM3
YWZiZWFiZjkxNGJiNThhZmNkOTg1MDljMjdlYzkzZTZkY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMjY4LDYgKzI2
OCw3IEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50CiAKIC0gKGlkKWFjY2Vz
c2liaWxpdHlIaXRUZXN0OihOU1BvaW50KXBvaW50CiB7CisgICAgVU5VU0VEX1BBUkFNKHBvaW50
KTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMjk4LDYgKzI5OSw3IEBAIC0gKGlkKWluaXRX
aXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbgogCiAtIChpZDxDQUFjdGlv
bj4pYWN0aW9uRm9yS2V5OihOU1N0cmluZyAqKWtleQogeworICAgIFVOVVNFRF9QQVJBTShrZXkp
OwogICAgIHJldHVybiBuaWw7CiB9CiAKQEAgLTM2NywyNiArMzY5LDMxIEBAIC0gKHZvaWQpc2F2
ZVRvUERGCiAKIC0gKHZvaWQpcGRmTGF5ZXJDb250cm9sbGVyOihQREZMYXllckNvbnRyb2xsZXIg
KilwZGZMYXllckNvbnRyb2xsZXIgY2xpY2tlZExpbmtXaXRoVVJMOihOU1VSTCAqKXVybAogewor
ICAgIFVOVVNFRF9QQVJBTShwZGZMYXllckNvbnRyb2xsZXIpOwogICAgIF9wZGZQbHVnaW4tPmNs
aWNrZWRMaW5rKHVybCk7CiB9CiAKIC0gKHZvaWQpcGRmTGF5ZXJDb250cm9sbGVyOihQREZMYXll
ckNvbnRyb2xsZXIgKilwZGZMYXllckNvbnRyb2xsZXIgZGlkQ2hhbmdlQWN0aXZlQW5ub3RhdGlv
bjooUERGQW5ub3RhdGlvbiAqKWFubm90YXRpb24KIHsKKyAgICBVTlVTRURfUEFSQU0ocGRmTGF5
ZXJDb250cm9sbGVyKTsKICAgICBfcGRmUGx1Z2luLT5zZXRBY3RpdmVBbm5vdGF0aW9uKGFubm90
YXRpb24pOwogfQogCiAtICh2b2lkKXBkZkxheWVyQ29udHJvbGxlcjooUERGTGF5ZXJDb250cm9s
bGVyICopcGRmTGF5ZXJDb250cm9sbGVyIGRpZENoYW5nZUNvbnRlbnRTY2FsZUZhY3RvcjooQ0dG
bG9hdClzY2FsZUZhY3RvcgogeworICAgIFVOVVNFRF9QQVJBTShwZGZMYXllckNvbnRyb2xsZXIp
OwogICAgIF9wZGZQbHVnaW4tPm5vdGlmeUNvbnRlbnRTY2FsZUZhY3RvckNoYW5nZWQoc2NhbGVG
YWN0b3IpOwogfQogCiAtICh2b2lkKXBkZkxheWVyQ29udHJvbGxlcjooUERGTGF5ZXJDb250cm9s
bGVyICopcGRmTGF5ZXJDb250cm9sbGVyIGRpZENoYW5nZURpc3BsYXlNb2RlOihpbnQpbW9kZQog
eworICAgIFVOVVNFRF9QQVJBTShwZGZMYXllckNvbnRyb2xsZXIpOwogICAgIF9wZGZQbHVnaW4t
Pm5vdGlmeURpc3BsYXlNb2RlQ2hhbmdlZChtb2RlKTsKIH0KIAogLSAodm9pZClwZGZMYXllckNv
bnRyb2xsZXI6KFBERkxheWVyQ29udHJvbGxlciAqKXBkZkxheWVyQ29udHJvbGxlciBkaWRDaGFu
Z2VTZWxlY3Rpb246KFBERlNlbGVjdGlvbiAqKXNlbGVjdGlvbgogeworICAgIFVOVVNFRF9QQVJB
TShwZGZMYXllckNvbnRyb2xsZXIpOwogICAgIF9wZGZQbHVnaW4tPm5vdGlmeVNlbGVjdGlvbkNo
YW5nZWQoc2VsZWN0aW9uKTsKIH0KIApAQCAtODE3LDcgKzgyNCw3IEBAIHZvaWQgUERGUGx1Z2lu
OjphZGRBcmNoaXZlUmVzb3VyY2UoKQogICAgIHBsdWdpblZpZXcoKS0+ZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+bG9hZGVyKCktPmFkZEFyY2hpdmVSZXNvdXJjZShyZXNvdXJjZS5yZWxlYXNlKCkpOwog
fQogCi1zdGF0aWMgdm9pZCBqc1BERkRvY0luaXRpYWxpemUoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0KQorc3RhdGljIHZvaWQganNQREZEb2NJbml0aWFsaXplKEpTQ29udGV4
dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewogICAgIFBERlBsdWdpbiogcGRmVmlldyA9IHN0
YXRpY19jYXN0PFBERlBsdWdpbio+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKICAgICBw
ZGZWaWV3LT5yZWYoKTsKQEAgLTgyOSw3ICs4MzYsNyBAQCBzdGF0aWMgdm9pZCBqc1BERkRvY0Zp
bmFsaXplKEpTT2JqZWN0UmVmIG9iamVjdCkKICAgICBwZGZWaWV3LT5kZXJlZigpOwogfQogCi1K
U1ZhbHVlUmVmIFBERlBsdWdpbjo6anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK0pTVmFsdWVSZWYgUERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpTQ29udGV4dFJlZiBjdHgs
IEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QsIGNvbnN0IEpTVmFs
dWVSZWZbXSwgSlNWYWx1ZVJlZiopCiB7CiAgICAgUERGUGx1Z2luKiBwZGZWaWV3ID0gc3RhdGlj
X2Nhc3Q8UERGUGx1Z2luKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKIApAQCAt
OTUyLDE0ICs5NTksMTQgQEAgdm9pZCBQREZQbHVnaW46OnN0cmVhbURpZEZpbmlzaExvYWRpbmco
dWludDY0X3Qgc3RyZWFtSUQpCiAgICAgcGRmRG9jdW1lbnREaWRMb2FkKCk7CiB9CiAKLXZvaWQg
UERGUGx1Z2luOjpzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHdhc0NhbmNl
bGxlZCkKK3ZvaWQgUERGUGx1Z2luOjpzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBi
b29sKQogewogICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtSUQsIHN0cmVhbUlEID09IHBkZkRvY3Vt
ZW50UmVxdWVzdElEKTsKIAogICAgIG1fZGF0YS5jbGVhcigpOwogfQogCi12b2lkIFBERlBsdWdp
bjo6bWFudWFsU3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFVSTCYgcmVzcG9uc2VVUkws
IHVpbnQzMl90IHN0cmVhbUxlbmd0aCwgIHVpbnQzMl90IGxhc3RNb2RpZmllZFRpbWUsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgaGVhZGVycywgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRGaWxlbmFtZSkKK3ZvaWQgUERGUGx1Z2luOjptYW51YWxTdHJlYW1EaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgVVJMJiwgdWludDMyX3QsICB1aW50MzJfdCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkK
IHsKICAgICBtX3N1Z2dlc3RlZEZpbGVuYW1lID0gc3VnZ2VzdGVkRmlsZW5hbWU7CiAKQEAgLTEw
OTcsNyArMTEwNCw3IEBAIHZvaWQgUERGUGx1Z2luOjpkZXN0cm95KCkKIAogdm9pZCBQREZQbHVn
aW46OnVwZGF0ZUNvbnRyb2xUaW50cyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCkK
IHsKLSAgICBBU1NFUlQoZ3JhcGhpY3NDb250ZXh0LT51cGRhdGluZ0NvbnRyb2xUaW50cygpKTsK
KyAgICBBU1NFUlRfVU5VU0VEKGdyYXBoaWNzQ29udGV4dCwgZ3JhcGhpY3NDb250ZXh0LT51cGRh
dGluZ0NvbnRyb2xUaW50cygpKTsKIAogICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIpCiAg
ICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwpAQCAtMTQ5Niw3ICsx
NTAzLDcgQEAgYm9vbCBQREZQbHVnaW46OmhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgV2ViS2V5
Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBQREZQ
bHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNv
bnN0IFN0cmluZyYgYXJndW1lbnQpCitib29sIFBERlBsdWdpbjo6aGFuZGxlRWRpdGluZ0NvbW1h
bmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJikKIHsKICAgICBpZiAo
Y29tbWFuZE5hbWUgPT0gImNvcHkiKQogICAgICAgICBbbV9wZGZMYXllckNvbnRyb2xsZXIgY29w
eVNlbGVjdGlvbl07CkBAIC0xNTM1LDcgKzE1NDIsNyBAQCB2b2lkIFBERlBsdWdpbjo6c2V0U2Ny
b2xsT2Zmc2V0KGNvbnN0IEludFBvaW50JiBvZmZzZXQpCiAgICAgW0NBVHJhbnNhY3Rpb24gY29t
bWl0XTsKIH0KIAotdm9pZCBQREZQbHVnaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQREZQbHVnaW46Omlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0
JikKIHsKICAgICBpZiAoc2Nyb2xsYmFyID09IGhvcml6b250YWxTY3JvbGxiYXIoKSkKICAgICAg
ICAgW21faG9yaXpvbnRhbFNjcm9sbGJhckxheWVyIHNldE5lZWRzRGlzcGxheV07CkBAIC0xNTQz
LDcgKzE1NTAsNyBAQCB2b2lkIFBERlBsdWdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Ny
b2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlYwogICAgICAgICBbbV92ZXJ0aWNh
bFNjcm9sbGJhckxheWVyIHNldE5lZWRzRGlzcGxheV07CiB9CiAKLXZvaWQgUERGUGx1Z2luOjpp
bnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQREZQ
bHVnaW46OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKQogewogICAg
IFttX3Njcm9sbENvcm5lckxheWVyIHNldE5lZWRzRGlzcGxheV07CiB9CkBAIC0xNzAyLDcgKzE3
MDksNyBAQCB2b2lkIFBERlBsdWdpbjo6c2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1dGVkU3RyaW5n
KE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBDRwogICAgIHdlYkZyYW1lKCktPnBhZ2UoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChk
aWN0aW9uYXJ5UG9wdXBJbmZvKSk7CiB9CiAKLXVuc2lnbmVkIFBERlBsdWdpbjo6Y291bnRGaW5k
TWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgV2ViQ29yZTo6RmluZE9wdGlvbnMgb3B0aW9u
cywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkKK3Vuc2lnbmVkIFBERlBsdWdpbjo6Y291bnRGaW5k
TWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgV2ViQ29yZTo6RmluZE9wdGlvbnMgb3B0aW9u
cywgdW5zaWduZWQpCiB7CiAgICAgaWYgKCF0YXJnZXQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVy
biAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGVhNWEzOThkOGNkMTNiZTFiZjdmOGYy
NjY4NTkxMTM3ZGM1Mzc5NDIuLmQ0NTgzMDk3NTI2ZTM5M2JjZjc4NjM4NWViYzUzMTdiYTQ0ZWVh
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg4Niw3ICs4ODYsNyBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAjaWYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkgY29uc3QK
IHsKLSAgICBBU1NFUlQobV9wYWdlLT5jb3JlUGFnZSgpID09IHBhZ2UpOworICAgIEFTU0VSVF9V
TlVTRUQocGFnZSwgbV9wYWdlLT5jb3JlUGFnZSgpID09IHBhZ2UpOwogICAgIGlmIChtX3BhZ2Ut
PmRyYXdpbmdBcmVhKCktPnR5cGUoKSA9PSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUp
CiAgICAgICAgIHJldHVybiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKG1fcGFn
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmgKaW5kZXggZTQ1Mzg2OTU2MDk1NDg3YjVkNmMwODU5ZTBkODAwNjZhYzVjMjYyOS4uODBmZjg0
NmQzYWM1MjU3ODQ0NmMzZGQ2OTdjYWNhNDVmZDA3MTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTE1MCwxNCArMTUwLDE0IEBA
IHByaXZhdGU6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBVc2VkIGJ5IFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
bGF5ZXJQb3NpdGlvbikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0
IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29sb3JTcGFjZShjb25zdCBDb2xvclNwYWNlRGF0YSYpIHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBv
aW50IG9yaWdpbikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zaWVudFpvb20oZG91
YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZs
b2F0UG9pbnQpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJ
RCh1aW50NjRfdCBjYWxsYmFja0lEKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmly
dHVhbCB2b2lkIGFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRCh1aW50NjRfdCkgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQogI2VuZGlmCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBM
QVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2VPdmVybGF5LmgKaW5kZXggNTc2ZjVhOTc1N2Y3MzVmN2JmODc1M2RjNGFmMzhhYWMxNTY2
YjA4ZS4uMzU5NDdhNWIyZWM2OWRjZmNiMzhjNTNiZDQxMDA0NWYxNmZkYmViZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2Nyb2xsRnJh
bWUoV2ViUGFnZU92ZXJsYXkmLCBXZWJGcmFtZSopIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQot
ICAgICAgICB2aXJ0dWFsIEREQWN0aW9uQ29udGV4dCAqYWN0aW9uQ29udGV4dEZvclJlc3VsdEF0
UG9pbnQoV2ViUGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uLCBSZWZQ
dHI8V2ViQ29yZTo6UmFuZ2U+JiByYW5nZUhhbmRsZSkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAg
ICAgICB2aXJ0dWFsIEREQWN0aW9uQ29udGV4dCAqYWN0aW9uQ29udGV4dEZvclJlc3VsdEF0UG9p
bnQoV2ViUGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpGbG9hdFBvaW50LCBSZWZQdHI8V2ViQ29yZTo6
UmFuZ2U+JikgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YURl
dGVjdG9yc0RpZFByZXNlbnRVSShXZWJQYWdlT3ZlcmxheSYpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGF0YURldGVjdG9yc0RpZENoYW5nZVVJKFdlYlBhZ2VPdmVybGF5JikgeyB9CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFdlYlBhZ2VPdmVybGF5Jikg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KaW5kZXggYTQ0MTE0MzcxNjJk
ZTA0ZDUxYzVjN2QxNTZlYTRkMWIzZmJjY2RiOS4uZDQ2ZjZmOWM0YWVlM2IwZGM2MjJkYWE4MjNk
MWE3N2Y0ZDUwMjE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQpAQCAt
OTMsNiArOTMsNyBAQCAtICh2b2lkKWFuaW1hdGlvbkRpZFN0YXJ0OihDQUFuaW1hdGlvbiAqKWFu
aW1hdGlvbgogCiAtICh2b2lkKWFuaW1hdGlvbkRpZFN0b3A6KENBQW5pbWF0aW9uICopYW5pbWF0
aW9uIGZpbmlzaGVkOihCT09MKWZpbmlzaGVkCiB7CisgICAgVU5VU0VEX1BBUkFNKGZpbmlzaGVk
KTsKICAgICBpZiAoIV9sYXllclRyZWVIb3N0KQogICAgICAgICByZXR1cm47CiAKQEAgLTQ5NCw3
ICs0OTUsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShj
b25zdCBDb2xvciYgdmFsdWUpCiAgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtleWZy
YW1lVmFsdWUodmFsdWUpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNl
dEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0
RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQpCiB7CiAgICAg
aWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDE4YjA0YWI5NGQxMTQzOGFjMGJmNzMzMmM1YzM3Yzgw
N2NiYTk4YzcuLjNkMzcxMzZmZjgxNjFmZjBiOWZiYjliMjc0ZTRkNzEwZDExZGZmN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KCkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OmNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQog
ewotICAgIEFTU0VSVChtX3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJRCA9PSBsYXllci0+bGF5ZXJJ
RCgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGxheWVyLCBtX3Byb3BlcnRpZXMuY2xvbmVkTGF5ZXJJ
RCA9PSBsYXllci0+bGF5ZXJJRCgpKTsKICAgICAKICAgICBpZiAoIW1fcHJvcGVydGllcy5jaGFu
Z2VkUHJvcGVydGllcykKICAgICAgICAgbV9jb250ZXh0LT5sYXllclByb3BlcnR5Q2hhbmdlZFdo
aWxlQnVpbGRpbmdUcmFuc2FjdGlvbigqdGhpcyk7CkBAIC01NTIsNyArNTUyLDcgQEAgQ0ZUeXBl
UmVmIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y29udGVudHMoKSBjb25zdAogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Q29udGVudHMoQ0ZU
eXBlUmVmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldENvbnRlbnRzKENG
VHlwZVJlZikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5k
ZXggZjEzMWQ1ZTJmMDgyNGJiNTI0ODMzNTE5NmYwYmNjYzYyNjYwMWVhYy4uMWU3NWU5YWFhOWM3
YzA5YzMyMmRkNzUwMTY0NjVlY2Y1YzA5ZjkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JikKIHsKIH0KIAotdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQordm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJikKIHsKIH0K
IApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllCiAgICAgc2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IElu
dFNpemUmIGxheWVyUG9zaXRpb24pCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1
cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSW50U2l6ZSYpCiB7
CiAgICAgbV92aWV3U2l6ZSA9IHZpZXdTaXplOwogICAgIG1fd2ViUGFnZS5zZXRTaXplKHZpZXdT
aXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDJm
NDViMmY0YjU5NWM1MDViODQ2Y2VhZjgyZjM4MTY2MDFkMDQwZWQuLjg3YzhhZGJkMTk1ZWRiYWVk
ZjZlNDI5YTY3YTRlZGZhMDM0MTgwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbQpAQCAtMTA2LDExICsxMDYsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXROZWVkc0Rpc3Bs
YXlJblJlY3QoY29uc3QgSW50UmVjdCYpCiB7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRT
aXplJiBzY3JvbGxEZWx0YSkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNj
cm9sbChjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYpCiB7CiAgICAgdXBkYXRlU2Nyb2xs
ZWRFeHBvc2VkUmVjdCgpOwogfQpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSog
ZnJhbWUsCiAgICAgdXBkYXRlUm9vdExheWVycygpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5GcmFtZUNv
bnRlbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikKIHsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IDE2NGFlNTc0NTUyMjI1MmVjZDMz
NjYzNzE4MTkyNWIwZDFmNDljNTQuLmI4ZTkzODA4MTFiMjQ1YTgxYTM4OTE3Zjg3YWI2MjlkMWMz
Mjc2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0K
QEAgLTg5LDExICs4OSwxNCBAQCAtIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eVBhcmFtZXRlcml6
ZWRBdHRyaWJ1dGVOYW1lcwogCiAtIChCT09MKWFjY2Vzc2liaWxpdHlJc0F0dHJpYnV0ZVNldHRh
YmxlOihOU1N0cmluZyAqKWF0dHJpYnV0ZQogeworICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGUp
OwogICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6KGlk
KXZhbHVlIGZvckF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKKyAgICBVTlVTRURf
UEFSQU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGUpOwogfQogCiAtIChOU1Bv
aW50KWNvbnZlcnRTY3JlZW5Qb2ludFRvUm9vdFZpZXc6KE5TUG9pbnQpcG9pbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRl
eCA0ZGI2YWI3NzE3ZGRiY2M1MzI0MWY3M2MwOGQ3Y2I5NTA2MWJiYzVmLi4xNTRhNTRiMjNiZjU4
YzdhNzAwNTYxMzMxYWQ2ZmZmMDljMjAwODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xMjksNyArMTI5LDcgQEAg
TlNPYmplY3QgKldlYlBhZ2U6OmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQbHVnaW4o
KQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNE
aWRDaGFuZ2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit2b2lkIFdlYlBhZ2U6
OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYp
CiB7CiB9CiAKQEAgLTUzNiw3ICs1MzYsNyBAQCBEaWN0aW9uYXJ5UG9wdXBJbmZvIFdlYlBhZ2U6
OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZShGcmFtZSogZnJhbWUsIFJhbmdlJiByYQogCiAg
ICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250
TWFuYWdlcl07CiAKLSAgICBbbnNBdHRyaWJ1dGVkU3RyaW5nIGVudW1lcmF0ZUF0dHJpYnV0ZXNJ
blJhbmdlOk5TTWFrZVJhbmdlKDAsIFtuc0F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkgb3B0aW9u
czowIHVzaW5nQmxvY2s6XihOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMsIE5TUmFuZ2UgcmFuZ2Us
IEJPT0wgKnN0b3ApIHsKKyAgICBbbnNBdHRyaWJ1dGVkU3RyaW5nIGVudW1lcmF0ZUF0dHJpYnV0
ZXNJblJhbmdlOk5TTWFrZVJhbmdlKDAsIFtuc0F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkgb3B0
aW9uczowIHVzaW5nQmxvY2s6XihOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMsIE5TUmFuZ2UgcmFu
Z2UsIEJPT0wgKikgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gc2Nh
bGVkQXR0cmlidXRlcyA9IGFkb3B0TlMoW2F0dHJpYnV0ZXMgbXV0YWJsZUNvcHldKTsKIAogICAg
ICAgICBOU0ZvbnQgKmZvbnQgPSBbc2NhbGVkQXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250
QXR0cmlidXRlTmFtZV07CkBAIC05MjYsNyArOTI2LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFn
ZXNUb1BERkZyb21QREZEb2N1bWVudChDR0NvbnRleHRSZWYgY29udGV4dCwgUERGRG9jdW1lbnQg
KnAKIH0KIAogI2lmIEVOQUJMRShXRUJHTCkKLVdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSBXZWJQ
YWdlOjp3ZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXJs
KQorV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IFdlYlBhZ2U6OndlYkdMUG9saWN5Rm9yVVJMKFdl
YkZyYW1lKiwgY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgdWludDMyX3QgcG9saWN5UmVzdWx0
ID0gMDsKIApAQCAtOTM2LDcgKzkzNiw3IEBAIFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSBXZWJQ
YWdlOjp3ZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluCiAgICAg
cmV0dXJuIFdlYkdMQWxsb3dDcmVhdGlvbjsKIH0KIAotV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5
IFdlYlBhZ2U6OnJlc29sdmVXZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgdXJsKQorV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IFdlYlBhZ2U6OnJlc29sdmVX
ZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIHVp
bnQzMl90IHBvbGljeVJlc3VsdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGM3YzE4N2VmMjA3MzQwODk4ZDhkOTRiMDNkMzFkN2U3NGZmOTVjYjEu
LjJkZDY2ZjgxYmVjNjI2MDU3MzlkZmFmMDcxOTRkNjYxNzI0MzIzMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTAxMiw3ICsxMDEyLDcgQEAgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyJiBXZWJQcm9jZXNzOjp3ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIo
KQogdm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQo
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogewogICAgIEFTU0VS
VChtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgQVNTRVJUKG1fd2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworICAgIEFTU0VSVF9VTlVT
RUQoY29ubmVjdGlvbiwgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVj
dGlvbik7CiAKICAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRIZWxwZXJzLmNtYWtlCmluZGV4IDJhMjIzNTJhNTJjYWU2ZjFiMWRlNjlhYmZlMTRi
MjhiYmJlNmRkMTEuLjkzYmE2MzUyYzY1ZDk3NDk1MTQzOWJkYWZiY2Y2NTE2NTg3NTk2MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRIZWxwZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZS9XZWJLaXRIZWxwZXJzLmNtYWtlCkBAIC0zMiw3ICszMiw3IEBAIG1hY3JvKFdFQktJVF9T
RVRfRVhUUkFfQ09NUElMRVJfRkxBR1MgX3RhcmdldCkKICAgICAgICAgaWYgKE9QVElPTl9FTkFC
TEVfV0VSUk9SKQogICAgICAgICAgICAgIyBGSVhNRTogV2hlbiB3ZSB1c2UgLWZuby10cmVlLWRj
ZSB0byBzdXBwb3J0IHRoZSBqc0NTdGFjayBicmFuY2ggbWVyZ2UsIGJ1aWxkIGVycm9yIG9jY3Vy
cyBkdWUgdG8gdGhlIHVuaW5pdGlhbGl6YXRpb24uIFRlbXBvcmFyaWx5IHdlIHNldAogICAgICAg
ICAgICAgIyB1bmluaXRpYWxpemVkIGFzIGJ1aWxkIHdhcm5pbmcgaW4gb3JkZXIgdG8gc3VwcG9y
dCB0aGUganNDU3RhY2sgbWVyZ2UuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc3NzcuCi0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XZXJyb3Ig
LVduby1lcnJvcj11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZXJyb3I9dW5pbml0aWFsaXplZCAtV25v
LWVycm9yPWxpdGVyYWwtc3VmZml4ICR7T0xEX0NPTVBJTEVfRkxBR1N9IikKKyAgICAgICAgICAg
IHNldChPTERfQ09NUElMRV9GTEFHUyAiLVdlcnJvciAtV25vLWVycm9yPXVuaW5pdGlhbGl6ZWQg
LVduby1lcnJvcj1saXRlcmFsLXN1ZmZpeCAke09MRF9DT01QSUxFX0ZMQUdTfSIpCiAgICAgICAg
IGVuZGlmICgpCiAKICAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0gUFJP
UEVSVElFUwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDY5NTg5M2Ew
Y2RjMzYxMGY2NjgyMzA1ZmU0ZjYzNWJkZGEyMDljY2MuLmRkNmVhMTYwOTY0ZDcxYTRlODIzOGFh
NDg0MWVkNDA2ZWYyZDE4MDkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxNS0wMS0yNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFuZCBo
YW5kbGUgdGhlbSBhcyBidWlsZCBlcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZToKKwog
MjAxNS0wMS0yNiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gZ3RrZG9jIGRvZXMgbm90IGFwcGVhciBpbiBEZXZIZWxwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>