<?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>75795</bug_id>
          
          <creation_ts>2012-01-08 02:14:09 -0800</creation_ts>
          <short_desc>Remove deprecated toDynamicFrame and unused [CallWith=DynamicFrame]</short_desc>
          <delta_ts>2012-02-09 18:00:34 -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>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>75793</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>arv</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531742</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-08 02:14:09 -0800</bug_when>
    <thetext>Remove deprecated toDynamicFrame and unused [CallWith=DynamicFrame]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531743</commentid>
    <comment_count>1</comment_count>
      <attachid>121576</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-08 02:15:07 -0800</bug_when>
    <thetext>Created attachment 121576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531814</commentid>
    <comment_count>2</comment_count>
      <attachid>121589</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-08 14:14:51 -0800</bug_when>
    <thetext>Created attachment 121589
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531820</commentid>
    <comment_count>3</comment_count>
      <attachid>121589</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-08 14:48:52 -0800</bug_when>
    <thetext>Comment on attachment 121589
Patch for landing

Clearing flags on attachment: 121589

Committed r104411: &lt;http://trac.webkit.org/changeset/104411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531821</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-08 14:48:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553666</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-09 18:00:34 -0800</bug_when>
    <thetext>*** Bug 75041 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121576</attachid>
            <date>2012-01-08 02:15:07 -0800</date>
            <delta_ts>2012-01-08 14:14:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75795-20120108021505.patch</filename>
            <type>text/plain</type>
            <size>30213</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTA4ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgdG9E
