<?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>44499</bug_id>
          
          <creation_ts>2010-08-24 01:37:43 -0700</creation_ts>
          <short_desc>Web Inspector: RemoteInspectorFrontend can be renamed to InspectorFrontend</short_desc>
          <delta_ts>2010-08-24 23:58:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268396</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-24 01:37:43 -0700</bug_when>
    <thetext>As far as old version of InspectorFrontend was removed it is possible to rename RemoteInspectorFrontend to InspectorFrontend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268427</commentid>
    <comment_count>1</comment_count>
      <attachid>65243</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-24 02:10:41 -0700</bug_when>
    <thetext>Created attachment 65243
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268438</commentid>
    <comment_count>2</comment_count>
      <attachid>65243</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-24 02:24:05 -0700</bug_when>
    <thetext>Comment on attachment 65243
[patch] initial version.

just for trybots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268493</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-24 05:29:00 -0700</bug_when>
    <thetext>	M	WebCore/WebCore.pri
	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/GNUmakefile.am
	M	WebCore/WebCore.gyp/WebCore.gyp
	M	WebCore/inspector/InspectorDebuggerAgent.h
	M	WebCore/inspector/InspectorCSSStore.h
	M	WebCore/inspector/CodeGeneratorInspector.pm
	M	WebCore/inspector/InspectorDatabaseResource.cpp
	M	WebCore/inspector/InspectorDOMStorageResource.cpp
	M	WebCore/inspector/ConsoleMessage.cpp
	M	WebCore/inspector/InjectedScriptHost.cpp
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorStorageAgent.cpp
	M	WebCore/inspector/InspectorTimelineAgent.cpp
	M	WebCore/inspector/InspectorResource.cpp
	M	WebCore/inspector/InspectorBackend.h
	M	WebCore/inspector/InspectorProfilerAgent.cpp
	M	WebCore/inspector/InspectorDOMAgent.h
	M	WebCore/inspector/InspectorDebuggerAgent.cpp
	M	WebCore/inspector/InspectorCSSStore.cpp
	M	WebCore/inspector/InspectorApplicationCacheAgent.h
	M	WebCore/inspector/InspectorDOMStorageResource.h
	M	WebCore/inspector/InspectorDatabaseResource.h
	M	WebCore/inspector/ConsoleMessage.h
	M	WebCore/inspector/InjectedScriptHost.h
	M	WebCore/inspector/InspectorBackend.cpp
	M	WebCore/inspector/InspectorController.h
	M	WebCore/inspector/InspectorStorageAgent.h
	M	WebCore/inspector/InspectorTimelineAgent.h
	M	WebCore/inspector/InspectorResource.h
	M	WebCore/inspector/InspectorDOMAgent.cpp
	M	WebCore/inspector/InspectorApplicationCacheAgent.cpp
	M	WebCore/inspector/InspectorProfilerAgent.h
	M	WebCore/WebCore.xcodeproj/project.pbxproj
r65891 = b3d4ff4c0681a22b19fbd7e3f349b860201a09a9 (refs/remotes/trunk)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268510</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-24 06:18:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65891 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268654</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-24 11:01:54 -0700</bug_when>
    <thetext>This looks like it forgot DerivedSources.make. Might changes have been necessary
to that file? It still has rules to generate it:
http://trac.webkit.org/browser/trunk/WebCore/DerivedSources.make#L822

&gt; Remote%Frontend.h : %.idl $(INSPECTOR_GENERATOR_SCRIPTS)
&gt;    $(call generator_script, $(INSPECTOR_GENERATOR_SCRIPTS)) --outputDir .  --defines &quot;$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT&quot; --generator Inspector $&lt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268810</commentid>
    <comment_count>6</comment_count>
      <attachid>65326</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-24 14:43:45 -0700</bug_when>
    <thetext>Created attachment 65326
[PATCH] Follow up for DerivedSources.make</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268819</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-24 14:49:58 -0700</bug_when>
    <thetext>Reopening due to the problem above. Its possible other build systems may be affected as well, but I don&apos;t know them very well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268861</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-24 15:37:06 -0700</bug_when>
    <thetext>Committed r65943
	M	WebCore/ChangeLog
	M	WebCore/DerivedSources.make
r65943 = 5c75698d9813289ccc53ad7f367c6b3d2a3c60fd
http://trac.webkit.org/changeset/65943

Ilya, you are more familiar with the different build systems that were changed
for RemoteInspectorFrontend (since you added it). When you get in tomorrow,
it would be great if you could do a quick check to see if any other build systems
may need to be updated. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269057</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-24 23:58:12 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r65943
&gt;     M    WebCore/ChangeLog
&gt;     M    WebCore/DerivedSources.make
&gt; r65943 = 5c75698d9813289ccc53ad7f367c6b3d2a3c60fd
&gt; http://trac.webkit.org/changeset/65943
&gt; 
&gt; Ilya, you are more familiar with the different build systems that were changed
&gt; for RemoteInspectorFrontend (since you added it). When you get in tomorrow,
&gt; it would be great if you could do a quick check to see if any other build systems
&gt; may need to be updated. Thanks!

Thanks a lot. Looks like it was the only place which I missed in my patch.
This problem forced the build-system to generate the new version of inspector related files even if Inspector.idl has not been updated.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65243</attachid>
            <date>2010-08-24 02:10:41 -0700</date>
            <delta_ts>2010-08-24 05:29:12 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>80530</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODJmZjFjMC4uMGM1YjJmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjQgQEAKKzIwMTAtMDgtMjQgIElseWEgVGlraG9u
