<?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>81090</bug_id>
          
          <creation_ts>2012-03-14 01:50:58 -0700</creation_ts>
          <short_desc>REGRESSION(r110673): &quot;Qt minimal build broken&quot; (Requested by yurys on #webkit).</short_desc>
          <delta_ts>2012-03-14 02:02:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80789</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>578245</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 01:50:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/110673 broke the build:
&quot;Qt minimal build broken&quot; (Requested by yurys on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578246</commentid>
    <comment_count>1</comment_count>
      <attachid>131807</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 01:51:33 -0700</bug_when>
    <thetext>Created attachment 131807
ROLLOUT of r110673

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578257</commentid>
    <comment_count>2</comment_count>
      <attachid>131807</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 02:02:01 -0700</bug_when>
    <thetext>Comment on attachment 131807
ROLLOUT of r110673

Clearing flags on attachment: 131807

Committed r110678: &lt;http://trac.webkit.org/changeset/110678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578258</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 02:02:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131807</attachid>
            <date>2012-03-14 01:51:33 -0700</date>
            <delta_ts>2012-03-14 02:02:01 -0700</delta_ts>
            <desc>ROLLOUT of r110673</desc>
            <filename>bug-81090-20120314085401.patch</filename>
            <type>text/plain</type>
            <size>53313</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhlM2NhMzUzOGFlOTVl
MjI1Y2RiMGM4MDgwNWVjNzRkMzEzNDIwYy4uYWFjNWQ3Njk1ZWJmZDE5ZTMzZTk2MGYwYmQ2OWJj
ZmJhNzMzOWYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTAzLTE0ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEwNjczLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTA2NzMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMDkwCisKKyAgICAgICAgIlF0IG1pbmltYWwgYnVpbGQgYnJva2VuIiAoUmVx
dWVzdGVkIGJ5IHl1cnlzIG9uICN3ZWJraXQpLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHk6CisgICAgICAgIChDb21tYW5kUmV0dXJuUGFzc01vZGVsLkJ5
UG9pbnRlci5nZXRfc2V0X3JldHVybl9jb25kaXRpb24pOgorICAgICAgICAoVHlwZU1vZGVsLkVu
dW0uZ2V0X29wdGlvbmFsLkVudW1PcHRpb25hbC5nZXRfY29tbWFuZF9yZXR1cm5fcGFzc19tb2Rl
bCk6CisgICAgICAgIChUeXBlTW9kZWwuVmFsdWVUeXBlLlZhbHVlT3B0aW9uYWwuZ2V0X2NvbW1h
bmRfcmV0dXJuX3Bhc3NfbW9kZWwpOgorICAgICAgICAoR2VuZXJhdG9yLnByb2Nlc3NfZXZlbnQp
OgorICAgICAgICAoR2VuZXJhdG9yLnByb2Nlc3NfY29tbWFuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vh
cmNoVXRpbHM6OmJ1aWxkT2JqZWN0Rm9yU2VhcmNoTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlYXJjaFV0aWxzOjpzZWFyY2hJblRleHRCeUxpbmVzKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmg6CisgICAgICAgIChDb250ZW50U2VhcmNoVXRpbHMp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0
ZWRTY3JpcHQ6OmNhbGxGdW5jdGlvbk9uKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2Ny
aXB0OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2Ny
aXB0OjptYWtlRXZhbENhbGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5o
OgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ6OmRpZEludmFsaWRhdGVTdHlsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbEluc2VydERPTU5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbFJlbW92ZURPTU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbE1vZGlmeURP
TUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6cGF1
c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudDo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludEJ5VXJsKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpnZXRGdW5jdGlvbkRldGFpbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2NoZWR1bGVQYXVzZU9u
TmV4dFN0YXRlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmRpZFBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmJyZWFrUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpjbGVhckJyZWFrRGV0YWlscyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YnVpbGRPYmplY3RGb3JDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRBcnJheUZv
ckNvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb29r
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaEluUmVz
b3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6YnVpbGRPYmpl
Y3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yRnJhbWVUcmVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24pOgorCiAy
MDEyLTAzLTE0ICBQZXRlciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBUeXBlQnVpbGRlcjogSW50cm9kdWNlIE9wdE91dHB1dCBjbGFzcyBm
b3Igb3B0aW9uYWwgb3V0cHV0IHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKaW5kZXggY2E4YTY3NTNlOTI4N2RhMTc4
MGYxZGM3MjJiZTNmZTJlZTYyNTMyNy4uODQzNzcxYThhYTViNWQ0ZjIwMGNlZjJjMzkxMzdhYzVh
Y2RiN2NiNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucHkKQEAgLTU5LDggKzU5LDYgQEAgVFlQRV9OQU1FX0ZJWF9NQVAgPSB7CiBU
WVBFU19XSVRIX1JVTlRJTUVfQ0FTVF9TRVQgPSBmcm96ZW5zZXQoWyJSdW50aW1lLlJlbW90ZU9i
amVjdCIsICJSdW50aW1lLlByb3BlcnR5RGVzY3JpcHRvciIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJEZWJ1Z2dlci5GdW5jdGlvbkRldGFpbHMiLCAiRGVidWdn
ZXIuQ2FsbEZyYW1lIl0pCiAKLVNUUklDVF9FTkFCTEVEX0RPTUFJTlMgPSBbIkRlYnVnZ2VyIiwg
IlBhZ2UiXQotCiAKIGNtZGxpbmVfcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKIGNt
ZGxpbmVfcGFyc2VyLmFkZF9vcHRpb24oIi0tb3V0cHV0X2hfZGlyIikKQEAgLTU4MSwyOCArNTc5
LDYgQEAgY2xhc3MgQ29tbWFuZFJldHVyblBhc3NNb2RlbDoKICAgICAgICAgZGVmIGdldF9zZXRf
cmV0dXJuX2NvbmRpdGlvbigpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGNsYXNz
IE9wdE91dHB1dDoKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhcl90eXBlKToKLSAgICAg
ICAgICAgIHNlbGYudmFyX3R5cGUgPSB2YXJfdHlwZQotCi0gICAgICAgIGRlZiBnZXRfcmV0dXJu
X3Zhcl90eXBlKHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuICJUeXBlQnVpbGRlcjo6T3B0T3V0
cHV0PCVzPiIgJSBzZWxmLnZhcl90eXBlCi0KLSAgICAgICAgQHN0YXRpY21ldGhvZAotICAgICAg
ICBkZWYgZ2V0X291dHB1dF9hcmd1bWVudF9wcmVmaXgoKToKLSAgICAgICAgICAgIHJldHVybiAi
JiIKLQotICAgICAgICBAc3RhdGljbWV0aG9kCi0gICAgICAgIGRlZiBnZXRfb3V0cHV0X3RvX3Jh
d19leHByZXNzaW9uKCk6Ci0gICAgICAgICAgICByZXR1cm4gIiVzLmdldFZhbHVlKCkiCi0KLSAg
ICAgICAgZGVmIGdldF9vdXRwdXRfcGFyYW1ldGVyX3R5cGUoc2VsZik6Ci0gICAgICAgICAgICBy
ZXR1cm4gIlR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8JXM+KiIgJSBzZWxmLnZhcl90eXBlCi0KLSAg
ICAgICAgQHN0YXRpY21ldGhvZAotICAgICAgICBkZWYgZ2V0X3NldF9yZXR1cm5fY29uZGl0aW9u
KCk6Ci0gICAgICAgICAgICByZXR1cm4gIiVzLmlzQXNzaWduZWQoKSIKLQogCiBjbGFzcyBUeXBl
TW9kZWw6CiAgICAgY2xhc3MgUmVmUHRyQmFzZWQ6CkBAIC02NDEsNyArNjE3LDggQEAgY2xhc3Mg
VHlwZU1vZGVsOgogCiAgICAgICAgICAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgICAgICAg
ICAgIGRlZiBnZXRfY29tbWFuZF9yZXR1cm5fcGFzc19tb2RlbCgpOgotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQ29tbWFuZFJldHVyblBhc3NNb2RlbC5PcHRPdXRwdXQoYmFzZV9zZWxmLnR5
cGVfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogdG8gYmUgcmVwbGFjZWQgd2l0
aCBPcHRPdXRwdXQgbW9kZWwuCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb21tYW5kUmV0
dXJuUGFzc01vZGVsLkJ5UG9pbnRlcihiYXNlX3NlbGYudHlwZV9uYW1lKQogCiAgICAgICAgICAg
ICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgICAgICAgICAgIGRlZiBnZXRfaW5wdXRfcGFyYW1f
dHlwZV90ZXh0KCk6CkBAIC02OTEsNyArNjY4LDggQEAgY2xhc3MgVHlwZU1vZGVsOgogICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICAgICAgICAgIGRlZiBnZXRfY29tbWFuZF9yZXR1
cm5fcGFzc19tb2RlbChzZWxmKToKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29tbWFuZFJldHVy
blBhc3NNb2RlbC5PcHRPdXRwdXQoc2VsZi5iYXNlLnR5cGVfbmFtZSkKKyAgICAgICAgICAgICAg
ICAjIEZJWE1FOiB0byBiZSByZXBsYWNlZCB3aXRoIE9wdE91dHB1dCBtb2RlbC4KKyAgICAgICAg
ICAgICAgICByZXR1cm4gQ29tbWFuZFJldHVyblBhc3NNb2RlbC5CeVBvaW50ZXIoc2VsZi5iYXNl
LnR5cGVfbmFtZSkKIAogICAgICAgICAgICAgZGVmIGdldF9pbnB1dF9wYXJhbV90eXBlX3RleHQo
c2VsZik6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJjb25zdCAlcyogY29uc3QiICUgc2VsZi5i
YXNlLnR5cGVfbmFtZQpAQCAtMTcxOSwxNiArMTY5NywxMyBAQCAke2Zyb250ZW5kRG9tYWluTWV0
aG9kRGVjbGFyYXRpb25zfSAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwo
SW5zcAogICAgIGlmICghJGFnZW50RmllbGQpCiAgICAgICAgIHByb3RvY29sRXJyb3JzLT5wdXNo
U3RyaW5nKCIke2RvbWFpbk5hbWV9IGhhbmRsZXIgaXMgbm90IGF2YWlsYWJsZS4iKTsKICRtZXRo
b2RPdXRDb2RlCi0kbWV0aG9kSW5Db2RlCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVz
dWx0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICBFcnJvclN0cmluZyBlcnJvcjsK
LSAgICBpZiAoIXByb3RvY29sRXJyb3JzLT5sZW5ndGgoKSkgeworJG1ldGhvZEluQ29kZQorICAg
IGlmICghcHJvdG9jb2xFcnJvcnMtPmxlbmd0aCgpKQogICAgICAgICAkYWdlbnRGaWVsZC0+JG1l
dGhvZE5hbWUoJmVycm9yJGFnZW50Q2FsbFBhcmFtcyk7CiAKLSAgICAgICAgaWYgKCFlcnJvci5s
ZW5ndGgoKSkgewotJHtyZXNwb25zZUNvb2t9ICAgICAgICB9Ci0gICAgfQotICAgIHNlbmRSZXNw
b25zZShjYWxsSWQsIHJlc3VsdCwgU3RyaW5nOjpmb3JtYXQoIlNvbWUgYXJndW1lbnRzIG9mIG1l
dGhvZCAnJXMnIGNhbid0IGJlIHByb2Nlc3NlZCIsICIkZG9tYWluTmFtZS4kbWV0aG9kTmFtZSIp
LCBwcm90b2NvbEVycm9ycywgZXJyb3IpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJl
c3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ciske3Jlc3BvbnNlQ29va30gICAgc2Vu
ZFJlc3BvbnNlKGNhbGxJZCwgcmVzdWx0LCBTdHJpbmc6OmZvcm1hdCgiU29tZSBhcmd1bWVudHMg
b2YgbWV0aG9kICclcycgY2FuJ3QgYmUgcHJvY2Vzc2VkIiwgIiRkb21haW5OYW1lLiRtZXRob2RO
YW1lIiksIHByb3RvY29sRXJyb3JzLCBlcnJvcik7CiB9CiAiIiIpCiAKQEAgLTIxMzgsNDAgKzIx
MTMsMTIgQEAgJG1ldGhvZHMKIAogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1
ZGUgPFBsYXRmb3JtU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFj
ZSBUeXBlQnVpbGRlciB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1jbGFzcyBPcHRPdXRwdXQg
ewotcHVibGljOgotICAgIE9wdE91dHB1dCgpIDogbV9hc3NpZ25lZChmYWxzZSkgeyB9Ci0KLSAg
ICB2b2lkIG9wZXJhdG9yPShUIHZhbHVlKQotICAgIHsKLSAgICAgICAgbV92YWx1ZSA9IHZhbHVl
OwotICAgICAgICBtX2Fzc2lnbmVkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBib29sIGlzQXNzaWdu
ZWQoKSB7IHJldHVybiBtX2Fzc2lnbmVkOyB9Ci0KLSAgICBUIGdldFZhbHVlKCkKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChpc0Fzc2lnbmVkKCkpOwotICAgICAgICByZXR1cm4gbV92YWx1ZTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgVCBtX3ZhbHVlOwotICAgIGJvb2wgbV9hc3NpZ25lZDsKLQot
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE9wdE91dHB1dCk7Ci19OwotCi0KIC8vIFRoaXMgY2xh
c3MgcHJvdmlkZXMgIlRyYWl0cyIgdHlwZSBmb3IgdGhlIGlucHV0IHR5cGUgVC4gSXQgaXMgcHJv
Z3JhbW1lZCB1c2luZyBDKysgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24KIC8vIHRlY2huaXF1ZS4g
QnkgZGVmYXVsdCBpdCBzaW1wbHkgdGFrZXMgIkl0ZW1UcmFpdHMiIHR5cGUgZnJvbSBULCBidXQg
aXQgZG9lc24ndCB3b3JrIHdpdGggdGhlIGJhc2UgdHlwZXMuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgpAQCAtMjU2Miw5ICsyNTA5LDYgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgIEBzdGF0aWNtZXRo
b2QKICAgICBkZWYgcHJvY2Vzc19ldmVudChqc29uX2V2ZW50LCBkb21haW5fbmFtZSwgZnJvbnRl
bmRfbWV0aG9kX2RlY2xhcmF0aW9uX2xpbmVzKToKICAgICAgICAgZXZlbnRfbmFtZSA9IGpzb25f
ZXZlbnRbIm5hbWUiXQotCi0gICAgICAgIHN0cmljdF9tb2RlID0gZG9tYWluX25hbWUgaW4gU1RS
SUNUX0VOQUJMRURfRE9NQUlOUwotCiAgICAgICAgIHBhcmFtZXRlcl9saXN0ID0gW10KICAgICAg
ICAgbWV0aG9kX2xpbmVfbGlzdCA9IFtdCiAgICAgICAgIGJhY2tlbmRfanNfZXZlbnRfcGFyYW1f
bGlzdCA9IFtdCkBAIC0yNTkxLDIwICsyNTM1LDEzIEBAIGNsYXNzIEdlbmVyYXRvcjoKICAgICAg
ICAgICAgICAgICAgICAgdHlwZV9tb2RlbCA9IHR5cGVfbW9kZWwuZ2V0X29wdGlvbmFsKCkKICAg
ICAgICAgICAgICAgICAgICAgcmF3X3R5cGVfbW9kZWwgPSByYXdfdHlwZV9tb2RlbC5nZXRfb3B0
aW9uYWwoKQogCi0gICAgICAgICAgICAgICAgaWYgc3RyaWN0X21vZGU6Ci0gICAgICAgICAgICAg
ICAgICAgICMgQWxsIHR5cGVzIGFyZSBzdHJpY3QuCi0gICAgICAgICAgICAgICAgICAgIGFubm90
YXRlZF90eXBlID0gdHlwZV9tb2RlbC5nZXRfaW5wdXRfcGFyYW1fdHlwZV90ZXh0KCkKLSAgICAg
ICAgICAgICAgICAgICAgbW9kZV90eXBlX2JpbmRpbmcgPSBwYXJhbV90eXBlX2JpbmRpbmcKLSAg
ICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjIEFsbCB0eXBlcyBhcmUg
cmF3LgotICAgICAgICAgICAgICAgICAgICBhbm5vdGF0ZWRfdHlwZSA9IGdldF9hbm5vdGF0ZWRf
dHlwZV90ZXh0KHJhd190eXBlX21vZGVsLmdldF9pbnB1dF9wYXJhbV90eXBlX3RleHQoKSwgdHlw
ZV9tb2RlbC5nZXRfaW5wdXRfcGFyYW1fdHlwZV90ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAg
IG1vZGVfdHlwZV9iaW5kaW5nID0gcmF3X3R5cGVfYmluZGluZworICAgICAgICAgICAgICAgIGFu
bm90YXRlZF90eXBlID0gZ2V0X2Fubm90YXRlZF90eXBlX3RleHQocmF3X3R5cGVfbW9kZWwuZ2V0
X2lucHV0X3BhcmFtX3R5cGVfdGV4dCgpLCB0eXBlX21vZGVsLmdldF9pbnB1dF9wYXJhbV90eXBl
X3RleHQoKSkKIAogICAgICAgICAgICAgICAgIHBhcmFtZXRlcl9saXN0LmFwcGVuZCgiJXMgJXMi
ICUgKGFubm90YXRlZF90eXBlLCBwYXJhbWV0ZXJfbmFtZSkpCiAKICAgICAgICAgICAgICAgICBz
ZXR0ZXJfYXJndW1lbnQgPSByYXdfdHlwZV9tb2RlbC5nZXRfZXZlbnRfc2V0dGVyX2V4cHJlc3Np
b25fcGF0dGVybigpICUgcGFyYW1ldGVyX25hbWUKLSAgICAgICAgICAgICAgICBpZiBtb2RlX3R5
cGVfYmluZGluZy5nZXRfc2V0dGVyX3ZhbHVlX2V4cHJlc3Npb25fcGF0dGVybigpOgotICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXJfYXJndW1lbnQgPSBtb2RlX3R5cGVfYmluZGluZy5nZXRfc2V0
dGVyX3ZhbHVlX2V4cHJlc3Npb25fcGF0dGVybigpICUgc2V0dGVyX2FyZ3VtZW50CisgICAgICAg
ICAgICAgICAgaWYgcmF3X3R5cGVfYmluZGluZy5nZXRfc2V0dGVyX3ZhbHVlX2V4cHJlc3Npb25f
cGF0dGVybigpOgorICAgICAgICAgICAgICAgICAgICBzZXR0ZXJfYXJndW1lbnQgPSByYXdfdHlw
ZV9iaW5kaW5nLmdldF9zZXR0ZXJfdmFsdWVfZXhwcmVzc2lvbl9wYXR0ZXJuKCkgJSBzZXR0ZXJf
YXJndW1lbnQKIAogICAgICAgICAgICAgICAgIHNldHRlcl9jb2RlID0gIiAgICBwYXJhbXNPYmpl
Y3QtPnNldCVzKFwiJXNcIiwgJXMpO1xuIiAlIChzZXR0ZXJfdHlwZSwgcGFyYW1ldGVyX25hbWUs
IHNldHRlcl9hcmd1bWVudCkKICAgICAgICAgICAgICAgICBpZiBvcHRpb25hbDoKQEAgLTI2Mjcs
OSArMjU2NCw2IEBAIGNsYXNzIEdlbmVyYXRvcjoKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVm
IHByb2Nlc3NfY29tbWFuZChqc29uX2NvbW1hbmQsIGRvbWFpbl9uYW1lLCBhZ2VudF9maWVsZF9u
YW1lLCBhZ2VudF9pbnRlcmZhY2VfbmFtZSk6CiAgICAgICAgIGpzb25fY29tbWFuZF9uYW1lID0g
anNvbl9jb21tYW5kWyJuYW1lIl0KLQotICAgICAgICBzdHJpY3RfbW9kZSA9IGRvbWFpbl9uYW1l
IGluIFNUUklDVF9FTkFCTEVEX0RPTUFJTlMKLQogICAgICAgICBHZW5lcmF0b3IubWV0aG9kX25h
bWVfZW51bV9saXN0LmFwcGVuZCgiICAgICAgICBrJXNfJXNDbWQsIiAlIChkb21haW5fbmFtZSwg
anNvbl9jb21tYW5kWyJuYW1lIl0pKQogICAgICAgICBHZW5lcmF0b3IubWV0aG9kX2hhbmRsZXJf
bGlzdC5hcHBlbmQoIiAgICAgICAgICAgICZJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlckltcGw6
OiVzXyVzLCIgJSAoZG9tYWluX25hbWUsIGpzb25fY29tbWFuZF9uYW1lKSkKICAgICAgICAgR2Vu
ZXJhdG9yLmJhY2tlbmRfbWV0aG9kX2RlY2xhcmF0aW9uX2xpc3QuYXBwZW5kKCIgICAgdm9pZCAl
c18lcyhsb25nIGNhbGxJZCwgSW5zcGVjdG9yT2JqZWN0KiByZXF1ZXN0TWVzc2FnZU9iamVjdCk7
IiAlIChkb21haW5fbmFtZSwganNvbl9jb21tYW5kX25hbWUpKQpAQCAtMjcxOCw0MiArMjY1Miwy
NCBAQCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgICAgICAgICAgaWYgb3B0aW9uYWw6CiAgICAg
ICAgICAgICAgICAgICAgIHR5cGVfbW9kZWwgPSB0eXBlX21vZGVsLmdldF9vcHRpb25hbCgpCiAK
LSAgICAgICAgICAgICAgICBpZiBzdHJpY3RfbW9kZToKLSAgICAgICAgICAgICAgICAgICAgIyBB
bGwgdHlwZXMgYXJlIHN0cmljdC4gVmFsdWVzIGRvIG5vdCBoYXZlIGRlZmF1bHQgdmFsdWVzLgot
ICAgICAgICAgICAgICAgICAgICBjb2RlID0gIiAgICAlcyBvdXRfJXM7XG4iICUgKHR5cGVfbW9k
ZWwuZ2V0X2NvbW1hbmRfcmV0dXJuX3Bhc3NfbW9kZWwoKS5nZXRfcmV0dXJuX3Zhcl90eXBlKCks
IGpzb25fcmV0dXJuX25hbWUpCi0gICAgICAgICAgICAgICAgICAgIHBhcmFtID0gIiwgJXNvdXRf
JXMiICUgKHR5cGVfbW9kZWwuZ2V0X2NvbW1hbmRfcmV0dXJuX3Bhc3NfbW9kZWwoKS5nZXRfb3V0
cHV0X2FyZ3VtZW50X3ByZWZpeCgpLCBqc29uX3JldHVybl9uYW1lKQotICAgICAgICAgICAgICAg
ICAgICB2YXJfbmFtZSA9ICJvdXRfJXMiICUganNvbl9yZXR1cm5fbmFtZQotICAgICAgICAgICAg
ICAgICAgICBzZXR0ZXJfYXJndW1lbnQgPSB0eXBlX21vZGVsLmdldF9jb21tYW5kX3JldHVybl9w
YXNzX21vZGVsKCkuZ2V0X291dHB1dF90b19yYXdfZXhwcmVzc2lvbigpICUgdmFyX25hbWUKLSAg
ICAgICAgICAgICAgICAgICAgaWYgcmV0dXJuX3R5cGVfYmluZGluZy5nZXRfc2V0dGVyX3ZhbHVl
X2V4cHJlc3Npb25fcGF0dGVybigpOgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGVyX2Fy
Z3VtZW50ID0gcmV0dXJuX3R5cGVfYmluZGluZy5nZXRfc2V0dGVyX3ZhbHVlX2V4cHJlc3Npb25f
cGF0dGVybigpICUgc2V0dGVyX2FyZ3VtZW50Ci0KLSAgICAgICAgICAgICAgICAgICAgY29vayA9
ICIgICAgICAgICAgICByZXN1bHQtPnNldCVzKFwiJXNcIiwgJXMpO1xuIiAlIChzZXR0ZXJfdHlw
ZSwganNvbl9yZXR1cm5fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRlcl9hcmd1bWVudCkKLQotICAg
ICAgICAgICAgICAgICAgICBzZXRfY29uZGl0aW9uX3BhdHRlcm4gPSB0eXBlX21vZGVsLmdldF9j
b21tYW5kX3JldHVybl9wYXNzX21vZGVsKCkuZ2V0X3NldF9yZXR1cm5fY29uZGl0aW9uKCkKLSAg
ICAgICAgICAgICAgICAgICAgaWYgc2V0X2NvbmRpdGlvbl9wYXR0ZXJuOgotICAgICAgICAgICAg
ICAgICAgICAgICAgY29vayA9ICgiICAgICAgICAgICAgaWYgKCVzKVxuICAgICIgJSAoc2V0X2Nv
bmRpdGlvbl9wYXR0ZXJuICUgdmFyX25hbWUpKSArIGNvb2sKLSAgICAgICAgICAgICAgICAgICAg
YW5ub3RhdGVkX3R5cGUgPSB0eXBlX21vZGVsLmdldF9jb21tYW5kX3JldHVybl9wYXNzX21vZGVs
KCkuZ2V0X291dHB1dF9wYXJhbWV0ZXJfdHlwZSgpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgIyBBbGwgdHlwZXMgYXJlIHJhdy4gVmFsdWVzIGFsd2F5cyBoYXZl
IGRlZmF1bHQgdmFsdWVzLgotICAgICAgICAgICAgICAgICAgICByYXdfdHlwZV9tb2RlbCA9IHJl
dHVybl90eXBlX2JpbmRpbmcuZ2V0X3R5cGVfbW9kZWwoKQotICAgICAgICAgICAgICAgICAgICBp
ZiBvcHRpb25hbDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhd190eXBlX21vZGVsID0gcmF3
X3R5cGVfbW9kZWwuZ2V0X29wdGlvbmFsKCkKLQotICAgICAgICAgICAgICAgICAgICBjb2RlID0g
IiAgICAlcyBvdXRfJXMgPSAlcztcbiIgJSAocmF3X3R5cGUuZ2V0X3Jhd190eXBlX21vZGVsKCku
Z2V0X2NvbW1hbmRfcmV0dXJuX3Bhc3NfbW9kZWwoKS5nZXRfcmV0dXJuX3Zhcl90eXBlKCksIGpz
b25fcmV0dXJuX25hbWUsIGluaXRpYWxpemVyKQotICAgICAgICAgICAgICAgICAgICBwYXJhbSA9
ICIsICVzb3V0XyVzIiAlIChyYXdfdHlwZS5nZXRfb3V0cHV0X3Bhc3NfbW9kZWwoKS5nZXRfYXJn
dW1lbnRfcHJlZml4KCksIGpzb25fcmV0dXJuX25hbWUpCi0gICAgICAgICAgICAgICAgICAgIGNv
b2sgPSAiICAgICAgICAgICAgcmVzdWx0LT5zZXQlcyhcIiVzXCIsIG91dF8lcyk7XG4iICUgKHNl
dHRlcl90eXBlLCBqc29uX3JldHVybl9uYW1lLCBqc29uX3JldHVybl9uYW1lKQotICAgICAgICAg
ICAgICAgICAgICBpZiBvcHRpb25hbDoKLSAgICAgICAgICAgICAgICAgICAgICAgICMgRklYTUU6
IHN1cHBvcnQgb3B0aW9uYWwgcHJvcGVybHkuIFByb2JhYmx5IGFuIGFkZGl0aW9uYWwgb3V0cHV0
IHBhcmFtZXRlciBzaG91bGQgYmUgaW4gZWFjaCBjYXNlLgotICAgICAgICAgICAgICAgICAgICAg
ICAgIyBGSVhNRTogcmVmYWN0b3IgdGhpcyBjb25kaXRpb247IGl0J3MgYSBoYWNrIG5vdy4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZhcl90eXBlX3RleHQgPSByYXdfdHlwZS5nZXRfcmF3X3R5
cGVfbW9kZWwoKS5nZXRfY29tbWFuZF9yZXR1cm5fcGFzc19tb2RlbCgpLmdldF9yZXR1cm5fdmFy
X3R5cGUoKQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmFyX3R5cGVfdGV4dCA9PSAiYm9v
bCIgb3IgdmFyX3R5cGVfdGV4dC5zdGFydHN3aXRoKCJSZWZQdHI8Iik6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29vayA9ICgiICAgICAgICAgICAgaWYgKG91dF8lcylcbiAgICAiICUg
anNvbl9yZXR1cm5fbmFtZSkgKyBjb29rCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2sgPSAiICAgICAgICAgICAgLy8gRklYTUU6
IHN1cHBvcnQgb3B0aW9uYWwgaGVyZS5cbiIgKyBjb29rCisgICAgICAgICAgICAgICAgcmF3X3R5
cGVfbW9kZWwgPSByZXR1cm5fdHlwZV9iaW5kaW5nLmdldF90eXBlX21vZGVsKCkKKyAgICAgICAg
ICAgICAgICBpZiBvcHRpb25hbDoKKyAgICAgICAgICAgICAgICAgICAgcmF3X3R5cGVfbW9kZWwg
PSByYXdfdHlwZV9tb2RlbC5nZXRfb3B0aW9uYWwoKQorCisgICAgICAgICAgICAgICAgY29kZSA9
ICIgICAgJXMgb3V0XyVzID0gJXM7XG4iICUgKHJhd190eXBlLmdldF9yYXdfdHlwZV9tb2RlbCgp
LmdldF9jb21tYW5kX3JldHVybl9wYXNzX21vZGVsKCkuZ2V0X3JldHVybl92YXJfdHlwZSgpLCBq
c29uX3JldHVybl9uYW1lLCBpbml0aWFsaXplcikKKyAgICAgICAgICAgICAgICBwYXJhbSA9ICIs
ICVzb3V0XyVzIiAlIChyYXdfdHlwZS5nZXRfb3V0cHV0X3Bhc3NfbW9kZWwoKS5nZXRfYXJndW1l
bnRfcHJlZml4KCksIGpzb25fcmV0dXJuX25hbWUpCisgICAgICAgICAgICAgICAgY29vayA9ICIg
ICAgICAgIHJlc3VsdC0+c2V0JXMoXCIlc1wiLCBvdXRfJXMpO1xuIiAlIChzZXR0ZXJfdHlwZSwg
anNvbl9yZXR1cm5fbmFtZSwganNvbl9yZXR1cm5fbmFtZSkKKyAgICAgICAgICAgICAgICBpZiBv
cHRpb25hbDoKKyAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogc3VwcG9ydCBvcHRpb25hbCBw
cm9wZXJseS4gUHJvYmFibHkgYW4gYWRkaXRpb25hbCBvdXRwdXQgcGFyYW1ldGVyIHNob3VsZCBi
ZSBpbiBlYWNoIGNhc2UuCisgICAgICAgICAgICAgICAgICAgICMgRklYTUU6IHJlZmFjdG9yIHRo
aXMgY29uZGl0aW9uOyBpdCdzIGEgaGFjayBub3cuCisgICAgICAgICAgICAgICAgICAgIHZhcl90
eXBlX3RleHQgPSByYXdfdHlwZS5nZXRfcmF3X3R5cGVfbW9kZWwoKS5nZXRfY29tbWFuZF9yZXR1
cm5fcGFzc19tb2RlbCgpLmdldF9yZXR1cm5fdmFyX3R5cGUoKQorICAgICAgICAgICAgICAgICAg
ICBpZiB2YXJfdHlwZV90ZXh0ID09ICJib29sIiBvciB2YXJfdHlwZV90ZXh0LnN0YXJ0c3dpdGgo
IlJlZlB0cjwiKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvb2sgPSAoIiAgICAgICAgaWYg
KG91dF8lcylcbiAgICAiICUganNvbl9yZXR1cm5fbmFtZSkgKyBjb29rCisgICAgICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBjb29rID0gIiAgICAgICAgLy8g
RklYTUU6IHN1cHBvcnQgb3B0aW9uYWwgaGVyZS5cbiIgKyBjb29rCiAKLSAgICAgICAgICAgICAg
ICAgICAgYW5ub3RhdGVkX3R5cGUgPSBnZXRfYW5ub3RhdGVkX3R5cGVfdGV4dChyYXdfdHlwZS5n
ZXRfcmF3X3R5cGVfbW9kZWwoKS5nZXRfY29tbWFuZF9yZXR1cm5fcGFzc19tb2RlbCgpLmdldF9y
ZXR1cm5fdmFyX3R5cGUoKSArIHJhd190eXBlLmdldF9vdXRwdXRfcGFzc19tb2RlbCgpLmdldF9w
YXJhbWV0ZXJfdHlwZV9zdWZmaXgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX21vZGVsLmdldF9jb21tYW5kX3JldHVy
bl9wYXNzX21vZGVsKCkuZ2V0X291dHB1dF9wYXJhbWV0ZXJfdHlwZSgpKQorICAgICAgICAgICAg
ICAgIGFubm90YXRlZF90eXBlID0gZ2V0X2Fubm90YXRlZF90eXBlX3RleHQocmF3X3R5cGUuZ2V0
X3Jhd190eXBlX21vZGVsKCkuZ2V0X2NvbW1hbmRfcmV0dXJuX3Bhc3NfbW9kZWwoKS5nZXRfcmV0
dXJuX3Zhcl90eXBlKCkgKyByYXdfdHlwZS5nZXRfb3V0cHV0X3Bhc3NfbW9kZWwoKS5nZXRfcGFy
YW1ldGVyX3R5cGVfc3VmZml4KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlX21vZGVsLmdldF9jb21tYW5kX3JldHVybl9wYXNz
X21vZGVsKCkuZ2V0X291dHB1dF9wYXJhbWV0ZXJfdHlwZSgpKQogCiAgICAgICAgICAgICAgICAg
cGFyYW1fbmFtZSA9ICJvdXRfJXMiICUganNvbl9yZXR1cm5fbmFtZQogICAgICAgICAgICAgICAg
IGlmIG9wdGlvbmFsOgpAQCAtMjc2OSw3ICsyNjg1LDcgQEAgY2xhc3MgR2VuZXJhdG9yOgogCiAg
ICAgICAgICAgICBqc19yZXBseV9saXN0ID0gIlslc10iICUgam9pbihiYWNrZW5kX2pzX3JlcGx5
X3BhcmFtX2xpc3QsICIsICIpCiAKLSAgICAgICAgICAgIHJlc3BvbnNlX2Nvb2tfdGV4dCA9IGpv
aW4ocmVzcG9uc2VfY29va19saXN0LCAiIikKKyAgICAgICAgICAgIHJlc3BvbnNlX2Nvb2tfdGV4
dCA9ICIgICAgaWYgKCFwcm90b2NvbEVycm9ycy0+bGVuZ3RoKCkgJiYgIWVycm9yLmxlbmd0aCgp
KSB7XG4lcyAgICB9XG4iICUgam9pbihyZXNwb25zZV9jb29rX2xpc3QsICIiKQogCiAgICAgICAg
IEdlbmVyYXRvci5iYWNrZW5kX21ldGhvZF9pbXBsZW1lbnRhdGlvbl9saXN0LmFwcGVuZChUZW1w
bGF0ZXMuYmFja2VuZF9tZXRob2Quc3Vic3RpdHV0ZShOb25lLAogICAgICAgICAgICAgZG9tYWlu
TmFtZT1kb21haW5fbmFtZSwgbWV0aG9kTmFtZT1qc29uX2NvbW1hbmRfbmFtZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5jcHAKaW5kZXggOTI4MTgx
MzdhZGZkZjEyNjEzYzI4YjBlMTYxN2JiZDQ0MDcyNzRlOS4uZDBlMTI4YjIzODM4ZWYwOTQyY2I3
Njg0ODg0YWU5YzllY2EyMzE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbnRlbnRTZWFyY2hVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
bnRlbnRTZWFyY2hVdGlscy5jcHAKQEAgLTkzLDExICs5MywxMyBAQCBzdGF0aWMgVmVjdG9yPHBh
aXI8aW50LCBTdHJpbmc+ID4gZ2V0UmVndWxhckV4cHJlc3Npb25NYXRjaGVzQnlMaW5lcyhjb25z
dCBSZWd1bAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFR5cGVC
dWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gYnVpbGRPYmplY3RGb3JTZWFyY2hNYXRjaChpbnQg
bGluZU51bWJlciwgU3RyaW5nIGxpbmVDb250ZW50KQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclNlYXJjaE1hdGNoKGludCBsaW5lTnVtYmVyLCBTdHJp
bmcgbGluZUNvbnRlbnQpCiB7Ci0gICAgcmV0dXJuIFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hN
YXRjaDo6Y3JlYXRlKCkKLSAgICAgICAgLnNldExpbmVOdW1iZXIobGluZU51bWJlcikKLSAgICAg
ICAgLnNldExpbmVDb250ZW50KGxpbmVDb250ZW50KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiByZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHJlc3VsdC0+c2V0
TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGluZU51bWJlcik7CisgICAgcmVzdWx0LT5zZXRTdHJpbmco
ImxpbmVDb250ZW50IiwgbGluZUNvbnRlbnQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAog
UmVndWxhckV4cHJlc3Npb24gY3JlYXRlU2VhcmNoUmVnZXgoY29uc3QgU3RyaW5nJiBxdWVyeSwg
Ym9vbCBjYXNlU2Vuc2l0aXZlLCBib29sIGlzUmVnZXgpCkBAIC0xMjUsMTUgKzEyNywxNSBAQCBp
bnQgY291bnRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXMoY29uc3QgUmVndWxhckV4cHJlc3Npb24m
IHJlZ2V4LCBjb25zdCBTdHJpbmcmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUGFzc1JlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPiA+IHNl
YXJjaEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHF1ZXJ5
LCBjb25zdCBib29sIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wgaXNSZWdleCkKK1Bhc3NSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IHNlYXJjaEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJv
b2wgaXNSZWdleCkKIHsKLSAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVy
OjpQYWdlOjpTZWFyY2hNYXRjaD4gPiByZXN1bHQgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPjo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiByZXN1bHQgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAKICAgICBSZWd1bGFy
RXhwcmVzc2lvbiByZWdleCA9IENvbnRlbnRTZWFyY2hVdGlsczo6Y3JlYXRlU2VhcmNoUmVnZXgo
cXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgpOwogICAgIFZlY3RvcjxwYWlyPGludCwgU3Ry
aW5nPiA+IG1hdGNoZXMgPSBnZXRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXNCeUxpbmVzKHJlZ2V4
LCB0ZXh0KTsKIAogICAgIGZvciAoVmVjdG9yPHBhaXI8aW50LCBTdHJpbmc+ID46OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbWF0Y2hlcy5iZWdpbigpOyBpdCAhPSBtYXRjaGVzLmVuZCgpOyArK2l0KQot
ICAgICAgICByZXN1bHQtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JTZWFyY2hNYXRjaChpdC0+Zmly
c3QsIGl0LT5zZWNvbmQpKTsKKyAgICAgICAgcmVzdWx0LT5wdXNoVmFsdWUoYnVpbGRPYmplY3RG
b3JTZWFyY2hNYXRjaChpdC0+Zmlyc3QsIGl0LT5zZWNvbmQpKTsKIAogICAgIHJldHVybiByZXN1
bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJj
aFV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxzLmgK
aW5kZXggZDJjMjcyNTM2NDBhYzdkMmY3YWY0N2I2YzVkZjA2M2IwMDlkYmZlYS4uZjRiMWVkYTJk
MzVkYWU4ZGIxOTE5ZWQyZjNjZTA0OTJiN2E2YzBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbHMuaApAQCAtMjksNyArMjksNiBAQAogI2lmbmRlZiBD
b250ZW50U2VhcmNoVXRpbHNfaAogI2RlZmluZSBDb250ZW50U2VhcmNoVXRpbHNfaAogCi0jaW5j
bHVkZSAiSW5zcGVjdG9yVHlwZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDMsNyArNDIsNyBAQCBuYW1lc3BhY2Ug
Q29udGVudFNlYXJjaFV0aWxzIHsKIAogUmVndWxhckV4cHJlc3Npb24gY3JlYXRlU2VhcmNoUmVn
ZXgoY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29sIGlzUmVnZXgp
OwogaW50IGNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKGNvbnN0IFJlZ3VsYXJFeHByZXNz
aW9uJiwgY29uc3QgU3RyaW5nJik7Ci1QYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g+ID4gc2VhcmNoSW5UZXh0QnlMaW5lcyhjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJvb2wgY2FzZVNlbnNpdGl2
ZSwgY29uc3QgYm9vbCBpc1JlZ2V4KTsKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHNlYXJj
aEluVGV4dEJ5TGluZXMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBj
b25zdCBib29sIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wgaXNSZWdleCk7CiAKIFN0cmluZyBm
aW5kU291cmNlVVJMKGNvbnN0IFN0cmluZyYgY29udGVudCk7CiBTdHJpbmcgZmluZFNvdXJjZU1h
cFVSTChjb25zdCBTdHJpbmcmIGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAKaW5kZXggM2Y1MDBkNjhmNWZhYjI4ZjIxNGI5NmZlMzNmNmVmZGZl
ZjBmYTBmOC4uMTczMmE3ZWYzZDFjYzI3ZTg4MjZhYjgxNGRiMmYyNGMyOTQ3NzYwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIEluamVjdGVkU2NyaXB0OjpJbmplY3RlZFNjcmlwdChTY3JpcHRPYmplY3QgaW5qZWN0ZWRT
Y3JpcHRPYmplY3QsIEluc3BlY3RlZFN0YXRlCiB7CiB9CiAKLXZvaWQgSW5qZWN0ZWRTY3JpcHQ6
OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQ
SSwgYm9vbCByZXR1cm5CeVZhbHVlLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBU
eXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2Ny
aXB0OjpldmFsdWF0ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhw
cmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExp
bmVBUEksIGJvb2wgcmV0dXJuQnlWYWx1ZSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3Vs
dCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbiht
X2luamVjdGVkU2NyaXB0T2JqZWN0LCAiZXZhbHVhdGUiKTsKICAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudChleHByZXNzaW9uKTsKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBJbmplY3RlZFNjcmlw
dDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24KICAgICBtYWtlRXZhbENhbGwoZXJyb3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1bHQsIHdh
c1Rocm93bik7CiB9CiAKLXZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmNhbGxGdW5jdGlvbk9uKEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50cywgYm9vbCByZXR1cm5CeVZhbHVl
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0
PGJvb2w+KiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjpjYWxsRnVuY3Rpb25PbihF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0
cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBhcmd1bWVudHMsIGJvb2wgcmV0dXJuQnlW
YWx1ZSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQog
ewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2JqZWN0
LCAiY2FsbEZ1bmN0aW9uT24iKTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChvYmplY3RJ
ZCk7CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmNhbGxGdW5jdGlvbk9u
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplCiAgICAgbWFrZUV2
YWxDYWxsKGVycm9yU3RyaW5nLCBmdW5jdGlvbiwgcmVzdWx0LCB3YXNUaHJvd24pOwogfQogCi12
b2lkIEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgU2NyaXB0VmFsdWUmIGNhbGxGcmFtZXMsIGNvbnN0IFN0cmluZyYgY2Fs
bEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RH
cm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGJvb2wgcmV0dXJuQnlWYWx1ZSwgUmVm
UHRyPFJlbW90ZU9iamVjdD4qIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiog
d2FzVGhyb3duKQordm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25z
dCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0
cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBib29sIHJldHVy
bkJ5VmFsdWUsIFJlZlB0cjxSZW1vdGVPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikK
IHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVj
dCwgImV2YWx1YXRlT25DYWxsRnJhbWUiKTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChj
YWxsRnJhbWVzKTsKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIEluamVjdGVkU2NyaXB0OjptYWtl
Q2FsbChTY3JpcHRGdW5jdGlvbkNhbGwmIGZ1bmN0aW9uLCBSZWZQdHI8SW5zcGVjdG9yVmFsdQog
ICAgICAgICAqcmVzdWx0ID0gSW5zcGVjdG9yU3RyaW5nOjpjcmVhdGUoIkV4Y2VwdGlvbiB3aGls
ZSBtYWtpbmcgYSBjYWxsLiIpOwogfQogCi12b2lkIEluamVjdGVkU2NyaXB0OjptYWtlRXZhbENh
bGwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBTY3JpcHRGdW5jdGlvbkNhbGwmIGZ1bmN0aW9u
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb2JqZWN0UmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0
T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCit2b2lkIEluamVjdGVkU2NyaXB0OjptYWtlRXZhbENh
bGwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBTY3JpcHRGdW5jdGlvbkNhbGwmIGZ1bmN0aW9u
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb2JqZWN0UmVzdWx0LCBib29sKiB3YXNUaHJvd24p
CiB7CiAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7CiAgICAgbWFrZUNhbGwoZnVu
Y3Rpb24sICZyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
aAppbmRleCBmYWQxNjQ1NjU5M2VhZjFmZjNlYWNmMDQ3NTAxMTJlYjI5MmE4NTVjLi44NGQ5YTc4
ZWQzNmYwYzhhNTg1NmFjODA1MjVjODUxMmRjNTc2YTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNjQsMTQgKzY0LDE0IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICAgIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLAogICAgICAgICAgICAgICAg
ICAgYm9vbCByZXR1cm5CeVZhbHVlLAogICAgICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4qIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgIFR5cGVCdWlsZGVyOjpPcHRPdXRw
dXQ8Ym9vbD4qIHdhc1Rocm93bik7CisgICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24p
OwogICAgIHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqLAogICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgYXJndW1lbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXR1cm5C
eVZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8
Ym9vbD4qIHdhc1Rocm93bik7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJv
d24pOwogICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyosCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLApAQCAt
ODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IHJldHVybkJ5VmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxUeXBl
QnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiogcmVzdWx0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQg
Z2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbklk
LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRldGFpbHM+KiByZXN1bHQp
OwogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0SWQsIGJvb2wgb3duUHJvcGVydGllcywgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0
KTsKICAgICBOb2RlKiBub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CkBA
IC0xMDUsNyArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhbkFjY2Vzc0luc3BlY3RlZFdp
bmRvdygpIGNvbnN0OwogICAgIFNjcmlwdFZhbHVlIGNhbGxGdW5jdGlvbldpdGhFdmFsRW5hYmxl
ZChTY3JpcHRGdW5jdGlvbkNhbGwmLCBib29sJiBoYWRFeGNlcHRpb24pIGNvbnN0OwogICAgIHZv
aWQgbWFrZUNhbGwoU2NyaXB0RnVuY3Rpb25DYWxsJiwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
cmVzdWx0KTsKLSAgICB2b2lkIG1ha2VFdmFsQ2FsbChFcnJvclN0cmluZyosIFNjcmlwdEZ1bmN0
aW9uQ2FsbCYsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIFR5cGVCdWlsZGVyOjpP
cHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93bik7CisgICAgdm9pZCBtYWtlRXZhbENhbGwoRXJyb3JT
dHJpbmcqLCBTY3JpcHRGdW5jdGlvbkNhbGwmLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVz
dWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIFNjcmlwdFZhbHVlIG5vZGVBc1NjcmlwdFZhbHVl
KE5vZGUqKTsKIAogICAgIFNjcmlwdE9iamVjdCBtX2luamVjdGVkU2NyaXB0T2JqZWN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwCmluZGV4IGNkOGM3M2E0MDc1ZjE2NTljMGIzY2JlYzM0NzI1NzNmYTBhM2E1MTguLjli
YTZiYzkzODkxMTNmYmYwYWQ1OTEwYjZhMzNhMzA3MTFjZDAwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIgot
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKQEAgLTU3LDYgKzU2LDEwIEBAIGVudW0gRE9NQnJlYWtwb2ludFR5cGUg
ewogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGxpc3RlbmVyRXZlbnRDYXRlZ29yeVR5cGUgPSAi
bGlzdGVuZXI6IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBpbnN0cnVtZW50YXRpb25FdmVu
dENhdGVnb3J5VHlwZSA9ICJpbnN0cnVtZW50YXRpb246IjsKIAorc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IGRvbU5hdGl2ZUJyZWFrcG9pbnRUeXBlID0gIkRPTSI7CitzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgZXZlbnRMaXN0ZW5lck5hdGl2ZUJyZWFrcG9pbnRUeXBlID0gIkV2ZW50TGlzdGVu
ZXIiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHhock5hdGl2ZUJyZWFrcG9pbnRUeXBlID0g
IlhIUiI7CisKIGNvbnN0IHVpbnQzMl90IGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFz
ayA9ICgxIDw8IFN1YnRyZWVNb2RpZmllZCk7CiBjb25zdCBpbnQgZG9tQnJlYWtwb2ludERlcml2
ZWRUeXBlU2hpZnQgPSAxNjsKIApAQCAtMTcyLDcgKzE3NSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudDo6ZGlkSW52YWxpZGF0ZVN0eWxlQXR0cihOb2RlKiBub2RlKQogICAgIGlm
IChoYXNCcmVha3BvaW50KG5vZGUsIEF0dHJpYnV0ZU1vZGlmaWVkKSkgewogICAgICAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudERhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OwogICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2ZW50KG5vZGUsIEF0dHJpYnV0ZU1vZGlmaWVk
LCBmYWxzZSwgZXZlbnREYXRhLmdldCgpKTsKLSAgICAgICAgbV9kZWJ1Z2dlckFnZW50LT5icmVh
a1Byb2dyYW0oSW5zcGVjdG9yRnJvbnRlbmQ6OkRlYnVnZ2VyOjpSZWFzb246OkRPTSwgZXZlbnRE
YXRhLnJlbGVhc2UoKSk7CisgICAgICAgIG1fZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFtKGRv
bU5hdGl2ZUJyZWFrcG9pbnRUeXBlLCBldmVudERhdGEucmVsZWFzZSgpKTsKICAgICB9CiB9CiAK
QEAgLTI3Miw3ICsyNzUsNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxJ
bnNlcnRET01Ob2RlKE5vZGUqLCBOb2RlKiBwYXJlbnQpCiAgICAgaWYgKGhhc0JyZWFrcG9pbnQo
cGFyZW50LCBTdWJ0cmVlTW9kaWZpZWQpKSB7CiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGV2ZW50RGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgIGRlc2Ny
aXB0aW9uRm9yRE9NRXZlbnQocGFyZW50LCBTdWJ0cmVlTW9kaWZpZWQsIHRydWUsIGV2ZW50RGF0
YS5nZXQoKSk7Ci0gICAgICAgIG1fZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFtKEluc3BlY3Rv
ckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpET00sIGV2ZW50RGF0YS5yZWxlYXNlKCkpOwor
ICAgICAgICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShkb21OYXRpdmVCcmVha3BvaW50
VHlwZSwgZXZlbnREYXRhLnJlbGVhc2UoKSk7CiAgICAgfQogfQogCkBAIC0yODIsMTEgKzI4NSwx
MSBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxSZW1vdmVET01Ob2RlKE5v
ZGUqIG5vZGUpCiAgICAgaWYgKGhhc0JyZWFrcG9pbnQobm9kZSwgTm9kZVJlbW92ZWQpKSB7CiAg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGV2ZW50RGF0YSA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CiAgICAgICAgIGRlc2NyaXB0aW9uRm9yRE9NRXZlbnQobm9kZSwgTm9kZVJl
bW92ZWQsIGZhbHNlLCBldmVudERhdGEuZ2V0KCkpOwotICAgICAgICBtX2RlYnVnZ2VyQWdlbnQt
PmJyZWFrUHJvZ3JhbShJbnNwZWN0b3JGcm9udGVuZDo6RGVidWdnZXI6OlJlYXNvbjo6RE9NLCBl
dmVudERhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1Byb2dy
YW0oZG9tTmF0aXZlQnJlYWtwb2ludFR5cGUsIGV2ZW50RGF0YS5yZWxlYXNlKCkpOwogICAgIH0g
ZWxzZSBpZiAocGFyZW50Tm9kZSAmJiBoYXNCcmVha3BvaW50KHBhcmVudE5vZGUsIFN1YnRyZWVN
b2RpZmllZCkpIHsKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZXZlbnREYXRhID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgZGVzY3JpcHRpb25Gb3JET01FdmVu
dChub2RlLCBTdWJ0cmVlTW9kaWZpZWQsIGZhbHNlLCBldmVudERhdGEuZ2V0KCkpOwotICAgICAg
ICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShJbnNwZWN0b3JGcm9udGVuZDo6RGVidWdn
ZXI6OlJlYXNvbjo6RE9NLCBldmVudERhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgbV9kZWJ1Z2dl
ckFnZW50LT5icmVha1Byb2dyYW0oZG9tTmF0aXZlQnJlYWtwb2ludFR5cGUsIGV2ZW50RGF0YS5y
ZWxlYXNlKCkpOwogICAgIH0KIH0KIApAQCAtMjk1LDcgKzI5OCw3IEBAIHZvaWQgSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudDo6d2lsbE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVudCkKICAg
ICBpZiAoaGFzQnJlYWtwb2ludChlbGVtZW50LCBBdHRyaWJ1dGVNb2RpZmllZCkpIHsKICAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZXZlbnREYXRhID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKICAgICAgICAgZGVzY3JpcHRpb25Gb3JET01FdmVudChlbGVtZW50LCBBdHRyaWJ1
dGVNb2RpZmllZCwgZmFsc2UsIGV2ZW50RGF0YS5nZXQoKSk7Ci0gICAgICAgIG1fZGVidWdnZXJB
Z2VudC0+YnJlYWtQcm9ncmFtKEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpE
T00sIGV2ZW50RGF0YS5yZWxlYXNlKCkpOworICAgICAgICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFr
UHJvZ3JhbShkb21OYXRpdmVCcmVha3BvaW50VHlwZSwgZXZlbnREYXRhLnJlbGVhc2UoKSk7CiAg
ICAgfQogfQogCkBAIC0zNjQsOSArMzY3LDkgQEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50OjpwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChib29sIGlzRE9NRXZlbnQsIGNvbnMKICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudERhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOwogICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJldmVudE5hbWUiLCBmdWxsRXZlbnRO
YW1lKTsKICAgICBpZiAoc3luY2hyb25vdXMpCi0gICAgICAgIG1fZGVidWdnZXJBZ2VudC0+YnJl
YWtQcm9ncmFtKEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpFdmVudExpc3Rl
bmVyLCBldmVudERhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgbV9kZWJ1Z2dlckFnZW50LT5icmVh
a1Byb2dyYW0oZXZlbnRMaXN0ZW5lck5hdGl2ZUJyZWFrcG9pbnRUeXBlLCBldmVudERhdGEucmVs
ZWFzZSgpKTsKICAgICBlbHNlCi0gICAgICAgIG1fZGVidWdnZXJBZ2VudC0+c2NoZWR1bGVQYXVz
ZU9uTmV4dFN0YXRlbWVudChJbnNwZWN0b3JGcm9udGVuZDo6RGVidWdnZXI6OlJlYXNvbjo6RXZl
bnRMaXN0ZW5lciwgZXZlbnREYXRhLnJlbGVhc2UoKSk7CisgICAgICAgIG1fZGVidWdnZXJBZ2Vu
dC0+c2NoZWR1bGVQYXVzZU9uTmV4dFN0YXRlbWVudChldmVudExpc3RlbmVyTmF0aXZlQnJlYWtw
b2ludFR5cGUsIGV2ZW50RGF0YS5yZWxlYXNlKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ6OnNldFhIUkJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHVybCkKQEAgLTQxNCw3ICs0MTcsNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6
OndpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZXZlbnREYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAg
ICBldmVudERhdGEtPnNldFN0cmluZygiYnJlYWtwb2ludFVSTCIsIGJyZWFrcG9pbnRVUkwpOwog
ICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOwotICAgIG1fZGVidWdnZXJBZ2Vu
dC0+YnJlYWtQcm9ncmFtKEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpYSFIs
IGV2ZW50RGF0YS5yZWxlYXNlKCkpOworICAgIG1fZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFt
KHhock5hdGl2ZUJyZWFrcG9pbnRUeXBlLCBldmVudERhdGEucmVsZWFzZSgpKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjbGVhcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTMzZGE4MmEz
NGQ2ZWFmNTZjNGU0Y2ZhYzRmMTQzMTgyZmJjZWMyYS4uNjYwOWU2NGVkNmQxNTFkMDgzMTRmOTBh
ZWViMmI0MTUwOGFjMjg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtMjE0LDkgKzIxNCwxMCBAQCBzdGF0aWMgYm9v
bCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wg
aXNSZWdleCkKICAgICByZXR1cm4gdXJsID09IHBhdHRlcm47CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludEJ5VXJsKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxVUkwsIGNvbnN0
IFN0cmluZyogY29uc3Qgb3B0aW9uYWxVUkxSZWdleCwgY29uc3QgaW50KiBjb25zdCBvcHRpb25h
bENvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRpdGlvbiwgVHlw
ZUJ1aWxkZXI6OkRlYnVnZ2VyOjpCcmVha3BvaW50SWQqIG91dEJyZWFrcG9pbnRJZCwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkxvY2F0aW9uPiA+JiBs
b2NhdGlvbnMpCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRCeVVy
bChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcq
IGNvbnN0IG9wdGlvbmFsVVJMLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsVVJMUmVnZXgs
IGNvbnN0IGludCogY29uc3Qgb3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogY29u
c3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+JiBsb2NhdGlvbnNSYXcpCiB7Ci0gICAgbG9jYXRpb25zID0gQXJyYXk8VHlw
ZUJ1aWxkZXI6OkRlYnVnZ2VyOjpMb2NhdGlvbj46OmNyZWF0ZSgpOworICAgIFJlZlB0cjxBcnJh
eTxUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkxvY2F0aW9uPiA+IGxvY2F0aW9ucyA9IEFycmF5PFR5
cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6TG9jYXRpb24+OjpjcmVhdGUoKTsKKyAgICBsb2NhdGlvbnNS
YXcgPSBsb2NhdGlvbnM7CiAgICAgaWYgKCFvcHRpb25hbFVSTCA9PSAhb3B0aW9uYWxVUkxSZWdl
eCkgewogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRWl0aGVyIHVybCBvciB1cmxSZWdleCBtdXN0
IGJlIHNwZWNpZmllZC4iOwogICAgICAgICByZXR1cm47CkBAIC0yNjAsNyArMjYxLDcgQEAgc3Rh
dGljIGJvb2wgcGFyc2VMb2NhdGlvbihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGxvY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Y29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGxvY2F0aW9uLCBjb25zdCBTdHJpbmcqIGNv
bnN0IG9wdGlvbmFsQ29uZGl0aW9uLCBUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkJyZWFrcG9pbnRJ
ZCogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpMb2NhdGlv
bj4mIGFjdHVhbExvY2F0aW9uKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVh
a3BvaW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIGxvY2F0aW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsQ29uZGl0aW9uLCBT
dHJpbmcqIG91dEJyZWFrcG9pbnRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGFjdHVhbExv
Y2F0aW9uKQogewogICAgIFN0cmluZyBzY3JpcHRJZDsKICAgICBpbnQgbGluZU51bWJlcjsKQEAg
LTM1Miw3ICszNTMsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlw
dFRvSW5zcGVjdG9yT2JqZWN0KFNjcmlwdE9iamVjdCBzY3JpcHRPYgogICAgIHJldHVybiB2YWx1
ZS0+YXNPYmplY3QoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZWFyY2hJ
bkNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25z
dCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbENhc2VTZW5zaXRpdmUs
IGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsSXNSZWdleCwgUmVmUHRyPEFycmF5PFdlYkNvcmU6
OlR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gPiYgcmVzdWx0cykKK3ZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6c2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiBlcnJvciwgY29u
c3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogY29u
c3Qgb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElzUmVn
ZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIHJlc3VsdHMpCiB7CiAgICAgYm9vbCBpc1JlZ2V4
ID0gb3B0aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFsSXNSZWdleCA6IGZhbHNlOwogICAgIGJvb2wg
Y2FzZVNlbnNpdGl2ZSA9IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSA/ICpvcHRpb25hbENhc2VTZW5z
aXRpdmUgOiBmYWxzZTsKQEAgLTM2NCw3ICszNjUsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OnNlYXJjaEluQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYg
cwogICAgICAgICAqZXJyb3IgPSAiTm8gc2NyaXB0IGZvciBpZDogIiArIHNjcmlwdElkOwogfQog
Ci12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNvdXJjZShFcnJvclN0cmlu
ZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVu
dCwgY29uc3QgYm9vbCogY29uc3QgcHJldmlldywgUmVmUHRyPEFycmF5PFR5cGVCdWlsZGVyOjpE
ZWJ1Z2dlcjo6Q2FsbEZyYW1lPiA+JiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgcmVzdWx0KQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTb3Vy
Y2UoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJp
bmcmIG5ld0NvbnRlbnQsIGNvbnN0IGJvb2wqIGNvbnN0IHByZXZpZXcsIFJlZlB0cjxJbnNwZWN0
b3JBcnJheT4mIG5ld0NhbGxGcmFtZXMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZXN1bHQp
CiB7CiAgICAgYm9vbCBwcmV2aWV3T25seSA9IHByZXZpZXcgJiYgKnByZXZpZXc7CiAgICAgU2Ny
aXB0T2JqZWN0IHJlc3VsdE9iamVjdDsKQEAgLTM4NSwxNyArMzg2LDE5IEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6Z2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiBlcnJvciwgY29u
c3QgU3RyaW5nJiBzCiAgICAgICAgICplcnJvciA9ICJObyBzY3JpcHQgZm9yIGlkOiAiICsgc2Ny
aXB0SWQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Z2V0RnVuY3Rpb25EZXRh
aWxzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmdW5jdGlvbklkLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRldGFpbHM+JiBkZXRhaWxzKQor
dm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpnZXRGdW5jdGlvbkRldGFpbHMoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uSWQsIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiBkZXRhaWxzUmF3KQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQo
ZnVuY3Rpb25JZCk7CiAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewogICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVjdGVkIGZyYW1lIGhhcyBnb25lIjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyAgICBSZWZQdHI8RnVuY3Rpb25EZXRhaWxzPiBkZXRhaWxzOwogICAg
IGluamVjdGVkU2NyaXB0LmdldEZ1bmN0aW9uRGV0YWlscyhlcnJvclN0cmluZywgZnVuY3Rpb25J
ZCwgJmRldGFpbHMpOworICAgIGRldGFpbHNSYXcgPSBkZXRhaWxzOwogfQogCi12b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OnNjaGVkdWxlUGF1c2VPbk5leHRTdGF0ZW1lbnQoSW5zcGVjdG9y
RnJvbnRlbmQ6OkRlYnVnZ2VyOjpSZWFzb246OkVudW0gYnJlYWtSZWFzb24sIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzY2hl
ZHVsZVBhdXNlT25OZXh0U3RhdGVtZW50KGNvbnN0IFN0cmluZyYgYnJlYWtSZWFzb24sIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhKQogewogICAgIGlmIChtX2phdmFTY3JpcHRQYXVz
ZVNjaGVkdWxlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDc1LDE0ICs0NzgsMTYgQEAgdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRQYXVzZU9uRXhjZXB0aW9uc0ltcGwoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLAogICAgICAgICBtX3N0YXRlLT5zZXRMb25nKERlYnVnZ2VyQWdlbnRT
dGF0ZTo6cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSwgcGF1c2VTdGF0ZSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwgY29uc3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3Qg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1
aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIGNvbnN0IGJvb2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiByZXN1bHRSYXcsIGJvb2wqIHdhc1Rocm93bikKIHsKICAgICBJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNj
cmlwdEZvck9iamVjdElkKGNhbGxGcmFtZUlkKTsKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFz
Tm9WYWx1ZSgpKSB7CiAgICAgICAgICplcnJvclN0cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFz
IGdvbmUiOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIFJlZlB0cjxSZW1vdGVPYmplY3Q+
IHJlc3VsdDsKICAgICBpbmplY3RlZFNjcmlwdC5ldmFsdWF0ZU9uQ2FsbEZyYW1lKGVycm9yU3Ry
aW5nLCBtX2N1cnJlbnRDYWxsU3RhY2ssIGNhbGxGcmFtZUlkLCBleHByZXNzaW9uLCBvYmplY3RH
cm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPyAqaW5jbHVk
ZUNvbW1hbmRMaW5lQVBJIDogZmFsc2UsIHJldHVybkJ5VmFsdWUgPyAqcmV0dXJuQnlWYWx1ZSA6
IGZhbHNlLCAmcmVzdWx0LCB3YXNUaHJvd24pOworICAgIHJlc3VsdFJhdyA9IHJlc3VsdDsKIH0K
IAogUGFzc1JlZlB0cjxBcnJheTxUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkNhbGxGcmFtZT4gPiBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjdXJyZW50Q2FsbEZyYW1lcygpCkBAIC01NjYsNyArNTcx
LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXVzZShTY3JpcHRTdGF0ZSog
c2NyaXB0U3RhdGUsIGNvbnN0IFNjcmlwdFZhbHUKICAgICBpZiAoIWV4Y2VwdGlvbi5oYXNOb1Zh
bHVlKCkpIHsKICAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVj
dGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUpOwogICAgICAg
ICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewotICAgICAgICAgICAgbV9icmVh
a1JlYXNvbiA9IEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpFeGNlcHRpb247
CisgICAgICAgICAgICBtX2JyZWFrUmVhc29uID0gImV4Y2VwdGlvbiI7CiAgICAgICAgICAgICBt
X2JyZWFrQXV4RGF0YSA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoZXhjZXB0aW9uLCAiYmFj
a3RyYWNlIik7CiAgICAgICAgIH0KICAgICB9CkBAIC01ODgsNyArNTkzLDcgQEAgdm9pZCBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDb250aW51ZSgpCiAgICAgbV9mcm9udGVuZC0+cmVzdW1l
ZCgpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJyZWFrUHJvZ3JhbShJbnNw
ZWN0b3JGcm9udGVuZDo6RGVidWdnZXI6OlJlYXNvbjo6RW51bSBicmVha1JlYXNvbiwgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEpCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OmJyZWFrUHJvZ3JhbShjb25zdCBTdHJpbmcmIGJyZWFrUmVhc29uLCBQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSkKIHsKICAgICBtX2JyZWFrUmVhc29uID0gYnJlYWtSZWFzb247CiAg
ICAgbV9icmVha0F1eERhdGEgPSBkYXRhOwpAQCAtNjE3LDcgKzYyMiw3IEBAIGJvb2wgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6YXNzZXJ0UGF1c2VkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZykK
IAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjbGVhckJyZWFrRGV0YWlscygpCiB7Ci0g
ICAgbV9icmVha1JlYXNvbiA9IEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpP
dGhlcjsKKyAgICBtX2JyZWFrUmVhc29uID0gIm90aGVyIjsKICAgICBtX2JyZWFrQXV4RGF0YSA9
IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5oCmluZGV4IDQ2ZTNhMzMxNTEwYWRlNGRkODc5OWM1ZjA1ZTljYTY3OTk2NGVkOTMu
LmE2YWJmYTQzNTMwYTI5N2VlZmQ2Mzg2ZThhZGZlMGQ0NTNjM2I5ZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtODIsMTgg
KzgyLDE4IEBAIHB1YmxpYzoKICAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4KICAgICB2aXJ0
dWFsIHZvaWQgc2V0QnJlYWtwb2ludHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29sIGFjdGl2ZSk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtwb2ludEJ5VXJsKEVycm9yU3RyaW5nKiwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxVUkwsIGNvbnN0IFN0cmluZyogb3B0
aW9uYWxVUkxSZWdleCwgY29uc3QgaW50KiBvcHRpb25hbENvbHVtbk51bWJlciwgY29uc3QgU3Ry
aW5nKiBvcHRpb25hbENvbmRpdGlvbiwgVHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpCcmVha3BvaW50
SWQqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6TG9j
YXRpb24+ID4mIGxvY2F0aW9ucyk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEJyZWFrcG9pbnQoRXJy
b3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgbG9jYXRpb24sIGNvbnN0
IFN0cmluZyogb3B0aW9uYWxDb25kaXRpb24sIFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6QnJlYWtw
b2ludElkKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6TG9jYXRpb24+JiBhY3R1YWxM
b2NhdGlvbik7CisgICAgdmlydHVhbCB2b2lkIHNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmlu
ZyosIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsVVJMLCBjb25zdCBTdHJp
bmcqIG9wdGlvbmFsVVJMUmVnZXgsIGNvbnN0IGludCogb3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNv
bnN0IFN0cmluZyogb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogYnJlYWtwb2ludElkLCBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+JiBsb2NhdGlvbnMpOworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVh
a3BvaW50KEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGxvY2F0
aW9uLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsQ29uZGl0aW9uLCBTdHJpbmcqIGJyZWFrcG9pbnRJ
ZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGFjdHVhbExvY2F0aW9uKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgYnJlYWtw
b2ludElkKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVUb0xvY2F0aW9uKEVycm9yU3RyaW5n
KiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGxvY2F0aW9uKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBzZWFyY2hJbkNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNjcmlw
dElkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sKiBvcHRpb25hbENhc2VTZW5zaXRp
dmUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJh
eTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g+ID4mKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29u
c3QgU3RyaW5nJiBuZXdDb250ZW50LCBjb25zdCBib29sKiBwcmV2aWV3LCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPiA+JiBuZXdDYWxs
RnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwg
Y29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBj
b25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBuZXdDb250ZW50LCBjb25zdCBib29sKiBwcmV2aWV3
LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiYgcmVzdWx0KTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0U2NyaXB0U291cmNlKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgU3RyaW5nKiBzY3JpcHRTb3VyY2UpOwot
ICAgIHZpcnR1YWwgdm9pZCBnZXRGdW5jdGlvbkRldGFpbHMoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIGZ1bmN0aW9uSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkZ1bmN0aW9u
RGV0YWlscz4mKTsKLSAgICB2b2lkIHNjaGVkdWxlUGF1c2VPbk5leHRTdGF0ZW1lbnQoSW5zcGVj
dG9yRnJvbnRlbmQ6OkRlYnVnZ2VyOjpSZWFzb246OkVudW0gYnJlYWtSZWFzb24sIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnVuY3Rpb25E
ZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbklkLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYgZGV0YWlscyk7CisgICAgdm9pZCBzY2hlZHVsZVBhdXNlT25OZXh0U3Rh
dGVtZW50KGNvbnN0IFN0cmluZyYgYnJlYWtSZWFzb24sIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBkYXRhKTsKICAgICB2b2lkIGNhbmNlbFBhdXNlT25OZXh0U3RhdGVtZW50KCk7Ci0gICAg
dm9pZCBicmVha1Byb2dyYW0oSW5zcGVjdG9yRnJvbnRlbmQ6OkRlYnVnZ2VyOjpSZWFzb246OkVu
dW0gYnJlYWtSZWFzb24sIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhKTsKKyAgICB2
b2lkIGJyZWFrUHJvZ3JhbShjb25zdCBTdHJpbmcmIGJyZWFrUmVhc29uLCBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSk7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKEVycm9yU3RyaW5n
Kik7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZShFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwg
dm9pZCBzdGVwT3ZlcihFcnJvclN0cmluZyopOwpAQCAtMTA2LDggKzEwNiw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiByZXR1cm5C
eVZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlc3VsdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogd2FzVGhyb3duKTsKIAogICAgIGNsYXNz
IExpc3RlbmVyIHsKICAgICBwdWJsaWM6CkBAIC0xNTYsNyArMTU2LDcgQEAgcHJpdmF0ZToKICAg
ICBTY3JpcHRzTWFwIG1fc2NyaXB0czsKICAgICBCcmVha3BvaW50SWRUb0RlYnVnU2VydmVyQnJl
YWtwb2ludElkc01hcCBtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzOwog
ICAgIFN0cmluZyBtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJZDsKLSAgICBJbnNwZWN0
b3JGcm9udGVuZDo6RGVidWdnZXI6OlJlYXNvbjo6RW51bSBtX2JyZWFrUmVhc29uOworICAgIFN0
cmluZyBtX2JyZWFrUmVhc29uOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fYnJlYWtB
dXhEYXRhOwogICAgIGJvb2wgbV9qYXZhU2NyaXB0UGF1c2VTY2hlZHVsZWQ7CiAgICAgTGlzdGVu
ZXIqIG1fbGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwCmluZGV4IDZkZWY3ODhlZTA5MmYxNGYyMzhjMjEyYzRkYTRiMjU2YzUxMGVk
NmIuLjU1Mzg0ZjJhMjI1MjRjOGNkYTAyOTZiY2RiYWViYmQ0ODk2ODkzYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zOTUsMjgg
KzM5NSwyOSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIHVybCkKICAgICBmcmFtZS0+bG9hZGVyKCktPmNoYW5nZUxvY2F0aW9u
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwodXJsKSwgIiIsIGZhbHNlLCBmYWxzZSk7CiB9CiAKLXN0YXRpYyBQYXNzUmVm
UHRyPFR5cGVCdWlsZGVyOjpQYWdlOjpDb29raWU+IGJ1aWxkT2JqZWN0Rm9yQ29va2llKGNvbnN0
IENvb2tpZSYgY29va2llKQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWls
ZE9iamVjdEZvckNvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKIHsKLSAgICByZXR1cm4gVHlw
ZUJ1aWxkZXI6OlBhZ2U6OkNvb2tpZTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldE5hbWUoY29va2ll
Lm5hbWUpCi0gICAgICAgIC5zZXRWYWx1ZShjb29raWUudmFsdWUpCi0gICAgICAgIC5zZXREb21h
aW4oY29va2llLmRvbWFpbikKLSAgICAgICAgLnNldFBhdGgoY29va2llLnBhdGgpCi0gICAgICAg
IC5zZXRFeHBpcmVzKGNvb2tpZS5leHBpcmVzKQotICAgICAgICAuc2V0U2l6ZSgoY29va2llLm5h
bWUubGVuZ3RoKCkgKyBjb29raWUudmFsdWUubGVuZ3RoKCkpKQotICAgICAgICAuc2V0SHR0cE9u
bHkoY29va2llLmh0dHBPbmx5KQotICAgICAgICAuc2V0U2VjdXJlKGNvb2tpZS5zZWN1cmUpCi0g
ICAgICAgIC5zZXRTZXNzaW9uKGNvb2tpZS5zZXNzaW9uKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiB2YWx1ZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgdmFsdWUtPnNl
dFN0cmluZygibmFtZSIsIGNvb2tpZS5uYW1lKTsKKyAgICB2YWx1ZS0+c2V0U3RyaW5nKCJ2YWx1
ZSIsIGNvb2tpZS52YWx1ZSk7CisgICAgdmFsdWUtPnNldFN0cmluZygiZG9tYWluIiwgY29va2ll
LmRvbWFpbik7CisgICAgdmFsdWUtPnNldFN0cmluZygicGF0aCIsIGNvb2tpZS5wYXRoKTsKKyAg
ICB2YWx1ZS0+c2V0TnVtYmVyKCJleHBpcmVzIiwgY29va2llLmV4cGlyZXMpOworICAgIHZhbHVl
LT5zZXROdW1iZXIoInNpemUiLCAoY29va2llLm5hbWUubGVuZ3RoKCkgKyBjb29raWUudmFsdWUu
bGVuZ3RoKCkpKTsKKyAgICB2YWx1ZS0+c2V0Qm9vbGVhbigiaHR0cE9ubHkiLCBjb29raWUuaHR0
cE9ubHkpOworICAgIHZhbHVlLT5zZXRCb29sZWFuKCJzZWN1cmUiLCBjb29raWUuc2VjdXJlKTsK
KyAgICB2YWx1ZS0+c2V0Qm9vbGVhbigic2Vzc2lvbiIsIGNvb2tpZS5zZXNzaW9uKTsKKyAgICBy
ZXR1cm4gdmFsdWU7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6UGFnZTo6Q29va2llPiA+IGJ1aWxkQXJyYXlGb3JDb29raWVzKExpc3RIYXNo
U2V0PENvb2tpZT4mIGNvb2tpZXNMaXN0KQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IGJ1aWxkQXJyYXlGb3JDb29raWVzKExpc3RIYXNoU2V0PENvb2tpZT4mIGNvb2tpZXNMaXN0
KQogewotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OkNv
b2tpZT4gPiBjb29raWVzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpQYWdlOjpD
b29raWU+OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNvb2tpZXMgPSBJ
bnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAKICAgICBMaXN0SGFzaFNldDxDb29raWU+OjppdGVy
YXRvciBlbmQgPSBjb29raWVzTGlzdC5lbmQoKTsKICAgICBMaXN0SGFzaFNldDxDb29raWU+Ojpp
dGVyYXRvciBpdCA9IGNvb2tpZXNMaXN0LmJlZ2luKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGl0
ICE9IGVuZDsgKytpdCwgaSsrKQotICAgICAgICBjb29raWVzLT5hZGRJdGVtKGJ1aWxkT2JqZWN0
Rm9yQ29va2llKCppdCkpOworICAgICAgICBjb29raWVzLT5wdXNoT2JqZWN0KGJ1aWxkT2JqZWN0
Rm9yQ29va2llKCppdCkpOwogCiAgICAgcmV0dXJuIGNvb2tpZXM7CiB9CkBAIC00NjUsNyArNDY2
LDcgQEAgc3RhdGljIFZlY3RvcjxLVVJMPiBhbGxSZXNvdXJjZXNVUkxzRm9yRnJhbWUoRnJhbWUq
IGZyYW1lKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpnZXRDb29raWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6UGFnZTo6Q29va2llPiA+JiBjb29raWVzLCBXVEY6OlN0cmluZyogY29va2llc1N0
cmluZykKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb29raWVzKEVycm9yU3RyaW5nKiwg
UmVmUHRyPEluc3BlY3RvckFycmF5PiYgY29va2llcywgV1RGOjpTdHJpbmcqIGNvb2tpZXNTdHJp
bmcpCiB7CiAgICAgLy8gSWYgd2UgY2FuIGdldCByYXcgY29va2llcy4KICAgICBMaXN0SGFzaFNl
dDxDb29raWU+IHJhd0Nvb2tpZXNMaXN0OwpAQCAtNTAxLDE0ICs1MDIsMTAgQEAgdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmdldENvb2tpZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OkFycmF5PFR5cGUKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEZJWE1FOiBEbyBub3Qg
cmV0dXJuIGVtcHR5IHN0cmluZy9lbXB0eSBhcnJheS4gTWFrZSByZXR1cm5zIG9wdGlvbmFsIGlu
c3RlYWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg1NQotICAg
IGlmIChyYXdDb29raWVzSW1wbGVtZW50ZWQpIHsKKyAgICBpZiAocmF3Q29va2llc0ltcGxlbWVu
dGVkKQogICAgICAgICBjb29raWVzID0gYnVpbGRBcnJheUZvckNvb2tpZXMocmF3Q29va2llc0xp
c3QpOwotICAgICAgICAqY29va2llc1N0cmluZyA9ICIiOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGNvb2tpZXMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OkNvb2tpZT46
OmNyZWF0ZSgpOworICAgIGVsc2UKICAgICAgICAgKmNvb2tpZXNTdHJpbmcgPSBzdHJpbmdDb29r
aWVzTGlzdDsKLSAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkZWxldGVDb29r
aWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZG9tYWluKQpAQCAtNTI0LDcgKzUyMSw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkZWxl
dGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvCiAgICAg
fQogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VUcmVlKEVycm9yU3Ry
aW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpQYWdlOjpGcmFtZVJlc291cmNlVHJlZT4mIG9iamVj
dCkKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcq
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb2JqZWN0KQogewogICAgIG9iamVjdCA9IGJ1aWxk
T2JqZWN0Rm9yRnJhbWVUcmVlKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwogfQpAQCAtNTUxLDkgKzU0
OCw5IEBAIHN0YXRpYyBib29sIHRleHRDb250ZW50Rm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlLCBTdHJpbmcqCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVl
cnksIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCog
Y29uc3Qgb3B0aW9uYWxJc1JlZ2V4LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWls
ZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4gPiYgcmVzdWx0cykKK3ZvaWQgSW5zcGVjdG9yUGFnZUFn
ZW50OjpzZWFyY2hJblJlc291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlk
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogY29u
c3Qgb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElzUmVn
ZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIHJlc3VsdHMpCiB7Ci0gICAgcmVzdWx0cyA9IFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g+OjpjcmVhdGUo
KTsKKyAgICByZXN1bHRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOwogCiAgICAgYm9vbCBp
c1JlZ2V4ID0gb3B0aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFsSXNSZWdleCA6IGZhbHNlOwogICAg
IGJvb2wgY2FzZVNlbnNpdGl2ZSA9IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSA/ICpvcHRpb25hbENh
c2VTZW5zaXRpdmUgOiBmYWxzZTsKQEAgLTU5Myw5ICs1OTAsOSBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU2VhcmNoUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgZnJhbQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgYm9vbCogY29uc3Qgb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBv
cHRpb25hbElzUmVnZXgsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBh
Z2U6OlNlYXJjaFJlc3VsdD4gPiYgcmVzdWx0cykKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpz
ZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
Ym9vbCogY29uc3Qgb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBvcHRp
b25hbElzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIHJlc3VsdHMpCiB7Ci0gICAgUmVm
UHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoUmVzdWx0PiA+
IHNlYXJjaFJlc3VsdHMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNl
YXJjaFJlc3VsdD46OmNyZWF0ZSgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gc2VhcmNo
UmVzdWx0cyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKIAogICAgIGJvb2wgaXNSZWdleCA9
IG9wdGlvbmFsSXNSZWdleCA/ICpvcHRpb25hbElzUmVnZXggOiBmYWxzZTsKICAgICBib29sIGNh
c2VTZW5zaXRpdmUgPSBvcHRpb25hbENhc2VTZW5zaXRpdmUgPyAqb3B0aW9uYWxDYXNlU2Vuc2l0
aXZlIDogZmFsc2U7CkBAIC04MjAsMzQgKzgxNywzNCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6ZGlkUGFpbnQoKQogICAgIG1fbGFzdFBhaW50Q29udGV4dCA9IDA7CiB9CiAKLVBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OlBhZ2U6OkZyYW1lPiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmJ1aWxkT2Jq
ZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQorUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IElu
c3BlY3RvclBhZ2VBZ2VudDo6YnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7Ci0g
ICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpQYWdlOjpGcmFtZT4gZnJhbWVPYmplY3QgPSBUeXBlQnVp
bGRlcjo6UGFnZTo6RnJhbWU6OmNyZWF0ZSgpCi0gICAgICAgICAuc2V0SWQoZnJhbWVJZChmcmFt
ZSkpCi0gICAgICAgICAuc2V0TG9hZGVySWQobG9hZGVySWQoZnJhbWUtPmxvYWRlcigpLT5kb2N1
bWVudExvYWRlcigpKSkKLSAgICAgICAgIC5zZXRVcmwoZnJhbWUtPmRvY3VtZW50KCktPnVybCgp
LnN0cmluZygpKQotICAgICAgICAgLnNldE1pbWVUeXBlKGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1l
bnRMb2FkZXIoKS0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBmcmFtZU9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZnJhbWVP
YmplY3QtPnNldFN0cmluZygiaWQiLCBmcmFtZUlkKGZyYW1lKSk7CiAgICAgaWYgKGZyYW1lLT50
cmVlKCktPnBhcmVudCgpKQotICAgICAgICBmcmFtZU9iamVjdC0+c2V0UGFyZW50SWQoZnJhbWVJ
ZChmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0U3Ry
aW5nKCJwYXJlbnRJZCIsIGZyYW1lSWQoZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpKTsKICAgICBp
ZiAoZnJhbWUtPm93bmVyRWxlbWVudCgpKSB7CiAgICAgICAgIFN0cmluZyBuYW1lID0gZnJhbWUt
Pm93bmVyRWxlbWVudCgpLT5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgICAgIGlmIChuYW1lLmlz
RW1wdHkoKSkKICAgICAgICAgICAgIG5hbWUgPSBmcmFtZS0+b3duZXJFbGVtZW50KCktPmdldEF0
dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0cik7Ci0gICAgICAgIGZyYW1lT2JqZWN0LT5zZXROYW1l
KG5hbWUpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJuYW1lIiwgbmFtZSk7CiAg
ICAgfQotICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZmllbGQgbm9uLW9wdGlvbmFsLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NTcKLSAgICBmcmFtZU9iamVjdC0+
c2V0U2VjdXJpdHlPcmlnaW4oZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRv
U3RyaW5nKCkpOworICAgIGZyYW1lT2JqZWN0LT5zZXRTdHJpbmcoInVybCIsIGZyYW1lLT5kb2N1
bWVudCgpLT51cmwoKS5zdHJpbmcoKSk7CisgICAgZnJhbWVPYmplY3QtPnNldFN0cmluZygibG9h
ZGVySWQiLCBsb2FkZXJJZChmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpKTsKKyAg
ICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJzZWN1cml0eU9yaWdpbiIsIGZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKTsKKyAgICBmcmFtZU9iamVjdC0+c2V0
U3RyaW5nKCJtaW1lVHlwZSIsIGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVz
cG9uc2VNSU1FVHlwZSgpKTsKIAogICAgIHJldHVybiBmcmFtZU9iamVjdDsKIH0KIAotUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6UGFnZTo6RnJhbWVSZXNvdXJjZVRyZWU+IEluc3BlY3RvclBhZ2VB
Z2VudDo6YnVpbGRPYmplY3RGb3JGcmFtZVRyZWUoRnJhbWUqIGZyYW1lKQorUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvclBhZ2VBZ2VudDo6YnVpbGRPYmplY3RGb3JGcmFtZVRy
ZWUoRnJhbWUqIGZyYW1lKQogeworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
ZnJhbWVPYmplY3QgPSBidWlsZE9iamVjdEZvckZyYW1lKGZyYW1lKTsKKyAgICByZXN1bHQtPnNl
dE9iamVjdCgiZnJhbWUiLCBmcmFtZU9iamVjdCk7CisKICAgICBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IHN1YnJlc291cmNlcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKLSAgICBSZWZQdHI8
VHlwZUJ1aWxkZXI6OlBhZ2U6OkZyYW1lUmVzb3VyY2VUcmVlPiByZXN1bHQgPSBUeXBlQnVpbGRl
cjo6UGFnZTo6RnJhbWVSZXNvdXJjZVRyZWU6OmNyZWF0ZSgpCi0gICAgICAgICAuc2V0RnJhbWUo
ZnJhbWVPYmplY3QpCi0gICAgICAgICAuc2V0UmVzb3VyY2VzKHN1YnJlc291cmNlcyk7CisgICAg
cmVzdWx0LT5zZXRBcnJheSgicmVzb3VyY2VzIiwgc3VicmVzb3VyY2VzKTsKIAogICAgIFZlY3Rv
cjxDYWNoZWRSZXNvdXJjZSo+IGFsbFJlc291cmNlcyA9IGNhY2hlZFJlc291cmNlc0ZvckZyYW1l
KGZyYW1lKTsKICAgICBmb3IgKFZlY3RvcjxDYWNoZWRSZXNvdXJjZSo+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IGFsbFJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBhbGxSZXNvdXJjZXMuZW5kKCk7ICsr
aXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApp
bmRleCAxZTNlMTJhOTZjN2ZhZTJmY2YzZmM5Yjg2YTNiOWViM2IwZTRmNGE0Li5kZjk1ZWUyMGY1
ODg1ZTBkOGM1NjFmMmY5MDFiNzI4OWM1MGNkZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC05NSwxMiArOTUsMTIgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsb2FkKEVy
cm9yU3RyaW5nKiwgY29uc3QgYm9vbCogb3B0aW9uYWxJZ25vcmVDYWNoZSwgY29uc3QgU3RyaW5n
KiBvcHRpb25hbFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQpOwogICAgIHZpcnR1YWwgdm9pZCBuYXZp
Z2F0ZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0Q29va2llcyhFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OlBhZ2U6OkNvb2tpZT4gPiYgY29va2llcywgV1RGOjpTdHJpbmcqIGNvb2tpZXNTdHJp
bmcpOworICAgIHZpcnR1YWwgdm9pZCBnZXRDb29raWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPElu
c3BlY3RvckFycmF5PiYgY29va2llcywgV1RGOjpTdHJpbmcqIGNvb2tpZXNTdHJpbmcpOwogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNv
b2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVz
b3VyY2VUcmVlKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpQYWdlOjpGcmFtZVJl
c291cmNlVHJlZT4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VUcmVlKEVycm9yU3Ry
aW5nKiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVz
b3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBT
dHJpbmcmIHVybCwgU3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
ZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJv
b2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4LCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaD4g
PiYpOwotICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYsIGNvbnN0IGJvb2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVn
ZXgsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaFJl
c3VsdD4gPiYpOworICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hJblJlc291cmNlKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBv
cHRpb25hbElzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBi
b29sKiBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBpc1JlZ2V4LCBSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+Jik7CiAgICAgdmlydHVhbCB2b2lkIHNldERvY3VtZW50Q29udGVudChFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiBodG1sKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKEVycm9yU3RyaW5nKiwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoRXJyb3JTdHJp
bmcqLCBib29sIHNob3cpOwpAQCAtMTM3LDggKzEzNyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRGcmFtZVZpZXdGaXhlZExheW91dChpbnQsIGludCk7CiAgICAgdm9pZCBjbGVhckZyYW1lVmll
d0ZpeGVkTGF5b3V0KCk7CiAKLSAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQYWdlOjpGcmFt
ZT4gYnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSopOwotICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxk
ZXI6OlBhZ2U6OkZyYW1lUmVzb3VyY2VUcmVlPiBidWlsZE9iamVjdEZvckZyYW1lVHJlZShGcmFt
ZSopOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckZyYW1l
KEZyYW1lKik7CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9y
RnJhbWVUcmVlKEZyYW1lKik7CiAgICAgUGFnZSogbV9wYWdlOwogICAgIEluamVjdGVkU2NyaXB0
TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBt
X2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5jcHAKaW5kZXggNWNmYzk0ODExMmZhZjNmZjgyNTZjZDUzMjI0NGQ5ZDJjMGQyY2Vj
My4uNzQxN2Y4ZWMwMjA3OTQ4ZWFkZmYxMGZhNjFjZjBmY2VjYzExNzE1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTk3
LDkgKzk3LDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHAKICAgICB9CiAjZW5kaWYKIAotICAg
IFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4gd2FzVGhyb3duT3B0OwotICAgIGluamVjdGVk
U2NyaXB0LmV2YWx1YXRlKGVycm9yU3RyaW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpv
YmplY3RHcm91cCA6ICIiLCBhc0Jvb2woaW5jbHVkZUNvbW1hbmRMaW5lQVBJKSwgYXNCb29sKHJl
dHVybkJ5VmFsdWUpLCAmcmVzdWx0LCAmd2FzVGhyb3duT3B0KTsKLSAgICAqd2FzVGhyb3duID0g
d2FzVGhyb3duT3B0LmlzQXNzaWduZWQoKSA/IHdhc1Rocm93bk9wdC5nZXRWYWx1ZSgpIDogZmFs
c2U7CisgICAgaW5qZWN0ZWRTY3JpcHQuZXZhbHVhdGUoZXJyb3JTdHJpbmcsIGV4cHJlc3Npb24s
IG9iamVjdEdyb3VwID8gKm9iamVjdEdyb3VwIDogIiIsIGFzQm9vbChpbmNsdWRlQ29tbWFuZExp
bmVBUEkpLCBhc0Jvb2wocmV0dXJuQnlWYWx1ZSksICZyZXN1bHQsIHdhc1Rocm93bik7CiAKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBpZiAocGF1c2VTdGF0ZUNoYW5nZWQp
CkBAIC0xMTcsMTAgKzExNSw3IEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpjYWxsRnVu
Y3Rpb25PbihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluCiAgICAgU3RyaW5n
IGFyZ3VtZW50czsKICAgICBpZiAob3B0aW9uYWxBcmd1bWVudHMpCiAgICAgICAgIGFyZ3VtZW50
cyA9ICgqb3B0aW9uYWxBcmd1bWVudHMpLT50b0pTT05TdHJpbmcoKTsKLQotICAgIFR5cGVCdWls
ZGVyOjpPcHRPdXRwdXQ8Ym9vbD4gd2FzVGhyb3duT3B0OwotICAgIGluamVjdGVkU2NyaXB0LmNh
bGxGdW5jdGlvbk9uKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgZXhwcmVzc2lvbiwgYXJndW1lbnRz
LCBhc0Jvb2wocmV0dXJuQnlWYWx1ZSksICZyZXN1bHQsICZ3YXNUaHJvd25PcHQpOwotICAgICp3
YXNUaHJvd24gPSB3YXNUaHJvd25PcHQuaXNBc3NpZ25lZCgpID8gd2FzVGhyb3duT3B0LmdldFZh
bHVlKCkgOiBmYWxzZTsKKyAgICBpbmplY3RlZFNjcmlwdC5jYWxsRnVuY3Rpb25PbihlcnJvclN0
cmluZywgb2JqZWN0SWQsIGV4cHJlc3Npb24sIGFyZ3VtZW50cywgYXNCb29sKHJldHVybkJ5VmFs
dWUpLCAmcmVzdWx0LCB3YXNUaHJvd24pOwogfQogCiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYg
b2JqZWN0SWQsIGNvbnN0IGJvb2wqIGNvbnN0IG93blByb3BlcnRpZXMsIFJlZlB0cjxJbnNwZWN0
b3JBcnJheT4mIHJlc3VsdCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>