eW5hbWljRnJhbWUgYW5kIHVudXNlZCBbQ2FsbFdpdGg9RHluYW1pY0ZyYW1lXQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3OTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSd2ZSBzdWNjZWVkZWQgaW4g
cmVtb3ZpbmcgYWxsIHRoZSBjYWxsZXJzIGZvIHRoaXMgZnVuY3Rpb24sIGluY2x1ZGluZworICAg
ICAgICBhbGwgdGhlIHVzZXMgb2YgQ2FsbFdpdGg9RHluYW1pY0ZyYW1lIGluIElETCBmaWxlcy4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5l
cmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
Q1BQL1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLm1tOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKwogMjAxMi0w
MS0wNyAgQW5kcmVhcyBLbGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
QXR0ZW1wdCB0byByZWdlbmVyYXRlIGJpbmRpbmdzIG9uIHRoZSBXaW5kb3dzIGJvdC4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkocmV2aXNpb24g
MTA0Mzk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQ0LDEyICsyNDQsNiBAQCB2b2lkIHByaW50RXJyb3JNZXNzYWdl
Rm9yRnJhbWUoRnJhbWUqIGZyCiAgICAgZnJhbWUtPmRvbVdpbmRvdygpLT5wcmludEVycm9yTWVz
c2FnZShtZXNzYWdlKTsKIH0KIAotLy8gRklYTUU6IFdlIHNob3VsZCByZW1vdmUgb3IgYXQgbGVh
c3QgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24uIENhbGxlcnMgY2FuIHVzZSBmaXJzdERPTVdpbmRv
dyBkaXJlY3RseS4KLUZyYW1lKiB0b0R5bmFtaWNGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCi17Ci0g
ICAgcmV0dXJuIGZpcnN0RE9NV2luZG93KGV4ZWMpLT5mcmFtZSgpOwotfQotCiBKU1ZhbHVlIG9i
amVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTRnVuY3Rpb246OmNy
ZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIDAsIHByb3BlcnR5TmFtZSwg
b2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDEwNDM5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsOCArMjk0LDYg
QEAgZW51bSBQYXJhbWV0ZXJNaXNzaW5nUG9saWN5IHsKICAgICB2b2lkIHByaW50RXJyb3JNZXNz
YWdlRm9yRnJhbWUoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIEpTQzo6SlNW
YWx1ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAKLSAgICBGcmFt
ZSogdG9EeW5hbWljRnJhbWUoSlNDOjpFeGVjU3RhdGUqKTsKLQogICAgIGlubGluZSBKU0M6OkpT
VmFsdWUganNTdHJpbmcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcykKICAg
ICB7CiAgICAgICAgIFN0cmluZ0ltcGwqIHN0cmluZ0ltcGwgPSBzLmltcGwoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CShyZXZpc2lvbiAxMDQzOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMjQ0NCwxMiArMjQ0NCw3IEBAIHN1
YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgIG15ICRjYWxsV2l0aCA9ICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKICAgICBpZiAoJGNh
bGxXaXRoIGFuZCAhJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
b25zdHJ1Y3RvciJ9KSB7CiAgICAgICAgIG15ICRjYWxsV2l0aEFyZyA9ICJDT01QSUxFX0FTU0VS
VChmYWxzZSkiOwotICAgICAgICBpZiAoJGNhbGxXaXRoIGVxICJEeW5hbWljRnJhbWUiKSB7Ci0g
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgRnJhbWUqIGR5bmFtaWNGcmFtZSA9
IHRvRHluYW1pY0ZyYW1lKGV4ZWMpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgaWYgKCFkeW5hbWljRnJhbWUpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtc
biIpOwotICAgICAgICAgICAgJGNhbGxXaXRoQXJnID0gImR5bmFtaWNGcmFtZSI7Ci0gICAgICAg
IH0gZWxzaWYgKCRjYWxsV2l0aCBlcSAiU2NyaXB0U3RhdGUiKSB7CisgICAgICAgIGlmICgkY2Fs
bFdpdGggZXEgIlNjcmlwdFN0YXRlIikgewogICAgICAgICAgICAgJGNhbGxXaXRoQXJnID0gImV4
ZWMiOwogICAgICAgICB9IGVsc2lmICgkY2FsbFdpdGggZXEgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQiKSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
O1xuIik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNpb24gMTA0Mzk3KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAgLTMxOTYs
MTIgKzMxOTYsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgIG15ICRj
YWxsV2l0aCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fs
bFdpdGgifTsKICAgICBpZiAoJGNhbGxXaXRoKSB7CiAgICAgICAgIG15ICRjYWxsV2l0aEFyZyA9
ICJDT01QSUxFX0FTU0VSVChmYWxzZSkiOwotICAgICAgICBpZiAoJGNhbGxXaXRoIGVxICJEeW5h
bWljRnJhbWUiKSB7Ci0gICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiRnJhbWUqIGVu
dGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpO1xu
IjsKLSAgICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJpZiAoIWVudGVyZWRGcmFtZSlc
biI7Ci0gICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7XG4iOwotICAgICAgICAgICAgJGNhbGxXaXRoQXJnID0gImVudGVyZWRGcmFtZSI7
Ci0gICAgICAgIH0gZWxzaWYgKCRjYWxsV2l0aCBlcSAiU2NyaXB0U3RhdGUiKSB7CisgICAgICAg
IGlmICgkY2FsbFdpdGggZXEgIlNjcmlwdFN0YXRlIikgewogICAgICAgICAgICAgJHJlc3VsdCAu
PSAkaW5kZW50IC4gIkVtcHR5U2NyaXB0U3RhdGUgc3RhdGU7XG4iOwogICAgICAgICAgICAgJGNh
bGxXaXRoQXJnID0gIiZzdGF0ZSI7CiAgICAgICAgICAgICAkaGFzU2NyaXB0U3RhdGUgPSAxOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAkocmV2aXNpb24gMTA0Mzk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsMTEgKzEwMSw2IEBAIG1v
ZHVsZSB0ZXN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKIAogICAgICAgICAvLyAnQ2FsbFdpdGgnIGV4dGVuZGVk
IGF0dHJpYnV0ZQotICAgICAgICBbQ2FsbFdpdGg9RHluYW1pY0ZyYW1lXSB2b2lkIHdpdGhEeW5h
bWljRnJhbWUoKTsKLSAgICAgICAgW0NhbGxXaXRoPUR5bmFtaWNGcmFtZV0gdm9pZCB3aXRoRHlu
YW1pY0ZyYW1lQW5kQXJnKGluIGxvbmcgaW50QXJnKTsKLSAgICAgICAgW0NhbGxXaXRoPUR5bmFt
aWNGcmFtZV0gdm9pZCB3aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW4gbG9uZyBpbnRB
cmcsIGluIFtPcHRpb25hbF0gbG9uZyBvcHRpb25hbEFyZyk7Ci0gICAgICAgIFtOZWVkc1VzZXJH
ZXN0dXJlQ2hlY2ssIENhbGxXaXRoPUR5bmFtaWNGcmFtZV0gdm9pZCB3aXRoRHluYW1pY0ZyYW1l
QW5kVXNlckdlc3R1cmUoaW4gbG9uZyBpbnRBcmcpOwotICAgICAgICBbTmVlZHNVc2VyR2VzdHVy
ZUNoZWNrLCBDYWxsV2l0aD1EeW5hbWljRnJhbWVdIHZvaWQgd2l0aER5bmFtaWNGcmFtZUFuZFVz
ZXJHZXN0dXJlQVNBRChpbiBsb25nIGludEFyZywgaW4gW09wdGlvbmFsXSBsb25nIG9wdGlvbmFs
QXJnKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSB2b2lkIHdpdGhTY3JpcHRTdGF0
ZVZvaWQoKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBUZXN0T2JqIHdpdGhTY3Jp
cHRTdGF0ZU9iaigpOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHZvaWQgd2l0aFNj
cmlwdFN0YXRlVm9pZEV4Y2VwdGlvbigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAJKHJldmlz
aW9uIDEwNDM5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2MCwzMCArNzYwLDYgQEAgdm9p
ZCBXZWJET01UZXN0T2JqOjpyZW1vdmVFdmVudExpc3RlbmVyKAogICAgIGltcGwoKS0+cmVtb3Zl
RXZlbnRMaXN0ZW5lcih0eXBlLCB0b1dlYkNvcmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKIH0K
IAotdm9pZCBXZWJET01UZXN0T2JqOjp3aXRoRHluYW1pY0ZyYW1lKCkKLXsKLSAgICBpZiAoIWlt
cGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW1wbCgpLT53aXRoRHluYW1pY0ZyYW1lKCk7
Ci19Ci0KLXZvaWQgV2ViRE9NVGVzdE9iajo6d2l0aER5bmFtaWNGcmFtZUFuZEFyZyhpbnQgaW50
QXJnKQotewotICAgIGlmICghaW1wbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbXBsKCkt
PndpdGhEeW5hbWljRnJhbWVBbmRBcmcoaW50QXJnKTsKLX0KLQotdm9pZCBXZWJET01UZXN0T2Jq
Ojp3aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50IGludEFyZywgaW50IG9wdGlvbmFs
QXJnKQotewotICAgIGlmICghaW1wbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbXBsKCkt
PndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyhpbnRBcmcsIG9wdGlvbmFsQXJnKTsKLX0K
LQogdm9pZCBXZWJET01UZXN0T2JqOjp3aXRoU2NyaXB0U3RhdGVWb2lkKCkKIHsKICAgICBpZiAo
IWltcGwoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCShyZXZpc2lvbiAxMDQzOTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAkod29y
a2luZyBjb3B5KQpAQCAtMTYzLDExICsxNjMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXN0b21N
ZXRob2RXaXRoQXJncyhpbnQgaW50QXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29u
c3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgV2ViRE9NU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJET01FdmVudExpc3RlbmVyJiBsaXN0ZW5l
ciwgYm9vbCB1c2VDYXB0dXJlKTsKICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3Qg
V2ViRE9NU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJET01FdmVudExpc3RlbmVyJiBsaXN0ZW5lciwg
Ym9vbCB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIHdpdGhEeW5hbWljRnJhbWUoKTsKLSAgICB2b2lk
IHdpdGhEeW5hbWljRnJhbWVBbmRBcmcoaW50IGludEFyZyk7Ci0gICAgdm9pZCB3aXRoRHluYW1p
Y0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50IGludEFyZywgaW50IG9wdGlvbmFsQXJnKTsKLSAgICB2
b2lkIHdpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZShpbnQgaW50QXJnKTsKLSAgICB2b2lk
IHdpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQoaW50IGludEFyZywgaW50IG9wdGlv
bmFsQXJnKTsKICAgICB2b2lkIHdpdGhTY3JpcHRTdGF0ZVZvaWQoKTsKICAgICBXZWJET01UZXN0
T2JqIHdpdGhTY3JpcHRTdGF0ZU9iaigpOwogICAgIHZvaWQgd2l0aFNjcmlwdFN0YXRlVm9pZEV4
Y2VwdGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAJKHJldmlz
aW9uIDEwNDM5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNTEgKzIzMCw2
IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfZXhjZXB0aW8KIH0KIAogdm9pZAot
d2Via2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWUoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZikKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwotICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT53aXRoRHluYW1pY0ZyYW1lKCk7Ci19Ci0KLXZv
aWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lX2FuZF9hcmcoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZykKLXsKLSAgICBnX3JldHVybl9pZl9mYWls
KHNlbGYpOwotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBX
ZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT53
aXRoRHluYW1pY0ZyYW1lQW5kQXJnKGludF9hcmcpOwotfQotCi12b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZV9hbmRfb3B0aW9uYWxfYXJnKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdsb25nIGludF9hcmcsIGdsb25nIG9wdGlvbmFsX2FyZykKLXsKLSAgICBnX3Jl
dHVybl9pZl9mYWlsKHNlbGYpOwotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBpdGVtLT53aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50X2FyZywgb3B0aW9u
YWxfYXJnKTsKLX0KLQotdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJh
bWVfYW5kX3VzZXJfZ2VzdHVyZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBpbnRfYXJn
LCBnYm9vbGVhbiBpc1VzZXJHZXN0dXJlKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7
Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6
OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0tPndpdGhEeW5h
bWljRnJhbWVBbmRVc2VyR2VzdHVyZShpbnRfYXJnLCBmYWxzZSk7Ci19Ci0KLXZvaWQKLXdlYmtp
dF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lX2FuZF91c2VyX2dlc3R1cmVfYXNhZChX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBpbnRfYXJnLCBnbG9uZyBvcHRpb25hbF9hcmcs
IGdib29sZWFuIGlzVXNlckdlc3R1cmUpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6
VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgaXRlbS0+d2l0aER5bmFt
aWNGcmFtZUFuZFVzZXJHZXN0dXJlQVNBRChpbnRfYXJnLCBvcHRpb25hbF9hcmcsIGZhbHNlKTsK
LX0KLQotdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9zdGF0ZV92b2lkKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgJKHJldmlzaW9uIDEwNDM5NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYyICsxNzQsNiBAQCBXRUJLSVRfQVBJIHZvaWQK
IHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIEdFcnJvciAqKmVycm9yKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3dpdGhfZHluYW1pY19mcmFtZToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKgot
ICogUmV0dXJuczoKLSAqCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29i
al93aXRoX2R5bmFtaWNfZnJhbWUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7Ci0KLS8qKgotICog
d2Via2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYW5kX2FyZzoKLSAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAaW50X2FyZzogQSAjZ2xvbmcKLSAqCi0gKiBSZXR1
cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhf
ZHluYW1pY19mcmFtZV9hbmRfYXJnKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGludF9h
cmcpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lX2Fu
ZF9vcHRpb25hbF9hcmc6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGludF9h
cmc6IEEgI2dsb25nCi0gKiBAb3B0aW9uYWxfYXJnOiBBICNnbG9uZwotICoKLSAqIFJldHVybnM6
Ci0gKgotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5h
bWljX2ZyYW1lX2FuZF9vcHRpb25hbF9hcmcoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcg
aW50X2FyZywgZ2xvbmcgb3B0aW9uYWxfYXJnKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3dpdGhfZHluYW1pY19mcmFtZV9hbmRfdXNlcl9nZXN0dXJlOgotICogQHNlbGY6IEEgI1dl
YktpdERPTVRlc3RPYmoKLSAqIEBpbnRfYXJnOiBBICNnbG9uZwotICoKLSAqIFJldHVybnM6Ci0g
KgotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWlj
X2ZyYW1lX2FuZF91c2VyX2dlc3R1cmUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50
X2FyZywgZ2Jvb2xlYW4gaXNVc2VyR2VzdHVyZSk7Ci0KLS8qKgotICogd2Via2l0X2RvbV90ZXN0
X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYW5kX3VzZXJfZ2VzdHVyZV9hc2FkOgotICogQHNlbGY6
IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBpbnRfYXJnOiBBICNnbG9uZwotICogQG9wdGlvbmFs
X2FyZzogQSAjZ2xvbmcKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSB2b2lk
Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZV9hbmRfdXNlcl9nZXN0dXJl
X2FzYWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZywgZ2xvbmcgb3B0aW9u
YWxfYXJnLCBnYm9vbGVhbiBpc1VzZXJHZXN0dXJlKTsKLQotLyoqCiAgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3dpdGhfc2NyaXB0X3N0YXRlX3ZvaWQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagogICoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAxMDQzOTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3Rvcnku
aCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVGVzdE9iai5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJy
b3IuaD4KQEAgLTI0MiwxMSArMjQxLDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE9ialBybwogICAgIHsgImN1c3RvbUFyZ3NBbmRFeGNlcHRpb24iLCBEb250RGVsZXRlIHwg
SlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUFyZ3NBbmRFeGNlcHRpb24pLCAoaW50cHRyX3Qp
MSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJhZGRFdmVudExpc3RlbmVyIiwgRG9udERlbGV0ZSB8
IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90KTMsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIERvbnREZWxldGUgfCBK
U0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkzLCBO
b0ludHJpbnNpYyB9LAotICAgIHsgIndpdGhEeW5hbWljRnJhbWUiLCBEb250RGVsZXRlIHwgSlND
OjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWUpLCAoaW50cHRyX3QpMCwgTm9JbnRy
aW5zaWMgfSwKLSAgICB7ICJ3aXRoRHluYW1pY0ZyYW1lQW5kQXJnIiwgRG9udERlbGV0ZSB8IEpT
Qzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kQXJnKSwgKGludHB0cl90KTEs
IE5vSW50cmluc2ljIH0sCi0gICAgeyAid2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnIiwg
RG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kT3B0
aW9uYWxBcmcpLCAoaW50cHRyX3QpMiwgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJ3aXRoRHluYW1p
Y0ZyYW1lQW5kVXNlckdlc3R1cmUiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZSksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNp
YyB9LAotICAgIHsgIndpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQiLCBEb250RGVs
ZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVy
ZUFTQUQpLCAoaW50cHRyX3QpMiwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ3aXRoU2NyaXB0U3Rh
dGVWb2lkIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3Rh
dGVWb2lkKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAid2l0aFNjcmlwdFN0
YXRlT2JqIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3Rh
dGVPYmopLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ3aXRoU2NyaXB0U3Rh
dGVWb2lkRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
U2NyaXB0U3RhdGVWb2lkRXhjZXB0aW9uKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCkBA
IC0yNzEsNyArMjY1LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBy
bwogICAgIHsgMCwgMCwgMCwgMCwgTm9JbnRyaW5zaWMgfQogfTsKIAotc3RhdGljIGNvbnN0IEhh
c2hUYWJsZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSA9IHsgMTM3LCAxMjcsIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlVmFsdWVzLCAwIH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE9i
alByb3RvdHlwZVRhYmxlID0geyAxMzUsIDEyNywgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1
ZXMsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IlRlc3RPYmpQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0T2JqUHJvdG90eXBlVGFi
bGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqUHJvdG90eXBlKSB9OwogCiBKU09i
amVjdCogSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTEzMDksMTIxICsxMzAzLDYgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKLXsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBpZiAo
IXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKLSAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7Ci0gICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKLSAgICBpZiAo
IWR5bmFtaWNGcmFtZSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLSAgICBpbXBsLT53aXRoRHluYW1pY0ZyYW1lKGR5bmFtaWNGcmFtZSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVB
bmRBcmcoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6
OnNfaW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRo
aXNWYWx1ZSkpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpT
VGVzdE9iajo6c19pbmZvKTsKLSAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9i
aio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4
ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKLSAgICBGcmFtZSogZHluYW1pY0ZyYW1lID0g
dG9EeW5hbWljRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFkeW5hbWljRnJhbWUpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW50IGludEFyZyhNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvSW50MzIo
ZXhlYykpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT53aXRoRHluYW1pY0ZyYW1l
QW5kQXJnKGR5bmFtaWNGcmFtZSwgaW50QXJnKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKEV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsK
LSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNf
aW5mbyk7Ci0gICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOwotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90IGVu
b3VnaCBhcmd1bWVudHMiKSk7Ci0gICAgRnJhbWUqIGR5bmFtaWNGcmFtZSA9IHRvRHluYW1pY0Zy
YW1lKGV4ZWMpOwotICAgIGlmICghZHluYW1pY0ZyYW1lKQotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGludCBpbnRBcmcoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKLSAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gZXhlYy0+YXJndW1l
bnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMSkgewotICAgICAgICBpbXBsLT53aXRo
RHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoZHluYW1pY0ZyYW1lLCBpbnRBcmcpOwotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGlu
dCBvcHRpb25hbEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNV
bmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBs
LT53aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoZHluYW1pY0ZyYW1lLCBpbnRBcmcsIG9w
dGlvbmFsQXJnKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
fQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKLSAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7Ci0gICAgVGVzdE9i
aiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7
Ci0gICAgRnJhbWUqIGR5bmFtaWNGcmFtZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMpOwotICAgIGlm
ICghZHluYW1pY0ZyYW1lKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotICAgIGludCBpbnRBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwg
TWlzc2luZ0lzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci0gICAgaW1wbC0+d2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlKGR5bmFtaWNGcmFtZSwg
aW50QXJnLCBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJh
bWVBbmRVc2VyR2VzdHVyZUFTQUQoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9i
aio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
Y2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKLSAgICBUZXN0T2JqKiBpbXBsID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKLSAgICBGcmFtZSog
ZHluYW1pY0ZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFkeW5hbWljRnJh
bWUpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
aW50IGludEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRl
ZmluZWQpLnRvSW50MzIoZXhlYykpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHNpemVf
dCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8
PSAxKSB7Ci0gICAgICAgIGltcGwtPndpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQo
ZHluYW1pY0ZyYW1lLCBpbnRBcmcpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGludCBvcHRpb25hbEFyZyhNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwot
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT53aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdl
c3R1cmVBU0FEKGR5bmFtaWNGcmFtZSwgaW50QXJnLCBvcHRpb25hbEFyZywgU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgJKHJldmlzaW9uIDEwNDM5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDExICsxNjYs
NiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21B
cmdzQW5kRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRlKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoRHluYW1pY0ZyYW1lKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0Zy
YW1lQW5kQXJnKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9u
YWxBcmcoSlNDOjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVy
ZShKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVNB
RChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZChKU0M6OkV4ZWNTdGF0
ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0U3RhdGVWb2lkRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
CShyZXZpc2lvbiAxMDQzOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NSwxMSArMTU1LDYgQEAg
ZW51bSB7CiAtICh2b2lkKWN1c3RvbUFyZ3NBbmRFeGNlcHRpb246KERPTWxvZyAqKWludEFyZzsK
IC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8
RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwog
LSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlk
IDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7
Ci0tICh2b2lkKXdpdGhEeW5hbWljRnJhbWU7Ci0tICh2b2lkKXdpdGhEeW5hbWljRnJhbWVBbmRB
cmc6KGludClpbnRBcmc7Ci0tICh2b2lkKXdpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZzoo
aW50KWludEFyZyBvcHRpb25hbEFyZzooaW50KW9wdGlvbmFsQXJnOwotLSAodm9pZCl3aXRoRHlu
YW1pY0ZyYW1lQW5kVXNlckdlc3R1cmU6KGludClpbnRBcmc7Ci0tICh2b2lkKXdpdGhEeW5hbWlj
RnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQ6KGludClpbnRBcmcgb3B0aW9uYWxBcmc6KGludClvcHRp
b25hbEFyZzsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKIC0gKERPTVRlc3RPYmogKil3
aXRoU2NyaXB0U3RhdGVPYmo7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHRpb247
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0JKHJldmlzaW9uIDEwNDM5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0JKHdvcmtpbmcgY29weSkK
QEAgLTY0MywzNiArNjQzLDYgQEAgLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmlu
ZyAqKQogICAgIElNUEwtPnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgV1RGOjpnZXRQdHIobmF0
aXZlRXZlbnRMaXN0ZW5lciksIHVzZUNhcHR1cmUpOwogfQogCi0tICh2b2lkKXdpdGhEeW5hbWlj
RnJhbWUKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
SU1QTC0+d2l0aER5bmFtaWNGcmFtZSgpOwotfQotCi0tICh2b2lkKXdpdGhEeW5hbWljRnJhbWVB
bmRBcmc6KGludClpbnRBcmcKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgSU1QTC0+d2l0aER5bmFtaWNGcmFtZUFuZEFyZyhpbnRBcmcpOwotfQotCi0t
ICh2b2lkKXdpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZzooaW50KWludEFyZyBvcHRpb25h
bEFyZzooaW50KW9wdGlvbmFsQXJnCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIElNUEwtPndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyhpbnRB
cmcsIG9wdGlvbmFsQXJnKTsKLX0KLQotLSAodm9pZCl3aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdl
c3R1cmU6KGludClpbnRBcmcKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgSU1QTC0+d2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlKGludEFyZyk7
Ci19Ci0KLS0gKHZvaWQpd2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVNBRDooaW50KWlu
dEFyZyBvcHRpb25hbEFyZzooaW50KW9wdGlvbmFsQXJnCi17Ci0gICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPndpdGhEeW5hbWljRnJhbWVBbmRVc2Vy
R2VzdHVyZUFTQUQoaW50QXJnLCBvcHRpb25hbEFyZyk7Ci19Ci0KIC0gKHZvaWQpd2l0aFNjcmlw
dFN0YXRlVm9pZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCShyZXZpc2lvbiAxMDQzOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NyArMzAsNiBAQAogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKLSNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgi
CkBAIC04OTQsODkgKzg5Myw2IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVtb3Zl
RXZlbnQKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHdpdGhEeW5hbWljRnJhbWVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aER5bmFtaWNGcmFtZSIp
OwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgRnJhbWUqIGVudGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRl
cmVkQ29udGV4dCgpOwotICAgIGlmICghZW50ZXJlZEZyYW1lKQotICAgICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwotICAgIGltcC0+d2l0aER5bmFtaWNGcmFtZShlbnRlcmVkRnJhbWUpOwot
ICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLX0KLQotc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB3aXRoRHluYW1pY0ZyYW1lQW5kQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhEeW5hbWlj
RnJhbWVBbmRBcmciKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7
Ci0gICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBFWENFUFRJT05fQkxPQ0soaW50LCBpbnRBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwotICAgIEZyYW1lKiBlbnRl
cmVkRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKLSAg
ICBpZiAoIWVudGVyZWRGcmFtZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLSAg
ICBpbXAtPndpdGhEeW5hbWljRnJhbWVBbmRBcmcoZW50ZXJlZEZyYW1lLCBpbnRBcmcpOwotICAg
IHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLX0KLQotc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB3aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmdDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aER5
bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnIik7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQot
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5
OjpUeXBlRXJyb3IpOwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGludCwgaW50QXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKLSAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8PSAxKSB7Ci0gICAgICAgIEZyYW1lKiBlbnRlcmVkRnJhbWUg
PSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKLSAgICAgICAgaWYg
KCFlbnRlcmVkRnJhbWUpCi0gICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAg
ICAgICBpbXAtPndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyhlbnRlcmVkRnJhbWUsIGlu
dEFyZyk7Ci0gICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLSAgICB9Ci0g
ICAgRVhDRVBUSU9OX0JMT0NLKGludCwgb3B0aW9uYWxBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwotICAgIEZyYW1lKiBl
bnRlcmVkRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsK
LSAgICBpZiAoIWVudGVyZWRGcmFtZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
LSAgICBpbXAtPndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyhlbnRlcmVkRnJhbWUsIGlu
dEFyZywgb3B0aW9uYWxBcmcpOwotICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsK
LX0KLQotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoRHluYW1pY0ZyYW1lQW5kVXNl
ckdlc3R1cmVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19T
VEFUUygiRE9NLlRlc3RPYmoud2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlIik7Ci0gICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVu
b3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwotICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgaW50QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIE1p
c3NpbmdJc1VuZGVmaW5lZCkpKTsKLSAgICBGcmFtZSogZW50ZXJlZEZyYW1lID0gVjhQcm94eTo6
cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7Ci0gICAgaWYgKCFlbnRlcmVkRnJhbWUp
Ci0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0gICAgaW1wLT53aXRoRHluYW1pY0Zy
YW1lQW5kVXNlckdlc3R1cmUoZW50ZXJlZEZyYW1lLCBpbnRBcmcsIFNjcmlwdENvbnRyb2xsZXI6
OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7Ci19Ci0KLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aER5bmFtaWNGcmFt
ZUFuZFVzZXJHZXN0dXJlQVNBRENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17
Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1
cmVBU0FEIik7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwotICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
RVhDRVBUSU9OX0JMT0NLKGludCwgaW50QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKLSAgICBpZiAoYXJncy5MZW5ndGgo
KSA8PSAxKSB7Ci0gICAgICAgIEZyYW1lKiBlbnRlcmVkRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2
ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKLSAgICAgICAgaWYgKCFlbnRlcmVkRnJhbWUpCi0g
ICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAgICAgICBpbXAtPndpdGhEeW5h
bWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQoZW50ZXJlZEZyYW1lLCBpbnRBcmcsIFNjcmlwdENv
bnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKLSAgICAgICAgcmV0dXJuIHY4OjpI
YW5kbGU8djg6OlZhbHVlPigpOwotICAgIH0KLSAgICBFWENFUFRJT05fQkxPQ0soaW50LCBvcHRp
b25hbEFyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBNaXNzaW5n
SXNVbmRlZmluZWQpKSk7Ci0gICAgRnJhbWUqIGVudGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJp
ZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwotICAgIGlmICghZW50ZXJlZEZyYW1lKQotICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAgIGltcC0+d2l0aER5bmFtaWNGcmFtZUFu
ZFVzZXJHZXN0dXJlQVNBRChlbnRlcmVkRnJhbWUsIGludEFyZywgb3B0aW9uYWxBcmcsIFNjcmlw
dENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKLSAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0
aFNjcmlwdFN0YXRlVm9pZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0U3RhdGVWb2lkIik7CkBAIC0xNDc1
LDExICsxMzkxLDYgQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRDYWxsYmFjayBUZXN0T2JqQ2FsbAog
ICAgIHsiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBWOFRlc3RPYmo6OmN1c3RvbU1ldGhvZFdpdGhB
cmdzQ2FsbGJhY2t9LAogICAgIHsiYWRkRXZlbnRMaXN0ZW5lciIsIFRlc3RPYmpJbnRlcm5hbDo6
YWRkRXZlbnRMaXN0ZW5lckNhbGxiYWNrfSwKICAgICB7InJlbW92ZUV2ZW50TGlzdGVuZXIiLCBU
ZXN0T2JqSW50ZXJuYWw6OnJlbW92ZUV2ZW50TGlzdGVuZXJDYWxsYmFja30sCi0gICAgeyJ3aXRo
RHluYW1pY0ZyYW1lIiwgVGVzdE9iakludGVybmFsOjp3aXRoRHluYW1pY0ZyYW1lQ2FsbGJhY2t9
LAotICAgIHsid2l0aER5bmFtaWNGcmFtZUFuZEFyZyIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aER5
bmFtaWNGcmFtZUFuZEFyZ0NhbGxiYWNrfSwKLSAgICB7IndpdGhEeW5hbWljRnJhbWVBbmRPcHRp
b25hbEFyZyIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJn
Q2FsbGJhY2t9LAotICAgIHsid2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlIiwgVGVzdE9i
akludGVybmFsOjp3aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVDYWxsYmFja30sCi0gICAg
eyJ3aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVBU0FEIiwgVGVzdE9iakludGVybmFsOjp3
aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVBU0FEQ2FsbGJhY2t9LAogICAgIHsid2l0aFNj
cmlwdFN0YXRlVm9pZCIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZENhbGxi
YWNrfSwKICAgICB7IndpdGhTY3JpcHRTdGF0ZU9iaiIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNj
cmlwdFN0YXRlT2JqQ2FsbGJhY2t9LAogICAgIHsid2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlv
biIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlvbkNhbGxiYWNr
fSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121589</attachid>
            <date>2012-01-08 14:14:51 -0800</date>
            <delta_ts>2012-01-08 14:48:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-75795-20120108141450.patch</filename>
            <type>text/plain</type>
            <size>22464</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDQxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTA4ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgdG9E