b3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjogUmVtb3RlSW5zcGVjdG9yRnJvbnRl
bmQgY2FuIGJlIHJlbmFtZWQgdG8gSW5zcGVjdG9yRnJvbnRlbmQuCisgICAgICAgIFRoZSBvbGQg
dmVyc2lvbiBvZiBJbnNwZWN0b3JGcm9udGVuZCB3YXMgcmVtb3ZlZCBzb21lIHRpbWUgYWdvIGFu
ZCBub3cKKyAgICAgICAgaXQgaXMgcG9zc2libGUgdG8gcmVuYW1lIHRoZSBuZXcgdmVyc2lvbiBv
ZiBpbnNwZWN0b3IgZnJvbnRlbmQgY2xhc3MgdG8gaXRzCisgICAgICAgIG9yaWdpbmFsIG5hbWUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ5OQor
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXA6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtOgorICAg
ICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xl
TWVzc2FnZTo6dXBkYXRlUmVwZWF0Q291bnRJbkNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhv
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHRIb3N0OjpwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6ZnJv
bnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZDo6ZGlzcGF0Y2hPbkluamVj
dGVkU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmQ6OmZyb250ZW5k
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU1N0b3JlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFn
ZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjppbnNw
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmZvY3VzTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjp3aW5kb3dWaXNpYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmFkZENvbnNvbGVNZXNzYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNsZWFyQ29uc29sZU1l
c3NhZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3Rl
ZFdpbmRvd1NjcmlwdE9iamVjdENsZWFyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6c2V0U2VhcmNoaW5nRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjpzZXRNb25pdG9yaW5nWEhSKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OnNob3dQYW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNj
b25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
cG9wdWxhdGVTY3JpcHRPYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OnBydW5lUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjptYWluUmVzb3VyY2VGaXJlZERPTUNv
bnRlbnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjptYWlu
UmVzb3VyY2VGaXJlZExvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZVJlc291cmNl
VHJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJs
ZVJlc291cmNlVHJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OnN0b3BUaW1lbGluZVByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OnBvc3RXb3JrZXJOb3RpZmljYXRpb25Ub0Zyb250ZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENyZWF0ZVdvcmtlcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWREZXN0cm95V29ya2VyKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNlbGVjdERhdGFiYXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRhYmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRVc2VET01TdG9yYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNlbGVjdERPTVN0b3JhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlRGVidWdnZXJG
cm9tRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5h
YmxlRGVidWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlz
YWJsZURlYnVnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmV2
YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpoYXNG
cm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZTo6YmluZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFz
ZVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlUmVzb3Vy
Y2U6OmJpbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNl
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0UGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpkaWRQYXJzZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpmYWlsZWRUb1BhcnNlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmRpZFBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmRpZENvbnRpbnVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3Rv
clByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6YWRkUHJvZmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVu
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXNldFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnRvZ2dsZVJl
Y29yZEJ1dHRvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnNldEZyb250ZW5k
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVNjcmlwdE9iamVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZTo6cmVsZWFzZVNjcmlwdE9iamVjdCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dG9yYWdlQWdlbnQ6Okluc3BlY3RvclN0b3JhZ2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclN0b3JhZ2VBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3Rv
cmFnZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RvcmFnZUFn
ZW50Ojpmcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50Lmg6CisKIDIwMTAtMDgtMjQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDgyZmMxOWUuLjZiN2QzMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysr
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOTgsNiArOTgsOCBAQCB3ZWJjb3JlX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0luc3BlY3RvckZyb250ZW5kLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBYnN0cmFjdFdvcmtlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBYnN0
cmFjdFdvcmtlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXJyYXlCdWZmZXIuY3Bw
IFwKQEAgLTU1MSw4ICs1NTMsNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNYTUxTZXJpYWxpemVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNYU0xUUHJvY2Vzc29yLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hT
TFRQcm9jZXNzb3IuaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JG
cm9udGVuZC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVtb3RlSW5zcGVjdG9yRnJv
bnRlbmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTdHlsZVNoZWV0c0Rh
dGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFtZXMuY3BwIFwKQEAgLTQ1MzgsNyArNDUz
OCw3IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFtZXMuY3BwIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvWE1MTmFtZXMuaDogJChXZWJDb3JlCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sYXR0
cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAogIyBBbGwgV2ViIElu
c3BlY3RvciBnZW5lcmF0ZWQgZmlsZXMgYXJlIGNyZWF0ZWQgd2l0aCB0aGlzIG9uZSBjYWxsIHRv
IENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KLURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JCYWNrZW5kU3R1Yi5qczogJChX
ZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2Vi
Q29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KK0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmQuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5z
cGVjdG9yRnJvbnRlbmQuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JCYWNrZW5kU3R1Yi5qczog
JChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQo
V2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KIAkkKEFNX1ZfR0VO
KSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdlYkNvcmUpL2luc3Bl
Y3RvciAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJ
RExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09S
RSkiIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVBVFVSRV9ERUZJTkVTKSIg
LS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CiAKIElETF9QQVRIIDo9IFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwCmluZGV4IGZlZDljMGQuLjE3OGU0NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5neXAvV2ViQ29yZS5neXAKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApA
QCAtMjg3LDggKzI4Nyw4IEBACiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJ
Uikvd2ViY29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAnLAogICAgICAgICAgICAg
JzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvSW5zcGVjdG9yQmFja2VuZFN0dWIu
anMnLAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9JbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oJywKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJjb3JlL1JlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCcsCi0gICAgICAg
ICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L1JlbW90ZUluc3BlY3RvckZy
b250ZW5kLmgnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNv
cmUvSW5zcGVjdG9yRnJvbnRlbmQuY3BwJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQvSW5zcGVjdG9yRnJvbnRlbmQuaCcsCiAgICAgICAgICAgXSwKICAg
ICAgICAgICAndmFyaWFibGVzJzogewogICAgICAgICAgICAgJ2dlbmVyYXRvcl9pbmNsdWRlX2Rp
cnMnOiBbCkBAIC03NTcsNyArNzU3LDcgQEAKICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFU
RV9ESVIpL3dlYmtpdC9YUGF0aEdyYW1tYXIuY3BwJywKIAogICAgICAgICAjIEFkZGl0aW9uYWwg
LmNwcCBmaWxlcyBmcm9tIHRoZSB3ZWJjb3JlX2luc3BlY3Rvcl9zb3VyY2VzIGxpc3QuCi0gICAg
ICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL1JlbW90ZUluc3BlY3RvckZy
b250ZW5kLmNwcCcsCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3Jl
L0luc3BlY3RvckZyb250ZW5kLmNwcCcsCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVf
RElSKS93ZWJjb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCcsCiAgICAgICBdLAog
ICAgICAgJ2NvbmRpdGlvbnMnOiBbCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIv
V2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAzMjk0ZWNkLi40NzdlMWJhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTU1NSw3ICs1
NTUsNyBAQCBpZGwuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ci5wbSBcCiBhZGRFeHRyYUNvbXBpbGVyKGlkbCkKIAogIyBHRU5FUkFUT1IgMjogaW5zcGVjdG9y
IGlkbCBjb21waWxlcgotaW5zcGVjdG9ySURMLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vUmVtb3RlJHtRTUFLRV9GSUxFX0JBU0V9RnJvbnRlbmQuY3BwICQke1dDX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9QmFja2VuZERpc3BhdGNoZXIuY3Bw
CitpbnNwZWN0b3JJREwub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FN
QUtFX0ZJTEVfQkFTRX1Gcm9udGVuZC5jcHAgJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8k
e1FNQUtFX0ZJTEVfQkFTRX1CYWNrZW5kRGlzcGF0Y2hlci5jcHAKIGluc3BlY3RvcklETC5pbnB1
dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCiBpbnNwZWN0b3JJREwud2tTY3JpcHQgPSAkJFBXRC9i
aW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiBpbnNwZWN0b3JJREwuY29tbWFu
ZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3RvciAkJGlu
c3BlY3RvcklETC53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVH1cIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5FUkFURURf
U09VUkNFU19ESVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtRTUFLRV9G
SUxFX05BTUV9CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1YWUzOTI3
Li4wNzk5NzUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU1Myw2
ICs1NTMsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xJbnNwZWN0b3JGcm9udGVuZC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckZyb250ZW5kLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXFdl
YkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNBYnN0cmFjdFdvcmtlci5jcHAiDQogCQkJCT4NCiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjE0NzcsMTQgKzIxNDg1LDYgQEAKIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xSZW1vdGVJbnNwZWN0b3JGcm9udGVu
ZC5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFJl
bW90ZUluc3BlY3RvckZyb250ZW5kLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUN
CiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFNWR0VsZW1lbnRGYWN0b3J5LmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCkBAIC01MTg4MSwxNCArNTE4ODEsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvclByb2ZpbGVyQWdl
bnQuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxpbnNwZWN0b3JcSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXElu
c3BlY3RvclJlc291cmNlLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUyNTMyYTkuLmMyN2E4YjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDcxLDcgKzEwNzEs
NyBAQAogCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNERG
MTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRGMzI4OUI1MTFBNDJBQUIwMDVB
QkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEYzMjg5QjMxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZh
bHVlcy5jcHAgKi87IH07CiAJCTRGMzI4OUI2MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JW
YWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRG
MzI4OUI0MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0RjRGNUZGQjExQ0JEMkUxMDBB
MTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIFJl
bW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCAqLzsgfTsKKwkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4
NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBJbnNwZWN0b3JG
cm9udGVuZC5jcHAgKi87IH07CiAJCTRGNzA3QTk5MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0RjcwN0E5NzExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuY3BwICovOyB9OwogCQk0RjcwN0E5QTExRUY2Nzk0MDBBQ0RBNjkgLyogSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRGNzA3QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5oICovOyB9OwogCQk0RkQ4RDBGMjExOUM3MThCMDAyRkE4MjUgLyogU2Ny
aXB0R0NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RkQ4RDBGMDExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgKi87IH07
CkBAIC02OTUwLDggKzY5NTAsOCBAQAogCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYzMjg5
QjMxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RjMyODlCNDExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFs
dWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclZhbHVlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0RjRGNUZGQTExQ0JEMkQyMDBBMTg2QkYg
LyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY0RjVGRkExMUNC
RDJEMjAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250
ZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNzA3QTk3MTFFRjY3OTQwMEFDREE2
OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNzA3QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0RkQ4RDBGMDExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRHQ0V2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNzU3LDYgKzExNzU3LDggQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTRGNzA3QTk3MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5jcHAgKi8sCiAJCQkJNEY3MDdBOTgxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmggKi8sCisJCQkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIElu
c3BlY3RvckZyb250ZW5kLmNwcCAqLywKKwkJCQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYgLyog
SW5zcGVjdG9yRnJvbnRlbmQuaCAqLywKIAkJCQk3QTBFNzZEODEwQkYwNTk4MDBBMDI3NkUgLyog
SlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwICovLAogCQkJCTdBMEU3NkQ5MTBCRjA1OTgwMEEwMjc2
RSAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oICovLAogCQkJCTdBMEU3NzFDMTBDMDBEQjEwMEEw
Mjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCkBAIC0xMTc2Nyw4ICsxMTc2
OSw2IEBACiAJCQkJOUZBMzdFRjcxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5o
ICovLAogCQkJCTlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2Rl
LmNwcCAqLywKIAkJCQk5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxl
Tm9kZS5oICovLAotCQkJCTRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZC5jcHAgKi8sCi0JCQkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90
ZUluc3BlY3RvckZyb250ZW5kLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3RvcjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTQ1Nyw2ICsyMTQ1Nyw3IEBACiAJCQkJRjMz
RjA1M0QxMjBCMERBNTAwRTU3NDNBIC8qIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRjA2MTc1MEY1RjAwQUMwMEEwN0VBQyAvKiBJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEY0RjVG
RkIxMUNCRDJFMTAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUYzNDRDNzU4MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBMEU3NzBFMTBDMDBBODgwMEEwMjc2RSAv
KiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYyMDIw
RjVGMEI2NjAwQTA3RUFDIC8qIEluc3BlY3RvclJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjIxNTEsNyArMjIxNTIsNiBAQAogCQkJCTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBS
ZWRpcmVjdFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUI0QjBBNDRFRkM3
MDBGOTkyRTAgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJDM0RBMkMwRDAwNkMxRDAwRUY2RjI2IC8qIFJlZ3VsYXJFeHByZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwMDA5OUU2NDkyMDA1NkU1
ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQw
NkMwRDkwMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTA0MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnBtCmluZGV4IDVlY2JmY2EuLmJlMDk0OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpAQCAtNDQsOCArNDQsOCBAQCAkdHlwZVRyYW5zZm9y
bXsiUHJvZmlsZXIifSA9IHsKICAgICAiZG9tYWluQWNjZXNzb3IiID0+ICJtX2luc3BlY3RvckNv
bnRyb2xsZXItPnByb2ZpbGVyQWdlbnQoKSIsCiB9OwogJHR5cGVUcmFuc2Zvcm17IkZyb250ZW5k
In0gPSB7Ci0gICAgImZvcndhcmQiID0+ICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCIsCi0gICAg
ImhlYWRlciIgPT4gIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiLAorICAgICJmb3J3YXJkIiA9
PiAiSW5zcGVjdG9yRnJvbnRlbmQiLAorICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JGcm9udGVu
ZC5oIiwKIH07CiAkdHlwZVRyYW5zZm9ybXsiUGFzc1JlZlB0ciJ9ID0gewogICAgICJmb3J3YXJk
SGVhZGVyIiA9PiAid3RmL1Bhc3NSZWZQdHIuaCIsCkBAIC0yMDAsNyArMjAwLDcgQEAgc3ViIEdl
bmVyYXRlSW50ZXJmYWNlCiAKICAgICBteSAkY2xhc3NOYW1lID0gJGludGVyZmFjZS0+bmFtZTsK
IAotICAgICRmcm9udGVuZENsYXNzTmFtZSA9ICJSZW1vdGUiIC4gJGNsYXNzTmFtZSAuICJGcm9u
dGVuZCI7CisgICAgJGZyb250ZW5kQ2xhc3NOYW1lID0gJGNsYXNzTmFtZSAuICJGcm9udGVuZCI7
CiAgICAgJGZyb250ZW5kQ29uc3RydWN0b3IgPSAiICAgICR7ZnJvbnRlbmRDbGFzc05hbWV9KElu
c3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KSA6IG1faW5zcGVjdG9yQ2xpZW50KGluc3Bl
Y3RvckNsaWVudCkgeyB9IjsKICAgICAkZnJvbnRlbmRGb290ZXIgPSAiICAgIEluc3BlY3RvckNs
aWVudCogbV9pbnNwZWN0b3JDbGllbnQ7IjsKICAgICAkZnJvbnRlbmRUeXBlc3siU3RyaW5nIn0g
PSAxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIv
V2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDZmMTlkMmEuLmYzYmQ2
YmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAK
ICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSNpbmNs
dWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250
ZW5kLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTE0LDcgKzExNCw3IEBA
IENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VU
eXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjCiB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotdm9p
ZCBDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZChSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQsIEluamVjdGVkU2NyaXB0SG9zdCogaW5qZWN0ZWRTY3JpcHRIb3N0KQordm9pZCBD
b25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQs
IEluamVjdGVkU2NyaXB0SG9zdCogaW5qZWN0ZWRTY3JpcHRIb3N0KQogewogICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGpzb25PYmogPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAg
IGpzb25PYmotPnNldE51bWJlcigic291cmNlIiwgc3RhdGljX2Nhc3Q8aW50PihtX3NvdXJjZSkp
OwpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQo
UmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBJbmplY3RlZFNjCiAgICAgZnJvbnRl
bmQtPmFkZENvbnNvbGVNZXNzYWdlKGpzb25PYmopOwogfQogCi12b2lkIENvbnNvbGVNZXNzYWdl
Ojp1cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpCit2b2lkIENvbnNvbGVNZXNzYWdlOjp1cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgZnJvbnRlbmQtPnVwZGF0ZUNvbnNv
bGVNZXNzYWdlUmVwZWF0Q291bnQobV9yZXBlYXRDb3VudCk7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuaAppbmRleCBlMjg2ZjBhLi5kMTBmYTNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmgKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
SW5qZWN0ZWRTY3JpcHRIb3N0OworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNw
ZWN0b3JPYmplY3Q7Ci1jbGFzcyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIFNjcmlw
dENhbGxGcmFtZTsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIGNsYXNzIFNjcmlwdFZhbHVlOwpA
QCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBTY3JpcHRDYWxs
U3RhY2sqLCB1bnNpZ25lZCBnLCBib29sIHN0b3JlVHJhY2UgPSBmYWxzZSk7CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQotICAgIHZvaWQgYWRkVG9Gcm9udGVuZChSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZCosIEluamVjdGVkU2NyaXB0SG9zdCopOwotICAgIHZvaWQgdXBkYXRlUmVwZWF0Q291bnRJ
bkNvbnNvbGUoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKKyAgICB2b2lkIGFk
ZFRvRnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqLCBJbmplY3RlZFNjcmlwdEhvc3QqKTsKKyAg
ICB2b2lkIHVwZGF0ZVJlcGVhdENvdW50SW5Db25zb2xlKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCk7CiAjZW5kaWYKICAgICB2b2lkIGluY3JlbWVudENvdW50KCkgeyArK21fcmVwZWF0Q291
bnQ7IH0KICAgICBib29sIGlzRXF1YWwoU2NyaXB0U3RhdGUqLCBDb25zb2xlTWVzc2FnZSogbXNn
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9z
dC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDk4
MzNjMDMuLjA2YjI1ZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cApAQCAtNDIsOSArNDIsOSBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5o
IgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVz
b3VyY2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQuaCIKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogI2luY2x1
ZGUgIlNjcmlwdERlYnVnU2VydmVyLmgiCkBAIC05OCwxNSArOTgsMTQgQEAgTm9kZSogSW5qZWN0
ZWRTY3JpcHRIb3N0Ojpub2RlRm9ySWQobG9uZyBub2RlSWQpCiAKIGxvbmcgSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGUsIGJvb2wgd2l0aENoaWxk
cmVuLCBib29sIHNlbGVjdEluVUkpCiB7Ci0gICAgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZy
b250ZW5kID0gcmVtb3RlRnJvbnRlbmQoKTsKICAgICBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQgPSBpbnNwZWN0b3JET01BZ2VudCgpOwotICAgIGlmICghZG9tQWdlbnQgfHwgIWZyb250ZW5k
KQorICAgIGlmICghZG9tQWdlbnQgfHwgIWZyb250ZW5kKCkpCiAgICAgICAgIHJldHVybiAwOwog
ICAgIGxvbmcgaWQgPSBkb21BZ2VudC0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKICAg
ICBpZiAod2l0aENoaWxkcmVuKQogICAgICAgICBkb21BZ2VudC0+cHVzaENoaWxkTm9kZXNUb0Zy
b250ZW5kKGlkKTsKICAgICBpZiAoc2VsZWN0SW5VSSkKLSAgICAgICAgZnJvbnRlbmQtPnVwZGF0
ZUZvY3VzZWROb2RlKGlkKTsKKyAgICAgICAgZnJvbnRlbmQoKS0+dXBkYXRlRm9jdXNlZE5vZGUo
aWQpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTc1LDExICsxNzQsMTEgQEAgSW5zcGVjdG9y
RE9NQWdlbnQqIEluamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdG9yRE9NQWdlbnQoKQogICAgIHJl
dHVybiBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRvbUFnZW50KCk7CiB9CiAKLVJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kKiBJbmplY3RlZFNjcmlwdEhvc3Q6OnJlbW90ZUZyb250ZW5kKCkKK0luc3Bl
Y3RvckZyb250ZW5kKiBJbmplY3RlZFNjcmlwdEhvc3Q6OmZyb250ZW5kKCkKIHsKICAgICBpZiAo
IW1faW5zcGVjdG9yQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1f
aW5zcGVjdG9yQ29udHJvbGxlci0+bV9yZW1vdGVGcm9udGVuZC5nZXQoKTsKKyAgICByZXR1cm4g
bV9pbnNwZWN0b3JDb250cm9sbGVyLT5tX2Zyb250ZW5kLmdldCgpOwogfQogCiBwYWlyPGxvbmcs
IFNjcmlwdE9iamVjdD4gSW5qZWN0ZWRTY3JpcHRIb3N0OjppbmplY3RTY3JpcHQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRIb3N0LmgKaW5kZXggMzI3OTdkMS4uNmI3MGY2MiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTQzLDggKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBJbmplY3RlZFNjcmlwdDsKIGNsYXNzIEluc3Bl
Y3RvckRPTUFnZW50OworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBOb2RlOwotY2xh
c3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBTY3JpcHRPYmplY3Q7CiBjbGFzcyBT
dG9yYWdlOwogCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSW5qZWN0
ZWRTY3JpcHRIb3N0KEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIpOwog
ICAgIEluc3BlY3RvckRPTUFnZW50KiBpbnNwZWN0b3JET01BZ2VudCgpOwotICAgIFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kKiByZW1vdGVGcm9udGVuZCgpOworICAgIEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCgpOwogICAgIFNjcmlwdE9iamVjdCBjcmVhdGVJbmplY3RlZFNjcmlwdChjb25z
dCBTdHJpbmcmIHNvdXJjZSwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBsb25nIGlkKTsKICAg
ICB2b2lkIGRpc2NhcmRJbmplY3RlZFNjcmlwdChTY3JpcHRTdGF0ZSopOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRl
eCAxMjA2MTg0Li45MTg2NDNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTMzLDE0ICszMywxNCBAQAogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9y
Q29udHJvbGxlciwgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQorSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5z
cGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kKQogICAgIDogbV9pbnNwZWN0b3JDb250cm9sbGVyKGluc3BlY3RvckNvbnRyb2xs
ZXIpCiAgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAppbmRleCAzMzM4Zjg0Li4xMWYx
MGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaApAQCAtMzUsMTQgKzM1LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSW5zcGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOworY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JW
YWx1ZTsKLWNsYXNzIFJlbW90ZUluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKIAogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50IDogcHVibGljIE5v
bmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQo
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQqIGZyb250ZW5kKTsKKyAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQo
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKTsKICAgICB+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9
CiAKICAgICAvLyBCYWNrZW5kIHRvIEZyb250ZW5kCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6
CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRp
b25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8m
KTsKIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsKLSAg
ICBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9u
dGVuZCogbV9mcm9udGVuZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKaW5kZXggZjBlZDk0Yi4uOTlmNDBhOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKQEAgLTQwLDggKzQwLDggQEAKICNpbmNs
dWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JG
cm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0b3JhZ2VBZ2VudC5oIgotI2luY2x1ZGUg
IlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiU2NyaXB0QnJlYWtwb2ludC5o
IgogI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmgiCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgSW5zcGVjdG9yQmFja2VuZDo6c2V0SW5q
ZWN0ZWRTY3JpcHRTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAKIHZvaWQgSW5zcGVjdG9y
QmFja2VuZDo6ZGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwg
Y29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50cywgUmVmUHRy
PEluc3BlY3RvclZhbHVlPiogcmVzdWx0LCBib29sKiBoYWRFeGNlcHRpb24pCiB7Ci0gICAgaWYg
KCFyZW1vdGVGcm9udGVuZCgpKQorICAgIGlmICghZnJvbnRlbmQoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gRklYTUU6IGV4cGxpY2l0bHkgcGFzcyBpbmplY3RlZFNjcmlwdElkIGFsb25n
IHdpdGggbm9kZSBpZCB0byB0aGUgZnJvbnRlbmQuCkBAIC0xMzcsOSArMTM3LDkgQEAgdm9pZCBJ
bnNwZWN0b3JCYWNrZW5kOjpleGVjdXRlU1FMKGxvbmcgZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5n
JiBxdWVyeSwgYm9vbCogc3UKIAogI2VuZGlmCiAKLVJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBJ
bnNwZWN0b3JCYWNrZW5kOjpyZW1vdGVGcm9udGVuZCgpCitJbnNwZWN0b3JGcm9udGVuZCogSW5z
cGVjdG9yQmFja2VuZDo6ZnJvbnRlbmQoKQogewotICAgIHJldHVybiBtX2luc3BlY3RvckNvbnRy
b2xsZXItPm1fcmVtb3RlRnJvbnRlbmQuZ2V0KCk7CisgICAgcmV0dXJuIG1faW5zcGVjdG9yQ29u
dHJvbGxlci0+bV9mcm9udGVuZC5nZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCmluZGV4IDI3YTkzZWIuLjIzYjMxYTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKQEAgLTQwLDcgKzQwLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OwogY2xh
c3MgSW5zcGVjdG9yRE9NQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKLWNsYXNzIFJl
bW90ZUluc3BlY3RvckZyb250ZW5kOwogCiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kIDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5zcGVjdG9yQmFja2VuZD4KIHsKQEAgLTc4LDcgKzc3LDcgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogICAgIEluc3BlY3RvckJhY2tlbmQoSW5zcGVjdG9yQ29udHJvbGxlciog
aW5zcGVjdG9yQ29udHJvbGxlcik7Ci0gICAgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIHJlbW90
ZUZyb250ZW5kKCk7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKCk7CiAKICAgICBJ
bnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RvckNvbnRyb2xsZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IDE2ZDI1MDguLmMyZGM0ZjEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3Vy
Y2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKaW5kZXggZWU0MzVl
NS4uODJkZTYyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCkBAIC0zOCw3
ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JDb250cm9sbGVyOwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFz
cyBDU1NSdWxlTGlzdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
aW5kZXggODljOTEzMi4uOTAwMmQ1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCIK
QEAgLTcyLDcgKzczLDYgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NU
cmFja2VyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKLSNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JG
cm9udGVuZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTE5Nyw4ICsxOTcs
OCBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+SW5zcGVjdG9yQ29udHJvbGxlcigpCiAKIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpCiB7Ci0gICAgaWYg
KG1fcmVtb3RlRnJvbnRlbmQpCi0gICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPmluc3BlY3RlZFBh
Z2VEZXN0cm95ZWQoKTsKKyAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+
aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpOwogCiAgICAgaGlkZUhpZ2hsaWdodCgpOwogCkBAIC0y
NTgsNyArMjU4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0KE5vZGUqIG5v
ZGUpCiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgbV9ub2RlVG9Gb2N1
cyA9IG5vZGU7CiAKLSAgICBpZiAoIW1fcmVtb3RlRnJvbnRlbmQpIHsKKyAgICBpZiAoIW1fZnJv
bnRlbmQpIHsKICAgICAgICAgbV9zaG93QWZ0ZXJWaXNpYmxlID0gRWxlbWVudHNQYW5lbDsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3MSwxMSArMjcxLDExIEBAIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6Zm9jdXNOb2RlKCkKICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgQVNTRVJUKG1fcmVtb3RlRnJvbnRlbmQpOworICAgIEFTU0VSVChtX2Zyb250
ZW5kKTsKICAgICBBU1NFUlQobV9ub2RlVG9Gb2N1cyk7CiAKICAgICBsb25nIGlkID0gbV9kb21B
Z2VudC0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChtX25vZGVUb0ZvY3VzLmdldCgpKTsKLSAgICBt
X3JlbW90ZUZyb250ZW5kLT51cGRhdGVGb2N1c2VkTm9kZShpZCk7CisgICAgbV9mcm9udGVuZC0+
dXBkYXRlRm9jdXNlZE5vZGUoaWQpOwogICAgIG1fbm9kZVRvRm9jdXMgPSAwOwogfQogCkBAIC0z
MDUsNyArMzA1LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpoaWRlSGlnaGxpZ2h0KCkK
IAogYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aW5kb3dWaXNpYmxlKCkKIHsKLSAgICByZXR1
cm4gbV9yZW1vdGVGcm9udGVuZDsKKyAgICByZXR1cm4gbV9mcm9udGVuZDsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFNjcmlwdENhbGxTdGFj
ayogY2FsbFN0YWNrLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0zMzIsMTYgKzMzMiwxNiBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZENvbnNvbGVNZXNzYWdlKFNjcmlwdFN0YXRl
KiBzY3JpcHRTdGF0ZSwgUGFzc093blB0cgogCiAgICAgaWYgKG1fcHJldmlvdXNNZXNzYWdlICYm
IG1fcHJldmlvdXNNZXNzYWdlLT5pc0VxdWFsKHNjcmlwdFN0YXRlLCBjb25zb2xlTWVzc2FnZS5n
ZXQoKSkpIHsKICAgICAgICAgbV9wcmV2aW91c01lc3NhZ2UtPmluY3JlbWVudENvdW50KCk7Ci0g
ICAgICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICAgICAgbV9wcmV2aW91c01lc3Nh
Z2UtPnVwZGF0ZVJlcGVhdENvdW50SW5Db25zb2xlKG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOwor
ICAgICAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdlLT51
cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShtX2Zyb250ZW5kLmdldCgpKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBtX3ByZXZpb3VzTWVzc2FnZSA9IGNvbnNvbGVNZXNzYWdlLmdldCgpOwogICAg
ICAgICBtX2NvbnNvbGVNZXNzYWdlcy5hcHBlbmQoY29uc29sZU1lc3NhZ2UpOwotICAgICAgICBp
ZiAobV9yZW1vdGVGcm9udGVuZCkKLSAgICAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdlLT5hZGRU
b0Zyb250ZW5kKG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRIb3N0Lmdl
dCgpKTsKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAgICBtX3ByZXZpb3VzTWVz
c2FnZS0+YWRkVG9Gcm9udGVuZChtX2Zyb250ZW5kLmdldCgpLCBtX2luamVjdGVkU2NyaXB0SG9z
dC5nZXQoKSk7CiAgICAgfQogCi0gICAgaWYgKCFtX3JlbW90ZUZyb250ZW5kICYmIG1fY29uc29s
ZU1lc3NhZ2VzLnNpemUoKSA+PSBtYXhpbXVtQ29uc29sZU1lc3NhZ2VzKSB7CisgICAgaWYgKCFt
X2Zyb250ZW5kICYmIG1fY29uc29sZU1lc3NhZ2VzLnNpemUoKSA+PSBtYXhpbXVtQ29uc29sZU1l
c3NhZ2VzKSB7CiAgICAgICAgIG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQgKz0gZXhwaXJl
Q29uc29sZU1lc3NhZ2VzU3RlcDsKICAgICAgICAgbV9jb25zb2xlTWVzc2FnZXMucmVtb3ZlKDAs
IGV4cGlyZUNvbnNvbGVNZXNzYWdlc1N0ZXApOwogICAgIH0KQEAgLTM1Niw4ICszNTYsOCBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsZWFyQ29uc29sZU1lc3NhZ2VzKCkKICAgICBtX2lu
amVjdGVkU2NyaXB0SG9zdC0+cmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgwIC8qIHJlbGVhc2Ug
dGhlIGdyb3VwIGluIGFsbCBzY3JpcHRzICovLCAiY29uc29sZSIpOwogICAgIGlmIChtX2RvbUFn
ZW50KQogICAgICAgICBtX2RvbUFnZW50LT5yZWxlYXNlRGFuZ2xpbmdOb2RlcygpOwotICAgIGlm
IChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5jb25zb2xlTWVz
c2FnZXNDbGVhcmVkKCk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIG1fZnJvbnRlbmQt
PmNvbnNvbGVNZXNzYWdlc0NsZWFyZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpzdGFydEdyb3VwKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBTY3JpcHRDYWxsU3RhY2sqIGNhbGxT
dGFjaywgYm9vbCBjb2xsYXBzZWQpCkBAIC00MjgsNyArNDI4LDcgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjppbnNwZWN0ZWRXaW5kb3dTY3JpcHRPYmplY3RDbGVhcmVkKEZyYW1lKiBmcmFt
ZSkKICAgICAgICAgbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudC0+d2luZG93T2JqZWN0Q2xlYXJl
ZCgpOwogCiAgICAgaWYgKGVuYWJsZWQoKSkgewotICAgICAgICBpZiAobV9yZW1vdGVGcm9udGVu
ZCAmJiBmcmFtZSA9PSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpKQorICAgICAgICBpZiAo
bV9mcm9udGVuZCAmJiBmcmFtZSA9PSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpKQogICAg
ICAgICAgICAgbV9pbmplY3RlZFNjcmlwdEhvc3QtPmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKTsK
ICAgICAgICAgaWYgKG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuc2l6ZSgpKSB7CiAgICAgICAg
ICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShmcmFt
ZSk7CkBAIC00NDksMTEgKzQ0OSwxMSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFNl
YXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKQogICAgIG1fc2VhcmNoaW5nRm9yTm9kZSA9IGVu
YWJsZWQ7CiAgICAgaWYgKCFtX3NlYXJjaGluZ0Zvck5vZGUpCiAgICAgICAgIGhpZGVIaWdobGln
aHQoKTsKLSAgICBpZiAobV9yZW1vdGVGcm9udGVuZCkgeworICAgIGlmIChtX2Zyb250ZW5kKSB7
CiAgICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+c2Vh
cmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQoKTsKKyAgICAgICAgICAgIG1fZnJvbnRlbmQtPnNlYXJj
aGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcmVt
b3RlRnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCgpOworICAgICAgICAgICAg
bV9mcm9udGVuZC0+c2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7CiAgICAgfQogfQogCkBA
IC00NjMsMTEgKzQ2MywxMSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldE1vbml0b3Jp
bmdYSFIoYm9vbCBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9tb25pdG9yaW5nWEhS
ID0gZW5hYmxlZDsKICAgICBzZXRTZXR0aW5nKG1vbml0b3JpbmdYSFJTZXR0aW5nTmFtZSwgZW5h
YmxlZCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKSB7Cisg
ICAgaWYgKG1fZnJvbnRlbmQpIHsKICAgICAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgICAgICBt
X3JlbW90ZUZyb250ZW5kLT5tb25pdG9yaW5nWEhSV2FzRW5hYmxlZCgpOworICAgICAgICAgICAg
bV9mcm9udGVuZC0+bW9uaXRvcmluZ1hIUldhc0VuYWJsZWQoKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+bW9uaXRvcmluZ1hIUldhc0Rpc2FibGVkKCk7Cisg
ICAgICAgICAgICBtX2Zyb250ZW5kLT5tb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQoKTsKICAgICB9
CiB9CiAKQEAgLTQ3NSwxOCArNDc1LDE4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29u
bmVjdEZyb250ZW5kKCkKIHsKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNlOwogICAgIHJl
bGVhc2VGcm9udGVuZExpZmV0aW1lQWdlbnRzKCk7Ci0gICAgbV9yZW1vdGVGcm9udGVuZCA9IG5l
dyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZChtX2NsaWVudCk7Ci0gICAgbV9kb21BZ2VudCA9IElu
c3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NTdG9yZS5nZXQoKSwgbV9yZW1vdGVGcm9udGVu
ZC5nZXQoKSk7CisgICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZChtX2NsaWVu
dCk7CisgICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NTdG9y
ZS5nZXQoKSwgbV9mcm9udGVuZC5nZXQoKSk7CiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCi0gICAg
bV9zdG9yYWdlQWdlbnQgPSBJbnNwZWN0b3JTdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX3JlbW90ZUZy
b250ZW5kLmdldCgpKTsKKyAgICBtX3N0b3JhZ2VBZ2VudCA9IEluc3BlY3RvclN0b3JhZ2VBZ2Vu
dDo6Y3JlYXRlKG1fZnJvbnRlbmQuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBpZiAobV90aW1lbGlu
ZUFnZW50KQotICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9iamVj
dChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKKyAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNl
dEZyb250ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiAKICAgICAvLyBJbml0aWFs
aXplIFdlYiBJbnNwZWN0b3IgdGl0bGUuCi0gICAgbV9yZW1vdGVGcm9udGVuZC0+aW5zcGVjdGVk
VVJMQ2hhbmdlZChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsKCku
c3RyaW5nKCkpOworICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0
ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygpKTsKIAogICAgIHBv
cHVsYXRlU2NyaXB0T2JqZWN0cygpOwogCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogICAgICAgICBpZiAoZGVidWdnZXJFbmFi
bGVkID09ICJ0cnVlIiB8fCBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duKQogICAgICAgICAgICAg
ZW5hYmxlRGVidWdnZXIoKTsKICAgICB9Ci0gICAgbV9wcm9maWxlckFnZW50LT5zZXRSZW1vdGVG
cm9udGVuZChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKKyAgICBtX3Byb2ZpbGVyQWdlbnQtPnNl
dEZyb250ZW5kKG1fZnJvbnRlbmQuZ2V0KCkpOwogICAgIGlmICghU2NyaXB0UHJvZmlsZXI6Omlz
UHJvZmlsZXJBbHdheXNFbmFibGVkKCkpIHsKICAgICAgICAgU3RyaW5nIHByb2ZpbGVyRW5hYmxl
ZFNldHRpbmcgPSBzZXR0aW5nKHByb2ZpbGVyRW5hYmxlZFNldHRpbmdOYW1lKTsKICAgICAgICAg
aWYgKHByb2ZpbGVyRW5hYmxlZFNldHRpbmcgPT0gInRydWUiKQpAQCAtNTE2LDcgKzUxNiw3IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICBzaG93UGFu
ZWwobV9zaG93QWZ0ZXJWaXNpYmxlKTsKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCi0gICAgbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQgPSBuZXcgSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50KHRoaXMsIG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgIG1fYXBw
bGljYXRpb25DYWNoZUFnZW50ID0gbmV3IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCh0
aGlzLCBtX2Zyb250ZW5kLmdldCgpKTsKICNlbmRpZgogCiAgICAgaWYgKCFjb25uZWN0ZWRGcm9u
dGVuZENvdW50KQpAQCAtNTMyLDggKzUzMiw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
c2hvdygpCiAgICAgaWYgKG1fb3BlbmluZ0Zyb250ZW5kKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAobV9yZW1vdGVGcm9udGVuZCkKLSAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+YnJpbmdU
b0Zyb250KCk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIG1fZnJvbnRlbmQtPmJyaW5n
VG9Gcm9udCgpOwogICAgIGVsc2UgewogICAgICAgICBtX29wZW5pbmdGcm9udGVuZCA9IHRydWU7
CiAgICAgICAgIG1fY2xpZW50LT5vcGVuSW5zcGVjdG9yRnJvbnRlbmQodGhpcyk7CkBAIC01NDcs
NyArNTQ3LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93UGFuZWwoY29uc3QgU3Ry
aW5nJiBwYW5lbCkKIAogICAgIHNob3coKTsKIAotICAgIGlmICghbV9yZW1vdGVGcm9udGVuZCkg
eworICAgIGlmICghbV9mcm9udGVuZCkgewogICAgICAgICBtX3Nob3dBZnRlclZpc2libGUgPSBw
YW5lbDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU1NSwyMSArNTU1LDIxIEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6c2hvd1BhbmVsKGNvbnN0IFN0cmluZyYgcGFuZWwpCiAgICAg
aWYgKHBhbmVsID09IGxhc3RBY3RpdmVQYW5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9y
ZW1vdGVGcm9udGVuZC0+c2hvd1BhbmVsKHBhbmVsKTsKKyAgICBtX2Zyb250ZW5kLT5zaG93UGFu
ZWwocGFuZWwpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKCkKIHsKLSAg
ICBpZiAoIW1fcmVtb3RlRnJvbnRlbmQpCisgICAgaWYgKCFtX2Zyb250ZW5kKQogICAgICAgICBy
ZXR1cm47Ci0gICAgbV9yZW1vdGVGcm9udGVuZC0+Y2xvc2UoKTsKKyAgICBtX2Zyb250ZW5kLT5j
bG9zZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVu
ZCgpCiB7Ci0gICAgaWYgKCFtX3JlbW90ZUZyb250ZW5kKQorICAgIGlmICghbV9mcm9udGVuZCkK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fcmVtb3RlRnJvbnRlbmQuY2xlYXIoKTsKKyAgICBtX2Zy
b250ZW5kLmNsZWFyKCk7CiAKICAgICBjb25uZWN0ZWRGcm9udGVuZENvdW50LS07CiAgICAgaWYg
KCFjb25uZWN0ZWRGcm9udGVuZENvdW50KQpAQCAtNTkyLDcgKzU5Miw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkKICAgICBoaWRlSGlnaGxpZ2h0KCk7
CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBtX3Byb2ZpbGVyQWdlbnQt
PnNldFJlbW90ZUZyb250ZW5kKDApOworICAgIG1fcHJvZmlsZXJBZ2VudC0+c2V0RnJvbnRlbmQo
MCk7CiAgICAgbV9wcm9maWxlckFnZW50LT5zdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZygpOwog
I2VuZGlmCiAKQEAgLTYyMSw2NiArNjIxLDY2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
cmVsZWFzZUZyb250ZW5kTGlmZXRpbWVBZ2VudHMoKQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cygpCiB7Ci0gICAgQVNTRVJUKG1fcmVtb3RlRnJvbnRl
bmQpOwotICAgIGlmICghbV9yZW1vdGVGcm9udGVuZCkKKyAgICBBU1NFUlQobV9mcm9udGVuZCk7
CisgICAgaWYgKCFtX2Zyb250ZW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3JlbW90ZUZy
b250ZW5kLT5wb3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGluZ3Moc2V0dGluZyhmcm9udGVuZFNldHRp
bmdzU2V0dGluZ05hbWUoKSkpOworICAgIG1fZnJvbnRlbmQtPnBvcHVsYXRlQXBwbGljYXRpb25T
ZXR0aW5ncyhzZXR0aW5nKGZyb250ZW5kU2V0dGluZ3NTZXR0aW5nTmFtZSgpKSk7CiAKICAgICBp
ZiAobV9yZXNvdXJjZVRyYWNraW5nRW5hYmxlZCkKLSAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+
cmVzb3VyY2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKKyAgICAgICAgbV9mcm9udGVuZC0+cmVzb3Vy
Y2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKIAogICAgIGlmIChtX3NlYXJjaGluZ0Zvck5vZGUpCi0g
ICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7Cisg
ICAgICAgIG1fZnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7CiAKICAgICBp
ZiAobV9tb25pdG9yaW5nWEhSKQotICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5tb25pdG9yaW5n
WEhSV2FzRW5hYmxlZCgpOworICAgICAgICBtX2Zyb250ZW5kLT5tb25pdG9yaW5nWEhSV2FzRW5h
YmxlZCgpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKG1fcHJv
ZmlsZXJBZ2VudC0+ZW5hYmxlZCgpKQotICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5wcm9maWxl
cldhc0VuYWJsZWQoKTsKKyAgICAgICAgbV9mcm9udGVuZC0+cHJvZmlsZXJXYXNFbmFibGVkKCk7
CiAjZW5kaWYKIAogICAgIFJlc291cmNlc01hcDo6aXRlcmF0b3IgcmVzb3VyY2VzRW5kID0gbV9y
ZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
ZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gcmVzb3VyY2VzRW5kOyArK2l0KQotICAgICAgICBpdC0+
c2Vjb25kLT51cGRhdGVTY3JpcHRPYmplY3QobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CisgICAg
ICAgIGl0LT5zZWNvbmQtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKIAog
ICAgIG1fZG9tQWdlbnQtPnNldERvY3VtZW50KG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkt
PmRvY3VtZW50KCkpOwogCiAgICAgaWYgKG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpCi0g
ICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPnVwZGF0ZUNvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50
KG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpOworICAgICAgICBtX2Zyb250ZW5kLT51cGRh
dGVDb25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudChtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50
KTsKICAgICB1bnNpZ25lZCBtZXNzYWdlQ291bnQgPSBtX2NvbnNvbGVNZXNzYWdlcy5zaXplKCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1lc3NhZ2VDb3VudDsgKytpKQotICAgICAg
ICBtX2NvbnNvbGVNZXNzYWdlc1tpXS0+YWRkVG9Gcm9udGVuZChtX3JlbW90ZUZyb250ZW5kLmdl
dCgpLCBtX2luamVjdGVkU2NyaXB0SG9zdC5nZXQoKSk7CisgICAgICAgIG1fY29uc29sZU1lc3Nh
Z2VzW2ldLT5hZGRUb0Zyb250ZW5kKG1fZnJvbnRlbmQuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRI
b3N0LmdldCgpKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChk
ZWJ1Z2dlckVuYWJsZWQoKSkKLSAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+dXBkYXRlUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucGF1c2VPbkV4Y2Vw
dGlvbnNTdGF0ZSgpKTsKKyAgICAgICAgbV9mcm9udGVuZC0+dXBkYXRlUGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZSgpKTsKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBEYXRhYmFzZVJlc291cmNl
c01hcDo6aXRlcmF0b3IgZGF0YWJhc2VzRW5kID0gbV9kYXRhYmFzZVJlc291cmNlcy5lbmQoKTsK
ICAgICBmb3IgKERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fZGF0YWJhc2VS
ZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZGF0YWJhc2VzRW5kOyArK2l0KQotICAgICAgICBpdC0+
c2Vjb25kLT5iaW5kKG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgICAgICBpdC0+c2Vjb25k
LT5iaW5kKG1fZnJvbnRlbmQuZ2V0KCkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdF
KQogICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0b3JhZ2VFbmQgPSBt
X2RvbVN0b3JhZ2VSZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2Vz
TWFwOjppdGVyYXRvciBpdCA9IG1fZG9tU3RvcmFnZVJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBk
b21TdG9yYWdlRW5kOyArK2l0KQotICAgICAgICBpdC0+c2Vjb25kLT5iaW5kKG1fcmVtb3RlRnJv
bnRlbmQuZ2V0KCkpOworICAgICAgICBpdC0+c2Vjb25kLT5iaW5kKG1fZnJvbnRlbmQuZ2V0KCkp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2Vyc01hcDo6aXRlcmF0b3Ig
d29ya2Vyc0VuZCA9IG1fd29ya2Vycy5lbmQoKTsKICAgICBmb3IgKFdvcmtlcnNNYXA6Oml0ZXJh
dG9yIGl0ID0gbV93b3JrZXJzLmJlZ2luKCk7IGl0ICE9IHdvcmtlcnNFbmQ7ICsraXQpIHsKICAg
ICAgICAgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UqIHdvcmtlciA9IGl0LT5zZWNvbmQuZ2V0KCk7
Ci0gICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPmRpZENyZWF0ZVdvcmtlcih3b3JrZXItPmlkKCks
IHdvcmtlci0+dXJsKCksIHdvcmtlci0+aXNTaGFyZWRXb3JrZXIoKSk7CisgICAgICAgIG1fZnJv
bnRlbmQtPmRpZENyZWF0ZVdvcmtlcih3b3JrZXItPmlkKCksIHdvcmtlci0+dXJsKCksIHdvcmtl
ci0+aXNTaGFyZWRXb3JrZXIoKSk7CiAgICAgfQogI2VuZGlmCiAKLSAgICBtX3JlbW90ZUZyb250
ZW5kLT5wb3B1bGF0ZVNlc3Npb25TZXR0aW5ncyhtX3Nlc3Npb25TZXR0aW5ncy0+dG9KU09OU3Ry
aW5nKCkpOwotICAgIG1fcmVtb3RlRnJvbnRlbmQtPnBvcHVsYXRlSW50ZXJmYWNlKCk7CisgICAg
bV9mcm9udGVuZC0+cG9wdWxhdGVTZXNzaW9uU2V0dGluZ3MobV9zZXNzaW9uU2V0dGluZ3MtPnRv
SlNPTlN0cmluZygpKTsKKyAgICBtX2Zyb250ZW5kLT5wb3B1bGF0ZUludGVyZmFjZSgpOwogCiAg
ICAgLy8gRGlzcGF0Y2ggcGVuZGluZyBmcm9udGVuZCBjb21tYW5kcwogICAgIGZvciAoVmVjdG9y
PHBhaXI8bG9uZywgU3RyaW5nPiA+OjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ0V2YWx1YXRlVGVz
dENvbW1hbmRzLmJlZ2luKCk7IGl0ICE9IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzLmVu
ZCgpOyArK2l0KQotICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5ldmFsdWF0ZUZvclRlc3RJbkZy
b250ZW5kKCgqaXQpLmZpcnN0LCAoKml0KS5zZWNvbmQpOworICAgICAgICBtX2Zyb250ZW5kLT5l
dmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKCgqaXQpLmZpcnN0LCAoKml0KS5zZWNvbmQpOwogICAg
IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiB9CiAKQEAgLTcxNyw4ICs3
MTcsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnBydW5lUmVzb3VyY2VzKFJlc291cmNl
c01hcCogcmVzb3VyY2VNYXAsIERvY3VtZW50TG9hZAogCiAgICAgICAgIGlmICghbG9hZGVyVG9L
ZWVwIHx8ICFyZXNvdXJjZS0+aXNTYW1lTG9hZGVyKGxvYWRlclRvS2VlcCkpIHsKICAgICAgICAg
ICAgIHJlbW92ZVJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgIGlmIChtX3JlbW90ZUZy
b250ZW5kKQotICAgICAgICAgICAgICAgIHJlc291cmNlLT5yZWxlYXNlU2NyaXB0T2JqZWN0KG1f
cmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgICAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAg
ICAgICAgICAgICAgcmVzb3VyY2UtPnJlbGVhc2VTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQo
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC03MzEsOCArNzMxLDggQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpkaWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAg
QVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAKICAgICBpZiAobG9hZGVyLT5mcmFtZSgpID09IG1f
aW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpIHsKLSAgICAgICAgaWYgKG1fcmVtb3RlRnJvbnRl
bmQpCi0gICAgICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKGxv
YWRlci0+dXJsKCkuc3RyaW5nKCkpOworICAgICAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAg
ICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQobG9hZGVyLT51cmwoKS5zdHJpbmco
KSk7CiAKICAgICAgICAgbV9pbmplY3RlZFNjcmlwdEhvc3QtPmRpc2NhcmRJbmplY3RlZFNjcmlw
dHMoKTsKICAgICAgICAgY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKQEAgLTc1Miw4ICs3NTIsOCBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlcikKIAogICAgICAgICBtX2Nzc1N0b3JlLT5yZXNldCgpOwogICAgICAgICBtX3Nlc3Np
b25TZXR0aW5ncyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGlmIChtX3Jl
bW90ZUZyb250ZW5kKSB7Ci0gICAgICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5yZXNldCgpOwor
ICAgICAgICBpZiAobV9mcm9udGVuZCkgeworICAgICAgICAgICAgbV9mcm9udGVuZC0+cmVzZXQo
KTsKICAgICAgICAgICAgIG1fZG9tQWdlbnQtPnJlc2V0KCk7CiAgICAgICAgIH0KICNpZiBFTkFC
TEUoV09SS0VSUykKQEAgLTc2NiwxMyArNzY2LDEzIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICBtX2RvbVN0
b3JhZ2VSZXNvdXJjZXMuY2xlYXIoKTsKICNlbmRpZgogCi0gICAgICAgIGlmIChtX3JlbW90ZUZy
b250ZW5kKSB7CisgICAgICAgIGlmIChtX2Zyb250ZW5kKSB7CiAgICAgICAgICAgICBpZiAoIWxv
YWRlci0+ZnJhbWVMb2FkZXIoKS0+aXNMb2FkaW5nRnJvbUNhY2hlZFBhZ2UoKSkgewogICAgICAg
ICAgICAgICAgIEFTU0VSVChtX21haW5SZXNvdXJjZSAmJiBtX21haW5SZXNvdXJjZS0+aXNTYW1l
TG9hZGVyKGxvYWRlcikpOwogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGFkZCB0aGUgbWFp
biByZXNvdXJjZSB1bnRpbCBpdHMgbG9hZCBpcyBjb21taXR0ZWQuIFRoaXMgaXMKICAgICAgICAg
ICAgICAgICAvLyBuZWVkZWQgdG8ga2VlcCB0aGUgbG9hZCBmb3IgYSB1c2VyLWVudGVyZWQgVVJM
IGZyb20gc2hvd2luZyB1cCBpbiB0aGUKICAgICAgICAgICAgICAgICAvLyBsaXN0IG9mIHJlc291
cmNlcyBmb3IgdGhlIHBhZ2UgdGhleSBhcmUgbmF2aWdhdGluZyBhd2F5IGZyb20uCi0gICAgICAg
ICAgICAgICAgbV9tYWluUmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX3JlbW90ZUZyb250
ZW5kLmdldCgpKTsKKyAgICAgICAgICAgICAgICBtX21haW5SZXNvdXJjZS0+dXBkYXRlU2NyaXB0
T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAvLyBQYWdlcyBsb2FkZWQgZnJvbSB0aGUgcGFnZSBjYWNoZSBhcmUgY29tbWl0dGVk
IGJlZm9yZQogICAgICAgICAgICAgICAgIC8vIG1fbWFpblJlc291cmNlIGlzIHRoZSByaWdodCBy
ZXNvdXJjZSBmb3IgdGhpcyBsb2FkLCBzbyB3ZQpAQCAtNzgwLDcgKzc4MCw3IEBAIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyKQog
ICAgICAgICAgICAgICAgIC8vIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdC4KICAgICAgICAg
ICAgICAgICBtX21haW5SZXNvdXJjZSA9IDA7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBt
X3JlbW90ZUZyb250ZW5kLT5kaWRDb21taXRMb2FkKCk7CisgICAgICAgICAgICBtX2Zyb250ZW5k
LT5kaWRDb21taXRMb2FkKCk7CiAgICAgICAgICAgICBtX2RvbUFnZW50LT5zZXREb2N1bWVudCht
X2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTg4Myw4ICs4ODMsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZExvYWRS
ZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLAogCiAgICAgYWRk
UmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkpOwogCi0gICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCi0g
ICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9yZW1vdGVGcm9udGVuZC5nZXQo
KSk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRP
YmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAt
OTA3LDggKzkwNyw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aWRlbnRpZmllckZvcklu
aXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKIAogICAgIGFkZFJlc291cmNl
KHJlc291cmNlLmdldCgpKTsKIAotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kICYmIGxvYWRlci0+
ZnJhbWVMb2FkZXIoKS0+aXNMb2FkaW5nRnJvbUNhY2hlZFBhZ2UoKSAmJiByZXNvdXJjZSA9PSBt
X21haW5SZXNvdXJjZSkKLSAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX3Jl
bW90ZUZyb250ZW5kLmdldCgpKTsKKyAgICBpZiAobV9mcm9udGVuZCAmJiBsb2FkZXItPmZyYW1l
TG9hZGVyKCktPmlzTG9hZGluZ0Zyb21DYWNoZWRQYWdlKCkgJiYgcmVzb3VyY2UgPT0gbV9tYWlu
UmVzb3VyY2UpCisgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVu
ZC5nZXQoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6bWFpblJlc291cmNlRmly
ZWRET01Db250ZW50RXZlbnQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgS1VSTCYgdXJs
KQpAQCAtOTIwLDggKzkyMCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6bWFpblJlc291
cmNlRmlyZWRET01Db250ZW50RXZlbnQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlCiAgICAgICAgIG1f
bWFpblJlc291cmNlLT5tYXJrRE9NQ29udGVudEV2ZW50VGltZSgpOwogICAgICAgICBpZiAobV90
aW1lbGluZUFnZW50KQogICAgICAgICAgICAgbV90aW1lbGluZUFnZW50LT5kaWRNYXJrRE9NQ29u
dGVudEV2ZW50KCk7Ci0gICAgICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICAgICAg
bV9tYWluUmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX3JlbW90ZUZyb250ZW5kLmdldCgp
KTsKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAgICBtX21haW5SZXNvdXJjZS0+
dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtOTM0
LDggKzkzNCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6bWFpblJlc291cmNlRmlyZWRM
b2FkRXZlbnQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uCiAgICAgICAgIG1fbWFpblJlc291
cmNlLT5tYXJrTG9hZEV2ZW50VGltZSgpOwogICAgICAgICBpZiAobV90aW1lbGluZUFnZW50KQog
ICAgICAgICAgICAgbV90aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7Ci0gICAgICAg
IGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICAgICAgbV9tYWluUmVzb3VyY2UtPnVwZGF0
ZVNjcmlwdE9iamVjdChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKKyAgICAgICAgaWYgKG1fZnJv
bnRlbmQpCisgICAgICAgICAgICBtX21haW5SZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1f
ZnJvbnRlbmQuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtOTgyLDggKzk4Miw4IEBAIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgUmVzb3VyY2VSZXF1CiAgICAgcmVzb3VyY2UtPnN0YXJ0VGltaW5nKCk7CiAgICAgcmVzb3Vy
Y2UtPnVwZGF0ZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBpZiAocmVzb3VyY2UgIT0gbV9tYWlu
UmVzb3VyY2UgJiYgbV9yZW1vdGVGcm9udGVuZCkKLSAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNj
cmlwdE9iamVjdChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKKyAgICBpZiAocmVzb3VyY2UgIT0g
bV9tYWluUmVzb3VyY2UgJiYgbV9mcm9udGVuZCkKKyAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNj
cmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTk5NCw4ICs5OTQsOCBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlcwogICAgIGlmIChSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2U+IHJlc291cmNl
ID0gZ2V0VHJhY2tlZFJlc291cmNlKGlkZW50aWZpZXIpKSB7CiAgICAgICAgIHJlc291cmNlLT51
cGRhdGVSZXNwb25zZShyZXNwb25zZSk7CiAKLSAgICAgICAgaWYgKHJlc291cmNlICE9IG1fbWFp
blJlc291cmNlICYmIG1fcmVtb3RlRnJvbnRlbmQpCi0gICAgICAgICAgICByZXNvdXJjZS0+dXBk
YXRlU2NyaXB0T2JqZWN0KG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgICAgICBpZiAocmVz
b3VyY2UgIT0gbV9tYWluUmVzb3VyY2UgJiYgbV9mcm9udGVuZCkKKyAgICAgICAgICAgIHJlc291
cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiAgICAgfQogICAgIGlm
IChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkgewogICAgICAgICAvLyBUaGUgdWds
eSBjb2RlIGJlbG93IGlzIGR1ZSB0byB0aGF0IFN0cmluZzo6Zm9ybWF0KCkgaXMgbm90IHV0Zjgt
c2FmZSBhdCB0aGUgbW9tZW50LgpAQCAtMTAxNiw4ICsxMDE2LDggQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGludAogCiAgICAgcmVzb3VyY2UtPmFkZExlbmd0aChsZW5ndGhSZWNlaXZlZCk7CiAKLSAg
ICBpZiAocmVzb3VyY2UgIT0gbV9tYWluUmVzb3VyY2UgJiYgbV9yZW1vdGVGcm9udGVuZCkKLSAg
ICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX3JlbW90ZUZyb250ZW5kLmdldCgp
KTsKKyAgICBpZiAocmVzb3VyY2UgIT0gbV9tYWluUmVzb3VyY2UgJiYgbV9mcm9udGVuZCkKKyAg
ICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcikKQEAgLTEwMzUsOCArMTAzNSw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiAgICAgcmVz
b3VyY2UtPmVuZFRpbWluZygpOwogCiAgICAgLy8gTm8gbmVlZCB0byBtdXRlIHRoaXMgZXZlbnQg
Zm9yIG1haW4gcmVzb3VyY2Ugc2luY2UgaXQgaGFwcGVucyBhZnRlciBkaWQgY29tbWl0IGxvYWQu
Ci0gICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCi0gICAgICAgIHJlc291cmNlLT51cGRhdGVTY3Jp
cHRPYmplY3QobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisg
ICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTEwNjAsOCArMTA2
MCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjCiAgICAgcmVzb3VyY2UtPmVuZFRpbWluZygp
OwogCiAgICAgLy8gTm8gbmVlZCB0byBtdXRlIHRoaXMgZXZlbnQgZm9yIG1haW4gcmVzb3VyY2Ug
c2luY2UgaXQgaGFwcGVucyBhZnRlciBkaWQgY29tbWl0IGxvYWQuCi0gICAgaWYgKG1fcmVtb3Rl
RnJvbnRlbmQpCi0gICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9yZW1vdGVG
cm9udGVuZC5nZXQoKSk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIHJlc291cmNlLT51
cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgU2NyaXB0U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVy
KQpAQCAtMTA4MSw4ICsxMDgxLDggQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGkKIAogICAgIHJl
c291cmNlLT5zZXRPdmVycmlkZUNvbnRlbnQoc291cmNlU3RyaW5nLCBJbnNwZWN0b3JSZXNvdXJj
ZTo6WEhSKTsKIAotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICByZXNvdXJjZS0+
dXBkYXRlU2NyaXB0T2JqZWN0KG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgIGlmIChtX2Zy
b250ZW5kKQorICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQu
Z2V0KCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVkKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCkBAIC0x
MDk2LDggKzEwOTYsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVk
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJgogCiAgICAgcmVzb3VyY2Ut
PnNldE92ZXJyaWRlQ29udGVudChTY3JpcHRTdHJpbmcoc291cmNlU3RyaW5nKSwgSW5zcGVjdG9y
UmVzb3VyY2U6OlNjcmlwdCk7CiAKLSAgICBpZiAobV9yZW1vdGVGcm9udGVuZCkKLSAgICAgICAg
cmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKKyAg
ICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdCht
X2Zyb250ZW5kLmdldCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVS
ZXNvdXJjZVRyYWNraW5nKGJvb2wgYWx3YXlzLCBib29sIHJlbG9hZCkKQEAgLTExMTMsOCArMTEx
Myw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlUmVzb3VyY2VUcmFja2luZyhi
b29sIGFsd2F5cywgYm9vbCByZWxvYWQpCiAKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsK
ICAgICBtX3Jlc291cmNlVHJhY2tpbmdFbmFibGVkID0gdHJ1ZTsKLSAgICBpZiAobV9yZW1vdGVG
cm9udGVuZCkKLSAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+cmVzb3VyY2VUcmFja2luZ1dhc0Vu
YWJsZWQoKTsKKyAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+cmVzb3Vy
Y2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKICAgICBtX2NsaWVudC0+cmVzb3VyY2VUcmFja2luZ1dh
c0VuYWJsZWQoKTsKIAogICAgIGlmIChyZWxvYWQpCkBAIC0xMTMxLDggKzExMzEsOCBAQCB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVSZXNvdXJjZVRyYWNraW5nKGJvb2wgYWx3YXlz
KQogCiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAgICAgbV9yZXNvdXJjZVRyYWNraW5n
RW5hYmxlZCA9IGZhbHNlOwotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICBtX3Jl
bW90ZUZyb250ZW5kLT5yZXNvdXJjZVRyYWNraW5nV2FzRGlzYWJsZWQoKTsKKyAgICBpZiAobV9m
cm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+cmVzb3VyY2VUcmFja2luZ1dhc0Rpc2FibGVk
KCk7CiAgICAgbV9jbGllbnQtPnJlc291cmNlVHJhY2tpbmdXYXNEaXNhYmxlZCgpOwogfQogCkBA
IC0xMTYwLDkgKzExNjAsOSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxp
bmVQcm9maWxlcigpCiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9yZW1v
dGVGcm9udGVuZC5nZXQoKSk7Ci0gICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCi0gICAgICAgIG1f
cmVtb3RlRnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CisgICAgbV90aW1l
bGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9udGVuZC5nZXQoKSk7
CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIG1fZnJvbnRlbmQtPnRpbWVsaW5lUHJvZmls
ZXJXYXNTdGFydGVkKCk7CiAgICAgbV9jbGllbnQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVk
KCk7CiB9CiAKQEAgLTExNzUsOCArMTE3NSw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
c3RvcFRpbWVsaW5lUHJvZmlsZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3RpbWVsaW5l
QWdlbnQgPSAwOwotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICBtX3JlbW90ZUZy
b250ZW5kLT50aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOworICAgIGlmIChtX2Zyb250ZW5k
KQorICAgICAgICBtX2Zyb250ZW5kLT50aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwogICAg
IG1fY2xpZW50LT50aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwogfQogCkBAIC0xMjA4LDE0
ICsxMjA4LDE0IEBAIHByaXZhdGU6CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cG9zdFdv
cmtlck5vdGlmaWNhdGlvblRvRnJvbnRlbmQoY29uc3QgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2Um
IHdvcmtlciwgSW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VyQWN0aW9uIGFjdGlvbikKIHsKLSAg
ICBpZiAoIW1fcmVtb3RlRnJvbnRlbmQpCisgICAgaWYgKCFtX2Zyb250ZW5kKQogICAgICAgICBy
ZXR1cm47CiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIEluc3BlY3RvckNvbnRyb2xs
ZXI6OldvcmtlckNyZWF0ZWQ6Ci0gICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPmRpZENyZWF0ZVdv
cmtlcih3b3JrZXIuaWQoKSwgd29ya2VyLnVybCgpLCB3b3JrZXIuaXNTaGFyZWRXb3JrZXIoKSk7
CisgICAgICAgIG1fZnJvbnRlbmQtPmRpZENyZWF0ZVdvcmtlcih3b3JrZXIuaWQoKSwgd29ya2Vy
LnVybCgpLCB3b3JrZXIuaXNTaGFyZWRXb3JrZXIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VyRGVzdHJveWVkOgotICAgICAgICBtX3JlbW90
ZUZyb250ZW5kLT5kaWREZXN0cm95V29ya2VyKHdvcmtlci5pZCgpKTsKKyAgICAgICAgbV9mcm9u
dGVuZC0+ZGlkRGVzdHJveVdvcmtlcih3b3JrZXIuaWQoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTEyMjcsNyArMTIyNyw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlk
Q3JlYXRlV29ya2VyKGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpCiAKICAg
ICBSZWZQdHI8SW5zcGVjdG9yV29ya2VyUmVzb3VyY2U+IHdvcmtlclJlc291cmNlKEluc3BlY3Rv
cldvcmtlclJlc291cmNlOjpjcmVhdGUoaWQsIHVybCwgaXNTaGFyZWRXb3JrZXIpKTsKICAgICBt
X3dvcmtlcnMuc2V0KGlkLCB3b3JrZXJSZXNvdXJjZSk7Ci0gICAgaWYgKG1faW5zcGVjdGVkUGFn
ZSAmJiBtX3JlbW90ZUZyb250ZW5kKQorICAgIGlmIChtX2luc3BlY3RlZFBhZ2UgJiYgbV9mcm9u
dGVuZCkKICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+
cG9zdFRhc2soUG9zdFdvcmtlck5vdGlmaWNhdGlvblRvRnJvbnRlbmRUYXNrOjpjcmVhdGUod29y
a2VyUmVzb3VyY2UsIEluc3BlY3RvckNvbnRyb2xsZXI6OldvcmtlckNyZWF0ZWQpKTsKIH0KIApA
QCAtMTIzOSw3ICsxMjM5LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWREZXN0cm95
V29ya2VyKGludHB0cl90IGlkKQogICAgIFdvcmtlcnNNYXA6Oml0ZXJhdG9yIHdvcmtlclJlc291
cmNlID0gbV93b3JrZXJzLmZpbmQoaWQpOwogICAgIGlmICh3b3JrZXJSZXNvdXJjZSA9PSBtX3dv
cmtlcnMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV9pbnNwZWN0ZWRQYWdlICYm
IG1fcmVtb3RlRnJvbnRlbmQpCisgICAgaWYgKG1faW5zcGVjdGVkUGFnZSAmJiBtX2Zyb250ZW5k
KQogICAgICAgICBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5wb3N0
VGFzayhQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s6OmNyZWF0ZSh3b3JrZXJS
ZXNvdXJjZS0+c2Vjb25kLCBJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJEZXN0cm95ZWQpKTsK
ICAgICBtX3dvcmtlcnMucmVtb3ZlKHdvcmtlclJlc291cmNlKTsKIH0KQEAgLTEyNDgsMTIgKzEy
NDgsMTIgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWREZXN0cm95V29ya2VyKGludHB0
cl90IGlkKQogI2lmIEVOQUJMRShEQVRBQkFTRSkKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
c2VsZWN0RGF0YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlKQogewotICAgIGlmICghbV9yZW1vdGVG
cm9udGVuZCkKKyAgICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZv
ciAoRGF0YWJhc2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kYXRhYmFzZVJlc291cmNl
cy5iZWdpbigpOyBpdCAhPSBtX2RhdGFiYXNlUmVzb3VyY2VzLmVuZCgpOyArK2l0KSB7CiAgICAg
ICAgIGlmIChpdC0+c2Vjb25kLT5kYXRhYmFzZSgpID09IGRhdGFiYXNlKSB7Ci0gICAgICAgICAg
ICBtX3JlbW90ZUZyb250ZW5kLT5zZWxlY3REYXRhYmFzZShpdC0+Zmlyc3QpOworICAgICAgICAg
ICAgbV9mcm9udGVuZC0+c2VsZWN0RGF0YWJhc2UoaXQtPmZpcnN0KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMTI3Nyw4ICsxMjc3LDggQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpkaWRPcGVuRGF0YWJhc2UoUGFzc1JlZlB0cjxEYXRhYmFzZT4gZGF0YWJh
c2UsIGNvbnN0IFMKICAgICBtX2RhdGFiYXNlUmVzb3VyY2VzLnNldChyZXNvdXJjZS0+aWQoKSwg
cmVzb3VyY2UpOwogCiAgICAgLy8gUmVzb3VyY2VzIGFyZSBvbmx5IGJvdW5kIHdoaWxlIHZpc2li
bGUuCi0gICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCi0gICAgICAgIHJlc291cmNlLT5iaW5kKG1f
cmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgIGlmIChtX2Zyb250ZW5kKQorICAgICAgICByZXNv
dXJjZS0+YmluZChtX2Zyb250ZW5kLmdldCgpKTsKIH0KICNlbmRpZgogCkBAIC0xMzc4LDE0ICsx
Mzc4LDE0IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkVXNlRE9NU3RvcmFnZShTdG9y
YWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhCiAgICAgbV9kb21TdG9yYWdlUmVzb3Vy
Y2VzLnNldChyZXNvdXJjZS0+aWQoKSwgcmVzb3VyY2UpOwogCiAgICAgLy8gUmVzb3VyY2VzIGFy
ZSBvbmx5IGJvdW5kIHdoaWxlIHZpc2libGUuCi0gICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCi0g
ICAgICAgIHJlc291cmNlLT5iaW5kKG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOworICAgIGlmICht
X2Zyb250ZW5kKQorICAgICAgICByZXNvdXJjZS0+YmluZChtX2Zyb250ZW5kLmdldCgpKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZWxlY3RET01TdG9yYWdlKFN0b3JhZ2UqIHN0
b3JhZ2UpCiB7CiAgICAgQVNTRVJUKHN0b3JhZ2UpOwotICAgIGlmICghbV9yZW1vdGVGcm9udGVu
ZCkKKyAgICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZyYW1lKiBm
cmFtZSA9IHN0b3JhZ2UtPmZyYW1lKCk7CkBAIC0xNDAwLDcgKzE0MDAsNyBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNlbGVjdERPTVN0b3JhZ2UoU3RvcmFnZSogc3RvcmFnZSkKICAgICAg
ICAgfQogICAgIH0KICAgICBpZiAoc3RvcmFnZVJlc291cmNlSWQpCi0gICAgICAgIG1fcmVtb3Rl
RnJvbnRlbmQtPnNlbGVjdERPTVN0b3JhZ2Uoc3RvcmFnZVJlc291cmNlSWQpOworICAgICAgICBt
X2Zyb250ZW5kLT5zZWxlY3RET01TdG9yYWdlKHN0b3JhZ2VSZXNvdXJjZUlkKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRET01TdG9yYWdlRW50cmllcyhsb25nIHN0b3JhZ2VJ
ZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogZW50cmllcykKQEAgLTE1MjAsOSArMTUyMCw5IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlRGVidWdnZXJGcm9tRnJvbnRlbmQoYm9v
bCBhbHdheXMpCiAKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsKIAotICAgIG1fZGVidWdn
ZXJBZ2VudCA9IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZSh0aGlzLCBtX3JlbW90ZUZy
b250ZW5kLmdldCgpKTsKKyAgICBtX2RlYnVnZ2VyQWdlbnQgPSBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpjcmVhdGUodGhpcywgbV9mcm9udGVuZC5nZXQoKSk7CiAKLSAgICBtX3JlbW90ZUZyb250
ZW5kLT5kZWJ1Z2dlcldhc0VuYWJsZWQoKTsKKyAgICBtX2Zyb250ZW5kLT5kZWJ1Z2dlcldhc0Vu
YWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVEZWJ1Z2dlcigp
CkBAIC0xNTMzLDEwICsxNTMzLDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxl
RGVidWdnZXIoKQogICAgIGlmIChkZWJ1Z2dlckVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKCFtX3JlbW90ZUZyb250ZW5kKQorICAgIGlmICghbV9mcm9udGVuZCkKICAgICAg
ICAgbV9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IG1fcmVtb3RlRnJvbnRlbmQtPmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CisgICAgICAgIG1f
ZnJvbnRlbmQtPmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CiAgICAgICAgIG1fYXR0YWNoRGVi
dWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKICAgICB9CiB9CkBAIC0xNTU1LDggKzE1NTUsOCBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVEZWJ1Z2dlcihib29sIGFsd2F5cykKIAog
ICAgIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKIAotICAgIGlmIChtX3JlbW90
ZUZyb250ZW5kKQotICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5kZWJ1Z2dlcldhc0Rpc2FibGVk
KCk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIG1fZnJvbnRlbmQtPmRlYnVnZ2VyV2Fz
RGlzYWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXN1bWUoKQpAQCAt
MTU3MCw4ICsxNTcwLDggQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXN1bWUoKQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQobG9uZyBj
YWxsSWQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KQogewotICAgIGlmIChtX3JlbW90ZUZyb250ZW5k
KQotICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5ldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNh
bGxJZCwgc2NyaXB0KTsKKyAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+
ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlwdCk7CiAgICAgZWxzZQogICAg
ICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5hcHBlbmQocGFpcjxsb25nLCBTdHJp
bmc+KGNhbGxJZCwgc2NyaXB0KSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmgKaW5kZXggNGZlNjdjZS4uN2NkMTg5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBJbnNwZWN0b3JDU1NTdG9yZTsK
IGNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTsKIGNsYXNzIEluc3BlY3RvckRhdGFi
YXNlUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OworY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3Bl
Y3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ7CkBAIC03Miw3ICs3Myw2
IEBAIGNsYXNzIEluc3BlY3RvcldvcmtlclJlc291cmNlOwogY2xhc3MgS1VSTDsKIGNsYXNzIE5v
ZGU7CiBjbGFzcyBQYWdlOwotY2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgUmVzb3VyY2VF
cnJvcjsKQEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZXNvdXJjZXNN
YXAmIHJlc291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VzOyB9CiAgICAgSW5zcGVj
dG9yUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsKLSAgICBib29s
IGhhc0Zyb250ZW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVGcm9udGVuZDsgfQorICAgIGJv
b2wgaGFzRnJvbnRlbmQoKSBjb25zdCB7IHJldHVybiBtX2Zyb250ZW5kOyB9CiAKICAgICB2b2lk
IGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgb3Bl
bkluSW5zcGVjdGVkV2luZG93KGNvbnN0IFN0cmluZyYgdXJsKTsKQEAgLTMxOSw3ICszMTksNyBA
QCBwcml2YXRlOgogICAgIEluc3BlY3RvckNsaWVudCogbV9jbGllbnQ7CiAgICAgT3duUHRyPElu
c3BlY3RvckZyb250ZW5kQ2xpZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50OwogICAgIGJv
b2wgbV9vcGVuaW5nRnJvbnRlbmQ7Ci0gICAgT3duUHRyPFJlbW90ZUluc3BlY3RvckZyb250ZW5k
PiBtX3JlbW90ZUZyb250ZW5kOworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZD4gbV9mcm9u
dGVuZDsKICAgICBSZWZQdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9tQWdlbnQ7CiAgICAgUmVm
UHRyPEluc3BlY3RvclN0b3JhZ2VBZ2VudD4gbV9zdG9yYWdlQWdlbnQ7CiAgICAgT3duUHRyPElu
c3BlY3RvckNTU1N0b3JlPiBtX2Nzc1N0b3JlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCmluZGV4IDlkZTYyMGQuLmIyOTVjMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKQEAgLTU0LDEyICs1NCwxMiBAQAogI2luY2x1ZGUgIkZyYW1lVHJl
ZS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJF
bGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJNdXRh
dGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5j
bHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVi
dWdTZXJ2ZXIuaCIKQEAgLTIwNyw3ICsyMDcsNyBAQCBjb25zdCBpbnQgZG9tQnJlYWtwb2ludERl
cml2ZWRUeXBlU2hpZnQgPSAxNjsKIAogSW5zcGVjdG9yRE9NQWdlbnQqIEluc3BlY3RvckRPTUFn
ZW50OjpzX2RvbUFnZW50T25CcmVha3BvaW50ID0gMDsKIAotSW5zcGVjdG9yRE9NQWdlbnQ6Oklu
c3BlY3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kKQorSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFn
ZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kKQogICAgIDogRXZlbnRMaXN0ZW5lcihJbnNwZWN0b3JET01BZ2VudFR5cGUpCiAgICAgLCBt
X2Nzc1N0b3JlKGNzc1N0b3JlKQogICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IGZkODQ1MmYuLmMzYmMwYTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtNTcsNyArNTcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgRWxlbWVudDsKICAgICBjbGFzcyBFdmVudDsKICAgICBjbGFz
cyBJbnNwZWN0b3JET01BZ2VudDsKLSAgICBjbGFzcyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDsK
KyAgICBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKICAgICBjbGFzcyBNYXRjaEpvYjsKICAgICBj
bGFzcyBOYW1lTm9kZU1hcDsKICAgICBjbGFzcyBOb2RlOwpAQCAtODAsNyArODAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBJbnNwZWN0b3JET01BZ2VudCA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBSZW1v
dGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NQWdlbnQoY3NzU3RvcmUsIGZyb250ZW5kKSk7CiAg
ICAgICAgIH0KQEAgLTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgICAgIDogMDsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckRPTUFnZW50KEluc3Bl
Y3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5k
KTsKKyAgICAgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3Jl
LCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOwogICAgICAgICB+SW5zcGVjdG9yRE9NQWdl
bnQoKTsKIAogICAgICAgICB2b2lkIHJlc2V0KCk7CkBAIC0yMDIsNyArMjAyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRpc2NhcmRCaW5kaW5ncygpOwogCiAgICAgICAg
IEluc3BlY3RvckNTU1N0b3JlKiBtX2Nzc1N0b3JlOwotICAgICAgICBSZW1vdGVJbnNwZWN0b3JG
cm9udGVuZCogbV9mcm9udGVuZDsKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRl
bmQ7CiAgICAgICAgIE5vZGVUb0lkTWFwIG1fZG9jdW1lbnROb2RlVG9JZE1hcDsKICAgICAgICAg
Ly8gT3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBub2Rlcy4KICAgICAgICAgVmVjdG9y
PE5vZGVUb0lkTWFwKj4gbV9kYW5nbGluZ05vZGVUb0lkTWFwczsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCmluZGV4IDYxMDk1YTAuLjcy
YjRlMTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlLmNwcApAQCAtMzcsOCArMzcsOCBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCi0jaW5jbHVkZSAi
UmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJTdG9yYWdlLmgiCiAjaW5jbHVk
ZSAiU3RvcmFnZUV2ZW50LmgiCiAKQEAgLTY0LDcgKzY0LDcgQEAgYm9vbCBJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2U6OmlzU2FtZUhvc3RBbmRUeXBlKEZyYW1lKiBmcmFtZSwgYm9vbCBpc0xv
Y2FsU3QKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+aG9zdCgpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKS0+aG9zdCgpKSAmJiBtX2lzTG9jYWxTdG9yYWdlID09IGlzTG9jYWxTdG9yYWdlOwogfQog
Ci12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6YmluZChSZW1vdGVJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6Ymlu
ZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgQVNTRVJUKCFtX2Zyb250ZW5k
KTsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCmluZGV4IGE0N2U3NGMuLmVlMDk5NzQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCkBAIC00
Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFN0b3JhZ2U7CiAg
ICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7CisgICAg
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiAKICAgICBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgpAQCAtNTYsNyAr
NTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICByZXR1cm4gbGlzdGVuZXIt
PnR5cGUoKSA9PSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VUeXBlID8gc3RhdGljX2Nhc3Q8
Y29uc3QgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKj4obGlzdGVuZXIpIDogMDsKICAgICAg
ICAgfQogCi0gICAgICAgIHZvaWQgYmluZChSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpOworICAgICAgICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKICAg
ICAgICAgdm9pZCB1bmJpbmQoKTsKICAgICAgICAgdm9pZCBzdGFydFJlcG9ydGluZ0NoYW5nZXNU
b0Zyb250ZW5kKCk7CiAKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBSZWZQdHI8U3RvcmFnZT4gbV9kb21TdG9yYWdlOwogICAgICAgICBib29sIG1faXNMb2Nh
bFN0b3JhZ2U7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKLSAgICAgICAgUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5k
KiBtX2Zyb250ZW5kOwogICAgICAgICBpbnQgbV9pZDsKICAgICAgICAgYm9vbCBtX3JlcG9ydGlu
Z0NoYW5nZXNUb0Zyb250ZW5kOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlUmVzb3VyY2UuY3BwCmluZGV4IDAzNjE0OGYuLmJhNjc4MTggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCkBAIC0zMyw4ICszMyw4
IEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpICYmIEVOQUJMRShJTlNQRUNUT1IpCiAjaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTUsNyArNTUsNyBAQCBJbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlOjpJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlKFBhc3NSZWZQdHI8RGF0YWJh
c2U+IGRhdGFiYQogewogfQogCi12b2lkIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U6OmJpbmQo
UmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQordm9pZCBJbnNwZWN0b3JEYXRhYmFz
ZVJlc291cmNlOjpiaW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBpZiAo
bV9zY3JpcHRPYmplY3RDcmVhdGVkKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgKaW5kZXggOGUwZTFiMy4uMjAzOTk1YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5o
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaApAQCAt
MzksMTMgKzM5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERhdGFiYXNlOwot
Y2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsK
IAogY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPElu
c3BlY3RvckRhdGFiYXNlUmVzb3VyY2U+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxEYXRhYmFzZT4g
ZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdmVyc2lvbik7CiAKLSAgICB2b2lkIGJpbmQoUmVtb3RlSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKTsKKyAgICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5k
KTsKICAgICB2b2lkIHVuYmluZCgpOwogICAgIERhdGFiYXNlKiBkYXRhYmFzZSgpIHsgcmV0dXJu
IG1fZGF0YWJhc2UuZ2V0KCk7IH0KICAgICBsb25nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBl
MWMwZGMwLi40M2YyNTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcApAQCAtMzMsOSArMzMsOSBAQAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3Jp
cHRIb3N0LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlJl
bW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIK
ICNpbmNsdWRlIDx3dGYvTUQ1Lmg+CiAKQEAgLTQ2LDE3ICs0NiwxNyBAQCBzdGF0aWMgU3RyaW5n
IGZvcm1hdEJyZWFrcG9pbnRJZChjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5l
TnVtYmVyKQogICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXM6JWQiLCBzb3VyY2VJRC51dGY4
KCkuZGF0YSgpLCBsaW5lTnVtYmVyKTsKIH0KIAotUGFzc093blB0cjxJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zcGVjdG9yQ29udHJvbGxl
ciogaW5zcGVjdG9yQ29udHJvbGxlciwgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIHJlbW90ZUZy
b250ZW5kKQorUGFzc093blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpjcmVhdGUoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxl
ciwgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewotICAgIE93blB0cjxJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50PiBhZ2VudCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
KGluc3BlY3RvckNvbnRyb2xsZXIsIHJlbW90ZUZyb250ZW5kKSk7CisgICAgT3duUHRyPEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ+IGFnZW50ID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQoaW5zcGVjdG9yQ29udHJvbGxlciwgZnJvbnRlbmQpKTsKICAgICBTY3JpcHREZWJ1Z1Nl
cnZlcjo6c2hhcmVkKCkuY2xlYXJCcmVha3BvaW50cygpOwogICAgIFNjcmlwdERlYnVnU2VydmVy
OjpzaGFyZWQoKS5hZGRMaXN0ZW5lcihhZ2VudC5nZXQoKSwgaW5zcGVjdG9yQ29udHJvbGxlci0+
aW5zcGVjdGVkUGFnZSgpKTsKICAgICByZXR1cm4gYWdlbnQucmVsZWFzZSgpOwogfQogCi1JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3BlY3RvckNvbnRy
b2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiByZW1v
dGVGcm9udGVuZCkKK0luc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgSW5zcGVjdG9yRnJv
bnRlbmQqIGZyb250ZW5kKQogICAgIDogbV9pbnNwZWN0b3JDb250cm9sbGVyKGluc3BlY3RvckNv
bnRyb2xsZXIpCi0gICAgLCBtX3JlbW90ZUZyb250ZW5kKHJlbW90ZUZyb250ZW5kKQorICAgICwg
bV9mcm9udGVuZChmcm9udGVuZCkKICAgICAsIG1fcGF1c2VkU2NyaXB0U3RhdGUoMCkKICAgICAs
IG1fYnJlYWtwb2ludHNMb2FkZWQoZmFsc2UpCiB7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzdGVwT3V0T2ZGdW5jdGlvbigpCiB2b2lkIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUobG9uZyBwYXVzZVN0YXRl
KQogewogICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5zZXRQYXVzZU9uRXhjZXB0aW9u
c1N0YXRlKHN0YXRpY19jYXN0PFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0
YXRlPihwYXVzZVN0YXRlKSk7Ci0gICAgbV9yZW1vdGVGcm9udGVuZC0+dXBkYXRlUGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSgpKTsKKyAgICBtX2Zyb250ZW5kLT51cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRl
KFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCkpOwog
fQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNsZWFyRm9yUGFnZU5hdmlnYXRpb24o
KQpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2F2ZUJy
ZWFrcG9pbnRzKCkKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGFyc2VTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
ZGF0YSwgaW50IGZpcnN0TGluZSwgU2NyaXB0V29ybGRUeXBlIHdvcmxkVHlwZSkKIHsKICAgICAv
LyBEb24ndCBzZW5kIHNjcmlwdCBjb250ZW50IHRvIHRoZSBmcm9udCBlbmQgdW50aWwgaXQncyBy
ZWFsbHkgbmVlZGVkLgotICAgIG1fcmVtb3RlRnJvbnRlbmQtPnBhcnNlZFNjcmlwdFNvdXJjZShz
b3VyY2VJRCwgdXJsLCAiIiwgZmlyc3RMaW5lLCB3b3JsZFR5cGUpOworICAgIG1fZnJvbnRlbmQt
PnBhcnNlZFNjcmlwdFNvdXJjZShzb3VyY2VJRCwgdXJsLCAiIiwgZmlyc3RMaW5lLCB3b3JsZFR5
cGUpOwogCiAgICAgbV9zY3JpcHRJRFRvQ29udGVudC5zZXQoc291cmNlSUQsIGRhdGEpOwogCkBA
IC0yNjQsNyArMjY0LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNv
dXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcKICAgICAgICAgICAgIGJv
b2wgc3VjY2VzcyA9IFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5zZXRCcmVha3BvaW50KHNv
dXJjZUlELCBicmVha3BvaW50SXQtPnNlY29uZCwgbGluZU51bWJlciwgJmFjdHVhbExpbmVOdW1i
ZXIpOwogICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+cmVzdG9yZWRCcmVha3BvaW50KHNvdXJj
ZUlELCB1cmwsIGFjdHVhbExpbmVOdW1iZXIsIGJyZWFrcG9pbnRJdC0+c2Vjb25kLmVuYWJsZWQs
IGJyZWFrcG9pbnRJdC0+c2Vjb25kLmNvbmRpdGlvbik7CisgICAgICAgICAgICBtX2Zyb250ZW5k
LT5yZXN0b3JlZEJyZWFrcG9pbnQoc291cmNlSUQsIHVybCwgYWN0dWFsTGluZU51bWJlciwgYnJl
YWtwb2ludEl0LT5zZWNvbmQuZW5hYmxlZCwgYnJlYWtwb2ludEl0LT5zZWNvbmQuY29uZGl0aW9u
KTsKICAgICAgICAgICAgIFN0cmluZyBicmVha3BvaW50SWQgPSBmb3JtYXRCcmVha3BvaW50SWQo
c291cmNlSUQsIGFjdHVhbExpbmVOdW1iZXIpOwogICAgICAgICAgICAgbV9icmVha3BvaW50c01h
cHBpbmcuc2V0KGJyZWFrcG9pbnRJZCwgbGluZU51bWJlcik7CiAgICAgICAgIH0KQEAgLTI3NCw3
ICsyNzQsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKGNv
bnN0IFN0cmluZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZwogCiB2b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCiB7Ci0gICAgbV9yZW1vdGVGcm9udGVuZC0+ZmFpbGVkVG9QYXJzZVNjcmlw
dFNvdXJjZSh1cmwsIGRhdGEsIGZpcnN0TGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOwor
ICAgIG1fZnJvbnRlbmQtPmZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UodXJsLCBkYXRhLCBmaXJz
dExpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpkaWRQYXVzZShTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUpCkBAIC0yODIsMTMg
KzI4MiwxMyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhdXNlKFNjcmlwdFN0
YXRlKiBzY3JpcHRTdGF0ZSkKICAgICBBU1NFUlQoc2NyaXB0U3RhdGUgJiYgIW1fcGF1c2VkU2Ny
aXB0U3RhdGUpOwogICAgIG1fcGF1c2VkU2NyaXB0U3RhdGUgPSBzY3JpcHRTdGF0ZTsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGNhbGxGcmFtZXMgPSBjdXJyZW50Q2FsbEZyYW1lcygpOwot
ICAgIG1fcmVtb3RlRnJvbnRlbmQtPnBhdXNlZFNjcmlwdChjYWxsRnJhbWVzLmdldCgpKTsKKyAg
ICBtX2Zyb250ZW5kLT5wYXVzZWRTY3JpcHQoY2FsbEZyYW1lcy5nZXQoKSk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ29udGludWUoKQogewogICAgIG1fcGF1c2VkU2Ny
aXB0U3RhdGUgPSAwOwotICAgIG1fcmVtb3RlRnJvbnRlbmQtPnJlc3VtZWRTY3JpcHQoKTsKKyAg
ICBtX2Zyb250ZW5kLT5yZXN1bWVkU2NyaXB0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAyY2Zi
ZjU1Li45MWJjZDQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5oCkBAIC00MiwxMiArNDIsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluamVj
dGVkU2NyaXB0SG9zdDsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CitjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3RvclZhbHVlOwotY2xhc3MgUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQ7CiAKIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgU2NyaXB0
RGVidWdMaXN0ZW5lciwgcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ29udHJv
bGxlciosIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8
SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3BlY3RvckNvbnRyb2xsZXIqLCBJbnNw
ZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKTsK
IAogICAgIHN0YXRpYyBib29sIGlzRGVidWdnZXJBbHdheXNFbmFibGVkKCk7CkBAIC03Myw3ICs3
Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIG1kNUJhc2UxNihjb25zdCBTdHJpbmcm
IHN0cmluZyk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnNwZWN0
b3JDb250cm9sbGVyKiwgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50KEluc3BlY3RvckNvbnRyb2xsZXIqLCBJbnNwZWN0b3JGcm9udGVuZCopOwog
CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gY3VycmVudENhbGxGcmFtZXMoKTsKIApA
QCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZSgp
OwogCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JDb250cm9sbGVyOwotICAg
IFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBtX3JlbW90ZUZyb250ZW5kOworICAgIEluc3BlY3Rv
ckZyb250ZW5kKiBtX2Zyb250ZW5kOwogICAgIFNjcmlwdFN0YXRlKiBtX3BhdXNlZFNjcmlwdFN0
YXRlOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc291cmNlSURUb1VSTDsKICAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3NjcmlwdElEVG9Db250ZW50OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAppbmRleCA1ZGIzY2FhLi5hNzM0Njlh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAt
MzQsMTAgKzM0LDEwIEBACiAKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKLSNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlNjcmlw
dERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUgIlNj
cmlwdFByb2ZpbGVyLmgiCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3BlY3RvckNvbnRy
CiAKIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zcGVj
dG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcikKICAgICA6IG1faW5zcGVjdG9yQ29u
dHJvbGxlcihpbnNwZWN0b3JDb250cm9sbGVyKQotICAgICwgbV9yZW1vdGVGcm9udGVuZCgwKQor
ICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9lbmFibGVkKFNjcmlwdFByb2ZpbGVyOjppc1By
b2ZpbGVyQWx3YXlzRW5hYmxlZCgpKQogICAgICwgbV9yZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJv
ZmlsZShmYWxzZSkKICAgICAsIG1fY3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyKC0x
KQpAQCAtNzYsOCArNzYsOCBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmFkZFByb2Zp
bGUoUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiBwcnBQcm9maWxlLCB1bgogewogICAgIFJlZlB0
cjxTY3JpcHRQcm9maWxlPiBwcm9maWxlID0gcHJwUHJvZmlsZTsKICAgICBtX3Byb2ZpbGVzLmFk
ZChwcm9maWxlLT51aWQoKSwgcHJvZmlsZSk7Ci0gICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCi0g
ICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPmFkZFByb2ZpbGVIZWFkZXIoY3JlYXRlUHJvZmlsZUhl
YWRlcigqcHJvZmlsZSkpOworICAgIGlmIChtX2Zyb250ZW5kKQorICAgICAgICBtX2Zyb250ZW5k
LT5hZGRQcm9maWxlSGVhZGVyKGNyZWF0ZVByb2ZpbGVIZWFkZXIoKnByb2ZpbGUpKTsKICAgICBh
ZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9Db25zb2xlKHByb2ZpbGUsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCk7CiB9CiAKQEAgLTExMCw4ICsxMTAsOCBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6OmRpc2FibGUoKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7
CiAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25z
U29vbigpOwotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICBtX3JlbW90ZUZyb250
ZW5kLT5wcm9maWxlcldhc0Rpc2FibGVkKCk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAg
IG1fZnJvbnRlbmQtPnByb2ZpbGVyV2FzRGlzYWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQ
cm9maWxlckFnZW50OjplbmFibGUoYm9vbCBza2lwUmVjb21waWxlKQpAQCAtMTIxLDggKzEyMSw4
IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJlY29tcGls
ZSkKICAgICBtX2VuYWJsZWQgPSB0cnVlOwogICAgIGlmICghc2tpcFJlY29tcGlsZSkKICAgICAg
ICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29v
bigpOwotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAgICBtX3JlbW90ZUZyb250ZW5k
LT5wcm9maWxlcldhc0VuYWJsZWQoKTsKKyAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgbV9m
cm9udGVuZC0+cHJvZmlsZXJXYXNFbmFibGVkKCk7CiB9CiAKIFN0cmluZyBJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpnZXRDdXJyZW50VXNlckluaXRpYXRlZFByb2ZpbGVOYW1lKGJvb2wgaW5jcmVt
ZW50UHJvZmlsZU51bWJlcikKQEAgLTE2MCw4ICsxNjAsOCBAQCB2b2lkIEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OnJlc2V0U3RhdGUoKQogICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsKICAgICBtX2N1
cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7CiAgICAgbV9uZXh0VXNlckluaXRp
YXRlZFByb2ZpbGVOdW1iZXIgPSAxOwotICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQotICAgICAg
ICBtX3JlbW90ZUZyb250ZW5kLT5yZXNldFByb2ZpbGVzUGFuZWwoKTsKKyAgICBpZiAobV9mcm9u
dGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxlc1BhbmVsKCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCkK
QEAgLTIwMSw4ICsyMDEsOCBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0b3BVc2Vy
SW5pdGlhdGVkUHJvZmlsaW5nKCkKIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp0b2dn
bGVSZWNvcmRCdXR0b24oYm9vbCBpc1Byb2ZpbGluZykKIHsKLSAgICBpZiAobV9yZW1vdGVGcm9u
dGVuZCkKLSAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+c2V0UmVjb3JkaW5nUHJvZmlsZShpc1By
b2ZpbGluZyk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgIG1fZnJvbnRlbmQtPnNldFJl
Y29yZGluZ1Byb2ZpbGUoaXNQcm9maWxpbmcpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmgg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKaW5kZXggODE4Mzc3
ZS4uOTU5M2ViYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQu
aApAQCAtNDIsOSArNDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc3BlY3Rv
ckFycmF5OwogY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKK2NsYXNzIEluc3BlY3RvckZyb250
ZW5kOwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwogY2xhc3MgU2NyaXB0UHJvZmlsZTsKLWNsYXNz
IFJlbW90ZUluc3BlY3RvckZyb250ZW5kOwogCiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFnZW50
IDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNSZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSgpIHsgcmV0dXJuIG1f
cmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGU7IH0KICAgICB2b2lkIHJlbW92ZVByb2ZpbGUo
dW5zaWduZWQgdWlkKTsKICAgICB2b2lkIHJlc2V0U3RhdGUoKTsKLSAgICB2b2lkIHNldFJlbW90
ZUZyb250ZW5kKFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkgeyBtX3JlbW90ZUZy
b250ZW5kID0gZnJvbnRlbmQ7IH0KKyAgICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250
ZW5kKiBmcm9udGVuZCkgeyBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7IH0KICAgICB2b2lkIHN0YXJ0
UHJvZmlsaW5nKCkgeyBzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsgfQogICAgIHZvaWQg
c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CiAgICAgdm9pZCBzdG9wUHJvZmlsaW5nKCkg
eyBzdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZygpOyB9CkBAIC03OCw3ICs3OCw3IEBAIHByaXZh
dGU6CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVByb2ZpbGVIZWFkZXIo
Y29uc3QgU2NyaXB0UHJvZmlsZSYgcHJvZmlsZSk7CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVy
KiBtX2luc3BlY3RvckNvbnRyb2xsZXI7Ci0gICAgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIG1f
cmVtb3RlRnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiAgICAg
Ym9vbCBtX2VuYWJsZWQ7CiAgICAgYm9vbCBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxl
OwogICAgIGludCBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcjsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcAppbmRleCBhMmI1NWIwLi5lZDA3MzM5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCkBAIC0zOCw4ICszOCw4IEBACiAj
aW5jbHVkZSAiRG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yVmFsdWVzLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC0xNzUsNyArMTc1LDcgQEAg
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclRpbWluZyhS
ZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWkKIH0KIAogCi12b2lkIEluc3BlY3RvclJlc291cmNlOjp1
cGRhdGVTY3JpcHRPYmplY3QoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQordm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlU2NyaXB0T2JqZWN0KEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCkKIHsKICAgICBpZiAobV9jaGFuZ2VzLmhhc0NoYW5nZShOb0NoYW5nZSkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI1MSw3ICsyNTEsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNl
Ojp1cGRhdGVTY3JpcHRPYmplY3QoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQog
ICAgIG1fY2hhbmdlcy5jbGVhckFsbCgpOwogfQogCi12b2lkIEluc3BlY3RvclJlc291cmNlOjpy
ZWxlYXNlU2NyaXB0T2JqZWN0KFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3Zv
aWQgSW5zcGVjdG9yUmVzb3VyY2U6OnJlbGVhc2VTY3JpcHRPYmplY3QoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKQogewogICAgIG1fY2hhbmdlcy5zZXRBbGwoKTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlLmgKaW5kZXggNGMxMmVhMC4uNDAwNDE0MiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKICAgICBjbGFzcyBEb2N1bWVudExvYWRl
cjsKICAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDsK
KyAgICBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKICAgICBjbGFzcyBSZXNvdXJjZUxvYWRUaW1p
bmc7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9u
c2U7CkBAIC03Niw4ICs3Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfkluc3Bl
Y3RvclJlc291cmNlKCk7CiAKICAgICAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4g
YXBwZW5kUmVkaXJlY3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBLVVJMJiByZWRp
cmVjdFVSTCk7Ci0gICAgICAgIHZvaWQgdXBkYXRlU2NyaXB0T2JqZWN0KFJlbW90ZUluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCk7Ci0gICAgICAgIHZvaWQgcmVsZWFzZVNjcmlwdE9iamVjdChS
ZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOworICAgICAgICB2b2lkIHVwZGF0ZVNj
cmlwdE9iamVjdChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOworICAgICAgICB2b2lkIHJl
bGVhc2VTY3JpcHRPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKIAogICAgICAg
ICB2b2lkIHVwZGF0ZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgICAgIHZv
aWQgdXBkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RvcmFnZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggNjZkMzM3Mi4uMWY1NjVmYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RvcmFnZUFnZW50LmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdG9yYWdlQWdlbnQuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAKICNpbmNsdWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clZhbHVlcy5oIgogI2luY2x1ZGUgIlNRTEVycm9yLmgiCiAjaW5jbHVkZSAiU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCIKQEAgLTQzLDcgKzQ0LDYgQEAKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5j
bHVkZSAiU1FMVmFsdWUuaCIKLSNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgog
I2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAt
MjAwLDcgKzIwMCw3IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlCiAKLUluc3BlY3RvclN0
b3JhZ2VBZ2VudDo6SW5zcGVjdG9yU3RvcmFnZUFnZW50KFJlbW90ZUluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCkKK0luc3BlY3RvclN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yU3RvcmFnZUFnZW50
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQp
CiB7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdG9yYWdlQWdl
bnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0b3JhZ2VBZ2VudC5oCmluZGV4IGI0
N2UwZDMuLmIxY2VlZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
b3JhZ2VBZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0b3JhZ2VBZ2Vu
dC5oCkBAIC0zNSwxMSArMzUsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0
YWJhc2U7Ci1jbGFzcyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvckZy
b250ZW5kOwogCiBjbGFzcyBJbnNwZWN0b3JTdG9yYWdlQWdlbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbnNwZWN0b3JTdG9yYWdlQWdlbnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNwZWN0b3JTdG9yYWdlQWdlbnQ+IGNyZWF0ZShSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yU3RvcmFnZUFnZW50PiBj
cmVhdGUoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JTdG9yYWdlQWdlbnQoZnJvbnRlbmQpKTsKICAgICB9CkBA
IC00OCwxMyArNDgsMTMgQEAgcHVibGljOgogCiAgICAgbG9uZyBleGVjdXRlU1FMKERhdGFiYXNl
KiwgY29uc3QgU3RyaW5nJiBxdWVyeSk7CiAKLSAgICBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQoKSB7IHJldHVybiBtX2Zyb250ZW5kOyB9CisgICAgSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kKCkgeyByZXR1cm4gbV9mcm9udGVuZDsgfQogICAgIHZvaWQgY2xlYXJGcm9udGVu
ZCgpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvclN0b3JhZ2VBZ2VudChSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZCopOworICAgIEluc3BlY3RvclN0b3JhZ2VBZ2VudChJbnNwZWN0b3JGcm9udGVu
ZCopOwogCi0gICAgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgSW5z
cGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGFh
NDJhNTQuLmZiYjE3YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRl
ICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgiCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogaW50IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNfaW5zdGFuY2VD
b3VudCA9IDA7CiAKLUluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQorSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
CiAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKQogewogICAgICsrc19pbnN0YW5jZUNvdW50OwpA
QCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXQoKQog
ICAgIG1fcmVjb3JkU3RhY2suY2xlYXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZy
b250ZW5kKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlP
YmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewogICAgIEFTU0VSVChmcm9udGVu
ZCk7CiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaAppbmRleCAxNmQ3YjgzLi42YjMzMjRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oCkBAIC00Miw3ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEV2ZW50OwotY2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJ
bnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwpAQCAtNzQsMTEgKzc0LDExIEBAIGVudW0gVGltZWxp
bmVSZWNvcmRUeXBlIHsKIAogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IFNjcmlwdEdD
RXZlbnRMaXN0ZW5lciwgcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBJbnNwZWN0
b3JUaW1lbGluZUFnZW50KFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CisgICAg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOwogICAg
IH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9p
ZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAg
ICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZCopOwogCiAg
ICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgogICAgIHZvaWQgd2lsbENhbGxGdW5j
dGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTE1Miw3
ICsxNTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKIAot
ICAgIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZy
b250ZW5kKiBtX2Zyb250ZW5kOwogCiAgICAgVmVjdG9yPFRpbWVsaW5lUmVjb3JkRW50cnk+IG1f
cmVjb3JkU3RhY2s7CiAgICAgc3RhdGljIGludCBzX2luc3RhbmNlQ291bnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65326</attachid>
            <date>2010-08-24 14:43:45 -0700</date>
            <delta_ts>2010-08-24 14:49:13 -0700</delta_ts>
            <desc>[PATCH] Follow up for DerivedSources.make</desc>
            <filename>follow-up.patch</filename>
            <type>text/plain</type>
            <size>1904</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2U4M2Y0OS4uMTY3Y2VkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0yNCAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW90ZUluc3BlY3RvckZyb250ZW5k
