<?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>149141</bug_id>
          
          <creation_ts>2015-09-14 16:04:30 -0700</creation_ts>
          <short_desc>Add stub implementation of Presentation API</short_desc>
          <delta_ts>2019-05-09 08:33:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>709922234</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125784</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-14 16:04:30 -0700</bug_when>
    <thetext>Add stub implementation of Presentation API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126027</commentid>
    <comment_count>1</comment_count>
      <attachid>261209</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-15 10:46:32 -0700</bug_when>
    <thetext>Created attachment 261209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126035</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-15 10:49:52 -0700</bug_when>
    <thetext>Attachment 261209 did not pass style-queue:


ERROR: Source/WebCore/Modules/presentation/PresentationRequest.cpp:40:  Use &apos;WTF::move()&apos; instead of &apos;std::move()&apos;.  [runtime/wtf_move] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126040</commentid>
    <comment_count>3</comment_count>
      <attachid>261214</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-15 10:53:34 -0700</bug_when>
    <thetext>Created attachment 261214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300821</commentid>
    <comment_count>4</comment_count>
      <attachid>261214</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-24 19:09:17 -0700</bug_when>
    <thetext>Comment on attachment 261214
Patch

This patch has been pending review since 2015 with no recent activity.
It seems unlikely that it would even still apply to trunk in its current form.

Clearing from the review queue.

Feel free to update and resubmit if the patch is still relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261209</attachid>
            <date>2015-09-15 10:46:32 -0700</date>
            <delta_ts>2015-09-15 10:53:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149141-20150915104621.patch</filename>
            <type>text/plain</type>
            <size>73863</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg2NmE3ZWE0YWZlMTBi
