<?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>131671</bug_id>
          
          <creation_ts>2014-04-15 00:58:07 -0700</creation_ts>
          <short_desc>REGRESSION(r167199): Caused a DYEBench regression and does not seem to improve perf on relevant websites (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2022-03-01 02:55:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>131083</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>alecflett</cc>
    
    <cc>barraclough</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>oliver</cc>
    
    <cc>philipj</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1000807</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 00:58:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/167199 broke the build:
Caused a DYEBench regression and does not seem to improve perf on relevant websites (Requested by rniwa on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000809</commentid>
    <comment_count>1</comment_count>
      <attachid>229360</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 00:58:51 -0700</bug_when>
    <thetext>Created attachment 229360
ROLLOUT of r167199

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000810</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 01:01:25 -0700</bug_when>
    <thetext>Attachment 229360 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSBoundFunction.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 68 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>1000815</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-04-15 01:34:09 -0700</bug_when>
    <thetext>Oliver, Geoff, Gavin: Please cq+ the patch if you think the rollout is the right solution here.  Unfortunately, I need to go sleep for now before mac EWS can build &amp; test this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000860</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-04-15 09:21:24 -0700</bug_when>
    <thetext>Due to http://trac.webkit.org/changeset/167297, we need to create a new rollout patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229360</attachid>
            <date>2014-04-15 00:58:51 -0700</date>
            <delta_ts>2022-03-01 02:55:28 -0800</delta_ts>
            <desc>ROLLOUT of r167199</desc>
            <filename>bug-131671-20140415005830.patch</filename>
            <type>text/plain</type>
            <size>110677</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MWE1MDQ5NTZkZTAwOWQ2NjUwMzJkYmRhYmM1ZWEyYjZlMjhiYzBlLi5kODFmZmRkZTY4OTZiYTQw
Y2I0OTIzM2I5NGFmZjhjNDNmZmE2YTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNC0wNC0xNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NzE5OSwgcjE2NzI1
MSwgYW5kIHIxNjcyNzIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzE2NzEKKworICAgICAgICBDYXVzZWQgYSBEWUVCZW5jaCByZWdyZXNzaW9uIGFu
ZCBkb2VzIG5vdCBzZWVtIHRvIGltcHJvdmUgcGVyZgorICAgICAgICBvbiByZWxldmFudCB3ZWJz
aXRlcyAoUmVxdWVzdGVkIGJ5IHJuaXdhIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVk
IGNoYW5nZXNldHM6CisKKyAgICAgICAgIlJld3JpdGUgRnVuY3Rpb24uYmluZCBhcyBhIGJ1aWx0
aW4iCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEw
ODMKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3MTk5CisKKyAg
ICAgICAgIlVwZGF0ZSB0ZXN0IHJlc3VsdCIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTY3MjUxCisKKyAgICAgICAgIkZ1bmN0aW9uLmJpbmQgaXRzZWxmIGlzIHRv
byBzbG93IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxNjM2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2NzI3Mgor
CiAyMDE0LTA0LTE0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY3MjcyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkx
NWUwZTUxNWJlMzQ1NTQ1ZGM5ZTBjZWQwOTk4Y2NlNDFjMWJmMGQuLmNiYWY1MDY2ZDFmYWMxOTVj
NWQzMjRlMmQ4NDZhMzVlODdlODg3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAx
NC0wNC0xNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKKyAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NzE5OSwgcjE2NzI1MSwgYW5kIHIxNjcyNzIu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE2NzEK
KworICAgICAgICBDYXVzZWQgYSBEWUVCZW5jaCByZWdyZXNzaW9uIGFuZCBkb2VzIG5vdCBzZWVt
IHRvIGltcHJvdmUgcGVyZgorICAgICAgICBvbiByZWxldmFudCB3ZWJzaXRlcyAoUmVxdWVzdGVk
IGJ5IHJuaXdhIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisK
KyAgICAgICAgIlJld3JpdGUgRnVuY3Rpb24uYmluZCBhcyBhIGJ1aWx0aW4iCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEwODMKKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3MTk5CisKKyAgICAgICAgIlVwZGF0ZSB0
ZXN0IHJlc3VsdCIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3
MjUxCisKKyAgICAgICAgIkZ1bmN0aW9uLmJpbmQgaXRzZWxmIGlzIHRvbyBzbG93IgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNjM2CisgICAgICAg
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2NzI3MgorCisyMDE0LTA0LTE1ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKwogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTY3Mjk4LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNjcwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKaW5kZXggOGM5NDZlODNiZmM5YjkzYjQ3ZTJmM2Y4ZmRlMzM4YTE0MzBmNWU1
Ny4uYjY3YzQwYjUwODFhOTE0ZGVlNzMyZmRjZjVlMWJjMWNkZTBiMzFkMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNyw3ICsxMjcsNiBAQCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNz
UmVmIGpzQ2xhc3MsIEpTT2JqZQogCiAgICAgSlNDYWxsYmFja0NvbnN0cnVjdG9yKiBjb25zdHJ1
Y3RvciA9IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja0NvbnN0
cnVjdG9yU3RydWN0dXJlKCksIGpzQ2xhc3MsIGNhbGxBc0NvbnN0cnVjdG9yKTsKICAgICBjb25z
dHJ1Y3Rvci0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUsIGpzUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0g
ICAgY29uc3RydWN0b3ItPnB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkucHJvdG90eXBlRm9ySGFzSW5zdGFuY2VQcml2YXRlTmFtZSwganNQcm90b3R5cGUsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICByZXR1cm4gdG9SZWYoY29uc3RydWN0
b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0
UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCmluZGV4
IDk3NTY2YjE2OTMwNTgxYjUxMGJmODQzZDQ4YzVjMGYzYzFhZjM4M2MuLjFlODcyYzdjMGI1NmMz
NDdkYjBiYzgzOGJlMzMzYTUxZGVhMmExNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNTY3JpcHRSZWYuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKIHN0YXRpYyBib29s
IHBhcnNlU2NyaXB0KFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJzZXJFcnJv
ciYgZXJyb3IpCiB7Ci0gICAgcmV0dXJuIEpTQzo6cGFyc2U8SlNDOjpQcm9ncmFtTm9kZT4odm0s
IHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNlTm9ybWFsLCBKU1BhcnNlUHJvZ3JhbUNv
ZGUsIEpTTm90RnVuY3Rpb25LaW5kLCBlcnJvcik7CisgICAgcmV0dXJuIEpTQzo6cGFyc2U8SlND
OjpQcm9ncmFtTm9kZT4odm0sIHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNlTm9ybWFs
LCBKU1BhcnNlUHJvZ3JhbUNvZGUsIGVycm9yKTsKIH0KIAogZXh0ZXJuICJDIiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWMxZjNlMzg2ODZiMzgyYzFhOGEzMmY4Mzdl
M2FmODkwOTQzMjdjYS4uMTNmODg0YTgxZTE4YWM4ZjdhYTQzODFiZWY2MTI0NDM1NTVkMTg2OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzk0LDYgKzM5NCw3IEBAIHNl
dChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90
eXBlLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCiAgICAgcnVudGltZS9K
U0FycmF5SXRlcmF0b3IuY3BwCisgICAgcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCiAgICAg
cnVudGltZS9KU0NKU1ZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSlNDZWxsLmNwcAogICAgIHJ1bnRp
bWUvSlNDb25zb2xlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5k
ZXggZDY2NmFiOWJjNDk0ODljMTUwN2U5N2EzMzdlZDVlOWE1MGI3YTAwOC4uMjEwOGY5NGZlN2Nl
NTQ0OWRhMzEwODY5NzM0MzE5MmE4ZDQ1ODRkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCkBAIC02NDAsNiArNjQwLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlCdWZmZXJWaWV3LmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNCb3VuZEZ1bmN0aW9uLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNDSlNWYWx1ZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ2VsbC5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ29uc29sZS5jcHAiIC8+CkBAIC0x
MzAwLDYgKzEzMDEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0Fy
cmF5QnVmZmVyVmlldy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxK
U0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSlNBcnJheUl0ZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEpTQm91bmRGdW5jdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccnVudGltZVxKU0NJbmxpbmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
dW50aW1lXEpTQ0pTVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSlNDSlNWYWx1ZUlubGluZXMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAzMGE5MjI3NjJjZGI1ZTk5Y2JmMGE3N2Q5N2Nh
MWI4Y2M5MjYwMTQyLi4xYjY4MWQ0ZDQ5Y2NiODRhZmYzMDQ2YmRmOWVkZGRjNGEwYmFlMzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBA
IC02MDYsNiArNjA2LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNB
cnJheS5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQm91bmRGdW5jdGlvbi5j
cHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ2VsbC5jcHAiPgogICAgICAgPEZp
bHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0yMjUyLDYgKzIyNTUs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FycmF5LmgiPgogICAg
ICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQm91bmRGdW5jdGlvbi5oIj4KKyAgICAgIDxGaWx0
ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU0NlbGwuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTI5
MTdmZjFhOGYzMzY4OTE3MjcxNjRiYjViNWU1ODI2MzhiOWFkMS4uMmMzZjE3Y2RkYzMzYzBmOTEw
ZDMxNzUzNzUyYmQzMDYyYTZkMDViYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEyMTUsNiArMTIxNSw4IEBACiAJCTg2RjNFRUJEMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2Fs
bGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZGM0VFQjkxNjhDQ0Y3NTAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmgg
Ki87IH07CiAJCTg2RjNFRUJFMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNF
RUJBMTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSAqLzsgfTsKIAkJ
ODZGM0VFQkYxNjhDREU5MzAwNzdCOTJBIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCNjE2ODU1QTVCMDA3
N0I5MkEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKKwkJODZGQTlFOTExNDJCQkIyRTAw
MTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcgLyogSlNCb3VuZEZ1
bmN0aW9uLmNwcCAqLzsgfTsKKwkJODZGQTlFOTIxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oICovOyB9OwogCQk5
MDIxM0UzRDEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDIxM0UzQjEyM0E0MEMyMDBE
NDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTkwMjEzRTNFMTIzQTQwQzIw
MEQ0MjJGMyAvKiBNZW1vcnlTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MDIxM0UzQzEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3Rh
dGlzdGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzMDUyQzM0MEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA1MkMzMjBGQjc5MjE5MDA0
OEZEQzMgLyogUGFyc2VyQXJlbmEuY3BwICovOyB9OwpAQCAtMjc4Nyw2ICsyNzg5LDggQEAKIAkJ
ODZGNzVFRkIxNTFDMDYyRjAwN0M5QkEzIC8qIFJlZ0V4cENhY2hlZFJlc3VsdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZWRSZXN1bHQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkY3NUVGQzE1MUMwNjJGMDA3QzlCQTMgLyog
UmVnRXhwQ2FjaGVkUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
Z0V4cENhY2hlZFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkY3NUVG
RDE1MUMwNjJGMDA3QzlCQTMgLyogUmVnRXhwTWF0Y2hlc0FycmF5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ0V4cE1hdGNoZXNBcnJheS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTg2RkE5RThGMTQyQkJCMkQwMDE3NzNCNyAvKiBKU0JvdW5k
RnVuY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCb3Vu
ZEZ1bmN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZGQTlFOTAxNDJC
QkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0JvdW5kRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTAyMTNFM0IxMjNBNDBDMjAwRDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5U3RhdGlzdGljcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMjEzRTNDMTIzQTQwQzIwMEQ0MjJGMyAvKiBN
ZW1vcnlTdGF0aXN0aWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9y
eVN0YXRpc3RpY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNTJDMzIwRkI3
OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhcnNlckFyZW5hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQzMTgsNiArNDMyMiw4IEBACiAJCQkJMEYyQjY2QkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oICovLAogCQkJCUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAogCQkJCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKKwkJCQk4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywKKwkJCQk4NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCiAJCQkJQkM3RjhGQkEwRTE5RDFFRjAwODYzMkMwIC8q
IEpTQ2VsbC5jcHAgKi8sCiAJCQkJQkMxMTY3RDgwRTE5QkNDOTAwODA2NkREIC8qIEpTQ2VsbC5o
ICovLAogCQkJCTBGOTc0OTZGMTY4N0FERTIwMEE0RkY2QSAvKiBKU0NlbGxJbmxpbmVzLmggKi8s
CkBAIC01OTMzLDYgKzU5MzksNyBAQAogCQkJCUE3QkRBRUNCMTdGNEVBMTQwMEY2MTQwQyAvKiBK
U0FycmF5SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE4MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBKU0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEQxN0Q3MEU4QUQ0QTkwMDBD
RDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4NkZBOUU5MjE0MkJC
QjJFMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQxOTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzQxQTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja0Z1bmN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxs
YmFja09iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTI2LDYgKzcxMzMsNyBAQAogCQkJCTBG
MkI2NkU4MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBN0JEQUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjEzNTlCMEE2NzdGNEYwMEE4MTk1RSAvKiBKU0Jhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODZGQTlFOTExNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91
bmRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRjhBRjBBNTA4RDIwMDAwNUYw
NjEgLyogSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDBG
ODkyMEE1MDhCMTAwMDA1RjA2MSAvKiBKU0NhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCmluZGV4IGQ2YzYyNDQzNzYxNjRiMmUyYjllYmIzMzM4
MzIyNGI1MGJkMGE2ODAuLjQzZTQyMWNlYjhjMTY0MTQxNzg0ZTNlNWQ5MGEwNjhiMDQ1Y2JkOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0
YWJsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhl
Y3V0YWJsZXMuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvCiB7
CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAgICBQYXJz
ZXJFcnJvciBlcnJvcjsKLSAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQ
cm9ncmFtTm9kZT4oJm1fdm0sIHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNlQnVpbHRp
biwgSlNQYXJzZVByb2dyYW1Db2RlLCBKU05vdEZ1bmN0aW9uS2luZCwgZXJyb3IsICZwb3NpdGlv
bkJlZm9yZUxhc3ROZXdsaW5lKTsKKyAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBw
YXJzZTxQcm9ncmFtTm9kZT4oJm1fdm0sIHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNl
QnVpbHRpbiwgSlNQYXJzZVByb2dyYW1Db2RlLCBlcnJvciwgJnBvc2l0aW9uQmVmb3JlTGFzdE5l
d2xpbmUpOwogCiAgICAgaWYgKCFwcm9ncmFtKSB7CiAgICAgICAgIGRhdGFMb2coIkZhdGFsIGVy
cm9yIGNvbXBpbGluZyBidWlsdGluIGZ1bmN0aW9uICciLCBuYW1lLnN0cmluZygpLCAiJzogIiwg
ZXJyb3IubV9tZXNzYWdlKTsKQEAgLTcxLDcgKzcxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3Qg
U28KICAgICBSRUxFQVNFX0FTU0VSVChib2R5KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNsb3Nl
ZFZhcmlhYmxlIDogcHJvZ3JhbS0+Y2xvc2VkVmFyaWFibGVzKCkpIHsKICAgICAgICAgaWYgKGNs
b3NlZFZhcmlhYmxlID09IG1fdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAg
IGlmIChjbG9zZWRWYXJpYWJsZSA9PSBtX3ZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdv
cmQuaW1wbCgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb24ucHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uLnByb3RvdHlwZS5qcwppbmRleCBhNmZjMjhkYTdk
OTZjZGI1M2QyMWQ0NTJkNmJiNDMzZmJiZTcxYTJmLi4yYjc1NDBiMGNhMDQyNGFlNmE0NGNmNThl
NmIxZmZjNjA4YjI0NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvRnVuY3Rpb24ucHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9GdW5jdGlvbi5wcm90b3R5cGUuanMKQEAgLTMyLDE2NiArMzIsMyBAQCBmdW5jdGlvbiBh
cHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50VmFsdWVzKSB7CiAgICAgInVzZSBzdHJpY3QiOwogICAg
IHJldHVybiB0aGlzLkBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50VmFsdWVzKTsKIH0KLQotZnVu
Y3Rpb24gYmluZCh0aGlzVmFsdWUgLyosIG9wdGlvbmFsIGFyZ3VtZW50cyAqLykKLXsKLSAgICAi
dXNlIHN0cmljdCI7Ci0gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSB0aGlzOwotICAgIGlmICh0eXBl
b2YgYm91bmRGdW5jdGlvbiAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIkNhbm5vdCBiaW5kIG5vbi1mdW5jdGlvbiBvYmplY3QuIik7Ci0gICAgdmFyIGJpbmRp
bmdGdW5jdGlvbjsKLSAgICB2YXIgb3ZlcnNpemVkQ2FsbCA9IHVuZGVmaW5lZDsKLSAgICBpZiAo
YXJndW1lbnRzLmxlbmd0aCA8PSAxKSB7Ci0gICAgICAgIGJpbmRpbmdGdW5jdGlvbiA9IGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIGlmIChASXNDb25zdHJ1Y3RvcikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oLi4uYXJndW1lbnRzKTsKLSAgICAgICAgICAgIHJl
dHVybiBib3VuZEZ1bmN0aW9uLkBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50cyk7Ci0gICAgICAg
IH0KLSAgICB9IGVsc2UgewotICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsK
LSAgICAgICAgc3dpdGNoIChsZW5ndGggLSAxIC8qIHNraXAgdGhpc1ZhbHVlICovKSB7Ci0gICAg
ICAgIGNhc2UgMTogewotICAgICAgICAgICAgdmFyIGJvdW5kUGFyYW1ldGVyID0gYXJndW1lbnRz
WzFdOwotICAgICAgICAgICAgYmluZGluZ0Z1bmN0aW9uID0gZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgICAgIHZhciBhcmd1bWVudExlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudExlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBpZiAo
QElzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5k
RnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91
bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50TGVuZ3RoID09IDEpIHsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyLCBhcmd1bWVudHNbMF0p
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFs
dWUsIGJvdW5kUGFyYW1ldGVyLCBhcmd1bWVudHNbMF0pOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBpZiAoYXJndW1lbnRMZW5ndGggPT0gMikgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bmV3IGJvdW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRz
WzFdKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kRnVuY3Rpb24uQGNhbGwodGhp
c1ZhbHVlLCBib3VuZFBhcmFtZXRlciwgYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0pOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRMZW5ndGggPT0gMykg
ewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIsIGFyZ3Vt
ZW50c1swXSwgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pOwotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyLCBh
cmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgdmFyIGNvbXBsZXRlQXJndW1lbnRzID0gW2JvdW5kUGFyYW1l
dGVyLCAuLi5hcmd1bWVudHNdOwotICAgICAgICAgICAgICAgIGlmICghb3ZlcnNpemVkQ2FsbCkg
ewotICAgICAgICAgICAgICAgICAgICBvdmVyc2l6ZWRDYWxsID0gZnVuY3Rpb24gKGlzQ29uc3Ry
dWN0LCBib3VuZEZ1bmN0aW9uLCB0aGlzVmFsdWUsIGNvbXBsZXRlQXJndW1lbnRzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb25zdHJ1Y3QpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9uKC4uLmNvbXBsZXRlQXJndW1lbnRzKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3VuZEZ1bmN0aW9uLkBhcHBseSh0aGlz
VmFsdWUsIGNvbXBsZXRlQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gb3ZlcnNpemVkQ2FsbChASXNDb25z
dHJ1Y3RvciwgYm91bmRGdW5jdGlvbiwgdGhpc1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cyk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNl
IDI6IHsKLSAgICAgICAgICAgIHZhciBib3VuZFBhcmFtZXRlcjEgPSBhcmd1bWVudHNbMV07Ci0g
ICAgICAgICAgICB2YXIgYm91bmRQYXJhbWV0ZXIyID0gYXJndW1lbnRzWzJdOwotICAgICAgICAg
ICAgYmluZGluZ0Z1bmN0aW9uID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGlmICgh
YXJndW1lbnRzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0
b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91
bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIpOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQ
YXJhbWV0ZXIyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ3Vt
ZW50cy5sZW5ndGggPT0gMSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0
b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91
bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIsIGFyZ3VtZW50c1swXSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3VuZEZ1bmN0aW9uLkBjYWxsKHRoaXNWYWx1ZSwgYm91bmRQYXJh
bWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIsIGFyZ3VtZW50c1swXSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIy
LCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3VuZEZ1bmN0aW9uLkBjYWxsKHRoaXNWYWx1ZSwgYm91bmRQYXJhbWV0ZXIxLCBib3VuZFBh
cmFtZXRlcjIsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIs
IGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1l
dGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSwgYXJndW1l
bnRzWzJdKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGNvbXBsZXRl
QXJndW1lbnRzID0gW2JvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCAuLi5hcmd1bWVu
dHNdOwotICAgICAgICAgICAgICAgIGlmICghb3ZlcnNpemVkQ2FsbCkgewotICAgICAgICAgICAg
ICAgICAgICBvdmVyc2l6ZWRDYWxsID0gZnVuY3Rpb24gKGlzQ29uc3RydWN0LCBib3VuZEZ1bmN0
aW9uLCB0aGlzVmFsdWUsIGNvbXBsZXRlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoaXNDb25zdHJ1Y3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBib3VuZEZ1bmN0aW9uKC4uLmNvbXBsZXRlQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3VuZEZ1bmN0aW9uLkBhcHBseSh0aGlzVmFsdWUsIGNvbXBsZXRl
QXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICByZXR1cm4gb3ZlcnNpemVkQ2FsbChASXNDb25zdHJ1Y3RvciwgYm91bmRG
dW5jdGlvbiwgdGhpc1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIDM6IHsKLSAgICAgICAg
ICAgIHZhciBib3VuZFBhcmFtZXRlcjEgPSBhcmd1bWVudHNbMV07Ci0gICAgICAgICAgICB2YXIg
Ym91bmRQYXJhbWV0ZXIyID0gYXJndW1lbnRzWzJdOwotICAgICAgICAgICAgdmFyIGJvdW5kUGFy
YW1ldGVyMyA9IGFyZ3VtZW50c1szXTsKLSAgICAgICAgICAgIGJpbmRpbmdGdW5jdGlvbiA9IGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJh
bWV0ZXIyLCBib3VuZFBhcmFtZXRlcjMpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91
bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0
ZXIyLCBib3VuZFBhcmFtZXRlcjMpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChA
SXNDb25zdHJ1Y3RvcikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgYm91bmRG
dW5jdGlvbihib3VuZFBhcmFtZXRlcjEsIGJvdW5kUGFyYW1ldGVyMiwgYm91bmRQYXJhbWV0ZXIz
LCBhcmd1bWVudHNbMF0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlv
bi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3Vu
ZFBhcmFtZXRlcjMsIGFyZ3VtZW50c1swXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBi
b3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3VuZFBhcmFt
ZXRlcjMsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKTsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJvdW5kRnVuY3Rpb24uQGNhbGwodGhpc1ZhbHVlLCBib3VuZFBhcmFtZXRlcjEsIGJv
dW5kUGFyYW1ldGVyMiwgYm91bmRQYXJhbWV0ZXIzLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sx
XSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVu
Z3RoID09IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1l
dGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3VuZFBhcmFtZXRlcjMsIGFyZ3VtZW50c1swXSwgYXJn
dW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91
bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0
ZXIyLCBib3VuZFBhcmFtZXRlcjMsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdLCBhcmd1bWVu
dHNbMl0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgY29tcGxldGVB
cmd1bWVudHMgPSBbYm91bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIsIGJvdW5kUGFyYW1l
dGVyMywgLi4uYXJndW1lbnRzXTsKLSAgICAgICAgICAgICAgICBpZiAoIW92ZXJzaXplZENhbGwp
IHsKLSAgICAgICAgICAgICAgICAgICAgb3ZlcnNpemVkQ2FsbCA9IGZ1bmN0aW9uIChpc0NvbnN0
cnVjdCwgYm91bmRGdW5jdGlvbiwgdGhpc1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29uc3RydWN0KQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgYm91bmRGdW5jdGlvbiguLi5jb21wbGV0ZUFyZ3VtZW50cyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5AYXBwbHkodGhp
c1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJzaXplZENhbGwoQElzQ29u
c3RydWN0b3IsIGJvdW5kRnVuY3Rpb24sIHRoaXNWYWx1ZSwgY29tcGxldGVBcmd1bWVudHMpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIHZhciBib3VuZFBhcmFtZXRlcnMgPSBbXTsKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgYm91bmRQ
YXJhbWV0ZXJzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgYmluZGluZ0Z1bmN0aW9uID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGlmICgh
YXJndW1lbnRzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0
b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oLi4u
Ym91bmRQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kRnVuY3Rp
b24uQGFwcGx5KHRoaXNWYWx1ZSwgYm91bmRQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIGNvbXBsZXRlQXJndW1lbnRz
ID0gW107Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2FsQm91bmRQYXJhbWV0ZXJzID0gYm91bmRQ
YXJhbWV0ZXJzOwotICAgICAgICAgICAgICAgIHZhciBib3VuZExlbmd0aCA9IGxvY2FsQm91bmRQ
YXJhbWV0ZXJzLmxlbmd0aDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJv
dW5kTGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlQXJndW1lbnRzW2ld
ID0gbG9jYWxCb3VuZFBhcmFtZXRlcnNbaV07Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgICAgIGNvbXBs
ZXRlQXJndW1lbnRzW2kgKyBib3VuZExlbmd0aF0gPSBhcmd1bWVudHNbaV07Ci0gICAgICAgICAg
ICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IGJvdW5kRnVuY3Rpb24oLi4uY29tcGxldGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kRnVuY3Rpb24uQGFwcGx5KHRoaXNW
YWx1ZSwgY29tcGxldGVBcmd1bWVudHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
fQotICAgIGJpbmRpbmdGdW5jdGlvbi5AYm91bmRGdW5jdGlvbk5hbWUgPSB0aGlzLm5hbWU7Ci0g
ICAgYmluZGluZ0Z1bmN0aW9uLkBib3VuZEZ1bmN0aW9uID0gYm91bmRGdW5jdGlvbi5AYm91bmRG
dW5jdGlvbiB8fCBib3VuZEZ1bmN0aW9uOwotICAgIHZhciBib3VuZExlbmd0aCA9IGJvdW5kRnVu
Y3Rpb24ubGVuZ3RoIC0gKGFyZ3VtZW50cy5sZW5ndGggLSAxKTsKLSAgICBpZiAoYm91bmRMZW5n
dGggPCAwKQotICAgICAgICBib3VuZExlbmd0aCA9IDA7Ci0gICAgYmluZGluZ0Z1bmN0aW9uLkBi
b3VuZEZ1bmN0aW9uTGVuZ3RoID0gYm91bmRMZW5ndGg7Ci0gICAgQFNldFR5cGVFcnJvckFjY2Vz
c29yKGJpbmRpbmdGdW5jdGlvbiwgImFyZ3VtZW50cyIpOwotICAgIEBTZXRUeXBlRXJyb3JBY2Nl
c3NvcihiaW5kaW5nRnVuY3Rpb24sICJjYWxsZXIiKTsKLSAgICByZXR1cm4gYmluZGluZ0Z1bmN0
aW9uOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5jcHAKaW5kZXggNDk0MmY0ODhjN2Y2YzljOWI1NDZmM2Y5MjI2OGRjZTUyNjg2
MThjZi4uY2RhZDRhMjdiMjhlMWY5OWQ2YzE1YzUyZTUzMWIwMTcwN2Y1NGE5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3Bw
CkBAIC01MSw3ICs1MSw3IEBAIGNvbnN0IENsYXNzSW5mbyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJs
b2NrOjpzX2luZm8gPSB7ICJVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrCiAKIHN0YXRpYyBVbmxp
bmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZUZ1bmN0aW9uQ29kZUJsb2NrKFZNJiB2bSwg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBEZWJ1Z2dlck1vZGUgZGVidWdn
ZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBVbmxpbmtlZEZ1bmN0aW9uS2luZCBm
dW5jdGlvbktpbmQsIFBhcnNlckVycm9yJiBlcnJvcikKIHsKLSAgICBSZWZQdHI8RnVuY3Rpb25C
b2R5Tm9kZT4gYm9keSA9IHBhcnNlPEZ1bmN0aW9uQm9keU5vZGU+KCZ2bSwgc291cmNlLCBleGVj
dXRhYmxlLT5wYXJhbWV0ZXJzKCksIGV4ZWN1dGFibGUtPm5hbWUoKSwgZXhlY3V0YWJsZS0+dG9T
dHJpY3RuZXNzKCksIEpTUGFyc2VGdW5jdGlvbkNvZGUsIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVj
dCA/IEpTRnVuY3Rpb25Jc0NvbnN0cnVjdG9yS2luZCA6IEpTRnVuY3Rpb25Jc0Z1bmN0aW9uS2lu
ZCwgZXJyb3IpOworICAgIFJlZlB0cjxGdW5jdGlvbkJvZHlOb2RlPiBib2R5ID0gcGFyc2U8RnVu
Y3Rpb25Cb2R5Tm9kZT4oJnZtLCBzb3VyY2UsIGV4ZWN1dGFibGUtPnBhcmFtZXRlcnMoKSwgZXhl
Y3V0YWJsZS0+bmFtZSgpLCBleGVjdXRhYmxlLT50b1N0cmljdG5lc3MoKSwgSlNQYXJzZUZ1bmN0
aW9uQ29kZSwgZXJyb3IpOwogCiAgICAgaWYgKCFib2R5KSB7CiAgICAgICAgIEFTU0VSVChlcnJv
ci5tX3R5cGUgIT0gUGFyc2VyRXJyb3I6OkVycm9yTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZDVjZTUxNmYx
OWUyODg2MTI4YjhlZGY0OTg3OTU5MjA0NjY2NGNmNi4uMDUwZjdlYTFhOWUzMjU1YWI0YTllMGIz
ZGI5NDIyNmU4NDE1NjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTI4NSw3ICsxMjg1LDcgQEAgUmVnaXN0ZXJJ
RCogSW5zdGFuY2VPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJh
dG9yLCBSZWdpc3RlckkKICAgICBnZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoZHN0UmVn
LmdldCgpLCBzcmMxLmdldCgpLCBzcmMyLmdldCgpLCB0YXJnZXQuZ2V0KCkpOwogCiAgICAgZ2Vu
ZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5k
KCkpOwotICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIHNyYzIuZ2V0
KCksIGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGVGb3JIYXNJbnN0YW5j
ZVByaXZhdGVOYW1lKTsKKyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBlLmdldCgp
LCBzcmMyLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsK
IAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgp
LCBkaXZvdEVuZCgpKTsKICAgICBSZWdpc3RlcklEKiByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdElu
c3RhbmNlT2YoZHN0UmVnLmdldCgpLCBzcmMxLmdldCgpLCBwcm90b3R5cGUuZ2V0KCkpOwpAQCAt
MTY5NiwxNCArMTY5Niw3IEBAIGJvb2wgSWZFbHNlTm9kZTo6dHJ5Rm9sZEJyZWFrQW5kQ29udGlu
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgU3RhdGVtZW50CiB2b2lkIElmRWxzZU5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklE
KiBkc3QpCiB7CiAgICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0ZW1l
bnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNldCgpLCBsaW5lU3RhcnRPZmZzZXQoKSk7Ci0gICAg
Ym9vbCBjb25zdGFudEJyYW5jaCA9IGZhbHNlOwotICAgIGlmIChtX2NvbmRpdGlvbi0+Z2V0Qm9v
bGVhbkNvbnN0YW50KGNvbnN0YW50QnJhbmNoKSkgewotICAgICAgICBpZiAoY29uc3RhbnRCcmFu
Y2gpCi0gICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2lmQmxvY2spOwotICAg
ICAgICBlbHNlIGlmIChtX2Vsc2VCbG9jaykKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9k
ZShkc3QsIG1fZWxzZUJsb2NrKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAKICAgICBS
ZWZQdHI8TGFiZWw+IGJlZm9yZVRoZW4gPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKICAgICBSZWZQ
dHI8TGFiZWw+IGJlZm9yZUVsc2UgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKICAgICBSZWZQdHI8
TGFiZWw+IGFmdGVyRWxzZSA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggZDI5MWY2MDU1
ZWI1M2RkNjJkMmNiMTJmZWUxZTg5YmZiMDg1ODk1YS4uMmQ4N2UxMWE3NTUwMzkyM2Q0MTgzOTM3
NDg0NzU0OGU1MGE4YzhmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiR2V0dGVy
U2V0dGVyLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5o
IgorI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgi
CiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggOGNhZTBm
ZTczOGRjZjljMTZjYjA0NzViMDNkMmU1MzE1ZjU3NTdhYy4uYzdmYzUwYzgwY2U4ZDdkYWNjMmUw
Y2MyMjhiMjNmNmI1MzgxNmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5j
cHAKQEAgLTQ4OSwxMSArNDg5LDEwIEBAIHN0YXRpYyBjb25zdCBMQ2hhciBzaW5nbGVDaGFyYWN0
ZXJFc2NhcGVWYWx1ZXNGb3JBU0NJSVsxMjhdID0gewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci1MZXhlcjxUPjo6TGV4ZXIoVk0qIHZtLCBKU1BhcnNlclN0cmljdG5lc3Mgc3RyaWN0bmVz
cywgSlNGdW5jdGlvbktpbmQgZnVuY3Rpb25LaW5kKQorTGV4ZXI8VD46OkxleGVyKFZNKiB2bSwg
SlNQYXJzZXJTdHJpY3RuZXNzIHN0cmljdG5lc3MpCiAgICAgOiBtX2lzUmVwYXJzaW5nKGZhbHNl
KQogICAgICwgbV92bSh2bSkKICAgICAsIG1fcGFyc2luZ0J1aWx0aW5GdW5jdGlvbihzdHJpY3Ru
ZXNzID09IEpTUGFyc2VCdWlsdGluKQotICAgICwgbV9mdW5jdGlvbktpbmQoZnVuY3Rpb25LaW5k
KQogewogfQogCkBAIC04MjAsMTMgKzgxOSw4IEBAIHRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0
ZUlkZW50aWZpZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8TENoYXI+OjpwCiAg
ICAgICAgICAgICAgICAgaWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZXRQcml2YXRlTmFt
ZSgqaWRlbnQpOwogICAgICAgICAgICAgZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5
TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQpCiAgICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVu
dCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQcml2YXRlTmFtZTsKLSAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKCFpZGVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gSU5W
QUxJRF9QUklWQVRFX05BTUVfRVJST1JUT0s7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
ICgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+SXNDb25zdHJ1Y3RvclByaXZhdGVOYW1l
KQotICAgICAgICAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uS2luZCA9PSBKU0Z1bmN0aW9uSXND
b25zdHJ1Y3RvcktpbmQgPyBUUlVFVE9LRU4gOiBGQUxTRVRPS0VOOwotICAgICAgICAgICAgCiAg
ICAgICAgIH0KICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9IGlkZW50OwogICAgIH0gZWxzZQpA
QCAtOTAyLDExICs4OTYsNiBAQCB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVy
PiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIExleGVyPFVDaGFyPjo6cAogICAgICAgICAgICAg
ICAgIGlkZW50ID0gbV92bS0+cHJvcGVydHlOYW1lcy0+Z2V0UHJpdmF0ZU5hbWUoKmlkZW50KTsK
ICAgICAgICAgICAgIGVsc2UgaWYgKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRl
ZmluZWRLZXl3b3JkKQogICAgICAgICAgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+
cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWU7Ci0gICAgICAgICAgICBpZiAobV9m
dW5jdGlvbktpbmQgPT0gSlNGdW5jdGlvbklzQ29uc3RydWN0b3JLaW5kKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5Jc0NvbnN0cnVjdG9yUHJp
dmF0ZU5hbWUpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUUlVFVE9LRU47Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEZBTFNFVE9LRU47Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBp
ZiAoIWlkZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX1BSSVZBVEVfTkFNRV9F
UlJPUlRPSzsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4
IGY1YWY3N2QxZGU3MGRjODNmYzQzYTczZDMxNmFkNWJiYTEwZjM5ZGIuLjA3MjQxYWUyOGFiNDI4
MzdhNzRmMjVlNDk1YWI5ODMyZTllYjkyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTGV4ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmgKQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3MgTGV4ZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogCiBwdWJsaWM6Ci0gICAgTGV4ZXIoVk0qLCBKU1BhcnNlclN0cmljdG5lc3Ms
IEpTRnVuY3Rpb25LaW5kKTsKKyAgICBMZXhlcihWTSosIEpTUGFyc2VyU3RyaWN0bmVzcyk7CiAg
ICAgfkxleGVyKCk7CiAKICAgICAvLyBDaGFyYWN0ZXIgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucy4K
QEAgLTIzOCw3ICsyMzgsNiBAQCBwcml2YXRlOgogCiAgICAgVk0qIG1fdm07CiAgICAgYm9vbCBt
X3BhcnNpbmdCdWlsdGluRnVuY3Rpb247Ci0gICAgSlNGdW5jdGlvbktpbmQgbV9mdW5jdGlvbktp
bmQ7CiB9OwogCiB0ZW1wbGF0ZSA8PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmlu
ZGV4IGNkYjI2M2NkNzdhYjRlNWRhMWZkOGU4ZWU1YTE0M2Q1OWU1ZGVhYWMuLjI1MDBmYjNjNzUx
ZjEzZTNiYTdhYWQ4NTQ1MzkzZmE3NTVjMzkxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKQEAgLTE2NCw3ICsxNjQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmly
dHVhbCBib29sIGlzU3VidHJhY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNCb29sZWFuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAg
dmlydHVhbCBib29sIGlzU3ByZWFkRXhwcmVzc2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRCb29sZWFuQ29uc3RhbnQoYm9vbCYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29u
ZGl0aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsKiwgTGFiZWwqLCBGYWxsVGhy
b3VnaE1vZGUpOwogCkBAIC0yMTQsMTMgKzIxMyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBOdWxsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIAotICAgICAgICBib29sIGdldEJvb2xlYW5Db25zdGFudChib29sJiB2YWx1ZSkgY29uc3Qg
b3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAgdmFsdWUgPSBmYWxzZTsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNOdWxsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0
dWFsIEpTVmFsdWUganNWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGpzTnVsbCgpOyB9CiAgICAgfTsKQEAgLTIyOSwxNCArMjIxLDggQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICBCb29sZWFuTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBib29sIHZhbHVlKTsKICAgICAgICAgYm9vbCB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFs
dWU7IH0KLSAgICAgICAgCi0gICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBnZXRCb29sZWFuQ29u
c3RhbnQoYm9vbCYgdmFsdWUpIGNvbnN0IG92ZXJyaWRlCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhbHVlID0gbV92YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAK
KyAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNCb29sZWFuKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUganNWYWx1ZShC
eXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGpzQm9vbGVhbihtX3Zh
bHVlKTsgfQogCkBAIC0yNTAsMTEgKzIzNiw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
b2lkIHNldFZhbHVlKGRvdWJsZSB2YWx1ZSkgeyBtX3ZhbHVlID0gdmFsdWU7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIGJvb2wgZ2V0Qm9vbGVhbkNvbnN0YW50KGJvb2wmIHZhbHVlKSBjb25z
dCBvdmVycmlkZQotICAgICAgICB7Ci0gICAgICAgICAgICB2YWx1ZSA9IChib29sKW1fdmFsdWU7
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNOdW1iZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIHZp
cnR1YWwgSlNWYWx1ZSBqc1ZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4ganNOdW1iZXIobV92YWx1ZSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwCmluZGV4IDlmMGNlZDAyNDljNzNiZDk5YTAyMWI0YmEzNGViMTE1OTRhYmIx
YjcuLjdkZWM5YmZhOWY3OTZmZGVkMGE5NTYxYzZhOWIzNzI1M2FiMTUzNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFBh
cnNlcjxMZXhlclR5cGU+Ojpsb2dFcnJvcihib29sIHNob3VsZFByaW50VG9rZW4sIGNvbnN0IEEm
IHZhbHVlMSwgY29uc3QgQgogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgotUGFy
c2VyPExleGVyVHlwZT46OlBhcnNlcihWTSogdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
RnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBK
U1BhcnNlclN0cmljdG5lc3Mgc3RyaWN0bmVzcywgSlNQYXJzZXJNb2RlIHBhcnNlck1vZGUsIEpT
RnVuY3Rpb25LaW5kIGZ1bmN0aW9uS2luZCkKK1BhcnNlcjxMZXhlclR5cGU+OjpQYXJzZXIoVk0q
IHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1l
dGVycywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgSlNQYXJzZXJTdHJpY3RuZXNzIHN0cmljdG5l
c3MsIEpTUGFyc2VyTW9kZSBwYXJzZXJNb2RlKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fc291
cmNlKCZzb3VyY2UpCiAgICAgLCBtX2hhc1N0YWNrT3ZlcmZsb3coZmFsc2UpCkBAIC0yMDcsNyAr
MjA3LDcgQEAgUGFyc2VyPExleGVyVHlwZT46OlBhcnNlcihWTSogdm0sIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgRnVuY3Rpb25QYXJhbWV0ZXJzKgogICAgICwgbV9zb3VyY2VFbGVtZW50cygw
KQogICAgICwgbV9wYXJzaW5nQnVpbHRpbihzdHJpY3RuZXNzID09IEpTUGFyc2VCdWlsdGluKQog
ewotICAgIG1fbGV4ZXIgPSBhZG9wdFB0cihuZXcgTGV4ZXJUeXBlKHZtLCBzdHJpY3RuZXNzLCBm
dW5jdGlvbktpbmQpKTsKKyAgICBtX2xleGVyID0gYWRvcHRQdHIobmV3IExleGVyVHlwZSh2bSwg
c3RyaWN0bmVzcykpOwogICAgIG1fYXJlbmEgPSBtX3ZtLT5wYXJzZXJBcmVuYS5nZXQoKTsKICAg
ICBtX2xleGVyLT5zZXRDb2RlKHNvdXJjZSwgbV9hcmVuYSk7CiAgICAgbV90b2tlbi5tX2xvY2F0
aW9uLmxpbmUgPSBzb3VyY2UuZmlyc3RMaW5lKCk7CkBAIC0yODMsNiArMjgzLDcgQEAgU3RyaW5n
IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUlubmVyKCkKICAgICAKICAgICBWZWN0b3I8UmVmUHRy
PFN0cmluZ0ltcGw+PiBjbG9zZWRWYXJpYWJsZXM7CiAgICAgaWYgKG1fcGFyc2luZ0J1aWx0aW4p
IHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNhcHR1cmVkVmFyaWFibGVzLnNpemUoKSk7CiAg
ICAgICAgIElkZW50aWZpZXJTZXQgdXNlZFZhcmlhYmxlczsKICAgICAgICAgc2NvcGUtPmdldFVz
ZWRWYXJpYWJsZXModXNlZFZhcmlhYmxlcyk7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgdmFy
aWFibGUgOiB1c2VkVmFyaWFibGVzKSB7CkBAIC0yOTMsMTYgKzI5NCw2IEBAIFN0cmluZyBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VJbm5lcigpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBjbG9zZWRWYXJpYWJsZXMuYXBwZW5kKHZhcmlhYmxlKTsKICAgICAgICAgfQot
ICAgICAgICBpZiAoIWNhcHR1cmVkVmFyaWFibGVzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
Zm9yIChjb25zdCBhdXRvJiBjYXB0dXJlZFZhcmlhYmxlIDogY2FwdHVyZWRWYXJpYWJsZXMpIHsK
LSAgICAgICAgICAgICAgICBpZiAoc2NvcGUtPmhhc0RlY2xhcmVkVmFyaWFibGUoSWRlbnRpZmll
cihtX3ZtLCBjYXB0dXJlZFZhcmlhYmxlLmdldCgpKSkpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChzY29wZS0+aGFz
RGVjbGFyZWRQYXJhbWV0ZXIoSWRlbnRpZmllcihtX3ZtLCBjYXB0dXJlZFZhcmlhYmxlLmdldCgp
KSkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICB9
CiAgICAgZGlkRmluaXNoUGFyc2luZyhzb3VyY2VFbGVtZW50cywgY29udGV4dC52YXJEZWNsYXJh
dGlvbnMoKSwgY29udGV4dC5mdW5jRGVjbGFyYXRpb25zKCksIGZlYXR1cmVzLAogICAgICAgICBj
b250ZXh0Lm51bUNvbnN0YW50cygpLCBjYXB0dXJlZFZhcmlhYmxlcywgc3RkOjptb3ZlKGNsb3Nl
ZFZhcmlhYmxlcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggMzk3
OTI2ZDE1NGE3MDRkZTBhZDE5NWUyZDQ2YTJjOTMyNWQ2ZjZkOS4uZDY5ODhlN2VhNjM3MDI3NzI1
NWMwODM5MDBjOTFmYjY5MWJjYjhkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oCkBAIC00MTEsNyArNDExLDcgQEAgY2xhc3MgUGFyc2VyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIFBhcnNlcihWTSosIGNvbnN0IFNvdXJjZUNvZGUm
LCBGdW5jdGlvblBhcmFtZXRlcnMqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNQYXJzZXJTdHJpY3Ru
ZXNzLCBKU1BhcnNlck1vZGUsIEpTRnVuY3Rpb25LaW5kKTsKKyAgICBQYXJzZXIoVk0qLCBjb25z
dCBTb3VyY2VDb2RlJiwgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
UGFyc2VyU3RyaWN0bmVzcywgSlNQYXJzZXJNb2RlKTsKICAgICB+UGFyc2VyKCk7CiAKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgUGFyc2VkTm9kZT4KQEAgLTk1NCwxMyArOTU0LDEzIEBAIFBhc3NSZWZQ
dHI8UGFyc2VkTm9kZT4gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlKFBhcnNlckVycm9yJiBlcnJv
cikKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcnNlZE5vZGU+Ci1QYXNzUmVmUHRyPFBhcnNlZE5v
ZGU+IHBhcnNlKFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBGdW5jdGlvblBhcmFt
ZXRlcnMqIHBhcmFtZXRlcnMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEpTUGFyc2VyU3RyaWN0
bmVzcyBzdHJpY3RuZXNzLCBKU1BhcnNlck1vZGUgcGFyc2VyTW9kZSwgSlNGdW5jdGlvbktpbmQg
ZnVuY3Rpb25LaW5kLCBQYXJzZXJFcnJvciYgZXJyb3IsIEpTVGV4dFBvc2l0aW9uKiBwb3NpdGlv
bkJlZm9yZUxhc3ROZXdsaW5lID0gMCkKK1Bhc3NSZWZQdHI8UGFyc2VkTm9kZT4gcGFyc2UoVk0q
IHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1l
dGVycywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgSlNQYXJzZXJTdHJpY3RuZXNzIHN0cmljdG5l
c3MsIEpTUGFyc2VyTW9kZSBwYXJzZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEpTVGV4dFBv
c2l0aW9uKiBwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lID0gMCkKIHsKICAgICBTYW1wbGluZ1Jl
Z2lvbiBzYW1wbGluZ1JlZ2lvbigiUGFyc2luZyIpOwogCiAgICAgQVNTRVJUKCFzb3VyY2UucHJv
dmlkZXIoKS0+c291cmNlKCkuaXNOdWxsKCkpOwogICAgIGlmIChzb3VyY2UucHJvdmlkZXIoKS0+
c291cmNlKCkuaXM4Qml0KCkpIHsKLSAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2Vy
KHZtLCBzb3VyY2UsIHBhcmFtZXRlcnMsIG5hbWUsIHN0cmljdG5lc3MsIHBhcnNlck1vZGUsIGZ1
bmN0aW9uS2luZCk7CisgICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBhcnNlcih2bSwgc291
cmNlLCBwYXJhbWV0ZXJzLCBuYW1lLCBzdHJpY3RuZXNzLCBwYXJzZXJNb2RlKTsKICAgICAgICAg
UmVmUHRyPFBhcnNlZE5vZGU+IHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQYXJzZWROb2RlPihlcnJv
cik7CiAgICAgICAgIGlmIChwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKQogICAgICAgICAgICAg
KnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUgPSBwYXJzZXIucG9zaXRpb25CZWZvcmVMYXN0TmV3
bGluZSgpOwpAQCAtOTcyLDcgKzk3Miw3IEBAIFBhc3NSZWZQdHI8UGFyc2VkTm9kZT4gcGFyc2Uo
Vk0qIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVyCiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiAgICAgfQotICAgIFBhcnNl
cjxMZXhlcjxVQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBwYXJhbWV0ZXJzLCBuYW1lLCBzdHJp
Y3RuZXNzLCBwYXJzZXJNb2RlLCBmdW5jdGlvbktpbmQpOworICAgIFBhcnNlcjxMZXhlcjxVQ2hh
cj4+IHBhcnNlcih2bSwgc291cmNlLCBwYXJhbWV0ZXJzLCBuYW1lLCBzdHJpY3RuZXNzLCBwYXJz
ZXJNb2RlKTsKICAgICBSZWZQdHI8UGFyc2VkTm9kZT4gcmVzdWx0ID0gcGFyc2VyLnBhcnNlPFBh
cnNlZE5vZGU+KGVycm9yKTsKICAgICBpZiAocG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSkKICAg
ICAgICAgKnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUgPSBwYXJzZXIucG9zaXRpb25CZWZvcmVM
YXN0TmV3bGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXJNb2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5o
CmluZGV4IDc5NjI3YzBlMmJjZWNlODk0MWM1NjFhZjA2MGQwY2QzOGVmZjlhMjQuLjkzMTRiMTk3
OTBhMGQ1NThhZTRkMjRmMWZjNjIxMTc1ZmZmZDQyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKQEAgLTMzLDggKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKIGVudW0gSlNQYXJzZXJTdHJpY3RuZXNzIHsgSlNQYXJzZU5vcm1hbCwgSlNQYXJzZUJ1aWx0
aW4sIEpTUGFyc2VTdHJpY3QgfTsKIGVudW0gSlNQYXJzZXJNb2RlIHsgSlNQYXJzZVByb2dyYW1D
b2RlLCBKU1BhcnNlRnVuY3Rpb25Db2RlIH07Ci1lbnVtIEpTRnVuY3Rpb25LaW5kIHsgSlNOb3RG
dW5jdGlvbktpbmQsIEpTRnVuY3Rpb25Jc0Z1bmN0aW9uS2luZCwgSlNGdW5jdGlvbklzQ29uc3Ry
dWN0b3JLaW5kIH07Ci0gICAgCisKIGVudW0gUHJvZmlsZXJNb2RlIHsgUHJvZmlsZXJPZmYsIFBy
b2ZpbGVyT24gfTsKIGVudW0gRGVidWdnZXJNb2RlIHsgRGVidWdnZXJPZmYsIERlYnVnZ2VyT24g
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcAppbmRleCBhN2Q1MzM3NjdjN2U1MmRkMmFk
YTVkNDU1YmM3MDVjZWJjYWFkYWZhLi5hZmI1OTc5MGNiMDA5OTg5YmI3YjQyODYzZTkxODIzMzU3
NmI4YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCBj
b25zdCBDbGFzc0luZm8gQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
QXJndW1lbnRzSXRlcmF0b3IiLCAmQgogdm9pZCBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlKiBwcm90
b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHB1dERpcmVjdFBy
b3RvdHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBwcm90b3R5cGUsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCA4NjIwNjFmZThiZDM3Y2Zi
N2MwYTk1YjAyZjkyMjUxODQwZTlmMjU2Li40NDQyOTMwMjEzYTgwZjI1ODJiMzk4MDdhNDgyZTk5
MDM5YjI5YzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUNvbnN0cnVjdG9yLmNwcApAQCAtNjIsNyArNjIsNyBAQCBBcnJheUNvbnN0cnVjdG9yOjpBcnJh
eUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB2b2lkIEFycmF5Q29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJv
dG90eXBlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBhcnJheVByb3RvdHlwZS0+
Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlX
aXRob3V0VHJhbnNpdGlvbnModm0sIGFycmF5UHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgYXJyYXlQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8
IERvbnREZWxldGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAppbmRleCA3ZTg4ZGM4ODgxZmJlYzQ5MTBiZjZhZGY5
ZWUyYjAwNzE5NThmZmU3Li5iMzE2YmUxZDVhZjkyMTdlODhmMDI4ZWY3NGQxMDRmNDIxYWNjOTQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25z
dHJ1Y3Rvci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgQm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFu
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQgQm9vbGVhbkNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xl
YW5Qcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGJvb2xlYW5Qcm90
b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVBy
b3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBib29sZWFuUHJvdG90eXBlLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgYm9vbGVhblByb3RvdHlwZSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogCiAgICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBm
b3IgY29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwg
RG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29k
ZUNhY2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAK
aW5kZXggOTgwZjJiM2M0MWJmZWU0ZmEwNTI3ZjUxNTIzZWUwZDY2MmFiNzZiZC4uNmRlMTA0NDRj
YTkzYWI3ZTgwZjY1M2JkYjhjNjhiNWQ3MDIyN2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIFVubGlua2VkQ29kZUJs
b2NrVHlwZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxl
VHlwZSogZXhlCiAgICAgfQogCiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDYWNoZVR5cGVzPFVubGlu
a2VkQ29kZUJsb2NrVHlwZT46OlJvb3ROb2RlIFJvb3ROb2RlOwotICAgIFJlZlB0cjxSb290Tm9k
ZT4gcm9vdE5vZGUgPSBwYXJzZTxSb290Tm9kZT4oJnZtLCBzb3VyY2UsIDAsIElkZW50aWZpZXIo
KSwgc3RyaWN0bmVzcywgSlNQYXJzZVByb2dyYW1Db2RlLCBKU05vdEZ1bmN0aW9uS2luZCwgZXJy
b3IpOworICAgIFJlZlB0cjxSb290Tm9kZT4gcm9vdE5vZGUgPSBwYXJzZTxSb290Tm9kZT4oJnZt
LCBzb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgc3RyaWN0bmVzcywgSlNQYXJzZVByb2dyYW1Db2Rl
LCBlcnJvcik7CiAgICAgaWYgKCFyb290Tm9kZSkgewogICAgICAgICBtX3NvdXJjZUNvZGUucmVt
b3ZlKGFkZFJlc3VsdC5pdGVyYXRvcik7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMTQyLDcgKzE0
Miw3IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6OmdldEZ1bmN0aW9u
RXhlY3V0YWJsZUZyb21HbG9iYWxDb2RlKFZNJiB2CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8VW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqPihhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmNlbGwu
Z2V0KCkpOwogCiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsK
LSAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oJnZt
LCBzb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgSlNQYXJzZU5vcm1hbCwgSlNQYXJzZVByb2dyYW1D
b2RlLCBKU05vdEZ1bmN0aW9uS2luZCwgZXJyb3IsICZwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5l
KTsKKyAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4o
JnZtLCBzb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgSlNQYXJzZU5vcm1hbCwgSlNQYXJzZVByb2dy
YW1Db2RlLCBlcnJvciwgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogICAgIGlmICghcHJv
Z3JhbSkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJvci5tX3R5cGUgIT0gUGFyc2VyRXJy
b3I6OkVycm9yTm9uZSk7CiAgICAgICAgIG1fc291cmNlQ29kZS5yZW1vdmUoYWRkUmVzdWx0Lml0
ZXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oCmluZGV4IDQ1NmY3M2VjOWQ5NWRjZDM3YWExMmFhMDNiMDEwMDIxYzczMzUxOWYu
LjRlYjI0MWU1MzljOGRkZTY2NGIwNzFhYzEzZDE3MWY5MmFiYzE4M2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjE5LDE0
ICsyMTksNyBAQAogICAgIG1hY3JvKE9iamVjdCkgXAogICAgIG1hY3JvKFR5cGVFcnJvcikgXAog
ICAgIG1hY3JvKHVuZGVmaW5lZCkgXAotICAgIG1hY3JvKEJ1aWx0aW5Mb2cpIFwKLSAgICBtYWNy
byhJc0NvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oYm91bmRGdW5jdGlvbk5hbWUpIFwKLSAgICBt
YWNybyhib3VuZEZ1bmN0aW9uUGFyYW1ldGVycykgXAotICAgIG1hY3JvKGJvdW5kRnVuY3Rpb24p
IFwKLSAgICBtYWNybyhib3VuZEZ1bmN0aW9uTGVuZ3RoKSBcCi0gICAgbWFjcm8ocHJvdG90eXBl
Rm9ySGFzSW5zdGFuY2UpIFwKLSAgICBtYWNybyhTZXRUeXBlRXJyb3JBY2Nlc3NvcikKKyAgICBt
YWNybyhCdWlsdGluTG9nKQogCiBuYW1lc3BhY2UgSlNDIHsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggZjJjYzczMjJhMWU1NGQ5NmRi
N2MxMWM0OWQ4ZTY5MGI0NWI2NWNhNS4uYzQxNDU3MGRhZTY1OTFiNzMzNGYwOWNiYzRhZDE5ZWM2
NzRkMmZjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxl
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5j
cHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBjaGVja1N5bnRheChWTSYgdm0sIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgUGFyc2VyRXJyb3ImIGVycm9yKQogewogICAgIEpTTG9ja0hvbGRlciBs
b2NrKHZtKTsKICAgICBSRUxFQVNFX0FTU0VSVCh2bS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0
ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKLSAgICBSZWZQdHI8UHJvZ3JhbU5v
ZGU+IHByb2dyYW1Ob2RlID0gcGFyc2U8UHJvZ3JhbU5vZGU+KCZ2bSwgc291cmNlLCAwLCBJZGVu
dGlmaWVyKCksIEpTUGFyc2VOb3JtYWwsIEpTUGFyc2VQcm9ncmFtQ29kZSwgSlNOb3RGdW5jdGlv
bktpbmQsIGVycm9yKTsKKyAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW1Ob2RlID0gcGFy
c2U8UHJvZ3JhbU5vZGU+KCZ2bSwgc291cmNlLCAwLCBJZGVudGlmaWVyKCksIEpTUGFyc2VOb3Jt
YWwsIEpTUGFyc2VQcm9ncmFtQ29kZSwgZXJyb3IpOwogICAgIHJldHVybiBwcm9ncmFtTm9kZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggOTUzYWI0ZjA1NmNmNjE2OGQwNmY4NGM2OTAzZjQwNjUyYmJjNmVmMC4uMmJi
ZGQzOTBhZTg1N2U0M2U5OTYyOGNkNTAzMTYxMWU3NzFkNDYxMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC0xMDgsNyArMTA4
LDcgQEAgRGF0ZUNvbnN0cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKIHZvaWQgRGF0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IERhdGVQcm90b3R5cGUqIGRhdGVQcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0sIGRhdGVQcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERp
cmVjdFByb3RvdHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBkYXRlUHJvdG90eXBl
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZGF0ZVByb3RvdHlw
ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDcpLCBS
ZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjcwZjcwODA2
OWQ4OGQzNWU5ZjFiZjlhZTc1YjYyOTBiOTUzMGZhNi4uOWFjYmM0Y2QwMmZjMTJhZDIwM2QyMGI0
YzExNDk5ZDg4ODVlMjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdm9pZCBFcnJvckNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEVycm9yUHJvdG90eXBlKiBlcnJvclByb3Rv
dHlwZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZXJyb3JQcm90b3R5cGUtPmNs
YXNzSW5mbygpLT5jbGFzc05hbWUpOwogICAgIC8vIEVDTUEgMTUuMTEuMy4xIEVycm9yLnByb3Rv
dHlwZQotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZt
LCBlcnJvclByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIGVycm9yUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA2Mjc5
ZDkxZTY4NjIxODVhYjNhNTUyZWRjNGNjMjNiMWNjNzVjNGQzLi5mODA5ZjA4ZjVlYWExYjRhZjU5
OTMyMDAwMTZkODMwYjY5MGY3MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmNwcApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIEpTT2JqZWN0KiBQcm9ncmFtRXhl
Y3V0YWJsZTo6Y2hlY2tTeW50YXgoRXhlY1N0YXRlKiBleGVjKQogICAgIFBhcnNlckVycm9yIGVy
cm9yOwogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgIFJlZlB0
cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbU5vZGUgPSBwYXJzZTxQcm9ncmFtTm9kZT4odm0sIG1fc291
cmNlLCAwLCBJZGVudGlmaWVyKCksIEpTUGFyc2VOb3JtYWwsIFByb2dyYW1Ob2RlOjppc0Z1bmN0
aW9uTm9kZSA/IEpTUGFyc2VGdW5jdGlvbkNvZGUgOiBKU1BhcnNlUHJvZ3JhbUNvZGUsIEpTTm90
RnVuY3Rpb25LaW5kLCBlcnJvcik7CisgICAgUmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtTm9k
ZSA9IHBhcnNlPFByb2dyYW1Ob2RlPih2bSwgbV9zb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgSlNQ
YXJzZU5vcm1hbCwgUHJvZ3JhbU5vZGU6OmlzRnVuY3Rpb25Ob2RlID8gSlNQYXJzZUZ1bmN0aW9u
Q29kZSA6IEpTUGFyc2VQcm9ncmFtQ29kZSwgZXJyb3IpOwogICAgIGlmIChwcm9ncmFtTm9kZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgQVNTRVJUKGVycm9yLm1fdHlwZSAhPSBQYXJzZXJFcnJv
cjo6RXJyb3JOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZGEzMTVkYTBmMTNiZmE0NDJmMTdmYjEyODJi
ZjQ4ZTk5NDEzN2UyMi4uM2ZjNzI0MjIwODMzMTE4Yzg4ZDRkYjVmOTlkMGZhMTEzYmVmMTQwZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rp
b25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBGdW5jdGlv
bkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEZ1bmN0aW9uUHJvdG90eXBlKiBm
dW5jdGlvblByb3RvdHlwZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZnVuY3Rp
b25Qcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3Rv
dHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBmdW5jdGlvblByb3RvdHlwZSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGZ1bmN0aW9uUHJvdG90eXBl
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAKICAgICAvLyBOdW1iZXIgb2Yg
YXJndW1lbnRzIGZvciBjb25zdHJ1Y3RvcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERv
bnREZWxldGUgfCBEb250RW51bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggOGRiM2RhOTczMjViYTY5YTNlM2YyMWMy
NzU3YzUxMmMzNTBkZmFkMC4uZWI1Nzg0MGJkNjY3YmYzYWQyNjlhMzA0N2JkYTBhOTQ4MzE1MmM2
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxl
cy5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKKyNp
bmNsdWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKQEAgLTM5LDYg
KzQwLDcgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9u
UHJvdG90eXBlKTsKIGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0g
eyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1
bmN0aW9uUHJvdG90eXBlKSB9OwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNCaW5kKEV4ZWNTdGF0ZSopOwog
CiBGdW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKQEAgLTYw
LDggKzYyLDkgQEAgdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVz
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGcKIAogICAgICphcHBseUZ1bmN0aW9u
ID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9i
amVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJsaWNOYW1lKCks
IGZ1bmN0aW9uUHJvdG90eXBlQXBwbHlDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwogICAg
ICpjYWxsRnVuY3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlv
bih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYWxs
UHVibGljTmFtZSgpLCBmdW5jdGlvblByb3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9yKHZtKSwgRG9u
dEVudW0pOwotICAgIAotICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmJp
bmRQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQmluZENvZGVHZW5lcmF0b3Iodm0pLCBE
b250RW51bSk7CisKKyAgICBKU0Z1bmN0aW9uKiBiaW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMSwgdm0ucHJvcGVydHlOYW1lcy0+YmluZC5zdHJpbmco
KSwgZnVuY3Rpb25Qcm90b0Z1bmNCaW5kKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YmluZCwgYmluZEZ1bmN0aW9uLCBEb250RW51bSk7CiB9
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvblByb3Rv
dHlwZShFeGVjU3RhdGUqKQpAQCAtMTE4LDQgKzEyMSw0NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogfQogCisvLyAxNS4zLjQuNSBGdW5jdGlv
bi5wcm90b3R5cGUuYmluZCAodGhpc0FyZyBbLCBhcmcxIFssIGFyZzIsIC4uLl1dKQorRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY0JpbmQoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUo
KS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICAvLyBMZXQgVGFyZ2V0IGJlIHRoZSB0aGlzIHZhbHVl
LgorICAgIEpTVmFsdWUgdGFyZ2V0ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CisKKyAgICAvLyBJZiBJ
c0NhbGxhYmxlKFRhcmdldCkgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
KyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxE
YXRhKHRhcmdldCwgY2FsbERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUp
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgIC8vIFByaW1pdGl2
ZSB2YWx1ZXMgYXJlIG5vdCBjYWxsYWJsZS4KKyAgICBBU1NFUlQodGFyZ2V0LmlzT2JqZWN0KCkp
OworICAgIEpTT2JqZWN0KiB0YXJnZXRPYmplY3QgPSBhc09iamVjdCh0YXJnZXQpOworICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CisKKyAgICAvLyBMZXQgQSBiZSBhIG5ldyAocG9zc2libHkgZW1w
dHkpIGludGVybmFsIGxpc3Qgb2YgYWxsIG9mIHRoZSBhcmd1bWVudCB2YWx1ZXMgcHJvdmlkZWQg
YWZ0ZXIgdGhpc0FyZyAoYXJnMSwgYXJnMiBldGMpLCBpbiBvcmRlci4KKyAgICBzaXplX3QgbnVt
Qm91bmRBcmdzID0gZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSA/IGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSAtIDEgOiAwOworICAgIEpTQXJyYXkqIGJvdW5kQXJncyA9IEpTQXJyYXk6OnRyeUNyZWF0
ZVVuaW5pdGlhbGl6ZWQodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGlu
Z1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIG51bUJvdW5kQXJncyk7
CisgICAgaWYgKCFib3VuZEFyZ3MpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhy
b3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bnVtQm91bmRBcmdzOyArK2kpCisgICAgICAgIGJvdW5kQXJncy0+aW5pdGlhbGl6ZUluZGV4KHZt
LCBpLCBleGVjLT5hcmd1bWVudChpICsgMSkpOworCisgICAgLy8gSWYgdGhlIFtbQ2xhc3NdXSBp
bnRlcm5hbCBwcm9wZXJ0eSBvZiBUYXJnZXQgaXMgIkZ1bmN0aW9uIiwgdGhlbiAuLi4KKyAgICAv
LyBFbHNlIHNldCB0aGUgbGVuZ3RoIG93biBwcm9wZXJ0eSBvZiBGIHRvIDAuCisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gMDsKKyAgICBpZiAodGFyZ2V0T2JqZWN0LT5pbmhlcml0cyhKU0Z1bmN0aW9u
OjppbmZvKCkpKSB7CisgICAgICAgIEFTU0VSVCh0YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgpLmlzTnVtYmVyKCkpOworICAgICAgICAvLyBhLiBMZXQgTCBiZSB0
aGUgbGVuZ3RoIHByb3BlcnR5IG9mIFRhcmdldCBtaW51cyB0aGUgbGVuZ3RoIG9mIEEuCisgICAg
ICAgIC8vIGIuIFNldCB0aGUgbGVuZ3RoIG93biBwcm9wZXJ0eSBvZiBGIHRvIGVpdGhlciAwIG9y
IEwsIHdoaWNoZXZlciBpcyBsYXJnZXIuCisgICAgICAgIHVuc2lnbmVkIHRhcmdldExlbmd0aCA9
ICh1bnNpZ25lZCl0YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgp
LmFzTnVtYmVyKCk7CisgICAgICAgIGlmICh0YXJnZXRMZW5ndGggPiBudW1Cb3VuZEFyZ3MpCisg
ICAgICAgICAgICBsZW5ndGggPSB0YXJnZXRMZW5ndGggLSBudW1Cb3VuZEFyZ3M7CisgICAgfQor
CisgICAgSlNTdHJpbmcqIG5hbWUgPSB0YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5uYW1lKS50b1N0cmluZyhleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
Qm91bmRGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHRhcmdldE9iamVjdCwgZXhl
Yy0+YXJndW1lbnQoMCksIGJvdW5kQXJncywgbGVuZ3RoLCBuYW1lLT52YWx1ZShleGVjKSkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDY2NDlkZWMz
MzQ0MjMzOTc2MjRlMTY2NDVkZDk2MzVkOTI5YmYzZjkuLjIyZjc5Yzg5OGE3NGI0YzA4MjQ3YjZk
ZDZiNDE5ODJlNWM1MDk2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcApAQCAtNTAsNyArNTAsNyBA
QCBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNBcnJheUJ1ZmZlclByb3RvdHlwZSogcHJvdG90eXBl
KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXJyYXlCdWZmZXIiKTsKLSAgICBw
dXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgcHJvdG90eXBl
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSB0aGlzLT5nbG9iYWxPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNzljNDIyZDVi
ZmUxYTVlODRjYmY1NmYwN2MyNWI3MzRhMDkyZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTI5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKKworI2luY2x1ZGUg
IkdldHRlclNldHRlci5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTQm91
bmRGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTQm91bmRGdW5jdGlvbikgfTsKKworRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ2FsbChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAg
SlNCb3VuZEZ1bmN0aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+
KGV4ZWMtPmNhbGxlZSgpKTsKKworICAgIEFTU0VSVChpc0pTQXJyYXkoYm91bmRGdW5jdGlvbi0+
Ym91bmRBcmdzKCkpKTsgLy8gQ3VycmVudGx5IHRoaXMgaXMgdHJ1ZSEKKyAgICBKU0FycmF5KiBi
b3VuZEFyZ3MgPSBhc0FycmF5KGJvdW5kRnVuY3Rpb24tPmJvdW5kQXJncygpKTsKKworICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJv
dW5kQXJncy0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoYm91bmRBcmdzLT5n
ZXRJbmRleFF1aWNrbHkoaSkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBleGVjLT5h
cmd1bWVudENvdW50KCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoaSkpOworCisgICAgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uID0gYm91bmRGdW5j
dGlvbi0+dGFyZ2V0RnVuY3Rpb24oKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxs
VHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKHRhcmdldEZ1bmN0aW9uLCBjYWxsRGF0YSk7Cisg
ICAgQVNTRVJUKGNhbGxUeXBlICE9IENhbGxUeXBlTm9uZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShjYWxsKGV4ZWMsIHRhcmdldEZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGJv
dW5kRnVuY3Rpb24tPmJvdW5kVGhpcygpLCBhcmdzKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgSlNCb3VuZEZ1bmN0aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlv
bio+KGV4ZWMtPmNhbGxlZSgpKTsKKworICAgIEFTU0VSVChpc0pTQXJyYXkoYm91bmRGdW5jdGlv
bi0+Ym91bmRBcmdzKCkpKTsgLy8gQ3VycmVudGx5IHRoaXMgaXMgdHJ1ZSEKKyAgICBKU0FycmF5
KiBib3VuZEFyZ3MgPSBhc0FycmF5KGJvdW5kRnVuY3Rpb24tPmJvdW5kQXJncygpKTsKKworICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGJvdW5kQXJncy0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoYm91bmRBcmdz
LT5nZXRJbmRleFF1aWNrbHkoaSkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBleGVj
LT5hcmd1bWVudENvdW50KCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoaSkpOworCisgICAgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uID0gYm91bmRG
dW5jdGlvbi0+dGFyZ2V0RnVuY3Rpb24oKTsKKyAgICBDb25zdHJ1Y3REYXRhIGNvbnN0cnVjdERh
dGE7CisgICAgQ29uc3RydWN0VHlwZSBjb25zdHJ1Y3RUeXBlID0gZ2V0Q29uc3RydWN0RGF0YSh0
YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0RGF0YSk7CisgICAgQVNTRVJUKGNvbnN0cnVjdFR5cGUg
IT0gQ29uc3RydWN0VHlwZU5vbmUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3Ry
dWN0KGV4ZWMsIHRhcmdldEZ1bmN0aW9uLCBjb25zdHJ1Y3RUeXBlLCBjb25zdHJ1Y3REYXRhLCBh
cmdzKSk7Cit9CisKK0pTQm91bmRGdW5jdGlvbiogSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0RnVuY3Rp
b24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50IGxlbmd0aCwgY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIENvbnN0cnVjdERhdGEgY29uc3RydWN0RGF0YTsKKyAg
ICBDb25zdHJ1Y3RUeXBlIGNvbnN0cnVjdFR5cGUgPSBKU0M6OmdldENvbnN0cnVjdERhdGEodGFy
Z2V0RnVuY3Rpb24sIGNvbnN0cnVjdERhdGEpOworICAgIGJvb2wgY2FuQ29uc3RydWN0ID0gY29u
c3RydWN0VHlwZSAhPSBDb25zdHJ1Y3RUeXBlTm9uZTsKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0gdm0uZ2V0SG9zdEZ1bmN0aW9uKGJvdW5kRnVuY3Rpb25DYWxsLCBjYW5Db25z
dHJ1Y3QgPyBib3VuZEZ1bmN0aW9uQ29uc3RydWN0IDogY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3Ry
dWN0b3IpOworICAgIEpTQm91bmRGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxKU0JvdW5kRnVuY3Rpb24+KHZtLmhlYXApKSBKU0JvdW5kRnVuY3Rpb24odm0s
IGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5ib3VuZEZ1bmN0aW9uU3RydWN0dXJlKCksIHRh
cmdldEZ1bmN0aW9uLCBib3VuZFRoaXMsIGJvdW5kQXJncyk7CisKKyAgICBmdW5jdGlvbi0+Zmlu
aXNoQ3JlYXRpb24odm0sIGV4ZWN1dGFibGUsIGxlbmd0aCwgbmFtZSk7CisgICAgcmV0dXJuIGZ1
bmN0aW9uOworfQorCit2b2lkIEpTQm91bmRGdW5jdGlvbjo6ZGVzdHJveShKU0NlbGwqIGNlbGwp
Cit7CisgICAgc3RhdGljX2Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4oY2VsbCktPkpTQm91bmRGdW5j
dGlvbjo6fkpTQm91bmRGdW5jdGlvbigpOworfQorCitib29sIEpTQm91bmRGdW5jdGlvbjo6Y3Vz
dG9tSGFzSW5zdGFuY2UoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQoreworICAgIHJldHVybiBqc0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4ob2JqZWN0KS0+
bV90YXJnZXRGdW5jdGlvbi0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUpOworfQorCitKU0JvdW5k
RnVuY3Rpb246OkpTQm91bmRGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpT
VmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncykKKyAgICA6IEJhc2Uodm0sIGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlKQorICAgICwgbV90YXJnZXRGdW5jdGlvbih2bSwgdGhpcywgdGFy
Z2V0RnVuY3Rpb24pCisgICAgLCBtX2JvdW5kVGhpcyh2bSwgdGhpcywgYm91bmRUaGlzKQorICAg
ICwgbV9ib3VuZEFyZ3Modm0sIHRoaXMsIGJvdW5kQXJncykKK3sKK30KKwordm9pZCBKU0JvdW5k
RnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSwgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtLCBleGVjdXRhYmxlLCBsZW5ndGgsIG5hbWUpOworICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKKworICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmFyZ3VtZW50cywgZ2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0
dGVyU2V0dGVyKHZtKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgIHB1
dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNhbGxlciwgZ2xv
YmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKHZtKSwgRG9udERlbGV0ZSB8
IERvbnRFbnVtIHwgQWNjZXNzb3IpOworfQorCit2b2lkIEpTQm91bmRGdW5jdGlvbjo6dmlzaXRD
aGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTQm91
bmRGdW5jdGlvbiogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihjZWxsKTsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAg
Q09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBP
dmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQodGhp
c09iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigp
KTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworCisgICAg
dmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdGFyZ2V0RnVuY3Rpb24pOworICAgIHZpc2l0
b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2JvdW5kVGhpcyk7CisgICAgdmlzaXRvci5hcHBlbmQo
JnRoaXNPYmplY3QtPm1fYm91bmRBcmdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc4NTJmNzhjZTM5MDU5YjU2NDNlNDllMGY5ZGYxY2Q3ZWRjOGUwYjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgSlNCb3VuZEZ1bmN0aW9uX2gKKyNkZWZpbmUgSlNCb3VuZEZ1bmN0aW9u
X2gKKworI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKik7CitF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoRXhlY1N0
YXRlKik7CisKK2NsYXNzIEpTQm91bmRGdW5jdGlvbiA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKK3B1
YmxpYzoKKyAgICB0eXBlZGVmIEpTRnVuY3Rpb24gQmFzZTsKKworICAgIHN0YXRpYyBKU0JvdW5k
RnVuY3Rpb24qIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHRhcmdldEZ1
bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCwgY29uc3Qg
U3RyaW5nJik7CisgICAgCisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKworICAg
IHN0YXRpYyBib29sIGN1c3RvbUhhc0luc3RhbmNlKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNW
YWx1ZSk7CisKKyAgICBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24oKSB7IHJldHVybiBtX3Rhcmdl
dEZ1bmN0aW9uLmdldCgpOyB9CisgICAgSlNWYWx1ZSBib3VuZFRoaXMoKSB7IHJldHVybiBtX2Jv
dW5kVGhpcy5nZXQoKTsgfQorICAgIEpTVmFsdWUgYm91bmRBcmdzKCkgeyByZXR1cm4gbV9ib3Vu
ZEFyZ3MuZ2V0KCk7IH0KKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAK
KyAgICB7CisgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhKU0Z1
bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICB9CisKKyAgICBERUNM
QVJFX0lORk87CisKK3Byb3RlY3RlZDoKKyAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBPdmVycmlkZXNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4g
fCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKKworcHJpdmF0ZToKKyAgICBKU0JvdW5kRnVuY3Rpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlv
biwgSlNWYWx1ZSBib3VuZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdzKTsKKyAgICAKKyAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgTmF0aXZlRXhlY3V0YWJsZSosIGludCwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fdGFyZ2V0RnVuY3Rpb247CisgICAg
V3JpdGVCYXJyaWVyPFVua25vd24+IG1fYm91bmRUaGlzOworICAgIFdyaXRlQmFycmllcjxVbmtu
b3duPiBtX2JvdW5kQXJnczsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
SlNGdW5jdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwCmluZGV4IGMzZjU0ZGY5NWQ3ZTE4NmZmNTI2MzdjOTZkYzg3NjFkNzliNmVjMTkuLmY5Zjg4
OWE5MjQxMmI3ZjE0NTM5YzVjZWE5NWNkYWQ0MWI3MmYzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNs
dWRlICJKU0FycmF5LmgiCisjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAi
SlNGdW5jdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1
ZGUgIkpTTmFtZVNjb3BlLmgiIApAQCAtMjUwLDkgKzI1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
RnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90
QmFzZSwKIAogY2xhc3MgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IgewogcHVibGljOgot
ICAgIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5j
dGlvbiogZnVuY3Rpb25PYmopCi0gICAgICAgIDogbV9leGVjKGV4ZWMpCi0gICAgICAgICwgbV90
YXJnZXRDYWxsZWUoanNEeW5hbWljQ2FzdDxKU09iamVjdCo+KGZ1bmN0aW9uT2JqKSkKKyAgICBS
ZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3RvcihKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKKyAg
ICAgICAgOiBtX3RhcmdldENhbGxlZShqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4oZnVuY3Rpb25P
YmopKQogICAgICAgICAsIG1faGFzRm91bmRGcmFtZShmYWxzZSkKICAgICAgICAgLCBtX2hhc1Nr
aXBwZWRUb0NhbGxlckZyYW1lKGZhbHNlKQogICAgICAgICAsIG1fcmVzdWx0KGpzTnVsbCgpKQpA
QCAtMjY1LDcgKzI2NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEpTT2JqZWN0KiBjYWxs
ZWUgPSB2aXNpdG9yLT5jYWxsZWUoKTsKIAotICAgICAgICBpZiAoY2FsbGVlICYmIGNhbGxlZS0+
aGFzT3duUHJvcGVydHkobV9leGVjLCBtX2V4ZWMtPnByb3BlcnR5TmFtZXMoKS5ib3VuZEZ1bmN0
aW9uTmFtZVByaXZhdGVOYW1lKSkKKyAgICAgICAgaWYgKGNhbGxlZSAmJiBjYWxsZWUtPmluaGVy
aXRzKEpTQm91bmRGdW5jdGlvbjo6aW5mbygpKSkKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zp
c2l0b3I6OkNvbnRpbnVlOwogCiAgICAgICAgIGlmICghbV9oYXNGb3VuZEZyYW1lICYmIChjYWxs
ZWUgIT0gbV90YXJnZXRDYWxsZWUpKQpAQCAtMjgzLDcgKzI4Myw2IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgRXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgSlNPYmplY3QqIG1fdGFy
Z2V0Q2FsbGVlOwogICAgIGJvb2wgbV9oYXNGb3VuZEZyYW1lOwogICAgIGJvb2wgbV9oYXNTa2lw
cGVkVG9DYWxsZXJGcmFtZTsKQEAgLTI5Miw3ICsyOTEsNyBAQCBwcml2YXRlOgogCiBzdGF0aWMg
SlNWYWx1ZSByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlv
biogZnVuY3Rpb25PYmopCiB7Ci0gICAgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IgZnVu
Y3RvcihleGVjLCBmdW5jdGlvbk9iaik7CisgICAgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0
b3IgZnVuY3RvcihmdW5jdGlvbk9iaik7CiAgICAgZXhlYy0+aXRlcmF0ZShmdW5jdG9yKTsKICAg
ICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KQEAgLTMyOSw1OSArMzI4LDE3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTRnVuY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWCiBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTRnVuY3Rpb24qPihvYmplY3QpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc0hvc3RG
dW5jdGlvbigpKQotICAgICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmlz
QnVpbHRpbkZ1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuY2FsbGVyKSB7Ci0gICAgICAgICAgICBpZiAodGhpc09iamVjdC0+anNF
eGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAgICAg
ICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5hbWUs
IHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihl
eGVjLT52bSgpKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOwotICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJl
c3VsdCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlz
T2JqZWN0LCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSwgY2FsbGVyR2V0dGVyKTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9wZXJ0
eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZUZvckhhc0luc3RhbmNlUHJp
dmF0ZU5hbWUpIHsKLSAgICAgICAgICAgIFByb3BlcnR5U2xvdCBib3VuZEZ1bmN0aW9uU2xvdCh0
aGlzT2JqZWN0KTsKLSAgICAgICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
c09iamVjdCwgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJvdW5kRnVuY3Rpb25Qcml2YXRl
TmFtZSwgYm91bmRGdW5jdGlvblNsb3QpKSB7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBib3Vu
ZEZ1bmN0aW9uID0gYm91bmRGdW5jdGlvblNsb3QuZ2V0VmFsdWUoZXhlYywgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmJvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSk7Ci0gICAgICAgICAgICAgICAgUHJv
cGVydHlTbG90IGJvdW5kUHJvdG90eXBlU2xvdChhc09iamVjdChib3VuZEZ1bmN0aW9uKSk7Ci0g
ICAgICAgICAgICAgICAgaWYgKGFzT2JqZWN0KGJvdW5kRnVuY3Rpb24pLT5nZXRQcm9wZXJ0eVNs
b3QoZXhlYywgcHJvcGVydHlOYW1lLCBib3VuZFByb3RvdHlwZVNsb3QpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUoYm91bmRQcm90b3R5cGVTbG90LnNsb3RCYXNlKCksIGJv
dW5kUHJvdG90eXBlU2xvdC5hdHRyaWJ1dGVzKCksIGJvdW5kUHJvdG90eXBlU2xvdC5nZXRWYWx1
ZShleGVjLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUpIHsKLSAgICAgICAg
ICAgIFByb3BlcnR5U2xvdCBuYW1lU2xvdCh0aGlzT2JqZWN0KTsKLSAgICAgICAgICAgIGlmIChC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgZXhlYy0+dm0oKS5wcm9w
ZXJ0eU5hbWVzLT5ib3VuZEZ1bmN0aW9uTmFtZVByaXZhdGVOYW1lLCBuYW1lU2xvdCkpIHsKLSAg
ICAgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCBuYW1lU2xvdC5nZXRWYWx1ZShleGVjLCBleGVjLT52bSgpLnByb3Bl
cnR5TmFtZXMtPmJvdW5kRnVuY3Rpb25OYW1lUHJpdmF0ZU5hbWUpKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAocHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKLSAgICAgICAgICAg
IFByb3BlcnR5U2xvdCBsZW5ndGhTbG90KHRoaXNPYmplY3QpOwotICAgICAgICAgICAgaWYgKEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBleGVjLT52bSgpLnByb3Bl
cnR5TmFtZXMtPmJvdW5kRnVuY3Rpb25MZW5ndGhQcml2YXRlTmFtZSwgbGVuZ3RoU2xvdCkpIHsK
LSAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5LCBsZW5ndGhTbG90LmdldFZhbHVlKGV4ZWMsIGV4ZWMtPnZtKCku
cHJvcGVydHlOYW1lcy0+Ym91bmRGdW5jdGlvbkxlbmd0aFByaXZhdGVOYW1lKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
ICAgIAorICAgIGlmICh0aGlzT2JqZWN0LT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpKQogICAg
ICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgfQotICAgIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZUZvckhhc0luc3RhbmNlUHJpdmF0ZU5hbWUpIHsKKwor
ICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkg
ewogICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1
dGVzOwogICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSB0aGlzT2JqZWN0LT5nZXREaXJl
Y3RPZmZzZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIGlmICghaXNW
YWxpZE9mZnNldChvZmZzZXQpKSB7CiAgICAgICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0g
Y29uc3RydWN0RW1wdHlPYmplY3QoZXhlYyk7CiAgICAgICAgICAgICBwcm90b3R5cGUtPnB1dERp
cmVjdCh2bSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB0aGlzT2JqZWN0LCBE
b250RW51bSk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RQcm90b3R5cGVQcm9w
ZXJ0eSh2bSwgcHJvdG90eXBlLCBEb250RGVsZXRlIHwgRG9udEVudW0pOworICAgICAgICAgICAg
dGhpc09iamVjdC0+cHV0RGlyZWN0KHZtLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
LCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBEb250RW51bSk7CiAgICAgICAgICAgICBvZmZzZXQg
PSB0aGlzT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQodm0sIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5w
cm90b3R5cGUsIGF0dHJpYnV0ZXMpOwogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRPZmZzZXQo
b2Zmc2V0KSk7CiAgICAgICAgIH0KQEAgLTQzMywyMyArMzkwLDE2IEBAIGJvb2wgSlNGdW5jdGlv
bjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOCiB2b2lkIEpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTRnVuY3Rpb24qPihvYmplY3QpOwotICAgIGlmIChtb2RlID09IElu
Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpIHsKLSAgICAgICAgYm9vbCBzaG91bGRJbmNsdWRlSlNG
dW5jdGlvblByb3BlcnRpZXMgPSAhdGhpc09iamVjdC0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24o
KTsKLSAgICAgICAgaWYgKCFzaG91bGRJbmNsdWRlSlNGdW5jdGlvblByb3BlcnRpZXMgJiYgdGhp
c09iamVjdC0+aXNCdWlsdGluRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgUHJvcGVydHlTbG90
IGJvdW5kRnVuY3Rpb25TbG90KHRoaXNPYmplY3QpOwotICAgICAgICAgICAgc2hvdWxkSW5jbHVk
ZUpTRnVuY3Rpb25Qcm9wZXJ0aWVzID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5ib3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUs
IGJvdW5kRnVuY3Rpb25TbG90KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoc2hvdWxkSW5jbHVk
ZUpTRnVuY3Rpb25Qcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwotICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlmaWVkLgot
ICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCk7Ci0gICAgICAgICAgICB0
aGlzT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHNsb3QpOworICAgIGlmICghdGhp
c09iamVjdC0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAobW9kZSA9PSBJbmNsdWRlRG9u
dEVudW1Qcm9wZXJ0aWVzKSkgeworICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAg
ICAvLyBNYWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZpZWQuCisgICAgICAgIFByb3Bl
cnR5U2xvdCBzbG90KHRoaXNPYmplY3QpOworICAgICAgICB0aGlzT2JqZWN0LT5tZXRob2RUYWJs
ZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCB2bS5wcm9wZXJ0eU5h
bWVzLT5wcm90b3R5cGUsIHNsb3QpOwogCi0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2
bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMpOwotICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5h
ZGQodm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVyKTsKLSAgICAgICAgICAgIHByb3BlcnR5TmFtZXMu
YWRkKHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVz
LmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lKTsKLSAgICAgICAgfQorICAgICAgICBwcm9wZXJ0
eU5hbWVzLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMpOworICAgICAgICBwcm9wZXJ0
eU5hbWVzLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZXIpOworICAgICAgICBwcm9wZXJ0eU5h
bWVzLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpOworICAgICAgICBwcm9wZXJ0eU5hbWVz
LmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lKTsKICAgICB9CiAgICAgQmFzZTo6Z2V0T3duTm9u
SW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUp
OwogfQpAQCAtNDY5LDEwICs0MTksOCBAQCB2b2lkIEpTRnVuY3Rpb246OnB1dChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSgogICAgICAg
ICB0aGlzT2JqZWN0LT5tX2FsbG9jYXRpb25Qcm9maWxlLmNsZWFyKCk7CiAgICAgICAgIHRoaXNP
YmplY3QtPm1fYWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50LmZpcmVBbGwoKTsKICAgICAgICAg
Ly8gRG9uJ3QgYWxsb3cgdGhpcyB0byBiZSBjYWNoZWQsIHNpbmNlIGEgW1tQdXRdXSBtdXN0IGNs
ZWFyIG1fYWxsb2NhdGlvblByb2ZpbGUuCi0gICAgICAgIFB1dFByb3BlcnR5U2xvdCBkb250Q2Fj
aGVQcm90b3R5cGUodGhpc09iamVjdCk7Ci0gICAgICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBkb250Q2FjaGVQcm90b3R5cGUpOwotICAgICAgICBQ
dXRQcm9wZXJ0eVNsb3QgZG9udENhY2hlUHJvdG90eXBlRm9ySGFzSW5zdGFuY2UodGhpc09iamVj
dCk7Ci0gICAgICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkucHJvdG90eXBlRm9ySGFzSW5zdGFuY2VQcml2YXRlTmFtZSwgdmFsdWUsIGRvbnRDYWNo
ZVByb3RvdHlwZUZvckhhc0luc3RhbmNlKTsKKyAgICAgICAgUHV0UHJvcGVydHlTbG90IGRvbnRD
YWNoZSh0aGlzT2JqZWN0KTsKKyAgICAgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIGRvbnRDYWNoZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSAmJiAocHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMgfHwgcHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpKSB7CkBAIC01MTcsMTAgKzQ2NSw3
IEBAIGJvb2wgSlNGdW5jdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hCiAgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRh
YmxlKGV4ZWMtPnZtKCkpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgdGhpc09iamVjdC0+bV9hbGxvY2F0aW9uUHJvZmls
ZS5jbGVhcigpOwogICAgICAgICB0aGlzT2JqZWN0LT5tX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hw
b2ludC5maXJlQWxsKCk7Ci0gICAgICAgIGlmICghQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0aW9uKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgQmFzZTo6ZGVmaW5lT3duUHJvcGVydHko
b2JqZWN0LCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlRm9ySGFzSW5zdGFu
Y2VQcml2YXRlTmFtZSwgZGVzY3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCB0aHJvd0V4Y2VwdGlvbik7CiAgICAgfQog
CiAgICAgYm9vbCB2YWx1ZUNoZWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3JJbmxpbmVzLmgKaW5kZXggZmE2ZjdmYTFkM2Y5NTVlMjg2YTk1NGI5ZDY2YzI2ZjYzNDA2
MzllOC4uMmRkYzI5ZjcxODk3YmI1MWQzOTBiMDZiMjVhNzM4MzM4NzRiYTBjMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC00Myw3ICs0Myw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2Jq
ZWN0KiBwcm90b3R5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSwgbmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0
VHJhbnNpdGlvbnModm0sIHByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIHByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
OwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPkJZVEVT
X1BFUl9FTEVNRU5ULCBqc051bWJlcihWaWV3Q2xhc3M6OmVsZW1lbnRTaXplKSwgRG9udEVudW0g
fCBSZWFkT25seSB8IERvbnREZWxldGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDYyMDA4MDgwZTQyYTM3ZWJmN2RhOTQx
NjZjZDZjOGU3MzA3MjdhY2IuLjQ5ZDg2YTc1ZTc4MjBhNmE1NjA3YjFjN2JkYjY1NjFlMzYyN2Uz
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNB
cnJheUl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIkpTQ2FsbGJhY2tGdW5jdGlvbi5oIgpAQCAtMjc3LDYgKzI3OCw3IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90eXBlKQogCiAgICAgbV9mdW5jdGlvblByb3Rv
dHlwZS5zZXQodm0sIHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBlOjpjcmVhdGUodm0sIEZ1bmN0aW9u
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGpzTnVsbCgpKSkpOyAvLyBUaGUg
cmVhbCBwcm90b3R5cGUgd2lsbCBiZSBzZXQgb25jZSBPYmplY3RQcm90b3R5cGUgaXMgY3JlYXRl
ZC4KICAgICBtX2Z1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CisgICAg
bV9ib3VuZEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNCb3VuZEZ1bmN0aW9uOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKICAg
ICBtX25hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBTdHJ1Y3R1cmU6OmFkZFBy
b3BlcnR5VHJhbnNpdGlvbih2bSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgdm0ucHJvcGVy
dHlOYW1lcy0+bmFtZSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0sIDAsIG1fZnVu
Y3Rpb25OYW1lT2Zmc2V0KSk7CiAgICAgbV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2
bSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1
bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CiAgICAgSlNGdW5jdGlvbiogY2FsbEZ1bmN0aW9uID0g
MDsKQEAgLTQ1MSw3ICs0NTMsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB9CiAgICAgCiAgICAgSlNGdW5jdGlvbiogYnVpbHRpbkxvZyA9IEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgdm0ucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVu
dGlmaWVyLnN0cmluZygpLCBnbG9iYWxGdW5jQnVpbHRpbkxvZyk7Ci0gICAgSlNGdW5jdGlvbiog
c2V0VHlwZUVycm9yQWNjZXNzb3IgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZt
LnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmllci5zdHJpbmcoKSwgZ2xvYmFsRnVuY1NldFR5
cGVFcnJvckFjY2Vzc29yKTsKICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1td
ID0gewogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBq
c05hTigpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLApAQCAtNDU5LDggKzQ2MCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJl
c2V0KEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPk9iamVjdFByaXZhdGVOYW1lLCBvYmplY3RDb25zdHJ1Y3RvciwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVycm9yQ29u
c3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRl
TmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+U2V0VHlwZUVycm9yQWNj
ZXNzb3JQcml2YXRlTmFtZSwgc2V0VHlwZUVycm9yQWNjZXNzb3IsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KQorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+QnVpbHRpbkxvZ1ByaXZhdGVOYW1lLCBidWlsdGluTG9nLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSkKICAgICB9OwogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xv
YmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAKaW5kZXggYTQ5MmY4NTVlMDJhZGYxYzgyNzk0OGQ3MTdjYmUxNjlhMmJhNjM1ZS4uYzUy
ZTkzODIwOThkNzQyZDk2OWY1MzBhMDE4YTUwNjFiYThkM2ExNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgi
CiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdC5oIgpAQCAtODEzLDE5ICs4MTIsNCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNCdWlsdGluTG9nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi0gICAgCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRUeXBlRXJyb3JBY2Nlc3NvcihFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNPYmplY3QqIHRhcmdldCA9IGpzRHluYW1pY0Nhc3Q8SlNP
YmplY3QqPihleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgSlNWYWx1ZSBwcm9wZXJ0eU5hbWUgPSBl
eGVjLT5hcmd1bWVudCgxKTsKLSAgICAKLSAgICAvLyBTZXR0aW5nIF9fcHJvdG9fXyBvZiBhIHBy
aW1pdGl2ZSBzaG91bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgaWYgKCF0YXJnZXQgfHwgIXByb3Bl
cnR5TmFtZS5pc1N0cmluZygpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSWRlbnRpZmllciBwcm9w
ZXJ0eShleGVjLCBhc1N0cmluZyhwcm9wZXJ0eU5hbWUpLT5nZXRTdHJpbmcoZXhlYykpOwotICAg
IHRhcmdldC0+cHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
YXJndW1lbnRzLCB0YXJnZXQtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNl
dHRlcih2bSksIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotICAgIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuaAppbmRleCA4ODFiOWM4MzJlZjk3NDc1OGM5NjIzNWMxOTJhOWM1OTFh
YWEyYjY4Li4yOTIyZDYxM2UzYWU0Mzg5NTFiYTcxYjAxYjUyZTExOTViN2MxZWNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmgKQEAgLTUzLDggKzUzLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jUHJvdG9HZXR0ZXIoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRlcihFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coRXhlY1N0YXRlKik7CiAgICAgCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRUeXBlRXJyb3JBY2Nlc3Nv
cihFeGVjU3RhdGUqKTsKLSAgICAKIHN0YXRpYyBjb25zdCBkb3VibGUgbWFudGlzc2FPdmVyZmxv
d0xvd2VyQm91bmQgPSA5MDA3MTk5MjU0NzQwOTkyLjA7CiBkb3VibGUgcGFyc2VJbnRPdmVyZmxv
dyhjb25zdCBMQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgaW50IHJhZGl4KTsKIGJvb2wgaXNTdHJX
aGl0ZVNwYWNlKFVDaGFyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcAppbmRleCA2YWRlNjcwNGJmNGE3OTk1MjAwZjgyY2YyNDA0MmFjNTEyZDdhZTQ5Li5lMzAz
ZTc5NGEzZTk5ZTExOTMxYjM1NDdjMzNjMTM4MGFkNjUwOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0yNjY4LDE3ICsyNjY4LDUgQEAgSlNPYmpl
Y3QqIHRocm93VHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQogewogICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCBtZXNzYWdlKSk7CiB9Ci0gICAgCi12b2lkIEpTT2JqZWN0OjpwdXREaXJl
Y3RQcm90b3R5cGVQcm9wZXJ0eShWTSYgdm0sIEpTVmFsdWUgdmFsdWUsIGludCBhdHRyaWJ1dGVz
KQotewotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCB2YWx1
ZSwgYXR0cmlidXRlcyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90
b3R5cGVGb3JIYXNJbnN0YW5jZVByaXZhdGVOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcyk7Ci19Ci0g
ICAgCi12b2lkIEpTT2JqZWN0OjpwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFu
c2l0aW9ucyhWTSYgdm0sIEpTVmFsdWUgdmFsdWUsIGludCBhdHRyaWJ1dGVzKQotewotICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IHZhbHVlLCBhdHRyaWJ1dGVzKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlRm9ySGFzSW5zdGFuY2VQcml2YXRlTmFtZSwgdmFs
dWUsIGF0dHJpYnV0ZXMpOwotfQotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDBmZWE5YjkwOTYyNjY4NTk0YjM5
YjM1MjFlOTgxMDliODIxYzkwNjIuLjUyMWI1ZjRiNjhlMGQyYzI0ZjY5MDkyNzA5NDAyNWU5MWI4
Y2UyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTMy
LDkgKzkzMiw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAotICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkoVk0mLCBKU1ZhbHVlLCBp
bnQpOwotICAgIHZvaWQgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlv
bnMoVk0mLCBKU1ZhbHVlLCBpbnQpOwotICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
TExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAppbmRleCBiOTIwNjFk
MzdiMWQ2NTk0OWViMjA4MzgwYjQ2ZTRiODViZjk5ODFhLi40MDI2MTk2MzNmYTA2ZmQyNTRiM2Yy
YTdhOGNjNzFlODA3YWFmOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCkBAIC04Niw3ICs4Niw3IEBAIEpTUHJv
bWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogdm9pZCBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU1Byb21pc2VQcm90b3R5cGUqIHByb21pc2VQcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0sICJQcm9taXNlIik7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJv
cGVydHlXaXRob3V0VHJhbnNpdGlvbnModm0sIHByb21pc2VQcm90b3R5cGUsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm9taXNlUHJvdG90eXBlLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwg
RG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IGMwYjIzYTMwMWQ1YzlmNzVjNzQwZmQ5
ZGRlNmM3ZjhlMTM5NjZlNWMuLjllM2E0YmYzYjY5MzY5ZjQ1NGJlOThiNTAzNGI2MjkyOWRkZmVi
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgY29uc3QgQ2xhc3NJbmZvIE1hcENvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUEKIHZvaWQgTWFw
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTWFwUHJvdG90eXBlKiBtYXBQcm90
b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIG1hcFByb3RvdHlwZS0+Y2xh
c3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRo
b3V0VHJhbnNpdGlvbnModm0sIG1hcFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIG1hcFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERl
bGV0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
cEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDk3ZThhNjQ2OTlmNTIyYzljYmJiNWQ3
YjI5YzM4NDYzYmRkNjI0OC4uZmJjNmM4YjczNTEyMzczNjgxZmE4NjhiNTJkYjNlMDE2NzhhYmUw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRl
cmF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgY29uc3QgQ2xhc3NJbmZvIE1h
cEl0ZXJhdG9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIk1hcEl0ZXJhdG9yIEl0ZXJhdG9yIiwg
JkJhc2UKIHZvaWQgTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBNYXBJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlKQogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0
aW9ucyh2bSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Cisg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDZjODI1NmU1NTU3ZWVlOGQ1NDc2Mzc5Y2RhZWRjNDgwZDc3OWZhNGIuLjM5MjY4
ODMwNWY2ZmUxZTQzYzA2M2YyOGJmNWE1NmU1ZTAyZGVhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZUNvbnN0cnVjdG9yLmNwcApAQCAtNDQsNyArNDQsNyBA
QCBOYW1lQ29uc3RydWN0b3I6Ok5hbWVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogdm9pZCBOYW1lQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTmFt
ZVByb3RvdHlwZSogcHJvdG90eXBlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBw
cm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3RvdHlw
ZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGJlNTE4MTMwY2ZhNGU4MGUw
ZDZhMzVkYWZhOWNhNDJhNGZiNzU2OGIuLjYyNjAwNTU1YjRjNjJjZDBjNWYzZjQzZjhiMTUyZjM5
NDc1Y2RlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0CiAgICAgTmF0aXZlRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSA9IE5hdGl2
ZUVycm9yUHJvdG90eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlU3RydWN0
dXJlLCBuYW1lLCB0aGlzKTsKICAgICAKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVt
KTsgLy8gRUNNQSAxNS4xMS43LjUKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwg
cHJvdG90eXBlLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIG1fZXJyb3JTdHJ1Y3R1cmUuc2V0KHZtLCB0
aGlzLCBFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlKSk7CiAgICAgQVNTRVJUKG1fZXJyb3JTdHJ1Y3R1cmUpOwogICAgIEFTU0VSVChtX2Vy
cm9yU3RydWN0dXJlLT5pc09iamVjdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCA3ODcwOGJmMzA3ODNiMTY5ZThl
NTUwZTljMTVjYTZhYmNkMDM0ODUwLi4wNGM1MDk4MzhlNDBjMTNhNzE2Y2MyMzNlODE3NTc1Mzc2
Nzg5MWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
Q29uc3RydWN0b3IuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgTnVtYmVyQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5cGUp
CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogCiAgICAgLy8gTnVtYmVyLlByb3RvdHlw
ZQotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBu
dW1iZXJQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
LCBudW1iZXJQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAog
ICAgIC8vIG5vLiBvZiBhcmd1bWVudHMgZm9yIGNvbnN0cnVjdG9yCiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSks
IFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA4NzkzZDhlYjI0
NzcxNjk1NmIxMmQ4NDM5YTdmYWMxOTg5Y2NhOGMwLi5hM2MxOTI3OTA3NzBkOTI1ZTVlOTJlYTBj
ZTgxYmNlYmE1Yjk4YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgT2JqZWN0Q29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgT2JqZWN0UHJvdG90eXBlKiBvYmplY3RQ
cm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIElkZW50aWZpZXIoJnZt
LCAiT2JqZWN0Iikuc3RyaW5nKCkpOwogICAgIC8vIEVDTUEgMTUuMi4zLjEKLSAgICBwdXREaXJl
Y3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgb2JqZWN0UHJvdG90eXBl
LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgb2JqZWN0UHJvdG90
eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgLy8gbm8uIG9mIGFy
Z3VtZW50cyBmb3IgY29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250
RW51bSB8IERvbnREZWxldGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IGUwMGMwN2ZkYjVmZjQ5M2E2YTFiMzhi
ZTY1ZGUxNzBiMzg1YjQxMWMuLjBjNmJmNDg4NmViZjUwZGQ1MDE5YmNhOTFkMWY4YTRmYzRjMDM2
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFByb3RvdHlwZSkKICAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiAKICAgICAvLyBFQ01BIDE1LjEwLjUuMSBSZWdF
eHAucHJvdG90eXBlCi0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNp
dGlvbnModm0sIHJlZ0V4cFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIHJlZ0V4cFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpOwogCiAgICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKICAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigyKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4IGZjMWEz
OGE3YTdlZmI4ZmM3MGE1MTA4MDBiYjliY2JkYzI1Mjc0OTguLmIyMDM4ODhkM2MxNmNkYTNjMDAz
NTA2MjA4YWUwODY5NWRjNWRhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgY29uc3QgQ2xhc3NJbmZv
IFNldENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIDAs
IDAsIENSRUEKIHZvaWQgU2V0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2V0
UHJvdG90eXBlKiBzZXRQcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0s
IHNldFByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJv
dG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbnModm0sIHNldFByb3RvdHlwZSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHNldFByb3RvdHlwZSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8
IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZTg5OGI3
M2RlYjI0ZTE3NzUzOWEwMzE3ZTljMTcwMzViODM2NzVjNS4uYzE2ZmY5YmVkOWZjY2YyOWE5YWNl
OWViMzU5OTgwNTM3YzYzYTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAg
Y29uc3QgQ2xhc3NJbmZvIFNldEl0ZXJhdG9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlNldCBJ
dGVyYXRvciIsICZCYXNlOjpzX2luZm8KIHZvaWQgU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBTZXRJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlKQogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9w
ZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCBmODlkODgzOWY5OTY1ZGU1ZTU1ZDgyYTI2
MTkzYzNjYTkzODg0ZjU5Li5mODIyMWQ3Y2JjYzQ5MzM0MDdhYTM0Yzk1YTk3YjE1ODBjM2IzNjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3Ry
dWN0b3IuY3BwCkBAIC01Niw3ICs1Niw3IEBAIFN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBTdHJpbmdDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTdHJpbmdQcm90b3R5cGUqIHN0cmluZ1Byb3Rv
dHlwZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgc3RyaW5nUHJvdG90eXBlLT5j
bGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdp
dGhvdXRUcmFuc2l0aW9ucyh2bSwgc3RyaW5nUHJvdG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVt
IHwgRG9udERlbGV0ZSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgc3RyaW5nUHJvdG90eXBlLCBSZWFkT25seSB8IERvbnRF
bnVtIHwgRG9udERlbGV0ZSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0g
fCBEb250RGVsZXRlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZTRiMzEyMzA4MzE0ZWI3MTJlYTA4ZGJm
YjNhMzkwNjM1NDE5ZWMyYi4uZjM1NDBmYWFhOTBiMDQzZGI1MWI2YjQ5YmRiYzEwMDZlMDY1Mzk3
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29u
c3RydWN0b3IuY3BwCkBAIC0zOSw3ICszOSw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWFrTWFwQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwKIHZv
aWQgV2Vha01hcENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYWtNYXBQcm90
b3R5cGUqIHByb3RvdHlwZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJvdG90
eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9w
ZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250
RGVsZXRlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bWFnZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggNDBhZmNhMWY0Nzc0Njg4ZmJmMWJhYjY1YzRhMzJmZDE3ZmZm
YzM3ZS4uYTg2ZWZmZDEzZTdmNWI4YTI0YzUwMGNjNmUwNmU5MjkxOWUyNzY3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4g
KHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAw
NywgMjAwOCwgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDcgKzQz
LDcgQEAgdm9pZCBKU0ltYWdlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXRE
aXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpz
ZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBOb25lKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxmKHZt
LCBnbG9iYWxPYmplY3QpLCBOb25lKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SW1hZ2UoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA5MGYxNWQ4
OTRiZmExZGI5NWRhNTY0OWQzZDZhOTZlY2IzYjM5M2U4Li5mYjEyYTRkNWRjZDU3MThlNzUwNWFl
NThhNjgxNjUwNjE2MTY1MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDUyNiwxNSArNDUyNiwxNSBAQCBzdWIgR2Vu
ZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoSXNET01HbG9iYWxPYmplY3Qo
JGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
QVNTRVJUKGluaGVyaXRzKGluZm8oKSkpO1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgZ2xvYmFsT2JqZWN0LT5wcm90
b3R5cGUoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IGdsb2JhbE9iamVjdC0+cHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4iKTsK
ICAgICB9IGVsc2lmICgkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7
XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cyhp
bmZvKCkpKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0
UHJvdG90eXBlUHJvcGVydHkodm0sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c2VsZih2bSwgZ2xv
YmFsT2JqZWN0KSwgTm9uZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCAke2NsYXNzTmFtZX1Q
cm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIE5vbmUpO1xuIik7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGluaGVy
aXRzKGluZm8oKSkpO1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXRE
aXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYodm0sIGds
b2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4iKTsKKyAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTtcbiIpOwogICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKCR7bGVhc3RD
b25zdHJ1Y3Rvckxlbmd0aH0pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4i
KSBpZiBkZWZpbmVkICRsZWFzdENvbnN0cnVjdG9yTGVuZ3RoOwogICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IGE3
ZWFmNmY5NDg5Mjk5YWIyMTM0NWM2MTcwYzZmZjZhZjIxZWQ3MDUuLjc3MzM0ZmJmNWI2MzZmMzIx
NmYwZTk1NmUyOTkyMjBlOWNhMjkyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqCiB7CiAgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAg
ICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJv
dG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RBY3Rp
dmVET01PYmplY3RQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgs
IGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IDE2NzBkODg1OTVhMzVlNzFm
YjZlNjY0YTUzNGNmN2YwNThkNWI2YmEuLjQ0YzQxNWQ5YjJmM2E0NTRhMGFiNGE2MjE2ZGRlODdi
YzQ1YjkxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtNzAs
NyArNzAsNyBAQCB2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplYwogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0
UHJvdG90eXBlUHJvcGVydHkodm0sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpz
ZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlclByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMCksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDAyMjk2NTRmNWQ1ZmFjNjdiNGYwN2RhNTIy
OTFiMTA5MGMxMmI3N2MuLjlhZDllZWZkYmRjOGU4ZmUzNjMzOGRiMGNiZmNjZGI1N2YxZWI2Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
dm9pZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNET01HbG9iYWxPYmplY3QKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVBy
b3BlcnR5KHZtLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9i
YWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBl
OjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9u
bHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cAppbmRleCA3NjdmYjlhN2IyY2JjNjk5NWZmNDZjMjU4ZDcwN2U1M2M5NDhjOTlhLi5kZWJlZTk3
Y2Q2YWFhOTBkMTExYTdkOTQ2ODQ4YzNiM2M4MzhjMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdl
dC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG8KIHsKICAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwot
ICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RFdmVudFRhcmdldFByb3Rv
dHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFk
T25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5jcHAKaW5kZXggMjBiYjkyMGNhY2Y0ODg5NjQ5ODA2YjVmZmZiNTc5YjlkYzcwNGFl
Zi4uNWUzYTZlYjMwZTk2MWVlYmY1Nzg3ZTdjMTZmYmNmNzlhMmZhYzY0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmEKIHsK
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8o
KSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RFeGNlcHRpb25Q
cm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7
CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEV4
Y2VwdGlvblByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDA4MzNmZDNiOGI1NTg5MDlj
NjAzNjYyMTliN2I3YzM3OWY2MmQxOGYuLmY4ZmZiNjlhYWM0NTEzMWNiZjFkMjg0OWUwMDRlYmRh
OTkwZTdmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAg
LTUyLDcgKzUyLDcgQEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmoKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERp
cmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90
eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGQyMTc4OWI1MjA4MmNkNGVjMjliMzQzM2RmMjNhYjdi
ZGYzMzM5NzAuLmQ2YzBmZWUwYjBlMjM5MzdkNzllZDE1MzA2ZGQwZWEyMmZmN2Q2ZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmEKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBS
ZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDJk
ZTZkZWExOGFlZmUxNDY4ZjVkYTdlYTNhYWU5YTIyZTBlN2QyNmIuLjhiODk3MDdjZDg5NmY5M2Ni
YTJhZGZjNGE1NjgzNDA2OGQ3MjQ3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9i
YWwKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRz
KGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cHJvdG90eXBlLCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpzZWxmKHZt
LCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250
RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMWQ3N2I4MmQ5NjQyYzc3N2EzNTVhNjczZTYxZTM2Mzc4ZjE4YzNjZC4uODZjMzIz
NzZmM2E3NDg4YzM0NTk1OTFmYTE5ODMxYTcyMjFmMDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dAogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
aW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkodm0sIEpTVGVzdE5hbWVk
Q29uc3RydWN0b3JQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250
RW51bSk7CiB9CiAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
TmFtZWRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE8KIHsK
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0
TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7
CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIE5vbmUpOwog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
UmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXgg
ZWRmOGM5YzIxYjNjNDg3ZjUwNDRmOWMwZjY0ZWE5MGI0NzUxNWM0Yy4uYjA3MGVhZDhhMTVlMGM5
NzIwNzhkOGU0Y2VmNTdkZmE3ODc0NGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtNjIsNyArNjIsNyBA
QCB2b2lkIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBl
UHJvcGVydHkodm0sIEpTVGVzdE5vZGVQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCks
IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5wcm90b3R5cGUsIEpTVGVzdE5vZGVQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250
RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAppbmRleCAxNjZh
YmEwNzQwNTI1MDc4ODcyNjJhMzJlMjcxMDliOWI5ZGYyYzgyLi5lYmJmZGFkNDE3YjQyODE4NzM2
MDA1YzQ2MjQxNDBmMTJjMTFhM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
Y3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0CiB7CiAgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAg
ICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1By
b3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsK
KyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAppbmRleCAxY2ViMzNjYzA4MjY1MjkwNDkzZTcyZTkyZTJjMGMyOTBmZDlkZTc1Li44
MWIzZDlmMWU4MDM0NGU1M2IwNjI5NGI1ZDI5MGJiMmY3MDBkMWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAt
MjQyLDcgKzI0Miw3IEBAIHZvaWQgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiB7CiAgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXRE
aXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKHZtLCBn
bG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYodm0s
IGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRE
ZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzLmNwcAppbmRleCA1MzQyNDQ0YTJjODMyZjRiZWM0MzgyOGZkMzBjMTY3ZjU3MDJi
NDAwLi5kOGNhNzRlODU4MWM0N2MzZGIwYzFhOWE5YmM2ZmI3NWQyYThhNjYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0xMjEsNyArMTIxLDcg
QEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWwKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlw
ZVByb3BlcnR5KHZtLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlOjpzZWxm
KHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051
bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmlu
ZGV4IGRlNTkzZTUyMzNlODljODE5OWQzMTYxZWViOWJjMzMzZTAyYWExNjIuLmZlMzkwMjQyOTcx
YTAxMzc5YjcxNTFlYTIwM2I1NGMyOGE2ZWYyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC02MCw3ICs2MCw3IEBA
IHZvaWQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNECiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQ
cm9wZXJ0eSh2bSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBl
OjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERv
bnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDZiMGQ0OWY0MzQyNzI3ZWY2NGVhZGJhMmNm
ZjcxMDZjMmViMGJiMWQuLjQ4NTgxMWU2MDdmZDg2YjMyNGQxOGU3MWMzNmI2YWUyYWYwYjExZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEpTVGVzdFR5cGVk
ZWZzQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbAogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkodm0sIEpTVGVz
dFR5cGVkZWZzUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
LCBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMiksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
YXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U2F0dHJpYnV0ZS5jcHAKaW5kZXggZTdhMWViMThhMWY5MzE2MzhlNGZmOTdlMmQ5NWVkMmU3NjY0
NDZjNS4uODgzMjRmODhiMGQ3NjQ0NjFkNDk4MGIwZGI4ZGExNmEyMjA5MWY1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1
dGUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgSlNhdHRyaWJ1dGVDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiB7CiAgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsK
LSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNhdHRyaWJ1dGVQcm90b3R5cGU6
OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTYXR0cmlidXRlUHJvdG90
eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVh
ZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNjMw
NjQ5YWMyN2EwNTNhMmZiNGI5MzkwY2FhMDFmODU5NDExYmUzZS4uZDQ0MzA4YWRmNGJkMzgxMDZm
ODViZTQ5N2M2MTE3MjhmNGM5NjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtNTIsNyArNTIsNyBAQCB2
b2lkIEpTcmVhZG9ubHlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJv
cGVydHkodm0sIEpTcmVhZG9ubHlQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERv
bnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIEpTcmVhZG9ubHlQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCks
IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51
bSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA1ZDA2NWY4MGYxYmU2MGU4MTFiYmRkY2JhYWI2YzZiNWE5OTc3ODcy
Li43NDFlNDNmYzBiYjBkZmVkYWZiZGJlNzBmMTJkNjJmODFkN2JhMmJlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMTQtMDQtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjcxOTksIHIxNjcyNTEs
IGFuZCByMTY3MjcyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxNjcxCisKKyAgICAgICAgQ2F1c2VkIGEgRFlFQmVuY2ggcmVncmVzc2lvbiBhbmQg
ZG9lcyBub3Qgc2VlbSB0byBpbXByb3ZlIHBlcmYKKyAgICAgICAgb24gcmVsZXZhbnQgd2Vic2l0
ZXMgKFJlcXVlc3RlZCBieSBybml3YSBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBj
aGFuZ2VzZXRzOgorCisgICAgICAgICJSZXdyaXRlIEZ1bmN0aW9uLmJpbmQgYXMgYSBidWlsdGlu
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMDgz
CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2NzE5OQorCisgICAg
ICAgICJVcGRhdGUgdGVzdCByZXN1bHQiCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzE2NzI1MQorCisgICAgICAgICJGdW5jdGlvbi5iaW5kIGl0c2VsZiBpcyB0b28g
c2xvdyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MTYzNgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjcyNzIKKwog
MjAxNC0wNC0xNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSBjb21wb3NpdGluZy9yZXBhaW50L3Bvc2l0aW9uZWQtbW92ZW1lbnQuaHRtbCBmbGFr
eSwgbWlzc2luZyByZXBhaW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZnVuY3Rp
b24tYmluZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZnVuY3Rpb24tYmluZC1l
eHBlY3RlZC50eHQKaW5kZXggZDZiN2E5ODhlNmRmMzNjMDRhYTMxODllNDI4OGNmMjFkODJhZmJk
NS4uYjMxODZmYmM3MDk5OGYwYzgzNmYxYWFjNzM2ODI1YWIyNTZhNjdiNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvanMvZG9tL2Z1bmN0aW9uLWJpbmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1iaW5kLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAg
VGVzdHMgRnVuY3Rpb24uYmluZC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNT
IG5ldyAoZGVjb2RlVVJJLmJpbmQoKSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBmdW5j
dGlvbiBpcyBub3QgYSBjb25zdHJ1Y3Rvci4KK1BBU1MgbmV3IChkZWNvZGVVUkkuYmluZCgpKSgp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9y
IChldmFsdWF0aW5nICduZXcgKGRlY29kZVVSSS5iaW5kKCkpKCknKS4KIFBBU1MgKG5ldyAoU3Ry
aW5nLmJpbmQoKSkoJ2ZvbycpKS50b1N0cmluZygpIGlzICdmb28nCiBQQVNTIHJlc3VsdCBpcyAi
W29iamVjdCBXaW5kb3ddIC0+IHg6MSwgeToyIgogUEFTUyByZXN1bHQgaXMgIidhJyAtPiB4Oidi
JywgeToxIgpAQCAtMjMsOSArMjMsOSBAQCBQQVNTIGggaW5zdGFuY2VvZiBIIGlzIHRydWUKIFBB
U1MgInByb3RvdHlwZSIgaW4gRiBpcyB0cnVlCiBQQVNTICJwcm90b3R5cGUiIGluIEcgaXMgZmFs
c2UKIFBBU1MgInByb3RvdHlwZSIgaW4gSCBpcyBmYWxzZQotUEFTUyBGdW5jdGlvbi5iaW5kLmNh
bGwodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBDYW5ub3QgYmluZCBub24t
ZnVuY3Rpb24gb2JqZWN0Li4KK1BBU1MgRnVuY3Rpb24uYmluZC5jYWxsKHVuZGVmaW5lZCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYWJjQXQoMSkgaXMgImIi
Ci1QQVNTIG5ldyBhYmNBdCgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBmdW5jdGlvbiBp
cyBub3QgYSBjb25zdHJ1Y3Rvci4KK1BBU1MgbmV3IGFiY0F0KDEpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcg
YWJjQXQoMSknKS4KIFBBU1MgYm91bmRGdW5jdGlvblByb3RvdHlwZUFjY2Vzc2VkIGlzIGZhbHNl
CiBQQVNTIEZ1bmN0aW9uLmJpbmQubGVuZ3RoIGlzIDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZnVuY3Rpb24tYmlu
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Z1bmN0aW9uLWJpbmQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDBkOTE1NTA4MmM3ZWEw
ODg4YzIxODEzYzM0OWM0MzBjMTdmOTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZnVuY3Rpb24tYmluZC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZnVuY3Rp
b24tYmluZAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9mdW5jdGlvbi1iaW5kLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Z1bmN0aW9uLWJpbmQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmQzZDIzMmFiY2JmOTU1YmYxOGM4MDg3ZDhlNDJiZDJhMDY1
YmZhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2Z1bmN0aW9uLWJpbmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2Z1bmN0aW9uLWJpbmQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tYmluZC5q
cyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWJpbmQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMzYwYjI4NWRjZDYxNGMyN2NiNzY4NTM4
YTYyNjVlYjkyYzE2M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tYmluZC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLWZ1bmN0aW9uIGZvbyhhLGIpIHsKLSAg
ICByZXR1cm4gYSBeIGIgKyBhcmd1bWVudHMubGVuZ3RoOwotfQotCi12YXIgZzAgPSBmb28uYmlu
ZCh7fSk7Ci12YXIgZzEgPSBmb28uYmluZCh7fSwgMSk7Ci12YXIgZzIgPSBmb28uYmluZCh7fSwg
MSwgMik7Ci12YXIgZzMgPSBmb28uYmluZCh7fSwgMSwgMiwgMyk7Ci12YXIgc3RhcnQgPSBuZXcg
RGF0ZTsKLQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7Ci0gICAgcmVzdWx0ICo9IDM7Ci0gICAgcmVzdWx0ICs9IGcwKGksIHJlc3VsdCk7Ci0gICAg
cmVzdWx0ICs9IGcxKCk7Ci0gICAgcmVzdWx0ICs9IGcxKGkpOwotICAgIHJlc3VsdCArPSBnMShp
LCByZXN1bHQpOwotICAgIHJlc3VsdCArPSBnMigpOwotICAgIHJlc3VsdCArPSBnMihpKTsKLSAg
ICByZXN1bHQgKz0gZzIoaSwgcmVzdWx0KTsKLSAgICByZXN1bHQgKz0gZzMoKTsKLSAgICByZXN1
bHQgKz0gZzMoaSk7Ci0gICAgcmVzdWx0ICs9IGczKGksIHJlc3VsdCk7Ci0gICAgcmVzdWx0IHw9
IDA7Ci19Ci1wcmludCgobmV3IERhdGUgLSBzdGFydCkpCi1pZiAocmVzdWx0ICE9IDE1OTY0OTkw
MTApCi0gICAgdGhyb3cgIkJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>