IGNhbiBiZSByZW5hbWVkIHRvIEluc3BlY3RvckZyb250ZW5kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDQ5OQorCisgICAgICAgIEZvbGxvdy11cC4g
Tm8gbG9uZ2VyIGdlbmVyYXRlIHRoZSBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCBmaWxlcywganVz
dAorICAgICAgICBnZW5lcmF0ZSB0aGUgcmVxdWlyZWQgSW5zcGVjdG9yRnJvbnRlbmQgZmlsZXMu
CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorCiAyMDEwLTA4LTIwICBKb3NlcGgg
UGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzBjZGU5Ny4uYjlmNjU4OSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtNDg4LDExICs0ODgsOSBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBYU0xU
UHJvY2Vzc29yIFwKICMKIAotSU5TUEVDVE9SX0NMQVNTRVMgPSBJbnNwZWN0b3IKLQogLlBIT05Z
IDogYWxsCiAKLUpTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91dCBKU0V2ZW50TGlzdGVuZXIuaCBK
U0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5oKSAkKElOU1BFQ1RPUl9DTEFTU0VT
OiU9UmVtb3RlJUZyb250ZW5kLmgpKQorSlNfRE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZl
bnRMaXN0ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQogCiBX
RUJfRE9NX0hFQURFUlMgOj0KIGlmZXEgKCQoZmluZHN0cmluZyBCVUlMRElOR19XWCwkKEZFQVRV
UkVfREVGSU5FUykpLCBCVUlMRElOR19XWCkKQEAgLTgyMSwxMCArODE5LDEyIEBAIEpTJS5oIDog
JS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKQogCiAjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdl
bmVyYXRvcgogCithbGwgOiBJbnNwZWN0b3JGcm9udGVuZC5oCisKIElOU1BFQ1RPUl9HRU5FUkFU
T1JfU0NSSVBUUyA9ICQoR0VORVJBVEVfU0NSSVBUUykgaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJ
bnNwZWN0b3IucG0KIAotUmVtb3RlJUZyb250ZW5kLmggOiAlLmlkbCAkKElOU1BFQ1RPUl9HRU5F
UkFUT1JfU0NSSVBUUykKLQkkKGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwgJChJTlNQRUNUT1JfR0VO
RVJBVE9SX1NDUklQVFMpKSAtLW91dHB1dERpciAuICAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwKK0luc3Bl
Y3RvckZyb250ZW5kLmggOiBJbnNwZWN0b3IuaWRsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJ
UFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NS
SVBUUykpIC0tb3V0cHV0RGlyIC4gLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgTEFOR1VB
R0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CiAKIC1pbmNsdWRlICQoSlNf
RE9NX0hFQURFUlM6Lmg9LmRlcCkKIAo=
</data>
<flag name="review"
          id="54081"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>