YWQzYjc0OTQyMmRjMTRiNTg0NGZjNmE3ZC4uZDA3MGViZmZlZjRjOTUwMmYwMDhiN2E5NWI3ZWYy
YzljZmYxNDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE1LTA5LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHViIGltcGxlbWVu
dGF0aW9uIG9mIFByZXNlbnRhdGlvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhc2ljLCBidXQgbm9uLWZ1bmN0aW9uYWwsIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBQcmVzZW50YXRpb24KKyAgICAgICAgQVBJLiBXcmFwIHRoaXMgaW1w
bGVtZW50YXRpb24gaW4gI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKSBndWFyZHMsCisgICAg
ICAgIGJ1dCBsZWF2ZSB0aGUgZ3VhcmRzIGRpc2FibGVkLgorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVz
ZW50YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvclByZXNlbnRh
dGlvbjo6TmF2aWdhdG9yUHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRv
clByZXNlbnRhdGlvbjo6fk5hdmlnYXRvclByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0b3JQcmVzZW50YXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yUHJlc2VudGF0aW9uOjpwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yUHJlc2VudGF0aW9uOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxlcy9wcmVz
ZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uOjpQcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9u
Ojp+UHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvbjo6ZGVmYXVs
dFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpzZXREZWZhdWx0UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb246OmdldFNlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpnZXRTZXNzaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVzZW50YXRpb246OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJlc2VudGF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKToKKyAgICAgICAgKiBNb2R1
bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OlByZXNlbnRhdGlvbkF2YWlsYWJp
bGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6On5QcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uQXZh
aWxhYmlsaXR5OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFp
bGFiaWxpdHk6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5OjphY3RpdmVET01PYmplY3ROYW1lKToKKyAgICAgICAgKiBN
b2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OnZhbHVlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6UHJlc2VudGF0aW9u
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0Ojp+UHJlc2Vu
dGF0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0Ojpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0OjpyZWNvbm5lY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6Z2V0QXZhaWxhYmlsaXR5
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblJlcXVlc3Q6OmNhblN1c3BlbmRGb3JQ
YWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSk6CisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0
aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb25SZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRp
b24vUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uU2Vzc2lvbjo6Y29ubmVjdGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVjdGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlc2VudGF0aW9uU2Vzc2lvbjo6cmVzdW1lZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXNlbnRhdGlvblNlc3Npb246OmJsb2JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRh
dGlvblNlc3Npb246OmFycmF5YnVmZmVyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50
YXRpb25TZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vz
c2lvbjo6UHJlc2VudGF0aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRp
b25TZXNzaW9uOjp+UHJlc2VudGF0aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVz
ZW50YXRpb25TZXNzaW9uOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25TZXNz
aW9uOjpzZXRCaW5hcnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Np
b246OnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Npb246OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Npb246OnNlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25TZXNzaW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNz
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6c3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6YmluYXJ5VHlwZSk6
CisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uU2Vzc2lvbi5pZGw6
IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFByZXNlbnRhdGlvbkFQSUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6cHJlc2Vu
dGF0aW9uQVBJRW5hYmxlZCk6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAyMDE1LTA5LTE0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdl
ZCBidWlsZCBmaXggYWZ0ZXIgcjE4OTc0NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggOTFjYzYyMjZhYTY3NzcyYzNiZTc4MmNlOGViZjQ2MzhkNzBjYzRkNS4uYWRmMTIwZDBjMDA5
NWRiMWU5NmY2YWE0Yjk0OTQyZWZjNDcxYmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC00MCw2ICs0MCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9wbHVnaW5zIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHJl
c2VudGF0aW9uIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zcGVlY2ggXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zIFwKQEAg
LTE2MSw2ICsxNjIsMTEgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2Nv
cGVOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3BsdWdpbnMvUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHJl
c2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJl
c2VudGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWYzZWZkMGJiYTlkM2MxMTEwMzEzOTNhYjYxNzkz
YzIyMzk1Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVz
ZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvclByZXNlbnRhdGlv
bi5oIgorCisjaWYgRU5BQkxFKFBSRVNFTlRBVElPTl9BUEkpCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVk
ZSAiUHJlc2VudGF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmF2aWdhdG9yUHJl
c2VudGF0aW9uOjpOYXZpZ2F0b3JQcmVzZW50YXRpb24oRnJhbWUqIGZyYW1lKQorICAgIDogRE9N
V2luZG93UHJvcGVydHkoZnJhbWUpCit7Cit9CisKK05hdmlnYXRvclByZXNlbnRhdGlvbjo6fk5h
dmlnYXRvclByZXNlbnRhdGlvbigpCit7Cit9CisKK05hdmlnYXRvclByZXNlbnRhdGlvbiogTmF2
aWdhdG9yUHJlc2VudGF0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIE5h
dmlnYXRvclByZXNlbnRhdGlvbiogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvclBy
ZXNlbnRhdGlvbio+KFN1cHBsZW1lbnQ8TmF2aWdhdG9yPjo6ZnJvbShuYXZpZ2F0b3IsIHN1cHBs
ZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdT
dXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JQcmVzZW50YXRpb24+KG5hdmln
YXRvci0+ZnJhbWUoKSk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgp
OworICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1v
dmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKwor
UHJlc2VudGF0aW9uKiBOYXZpZ2F0b3JQcmVzZW50YXRpb246OnByZXNlbnRhdGlvbihOYXZpZ2F0
b3IqIG5hdmlnYXRvcikKK3sKKyAgICByZXR1cm4gTmF2aWdhdG9yUHJlc2VudGF0aW9uOjpmcm9t
KG5hdmlnYXRvciktPnByZXNlbnRhdGlvbigpOworfQorCitQcmVzZW50YXRpb24qIE5hdmlnYXRv
clByZXNlbnRhdGlvbjo6cHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcHJlc2Vu
dGF0aW9uICYmIGZyYW1lKCkpCisgICAgICAgIG1fcHJlc2VudGF0aW9uID0gUHJlc2VudGF0aW9u
OjpjcmVhdGUoKmZyYW1lKCktPmRvY3VtZW50KCkpOworICAgIHJldHVybiBtX3ByZXNlbnRhdGlv
bi5nZXQoKTsKK30KKworY29uc3QgY2hhciogTmF2aWdhdG9yUHJlc2VudGF0aW9uOjpzdXBwbGVt
ZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJOYXZpZ2F0b3JQcmVzZW50YXRpb24iOworfQorCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjRmZGM0ODgyMDMwMDQ2N2FjYTk0Mzg3M2Y4MzFlMWNjYjgxMzIxOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05h
dmlnYXRvclByZXNlbnRhdGlvbi5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IE5hdmlnYXRvclByZXNlbnRhdGlvbl9oCisjZGVmaW5lIE5hdmlnYXRvclByZXNlbnRhdGlvbl9o
CisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1ZGUgIkRPTVdpbmRvd1By
b3BlcnR5LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQcmVzZW50YXRpb247CitjbGFzcyBOYXZpZ2F0b3I7CisKK2NsYXNzIE5h
dmlnYXRvclByZXNlbnRhdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4sIHB1Ymxp
YyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgTmF2aWdhdG9yUHJlc2VudGF0aW9u
KEZyYW1lKik7CisgICAgdmlydHVhbCB+TmF2aWdhdG9yUHJlc2VudGF0aW9uKCk7CisgICAgc3Rh
dGljIE5hdmlnYXRvclByZXNlbnRhdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKKworICAgIHN0YXRp
YyBQcmVzZW50YXRpb24qIHByZXNlbnRhdGlvbihOYXZpZ2F0b3IqKTsKKyAgICBQcmVzZW50YXRp
b24qIHByZXNlbnRhdGlvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgbXV0YWJsZSBSZWZQdHI8UHJlc2VudGF0aW9u
PiBtX3ByZXNlbnRhdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRp
b24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3ZWViMjU2MzYxZDA1OWI3MTlkMTBkMDYyZjU1NDI2NWE4MWQz
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlv
bi9OYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRsCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitb
IENvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkgXQorcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdh
dG9yIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJlc2VudGF0aW9uIHByZXNlbnRhdGlvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2Vu
dGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWFkNzE0NzQzMjI2MTBiYTZlYzU4OGExMzY1YmU4OTg1
NDA0NWMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50
YXRpb24vUHJlc2VudGF0aW9uLmNwcApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXNlbnRhdGlvbi5oIgorCisjaWYgRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCisKKyNpbmNsdWRlICJQcmVzZW50YXRpb25SZXF1ZXN0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByZXNlbnRhdGlvbj4gUHJlc2VudGF0aW9uOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UHJl
c2VudGF0aW9uPiBwcmVzZW50YXRpb24oYWRvcHRSZWYobmV3IFByZXNlbnRhdGlvbihjb250ZXh0
KSkpOworICAgIHByZXNlbnRhdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHBy
ZXNlbnRhdGlvbi5yZWxlYXNlTm9uTnVsbCgpOworfQorCitQcmVzZW50YXRpb246OlByZXNlbnRh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KCZjb250ZXh0KQoreworfQorCitQcmVzZW50YXRpb246On5QcmVzZW50YXRpb24oKQorewor
fQorCitQcmVzZW50YXRpb25SZXF1ZXN0KiBQcmVzZW50YXRpb246OmRlZmF1bHRSZXF1ZXN0KGJv
b2wmIGlzTnVsbCkgY29uc3QKK3sKKyAgICBpc051bGwgPSBtX2RlZmF1bHRSZXF1ZXN0OworICAg
IHJldHVybiBtX2RlZmF1bHRSZXF1ZXN0LmdldCgpOworfQorCit2b2lkIFByZXNlbnRhdGlvbjo6
c2V0RGVmYXVsdFJlcXVlc3QoUHJlc2VudGF0aW9uUmVxdWVzdCogZGVmYXVsdFJlcXVlc3QpCit7
CisgICAgaWYgKGRlZmF1bHRSZXF1ZXN0ID09IG1fZGVmYXVsdFJlcXVlc3QpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2RlZmF1bHRSZXF1ZXN0ID0gZGVmYXVsdFJlcXVlc3Q7Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uOjpnZXRTZXNzaW9uKFByZXNlbnRhdGlvblNlc3Npb25Qcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQKKyAgICBwcm9taXNlLnJlamVjdChudWxs
cHRyKTsKK30KKwordm9pZCBQcmVzZW50YXRpb246OmdldFNlc3Npb25zKFByZXNlbnRhdGlvblNl
c3Npb25TZXF1ZW5jZVByb21pc2UmJiBwcm9taXNlKQoreworICAgIC8vIFRPRE86IGltcGxlbWVu
dAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCitib29sIFByZXNlbnRhdGlvbjo6
Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0Cit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IGNoYXIqIFByZXNlbnRhdGlvbjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJQcmVzZW50YXRpb24iOworfQor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjE1OGE2Y2QwOWE3YzY2N2I0YzljOGQ2YTVmZmVkNTU5NmI0NDI5OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5oCkBA
IC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFByZXNlbnRhdGlvbl9oCisjZGVmaW5l
IFByZXNlbnRhdGlvbl9oCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlc2VudGF0
aW9uUmVxdWVzdDsKK2NsYXNzIFByZXNlbnRhdGlvblNlc3Npb247CisKK2NsYXNzIFByZXNlbnRh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFByZXNlbnRhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmUHRyPFByZXNlbnRhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyAgICB2aXJ0dWFsIH5QcmVzZW50YXRpb24oKTsKKworICAgIFByZXNlbnRhdGlvblJlcXVl
c3QqIGRlZmF1bHRSZXF1ZXN0KGJvb2wmIGlzTnVsbCkgY29uc3Q7CisgICAgdm9pZCBzZXREZWZh
dWx0UmVxdWVzdChQcmVzZW50YXRpb25SZXF1ZXN0Kik7CisKKyAgICB0eXBlZGVmIERPTVByb21p
c2U8UHJlc2VudGF0aW9uU2Vzc2lvbiYsIHN0ZDo6bnVsbHB0cl90PiBQcmVzZW50YXRpb25TZXNz
aW9uUHJvbWlzZTsKKyAgICB0eXBlZGVmIERPTVByb21pc2U8VmVjdG9yPFJlZlB0cjxQcmVzZW50
YXRpb25TZXNzaW9uPj4sIHN0ZDo6bnVsbHB0cl90PiBQcmVzZW50YXRpb25TZXNzaW9uU2VxdWVu
Y2VQcm9taXNlOworCisgICAgdm9pZCBnZXRTZXNzaW9uKFByZXNlbnRhdGlvblNlc3Npb25Qcm9t
aXNlJiYpOworICAgIHZvaWQgZ2V0U2Vzc2lvbnMoUHJlc2VudGF0aW9uU2Vzc2lvblNlcXVlbmNl
UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uPjo6cmVmOwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uPjo6ZGVyZWY7CisKK3ByaXZhdGU6Cisg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZl
bnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQcmVzZW50YXRpb25F
dmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQcmVzZW50
YXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIFJlZlB0cjxQcmVzZW50YXRpb25S
ZXF1ZXN0PiBtX2RlZmF1bHRSZXF1ZXN0OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyYWY2ODhmZjI1
YTkyNWM5ZGU3ZTA5MGJmZWQ2ZWQzZTgwNWM2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJLAorICAg
IENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICBBY3RpdmVE
T01PYmplY3QsCitdCitpbnRlcmZhY2UgUHJlc2VudGF0aW9uIDogRXZlbnRUYXJnZXQgeworICAg
IGF0dHJpYnV0ZSBQcmVzZW50YXRpb25SZXF1ZXN0PyBkZWZhdWx0UmVxdWVzdDsKKyAgICBQcm9t
aXNlIGdldFNlc3Npb24oKTsKKyAgICBQcm9taXNlIGdldFNlc3Npb25zKCk7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNlc3Npb25hdmFpbGFibGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlOTBkMDVkZWRkMmFlZjI5ZmQ0ZTVjYWNjNjY0
YTVlYzg0MTc2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJl
c2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVzZW50YXRpb25BdmFp
bGFiaWxpdHkuaCIKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZlB0cjxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk+IFByZXNlbnRhdGlv
bkF2YWlsYWJpbGl0eTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7
CisgICAgUmVmUHRyPFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT4gcHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5KGFkb3B0UmVmKG5ldyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoY29udGV4dCkpKTsK
KyAgICBwcmVzZW50YXRpb25BdmFpbGFiaWxpdHktPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBwcmVzZW50YXRpb25BdmFpbGFiaWxpdHkucmVsZWFzZU5vbk51bGwoKTsKK30KKworUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5OjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
K3sKK30KKworUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Ojp+UHJlc2VudGF0aW9uQXZhaWxhYmls
aXR5KCkKK3sKK30KKwordm9pZCBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OnNldFZhbHVlKGJv
b2wgdmFsdWUpCit7CisgICAgaWYgKG1fdmFsdWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsK
KyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgLy8gVE9ETzogaW1wbGVtZW50Cit9CisKK2Jvb2wg
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5OjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QK
K3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3Qg
Y2hhciogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eSI7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNjEzMDM5YTUyMTQwZDVlMzMxNWQ2MGU5ZWRhZTdkMDk4OGYxZDdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24v
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5X2gKKyNkZWZpbmUgUHJlc2VudGF0aW9uQXZh
aWxhYmlsaXR5X2gKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6CisgICAgUmVmUHRyPFBy
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
KyAgICB2aXJ0dWFsIH5QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoKTsKKworICAgIGJvb2wgdmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFBy
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNl
bnRhdGlvbkF2YWlsYWJpbGl0eT46OmRlcmVmOworCitwcml2YXRlOgorICAgIC8vIEV2ZW50VGFy
Z2V0IGludGVyZmFjZQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUHJlc2VudGF0
aW9uQXZhaWxhYmlsaXR5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2b2lkIHNldFZh
bHVlKGJvb2wpOworCisgICAgYm9vbCBtX3ZhbHVlIHsgZmFsc2UgfTsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0
eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25B
dmFpbGFiaWxpdHkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMjQ5N2IyMDAzY2QxNTYyZDY1ZTE0ZDA5N2Fi
MWE4YjA4ZmI4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3By
ZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsCkBAIC0wLDAgKzEsMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSSwKKyAgICBDb25z
dHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQWN0aXZlRE9NT2Jq
ZWN0LAorXQorICAgIGludGVyZmFjZSBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkgOiBFdmVudFRh
cmdldCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmFsdWU7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmNoYW5nZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRkODk2MjZkNjlkMjViM2E2ZjkwNTNjNmJlNzE3ZjQwNjk4OWQ0NDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRp
b25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlByZXNlbnRhdGlvblJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShQUkVT
RU5UQVRJT05fQVBJKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxQcmVzZW50YXRpb25SZXF1ZXN0PiBQcmVzZW50
YXRpb25SZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCit7CisgICAgVVJMIHVybCA9IGNvbnRleHQuY29tcGxldGVV
UkwodXJsU3RyaW5nKTsKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIFJlZlB0cjxQcmVzZW50YXRpb25SZXF1ZXN0PiBwcmVzZW50YXRpb25SZXF1
ZXN0KGFkb3B0UmVmKG5ldyBQcmVzZW50YXRpb25SZXF1ZXN0KGNvbnRleHQsIHN0ZDo6bW92ZSh1
cmwpKSkpOworICAgIHByZXNlbnRhdGlvblJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiBwcmVzZW50YXRpb25SZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCk7Cit9CisKK1ByZXNl
bnRhdGlvblJlcXVlc3Q6OlByZXNlbnRhdGlvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVVJMJiYgdXJsKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQor
ICAgICwgbV91cmwodXJsKQoreworfQorCitQcmVzZW50YXRpb25SZXF1ZXN0Ojp+UHJlc2VudGF0
aW9uUmVxdWVzdCgpCit7Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uUmVxdWVzdDo6c3RhcnQoUHJl
c2VudGF0aW9uU2Vzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIC8vIFRPRE86IGltcGxl
bWVudAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCit2b2lkIFByZXNlbnRhdGlv
blJlcXVlc3Q6OnJlY29ubmVjdChjb25zdCBTdHJpbmcmLCBQcmVzZW50YXRpb25TZXNzaW9uUHJv
bWlzZSYmIHByb21pc2UpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50CisgICAgcHJvbWlzZS5y
ZWplY3QobnVsbHB0cik7Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uUmVxdWVzdDo6Z2V0QXZhaWxh
YmlsaXR5KFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eVByb21pc2UmJiBwcm9taXNlKQoreworICAg
IC8vIFRPRE86IGltcGxlbWVudAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCiti
b29sIFByZXNlbnRhdGlvblJlcXVlc3Q6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAor
eworICAgIC8vIFRPRE86IGltcGxlbWVudAorICAgIHJldHVybiB0cnVlOworfQorCitjb25zdCBj
aGFyKiBQcmVzZW50YXRpb25SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIlByZXNlbnRhdGlvblJlcXVlc3QiOworfQorCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjM5
NDg0ZWIwNTY5NmQ2YmI5OWUwYzg2ZDEzYmQ2ZDRjN2IzMGNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5o
CkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFByZXNlbnRhdGlvblJlcXVlc3Rf
aAorI2RlZmluZSBQcmVzZW50YXRpb25SZXF1ZXN0X2gKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJ
T05fQVBJKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk7CitjbGFz
cyBQcmVzZW50YXRpb25TZXNzaW9uOworCitjbGFzcyBQcmVzZW50YXRpb25SZXF1ZXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uUmVxdWVzdD4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmUHRyPFByZXNlbnRhdGlvblJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwgflByZXNlbnRhdGlvblJlcXVl
c3QoKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxQcmVzZW50YXRpb25TZXNzaW9uJiwgc3Rk
OjpudWxscHRyX3Q+IFByZXNlbnRhdGlvblNlc3Npb25Qcm9taXNlOworICAgIHR5cGVkZWYgRE9N
UHJvbWlzZTxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkmLCBzdGQ6Om51bGxwdHJfdD4gUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5UHJvbWlzZTsKKworICAgIHZvaWQgc3RhcnQoUHJlc2VudGF0aW9u
U2Vzc2lvblByb21pc2UmJik7CisgICAgdm9pZCByZWNvbm5lY3QoY29uc3QgU3RyaW5nJiwgUHJl
c2VudGF0aW9uU2Vzc2lvblByb21pc2UmJik7CisgICAgdm9pZCBnZXRBdmFpbGFiaWxpdHkoUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
UHJlc2VudGF0aW9uUmVxdWVzdD46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNlbnRh
dGlvblJlcXVlc3Q+OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICAvLyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFByZXNlbnRhdGlvblJlcXVlc3RFdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYo
KTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kRm9y
UGFnZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQcmVzZW50YXRpb25SZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJik7CisgICAgVVJMIG1fdXJsOworfTsKKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKFBSRVNFTlRBVElPTl9BUEkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVz
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25S
ZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2NkNTdkZTcxOTc1NmU1ZjQ1ZmViMGM4OWFhMmI4NTU1
YzcyODFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50
YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdXJsKSwKKyAgICBDb25zdHJ1Y3RvckNhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQ29uZGl0aW9uYWw9UFJFU0VOVEFUSU9O
X0FQSSwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgSlNHZW5lcmF0ZVRvSlNP
YmplY3QsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorXQoraW50ZXJmYWNlIFByZXNlbnRhdGlvblJl
cXVlc3QgOiBFdmVudFRhcmdldCB7CisgICAgUHJvbWlzZSBzdGFydCgpOworICAgIFByb21pc2Ug
cmVjb25uZWN0KERPTVN0cmluZyBwcmVzZW50YXRpb25JZCk7CisgICAgUHJvbWlzZSBnZXRBdmFp
bGFiaWxpdHkoKTsKKworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZXNzaW9uY29ubmVj
dDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9Q
cmVzZW50YXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0
aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NTFmOTlmNTgxOTAxYjNi
ZmFhZWMyNDA2OTI0NGE2ZTQ5MjI1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmNwcApAQCAtMCwwICsx
LDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVzZW50
YXRpb25TZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0
IEF0b21pY1N0cmluZyYgUHJlc2VudGF0aW9uU2Vzc2lvbjo6Y29ubmVjdGVkU3RhdGUoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNvbm5lY3RlZCgiY29ubmVj
dGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIGNv
bm5lY3RlZC5nZXQoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBQcmVzZW50YXRpb25TZXNz
aW9uOjpkaXNjb25uZWN0ZWRTdGF0ZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gZGlzY29ubmVjdGVkKCJkaXNjb25uZWN0ZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gZGlzY29ubmVjdGVkLmdldCgpOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Npb246OnJlc3VtZWRTdGF0ZSgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVzdW1lZCgicmVz
dW1lZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHJldHVybiBy
ZXN1bWVkLmdldCgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Np
b246OmJsb2JUeXBlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBibG9iKCJibG9iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
cmV0dXJuIGJsb2IuZ2V0KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgUHJlc2VudGF0aW9u
U2Vzc2lvbjo6YXJyYXlidWZmZXJUeXBlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJyYXlidWZmZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gYXJyYXlidWZmZXIuZ2V0KCk7Cit9CisK
K1JlZlB0cjxQcmVzZW50YXRpb25TZXNzaW9uPiBQcmVzZW50YXRpb25TZXNzaW9uOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UHJlc2VudGF0
aW9uU2Vzc2lvbj4gcHJlc2VudGF0aW9uU2Vzc2lvbihhZG9wdFJlZihuZXcgUHJlc2VudGF0aW9u
U2Vzc2lvbihjb250ZXh0KSkpOworICAgIHByZXNlbnRhdGlvblNlc3Npb24tPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiBwcmVzZW50YXRpb25TZXNzaW9uLnJlbGVhc2VOb25OdWxsKCk7
Cit9CisKK1ByZXNlbnRhdGlvblNlc3Npb246OlByZXNlbnRhdGlvblNlc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
K3sKK30KKworUHJlc2VudGF0aW9uU2Vzc2lvbjo6flByZXNlbnRhdGlvblNlc3Npb24oKQorewor
fQorCitjb25zdCBTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Npb246OmlkKGJvb2wmIGlzTnVsbCkg
Y29uc3QKK3sKKyAgICBpc051bGwgPSBtX2lkLmlzTnVsbCgpOworICAgIHJldHVybiBtX2lkOwor
fQorCit2b2lkIFByZXNlbnRhdGlvblNlc3Npb246OnNldEJpbmFyeVR5cGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlKQoreworICAgIGlmIChtX3R5cGUgPT0gdHlwZSkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uU2Vzc2lvbjo6c2V0U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkK
K3sKKyAgICBpZiAobV9zdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3Rh
dGUgPSBzdGF0ZTsKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQKK30KKwordm9pZCBQcmVzZW50YXRp
b25TZXNzaW9uOjpjbG9zZSgpCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uU2Vzc2lvbjo6c2VuZChjb25zdCBTdHJpbmcmKQoreworICAgIC8vIFRPRE86
IEltcGxlbWVudAorfQorCit2b2lkIFByZXNlbnRhdGlvblNlc3Npb246OnNlbmQoY29uc3QgQmxv
YiopCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uU2Vz
c2lvbjo6c2VuZChjb25zdCBKU0M6OkFycmF5QnVmZmVyKikKK3sKKyAgICAvLyBUT0RPOiBJbXBs
ZW1lbnQKK30KKwordm9pZCBQcmVzZW50YXRpb25TZXNzaW9uOjpzZW5kKGNvbnN0IEpTQzo6QXJy
YXlCdWZmZXJWaWV3KikKK3sKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQKK30KKworYm9vbCBQcmVz
ZW50YXRpb25TZXNzaW9uOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKK3sKKyAgICAv
LyBUT0RPOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3QgY2hhciogUHJl
c2VudGF0aW9uU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJQcmVzZW50YXRpb25SZXF1ZXN0IjsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNl
bnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3By
ZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJjMDNmYTEwNGQx
ZDRkMmQ1MzEwYzcyMjBiNDk0YTU0OTg4ZGQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uaApAQCAtMCww
ICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQcmVzZW50YXRpb25TZXNzaW9uX2gKKyNkZWZp
bmUgUHJlc2VudGF0aW9uU2Vzc2lvbl9oCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkK
KworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBKU0MgeworY2xhc3MgQXJyYXlCdWZmZXI7CitjbGFzcyBBcnJheUJ1ZmZlclZp
ZXc7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQmxvYjsKKworY2xhc3MgUHJl
c2VudGF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFByZXNlbnRhdGlvblNlc3Npb24+
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29ubmVjdGVkU3Rh
dGUoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXNjb25uZWN0ZWRTdGF0ZSgp
OworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHJlc3VtZWRTdGF0ZSgpOworCisgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYmxvYlR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBhcnJheWJ1ZmZlclR5cGUoKTsKKworICAgIFJlZlB0cjxQcmVzZW50YXRp
b25TZXNzaW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwg
flByZXNlbnRhdGlvblNlc3Npb24oKTsKKworICAgIGNvbnN0IFN0cmluZyYgaWQoYm9vbCYgaXNO
dWxsKSBjb25zdDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZTsgfQorCisgICAgdm9pZCBzZXRCaW5hcnlUeXBlKGNvbnN0IEF0b21pY1N0cmlu
ZyYpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYmluYXJ5VHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorCisgICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgc2VuZChjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHNlbmQoY29uc3QgQmxvYiopOworICAgIHZvaWQgc2VuZChjb25zdCBK
U0M6OkFycmF5QnVmZmVyKik7CisgICAgdm9pZCBzZW5kKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXJW
aWV3Kik7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNlbnRhdGlvblNlc3Npb24+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxQcmVzZW50YXRpb25TZXNzaW9uPjo6ZGVyZWY7CisKK3By
aXZhdGU6CisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQcmVz
ZW50YXRpb25TZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRl
OworCisgICAgUHJlc2VudGF0aW9uU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Cisg
ICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAgIFN0cmluZyBtX2lk
OworICAgIEF0b21pY1N0cmluZyBtX3N0YXRlOworICAgIEF0b21pY1N0cmluZyBtX3R5cGU7Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRp
b25TZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNl
bnRhdGlvblNlc3Npb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYmY1ODYwOTE1ZDk1NjFhNzk4YWRiOTE2
YjYwNWJjMjlhOGIxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmlkbApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworZW51bSBQcmVzZW50YXRpb25TZXNzaW9uU3RhdGUgeworICAgICJjb25uZWN0ZWQi
LAorICAgICJkaXNjb25uZWN0ZWQiLAorICAgICJyZXN1bWVkIgorfTsKKworZW51bSBCaW5hcnlU
eXBlIHsKKyAgICAiYmxvYiIsCisgICAgImFycmF5YnVmZmVyIgorfTsKKworWworICAgIENvbmRp
dGlvbmFsPVBSRVNFTlRBVElPTl9BUEksCisgICAgQWN0aXZlRE9NT2JqZWN0LAorXQoraW50ZXJm
YWNlIFByZXNlbnRhdGlvblNlc3Npb24gOiBFdmVudFRhcmdldCB7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZz8gaWQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByZXNlbnRhdGlv
blNlc3Npb25TdGF0ZSBzdGF0ZTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOworCisgICAgLy8gQ29tbXVuaWNhdGlvbgorICAgIGF0
dHJpYnV0ZSBCaW5hcnlUeXBlIGJpbmFyeVR5cGU7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbm1lc3NhZ2U7CisgICAgdm9pZCBzZW5kKERPTVN0cmluZyBtZXNzYWdlKTsKKyAgICB2b2lk
IHNlbmQoQmxvYiBkYXRhKTsKKyAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0YSk7CisgICAg
dm9pZCBzZW5kKEFycmF5QnVmZmVyVmlldyBkYXRhKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTRlYzg1YWRhZmVmMTEx
NTBlYmQzODY4ODZjM2VkYTQ4MzM3YWY1NC4uNDY5NGE1ZDhjZWY2OWE3ZTkyNzVmMTFkODcyMTNi
OGU2MTliZTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTc5OSw2ICs1Nzk5LDI2IEBACiAJCUNEMzM2RjY0MTdGQTBBNEQw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGLmggKi87IH07CiAJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQy5jcHAgKi87IH07CiAJCUNEMzM2RjY4MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMzM2RjY2MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUFWRk9iakMuaCAqLzsgfTsKKwkJQ0QzNjM4OEYxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNl
bnRhdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QzNjM4OEQxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24u
Y3BwICovOyB9OworCQlDRDM2Mzg5MDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
NjM4OEUxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24uaCAqLzsgfTsKKwkJ
Q0QzNjM4OTQxQkEzNkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5MjFC
QTM2QUQ4MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCAqLzsgfTsKKwkJ
Q0QzNjM4OTUxQkEzNkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4OTMxQkEz
NkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oICovOyB9OworCQlDRDM2
Mzg5OTFCQTM2QUZDMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5NzFCQTM2QUZDMDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgKi87IH07CisJCUNEMzYzODlBMUJBMzZB
RkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5ODFCQTM2QUZDMDA4N0UwN0QgLyogUHJl
c2VudGF0aW9uUmVxdWVzdC5oICovOyB9OworCQlDRDM2Mzg5RTFCQTM2QjFFMDA4N0UwN0QgLyog
UHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMzYzODlDMUJBMzZCMUUwMDg3RTA3RCAvKiBQcmVzZW50YXRpb24uY3BwICovOyB9
OworCQlDRDM2Mzg5RjFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5RDFCQTM2QjFFMDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uLmggKi87IH07CisJCUNEMzYzOEE0MUJBMzg5QzYwMDg3RTA3
RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QTIxQkEzODlDNjAwODdFMDdEIC8qIE5hdmlnYXRv
clByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJCUNEMzYzOEE1MUJBMzg5QzYwMDg3RTA3RCAvKiBO
YXZpZ2F0b3JQcmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMzYzOEEzMUJBMzg5QzYwMDg3RTA3RCAvKiBOYXZpZ2F0b3JQcmVzZW50
YXRpb24uaCAqLzsgfTsKKwkJQ0QzNjM4QUUxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzYzOEE2MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJCUNE
MzYzOEFGMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QTcxQkEzOTBENjAwODdFMDdE
IC8qIEpTUHJlc2VudGF0aW9uLmggKi87IH07CisJCUNEMzYzOEIwMUJBMzkwRDYwMDg3RTA3RCAv
KiBKU1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2MzhBODFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkuY3BwICovOyB9OworCQlDRDM2MzhCMTFCQTM5MEQ2MDA4N0Uw
N0QgLyogSlNQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEE5MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1By
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oICovOyB9OworCQlDRDM2MzhCMjFCQTM5MEQ2MDA4N0Uw
N0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEFBMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNl
bnRhdGlvblJlcXVlc3QuY3BwICovOyB9OworCQlDRDM2MzhCMzFCQTM5MEQ2MDA4N0UwN0QgLyog
SlNQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDM2MzhBQjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25S
ZXF1ZXN0LmggKi87IH07CisJCUNEMzYzOEI0MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRh
dGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzNjM4QUMxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5j
cHAgKi87IH07CisJCUNEMzYzOEI1MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNl
c3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzYzOEFEMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uaCAqLzsgfTsK
KwkJQ0QzNjM4QjgxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEI2
MUJBMzkwRTMwMDg3RTA3RCAvKiBKU05hdmlnYXRvclByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJ
CUNEMzYzOEI5MUJBMzkwRTMwMDg3RTA3RCAvKiBKU05hdmlnYXRvclByZXNlbnRhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QjcxQkEz
OTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmggKi87IH07CiAJCUNEMzdC
Mzk4MTVDMUI5NzEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzN0IzNzQxNUMxQTdFMTAw
NkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgKi87IH07CiAJCUNEM0E0OTVFMTdB
OUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1NTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0
OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovOyB9OwpAQCAtMTM0NTYsNiAr
MTM0NzYsMzEgQEAKIAkJQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2
YXRlQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzM2RjY1MTdGQTBBQzYw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0QzNjM4OEMxQkEzNkFBQjAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24uaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFByZXNlbnRhdGlvblNlc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDM2Mzg4RDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVzZW50YXRpb25TZXNzaW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OEUxQkEzNkFCNzAwODdFMDdEIC8q
IFByZXNlbnRhdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHJlc2VudGF0aW9uU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2
Mzg5MTFCQTM2QUNCMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDM2Mzg5MjFCQTM2QUQ4MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzODkzMUJB
MzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzODk2MUJBMzZBRUYwMDg3RTA3RCAvKiBQcmVzZW50
YXRpb25SZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQcmVzZW50YXRpb25SZXF1ZXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OTcxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRh
dGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJl
c2VudGF0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYz
ODk4MUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZXNlbnRhdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OUIxQkEzNkIxNDAwODdFMDdEIC8qIFByZXNlbnRhdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUHJlc2VudGF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0QzNjM4OUMxQkEzNkIxRTAwODdFMDdEIC8qIFByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVzZW50YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDM2Mzg5RDFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZXNlbnRhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2MzhBMTFCQTM4OTkxMDA4N0UwN0QgLyog
TmF2aWdhdG9yUHJlc2VudGF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2MzhBMjFCQTM4OUM2MDA4N0UwN0Qg
LyogTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5hdmlnYXRvclByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMzYzOEEzMUJBMzg5QzYwMDg3RTA3RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yUHJlc2VudGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEE2MUJBMzkwRDYwMDg3
RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU1ByZXNlbnRhdGlvbi5jcHA7IHBhdGggPSBKU1ByZXNlbnRhdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEE3MUJBMzkwRDYwMDg3RTA3RCAvKiBK
U1ByZXNlbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1ByZXNl
bnRhdGlvbi5oOyBwYXRoID0gSlNQcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QzNjM4QTgxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5LmNwcDsgcGF0aCA9IEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QTkxQkEzOTBENjAwODdF
MDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmg7IHBhdGggPSBKU1ByZXNl
bnRhdGlvbkF2YWlsYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2
MzhBQTFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uUmVxdWVzdC5jcHA7
IHBhdGggPSBKU1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDM2MzhBQjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uUmVxdWVz
dC5oOyBwYXRoID0gSlNQcmVzZW50YXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMzYzOEFDMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNQcmVzZW50YXRp
b25TZXNzaW9uLmNwcDsgcGF0aCA9IEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEFEMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNl
bnRhdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNQcmVz
ZW50YXRpb25TZXNzaW9uLmg7IHBhdGggPSBKU1ByZXNlbnRhdGlvblNlc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QjYxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2
aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yUHJlc2Vu
dGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QjcxQkEzOTBF
MzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmg7IHBhdGggPSBKU05hdmln
YXRvclByZXNlbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDM3QjM3
NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBE
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
M0E0OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNTM1OCw2ICsxNTQwMyw3IEBACiAJCQkJMzM1MDNDOUMxMDE3OUE5QTAw
M0I0N0UxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJMUFDMjI2MDIwREI2OUVBNzAwODlCNjY5
IC8qIE9mZmxpbmUgKi8sCiAJCQkJQTlEMjQ3RjkwRDc1N0U0MTAwRkRGOTU5IC8qIFBsdWdpbnMg
Ki8sCisJCQkJQ0QzNjM4QTAxQkEzNzRGQTAwODdFMDdEIC8qIFByZXNlbnRhdGlvbiAqLywKIAkJ
CQk4OUY2MEIxNzE1N0Y2QTAyMDA3NUUxNTcgLyogUXVvdGEgKi8sCiAJCQkJQkM5ODU0NDYwQ0Qz
REE1RjAwMDY5QkMxIC8qIFJhbmdlcyAqLywKIAkJCQlBQTdGRUU5QjE2QTQ5MUExMDA0QzBDMzMg
LyogU3BlZWNoICovLApAQCAtMTg2ODksNiArMTg3MzUsNyBAQAogCQkJCUIxQTk0MkREMTVCNUNF
MjIwMEQ1MjVEMSAvKiBtZWRpYXNvdXJjZSAqLywKIAkJCQkwNzIyMUI0NjE3Q0VDMzI3MDA4NDhF
NTEgLyogbWVkaWFzdHJlYW0gKi8sCiAJCQkJMzMzRjcwM0QwRkI0OUMxNjAwOEUxMkE2IC8qIG5v
dGlmaWNhdGlvbnMgKi8sCisJCQkJQ0QzNjM4OEIxQkEzNkE2RDAwODdFMDdEIC8qIHByZXNlbnRh
dGlvbiAqLywKIAkJCQkwNzJBRTFERTE4M0MwNTEzMDAwQTU5ODggLyogcGx1Z2lucyAqLywKIAkJ
CQk4OUY2MEIwODE1N0Y2ODM1MDA3NUUxNTcgLyogcXVvdGEgKi8sCiAJCQkJQUEyQTVBQjcxNkE0
ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLywKQEAgLTIyMTk0LDYgKzIyMjQxLDQ1IEBACiAJCQlw
YXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0QzNjM4OEIx
QkEzNkE2RDAwODdFMDdEIC8qIHByZXNlbnRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0QzNjM4QTIxQkEzODlDNjAwODdFMDdEIC8qIE5hdmln
YXRvclByZXNlbnRhdGlvbi5jcHAgKi8sCisJCQkJQ0QzNjM4QTMxQkEzODlDNjAwODdFMDdEIC8q
IE5hdmlnYXRvclByZXNlbnRhdGlvbi5oICovLAorCQkJCUNEMzYzOEExMUJBMzg5OTEwMDg3RTA3
RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRsICovLAorCQkJCUNEMzYzODlDMUJBMzZCMUUw
MDg3RTA3RCAvKiBQcmVzZW50YXRpb24uY3BwICovLAorCQkJCUNEMzYzODlEMUJBMzZCMUUwMDg3
RTA3RCAvKiBQcmVzZW50YXRpb24uaCAqLywKKwkJCQlDRDM2Mzg5QjFCQTM2QjE0MDA4N0UwN0Qg
LyogUHJlc2VudGF0aW9uLmlkbCAqLywKKwkJCQlDRDM2Mzg5MjFCQTM2QUQ4MDA4N0UwN0QgLyog
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCAqLywKKwkJCQlDRDM2Mzg5MzFCQTM2QUQ4MDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggKi8sCisJCQkJQ0QzNjM4OTExQkEz
NkFDQjAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5pZGwgKi8sCisJCQkJQ0Qz
NjM4OTcxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblJlcXVlc3QuY3BwICovLAorCQkJ
CUNEMzYzODk4MUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggKi8sCisJ
CQkJQ0QzNjM4OTYxQkEzNkFFRjAwODdFMDdEIC8qIFByZXNlbnRhdGlvblJlcXVlc3QuaWRsICov
LAorCQkJCUNEMzYzODhEMUJBMzZBQjcwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25TZXNzaW9uLmNw
cCAqLywKKwkJCQlDRDM2Mzg4RTFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lv
bi5oICovLAorCQkJCUNEMzYzODhDMUJBMzZBQUIwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25TZXNz
aW9uLmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gcHJlc2VudGF0aW9uOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQ0QzNjM4QTAxQkEzNzRGQTAwODdFMDdEIC8qIFByZXNl
bnRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Q0QzNjM4QjYxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAq
LywKKwkJCQlDRDM2MzhCNzFCQTM5MEUzMDA4N0UwN0QgLyogSlNOYXZpZ2F0b3JQcmVzZW50YXRp
b24uaCAqLywKKwkJCQlDRDM2MzhBNjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb24u
Y3BwICovLAorCQkJCUNEMzYzOEE3MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5o
ICovLAorCQkJCUNEMzYzOEE4MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbkF2YWls
YWJpbGl0eS5jcHAgKi8sCisJCQkJQ0QzNjM4QTkxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5LmggKi8sCisJCQkJQ0QzNjM4QUExQkEzOTBENjAwODdFMDdEIC8q
IEpTUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJQ0QzNjM4QUIxQkEzOTBENjAwODdF
MDdEIC8qIEpTUHJlc2VudGF0aW9uUmVxdWVzdC5oICovLAorCQkJCUNEMzYzOEFDMUJBMzkwRDYw
MDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uY3BwICovLAorCQkJCUNEMzYzOEFEMUJB
MzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uaCAqLywKKwkJCSk7CisJCQlu
YW1lID0gUHJlc2VudGF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
Q0Q2MUZFN0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlhU291cmNlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0MzgxLDYgKzI0NDY3LDcgQEAKIAkJCQlF
MUY4MEI4ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTE2NEZBQTMxODMxNUJGNDAwREI0RTYxIC8qIENyeXB0b0tleVJTQS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTEyNUY4NTYxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMzYzOEFGMUJBMzkwRDYwMDg3RTA3RCAvKiBK
U1ByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4NUExODJDMUFBNjAwRDg0
Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
OTcyNzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTcyQUY3MDE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ1MTYsNiArMjQ2MDMsNyBAQAogCQkJCTMxRUFGOTdFMTIxNDM1QTQwMEU3
QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIx
QTU5MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUZCMUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4QjkxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdh
dG9yUHJlc2VudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1RDEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QThGMUQ4
MTFBNjk1MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODA4LDYgKzI0ODk2LDcgQEAKIAkJCQk4NUU3
MTFEMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NTWVkaWFMaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc1NzkzRUQzMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1NzkzRUQ1MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdl
RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4OUYxQkEzNkIxRTAwODdF
MDdEIC8qIFByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBQ0FGNEQwRTc5MUFB
RjAwODdEMTJCIC8qIERPTU1lc3NhZ2VQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFERURE
NTBFNzZCRDYwMDA0QTFBNUUgLyogRE9NTWVzc2FnZVBvcnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTlDNkU0RTQwRDc0NUUwNTAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1OTQzLDYgKzI2MDMyLDcgQEAKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5
QjQ4QzMgLyogSlNWaWRlb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwODIx
OEE0NjBDMzAwODA2NDdFIC8qIEpTVlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIw
RDE4Q0ZCNUY0MDBDNjRCRUYgLyogSlNWVFRSZWdpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MzYzOEIzMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBRjlCMjBGMThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEODJEN0Y4MTNENEM4QkQwMDRFNDM3MiAvKiBKU1dhdmVT
aGFwZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0YzRDM2NDFBNjlCMTkwMDA1OUZDMkIg
LyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDk3LDYg
KzI2MTg3LDcgQEAKIAkJCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0ZFOTlERDE4ODA3QTdEMDAy
NTY2NDggLyogTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEz
QUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MzYzODlBMUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTZEMUVDMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBB
OEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTI2LDYgKzI2NjE3LDcg
QEAKIAkJCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVz
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNjU4NzQxODZGREU0QzAwOUMyNkU4IC8qIFJlbmRl
clB0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4QjExQkEzOTBENjAwODdFMDdEIC8qIEpT
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzMTNERjFC
Njk4OEM1MDBGMkFBQkMgLyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY1NTUsNiArMjY2NDcsNyBAQAogCQkJCTQzNjcwOEM5MTJEOUNBNEIwMDA0NDIz
NCAvKiBSZW5kZXJTVkdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTUxMjU1RTRF
NjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIw
MTcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUNEMzYzODk1MUJBMzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQURERjFBRDcxMjU3Q0Q5QTAw
MDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEJCNTg1MTQ4
NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzMz
LDYgKzI2ODI2LDcgQEAKIAkJCQk5MzFDQkQwRjE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI4ODkwRjE2N0QzMDE2
MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDM2MzhBNTFCQTM4OUM2MDA4N0UwN0QgLyogTmF2aWdhdG9yUHJlc2Vu
dGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFBRERBNDE0REI0MDlGMDBB
RjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhDMDMxNjQ0
NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLApA
QCAtMjY4MTIsNiArMjY5MDYsNyBAQAogCQkJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBBNDg0NDk5MENB
NDRDQjIwMEI3QkQ0OCAvKiBTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIzMDQz
QzcwQUUwMzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM2Mzg5
MDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzE5Niw2ICsyNzI5MSw3IEBACiAJCQkJQjJDM0RB
MzYwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkMzREEzODBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRl
eHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM2MzhCNTFCQTM5MEQ2MDA4
N0UwN0QgLyogSlNQcmVzZW50YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdE
MDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4g
SGVhZGVycyAqLywKQEAgLTI3OTgyLDYgKzI4MDc4LDcgQEAKIAkJCQlGRDMxNjAyNDEyQjAyNjc2
MDBDMUEzNTkgLyogQmlxdWFkRFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQzU0
RjA0MTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEMzE2MDI2MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4OTkxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRhdGlv
blJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg5OTQzMjkwQjQyMzM4ODAwRDdDODAy
IC8qIEJpdG1hcEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3N0EzQTkwMTVFRkNFOUIw
MDU5RjVDNyAvKiBCaXRtYXBJbWFnZUNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2Qzc4
MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5OTksNiAr
MjgwOTYsNyBAQAogCQkJCTkzMzA5RERBMDk5RTY0OTIwMDU2RTU4MSAvKiBCcmVha0Jsb2NrcXVv
dGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5QjU5NzczMTEwODY1NkIwMDcxNTlF
OCAvKiBCcmlkZ2VKU0MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E0NTAzMkYxOERCNzE3MjAw
Mzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDM2
Mzg5RTFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE1NjlDRjcwRDdFMkI4MjAwN0MzOTgzIC8qIGNfY2xhc3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlDRjkwRDdFMkI4MjAwN0MzOTgzIC8qIGNfaW5zdGFuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyNCw2ICsyODUyMiw3IEBACiAJCQkJODVERjgyMjIw
QUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk4NURGODI3MTBBQTc4QjhCMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlRWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MjI0MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1M
VGFibGVSb3dFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QTQxQkEzODlDNjAw
ODdFMDdEIC8qIE5hdmlnYXRvclByZXNlbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NURGODIyNjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFGMzBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTFRl
eHRBcmVhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OTkyRUMxMEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODY0NCw2
ICsyODc0Myw3IEBACiAJCQkJMDg1QjkyQkEwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODEzNkQzOTA5NzNBOEU3MDBENzQ0NjMgLyog
Rm9ybURhdGFMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDY2MTJEMjZFMzgwMEU3
OTQxNSAvKiBGb3JtRGF0YVN0cmVhbUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMzYz
ODk0MUJBMzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE0Qzc2NEYwQ0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFt
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU2RDM3M0IwQURCQTVERTAwQTQ1NTREIC8qIEZv
cm1TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4NUI5NDExQjZGREE2MDAzMzgzQkIg
LyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODc5NCw2ICsyODg5NCw3
IEBACiAJCQkJQThDRkY3QTUwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxRdW90ZUVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMjIzRkQxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNv
dXJjZVByZWxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREMyMjBBMTUyMDU3MDBC
MTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4
QjAxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3N0IzODc0MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVu
bmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MTM2OUQ5MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBI
VE1MU2VsZWN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNBNzBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTEw
OCw2ICsyOTIwOSw3IEBACiAJCQkJNTE4RjUwMDMxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBh
ZEJ1dHRvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTZDNjIyNTE5NTBFMkI5MDAzMzdFNzUg
LyogSlNHYW1lcGFkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MERBNjMwRTlDNDcw
MzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4
QjQxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwREE2NTBFOUM0NzAzMDAwRDZGNzUgLyogSlNH
ZW9wb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkRBN0MxRTE4ODMyMkZDMDBDOTU0
QjUgLyogSlNHZXN0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTQ5Niw2ICsyOTU5
OCw3IEBACiAJCQkJQjJGQTNERDIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERDQwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkZBM0RENjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QjgxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2
aWdhdG9yUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREQ4MEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0REQTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0REQzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQ
YXRoU2VnTW92ZXRvQWJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk1MTMsNiArMjk2MTYsNyBA
QAogCQkJCUIyRkEzREYwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1JlbmRlcmluZ0ludGVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RGMjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdT
Y3JpcHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREY0MEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR1NldEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QUUx
QkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyRkEzREY2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N0b3BFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREY4MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N0cmluZ0xpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERkEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZH
U3R5bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzOTAsNiArMzA0OTQsNyBAQAog
CQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFMzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBT
dWJyZXNvdXJjZUxvYWRlckNGLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMzYzOEIyMUJBMzkw
RDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQlFMUZGOEY1RjE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5
cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjJEODE4MEY5OTIwRUUwMDZBRTZCMiAvKiBT
dWRkZW5UZXJtaW5hdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMzA3MjQsNiArMzA4MjksNyBA
QAogCQkJCTdBOTM4Njg1MThEQ0MxNDUwMEI4MjYzRCAvKiBWVFRTY2FubmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUExNDgzMkIxMTg3RjYxRTEwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBBQUY3IC8qIERPTVBhdGgu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4OEYxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNl
bnRhdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQjMxODdGNjI5MTAw
REE2M0E2IC8qIFdBS0NsaXBWaWV3Lm0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJCNTE4N0Y2
MkZDMDBEQTYzQTYgLyogV0FLUmVzcG9uZGVyLm0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJC
NzE4N0Y2MzZDMDBEQTYzQTYgLyogV0FLU2Nyb2xsVmlldy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggYzg1NmJiMmUzOTc3YTk3YjdlZDQ2ZmJlN2RiOWQxZGY1
ZWUyOGM1MC4uZGUyOTk4ZjkxMDEwMWYyOWIwMjliMmZjYzg3MDgyZjZlOWYyMThkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xODAsNiArMTgwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHNlbGVjdCkgXAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkgXAogICAg
IG1hY3JvKHNlbGVjdHN0YXJ0KSBcCisgICAgbWFjcm8oc2Vzc2lvbmF2YWlsYWJsZSkgXAorICAg
IG1hY3JvKHNlc3Npb25jb25uZWN0KSBcCiAgICAgbWFjcm8oc2hvdykgXAogICAgIG1hY3JvKHNp
Z25hbGluZ3N0YXRlY2hhbmdlKSBcCiAgICAgbWFjcm8oc291bmRlbmQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IGFiNGZlZGJkNTcxYmUxNjM5MDNjY2Fk
YTIwNzQyNWQxNTU3NGNjMDQuLjA1YzAwMDIxMDliODNmZjI3NTIyYjFjYTNkZTg5ZDJkOWY5MWM5
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMjQsNiAr
MjQsMTAgQEAgTWVzc2FnZVBvcnQKIE5vZGUKIE5vdGlmaWNhdGlvbiBjb25kaXRpb25hbD1OT1RJ
RklDQVRJT05TfExFR0FDWV9OT1RJRklDQVRJT05TCiBQZXJmb3JtYW5jZSBjb25kaXRpb25hbD1X
RUJfVElNSU5HCitQcmVzZW50YXRpb24gY29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSQorUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5IGNvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkKK1ByZXNl
bnRhdGlvblJlcXVlc3QgY29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSQorUHJlc2VudGF0aW9u
U2Vzc2lvbiBjb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJCiBSVENEYXRhQ2hhbm5lbCBjb25k
aXRpb25hbD1NRURJQV9TVFJFQU0KIFJUQ0RUTUZTZW5kZXIgY29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNCiBSVENQZWVyQ29ubmVjdGlvbiBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261214</attachid>
            <date>2015-09-15 10:53:34 -0700</date>
            <delta_ts>2017-04-24 19:09:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149141-20150915105323.patch</filename>
            <type>text/plain</type>
            <size>73863</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg2NmE3ZWE0YWZlMTBi
