<?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>152268</bug_id>
          
          <creation_ts>2015-12-14 13:36:31 -0800</creation_ts>
          <short_desc>FTL B3 should do PutById</short_desc>
          <delta_ts>2015-12-14 15:19:19 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>151808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1149087</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-14 13:36:31 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149093</commentid>
    <comment_count>1</comment_count>
      <attachid>267318</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-14 13:41:30 -0800</bug_when>
    <thetext>Created attachment 267318
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149094</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-14 13:43:58 -0800</bug_when>
    <thetext>Attachment 267318 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2497:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2511:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2529:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149100</commentid>
    <comment_count>3</comment_count>
      <attachid>267319</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-14 14:02:00 -0800</bug_when>
    <thetext>Created attachment 267319
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149101</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-14 14:02:57 -0800</bug_when>
    <thetext>Attachment 267319 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2497:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2511:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2529:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5025:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5027:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5027:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5055:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5057:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5057:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5085:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5087:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5087:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5115:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5117:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5117:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5145:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5147:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5147:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5175:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5177:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:5177:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 21 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149114</commentid>
    <comment_count>5</comment_count>
      <attachid>267319</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-14 14:29:28 -0800</bug_when>
    <thetext>Comment on attachment 267319
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149128</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-14 15:19:19 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194067</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267318</attachid>
            <date>2015-12-14 13:41:30 -0800</date>
            <delta_ts>2015-12-14 14:02:00 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16025</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MDU2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDE1LTEyLTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBkbyBQdXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTIyNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYjMvQjNMb3dlclRvQWly
LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6Y3JlYXRlR2VuZXJpY0Nv
bXBhcmUpOiBJIHJlYWxpemVkIHRoYXQgd2Ugd2VyZSBtaXNzaW5nIHNvbWUgdXNlZnVsIG1hdGNo
aW5nIHJ1bGVzLgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVB1dEJ5SWQpOiBEbyB0aGUg
dGhpbmdzLgorICAgICAgICAqIGppdC9HUFJJbmZvLmNwcDogQWRkZWQuIEkgaGFkIHRvIGRvIHRo
aXMgeXVja3kgdGhpbmcgYmVjYXVzZSBjbGFuZyB3YXMgaGF2aW5nIGlzc3VlcyBjb21waWxpbmcg
cmVmZXJlbmNlcyB0byB0aGlzIGZyb20gZGVlcGx5IG5lc3RlZCBsYW1iZGFzLgorICAgICAgICAq
IGppdC9HUFJJbmZvLmg6IEFkZGVkIGEgY29tbWVudCBhYm91dCBob3cgcGF0Y2hwb2ludFNjcmF0
Y2hSZWdpc3RlciBpcyBiaXphcnJlIGFuZCBzaG91bGQgcHJvYmFibHkgZGllLgorCiAyMDE1LTEy
LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgZml4IG1lcmdlIGlzc3VlIGluIGEgdGVzdC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQJKHJldmlzaW9uIDE5NDA1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDYgKzQ1MSw3IEBAIHNldChKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCiAgICAg
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAKICAgICBqaXQvR0NBd2FyZUpJ
VFN0dWJSb3V0aW5lLmNwcAorICAgIGppdC9HUFJJbmZvLmNwcAogICAgIGppdC9Ib3N0Q2FsbFJl
dHVyblZhbHVlLmNwcAogICAgIGppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAogICAgIGppdC9KSVQu
Y3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTk0MDUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MSw2ICs0ODEsNyBAQAogCQkwRjkxOUQyNTE1
ODUzQ0UwMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkxOUQyMjE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hw
b2ludC5jcHAgKi87IH07CiAJCTBGOTE5RDI2MTU4NTNDRTMwMDRBNEU3RCAvKiBXYXRjaHBvaW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkxOUQy
MzE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTE5RDI4MTU4NTY3NzMwMDRBNEU3RCAvKiBT
eW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjkxOUQyNzE1ODU2NzcwMDA0QTRFN0QgLyogU3ltYm9sVGFibGUuY3BwICovOyB9Owor
CQkwRjkzMjc0RDFDMUY2NkFBMDBDRjY1NjQgLyogR1BSSW5mby5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkzMjc0QzFDMUY2NkFBMDBDRjY1NjQg
LyogR1BSSW5mby5jcHAgKi87IH07CiAJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAvKiBDYWxs
TGlua1N0YXR1cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjkzMzI5MzE0Q0E3REMxMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuY3BwICovOyB9
OwogCQkwRjkzMzI5RTE0Q0E3REM1MDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTMzMjk0MTRDQTdEQzEw
MDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGOTMzMjlGMTRDQTdEQ0EwMDg1RjNDNiAvKiBHZXRCeUlk
U3RhdHVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOTMzMjk1MTRDQTdEQzEwMDg1RjNDNiAvKiBHZXRCeUlkU3RhdHVzLmNwcCAqLzsgfTsKQEAg
LTI1OTIsNiArMjU5Myw3IEBACiAJCTBGOTE5RDIyMTU4NTNDREUwMDRBNEU3RCAvKiBXYXRjaHBv
aW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNocG9pbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkxOUQyMzE1ODUzQ0RFMDA0QTRF
N0QgLyogV2F0Y2hwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRj
aHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTE5RDI3MTU4NTY3NzAw
MDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTeW1ib2xUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
OTMyNzRDMUMxRjY2QUEwMENGNjU2NCAvKiBHUFJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdQUkluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjkzMzI5MzE0Q0E3REMxMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FsbExpbmtTdGF0dXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkzMzI5NDE0Q0E3REMxMDA4NUYzQzYgLyogQ2Fs
bExpbmtTdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbExpbmtT
dGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5MzMyOTUxNENBN0RDMTAw
ODVGM0M2IC8qIEdldEJ5SWRTdGF0dXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR2V0QnlJZFN0YXR1cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00ODkyLDYgKzQ4OTQsNyBAQAogCQkJCTBGMjRFNTNFMTdFQTlGNTkwMEFCQjIxNyAvKiBGUFJJ
bmZvLmggKi8sCiAJCQkJMEY3NjZEMkQxNUE4RENERDAwOEYzNjNFIC8qIEdDQXdhcmVKSVRTdHVi
Um91dGluZS5jcHAgKi8sCiAJCQkJMEY3NjZEMkUxNUE4RENERDAwOEYzNjNFIC8qIEdDQXdhcmVK
SVRTdHViUm91dGluZS5oICovLAorCQkJCTBGOTMyNzRDMUMxRjY2QUEwMENGNjU2NCAvKiBHUFJJ
bmZvLmNwcCAqLywKIAkJCQkwRjI0RTUzRjE3RUE5RjU5MDBBQkIyMTcgLyogR1BSSW5mby5oICov
LAogCQkJCTBGNDY4MEQwMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmNw
cCAqLywKIAkJCQkwRjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1
ZS5oICovLApAQCAtNDkwNCwxMSArNDkwNywxMSBAQAogCQkJCUE3NTcwNkREMTE4QTJCQ0YwMDU3
Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJfNjQuY3BwICovLAogCQkJCUZFM0EwNkFEMUMxMENCNkYw
MDM5MEZERCAvKiBKSVRCaXRBbmRHZW5lcmF0b3IuY3BwICovLAogCQkJCUZFM0EwNkFFMUMxMENC
NkYwMDM5MEZERCAvKiBKSVRCaXRBbmRHZW5lcmF0b3IuaCAqLywKKwkJCQlGRTNBMDZBNzFDMTBC
Qzc0MDAzOTBGREQgLyogSklUQml0QmluYXJ5T3BHZW5lcmF0b3IuaCAqLywKIAkJCQlGRTNBMDZB
MzFDMTBCNzA4MDAzOTBGREQgLyogSklUQml0T3JHZW5lcmF0b3IuY3BwICovLAogCQkJCUZFM0Ew
NkE0MUMxMEI3MDgwMDM5MEZERCAvKiBKSVRCaXRPckdlbmVyYXRvci5oICovLAogCQkJCUZFM0Ew
NkFGMUMxMENCNkYwMDM5MEZERCAvKiBKSVRCaXRYb3JHZW5lcmF0b3IuY3BwICovLAogCQkJCUZF
M0EwNkIwMUMxMENCNkYwMDM5MEZERCAvKiBKSVRCaXRYb3JHZW5lcmF0b3IuaCAqLywKLQkJCQlG
RTNBMDZBNzFDMTBCQzc0MDAzOTBGREQgLyogSklUQml0QmluYXJ5T3BHZW5lcmF0b3IuaCAqLywK
IAkJCQk4NkNDODVBMjBFRTc5Qjc0MDAyODg2ODIgLyogSklUQ2FsbC5jcHAgKi8sCiAJCQkJMTQ2
RkU1MTExMUE3MTA0MzAwODdBRTY2IC8qIEpJVENhbGwzMl82NC5jcHAgKi8sCiAJCQkJMEY4Rjk0
NDMxNjY3NjM1MjAwRDYxOTcxIC8qIEpJVENvZGUuY3BwICovLApAQCAtODc1NSw2ICs4NzU4LDcg
QEAKIAkJCQkwRkIxMDU4NTE2NzU0ODBGMDBGOEFCNkUgLyogRXhpdEtpbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFQTBBMUMxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExRTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJz
dHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjkzMjc0RDFDMUY2
NkFBMDBDRjY1NjQgLyogR1BSSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ4NTMyNzE4
N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQTBBMDkxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENhcGFiaWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjMzOEUxQjFCRjI4NkVBMDAxM0M4OEYgLyogQjNCbG9ja0luc2Vy
dGlvblNldC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lvbiAxOTQwNTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzMSw2ICsxMTMx
LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIEFyZzo6V2lkdGggd2lkdGggPSBBcmc6OndpZHRoRm9y
QjNUeXBlKHZhbHVlLT50eXBlKCkpOwogICAgICAgICBBcmcgcmVzQ29uZCA9IEFyZzo6cmVzQ29u
ZChNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybykuaW52ZXJ0ZWQoaW52ZXJ0ZWQpOwogICAgICAgICAK
KyAgICAgICAgYXV0byB0cnlUZXN0ID0gWyZdICgKKyAgICAgICAgICAgIEFyZzo6V2lkdGggd2lk
dGgsIGNvbnN0IEFyZ1Byb21pc2UmIGxlZnQsIGNvbnN0IEFyZ1Byb21pc2UmIHJpZ2h0KSAtPiBJ
bnN0IHsKKyAgICAgICAgICAgIGlmIChJbnN0IHJlc3VsdCA9IHRlc3Qod2lkdGgsIHJlc0NvbmQs
IGxlZnQsIHJpZ2h0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAg
ICAgaWYgKEluc3QgcmVzdWx0ID0gdGVzdCh3aWR0aCwgcmVzQ29uZCwgcmlnaHQsIGxlZnQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gSW5zdCgp
OworICAgICAgICB9OworCiAgICAgICAgIGF1dG8gYXR0ZW1wdEZ1c2VkID0gWyZdICgpIC0+IElu
c3QgewogICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAg
IGNhc2UgTm90RXF1YWw6CkBAIC0xMTY1LDE1ICsxMTc0LDYgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICBBcmcgbGVmdEltbSA9IGltbShsZWZ0KTsKICAgICAgICAgICAgICAgICBBcmcgcmln
aHRJbW0gPSBpbW0ocmlnaHQpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGF1
dG8gdHJ5VGVzdCA9IFsmXSAoCi0gICAgICAgICAgICAgICAgICAgIEFyZzo6V2lkdGggd2lkdGgs
IGNvbnN0IEFyZ1Byb21pc2UmIGxlZnQsIGNvbnN0IEFyZ1Byb21pc2UmIHJpZ2h0KSAtPiBJbnN0
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdGVzdCh3aWR0aCwgcmVz
Q29uZCwgbGVmdCwgcmlnaHQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdGVzdCh3aWR0aCwgcmVz
Q29uZCwgcmlnaHQsIGxlZnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoKTsKLSAgICAgICAgICAgICAgICB9
OwotCiAgICAgICAgICAgICAgICAgYXV0byB0cnlUZXN0TG9hZEltbSA9IFsmXSAoQXJnOjpXaWR0
aCB3aWR0aCwgQjM6Ok9wY29kZSBsb2FkT3Bjb2RlKSAtPiBJbnN0IHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKHJpZ2h0SW1tICYmIHJpZ2h0SW1tLmlzUmVwcmVzZW50YWJsZUFzKHdpZHRoLCBB
cmc6OlVuc2lnbmVkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0
ID0gdHJ5VGVzdCh3aWR0aCwgbG9hZFByb21pc2UobGVmdCwgbG9hZE9wY29kZSksIHJpZ2h0SW1t
KSkgewpAQCAtMTI1NCw2ICsxMjU0LDM1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAoY2FuQ29tbWl0SW50ZXJuYWwgJiYgdmFsdWUtPmFzPE1lbW9y
eVZhbHVlPigpKSB7CisgICAgICAgICAgICAvLyBIYW5kbGUgdGhpbmdzIGxpa2UgQnJhbmNoKExv
YWQ4Wih2YWx1ZSkpCisKKyAgICAgICAgICAgIGlmIChJbnN0IHJlc3VsdCA9IHRyeVRlc3QoQXJn
OjpXaWR0aDgsIGxvYWRQcm9taXNlKHZhbHVlLCBMb2FkOFopLCBBcmc6OmltbSgtMSkpKSB7Cisg
ICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwodmFsdWUpOworICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChJbnN0IHJlc3Vs
dCA9IHRyeVRlc3QoQXJnOjpXaWR0aDgsIGxvYWRQcm9taXNlKHZhbHVlLCBMb2FkOFMpLCBBcmc6
OmltbSgtMSkpKSB7CisgICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwodmFsdWUpOworICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmIChJbnN0IHJlc3VsdCA9IHRyeVRlc3QoQXJnOjpXaWR0aDE2LCBsb2FkUHJvbWlzZSh2YWx1
ZSwgTG9hZDE2WiksIEFyZzo6aW1tKC0xKSkpIHsKKyAgICAgICAgICAgICAgICBjb21taXRJbnRl
cm5hbCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdHJ5VGVzdChBcmc6OldpZHRoMTYs
IGxvYWRQcm9taXNlKHZhbHVlLCBMb2FkMTZTKSwgQXJnOjppbW0oLTEpKSkgeworICAgICAgICAg
ICAgICAgIGNvbW1pdEludGVybmFsKHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoSW5zdCByZXN1bHQgPSB0cnlU
ZXN0KHdpZHRoLCBsb2FkUHJvbWlzZSh2YWx1ZSksIEFyZzo6aW1tKC0xKSkpIHsKKyAgICAgICAg
ICAgICAgICBjb21taXRJbnRlcm5hbCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGlmIChJbnN0IHJlc3Vs
dCA9IHRlc3Qod2lkdGgsIHJlc0NvbmQsIHRtcFByb21pc2UodmFsdWUpLCBBcmc6OmltbSgtMSkp
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTk0
MDUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI0NzIsMTcgKzI0NzIsNjYgQEAgcHJpdmF0ZToKICAgICAKICAg
ICB2b2lkIGNvbXBpbGVQdXRCeUlkKCkKICAgICB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25v
ZGU7CisgICAgICAgIAogICAgICAgICAvLyBTZWUgYWJvdmU7IENlbGxVc2UgaXMgZWFzaWVyIHNv
IHdlIGRvIG9ubHkgdGhhdCBmb3Igbm93LgotICAgICAgICBBU1NFUlQobV9ub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgPT0gQ2VsbFVzZSk7CisgICAgICAgIEFTU0VSVChub2RlLT5jaGlsZDEoKS51
c2VLaW5kKCkgPT0gQ2VsbFVzZSk7CisKKyAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShub2RlLT5j
aGlsZDIoKSk7CisgICAgICAgIGF1dG8gdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW25vZGUt
PmlkZW50aWZpZXJOdW1iZXIoKV07CiAKICNpZiBGVExfVVNFU19CMwotICAgICAgICBpZiAodmVy
Ym9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpIHx8ICF2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkp
Ci0gICAgICAgICAgICBDUkFTSCgpOwotI2Vsc2UKLSAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVl
KG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmll
cnMoKVttX25vZGUtPmlkZW50aWZpZXJOdW1iZXIoKV07CisgICAgICAgIC8vIEZJWE1FOiBNYWtl
IHRoaXMgZG8gZXhjZXB0aW9ucy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MTY4NgorCisgICAgICAgIEIzOjpQYXRjaHBvaW50VmFsdWUqIHBh
dGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KFZvaWQpOworICAgICAgICBwYXRjaHBvaW50LT5h
cHBlbmQoYmFzZSwgVmFsdWVSZXA6OlNvbWVSZWdpc3Rlcik7CisgICAgICAgIHBhdGNocG9pbnQt
PmFwcGVuZCh2YWx1ZSwgVmFsdWVSZXA6OlNvbWVSZWdpc3Rlcik7CisgICAgICAgIHBhdGNocG9p
bnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKworICAg
ICAgICBTdGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKKyAgICAgICAgRUNNQU1vZGUgZWNtYU1v
ZGUgPSBtX2dyYXBoLmV4ZWN1dGFibGVGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+ZWNtYU1v
ZGUoKTsKKyAgICAgICAgCisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAg
ICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworCisgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0
b3IgPSBCb3g8SklUUHV0QnlJZEdlbmVyYXRvcj46OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAg
ICAgaml0LmNvZGVCbG9jaygpLCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCisgICAgICAgICAgICAg
ICAgICAgIHN0YXRlLT5qaXRDb2RlLT5jb21tb24uYWRkVW5pcXVlQ2FsbFNpdGVJbmRleChub2Rl
LT5vcmlnaW4uc2VtYW50aWMpLAorICAgICAgICAgICAgICAgICAgICBwYXJhbXMudXNlZFJlZ2lz
dGVycygpLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLCBKU1ZhbHVlUmVncyhwYXJhbXNb
MV0uZ3ByKCkpLAorICAgICAgICAgICAgICAgICAgICBHUFJJbmZvOjpwYXRjaHBvaW50U2NyYXRj
aFJlZ2lzdGVyLCBlY21hTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+b3AoKSA9PSBQ
dXRCeUlkRGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsKKworICAgICAgICAgICAgICAgIGdl
bmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCisgICAgICAgICAgICAgICAgcGFyYW1z
LmFkZExhdGVQYXRoKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UgYWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBNYWtlIHRoaXMgZG8gc29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zOworCisgICAgICAgICAgICAgICAgICAgICAgICBn
ZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4gPSBqaXQubGFiZWwoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93UGF0aENhbGwgPSBj
YWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwgcGFyYW1z
LnVzZWRSZWdpc3RlcnMoKSwgaml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsICZleGNlcHRpb25z
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhGdW5jdGlv
bigpLCBJbnZhbGlkR1BSUmVnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihnZW5lcmF0b3ItPnN0dWJJbmZvKCkpLCBwYXJhbXNbMV0uZ3By
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIodWlkKSkuY2FsbCgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGdlbmVyYXRvci0+cmVwb3J0U2xvd1BhdGhDYWxsKHNsb3dQYXRoQmVnaW4sIHNsb3dQYXRo
Q2FsbCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5maW5hbGl6ZShsaW5rQnVm
ZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyNlbHNlCiAgICAgICAgIC8vIEFyZ3VtZW50czogaWQs
IGJ5dGVzLCB0YXJnZXQsIG51bUFyZ3MsIGFyZ3MuLi4KICAgICAgICAgdW5zaWduZWQgc3RhY2tt
YXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKIApAQCAtMjUwNCw5ICsyNTUzLDkgQEAgcHJpdmF0ZToK
ICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55UmVn
Q2FsbENvbnYpOwogICAgICAgICAKICAgICAgICAgbV9mdGxTdGF0ZS5wdXRCeUlkcy5hcHBlbmQo
UHV0QnlJZERlc2NyaXB0b3IoCi0gICAgICAgICAgICBzdGFja21hcElELCBtX25vZGUtPm9yaWdp
bi5zZW1hbnRpYywgdWlkLAotICAgICAgICAgICAgbV9ncmFwaC5leGVjdXRhYmxlRm9yKG1fbm9k
ZS0+b3JpZ2luLnNlbWFudGljKS0+ZWNtYU1vZGUoKSwKLSAgICAgICAgICAgIG1fbm9kZS0+b3Ao
KSA9PSBQdXRCeUlkRGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KSk7CisgICAgICAgICAgICBz
dGFja21hcElELCBub2RlLT5vcmlnaW4uc2VtYW50aWMsIHVpZCwKKyAgICAgICAgICAgIG1fZ3Jh
cGguZXhlY3V0YWJsZUZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5lY21hTW9kZSgpLAorICAg
ICAgICAgICAgbm9kZS0+b3AoKSA9PSBQdXRCeUlkRGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0
KSk7CiAjZW5kaWYKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0dQUkluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BS
SW5mby5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUklu
Zm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdQUkluZm8uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyNpZiBDUFUoWDg2XzY0KQorLy8g
VGhpcyBpcyBpbiB0aGUgLmNwcCBmaWxlIHRvIHdvcmsgYXJvdW5kIGNsYW5nIGlzc3Vlcy4KK2Nv
bnN0IEdQUlJlZyBHUFJJbmZvOjpwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gTWFjcm9Bc3Nl
bWJsZXI6OnNfc2NyYXRjaFJlZ2lzdGVyOworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkocmV2aXNpb24gMTk0MDUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ1Myw3ICs0NTMsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJu
VmFsdWVHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxIG9yIHJlZ1QyCiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBYODZSZWdpc3RlcnM6
OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCiAgICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUiA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdU
NSAocmVnVDQgb24gV2luZG93cykKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHBhdGNocG9pbnRT
Y3JhdGNoUmVnaXN0ZXIgPSBNYWNyb0Fzc2VtYmxlcjo6c19zY3JhdGNoUmVnaXN0ZXI7CisKKyAg
ICAvLyBGSVhNRTogSSBiZWxpZXZlIHRoYXQgYWxsIHVzZXMgb2YgdGhpcyBhcmUgZGVhZCBpbiB0
aGUgc2Vuc2UgdGhhdCBpdCBqdXN0IGNhdXNlcyB0aGUgc2NyYXRjaAorICAgIC8vIHJlZ2lzdGVy
IGFsbG9jYXRvciB0byBzZWxlY3QgYSBkaWZmZXJlbnQgcmVnaXN0ZXIgYW5kIHBvdGVudGlhbGx5
IHNwaWxsIHRoaW5ncy4gSXQgd291bGQgYmUgYmV0dGVyCisgICAgLy8gaWYgd2UgaW5zdGVhZCBo
YWQgYSBtb3JlIGV4cGxpY2l0IHdheSBvZiBzYXlpbmcgdGhhdCB3ZSBkb24ndCBoYXZlIGEgc2Ny
YXRjaCByZWdpc3Rlci4KKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHBhdGNocG9pbnRTY3JhdGNo
UmVnaXN0ZXI7CiAKICAgICBzdGF0aWMgR1BSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgp
CiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267319</attachid>
            <date>2015-12-14 14:02:00 -0800</date>
            <delta_ts>2015-12-14 14:29:28 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>22576</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MDU2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE1LTEyLTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBkbyBQdXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTIyNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYjMvQjNMb3dlclRvQWly
LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6Y3JlYXRlR2VuZXJpY0Nv
bXBhcmUpOiBJIHJlYWxpemVkIHRoYXQgd2Ugd2VyZSBtaXNzaW5nIHNvbWUgdXNlZnVsIG1hdGNo
aW5nIHJ1bGVzLgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6IEFkZGVkIGEgYnVuY2ggb2YgdGVz
dHMuCisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QnlJZCk6IERvIHRoZSB0aGluZ3Mu
CisgICAgICAgICogaml0L0dQUkluZm8uY3BwOiBBZGRlZC4gSSBoYWQgdG8gZG8gdGhpcyB5dWNr
eSB0aGluZyBiZWNhdXNlIGNsYW5nIHdhcyBoYXZpbmcgaXNzdWVzIGNvbXBpbGluZyByZWZlcmVu
Y2VzIHRvIHRoaXMgZnJvbSBkZWVwbHkgbmVzdGVkIGxhbWJkYXMuCisgICAgICAgICogaml0L0dQ
UkluZm8uaDogQWRkZWQgYSBjb21tZW50IGFib3V0IGhvdyBwYXRjaHBvaW50U2NyYXRjaFJlZ2lz
dGVyIGlzIGJpemFycmUgYW5kIHNob3VsZCBwcm9iYWJseSBkaWUuCisKIDIwMTUtMTItMTQgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXgg
bWVyZ2UgaXNzdWUgaW4gYSB0ZXN0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAkocmV2aXNpb24gMTk0MDUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00NTEsNiArNDUxLDcgQEAgc2V0KEphdmFTY3JpcHRD
b3JlX1NPVVJDRVMKICAgICBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKICAgICBqaXQvRXhl
Y3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcAogICAgIGppdC9HQ0F3YXJlSklUU3R1YlJv
dXRpbmUuY3BwCisgICAgaml0L0dQUkluZm8uY3BwCiAgICAgaml0L0hvc3RDYWxsUmV0dXJuVmFs
dWUuY3BwCiAgICAgaml0L0ludHJpbnNpY0VtaXR0ZXIuY3BwCiAgICAgaml0L0pJVC5jcHAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxOTQwNTApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNDgxLDYgKzQ4MSw3IEBACiAJCTBGOTE5RDI1MTU4NTNDRTAw
MDRBNEU3RCAvKiBXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOTE5RDIyMTU4NTNDREUwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmNw
cCAqLzsgfTsKIAkJMEY5MTlEMjYxNTg1M0NFMzAwNEE0RTdEIC8qIFdhdGNocG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTE5RDIzMTU4NTND
REUwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5MTlEMjgxNTg1Njc3MzAwNEE0RTdEIC8qIFN5bWJvbFRh
YmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OTE5RDI3MTU4NTY3NzAwMDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgKi87IH07CisJCTBGOTMy
NzREMUMxRjY2QUEwMENGNjU2NCAvKiBHUFJJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTMyNzRDMUMxRjY2QUEwMENGNjU2NCAvKiBHUFJJ
bmZvLmNwcCAqLzsgfTsKIAkJMEY5MzMyOUQxNENBN0RDMzAwODVGM0M2IC8qIENhbGxMaW5rU3Rh
dHVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OTMzMjkzMTRDQTdEQzEwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5jcHAgKi87IH07CiAJCTBG
OTMzMjlFMTRDQTdEQzUwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzMyOTQxNENBN0RDMTAwODVGM0M2
IC8qIENhbGxMaW5rU3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY5MzMyOUYxNENBN0RDQTAwODVGM0M2IC8qIEdldEJ5SWRTdGF0dXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzMy
OTUxNENBN0RDMTAwODVGM0M2IC8qIEdldEJ5SWRTdGF0dXMuY3BwICovOyB9OwpAQCAtMjU5Miw2
ICsyNTkzLDcgQEAKIAkJMEY5MTlEMjIxNTg1M0NERTAwNEE0RTdEIC8qIFdhdGNocG9pbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hwb2ludC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTE5RDIzMTU4NTNDREUwMDRBNEU3RCAvKiBX
YXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhdGNocG9pbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5MTlEMjcxNTg1Njc3MDAwNEE0RTdE
IC8qIFN5bWJvbFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN5bWJvbFRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5MzI3NEMx
QzFGNjZBQTAwQ0Y2NTY0IC8qIEdQUkluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR1BSSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OTMzMjkzMTRDQTdEQzEwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsTGlua1N0YXR1cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGOTMzMjk0MTRDQTdEQzEwMDg1RjNDNiAvKiBDYWxsTGlua1N0
YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsTGlua1N0YXR1cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkzMzI5NTE0Q0E3REMxMDA4NUYzQzYg
LyogR2V0QnlJZFN0YXR1cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHZXRCeUlkU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4OTIs
NiArNDg5NCw3IEBACiAJCQkJMEYyNEU1M0UxN0VBOUY1OTAwQUJCMjE3IC8qIEZQUkluZm8uaCAq
LywKIAkJCQkwRjc2NkQyRDE1QThEQ0REMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJSb3V0aW5l
LmNwcCAqLywKIAkJCQkwRjc2NkQyRTE1QThEQ0REMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJS
b3V0aW5lLmggKi8sCisJCQkJMEY5MzI3NEMxQzFGNjZBQTAwQ0Y2NTY0IC8qIEdQUkluZm8uY3Bw
ICovLAogCQkJCTBGMjRFNTNGMTdFQTlGNTkwMEFCQjIxNyAvKiBHUFJJbmZvLmggKi8sCiAJCQkJ
MEY0NjgwRDAxNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuY3BwICovLAog
CQkJCTBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi8s
CkBAIC00OTA0LDExICs0OTA3LDExIEBACiAJCQkJQTc1NzA2REQxMThBMkJDRjAwNTdGODhGIC8q
IEpJVEFyaXRobWV0aWMzMl82NC5jcHAgKi8sCiAJCQkJRkUzQTA2QUQxQzEwQ0I2RjAwMzkwRkRE
IC8qIEpJVEJpdEFuZEdlbmVyYXRvci5jcHAgKi8sCiAJCQkJRkUzQTA2QUUxQzEwQ0I2RjAwMzkw
RkREIC8qIEpJVEJpdEFuZEdlbmVyYXRvci5oICovLAorCQkJCUZFM0EwNkE3MUMxMEJDNzQwMDM5
MEZERCAvKiBKSVRCaXRCaW5hcnlPcEdlbmVyYXRvci5oICovLAogCQkJCUZFM0EwNkEzMUMxMEI3
MDgwMDM5MEZERCAvKiBKSVRCaXRPckdlbmVyYXRvci5jcHAgKi8sCiAJCQkJRkUzQTA2QTQxQzEw
QjcwODAwMzkwRkREIC8qIEpJVEJpdE9yR2VuZXJhdG9yLmggKi8sCiAJCQkJRkUzQTA2QUYxQzEw
Q0I2RjAwMzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5jcHAgKi8sCiAJCQkJRkUzQTA2QjAx
QzEwQ0I2RjAwMzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5oICovLAotCQkJCUZFM0EwNkE3
MUMxMEJDNzQwMDM5MEZERCAvKiBKSVRCaXRCaW5hcnlPcEdlbmVyYXRvci5oICovLAogCQkJCTg2
Q0M4NUEyMEVFNzlCNzQwMDI4ODY4MiAvKiBKSVRDYWxsLmNwcCAqLywKIAkJCQkxNDZGRTUxMTEx
QTcxMDQzMDA4N0FFNjYgLyogSklUQ2FsbDMyXzY0LmNwcCAqLywKIAkJCQkwRjhGOTQ0MzE2Njc2
MzUyMDBENjE5NzEgLyogSklUQ29kZS5jcHAgKi8sCkBAIC04NzU1LDYgKzg3NTgsNyBAQAogCQkJ
CTBGQjEwNTg1MTY3NTQ4MEYwMEY4QUI2RSAvKiBFeGl0S2luZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkVBMEExQzE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRUEwQTFFMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGOTMyNzREMUMxRjY2QUEwMENG
NjU2NCAvKiBHUFJJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDg1MzI3MTg3REZERUMw
MDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkVBMEEwOTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGMzM4RTFCMUJGMjg2RUEwMDEzQzg4RiAvKiBCM0Jsb2NrSW5zZXJ0aW9uU2V0
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDE5NDA1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMxLDYgKzExMzEsMTUgQEAg
cHJpdmF0ZToKICAgICAgICAgQXJnOjpXaWR0aCB3aWR0aCA9IEFyZzo6d2lkdGhGb3JCM1R5cGUo
dmFsdWUtPnR5cGUoKSk7CiAgICAgICAgIEFyZyByZXNDb25kID0gQXJnOjpyZXNDb25kKE1hY3Jv
QXNzZW1ibGVyOjpOb25aZXJvKS5pbnZlcnRlZChpbnZlcnRlZCk7CiAgICAgICAgIAorICAgICAg
ICBhdXRvIHRyeVRlc3QgPSBbJl0gKAorICAgICAgICAgICAgQXJnOjpXaWR0aCB3aWR0aCwgY29u
c3QgQXJnUHJvbWlzZSYgbGVmdCwgY29uc3QgQXJnUHJvbWlzZSYgcmlnaHQpIC0+IEluc3Qgewor
ICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdGVzdCh3aWR0aCwgcmVzQ29uZCwgbGVmdCwg
cmlnaHQpKQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICBpZiAo
SW5zdCByZXN1bHQgPSB0ZXN0KHdpZHRoLCByZXNDb25kLCByaWdodCwgbGVmdCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiBJbnN0KCk7CisgICAg
ICAgIH07CisKICAgICAgICAgYXV0byBhdHRlbXB0RnVzZWQgPSBbJl0gKCkgLT4gSW5zdCB7CiAg
ICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBO
b3RFcXVhbDoKQEAgLTExNjUsMTUgKzExNzQsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
IEFyZyBsZWZ0SW1tID0gaW1tKGxlZnQpOwogICAgICAgICAgICAgICAgIEFyZyByaWdodEltbSA9
IGltbShyaWdodCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgYXV0byB0cnlU
ZXN0ID0gWyZdICgKLSAgICAgICAgICAgICAgICAgICAgQXJnOjpXaWR0aCB3aWR0aCwgY29uc3Qg
QXJnUHJvbWlzZSYgbGVmdCwgY29uc3QgQXJnUHJvbWlzZSYgcmlnaHQpIC0+IEluc3QgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoSW5zdCByZXN1bHQgPSB0ZXN0KHdpZHRoLCByZXNDb25kLCBs
ZWZ0LCByaWdodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICAgICAgICAgICAgICBpZiAoSW5zdCByZXN1bHQgPSB0ZXN0KHdpZHRoLCByZXNDb25kLCBy
aWdodCwgbGVmdCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSW5zdCgpOwotICAgICAgICAgICAgICAgIH07Ci0KICAg
ICAgICAgICAgICAgICBhdXRvIHRyeVRlc3RMb2FkSW1tID0gWyZdIChBcmc6OldpZHRoIHdpZHRo
LCBCMzo6T3Bjb2RlIGxvYWRPcGNvZGUpIC0+IEluc3QgewogICAgICAgICAgICAgICAgICAgICBp
ZiAocmlnaHRJbW0gJiYgcmlnaHRJbW0uaXNSZXByZXNlbnRhYmxlQXMod2lkdGgsIEFyZzo6VW5z
aWduZWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoSW5zdCByZXN1bHQgPSB0cnlU
ZXN0KHdpZHRoLCBsb2FkUHJvbWlzZShsZWZ0LCBsb2FkT3Bjb2RlKSwgcmlnaHRJbW0pKSB7CkBA
IC0xMjU0LDYgKzEyNTQsMzUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CisgICAgICAgIGlmIChjYW5Db21taXRJbnRlcm5hbCAmJiB2YWx1ZS0+YXM8TWVtb3J5VmFsdWU+
KCkpIHsKKyAgICAgICAgICAgIC8vIEhhbmRsZSB0aGluZ3MgbGlrZSBCcmFuY2goTG9hZDhaKHZh
bHVlKSkKKworICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdHJ5VGVzdChBcmc6OldpZHRo
OCwgbG9hZFByb21pc2UodmFsdWUsIExvYWQ4WiksIEFyZzo6aW1tKC0xKSkpIHsKKyAgICAgICAg
ICAgICAgICBjb21taXRJbnRlcm5hbCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdHJ5
VGVzdChBcmc6OldpZHRoOCwgbG9hZFByb21pc2UodmFsdWUsIExvYWQ4UyksIEFyZzo6aW1tKC0x
KSkpIHsKKyAgICAgICAgICAgICAgICBjb21taXRJbnRlcm5hbCh2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKElu
c3QgcmVzdWx0ID0gdHJ5VGVzdChBcmc6OldpZHRoMTYsIGxvYWRQcm9taXNlKHZhbHVlLCBMb2Fk
MTZaKSwgQXJnOjppbW0oLTEpKSkgeworICAgICAgICAgICAgICAgIGNvbW1pdEludGVybmFsKHZh
bHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAoSW5zdCByZXN1bHQgPSB0cnlUZXN0KEFyZzo6V2lkdGgxNiwgbG9hZFBy
b21pc2UodmFsdWUsIExvYWQxNlMpLCBBcmc6OmltbSgtMSkpKSB7CisgICAgICAgICAgICAgICAg
Y29tbWl0SW50ZXJuYWwodmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChJbnN0IHJlc3VsdCA9IHRyeVRlc3Qod2lk
dGgsIGxvYWRQcm9taXNlKHZhbHVlKSwgQXJnOjppbW0oLTEpKSkgeworICAgICAgICAgICAgICAg
IGNvbW1pdEludGVybmFsKHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgaWYgKEluc3QgcmVzdWx0ID0gdGVz
dCh3aWR0aCwgcmVzQ29uZCwgdG1wUHJvbWlzZSh2YWx1ZSksIEFyZzo6aW1tKC0xKSkpCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCShyZXZpc2lvbiAxOTQwNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk5Nyw2ICs0OTk3LDE4NiBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbEZvbGRQdHIoaW50cHRyX3QgdmFsCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MpID09ICF2YWx1ZSk7CiB9CiAKK3ZvaWQgdGVzdEJyYW5jaExvYWRQdHIo
KQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7Cisg
ICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CisKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOworCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKKworICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CisgICAgaW50cHRyX3QgY29u
ZDsKKyAgICBjb25kID0gNDI7CisgICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUsICZjb25kKSA9
PSAxKTsKKyAgICBjb25kID0gMDsKKyAgICBDSEVDSyhpbnZva2U8aW50PigqY29kZSwgJmNvbmQp
ID09IDApOworfQorCit2b2lkIHRlc3RCcmFuY2hMb2FkMzIoKQoreworICAgIFByb2NlZHVyZSBw
cm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOworCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKKworICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOworICAgIGludDMyX3QgY29uZDsKKyAgICBjb25kID0gNDI7CisgICAgQ0hFQ0so
aW52b2tlPGludD4oKmNvZGUsICZjb25kKSA9PSAxKTsKKyAgICBjb25kID0gMDsKKyAgICBDSEVD
SyhpbnZva2U8aW50PigqY29kZSwgJmNvbmQpID09IDApOworfQorCit2b2lkIHRlc3RCcmFuY2hM
b2FkOFMoKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIExvYWQ4UywgT3JpZ2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAor
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKKworICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CisKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwor
CisgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKKyAgICBpbnQ4X3QgY29uZDsKKyAgICBj
b25kID0gLTE7CisgICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUsICZjb25kKSA9PSAxKTsKKyAg
ICBjb25kID0gMDsKKyAgICBDSEVDSyhpbnZva2U8aW50PigqY29kZSwgJmNvbmQpID09IDApOwor
fQorCit2b2lkIHRlc3RCcmFuY2hMb2FkOFooKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogdGhl
bkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCisgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAorICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKKworICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CisKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworCisgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKKyAg
ICB1aW50OF90IGNvbmQ7CisgICAgY29uZCA9IDE7CisgICAgQ0hFQ0soaW52b2tlPGludD4oKmNv
ZGUsICZjb25kKSA9PSAxKTsKKyAgICBjb25kID0gMDsKKyAgICBDSEVDSyhpbnZva2U8aW50Pigq
Y29kZSwgJmNvbmQpID09IDApOworfQorCit2b2lkIHRlc3RCcmFuY2hMb2FkMTZTKCkKK3sKKyAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2lj
QmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkMTZT
LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCisgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOworCisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAorICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKKworICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisKKyAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOworICAgIGludDE2X3QgY29uZDsKKyAgICBjb25kID0gLTE7Cisg
ICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUsICZjb25kKSA9PSAxKTsKKyAgICBjb25kID0gMDsK
KyAgICBDSEVDSyhpbnZva2U8aW50PigqY29kZSwgJmNvbmQpID09IDApOworfQorCit2b2lkIHRl
c3RCcmFuY2hMb2FkMTZaKCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OworCisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBMb2FkMTZaLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOworCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKKworICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOworICAgIHVpbnQxNl90
IGNvbmQ7CisgICAgY29uZCA9IDE7CisgICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUsICZjb25k
KSA9PSAxKTsKKyAgICBjb25kID0gMDsKKyAgICBDSEVDSyhpbnZva2U8aW50PigqY29kZSwgJmNv
bmQpID09IDApOworfQorCiB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2ln
bmVkIG51bUNvbnN0cnVjdHMpCiB7CiAgICAgZG91YmxlIGJlZm9yZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZU1TKCk7CkBAIC04NzI2LDYgKzg5MDYsMTIgQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0QnJhbmNoTm90RXF1YWxGb2xkUHRyKDApKTsKICAg
ICBSVU4odGVzdEJyYW5jaEVxdWFsRm9sZFB0cig0MikpOwogICAgIFJVTih0ZXN0QnJhbmNoRXF1
YWxGb2xkUHRyKDApKTsKKyAgICBSVU4odGVzdEJyYW5jaExvYWRQdHIoKSk7CisgICAgUlVOKHRl
c3RCcmFuY2hMb2FkMzIoKSk7CisgICAgUlVOKHRlc3RCcmFuY2hMb2FkOFMoKSk7CisgICAgUlVO
KHRlc3RCcmFuY2hMb2FkOFooKSk7CisgICAgUlVOKHRlc3RCcmFuY2hMb2FkMTZTKCkpOworICAg
IFJVTih0ZXN0QnJhbmNoTG9hZDE2WigpKTsKIAogICAgIFJVTih0ZXN0Q29tcGxleCg2NCwgMTI4
KSk7CiAgICAgUlVOKHRlc3RDb21wbGV4KDY0LCAyNTYpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxOTQwNTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQ3MiwxNyArMjQ3Miw2NiBAQCBwcml2YXRlOgogICAgIAogICAgIHZv
aWQgY29tcGlsZVB1dEJ5SWQoKQogICAgIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsK
KyAgICAgICAgCiAgICAgICAgIC8vIFNlZSBhYm92ZTsgQ2VsbFVzZSBpcyBlYXNpZXIgc28gd2Ug
ZG8gb25seSB0aGF0IGZvciBub3cuCi0gICAgICAgIEFTU0VSVChtX25vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBDZWxsVXNlKTsKKyAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBDZWxsVXNlKTsKKworICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxk
MigpKTsKKyAgICAgICAgYXV0byB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbbm9kZS0+aWRl
bnRpZmllck51bWJlcigpXTsKIAogI2lmIEZUTF9VU0VTX0IzCi0gICAgICAgIGlmICh2ZXJib3Nl
Q29tcGlsYXRpb25FbmFibGVkKCkgfHwgIXZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKLSAg
ICAgICAgICAgIENSQVNIKCk7Ci0jZWxzZQotICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwo
bV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgIGF1dG8gdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygp
W21fbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhp
cyBkbyBleGNlcHRpb25zLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxNjg2CisKKyAgICAgICAgQjM6OlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hw
b2ludCA9IG1fb3V0LnBhdGNocG9pbnQoVm9pZCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVu
ZChiYXNlLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBw
ZW5kKHZhbHVlLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+
Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOworCisgICAgICAg
IFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBFQ01BTW9kZSBlY21hTW9kZSA9
IG1fZ3JhcGguZXhlY3V0YWJsZUZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5lY21hTW9kZSgp
OworICAgICAgICAKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAg
ICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UgYWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9
IEJveDxKSVRQdXRCeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgICAgICBq
aXQuY29kZUJsb2NrKCksIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRVbmlxdWVDYWxsU2l0ZUluZGV4KG5vZGUtPm9y
aWdpbi5zZW1hbnRpYyksCisgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51c2VkUmVnaXN0ZXJz
KCksIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5ncHIoKSksIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5n
cHIoKSksCisgICAgICAgICAgICAgICAgICAgIEdQUkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVn
aXN0ZXIsIGVjbWFNb2RlLAorICAgICAgICAgICAgICAgICAgICBub2RlLT5vcCgpID09IFB1dEJ5
SWREaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOworCisgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpMYWJlbCBkb25lID0gaml0LmxhYmVsKCk7CiAKKyAgICAgICAgICAgICAgICBwYXJhbXMuYWRk
TGF0ZVBhdGgoCisgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE1h
a2UgdGhpcyBkbyBzb21ldGhpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXBMaXN0IGV4Y2VwdGlvbnM7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVy
YXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGppdC5sYWJlbCgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNsb3dQYXRoQ2FsbCA9IGNhbGxP
cGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudXNl
ZFJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgJmV4Y2VwdGlvbnMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEZ1bmN0aW9uKCks
IEludmFsaWRHUFJSZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGdlbmVyYXRvci0+c3R1YkluZm8oKSksIHBhcmFtc1sxXS5ncHIoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCksIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cih1aWQpKS5jYWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBq
aXQuanVtcCgpLmxpbmtUbyhkb25lLCAmaml0KTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdG9yLT5yZXBvcnRTbG93UGF0aENhbGwoc2xvd1BhdGhCZWdpbiwgc2xvd1BhdGhDYWxs
KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPmZpbmFsaXplKGxpbmtCdWZmZXIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworI2Vsc2UKICAgICAgICAgLy8gQXJndW1lbnRzOiBpZCwgYnl0
ZXMsIHRhcmdldCwgbnVtQXJncywgYXJncy4uLgogICAgICAgICB1bnNpZ25lZCBzdGFja21hcElE
ID0gbV9zdGFja21hcElEcysrOwogCkBAIC0yNTA0LDkgKzI1NTMsOSBAQCBwcml2YXRlOgogICAg
ICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1BbnlSZWdDYWxs
Q29udik7CiAgICAgICAgIAogICAgICAgICBtX2Z0bFN0YXRlLnB1dEJ5SWRzLmFwcGVuZChQdXRC
eUlkRGVzY3JpcHRvcigKLSAgICAgICAgICAgIHN0YWNrbWFwSUQsIG1fbm9kZS0+b3JpZ2luLnNl
bWFudGljLCB1aWQsCi0gICAgICAgICAgICBtX2dyYXBoLmV4ZWN1dGFibGVGb3IobV9ub2RlLT5v
cmlnaW4uc2VtYW50aWMpLT5lY21hTW9kZSgpLAotICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09
IFB1dEJ5SWREaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpKTsKKyAgICAgICAgICAgIHN0YWNr
bWFwSUQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgdWlkLAorICAgICAgICAgICAgbV9ncmFwaC5l
eGVjdXRhYmxlRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmVjbWFNb2RlKCksCisgICAgICAg
ICAgICBub2RlLT5vcCgpID09IFB1dEJ5SWREaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpKTsK
ICNlbmRpZgogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BS
SW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZv
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
R1BSSW5mby5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIENQVShYODZfNjQpCisvLyBUaGlz
IGlzIGluIHRoZSAuY3BwIGZpbGUgdG8gd29yayBhcm91bmQgY2xhbmcgaXNzdWVzLgorY29uc3Qg
R1BSUmVnIEdQUkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIgPSBNYWNyb0Fzc2VtYmxl
cjo6c19zY3JhdGNoUmVnaXN0ZXI7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAxOTQwNTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDUz
LDcgKzQ1MywxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1
ZUdQUjIgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEgb3IgcmVnVDIKICAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6cjEw
OyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5v
blByZXNlcnZlZE5vbkFyZ3VtZW50R1BSID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1IChy
ZWdUNCBvbiBXaW5kb3dzKQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0
Y2hSZWdpc3RlciA9IE1hY3JvQXNzZW1ibGVyOjpzX3NjcmF0Y2hSZWdpc3RlcjsKKworICAgIC8v
IEZJWE1FOiBJIGJlbGlldmUgdGhhdCBhbGwgdXNlcyBvZiB0aGlzIGFyZSBkZWFkIGluIHRoZSBz
ZW5zZSB0aGF0IGl0IGp1c3QgY2F1c2VzIHRoZSBzY3JhdGNoCisgICAgLy8gcmVnaXN0ZXIgYWxs
b2NhdG9yIHRvIHNlbGVjdCBhIGRpZmZlcmVudCByZWdpc3RlciBhbmQgcG90ZW50aWFsbHkgc3Bp
bGwgdGhpbmdzLiBJdCB3b3VsZCBiZSBiZXR0ZXIKKyAgICAvLyBpZiB3ZSBpbnN0ZWFkIGhhZCBh
IG1vcmUgZXhwbGljaXQgd2F5IG9mIHNheWluZyB0aGF0IHdlIGRvbid0IGhhdmUgYSBzY3JhdGNo
IHJlZ2lzdGVyLgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hSZWdp
c3RlcjsKIAogICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAg
ICB7Cg==
</data>
<flag name="review"
          id="292375"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>