eW5hbWljRnJhbWUgYW5kIHVudXNlZCBbQ2FsbFdpdGg9RHluYW1pY0ZyYW1lXQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3OTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBXZSd2ZSBzdWNjZWVkZWQgaW4gcmVt
b3ZpbmcgYWxsIHRoZSBjYWxsZXJzIGZvIHRoaXMgZnVuY3Rpb24sIGluY2x1ZGluZworICAgICAg
ICBhbGwgdGhlIHVzZXMgb2YgQ2FsbFdpdGg9RHluYW1pY0ZyYW1lIGluIElETCBmaWxlcy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZUZ1bmN0aW9uQ2FsbFN0cmluZyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKwogMjAxMi0wMS0w
OCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIE5lZWRzVXNlckdl
c3R1cmVDaGVjayBJREwgYXR0cmlidXRlIGlzIG5vIGxvbmdlciB1c2VkCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDEwNDQxMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0NCwxMiArMjQ0LDYgQEAgdm9pZCBwcmludEVycm9yTWVzc2FnZUZvckZyYW1l
KEZyYW1lKiBmcgogICAgIGZyYW1lLT5kb21XaW5kb3coKS0+cHJpbnRFcnJvck1lc3NhZ2UobWVz
c2FnZSk7CiB9CiAKLS8vIEZJWE1FOiBXZSBzaG91bGQgcmVtb3ZlIG9yIGF0IGxlYXN0IGRlcHJl
Y2F0ZSB0aGlzIGZ1bmN0aW9uLiBDYWxsZXJzIGNhbiB1c2UgZmlyc3RET01XaW5kb3cgZGlyZWN0
bHkuCi1GcmFtZSogdG9EeW5hbWljRnJhbWUoRXhlY1N0YXRlKiBleGVjKQotewotICAgIHJldHVy
biBmaXJzdERPTVdpbmRvdyhleGVjKS0+ZnJhbWUoKTsKLX0KLQogSlNWYWx1ZSBvYmplY3RUb1N0
cmluZ0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAwLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFBy
b3RvRnVuY1RvU3RyaW5nKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCShyZXZpc2lvbiAxMDQ0MTApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjk0LDggKzI5NCw2IEBAIGVudW0g
UGFyYW1ldGVyTWlzc2luZ1BvbGljeSB7CiAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZUZvckZy
YW1lKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICBKU0M6OkpTVmFsdWUgb2Jq
ZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgRnJhbWUqIHRvRHlu
YW1pY0ZyYW1lKEpTQzo6RXhlY1N0YXRlKik7Ci0KICAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIGpz
U3RyaW5nKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHMpCiAgICAgewogICAg
ICAgICBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gcy5pbXBsKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNp
b24gMTA0NDEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTI0NDQsMTIgKzI0NDQsNyBAQCBzdWIgR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2sKICAgICBteSAkY2FsbFdpdGggPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn07CiAgICAgaWYgKCRjYWxsV2l0aCBh
bmQgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0
b3IifSkgewogICAgICAgICBteSAkY2FsbFdpdGhBcmcgPSAiQ09NUElMRV9BU1NFUlQoZmFsc2Up
IjsKLSAgICAgICAgaWYgKCRjYWxsV2l0aCBlcSAiRHluYW1pY0ZyYW1lIikgewotICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFt
aWNGcmFtZShleGVjKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGlmICghZHluYW1pY0ZyYW1lKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKLSAg
ICAgICAgICAgICRjYWxsV2l0aEFyZyA9ICJkeW5hbWljRnJhbWUiOwotICAgICAgICB9IGVsc2lm
ICgkY2FsbFdpdGggZXEgIlNjcmlwdFN0YXRlIikgeworICAgICAgICBpZiAoJGNhbGxXaXRoIGVx
ICJTY3JpcHRTdGF0ZSIpIHsKICAgICAgICAgICAgICRjYWxsV2l0aEFyZyA9ICJleGVjIjsKICAg
ICAgICAgfSBlbHNpZiAoJGNhbGxXaXRoIGVxICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Iikgewog
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdENvbnRleHQgPSBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0JKHJldmlzaW9uIDEwNDQxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zMTk2LDEyICszMTk2
LDcgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKICAgICBteSAkY2FsbFdpdGgg
PSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn07
CiAgICAgaWYgKCRjYWxsV2l0aCkgewogICAgICAgICBteSAkY2FsbFdpdGhBcmcgPSAiQ09NUElM
RV9BU1NFUlQoZmFsc2UpIjsKLSAgICAgICAgaWYgKCRjYWxsV2l0aCBlcSAiRHluYW1pY0ZyYW1l
IikgewotICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIkZyYW1lKiBlbnRlcmVkRnJh
bWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTtcbiI7Ci0gICAg
ICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiaWYgKCFlbnRlcmVkRnJhbWUpXG4iOwotICAg
ICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIiAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
O1xuIjsKLSAgICAgICAgICAgICRjYWxsV2l0aEFyZyA9ICJlbnRlcmVkRnJhbWUiOwotICAgICAg
ICB9IGVsc2lmICgkY2FsbFdpdGggZXEgIlNjcmlwdFN0YXRlIikgeworICAgICAgICBpZiAoJGNh
bGxXaXRoIGVxICJTY3JpcHRTdGF0ZSIpIHsKICAgICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVu
dCAuICJFbXB0eVNjcmlwdFN0YXRlIHN0YXRlO1xuIjsKICAgICAgICAgICAgICRjYWxsV2l0aEFy
ZyA9ICImc3RhdGUiOwogICAgICAgICAgICAgJGhhc1NjcmlwdFN0YXRlID0gMTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJl
dmlzaW9uIDEwNDQxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDkgKzEwMSw2IEBAIG1vZHVsZSB0ZXN0
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVh
biB1c2VDYXB0dXJlKTsKIAogICAgICAgICAvLyAnQ2FsbFdpdGgnIGV4dGVuZGVkIGF0dHJpYnV0
ZQotICAgICAgICBbQ2FsbFdpdGg9RHluYW1pY0ZyYW1lXSB2b2lkIHdpdGhEeW5hbWljRnJhbWUo
KTsKLSAgICAgICAgW0NhbGxXaXRoPUR5bmFtaWNGcmFtZV0gdm9pZCB3aXRoRHluYW1pY0ZyYW1l
QW5kQXJnKGluIGxvbmcgaW50QXJnKTsKLSAgICAgICAgW0NhbGxXaXRoPUR5bmFtaWNGcmFtZV0g
dm9pZCB3aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW4gbG9uZyBpbnRBcmcsIGluIFtP
cHRpb25hbF0gbG9uZyBvcHRpb25hbEFyZyk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0
ZV0gdm9pZCB3aXRoU2NyaXB0U3RhdGVWb2lkKCk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRT
dGF0ZV0gVGVzdE9iaiB3aXRoU2NyaXB0U3RhdGVPYmooKTsKICAgICAgICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlXSB2b2lkIHdpdGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHRpb24oKQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dl
YkRPTVRlc3RPYmouY3BwCShyZXZpc2lvbiAxMDQ0MTApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03NjAsMzAgKzc2MCw2IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6cmVtb3ZlRXZlbnRMaXN0ZW5l
cigKICAgICBpbXBsKCktPnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgdG9XZWJDb3JlKGxpc3Rl
bmVyKSwgdXNlQ2FwdHVyZSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6d2l0aER5bmFtaWNG
cmFtZSgpCi17Ci0gICAgaWYgKCFpbXBsKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGltcGwo
KS0+d2l0aER5bmFtaWNGcmFtZSgpOwotfQotCi12b2lkIFdlYkRPTVRlc3RPYmo6OndpdGhEeW5h
bWljRnJhbWVBbmRBcmcoaW50IGludEFyZykKLXsKLSAgICBpZiAoIWltcGwoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaW1wbCgpLT53aXRoRHluYW1pY0ZyYW1lQW5kQXJnKGludEFyZyk7Ci19
Ci0KLXZvaWQgV2ViRE9NVGVzdE9iajo6d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKGlu
dCBpbnRBcmcsIGludCBvcHRpb25hbEFyZykKLXsKLSAgICBpZiAoIWltcGwoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaW1wbCgpLT53aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50
QXJnLCBvcHRpb25hbEFyZyk7Ci19Ci0KIHZvaWQgV2ViRE9NVGVzdE9iajo6d2l0aFNjcmlwdFN0
YXRlVm9pZCgpCiB7CiAgICAgaWYgKCFpbXBsKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAkocmV2
aXNpb24gMTA0NDEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw5ICsxNjMsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjdXN0b21NZXRob2RXaXRoQXJncyhpbnQgaW50QXJnLCBjb25zdCBXZWJE
T01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAgICB2b2lk
IGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJET01F
dmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKICAgICB2b2lkIHJlbW92
ZUV2ZW50TGlzdGVuZXIoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJET01FdmVu
dExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIHdpdGhEeW5h
bWljRnJhbWUoKTsKLSAgICB2b2lkIHdpdGhEeW5hbWljRnJhbWVBbmRBcmcoaW50IGludEFyZyk7
Ci0gICAgdm9pZCB3aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50IGludEFyZywgaW50
IG9wdGlvbmFsQXJnKTsKICAgICB2b2lkIHdpdGhTY3JpcHRTdGF0ZVZvaWQoKTsKICAgICBXZWJE
T01UZXN0T2JqIHdpdGhTY3JpcHRTdGF0ZU9iaigpOwogICAgIHZvaWQgd2l0aFNjcmlwdFN0YXRl
Vm9pZEV4Y2VwdGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAJ
KHJldmlzaW9uIDEwNDQxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsMzMg
KzIzMCw2IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfZXhjZXB0aW8KIH0KIAog
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWUoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZikKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT53aXRoRHluYW1pY0ZyYW1lKCk7Ci19
Ci0KLXZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lX2FuZF9hcmco
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZykKLXsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKHNlbGYpOwotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBp
dGVtLT53aXRoRHluYW1pY0ZyYW1lQW5kQXJnKGludF9hcmcpOwotfQotCi12b2lkCi13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZV9hbmRfb3B0aW9uYWxfYXJnKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdsb25nIGludF9hcmcsIGdsb25nIG9wdGlvbmFsX2FyZykKLXsKLSAg
ICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKLSAgICBpdGVtLT53aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50X2FyZywg
b3B0aW9uYWxfYXJnKTsKLX0KLQotdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial93aXRoX3Njcmlw
dF9zdGF0ZV92b2lkKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgZ19yZXR1cm5faWZf
ZmFpbChzZWxmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgJKHJldmlzaW9u
IDEwNDQxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDM5ICsxNzQsNiBAQCBX
RUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfZXhjZXB0aW9u
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvciAqKmVycm9yKTsKIAogLyoqCi0gKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZToKLSAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCi0gKgotICogUmV0dXJuczoKLSAqCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Vi
a2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWUoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
Zik7Ci0KLS8qKgotICogd2Via2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYW5k
X2FyZzoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAaW50X2FyZzogQSAjZ2xv
bmcKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9t
X3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZV9hbmRfYXJnKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIGdsb25nIGludF9hcmcpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9k
eW5hbWljX2ZyYW1lX2FuZF9vcHRpb25hbF9hcmc6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQGludF9hcmc6IEEgI2dsb25nCi0gKiBAb3B0aW9uYWxfYXJnOiBBICNnbG9uZwot
ICoKLSAqIFJldHVybnM6Ci0gKgotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lX2FuZF9vcHRpb25hbF9hcmcoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2xvbmcgaW50X2FyZywgZ2xvbmcgb3B0aW9uYWxfYXJnKTsKLQotLyoqCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0YXRlX3ZvaWQ6CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NVGVzdE9iagogICoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAxMDQ0MTApCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQxLDkgKzI0MSw2IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RPYmpQcm8KICAgICB7ICJjdXN0b21BcmdzQW5kRXhjZXB0aW9uIiwgRG9udERl
bGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21BcmdzQW5kRXhjZXB0aW9uKSwgKGlu
dHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIERvbnRE
ZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lciksIChpbnRwdHJf
dCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBEb250RGVs
ZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpLCAoaW50cHRy
X3QpMywgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJ3aXRoRHluYW1pY0ZyYW1lIiwgRG9udERlbGV0
ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lKSwgKGludHB0cl90KTAs
IE5vSW50cmluc2ljIH0sCi0gICAgeyAid2l0aER5bmFtaWNGcmFtZUFuZEFyZyIsIERvbnREZWxl
dGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZEFyZyksIChpbnRw
dHJfdCkxLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25h
bEFyZyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFt
ZUFuZE9wdGlvbmFsQXJnKSwgKGludHB0cl90KTIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAid2l0
aFNjcmlwdFN0YXRlVm9pZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aFNjcmlwdFN0YXRlVm9pZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIndp
dGhTY3JpcHRTdGF0ZU9iaiIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aFNjcmlwdFN0YXRlT2JqKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAid2l0
aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlvbiIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlvbiksIChpbnRwdHJfdCkwLCBOb0ludHJp
bnNpYyB9LApAQCAtMjY4LDcgKzI2NSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpQcm8KICAgICB7IDAsIDAsIDAsIDAsIE5vSW50cmluc2ljIH0KIH07CiAKLXN0YXRp
YyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGUgPSB7IDEzNiwgMTI3LCBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9Oworc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSA9IHsgMTM1LCAxMjcsIEpTVGVzdE9ialByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqUHJvdG90eXBlOjpz
X2luZm8gPSB7ICJUZXN0T2JqUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9ialByb3RvdHlwZSkg
fTsKIAogSlNPYmplY3QqIEpTVGVzdE9ialByb3RvdHlwZTo6c2VsZihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC0xMzA2LDcxICsxMzAzLDYgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lKEV4ZWNTdGF0ZSog
ZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKLSAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7
Ci0gICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOwotICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsK
LSAgICBpZiAoIWR5bmFtaWNGcmFtZSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT53aXRoRHluYW1pY0ZyYW1lKGR5bmFtaWNGcmFtZSk7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5h
bWljRnJhbWVBbmRBcmcoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZK
U1Rlc3RPYmo6OnNfaW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OwotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFz
T2JqZWN0KHRoaXNWYWx1ZSkpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKLSAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKLSAgICBGcmFtZSogZHluYW1p
Y0ZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFkeW5hbWljRnJhbWUpCi0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW50IGlu
dEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQp
LnRvSW50MzIoZXhlYykpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT53aXRoRHlu
YW1pY0ZyYW1lQW5kQXJnKGR5bmFtaWNGcmFtZSwgaW50QXJnKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFs
QXJnKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpz
X2luZm8pKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlz
VmFsdWUpKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rl
c3RPYmo6OnNfaW5mbyk7Ci0gICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVj
LCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7Ci0gICAgRnJhbWUqIGR5bmFtaWNGcmFtZSA9IHRv
RHluYW1pY0ZyYW1lKGV4ZWMpOwotICAgIGlmICghZHluYW1pY0ZyYW1lKQotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGludCBpbnRBcmcoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKS50b0ludDMyKGV4
ZWMpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gZXhl
Yy0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMSkgewotICAgICAgICBp
bXBsLT53aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoZHluYW1pY0ZyYW1lLCBpbnRBcmcp
OwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0K
LQotICAgIGludCBvcHRpb25hbEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBN
aXNzaW5nSXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwotICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
LSAgICBpbXBsLT53aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoZHluYW1pY0ZyYW1lLCBp
bnRBcmcsIG9wdGlvbmFsQXJnKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCShy
ZXZpc2lvbiAxMDQ0MTApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw5ICsxNjYsNiBAQCBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21BcmdzQW5kRXhjZXB0
aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRl
Kik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHlu
YW1pY0ZyYW1lKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kQXJnKEpT
Qzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoSlNDOjpF
eGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWQoSlNDOjpFeGVjU3RhdGUqKTsKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhTY3JpcHRTdGF0ZU9iaihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRl
Vm9pZEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkocmV2aXNp
b24gMTA0NDEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsOSArMTU1LDYgQEAgZW51bSB7CiAt
ICh2b2lkKWN1c3RvbUFyZ3NBbmRFeGNlcHRpb246KERPTWxvZyAqKWludEFyZzsKIC0gKHZvaWQp
YWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRM
aXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZCly
ZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVu
dExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7Ci0tICh2b2lk
KXdpdGhEeW5hbWljRnJhbWU7Ci0tICh2b2lkKXdpdGhEeW5hbWljRnJhbWVBbmRBcmc6KGludClp
bnRBcmc7Ci0tICh2b2lkKXdpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZzooaW50KWludEFy
ZyBvcHRpb25hbEFyZzooaW50KW9wdGlvbmFsQXJnOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVW
b2lkOwogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRTdGF0ZU9iajsKIC0gKHZvaWQpd2l0aFNj
cmlwdFN0YXRlVm9pZEV4Y2VwdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQkocmV2aXNpb24gMTA0
NDEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbQkod29ya2luZyBjb3B5KQpAQCAtNjQzLDI0ICs2NDMsNiBAQCAtICh2b2lkKXJlbW92
ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopCiAgICAgSU1QTC0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cih0eXBlLCBXVEY6OmdldFB0cihuYXRpdmVFdmVudExpc3RlbmVyKSwgdXNlQ2FwdHVyZSk7CiB9
CiAKLS0gKHZvaWQpd2l0aER5bmFtaWNGcmFtZQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT53aXRoRHluYW1pY0ZyYW1lKCk7Ci19Ci0KLS0g
KHZvaWQpd2l0aER5bmFtaWNGcmFtZUFuZEFyZzooaW50KWludEFyZwotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT53aXRoRHluYW1pY0ZyYW1l
QW5kQXJnKGludEFyZyk7Ci19Ci0KLS0gKHZvaWQpd2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFs
QXJnOihpbnQpaW50QXJnIG9wdGlvbmFsQXJnOihpbnQpb3B0aW9uYWxBcmcKLXsKLSAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+d2l0aER5bmFtaWNG
cmFtZUFuZE9wdGlvbmFsQXJnKGludEFyZywgb3B0aW9uYWxBcmcpOwotfQotCiAtICh2b2lkKXdp
dGhTY3JpcHRTdGF0ZVZvaWQKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAkocmV2aXNpb24gMTA0NDEwKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg5Myw1MyArODkzLDYgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZW1vdmVF
dmVudAogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gd2l0aER5bmFtaWNGcmFtZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoRHluYW1pY0ZyYW1lIik7
Ci0gICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBGcmFtZSogZW50ZXJlZEZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVy
ZWRDb250ZXh0KCk7Ci0gICAgaWYgKCFlbnRlcmVkRnJhbWUpCi0gICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7Ci0gICAgaW1wLT53aXRoRHluYW1pY0ZyYW1lKGVudGVyZWRGcmFtZSk7Ci0g
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotfQotCi1zdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHdpdGhEeW5hbWljRnJhbWVBbmRBcmdDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aER5bmFtaWNG
cmFtZUFuZEFyZyIpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsK
LSAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGludEFyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpKSk7Ci0gICAgRnJhbWUqIGVudGVy
ZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwotICAg
IGlmICghZW50ZXJlZEZyYW1lKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAg
IGltcC0+d2l0aER5bmFtaWNGcmFtZUFuZEFyZyhlbnRlcmVkRnJhbWUsIGludEFyZyk7Ci0gICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotfQotCi1zdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHdpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZ0NhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoRHlu
YW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmciKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0g
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6
OlR5cGVFcnJvcik7Ci0gICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soaW50LCBpbnRBcmcsIHRvSW50MzIoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwotICAg
IGlmIChhcmdzLkxlbmd0aCgpIDw9IDEpIHsKLSAgICAgICAgRnJhbWUqIGVudGVyZWRGcmFtZSA9
IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwotICAgICAgICBpZiAo
IWVudGVyZWRGcmFtZSkKLSAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0gICAg
ICAgIGltcC0+d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKGVudGVyZWRGcmFtZSwgaW50
QXJnKTsKLSAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotICAgIH0KLSAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCBvcHRpb25hbEFyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpKSk7Ci0gICAgRnJhbWUqIGVu
dGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwot
ICAgIGlmICghZW50ZXJlZEZyYW1lKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwot
ICAgIGltcC0+d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKGVudGVyZWRGcmFtZSwgaW50
QXJnLCBvcHRpb25hbEFyZyk7Ci0gICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwot
fQotCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRTdGF0ZVZvaWRDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmoud2l0aFNjcmlwdFN0YXRlVm9pZCIpOwpAQCAtMTQzOCw5ICsxMzkxLDYgQEAgc3RhdGlj
IGNvbnN0IEJhdGNoZWRDYWxsYmFjayBUZXN0T2JqQ2FsbAogICAgIHsiY3VzdG9tTWV0aG9kV2l0
aEFyZ3MiLCBWOFRlc3RPYmo6OmN1c3RvbU1ldGhvZFdpdGhBcmdzQ2FsbGJhY2t9LAogICAgIHsi
YWRkRXZlbnRMaXN0ZW5lciIsIFRlc3RPYmpJbnRlcm5hbDo6YWRkRXZlbnRMaXN0ZW5lckNhbGxi
YWNrfSwKICAgICB7InJlbW92ZUV2ZW50TGlzdGVuZXIiLCBUZXN0T2JqSW50ZXJuYWw6OnJlbW92
ZUV2ZW50TGlzdGVuZXJDYWxsYmFja30sCi0gICAgeyJ3aXRoRHluYW1pY0ZyYW1lIiwgVGVzdE9i
akludGVybmFsOjp3aXRoRHluYW1pY0ZyYW1lQ2FsbGJhY2t9LAotICAgIHsid2l0aER5bmFtaWNG
cmFtZUFuZEFyZyIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aER5bmFtaWNGcmFtZUFuZEFyZ0NhbGxi
YWNrfSwKLSAgICB7IndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyIsIFRlc3RPYmpJbnRl
cm5hbDo6d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnQ2FsbGJhY2t9LAogICAgIHsid2l0
aFNjcmlwdFN0YXRlVm9pZCIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZENh
bGxiYWNrfSwKICAgICB7IndpdGhTY3JpcHRTdGF0ZU9iaiIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0
aFNjcmlwdFN0YXRlT2JqQ2FsbGJhY2t9LAogICAgIHsid2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2Vw
dGlvbiIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlvbkNhbGxi
YWNrfSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>