YWQzYjc0OTQyMmRjMTRiNTg0NGZjNmE3ZC4uZDA3MGViZmZlZjRjOTUwMmYwMDhiN2E5NWI3ZWYy
YzljZmYxNDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE1LTA5LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHViIGltcGxlbWVu
dGF0aW9uIG9mIFByZXNlbnRhdGlvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhc2ljLCBidXQgbm9uLWZ1bmN0aW9uYWwsIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBQcmVzZW50YXRpb24KKyAgICAgICAgQVBJLiBXcmFwIHRoaXMgaW1w
bGVtZW50YXRpb24gaW4gI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKSBndWFyZHMsCisgICAg
ICAgIGJ1dCBsZWF2ZSB0aGUgZ3VhcmRzIGRpc2FibGVkLgorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVz
ZW50YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvclByZXNlbnRh
dGlvbjo6TmF2aWdhdG9yUHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRv
clByZXNlbnRhdGlvbjo6fk5hdmlnYXRvclByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0b3JQcmVzZW50YXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yUHJlc2VudGF0aW9uOjpwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yUHJlc2VudGF0aW9uOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxlcy9wcmVz
ZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uOjpQcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9u
Ojp+UHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvbjo6ZGVmYXVs
dFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpzZXREZWZhdWx0UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb246OmdldFNlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpnZXRTZXNzaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVzZW50YXRpb246OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJlc2VudGF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKToKKyAgICAgICAgKiBNb2R1
bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OlByZXNlbnRhdGlvbkF2YWlsYWJp
bGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6On5QcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uQXZh
aWxhYmlsaXR5OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFp
bGFiaWxpdHk6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5OjphY3RpdmVET01PYmplY3ROYW1lKToKKyAgICAgICAgKiBN
b2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OnZhbHVlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6UHJlc2VudGF0aW9u
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0Ojp+UHJlc2Vu
dGF0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0Ojpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0OjpyZWNvbm5lY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6Z2V0QXZhaWxhYmlsaXR5
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblJlcXVlc3Q6OmNhblN1c3BlbmRGb3JQ
YWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSk6CisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0
aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb25SZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRp
b24vUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uU2Vzc2lvbjo6Y29ubmVjdGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVjdGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlc2VudGF0aW9uU2Vzc2lvbjo6cmVzdW1lZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXNlbnRhdGlvblNlc3Npb246OmJsb2JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRh
dGlvblNlc3Npb246OmFycmF5YnVmZmVyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50
YXRpb25TZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vz
c2lvbjo6UHJlc2VudGF0aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRp
b25TZXNzaW9uOjp+UHJlc2VudGF0aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVz
ZW50YXRpb25TZXNzaW9uOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25TZXNz
aW9uOjpzZXRCaW5hcnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Np
b246OnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Npb246OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Npb246OnNlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25TZXNzaW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNz
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6c3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6YmluYXJ5VHlwZSk6
CisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uU2Vzc2lvbi5pZGw6
IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFByZXNlbnRhdGlvbkFQSUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6cHJlc2Vu
dGF0aW9uQVBJRW5hYmxlZCk6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAyMDE1LTA5LTE0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdl
ZCBidWlsZCBmaXggYWZ0ZXIgcjE4OTc0NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggOTFjYzYyMjZhYTY3NzcyYzNiZTc4MmNlOGViZjQ2MzhkNzBjYzRkNS4uYWRmMTIwZDBjMDA5
NWRiMWU5NmY2YWE0Yjk0OTQyZWZjNDcxYmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC00MCw2ICs0MCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9wbHVnaW5zIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHJl
c2VudGF0aW9uIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zcGVlY2ggXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zIFwKQEAg
LTE2MSw2ICsxNjIsMTEgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2Nv
cGVOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3BsdWdpbnMvUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHJl
c2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJl
c2VudGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWYzZWZkMGJiYTlkM2MxMTEwMzEzOTNhYjYxNzkz
YzIyMzk1Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVz
ZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvclByZXNlbnRhdGlv
bi5oIgorCisjaWYgRU5BQkxFKFBSRVNFTlRBVElPTl9BUEkpCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVk
ZSAiUHJlc2VudGF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmF2aWdhdG9yUHJl
c2VudGF0aW9uOjpOYXZpZ2F0b3JQcmVzZW50YXRpb24oRnJhbWUqIGZyYW1lKQorICAgIDogRE9N
V2luZG93UHJvcGVydHkoZnJhbWUpCit7Cit9CisKK05hdmlnYXRvclByZXNlbnRhdGlvbjo6fk5h
dmlnYXRvclByZXNlbnRhdGlvbigpCit7Cit9CisKK05hdmlnYXRvclByZXNlbnRhdGlvbiogTmF2
aWdhdG9yUHJlc2VudGF0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIE5h
dmlnYXRvclByZXNlbnRhdGlvbiogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvclBy
ZXNlbnRhdGlvbio+KFN1cHBsZW1lbnQ8TmF2aWdhdG9yPjo6ZnJvbShuYXZpZ2F0b3IsIHN1cHBs
ZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdT
dXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JQcmVzZW50YXRpb24+KG5hdmln
YXRvci0+ZnJhbWUoKSk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgp
OworICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1v
dmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKwor
UHJlc2VudGF0aW9uKiBOYXZpZ2F0b3JQcmVzZW50YXRpb246OnByZXNlbnRhdGlvbihOYXZpZ2F0
b3IqIG5hdmlnYXRvcikKK3sKKyAgICByZXR1cm4gTmF2aWdhdG9yUHJlc2VudGF0aW9uOjpmcm9t
KG5hdmlnYXRvciktPnByZXNlbnRhdGlvbigpOworfQorCitQcmVzZW50YXRpb24qIE5hdmlnYXRv
clByZXNlbnRhdGlvbjo6cHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcHJlc2Vu
dGF0aW9uICYmIGZyYW1lKCkpCisgICAgICAgIG1fcHJlc2VudGF0aW9uID0gUHJlc2VudGF0aW9u
OjpjcmVhdGUoKmZyYW1lKCktPmRvY3VtZW50KCkpOworICAgIHJldHVybiBtX3ByZXNlbnRhdGlv
bi5nZXQoKTsKK30KKworY29uc3QgY2hhciogTmF2aWdhdG9yUHJlc2VudGF0aW9uOjpzdXBwbGVt
ZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJOYXZpZ2F0b3JQcmVzZW50YXRpb24iOworfQorCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjRmZGM0ODgyMDMwMDQ2N2FjYTk0Mzg3M2Y4MzFlMWNjYjgxMzIxOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05h
dmlnYXRvclByZXNlbnRhdGlvbi5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IE5hdmlnYXRvclByZXNlbnRhdGlvbl9oCisjZGVmaW5lIE5hdmlnYXRvclByZXNlbnRhdGlvbl9o
CisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1ZGUgIkRPTVdpbmRvd1By
b3BlcnR5LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQcmVzZW50YXRpb247CitjbGFzcyBOYXZpZ2F0b3I7CisKK2NsYXNzIE5h
dmlnYXRvclByZXNlbnRhdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4sIHB1Ymxp
YyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgTmF2aWdhdG9yUHJlc2VudGF0aW9u
KEZyYW1lKik7CisgICAgdmlydHVhbCB+TmF2aWdhdG9yUHJlc2VudGF0aW9uKCk7CisgICAgc3Rh
dGljIE5hdmlnYXRvclByZXNlbnRhdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKKworICAgIHN0YXRp
YyBQcmVzZW50YXRpb24qIHByZXNlbnRhdGlvbihOYXZpZ2F0b3IqKTsKKyAgICBQcmVzZW50YXRp
b24qIHByZXNlbnRhdGlvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgbXV0YWJsZSBSZWZQdHI8UHJlc2VudGF0aW9u
PiBtX3ByZXNlbnRhdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRp
b24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3ZWViMjU2MzYxZDA1OWI3MTlkMTBkMDYyZjU1NDI2NWE4MWQz
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlv
bi9OYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRsCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitb
IENvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkgXQorcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdh
dG9yIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJlc2VudGF0aW9uIHByZXNlbnRhdGlvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2Vu
dGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWFkNzE0NzQzMjI2MTBiYTZlYzU4OGExMzY1YmU4OTg1
NDA0NWMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50
YXRpb24vUHJlc2VudGF0aW9uLmNwcApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXNlbnRhdGlvbi5oIgorCisjaWYgRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCisKKyNpbmNsdWRlICJQcmVzZW50YXRpb25SZXF1ZXN0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByZXNlbnRhdGlvbj4gUHJlc2VudGF0aW9uOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UHJl
c2VudGF0aW9uPiBwcmVzZW50YXRpb24oYWRvcHRSZWYobmV3IFByZXNlbnRhdGlvbihjb250ZXh0
KSkpOworICAgIHByZXNlbnRhdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHBy
ZXNlbnRhdGlvbi5yZWxlYXNlTm9uTnVsbCgpOworfQorCitQcmVzZW50YXRpb246OlByZXNlbnRh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KCZjb250ZXh0KQoreworfQorCitQcmVzZW50YXRpb246On5QcmVzZW50YXRpb24oKQorewor
fQorCitQcmVzZW50YXRpb25SZXF1ZXN0KiBQcmVzZW50YXRpb246OmRlZmF1bHRSZXF1ZXN0KGJv
b2wmIGlzTnVsbCkgY29uc3QKK3sKKyAgICBpc051bGwgPSBtX2RlZmF1bHRSZXF1ZXN0OworICAg
IHJldHVybiBtX2RlZmF1bHRSZXF1ZXN0LmdldCgpOworfQorCit2b2lkIFByZXNlbnRhdGlvbjo6
c2V0RGVmYXVsdFJlcXVlc3QoUHJlc2VudGF0aW9uUmVxdWVzdCogZGVmYXVsdFJlcXVlc3QpCit7
CisgICAgaWYgKGRlZmF1bHRSZXF1ZXN0ID09IG1fZGVmYXVsdFJlcXVlc3QpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2RlZmF1bHRSZXF1ZXN0ID0gZGVmYXVsdFJlcXVlc3Q7Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uOjpnZXRTZXNzaW9uKFByZXNlbnRhdGlvblNlc3Npb25Qcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQKKyAgICBwcm9taXNlLnJlamVjdChudWxs
cHRyKTsKK30KKwordm9pZCBQcmVzZW50YXRpb246OmdldFNlc3Npb25zKFByZXNlbnRhdGlvblNl
c3Npb25TZXF1ZW5jZVByb21pc2UmJiBwcm9taXNlKQoreworICAgIC8vIFRPRE86IGltcGxlbWVu
dAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCitib29sIFByZXNlbnRhdGlvbjo6
Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0Cit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IGNoYXIqIFByZXNlbnRhdGlvbjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJQcmVzZW50YXRpb24iOworfQor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjE1OGE2Y2QwOWE3YzY2N2I0YzljOGQ2YTVmZmVkNTU5NmI0NDI5OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5oCkBA
IC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFByZXNlbnRhdGlvbl9oCisjZGVmaW5l
IFByZXNlbnRhdGlvbl9oCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlc2VudGF0
aW9uUmVxdWVzdDsKK2NsYXNzIFByZXNlbnRhdGlvblNlc3Npb247CisKK2NsYXNzIFByZXNlbnRh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFByZXNlbnRhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmUHRyPFByZXNlbnRhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyAgICB2aXJ0dWFsIH5QcmVzZW50YXRpb24oKTsKKworICAgIFByZXNlbnRhdGlvblJlcXVl
c3QqIGRlZmF1bHRSZXF1ZXN0KGJvb2wmIGlzTnVsbCkgY29uc3Q7CisgICAgdm9pZCBzZXREZWZh
dWx0UmVxdWVzdChQcmVzZW50YXRpb25SZXF1ZXN0Kik7CisKKyAgICB0eXBlZGVmIERPTVByb21p
c2U8UHJlc2VudGF0aW9uU2Vzc2lvbiYsIHN0ZDo6bnVsbHB0cl90PiBQcmVzZW50YXRpb25TZXNz
aW9uUHJvbWlzZTsKKyAgICB0eXBlZGVmIERPTVByb21pc2U8VmVjdG9yPFJlZlB0cjxQcmVzZW50
YXRpb25TZXNzaW9uPj4sIHN0ZDo6bnVsbHB0cl90PiBQcmVzZW50YXRpb25TZXNzaW9uU2VxdWVu
Y2VQcm9taXNlOworCisgICAgdm9pZCBnZXRTZXNzaW9uKFByZXNlbnRhdGlvblNlc3Npb25Qcm9t
aXNlJiYpOworICAgIHZvaWQgZ2V0U2Vzc2lvbnMoUHJlc2VudGF0aW9uU2Vzc2lvblNlcXVlbmNl
UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uPjo6cmVmOwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uPjo6ZGVyZWY7CisKK3ByaXZhdGU6Cisg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZl
bnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQcmVzZW50YXRpb25F
dmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQcmVzZW50
YXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIFJlZlB0cjxQcmVzZW50YXRpb25S
ZXF1ZXN0PiBtX2RlZmF1bHRSZXF1ZXN0OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyYWY2ODhmZjI1
YTkyNWM5ZGU3ZTA5MGJmZWQ2ZWQzZTgwNWM2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJLAorICAg
IENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICBBY3RpdmVE
T01PYmplY3QsCitdCitpbnRlcmZhY2UgUHJlc2VudGF0aW9uIDogRXZlbnRUYXJnZXQgeworICAg
IGF0dHJpYnV0ZSBQcmVzZW50YXRpb25SZXF1ZXN0PyBkZWZhdWx0UmVxdWVzdDsKKyAgICBQcm9t
aXNlIGdldFNlc3Npb24oKTsKKyAgICBQcm9taXNlIGdldFNlc3Npb25zKCk7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNlc3Npb25hdmFpbGFibGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlOTBkMDVkZWRkMmFlZjI5ZmQ0ZTVjYWNjNjY0
YTVlYzg0MTc2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJl
c2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVzZW50YXRpb25BdmFp
bGFiaWxpdHkuaCIKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZlB0cjxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk+IFByZXNlbnRhdGlv
bkF2YWlsYWJpbGl0eTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7
CisgICAgUmVmUHRyPFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT4gcHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5KGFkb3B0UmVmKG5ldyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoY29udGV4dCkpKTsK
KyAgICBwcmVzZW50YXRpb25BdmFpbGFiaWxpdHktPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBwcmVzZW50YXRpb25BdmFpbGFiaWxpdHkucmVsZWFzZU5vbk51bGwoKTsKK30KKworUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5OjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
K3sKK30KKworUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Ojp+UHJlc2VudGF0aW9uQXZhaWxhYmls
aXR5KCkKK3sKK30KKwordm9pZCBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OnNldFZhbHVlKGJv
b2wgdmFsdWUpCit7CisgICAgaWYgKG1fdmFsdWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsK
KyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgLy8gVE9ETzogaW1wbGVtZW50Cit9CisKK2Jvb2wg
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5OjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QK
K3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3Qg
Y2hhciogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eSI7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNjEzMDM5YTUyMTQwZDVlMzMxNWQ2MGU5ZWRhZTdkMDk4OGYxZDdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24v
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5X2gKKyNkZWZpbmUgUHJlc2VudGF0aW9uQXZh
aWxhYmlsaXR5X2gKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6CisgICAgUmVmUHRyPFBy
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
KyAgICB2aXJ0dWFsIH5QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoKTsKKworICAgIGJvb2wgdmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFBy
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNl
bnRhdGlvbkF2YWlsYWJpbGl0eT46OmRlcmVmOworCitwcml2YXRlOgorICAgIC8vIEV2ZW50VGFy
Z2V0IGludGVyZmFjZQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUHJlc2VudGF0
aW9uQXZhaWxhYmlsaXR5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2b2lkIHNldFZh
bHVlKGJvb2wpOworCisgICAgYm9vbCBtX3ZhbHVlIHsgZmFsc2UgfTsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0
eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25B
dmFpbGFiaWxpdHkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMjQ5N2IyMDAzY2QxNTYyZDY1ZTE0ZDA5N2Fi
MWE4YjA4ZmI4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3By
ZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsCkBAIC0wLDAgKzEsMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSSwKKyAgICBDb25z
dHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQWN0aXZlRE9NT2Jq
ZWN0LAorXQorICAgIGludGVyZmFjZSBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkgOiBFdmVudFRh
cmdldCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmFsdWU7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmNoYW5nZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI2ZTU1NTdlN2M5ODA2ZTdiZTc0YWE3YTYyZDFkMWY0YjkzNmE3NjcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRp
b25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlByZXNlbnRhdGlvblJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShQUkVT
RU5UQVRJT05fQVBJKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxQcmVzZW50YXRpb25SZXF1ZXN0PiBQcmVzZW50
YXRpb25SZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCit7CisgICAgVVJMIHVybCA9IGNvbnRleHQuY29tcGxldGVV
UkwodXJsU3RyaW5nKTsKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIFJlZlB0cjxQcmVzZW50YXRpb25SZXF1ZXN0PiBwcmVzZW50YXRpb25SZXF1
ZXN0KGFkb3B0UmVmKG5ldyBQcmVzZW50YXRpb25SZXF1ZXN0KGNvbnRleHQsIFdURjo6bW92ZSh1
cmwpKSkpOworICAgIHByZXNlbnRhdGlvblJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiBwcmVzZW50YXRpb25SZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCk7Cit9CisKK1ByZXNl
bnRhdGlvblJlcXVlc3Q6OlByZXNlbnRhdGlvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVVJMJiYgdXJsKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQor
ICAgICwgbV91cmwodXJsKQoreworfQorCitQcmVzZW50YXRpb25SZXF1ZXN0Ojp+UHJlc2VudGF0
aW9uUmVxdWVzdCgpCit7Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uUmVxdWVzdDo6c3RhcnQoUHJl
c2VudGF0aW9uU2Vzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIC8vIFRPRE86IGltcGxl
bWVudAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCit2b2lkIFByZXNlbnRhdGlv
blJlcXVlc3Q6OnJlY29ubmVjdChjb25zdCBTdHJpbmcmLCBQcmVzZW50YXRpb25TZXNzaW9uUHJv
bWlzZSYmIHByb21pc2UpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50CisgICAgcHJvbWlzZS5y
ZWplY3QobnVsbHB0cik7Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uUmVxdWVzdDo6Z2V0QXZhaWxh
YmlsaXR5KFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eVByb21pc2UmJiBwcm9taXNlKQoreworICAg
IC8vIFRPRE86IGltcGxlbWVudAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCiti
b29sIFByZXNlbnRhdGlvblJlcXVlc3Q6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAor
eworICAgIC8vIFRPRE86IGltcGxlbWVudAorICAgIHJldHVybiB0cnVlOworfQorCitjb25zdCBj
aGFyKiBQcmVzZW50YXRpb25SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIlByZXNlbnRhdGlvblJlcXVlc3QiOworfQorCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjM5
NDg0ZWIwNTY5NmQ2YmI5OWUwYzg2ZDEzYmQ2ZDRjN2IzMGNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5o
CkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFByZXNlbnRhdGlvblJlcXVlc3Rf
aAorI2RlZmluZSBQcmVzZW50YXRpb25SZXF1ZXN0X2gKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJ
T05fQVBJKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk7CitjbGFz
cyBQcmVzZW50YXRpb25TZXNzaW9uOworCitjbGFzcyBQcmVzZW50YXRpb25SZXF1ZXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uUmVxdWVzdD4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmUHRyPFByZXNlbnRhdGlvblJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwgflByZXNlbnRhdGlvblJlcXVl
c3QoKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxQcmVzZW50YXRpb25TZXNzaW9uJiwgc3Rk
OjpudWxscHRyX3Q+IFByZXNlbnRhdGlvblNlc3Npb25Qcm9taXNlOworICAgIHR5cGVkZWYgRE9N
UHJvbWlzZTxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkmLCBzdGQ6Om51bGxwdHJfdD4gUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5UHJvbWlzZTsKKworICAgIHZvaWQgc3RhcnQoUHJlc2VudGF0aW9u
U2Vzc2lvblByb21pc2UmJik7CisgICAgdm9pZCByZWNvbm5lY3QoY29uc3QgU3RyaW5nJiwgUHJl
c2VudGF0aW9uU2Vzc2lvblByb21pc2UmJik7CisgICAgdm9pZCBnZXRBdmFpbGFiaWxpdHkoUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
UHJlc2VudGF0aW9uUmVxdWVzdD46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNlbnRh
dGlvblJlcXVlc3Q+OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICAvLyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFByZXNlbnRhdGlvblJlcXVlc3RFdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYo
KTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kRm9y
UGFnZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQcmVzZW50YXRpb25SZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJik7CisgICAgVVJMIG1fdXJsOworfTsKKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKFBSRVNFTlRBVElPTl9BUEkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVz
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25S
ZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2NkNTdkZTcxOTc1NmU1ZjQ1ZmViMGM4OWFhMmI4NTU1
YzcyODFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50
YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdXJsKSwKKyAgICBDb25zdHJ1Y3RvckNhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQ29uZGl0aW9uYWw9UFJFU0VOVEFUSU9O
X0FQSSwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgSlNHZW5lcmF0ZVRvSlNP
YmplY3QsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorXQoraW50ZXJmYWNlIFByZXNlbnRhdGlvblJl
cXVlc3QgOiBFdmVudFRhcmdldCB7CisgICAgUHJvbWlzZSBzdGFydCgpOworICAgIFByb21pc2Ug
cmVjb25uZWN0KERPTVN0cmluZyBwcmVzZW50YXRpb25JZCk7CisgICAgUHJvbWlzZSBnZXRBdmFp
bGFiaWxpdHkoKTsKKworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZXNzaW9uY29ubmVj
dDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9Q
cmVzZW50YXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0
aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NTFmOTlmNTgxOTAxYjNi
ZmFhZWMyNDA2OTI0NGE2ZTQ5MjI1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmNwcApAQCAtMCwwICsx
LDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVzZW50
YXRpb25TZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0
IEF0b21pY1N0cmluZyYgUHJlc2VudGF0aW9uU2Vzc2lvbjo6Y29ubmVjdGVkU3RhdGUoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNvbm5lY3RlZCgiY29ubmVj
dGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIGNv
bm5lY3RlZC5nZXQoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBQcmVzZW50YXRpb25TZXNz
aW9uOjpkaXNjb25uZWN0ZWRTdGF0ZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gZGlzY29ubmVjdGVkKCJkaXNjb25uZWN0ZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gZGlzY29ubmVjdGVkLmdldCgpOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Npb246OnJlc3VtZWRTdGF0ZSgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVzdW1lZCgicmVz
dW1lZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHJldHVybiBy
ZXN1bWVkLmdldCgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Np
b246OmJsb2JUeXBlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBibG9iKCJibG9iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
cmV0dXJuIGJsb2IuZ2V0KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgUHJlc2VudGF0aW9u
U2Vzc2lvbjo6YXJyYXlidWZmZXJUeXBlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJyYXlidWZmZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gYXJyYXlidWZmZXIuZ2V0KCk7Cit9CisK
K1JlZlB0cjxQcmVzZW50YXRpb25TZXNzaW9uPiBQcmVzZW50YXRpb25TZXNzaW9uOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UHJlc2VudGF0
aW9uU2Vzc2lvbj4gcHJlc2VudGF0aW9uU2Vzc2lvbihhZG9wdFJlZihuZXcgUHJlc2VudGF0aW9u
U2Vzc2lvbihjb250ZXh0KSkpOworICAgIHByZXNlbnRhdGlvblNlc3Npb24tPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiBwcmVzZW50YXRpb25TZXNzaW9uLnJlbGVhc2VOb25OdWxsKCk7
Cit9CisKK1ByZXNlbnRhdGlvblNlc3Npb246OlByZXNlbnRhdGlvblNlc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
K3sKK30KKworUHJlc2VudGF0aW9uU2Vzc2lvbjo6flByZXNlbnRhdGlvblNlc3Npb24oKQorewor
fQorCitjb25zdCBTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Npb246OmlkKGJvb2wmIGlzTnVsbCkg
Y29uc3QKK3sKKyAgICBpc051bGwgPSBtX2lkLmlzTnVsbCgpOworICAgIHJldHVybiBtX2lkOwor
fQorCit2b2lkIFByZXNlbnRhdGlvblNlc3Npb246OnNldEJpbmFyeVR5cGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlKQoreworICAgIGlmIChtX3R5cGUgPT0gdHlwZSkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uU2Vzc2lvbjo6c2V0U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkK
K3sKKyAgICBpZiAobV9zdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3Rh
dGUgPSBzdGF0ZTsKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQKK30KKwordm9pZCBQcmVzZW50YXRp
b25TZXNzaW9uOjpjbG9zZSgpCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uU2Vzc2lvbjo6c2VuZChjb25zdCBTdHJpbmcmKQoreworICAgIC8vIFRPRE86
IEltcGxlbWVudAorfQorCit2b2lkIFByZXNlbnRhdGlvblNlc3Npb246OnNlbmQoY29uc3QgQmxv
YiopCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uU2Vz
c2lvbjo6c2VuZChjb25zdCBKU0M6OkFycmF5QnVmZmVyKikKK3sKKyAgICAvLyBUT0RPOiBJbXBs
ZW1lbnQKK30KKwordm9pZCBQcmVzZW50YXRpb25TZXNzaW9uOjpzZW5kKGNvbnN0IEpTQzo6QXJy
YXlCdWZmZXJWaWV3KikKK3sKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQKK30KKworYm9vbCBQcmVz
ZW50YXRpb25TZXNzaW9uOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKK3sKKyAgICAv
LyBUT0RPOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3QgY2hhciogUHJl
c2VudGF0aW9uU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJQcmVzZW50YXRpb25SZXF1ZXN0IjsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNl
bnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3By
ZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJjMDNmYTEwNGQx
ZDRkMmQ1MzEwYzcyMjBiNDk0YTU0OTg4ZGQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uaApAQCAtMCww
ICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQcmVzZW50YXRpb25TZXNzaW9uX2gKKyNkZWZp
bmUgUHJlc2VudGF0aW9uU2Vzc2lvbl9oCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkK
KworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBKU0MgeworY2xhc3MgQXJyYXlCdWZmZXI7CitjbGFzcyBBcnJheUJ1ZmZlclZp
ZXc7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQmxvYjsKKworY2xhc3MgUHJl
c2VudGF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFByZXNlbnRhdGlvblNlc3Npb24+
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29ubmVjdGVkU3Rh
dGUoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXNjb25uZWN0ZWRTdGF0ZSgp
OworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHJlc3VtZWRTdGF0ZSgpOworCisgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYmxvYlR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBhcnJheWJ1ZmZlclR5cGUoKTsKKworICAgIFJlZlB0cjxQcmVzZW50YXRp
b25TZXNzaW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwg
flByZXNlbnRhdGlvblNlc3Npb24oKTsKKworICAgIGNvbnN0IFN0cmluZyYgaWQoYm9vbCYgaXNO
dWxsKSBjb25zdDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZTsgfQorCisgICAgdm9pZCBzZXRCaW5hcnlUeXBlKGNvbnN0IEF0b21pY1N0cmlu
ZyYpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYmluYXJ5VHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorCisgICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgc2VuZChjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHNlbmQoY29uc3QgQmxvYiopOworICAgIHZvaWQgc2VuZChjb25zdCBK
U0M6OkFycmF5QnVmZmVyKik7CisgICAgdm9pZCBzZW5kKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXJW
aWV3Kik7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNlbnRhdGlvblNlc3Npb24+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxQcmVzZW50YXRpb25TZXNzaW9uPjo6ZGVyZWY7CisKK3By
aXZhdGU6CisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQcmVz
ZW50YXRpb25TZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRl
OworCisgICAgUHJlc2VudGF0aW9uU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Cisg
ICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAgIFN0cmluZyBtX2lk
OworICAgIEF0b21pY1N0cmluZyBtX3N0YXRlOworICAgIEF0b21pY1N0cmluZyBtX3R5cGU7Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRp
b25TZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNl
bnRhdGlvblNlc3Npb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYmY1ODYwOTE1ZDk1NjFhNzk4YWRiOTE2
YjYwNWJjMjlhOGIxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmlkbApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworZW51bSBQcmVzZW50YXRpb25TZXNzaW9uU3RhdGUgeworICAgICJjb25uZWN0ZWQi
LAorICAgICJkaXNjb25uZWN0ZWQiLAorICAgICJyZXN1bWVkIgorfTsKKworZW51bSBCaW5hcnlU
eXBlIHsKKyAgICAiYmxvYiIsCisgICAgImFycmF5YnVmZmVyIgorfTsKKworWworICAgIENvbmRp
dGlvbmFsPVBSRVNFTlRBVElPTl9BUEksCisgICAgQWN0aXZlRE9NT2JqZWN0LAorXQoraW50ZXJm
YWNlIFByZXNlbnRhdGlvblNlc3Npb24gOiBFdmVudFRhcmdldCB7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZz8gaWQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByZXNlbnRhdGlv
blNlc3Npb25TdGF0ZSBzdGF0ZTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOworCisgICAgLy8gQ29tbXVuaWNhdGlvbgorICAgIGF0
dHJpYnV0ZSBCaW5hcnlUeXBlIGJpbmFyeVR5cGU7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbm1lc3NhZ2U7CisgICAgdm9pZCBzZW5kKERPTVN0cmluZyBtZXNzYWdlKTsKKyAgICB2b2lk
IHNlbmQoQmxvYiBkYXRhKTsKKyAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0YSk7CisgICAg
dm9pZCBzZW5kKEFycmF5QnVmZmVyVmlldyBkYXRhKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTRlYzg1YWRhZmVmMTEx
NTBlYmQzODY4ODZjM2VkYTQ4MzM3YWY1NC4uNDY5NGE1ZDhjZWY2OWE3ZTkyNzVmMTFkODcyMTNi
OGU2MTliZTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTc5OSw2ICs1Nzk5LDI2IEBACiAJCUNEMzM2RjY0MTdGQTBBNEQw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGLmggKi87IH07CiAJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQy5jcHAgKi87IH07CiAJCUNEMzM2RjY4MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMzM2RjY2MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUFWRk9iakMuaCAqLzsgfTsKKwkJQ0QzNjM4OEYxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNl
bnRhdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QzNjM4OEQxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24u
Y3BwICovOyB9OworCQlDRDM2Mzg5MDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
NjM4OEUxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24uaCAqLzsgfTsKKwkJ
Q0QzNjM4OTQxQkEzNkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5MjFC
QTM2QUQ4MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCAqLzsgfTsKKwkJ
Q0QzNjM4OTUxQkEzNkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4OTMxQkEz
NkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oICovOyB9OworCQlDRDM2
Mzg5OTFCQTM2QUZDMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5NzFCQTM2QUZDMDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgKi87IH07CisJCUNEMzYzODlBMUJBMzZB
RkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5ODFCQTM2QUZDMDA4N0UwN0QgLyogUHJl
c2VudGF0aW9uUmVxdWVzdC5oICovOyB9OworCQlDRDM2Mzg5RTFCQTM2QjFFMDA4N0UwN0QgLyog
UHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMzYzODlDMUJBMzZCMUUwMDg3RTA3RCAvKiBQcmVzZW50YXRpb24uY3BwICovOyB9
OworCQlDRDM2Mzg5RjFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5RDFCQTM2QjFFMDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uLmggKi87IH07CisJCUNEMzYzOEE0MUJBMzg5QzYwMDg3RTA3
RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QTIxQkEzODlDNjAwODdFMDdEIC8qIE5hdmlnYXRv
clByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJCUNEMzYzOEE1MUJBMzg5QzYwMDg3RTA3RCAvKiBO
YXZpZ2F0b3JQcmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMzYzOEEzMUJBMzg5QzYwMDg3RTA3RCAvKiBOYXZpZ2F0b3JQcmVzZW50
YXRpb24uaCAqLzsgfTsKKwkJQ0QzNjM4QUUxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzYzOEE2MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJCUNE
MzYzOEFGMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QTcxQkEzOTBENjAwODdFMDdE
IC8qIEpTUHJlc2VudGF0aW9uLmggKi87IH07CisJCUNEMzYzOEIwMUJBMzkwRDYwMDg3RTA3RCAv
KiBKU1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2MzhBODFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkuY3BwICovOyB9OworCQlDRDM2MzhCMTFCQTM5MEQ2MDA4N0Uw
N0QgLyogSlNQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEE5MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1By
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oICovOyB9OworCQlDRDM2MzhCMjFCQTM5MEQ2MDA4N0Uw
N0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEFBMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNl
bnRhdGlvblJlcXVlc3QuY3BwICovOyB9OworCQlDRDM2MzhCMzFCQTM5MEQ2MDA4N0UwN0QgLyog
SlNQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDM2MzhBQjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25S
ZXF1ZXN0LmggKi87IH07CisJCUNEMzYzOEI0MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRh
dGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzNjM4QUMxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5j
cHAgKi87IH07CisJCUNEMzYzOEI1MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNl
c3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzYzOEFEMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uaCAqLzsgfTsK
KwkJQ0QzNjM4QjgxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEI2
MUJBMzkwRTMwMDg3RTA3RCAvKiBKU05hdmlnYXRvclByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJ
CUNEMzYzOEI5MUJBMzkwRTMwMDg3RTA3RCAvKiBKU05hdmlnYXRvclByZXNlbnRhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QjcxQkEz
OTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmggKi87IH07CiAJCUNEMzdC
Mzk4MTVDMUI5NzEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzN0IzNzQxNUMxQTdFMTAw
NkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgKi87IH07CiAJCUNEM0E0OTVFMTdB
OUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1NTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0
OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovOyB9OwpAQCAtMTM0NTYsNiAr
MTM0NzYsMzEgQEAKIAkJQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2
YXRlQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzM2RjY1MTdGQTBBQzYw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0QzNjM4OEMxQkEzNkFBQjAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24uaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFByZXNlbnRhdGlvblNlc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDM2Mzg4RDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVzZW50YXRpb25TZXNzaW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OEUxQkEzNkFCNzAwODdFMDdEIC8q
IFByZXNlbnRhdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHJlc2VudGF0aW9uU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2
Mzg5MTFCQTM2QUNCMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDM2Mzg5MjFCQTM2QUQ4MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzODkzMUJB
MzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzODk2MUJBMzZBRUYwMDg3RTA3RCAvKiBQcmVzZW50
YXRpb25SZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQcmVzZW50YXRpb25SZXF1ZXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OTcxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRh
dGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJl
c2VudGF0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYz
ODk4MUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZXNlbnRhdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OUIxQkEzNkIxNDAwODdFMDdEIC8qIFByZXNlbnRhdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUHJlc2VudGF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0QzNjM4OUMxQkEzNkIxRTAwODdFMDdEIC8qIFByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVzZW50YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDM2Mzg5RDFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZXNlbnRhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2MzhBMTFCQTM4OTkxMDA4N0UwN0QgLyog
TmF2aWdhdG9yUHJlc2VudGF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2MzhBMjFCQTM4OUM2MDA4N0UwN0Qg
LyogTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5hdmlnYXRvclByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMzYzOEEzMUJBMzg5QzYwMDg3RTA3RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yUHJlc2VudGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEE2MUJBMzkwRDYwMDg3
RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU1ByZXNlbnRhdGlvbi5jcHA7IHBhdGggPSBKU1ByZXNlbnRhdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEE3MUJBMzkwRDYwMDg3RTA3RCAvKiBK
U1ByZXNlbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1ByZXNl
bnRhdGlvbi5oOyBwYXRoID0gSlNQcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QzNjM4QTgxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5LmNwcDsgcGF0aCA9IEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QTkxQkEzOTBENjAwODdF
MDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmg7IHBhdGggPSBKU1ByZXNl
bnRhdGlvbkF2YWlsYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2
MzhBQTFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uUmVxdWVzdC5jcHA7
IHBhdGggPSBKU1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDM2MzhBQjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uUmVxdWVz
dC5oOyBwYXRoID0gSlNQcmVzZW50YXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMzYzOEFDMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNQcmVzZW50YXRp
b25TZXNzaW9uLmNwcDsgcGF0aCA9IEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEFEMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNl
bnRhdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNQcmVz
ZW50YXRpb25TZXNzaW9uLmg7IHBhdGggPSBKU1ByZXNlbnRhdGlvblNlc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QjYxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2
aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yUHJlc2Vu
dGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QjcxQkEzOTBF
MzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmg7IHBhdGggPSBKU05hdmln
YXRvclByZXNlbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDM3QjM3
NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBE
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
M0E0OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNTM1OCw2ICsxNTQwMyw3IEBACiAJCQkJMzM1MDNDOUMxMDE3OUE5QTAw
M0I0N0UxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJMUFDMjI2MDIwREI2OUVBNzAwODlCNjY5
IC8qIE9mZmxpbmUgKi8sCiAJCQkJQTlEMjQ3RjkwRDc1N0U0MTAwRkRGOTU5IC8qIFBsdWdpbnMg
Ki8sCisJCQkJQ0QzNjM4QTAxQkEzNzRGQTAwODdFMDdEIC8qIFByZXNlbnRhdGlvbiAqLywKIAkJ
CQk4OUY2MEIxNzE1N0Y2QTAyMDA3NUUxNTcgLyogUXVvdGEgKi8sCiAJCQkJQkM5ODU0NDYwQ0Qz
REE1RjAwMDY5QkMxIC8qIFJhbmdlcyAqLywKIAkJCQlBQTdGRUU5QjE2QTQ5MUExMDA0QzBDMzMg
LyogU3BlZWNoICovLApAQCAtMTg2ODksNiArMTg3MzUsNyBAQAogCQkJCUIxQTk0MkREMTVCNUNF
MjIwMEQ1MjVEMSAvKiBtZWRpYXNvdXJjZSAqLywKIAkJCQkwNzIyMUI0NjE3Q0VDMzI3MDA4NDhF
NTEgLyogbWVkaWFzdHJlYW0gKi8sCiAJCQkJMzMzRjcwM0QwRkI0OUMxNjAwOEUxMkE2IC8qIG5v
dGlmaWNhdGlvbnMgKi8sCisJCQkJQ0QzNjM4OEIxQkEzNkE2RDAwODdFMDdEIC8qIHByZXNlbnRh
dGlvbiAqLywKIAkJCQkwNzJBRTFERTE4M0MwNTEzMDAwQTU5ODggLyogcGx1Z2lucyAqLywKIAkJ
CQk4OUY2MEIwODE1N0Y2ODM1MDA3NUUxNTcgLyogcXVvdGEgKi8sCiAJCQkJQUEyQTVBQjcxNkE0
ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLywKQEAgLTIyMTk0LDYgKzIyMjQxLDQ1IEBACiAJCQlw
YXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0QzNjM4OEIx
QkEzNkE2RDAwODdFMDdEIC8qIHByZXNlbnRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0QzNjM4QTIxQkEzODlDNjAwODdFMDdEIC8qIE5hdmln
YXRvclByZXNlbnRhdGlvbi5jcHAgKi8sCisJCQkJQ0QzNjM4QTMxQkEzODlDNjAwODdFMDdEIC8q
IE5hdmlnYXRvclByZXNlbnRhdGlvbi5oICovLAorCQkJCUNEMzYzOEExMUJBMzg5OTEwMDg3RTA3
RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRsICovLAorCQkJCUNEMzYzODlDMUJBMzZCMUUw
MDg3RTA3RCAvKiBQcmVzZW50YXRpb24uY3BwICovLAorCQkJCUNEMzYzODlEMUJBMzZCMUUwMDg3
RTA3RCAvKiBQcmVzZW50YXRpb24uaCAqLywKKwkJCQlDRDM2Mzg5QjFCQTM2QjE0MDA4N0UwN0Qg
LyogUHJlc2VudGF0aW9uLmlkbCAqLywKKwkJCQlDRDM2Mzg5MjFCQTM2QUQ4MDA4N0UwN0QgLyog
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCAqLywKKwkJCQlDRDM2Mzg5MzFCQTM2QUQ4MDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggKi8sCisJCQkJQ0QzNjM4OTExQkEz
NkFDQjAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5pZGwgKi8sCisJCQkJQ0Qz
NjM4OTcxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblJlcXVlc3QuY3BwICovLAorCQkJ
CUNEMzYzODk4MUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggKi8sCisJ
CQkJQ0QzNjM4OTYxQkEzNkFFRjAwODdFMDdEIC8qIFByZXNlbnRhdGlvblJlcXVlc3QuaWRsICov
LAorCQkJCUNEMzYzODhEMUJBMzZBQjcwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25TZXNzaW9uLmNw
cCAqLywKKwkJCQlDRDM2Mzg4RTFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lv
bi5oICovLAorCQkJCUNEMzYzODhDMUJBMzZBQUIwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25TZXNz
aW9uLmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gcHJlc2VudGF0aW9uOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQ0QzNjM4QTAxQkEzNzRGQTAwODdFMDdEIC8qIFByZXNl
bnRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Q0QzNjM4QjYxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAq
LywKKwkJCQlDRDM2MzhCNzFCQTM5MEUzMDA4N0UwN0QgLyogSlNOYXZpZ2F0b3JQcmVzZW50YXRp
b24uaCAqLywKKwkJCQlDRDM2MzhBNjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb24u
Y3BwICovLAorCQkJCUNEMzYzOEE3MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5o
ICovLAorCQkJCUNEMzYzOEE4MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbkF2YWls
YWJpbGl0eS5jcHAgKi8sCisJCQkJQ0QzNjM4QTkxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5LmggKi8sCisJCQkJQ0QzNjM4QUExQkEzOTBENjAwODdFMDdEIC8q
IEpTUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJQ0QzNjM4QUIxQkEzOTBENjAwODdF
MDdEIC8qIEpTUHJlc2VudGF0aW9uUmVxdWVzdC5oICovLAorCQkJCUNEMzYzOEFDMUJBMzkwRDYw
MDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uY3BwICovLAorCQkJCUNEMzYzOEFEMUJB
MzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uaCAqLywKKwkJCSk7CisJCQlu
YW1lID0gUHJlc2VudGF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
Q0Q2MUZFN0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlhU291cmNlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0MzgxLDYgKzI0NDY3LDcgQEAKIAkJCQlF
MUY4MEI4ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTE2NEZBQTMxODMxNUJGNDAwREI0RTYxIC8qIENyeXB0b0tleVJTQS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTEyNUY4NTYxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMzYzOEFGMUJBMzkwRDYwMDg3RTA3RCAvKiBK
U1ByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4NUExODJDMUFBNjAwRDg0
Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
OTcyNzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTcyQUY3MDE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ1MTYsNiArMjQ2MDMsNyBAQAogCQkJCTMxRUFGOTdFMTIxNDM1QTQwMEU3
QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIx
QTU5MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUZCMUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4QjkxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdh
dG9yUHJlc2VudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1RDEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QThGMUQ4
MTFBNjk1MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODA4LDYgKzI0ODk2LDcgQEAKIAkJCQk4NUU3
MTFEMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NTWVkaWFMaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc1NzkzRUQzMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1NzkzRUQ1MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdl
RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4OUYxQkEzNkIxRTAwODdF
MDdEIC8qIFByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBQ0FGNEQwRTc5MUFB
RjAwODdEMTJCIC8qIERPTU1lc3NhZ2VQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFERURE
NTBFNzZCRDYwMDA0QTFBNUUgLyogRE9NTWVzc2FnZVBvcnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTlDNkU0RTQwRDc0NUUwNTAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1OTQzLDYgKzI2MDMyLDcgQEAKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5
QjQ4QzMgLyogSlNWaWRlb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwODIx
OEE0NjBDMzAwODA2NDdFIC8qIEpTVlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIw
RDE4Q0ZCNUY0MDBDNjRCRUYgLyogSlNWVFRSZWdpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MzYzOEIzMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBRjlCMjBGMThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEODJEN0Y4MTNENEM4QkQwMDRFNDM3MiAvKiBKU1dhdmVT
aGFwZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0YzRDM2NDFBNjlCMTkwMDA1OUZDMkIg
LyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDk3LDYg
KzI2MTg3LDcgQEAKIAkJCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0ZFOTlERDE4ODA3QTdEMDAy
NTY2NDggLyogTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEz
QUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MzYzODlBMUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTZEMUVDMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBB
OEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTI2LDYgKzI2NjE3LDcg
QEAKIAkJCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVz
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNjU4NzQxODZGREU0QzAwOUMyNkU4IC8qIFJlbmRl
clB0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4QjExQkEzOTBENjAwODdFMDdEIC8qIEpT
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzMTNERjFC
Njk4OEM1MDBGMkFBQkMgLyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY1NTUsNiArMjY2NDcsNyBAQAogCQkJCTQzNjcwOEM5MTJEOUNBNEIwMDA0NDIz
NCAvKiBSZW5kZXJTVkdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTUxMjU1RTRF
NjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIw
MTcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUNEMzYzODk1MUJBMzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQURERjFBRDcxMjU3Q0Q5QTAw
MDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEJCNTg1MTQ4
NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzMz
LDYgKzI2ODI2LDcgQEAKIAkJCQk5MzFDQkQwRjE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI4ODkwRjE2N0QzMDE2
MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDM2MzhBNTFCQTM4OUM2MDA4N0UwN0QgLyogTmF2aWdhdG9yUHJlc2Vu
dGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFBRERBNDE0REI0MDlGMDBB
RjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhDMDMxNjQ0
NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLApA
QCAtMjY4MTIsNiArMjY5MDYsNyBAQAogCQkJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBBNDg0NDk5MENB
NDRDQjIwMEI3QkQ0OCAvKiBTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIzMDQz
QzcwQUUwMzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM2Mzg5
MDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzE5Niw2ICsyNzI5MSw3IEBACiAJCQkJQjJDM0RB
MzYwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkMzREEzODBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRl
eHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM2MzhCNTFCQTM5MEQ2MDA4
N0UwN0QgLyogSlNQcmVzZW50YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdE
MDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4g
SGVhZGVycyAqLywKQEAgLTI3OTgyLDYgKzI4MDc4LDcgQEAKIAkJCQlGRDMxNjAyNDEyQjAyNjc2
MDBDMUEzNTkgLyogQmlxdWFkRFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQzU0
RjA0MTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEMzE2MDI2MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4OTkxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRhdGlv
blJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg5OTQzMjkwQjQyMzM4ODAwRDdDODAy
IC8qIEJpdG1hcEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3N0EzQTkwMTVFRkNFOUIw
MDU5RjVDNyAvKiBCaXRtYXBJbWFnZUNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2Qzc4
MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5OTksNiAr
MjgwOTYsNyBAQAogCQkJCTkzMzA5RERBMDk5RTY0OTIwMDU2RTU4MSAvKiBCcmVha0Jsb2NrcXVv
dGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5QjU5NzczMTEwODY1NkIwMDcxNTlF
OCAvKiBCcmlkZ2VKU0MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E0NTAzMkYxOERCNzE3MjAw
Mzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDM2
Mzg5RTFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE1NjlDRjcwRDdFMkI4MjAwN0MzOTgzIC8qIGNfY2xhc3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlDRjkwRDdFMkI4MjAwN0MzOTgzIC8qIGNfaW5zdGFuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyNCw2ICsyODUyMiw3IEBACiAJCQkJODVERjgyMjIw
QUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk4NURGODI3MTBBQTc4QjhCMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlRWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MjI0MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1M
VGFibGVSb3dFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QTQxQkEzODlDNjAw
ODdFMDdEIC8qIE5hdmlnYXRvclByZXNlbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NURGODIyNjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFGMzBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTFRl
eHRBcmVhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OTkyRUMxMEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODY0NCw2
ICsyODc0Myw3IEBACiAJCQkJMDg1QjkyQkEwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODEzNkQzOTA5NzNBOEU3MDBENzQ0NjMgLyog
Rm9ybURhdGFMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDY2MTJEMjZFMzgwMEU3
OTQxNSAvKiBGb3JtRGF0YVN0cmVhbUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMzYz
ODk0MUJBMzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE0Qzc2NEYwQ0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFt
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU2RDM3M0IwQURCQTVERTAwQTQ1NTREIC8qIEZv
cm1TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4NUI5NDExQjZGREE2MDAzMzgzQkIg
LyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODc5NCw2ICsyODg5NCw3
IEBACiAJCQkJQThDRkY3QTUwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxRdW90ZUVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMjIzRkQxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNv
dXJjZVByZWxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREMyMjBBMTUyMDU3MDBC
MTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4
QjAxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3N0IzODc0MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVu
bmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MTM2OUQ5MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBI
VE1MU2VsZWN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNBNzBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTEw
OCw2ICsyOTIwOSw3IEBACiAJCQkJNTE4RjUwMDMxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBh
ZEJ1dHRvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTZDNjIyNTE5NTBFMkI5MDAzMzdFNzUg
LyogSlNHYW1lcGFkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MERBNjMwRTlDNDcw
MzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4
QjQxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwREE2NTBFOUM0NzAzMDAwRDZGNzUgLyogSlNH
ZW9wb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkRBN0MxRTE4ODMyMkZDMDBDOTU0
QjUgLyogSlNHZXN0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTQ5Niw2ICsyOTU5
OCw3IEBACiAJCQkJQjJGQTNERDIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERDQwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkZBM0RENjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QjgxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2
aWdhdG9yUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREQ4MEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0REQTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0REQzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQ
YXRoU2VnTW92ZXRvQWJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk1MTMsNiArMjk2MTYsNyBA
QAogCQkJCUIyRkEzREYwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1JlbmRlcmluZ0ludGVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RGMjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdT
Y3JpcHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREY0MEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR1NldEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QUUx
QkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyRkEzREY2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N0b3BFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREY4MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N0cmluZ0xpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERkEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZH
U3R5bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzOTAsNiArMzA0OTQsNyBAQAog
CQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFMzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBT
dWJyZXNvdXJjZUxvYWRlckNGLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMzYzOEIyMUJBMzkw
RDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQlFMUZGOEY1RjE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5
cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjJEODE4MEY5OTIwRUUwMDZBRTZCMiAvKiBT
dWRkZW5UZXJtaW5hdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMzA3MjQsNiArMzA4MjksNyBA
QAogCQkJCTdBOTM4Njg1MThEQ0MxNDUwMEI4MjYzRCAvKiBWVFRTY2FubmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUExNDgzMkIxMTg3RjYxRTEwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBBQUY3IC8qIERPTVBhdGgu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4OEYxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNl
bnRhdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQjMxODdGNjI5MTAw
REE2M0E2IC8qIFdBS0NsaXBWaWV3Lm0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJCNTE4N0Y2
MkZDMDBEQTYzQTYgLyogV0FLUmVzcG9uZGVyLm0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJC
NzE4N0Y2MzZDMDBEQTYzQTYgLyogV0FLU2Nyb2xsVmlldy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggYzg1NmJiMmUzOTc3YTk3YjdlZDQ2ZmJlN2RiOWQxZGY1
ZWUyOGM1MC4uZGUyOTk4ZjkxMDEwMWYyOWIwMjliMmZjYzg3MDgyZjZlOWYyMThkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xODAsNiArMTgwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHNlbGVjdCkgXAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkgXAogICAg
IG1hY3JvKHNlbGVjdHN0YXJ0KSBcCisgICAgbWFjcm8oc2Vzc2lvbmF2YWlsYWJsZSkgXAorICAg
IG1hY3JvKHNlc3Npb25jb25uZWN0KSBcCiAgICAgbWFjcm8oc2hvdykgXAogICAgIG1hY3JvKHNp
Z25hbGluZ3N0YXRlY2hhbmdlKSBcCiAgICAgbWFjcm8oc291bmRlbmQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IGFiNGZlZGJkNTcxYmUxNjM5MDNjY2Fk
YTIwNzQyNWQxNTU3NGNjMDQuLjA1YzAwMDIxMDliODNmZjI3NTIyYjFjYTNkZTg5ZDJkOWY5MWM5
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMjQsNiAr
MjQsMTAgQEAgTWVzc2FnZVBvcnQKIE5vZGUKIE5vdGlmaWNhdGlvbiBjb25kaXRpb25hbD1OT1RJ
RklDQVRJT05TfExFR0FDWV9OT1RJRklDQVRJT05TCiBQZXJmb3JtYW5jZSBjb25kaXRpb25hbD1X
RUJfVElNSU5HCitQcmVzZW50YXRpb24gY29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSQorUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5IGNvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkKK1ByZXNl
bnRhdGlvblJlcXVlc3QgY29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSQorUHJlc2VudGF0aW9u
U2Vzc2lvbiBjb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJCiBSVENEYXRhQ2hhbm5lbCBjb25k
aXRpb25hbD1NRURJQV9TVFJFQU0KIFJUQ0RUTUZTZW5kZXIgY29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNCiBSVENQZWVyQ29ubmVjdGlvbiBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
</data>
<flag name="review"
          id="286429"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>