<?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>113538</bug_id>
          
          <creation_ts>2013-03-28 14:37:49 -0700</creation_ts>
          <short_desc>REGRESSION(r147149): breaks binding test on Mac. (Requested by mlam_ on #webkit).</short_desc>
          <delta_ts>2013-03-28 15:15:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>113218</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>865808</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 14:37:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/147149 broke the build:
breaks binding test on Mac. (Requested by mlam_ on #webkit).

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

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865810</commentid>
    <comment_count>1</comment_count>
      <attachid>195646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 14:38:20 -0700</bug_when>
    <thetext>Created attachment 195646
ROLLOUT of r147149

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>865814</commentid>
    <comment_count>2</comment_count>
      <attachid>195647</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2013-03-28 14:41:15 -0700</bug_when>
    <thetext>Created attachment 195647
run-bindings-tests --reset-results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865846</commentid>
    <comment_count>3</comment_count>
      <attachid>195647</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 15:15:22 -0700</bug_when>
    <thetext>Comment on attachment 195647
run-bindings-tests --reset-results

Clearing flags on attachment: 195647

Committed r147169: &lt;http://trac.webkit.org/changeset/147169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865847</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 15:15:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195646</attachid>
            <date>2013-03-28 14:38:20 -0700</date>
            <delta_ts>2013-03-28 14:41:13 -0700</delta_ts>
            <desc>ROLLOUT of r147149</desc>
            <filename>bug-113538-20130328213817.patch</filename>
            <type>text/plain</type>
            <size>4043</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVkMmY3NzliMDIwYzE5
OWEzMzJjZjEwOTNhOWMwODM1ZjNlOGY5OC4uZmIxNDlkNzhhN2IzNjNjY2RiYTYwMWNkYmM2Y2Rm
NWQ0ZTQ3ZTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTI4ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQ3MTQ5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDcxNDkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzUzOAorCisgICAgICAgIGJyZWFrcyBiaW5kaW5nIHRlc3Qgb24gTWFjLiAo
UmVxdWVzdGVkIGJ5IG1sYW1fIG9uICN3ZWJraXQpLgorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZ01hY3Jvcy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisKIDIwMTMtMDMtMjggIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgMSBzZWNvbmQgc2xlZXAgb24gd2lu
ZG93cyBmcm9tIHByZXByb2Nlc3Nvci5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBiM2YyNWY2MTc5OGE5MjZmMjA4MjY5
Yjc5NTI1M2UxOTY2NzczNTg4Li44NTEzNGVhNDYwMjMwYWQzZGRiY2ExYTQ1Yzk5MzYxMDIyMzQ2
MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgRU5ECiAgICAgICAgIH0gZWxzaWYgKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkVuZm9yY2VSYW5nZSJ9
KSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICBWOFRSWUNB
VENIX1dJVEhfVFlQRUNIRUNLX1ZPSUQoJG5hdGl2ZVR5cGUsIHYsICR2YWx1ZSwgaW5mby5HZXRJ
c29sYXRlKCkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudEludGVybmFscywgIiAgICBWOFRSWUNBVENIX1ZPSUQoJG5hdGl2ZVR5cGUsIHYsICR2
YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAg
ICRuYXRpdmVUeXBlIHYgPSAkdmFsdWU7XG4iKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nTWFjcm9zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdNYWNyb3MuaAppbmRleCAzZTk3ZTQyMGI5
M2JkZGQ0MGU2OTM0ODEzM2FjZmI0MWMyNjUyZGQ1Li40MzY2Y2Q0NDFiMGFmNDQxYTk1MWI0MjVm
ZTE4ZTNjNDczMmNhOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmdNYWNyb3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRp
bmdNYWNyb3MuaApAQCAtNDIsMTcgKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgcmV0dXJuIGJsb2NrLlJlVGhyb3coKTsgICAgICAgXAogICAgIH0KIAotI2RlZmluZSBW
OFRSWUNBVENIX1ZPSUQodHlwZSwgdmFyLCB2YWx1ZSkgXAotICAgIHR5cGUgdmFyOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICB2ODo6VHJ5Q2F0Y2ggYmxvY2s7ICAgICAgICAgICAgICAgXAot
ICAgICAgICB2YXIgPSAodmFsdWUpOyAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAo
YmxvY2suSGFzQ2F1Z2h0KCkpIHsgICAgICAgICAgXAotICAgICAgICAgICAgYmxvY2suUmVUaHJv
dygpOyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IH0KLQogI2RlZmluZSBWOFRSWUNBVENIX1dJVEhfVFlQRUNIRUNLKHR5cGUsIHZhciwgdmFsdWUs
IGlzb2xhdGUpIFwKICAgICB0eXBlIHZhcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEzZGYxMGE2Y2RkZjJlYWIwNmRiZTU0
MzM3YjM1NDc1NzFlNDQxYTYuLjU3MGEyYmY2MzFiZDY3ZDhjNmEwN2I3MzU4YmQ1MGExNTZlOGVl
Y2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0yOCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE0NzE0OS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTQ3
MTQ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM1
MzgKKworICAgICAgICBicmVha3MgYmluZGluZyB0ZXN0IG9uIE1hYy4gKFJlcXVlc3RlZCBieSBt
bGFtXyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTMtMDMtMjggIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIERpc2FibGUgZm9udCBtZWFzdXJlbWVudCBvcHRpbWl6YXRpb24gZm9y
IENocm9taXVtLW1hYyB3aGVuIHRoZXJlIGFyZSBmb250LWZlYXR1cmUtc2V0dGluZ3MuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyYTBk
MzFiNmQwNDRjMzFmMTc3Yzg0YjVlOWRjZGM1YjIxNmNkZTYzLi5jODdmYmMyMTI1ZjdjNGExNzU2
NTNkOTUwOGE1OGE2NDVlMTVhZTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM4MDMsNiArMzgwMyw4IEBAIGNyYnVnLmNvbS8yMjMz
MzIgc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8xMTMxMTQgbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMuaHRt
bCBbIFRpbWVvdXQgXQogCit3ZWJraXQub3JnL2IvMTEzMjE5IGZhc3QvZG9tL2V4Y2VwdGlvbi1p
bi1iaW5kaW5nLmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzExMzQ3NCBodHRwL3Rl
c3RzL2NhY2hlL3N1YnJlc291cmNlLWZhaWxvdmVyLXRvLW5ldHdvcmsuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMTM0ODcgWyBEZWJ1ZyBdIHBsdWdpbnMvbnBydW50aW1l
L25wcnVudGltZS1jYWxscy13aXRoLW51bGwtbnBwLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195647</attachid>
            <date>2013-03-28 14:41:15 -0700</date>
            <delta_ts>2013-03-28 15:15:22 -0700</delta_ts>
            <desc>run-bindings-tests --reset-results</desc>
            <filename>bug-113538-20130328144111.patch</filename>
            <type>text/plain</type>
            <size>33168</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg1ODc4MDMxMGU5ZDg1
MmUwZDk2ZmNlNDNkYThkNWVmODEyMDFmNi4uMWZlN2ViNjFjYzg1NjYxYzI3NDNjYzYzYjBmZjM0
NGNhOWQ5M2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDEzLTAzLTI4ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgUkVH
UkVTU0lPTihyMTQ3MTQ5KTogYnJlYWtzIGJpbmRpbmcgdGVzdCBvbiBNYWMuIChSZXF1ZXN0ZWQg
YnkgbWxhbV8gb24gI3dlYmtpdCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTM1MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSdW4gcnVuLWJpbmRpbmdzLXRlc3RzIC0tcmVzZXQtcmVzdWx0cyB0byBm
aXggYnJva2VuIHRlc3RzIGFmdGVyCisgICAgICAgIHIxNDcxNDkuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxOb2RlQXR0clNldHRlcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c2hvcnRBdHRyQXR0clNldHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRy
U2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0
dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25n
QXR0ckF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnVu
c2lnbmVkTG9uZ0xvbmdBdHRyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
VjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjpYTUxPYmpBdHRyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6Y3JlYXRlQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkSW50ZWdyYWxBdHRyQXR0clNldHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjpyZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJTZXR0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUJvb2xl
YW5BdHRyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
dHlwZWRBcnJheUF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOElu
dGVybmFsOjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVBdHRyU2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXNBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
VjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhT
cGFjZXNBdHRyaWJ1dGVBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOElu
dGVybmFsOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0clNldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRy
MUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbmRp
dGlvbmFsQXR0cjJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVy
bmFsOjpjb25kaXRpb25hbEF0dHIzQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0clNldHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0UnVudGltZUF0dHIy
QXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxl
ZFBlckNvbnRleHRBdHRyMUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4
SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0QXR0cjJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpmbG9hdEFycmF5QXR0clNldHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZG91YmxlQXJyYXlBdHRyU2V0dGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptdXRhYmxlUG9pbnRBdHRyU2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjppbW11dGFibGVQb2ludEF0
dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmF3YmVy
cnlBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzdHJp
Y3RGbG9hdEF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmlkQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bnVs
bGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjpudWxsYWJsZVN0cmluZ1ZhbHVlQXR0clNldHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRBdHRyaWJ1dGVBdHRyU2V0
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0dHJp
YnV0ZUF0dHJTZXR0ZXJGb3JNYWluV29ybGQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6
OnZhbHVlQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlVjhJbnRlcm5hbDo6Y2FjaGVkVmFsdWVBdHRyU2V0dGVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0VHlwZWRlZnMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJB
dHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6Omlt
bXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcik6CisKKzIwMTMtMDMtMjggIEFybmF1ZCBSZW5ldmll
ciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKwogICAgICAgICB1c2UgWE1MSHR0cFJl
cXVlc3RSZXNwb25zZVR5cGUgZW51bWVyYXRpb24gaW4gWE1MSHR0cFJlcXVlc3QuaWRsCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM1MTgKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdElu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0SW50ZXJmYWNlLmNwcAppbmRleCAzNzY0ZGY4YzJmMTA4ZjcwNTczYWM5MzEwZWZmZGE2ZThj
NzMyMzNkLi5kNmM4MTZjNGIxNTg4MmU1MzU4NmE0NmJhY2I2NGNjZTA5MzkyMTQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJm
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0SW50ZXJmYWNlLmNwcApAQCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gc3VwcGxlbWVudGFsTm9kZUF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6
OlN0CiBzdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxOb2RlQXR0clNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50ZXJm
YWNlOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBOb2RlKiB2ID0gVjhOb2RlOjpIYXNJ
bnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xh
dGUoKSkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZh
bHVlKSkgOiAwOworICAgIFY4VFJZQ0FUQ0hfVk9JRChOb2RlKiwgdiwgVjhOb2RlOjpIYXNJbnN0
YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xhdGUo
KSkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVl
KSkgOiAwKTsKICAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKGltcCwg
V1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggZDBjOGE1ZGZk
OWE3ZGY0ZDI1YjlmY2E1NWE3MDM5MmRkOGM3NGNjMy4uYzliNzZlNGQ4MjcxYzUwZDY2ZWViM2M2
NzAyMDUyZTczZjNmODA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHNob3J0QXR0ckF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9j
YWw8djg6OlN0cmluZz4gbgogc3RhdGljIHZvaWQgc2hvcnRBdHRyQXR0clNldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAg
IFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRvSW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldFNo
b3J0QXR0cih2KTsKICAgICByZXR1cm47CiB9CkBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bnNpZ25lZFNob3J0QXR0ckF0dHJHZXR0ZXJDYWxsYmFjayh2
ODo6TG9jYWw8djg6OlMKIHN0YXRpYyB2b2lkIHVuc2lnbmVkU2hvcnRBdHRyQXR0clNldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQgdiA9IHRvVUludDMyKHZhbHVl
KTsKKyAgICBWOFRSWUNBVENIX1ZPSUQoaW50LCB2LCB0b1VJbnQzMih2YWx1ZSkpOwogICAgIGlt
cC0+c2V0VW5zaWduZWRTaG9ydEF0dHIodik7CiAgICAgcmV0dXJuOwogfQpAQCAtMjc0LDcgKzI3
NCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ0F0dHJBdHRyR2V0dGVyQ2Fs
bGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hCiBzdGF0aWMgdm9pZCBsb25nQXR0ckF0dHJT
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgaW50IHYgPSB0b0ludDMy
KHZhbHVlKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQoaW50LCB2LCB0b0ludDMyKHZhbHVlKSk7CiAg
ICAgaW1wLT5zZXRMb25nQXR0cih2KTsKICAgICByZXR1cm47CiB9CkBAIC0yOTgsNyArMjk4LDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nTG9uZ0F0dHJBdHRyR2V0dGVyQ2Fs
bGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmcKIHN0YXRpYyB2b2lkIGxvbmdMb25nQXR0ckF0dHJT
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgbG9uZyBsb25nIHYgPSB0
b0ludDY0KHZhbHVlKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQobG9uZyBsb25nLCB2LCB0b0ludDY0
KHZhbHVlKSk7CiAgICAgaW1wLT5zZXRMb25nTG9uZ0F0dHIodik7CiAgICAgcmV0dXJuOwogfQpA
QCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdW5zaWduZWRM
b25nTG9uZ0F0dHJBdHRyR2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4CiBzdGF0aWMgdm9pZCB1
bnNpZ25lZExvbmdMb25nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZv
KQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHYgPSB0b1VJbnQ2NCh2YWx1ZSk7CisgICAgVjhU
UllDQVRDSF9WT0lEKHVuc2lnbmVkIGxvbmcgbG9uZywgdiwgdG9VSW50NjQodmFsdWUpKTsKICAg
ICBpbXAtPnNldFVuc2lnbmVkTG9uZ0xvbmdBdHRyKHYpOwogICAgIHJldHVybjsKIH0KQEAgLTM3
MSw3ICszNzEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRlc3RPYmpBdHRyQXR0
ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogc3RhdGljIHZvaWQgdGVzdE9i
akF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6
OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFRlc3RP
YmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwg
d29ybGRUeXBlKGluZm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7CisgICAgVjhUUllDQVRDSF9WT0lE
KFRlc3RPYmoqLCB2LCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xh
dGUoKSwgd29ybGRUeXBlKGluZm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDApOwogICAgIGltcC0+c2V0
VGVzdE9iakF0dHIoV1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KQEAgLTM5Niw3ICsz
OTYsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFhNTE9iakF0dHJBdHRyR2V0dGVy
Q2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiBzdGF0aWMgdm9pZCBYTUxPYmpBdHRyQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
dmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBUZXN0T2JqKiB2ID0g
VjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlw
ZShpbmZvLkdldElzb2xhdGUoKSkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOworICAgIFY4VFJZQ0FUQ0hfVk9JRChUZXN0T2Jq
KiwgdiwgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdv
cmxkVHlwZShpbmZvLkdldElzb2xhdGUoKSkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwKTsKICAgICBpbXAtPnNldFhNTE9iakF0
dHIoV1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KQEAgLTQyMCw3ICs0MjAsNyBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNyZWF0ZUF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZQogc3RhdGljIHZvaWQgY3JlYXRlQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBib29sIHYgPSB2YWx1ZS0+Qm9vbGVhblZh
bHVlKCk7CisgICAgVjhUUllDQVRDSF9WT0lEKGJvb2wsIHYsIHZhbHVlLT5Cb29sZWFuVmFsdWUo
KSk7CiAgICAgaW1wLT5zZXRDcmVhdGUodik7CiAgICAgcmV0dXJuOwogfQpAQCAtNDY4LDcgKzQ2
OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVmbGVjdGVkSW50ZWdyYWxBdHRy
QXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2CiBzdGF0aWMgdm9pZCByZWZsZWN0ZWRJbnRl
Z3JhbEF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIGlu
dCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgVjhUUllDQVRDSF9WT0lEKGludCwgdiwgdG9JbnQz
Mih2YWx1ZSkpOwogICAgIGltcC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC00
OTIsNyArNDkyLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRVbnNp
Z25lZEludGVncmFsQXR0ckF0dHJHZXR0ZXJDYWxsYmFjayh2ODoKIHN0YXRpYyB2b2lkIHJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKLSAgICB1bnNpZ25lZCB2ID0gdG9VSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FU
Q0hfVk9JRCh1bnNpZ25lZCwgdiwgdG9VSW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldFVuc2ln
bmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25l
ZGludGVncmFsYXR0ckF0dHIsIHYpOwogICAgIHJldHVybjsKIH0KQEAgLTUxNiw3ICs1MTYsNyBA
QCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEJvb2xlYW5BdHRyQXR0ckdl
dHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2OAogc3RhdGljIHZvaWQgcmVmbGVjdGVkQm9vbGVhbkF0
dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIGJvb2wgdiA9
IHZhbHVlLT5Cb29sZWFuVmFsdWUoKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQoYm9vbCwgdiwgdmFs
dWUtPkJvb2xlYW5WYWx1ZSgpKTsKICAgICBpbXAtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIsIHYpOwogICAgIHJldHVybjsK
IH0KQEAgLTU4OCw3ICs1ODgsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxl
Y3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TAogc3RhdGljIHZv
aWQgcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKLSAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FU
Q0hfVk9JRChpbnQsIHYsIHRvSW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldEludGVncmFsQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEludGVncmFsQXR0ckF0dHIs
IHYpOwogICAgIHJldHVybjsKIH0KQEAgLTYxMiw3ICs2MTIsNyBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlckNhbGxiYWNr
KHY4OjpMbwogc3RhdGljIHZvaWQgcmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIGJvb2wgdiA9IHZhbHVlLT5Cb29s
ZWFuVmFsdWUoKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQoYm9vbCwgdiwgdmFsdWUtPkJvb2xlYW5W
YWx1ZSgpKTsKICAgICBpbXAtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpjdXN0b21Db250ZW50Qm9vbGVhbkF0dHJBdHRyLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC02
NjAsNyArNjYwLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0eXBlZEFycmF5QXR0
ckF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmkKIHN0YXRpYyB2b2lkIHR5cGVk
QXJyYXlBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBG
bG9hdDMyQXJyYXkqIHYgPSBWOEZsb2F0MzJBcnJheTo6SGFzSW5zdGFuY2UodmFsdWUsIGluZm8u
R2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29sYXRlKCkpKSA/IFY4RmxvYXQzMkFy
cmF5Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwor
ICAgIFY4VFJZQ0FUQ0hfVk9JRChGbG9hdDMyQXJyYXkqLCB2LCBWOEZsb2F0MzJBcnJheTo6SGFz
SW5zdGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29s
YXRlKCkpKSA/IFY4RmxvYXQzMkFycmF5Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
OjpDYXN0KHZhbHVlKSkgOiAwKTsKICAgICBpbXAtPnNldFR5cGVkQXJyYXlBdHRyKFdURjo6Z2V0
UHRyKHYpKTsKICAgICByZXR1cm47CiB9CkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFj
ayh2ODo6TG9jYWwKIHN0YXRpYyB2b2lkIGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQgdiA9IHRvSW50MzIodmFs
dWUpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRvSW50MzIodmFsdWUpKTsKICAgICBp
bXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0KQEAgLTcx
Miw3ICs3MTIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGF0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uQXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbAogc3RhdGljIHZvaWQgYXR0cldp
dGhTZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
IHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwotICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgVjhUUllDQVRDSF9WT0lEKGludCwg
diwgdG9JbnQzMih2YWx1ZSkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGltcC0+
c2V0QXR0cldpdGhTZXR0ZXJFeGNlcHRpb24odiwgZWMpOwogICAgIGlmIChVTkxJS0VMWShlYykp
CkBAIC04MDgsNyArODA4LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVBdHRyR2V0dGVyQ2FsbGJhY2sodjg6OkxvY2EKIHN0YXRpYyB2b2lk
IHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7Ci0gICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBWOFRSWUNBVENIX1ZP
SUQoaW50LCB2LCB0b0ludDMyKHZhbHVlKSk7CiAgICAgU2NyaXB0U3RhdGUqIGN1cnJlbnRTdGF0
ZSA9IFNjcmlwdFN0YXRlOjpjdXJyZW50KCk7CiAgICAgaWYgKCFjdXJyZW50U3RhdGUpCiAgICAg
ICAgIHJldHVybjsKQEAgLTgzOSw3ICs4MzksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlQXR0ckdldHRlckNhbGxiYQog
c3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RP
Ymo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGluZm8u
R2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QodmFsdWUpKSA6IDA7CisgICAgVjhUUllDQVRDSF9WT0lEKFRlc3RPYmoqLCB2LCBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBl
KGluZm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDApOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdENvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaW1wLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShzY3JpcHRDb250ZXh0LCBXVEY6
OmdldFB0cih2KSk7CiAgICAgcmV0dXJuOwpAQCAtODc0LDcgKzg3NCw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0ckdldHRl
ckNhbGxiYWNrKHY4CiBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVl
PiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFRlc3RPYmoqIHYg
PSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRU
eXBlKGluZm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7CisgICAgVjhUUllDQVRDSF9WT0lEKFRlc3RP
YmoqLCB2LCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwg
d29ybGRUeXBlKGluZm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDApOwogICAgIFNjcmlwdFN0YXRlKiBj
dXJyZW50U3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghY3VycmVudFN0
YXRlKQogICAgICAgICByZXR1cm47CkBAIC05MDksNyArOTA5LDcgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlc0F0
dHJHZXR0ZXIKIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBUZXN0
T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCks
IHdvcmxkVHlwZShpbmZvLkdldElzb2xhdGUoKSkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOworICAgIFY4VFJZQ0FUQ0hfVk9J
RChUZXN0T2JqKiwgdiwgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29s
YXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xhdGUoKSkpID8gVjhUZXN0T2JqOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwKTsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOwogICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKQEAgLTkzOSw3
ICs5MzksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdAogc3RhdGljIHZvaWQgd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZUF0dHJTZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFz
SW5zdGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29s
YXRlKCkpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dCh2YWx1ZSkpIDogMDsKKyAgICBWOFRSWUNBVENIX1ZPSUQoVGVzdE9iaiosIHYsIFY4VGVzdE9i
ajo6SGFzSW5zdGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5H
ZXRJc29sYXRlKCkpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdCh2YWx1ZSkpIDogMCk7CiAgICAgU2NyaXB0U3RhdGUqIGN1cnJlbnRTdGF0ZSA9IFNj
cmlwdFN0YXRlOjpjdXJyZW50KCk7CiAgICAgaWYgKCFjdXJyZW50U3RhdGUpCiAgICAgICAgIHJl
dHVybjsKQEAgLTk4MSw3ICs5ODEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYQogc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgVGVzdE9i
aiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3
b3JsZFR5cGUoaW5mby5HZXRJc29sYXRlKCkpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKKyAgICBWOFRSWUNBVENIX1ZPSUQo
VGVzdE9iaiosIHYsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0
ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29sYXRlKCkpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMCk7CiAgICAgU2NyaXB0U3Rh
dGUqIGN1cnJlbnRTdGF0ZSA9IFNjcmlwdFN0YXRlOjpjdXJyZW50KCk7CiAgICAgaWYgKCFjdXJy
ZW50U3RhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMTcsNyArMTAxNyw3IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBCiBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7Ci0gICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2Uo
dmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29sYXRlKCkpKSA/
IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkp
IDogMDsKKyAgICBWOFRSWUNBVENIX1ZPSUQoVGVzdE9iaiosIHYsIFY4VGVzdE9iajo6SGFzSW5z
dGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29sYXRl
KCkpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2
YWx1ZSkpIDogMCk7CiAgICAgU2NyaXB0U3RhdGUqIGN1cnJlbnRTdGF0ZSA9IFNjcmlwdFN0YXRl
OjpjdXJyZW50KCk7CiAgICAgaWYgKCFjdXJyZW50U3RhdGUpCiAgICAgICAgIHJldHVybjsKQEAg
LTEwNDgsNyArMTA0OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlw
dEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJHZXR0ZXJDCiBzdGF0aWMgdm9pZCB3
aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0clNldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJ
bnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xh
dGUoKSkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KHZhbHVlKSkgOiAwOworICAgIFY4VFJZQ0FUQ0hfVk9JRChUZXN0T2JqKiwgdiwgVjhUZXN0T2Jq
OjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdl
dElzb2xhdGUoKSkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
OjpDYXN0KHZhbHVlKSkgOiAwKTsKICAgICBpbXAtPnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUoV1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KQEAgLTEx
NzgsNyArMTE3OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uZGl0aW9uYWxB
dHRyMUF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0CiBzdGF0aWMgdm9pZCBjb25k
aXRpb25hbEF0dHIxQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAg
ICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRv
SW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldENvbmRpdGlvbmFsQXR0cjEodik7CiAgICAgcmV0
dXJuOwogfQpAQCAtMTIxOCw3ICsxMjE4LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBjb25kaXRpb25hbEF0dHIyQXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3QKIHN0
YXRpYyB2b2lkIGNvbmRpdGlvbmFsQXR0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwotICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgVjhUUllDQVRDSF9W
T0lEKGludCwgdiwgdG9JbnQzMih2YWx1ZSkpOwogICAgIGltcC0+c2V0Q29uZGl0aW9uYWxBdHRy
Mih2KTsKICAgICByZXR1cm47CiB9CkBAIC0xMjU4LDcgKzEyNTgsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNvbmRpdGlvbmFsQXR0cjNBdHRyR2V0dGVyQ2FsbGJhY2sodjg6Okxv
Y2FsPHY4OjpTdAogc3RhdGljIHZvaWQgY29uZGl0aW9uYWxBdHRyM0F0dHJTZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAg
ICBWOFRSWUNBVENIX1ZPSUQoaW50LCB2LCB0b0ludDMyKHZhbHVlKSk7CiAgICAgaW1wLT5zZXRD
b25kaXRpb25hbEF0dHIzKHYpOwogICAgIHJldHVybjsKIH0KQEAgLTEzMTAsNyArMTMxMCw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYW55QXR0cmlidXRlQXR0ckdldHRlckNhbGxi
YWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nCiBzdGF0aWMgdm9pZCBhbnlBdHRyaWJ1dGVBdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNjcmlwdFZhbHVlIHYgPSBT
Y3JpcHRWYWx1ZSh2YWx1ZSk7CisgICAgVjhUUllDQVRDSF9WT0lEKFNjcmlwdFZhbHVlLCB2LCBT
Y3JpcHRWYWx1ZSh2YWx1ZSkpOwogICAgIGltcC0+c2V0QW55QXR0cmlidXRlKFdURjo6Z2V0UHRy
KHYpKTsKICAgICByZXR1cm47CiB9CkBAIC0xMzM0LDcgKzEzMzQsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVBdHRyMUF0dHJHZXR0ZXJDYWxsYmFjayh2
ODo6TG9jYWw8dgogc3RhdGljIHZvaWQgZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0clNldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUp
OworICAgIFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRvSW50MzIodmFsdWUpKTsKICAgICBpbXAt
PnNldEVuYWJsZWRBdFJ1bnRpbWVBdHRyMSh2KTsKICAgICByZXR1cm47CiB9CkBAIC0xMzU4LDcg
KzEzNTgsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVB
dHRyMkF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8dgogc3RhdGljIHZvaWQgZW5hYmxlZEF0
UnVudGltZUF0dHIyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAg
ICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRv
SW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldEVuYWJsZWRBdFJ1bnRpbWVBdHRyMih2KTsKICAg
ICByZXR1cm47CiB9CkBAIC0xMzgyLDcgKzEzODIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGVuYWJsZWRQZXJDb250ZXh0QXR0cjFBdHRyR2V0dGVyQ2FsbGJhY2sodjg6OkxvY2Fs
PAogc3RhdGljIHZvaWQgZW5hYmxlZFBlckNvbnRleHRBdHRyMUF0dHJTZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBW
OFRSWUNBVENIX1ZPSUQoaW50LCB2LCB0b0ludDMyKHZhbHVlKSk7CiAgICAgaW1wLT5zZXRFbmFi
bGVkUGVyQ29udGV4dEF0dHIxKHYpOwogICAgIHJldHVybjsKIH0KQEAgLTE0MDYsNyArMTQwNiw3
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRBdHRyMkF0
dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8CiBzdGF0aWMgdm9pZCBlbmFibGVkUGVyQ29udGV4
dEF0dHIyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQg
diA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRvSW50MzIo
dmFsdWUpKTsKICAgICBpbXAtPnNldEVuYWJsZWRQZXJDb250ZXh0QXR0cjIodik7CiAgICAgcmV0
dXJuOwogfQpAQCAtMTQzMCw3ICsxNDMwLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBmbG9hdEFycmF5QXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogc3Rh
dGljIHZvaWQgZmxvYXRBcnJheUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZv
KQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7Ci0gICAgVmVjdG9yPGZsb2F0PiB2ID0gdG9OYXRpdmVBcnJheTxmbG9hdD4odmFsdWUpOwor
ICAgIFY4VFJZQ0FUQ0hfVk9JRChWZWN0b3I8ZmxvYXQ+LCB2LCB0b05hdGl2ZUFycmF5PGZsb2F0
Pih2YWx1ZSkpOwogICAgIGltcC0+c2V0RmxvYXRBcnJheSh2KTsKICAgICByZXR1cm47CiB9CkBA
IC0xNDU0LDcgKzE0NTQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRvdWJsZUFy
cmF5QXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogc3RhdGljIHZvaWQg
ZG91YmxlQXJyYXlBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9j
YWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAg
ICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAg
IFZlY3Rvcjxkb3VibGU+IHYgPSB0b05hdGl2ZUFycmF5PGRvdWJsZT4odmFsdWUpOworICAgIFY4
VFJZQ0FUQ0hfVk9JRChWZWN0b3I8ZG91YmxlPiwgdiwgdG9OYXRpdmVBcnJheTxkb3VibGU+KHZh
bHVlKSk7CiAgICAgaW1wLT5zZXREb3VibGVBcnJheSh2KTsKICAgICByZXR1cm47CiB9CkBAIC0x
NDkyLDcgKzE0OTIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG11dGFibGVQb2lu
dEF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZwogc3RhdGljIHZvaWQgbXV0
YWJsZVBvaW50QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBS
ZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+ID4gdiA9IFY4U1ZHUG9pbnQ6Okhh
c0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGluZm8uR2V0SXNv
bGF0ZSgpKSkgPyBWOFNWR1BvaW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KHZhbHVlKSkgOiAwOworICAgIFY4VFJZQ0FUQ0hfVk9JRChSZWZQdHI8U1ZHUHJvcGVydHlU
ZWFyT2ZmPEZsb2F0UG9pbnQ+ID4sIHYsIFY4U1ZHUG9pbnQ6Okhhc0luc3RhbmNlKHZhbHVlLCBp
bmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGluZm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFNWR1Bv
aW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwKTsK
ICAgICBpbXAtPnNldE11dGFibGVQb2ludChXVEY6OmdldFB0cih2KSk7CiAgICAgcmV0dXJuOwog
fQpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpbW11
dGFibGVQb2ludEF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmkKIHN0YXRpYyB2
b2lkIGltbXV0YWJsZVBvaW50QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
CiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKLSAgICBSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+ID4gdiA9IFY4U1ZH
UG9pbnQ6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGlu
Zm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFNWR1BvaW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOworICAgIFY4VFJZQ0FUQ0hfVk9JRChSZWZQdHI8U1ZH
UHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+ID4sIHYsIFY4U1ZHUG9pbnQ6Okhhc0luc3RhbmNl
KHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGluZm8uR2V0SXNvbGF0ZSgpKSkg
PyBWOFNWR1BvaW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVl
KSkgOiAwKTsKICAgICBpbXAtPnNldEltbXV0YWJsZVBvaW50KFdURjo6Z2V0UHRyKHYpKTsKICAg
ICByZXR1cm47CiB9CkBAIC0xNTQwLDcgKzE1NDAsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHN0cmF3YmVycnlBdHRyR2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+
CiBzdGF0aWMgdm9pZCBzdHJhd2JlcnJ5QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKLSAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FUQ0hfVk9J
RChpbnQsIHYsIHRvSW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldEJsdWViZXJyeSh2KTsKICAg
ICByZXR1cm47CiB9CkBAIC0xNTY0LDcgKzE1NjQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHN0cmljdEZsb2F0QXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5n
Pgogc3RhdGljIHZvaWQgc3RyaWN0RmxvYXRBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwotICAgIGZsb2F0IHYgPSBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUtPk51bWJl
clZhbHVlKCkpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChmbG9hdCwgdiwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlLT5OdW1iZXJWYWx1ZSgpKSk7CiAgICAgaW1wLT5zZXRTdHJpY3RGbG9hdCh2KTsK
ICAgICByZXR1cm47CiB9CkBAIC0xNTk5LDcgKzE1OTksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGlkQXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCBjbwogc3RhdGljIHZvaWQgaWRBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwotICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgVjhUUllDQVRDSF9WT0lEKGlu
dCwgdiwgdG9JbnQzMih2YWx1ZSkpOwogICAgIGltcC0+c2V0SWQodik7CiAgICAgcmV0dXJuOwog
fQpAQCAtMTcwOSw3ICsxNzA5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBudWxs
YWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUF0dHJHZXR0ZXJDYWxsYmFjayh2ODoKIHN0YXRpYyB2
b2lkIG51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlQXR0clNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZ
Q0FUQ0hfVk9JRChpbnQsIHYsIHRvSW50MzIodmFsdWUpKTsKICAgICBpbXAtPnNldE51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKHYpOwogICAgIHJldHVybjsKIH0KQEAgLTE3NDAsNyArMTc0
MCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnVsbGFibGVTdHJpbmdWYWx1ZUF0
dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6CiBzdGF0aWMgdm9pZCBudWxsYWJsZVN0cmlu
Z1ZhbHVlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBpbnQg
diA9IHRvSW50MzIodmFsdWUpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChpbnQsIHYsIHRvSW50MzIo
dmFsdWUpKTsKICAgICBpbXAtPnNldE51bGxhYmxlU3RyaW5nVmFsdWUodik7CiAgICAgcmV0dXJu
OwogfQpAQCAtMTgxMSw3ICsxODExLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBw
ZXJXb3JsZEF0dHJpYnV0ZUF0dHJHZXR0ZXJDYWxsYmFja0Zvck1haW5Xb3JsZCh2ODoKIHN0YXRp
YyB2b2lkIHBlcldvcmxkQXR0cmlidXRlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKLSAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSwg
aW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xhdGUoKSkpID8gVjhUZXN0
T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwor
ICAgIFY4VFJZQ0FUQ0hfVk9JRChUZXN0T2JqKiwgdiwgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2
YWx1ZSwgaW5mby5HZXRJc29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xhdGUoKSkpID8g
VjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkg
OiAwKTsKICAgICBpbXAtPnNldFBlcldvcmxkQXR0cmlidXRlKFdURjo6Z2V0UHRyKHYpKTsKICAg
ICByZXR1cm47CiB9CkBAIC0xODI0LDcgKzE4MjQsNyBAQCBzdGF0aWMgdm9pZCBwZXJXb3JsZEF0
dHJpYnV0ZUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
Ogogc3RhdGljIHZvaWQgcGVyV29ybGRBdHRyaWJ1dGVBdHRyU2V0dGVyRm9yTWFpbldvcmxkKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6
Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGluZm8uR2V0
SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QodmFsdWUpKSA6IDA7CisgICAgVjhUUllDQVRDSF9WT0lEKFRlc3RPYmoqLCB2LCBWOFRl
c3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSwgd29ybGRUeXBlKGlu
Zm8uR2V0SXNvbGF0ZSgpKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QodmFsdWUpKSA6IDApOwogICAgIGltcC0+c2V0UGVyV29ybGRBdHRyaWJ1dGUo
V1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggMjEzMDY3OTFmZjU0
ZTc0NWU5YzY1NzZmZDc3MGI0ODRiMzZhMjBmMS4uZDcxMzY0ZGU5YjJhMGZjMmIxZTEzOWM1Zjc2
OTc0NGEzYzcwYzljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZUF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwKIHN0YXRpYyB2b2lkIHZhbHVlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCiB7CiAgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogaW1w
ID0gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2ID0gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGUodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBWOFRS
WUNBVENIX1ZPSUQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIHYsIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSkpOwogICAgIGltcC0+
c2V0VmFsdWUoV1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KQEAgLTEzMSw3ICsxMzEs
NyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNhY2hlZFZhbHVlQXR0ckdldHRlckNh
bGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogc3RhdGljIHZvaWQgY2FjaGVkVmFsdWVBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2
YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHYgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgaW5m
by5HZXRJc29sYXRlKCkpOworICAgIFY4VFJZQ0FUQ0hfVk9JRChSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiwgdiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUodmFsdWUsIGluZm8u
R2V0SXNvbGF0ZSgpKSk7CiAgICAgaW1wLT5zZXRDYWNoZWRWYWx1ZShXVEY6OmdldFB0cih2KSk7
CiAgICAgaW5mby5Ib2xkZXIoKS0+RGVsZXRlSGlkZGVuVmFsdWUodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKCJjYWNoZWRWYWx1ZSIpKTsgLy8gSW52YWxpZGF0ZSB0aGUgY2FjaGVkIHZhbHVlLgogICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGFjYTllN2Y0MWQyZjFmODMxMmFhNTQx
MjhhNDlkOGE1YjU4NzBlOGQuLjg1YjY1NzQ2ZjM5NThjODdiODIwNTcxN2M3OGZmMzI1ZWZlOWIz
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdFR5cGVkZWZzLmNwcApAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHVuc2lnbmVkTG9uZ0xvbmdBdHRyQXR0ckdldHRlckNhbGxiYWNrKHY4
OjpMb2NhbDx2OAogc3RhdGljIHZvaWQgdW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0VHlwZWRlZnMqIGltcCA9IFY4
VGVzdFR5cGVkZWZzOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdiA9IHRvVUludDY0KHZhbHVlKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQodW5zaWduZWQg
bG9uZyBsb25nLCB2LCB0b1VJbnQ2NCh2YWx1ZSkpOwogICAgIGltcC0+c2V0VW5zaWduZWRMb25n
TG9uZ0F0dHIodik7CiAgICAgcmV0dXJuOwogfQpAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlQXR0ckdl
dHRlckNhbGxiYWNrKHY4CiBzdGF0aWMgdm9pZCBpbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFs
dWVBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0VHlw
ZWRlZnMqIGltcCA9IFY4VGVzdFR5cGVkZWZzOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAg
ICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2ID0gU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpjcmVhdGUodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQo
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIHYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSkpOwogICAgIGltcC0+c2V0SW1tdXRhYmxl
U2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47CiB9CkBA
IC0xNDYsNyArMTQ2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWwKIHN0YXRpYyB2b2lkIGF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCiB7CiAgICAgVGVzdFR5cGVkZWZzKiBpbXAgPSBWOFRlc3RUeXBlZGVmczo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7Ci0gICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBWOFRSWUNB
VENIX1ZPSUQoaW50LCB2LCB0b0ludDMyKHZhbHVlKSk7CiAgICAgaW1wLT5zZXRBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CkBAIC0xNzAsNyArMTcwLDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0
ZXJDYWxsYmFjayh2ODo6TG9jYWwKIHN0YXRpYyB2b2lkIGF0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdFR5cGVk
ZWZzKiBpbXAgPSBWOFRlc3RUeXBlZGVmczo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAg
aW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBWOFRSWUNBVENIX1ZPSUQoaW50LCB2LCB0b0lu
dDMyKHZhbHVlKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaW1wLT5zZXRBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbih2LCBlYyk7CiAgICAgaWYgKFVOTElLRUxZKGVjKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>