<?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>100311</bug_id>
          
          <creation_ts>2012-10-24 17:13:49 -0700</creation_ts>
          <short_desc>DFG compileBlahBlahByVal methods for Contiguous and ArrayStorage have only one caller and should be removed</short_desc>
          <delta_ts>2012-10-24 17:24:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (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>98606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>750230</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-24 17:13:49 -0700</bug_when>
    <thetext>Patch forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750231</commentid>
    <comment_count>1</comment_count>
      <attachid>170519</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-24 17:16:44 -0700</bug_when>
    <thetext>Created attachment 170519
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750232</commentid>
    <comment_count>2</comment_count>
      <attachid>170519</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-24 17:18:59 -0700</bug_when>
    <thetext>Comment on attachment 170519
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750237</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-24 17:24:57 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/132428</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170519</attachid>
            <date>2012-10-24 17:16:44 -0700</date>
            <delta_ts>2012-10-24 17:18:59 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>29748</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMyNDI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTEwLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGNvbXBpbGVCbGFoQmxhaEJ5VmFsIG1ldGhvZHMgZm9yIENvbnRpZ3VvdXMgYW5kIEFycmF5
U3RvcmFnZSBoYXZlIG9ubHkgb25lIGNhbGxlciBhbmQgc2hvdWxkIGJlIHJlbW92ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDMxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEp1c3QgdHJ5aW5nIHRv
IHNpbXBsaWZ5IHRoaW5ncyBiZWZvcmUgSSBtYWtlIHRoZW0gbW9yZSBjb21wbGljYXRlZCBhZ2Fp
bi4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoU3BlY3Vs
YXRpdmVKSVQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlS
ZWdpc3RlckZvclB1dEJ5VmFsKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHA6CisgICAgICAgIChERkcpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAg
ICAgIChERkcpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToK
KwogMjAxMi0xMC0yMyAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQ29kZUJsb2NrOiBHaXZlIG1fcHV0VG9CYXNlT3BlcmF0aW9ucyBhbiBpbmxpbmUgY2FwYWNp
dHkuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDEzMjQxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
NDYsMTEzICsyMDQ2LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJyYW5jaChOb2RlJiBu
bwogICAgIH0KIH0KIAotTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IFNwZWN1bGF0aXZlSklUOjpj
b21waWxlQ29udGlndW91c0dldEJ5VmFsKE5vZGUmLCBHUFJSZWcsIEdQUlJlZyBwcm9wZXJ0eVJl
ZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyByZXN1bHRUYWdSZWcsIEdQUlJlZyByZXN1bHRQ
YXlsb2FkUmVnKQotewotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0g
ICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVP
ckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywg
QnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwotICAgIAotICAgIG1faml0Lmxv
YWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNC
aXRzLnRhZykpLCByZXN1bHRUYWdSZWcpOwotICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVz
dWx0UGF5bG9hZFJlZyk7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsIHJlc3VsdFRhZ1JlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVt
cHR5VmFsdWVUYWcpKSk7Ci0gICAgCi0gICAgcmV0dXJuIHNsb3dDYXNlczsKLX0KLQotTWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlTdG9yYWdlR2V0
QnlWYWwoTm9kZSYsIEdQUlJlZywgR1BSUmVnIHByb3BlcnR5UmVnLCBHUFJSZWcgc3RvcmFnZVJl
ZywgR1BSUmVnIHJlc3VsdFRhZ1JlZywgR1BSUmVnIHJlc3VsdFBheWxvYWRSZWcpCi17Ci0gICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwotICAg
IAotICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9G
KEFycmF5U3RvcmFnZSwgbV92ZWN0b3JbMF0pICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUu
YXNCaXRzLnRhZykpLCByZXN1bHRUYWdSZWcpOwotICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEFycmF5U3RvcmFnZSwgbV92ZWN0b3JbMF0pICsg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVzdWx0UGF5bG9h
ZFJlZyk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaG9sZSA9IG1faml0LmJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpFcXVhbCwgcmVzdWx0VGFnUmVnLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
RW1wdHlWYWx1ZVRhZykpOwotICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93
Q2FzZXM7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZChvdXRPZkJvdW5kcyk7Ci0gICAgc2xvd0Nhc2Vz
LmFwcGVuZChob2xlKTsKLSAgICByZXR1cm4gc2xvd0Nhc2VzOwotfQotCi1NYWNyb0Fzc2VtYmxl
cjo6SnVtcExpc3QgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9k
ZSYgbm9kZSwgR1BSUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcsIEdQUlJlZyBzdG9yYWdlUmVnLCBH
UFJSZWcgdmFsdWVUYWdSZWcsIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcpCi17Ci0gICAgQXJyYXk6
Ok1vZGUgYXJyYXlNb2RlID0gbm9kZS5hcnJheU1vZGUoKTsKLSAgICAKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgIAotICAgIGlmICghbWF5U3RvcmVUb1RhaWwo
YXJyYXlNb2RlKSkgewotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgVW5j
b3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwKLSAgICAgICAgICAgIG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3Ro
KCkpKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3Vu
ZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKTsKLQotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mVmVjdG9yTGVuZ3RoKCkp
KSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoaXNJbkJvdW5kc0FjY2VzcyhhcnJheU1vZGUpKQot
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwg
Tm9Ob2RlLCBzbG93Q2FzZXMpOwotICAgICAgICAKLSAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3Rl
ZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIocHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0
T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSks
IHByb3BlcnR5UmVnKTsKLQotICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7Ci0gICAgfQot
Ci0gICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9C
SkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUz
Mih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0Yo
SlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAgICAKLSAgICBpZiAoaXNJbkJvdW5kc0Fj
Y2VzcyhhcnJheU1vZGUpKQotICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0
KCk7Ci0gICAgcmV0dXJuIHNsb3dDYXNlczsKLX0KLQotTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlTdG9yYWdlUHV0QnlWYWwoTm9kZSYgbm9kZSwg
R1BSUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcsIEdQUlJlZyBzdG9yYWdlUmVnLCBHUFJSZWcgdmFs
dWVUYWdSZWcsIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcpCi17Ci0gICAgQXJyYXk6Ok1vZGUgYXJy
YXlNb2RlID0gbm9kZS5hcnJheU1vZGUoKTsKLSAgICAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3Qgc2xvd0Nhc2VzOwotICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFy
cmF5Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3Rv
cmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICBpZiAoaXNJbkJvdW5kc0FjY2Vzcyhh
cnJheU1vZGUpKQotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVl
UmVncygpLCBOb05vZGUsIGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICBlbHNlCi0gICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOwotCi0gICAgLy8gQ2hlY2sgaWYgd2Un
cmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3JlbWVudCBtX251bVZhbHVlc0luVmVjdG9y
LgotICAgIGlmICghbWF5U3RvcmVUb0hvbGUoYXJyYXlNb2RlKSkgewotICAgICAgICAvLyBUaGlz
IGlzIHVuY291bnRhYmxlIGJlY2F1c2UgaWYgd2UgdGFrZSB0aGlzIGV4aXQsIHRoZW4gdGhlIGJh
c2VsaW5lIEpJVAotICAgICAgICAvLyB3aWxsIGltbWVkaWF0ZWx5IGNvdW50IHRoZSBob2xlIHN0
b3JlLiBTbyB0aGVyZSBpcyBubyBuZWVkIGZvciBleGl0Ci0gICAgICAgIC8vIHByb2ZpbGluZy4K
LSAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1Zh
bHVlUmVncygpLCBOb05vZGUsCi0gICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlT
dG9yYWdlLCBtX3ZlY3RvclswXSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMu
dGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSkpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdEhvbGVWYWx1ZSA9IG1faml0LmJy
YW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9C
SkVDVF9PRkZTRVRPRihBcnJheVN0b3JhZ2UsIG1fdmVjdG9yWzBdKSArIE9CSkVDVF9PRkZTRVRP
RihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFs
dWVUYWcpKTsKLSAgICAgICAgaWYgKGlzU2xvd1B1dEFjY2VzcyhhcnJheU1vZGUpKSB7Ci0gICAg
ICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRvIG9wdGlt
aXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3VsZCBpbnZlcnQKLSAgICAgICAgICAgIC8vIHRoZSBh
Ym92ZSBicmFuY2guIEJ1dCBpdCdzIHNpbXBseSBub3Qgd29ydGggaXQgc2luY2UgdGhpcyBvbmx5
IGhhcHBlbnMgaWYgd2UncmUKLSAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRp
bWUuCi0gICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5W
ZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gSWYgd2Un
cmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7IAotICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBt
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgp
KSk7Ci0gICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVn
KTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIocHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAg
ICAgICAgICAgIG1faml0LnN1YjMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygm
bV9qaXQpOwotICAgICAgICB9Ci0gICAgICAgIG5vdEhvbGVWYWx1ZS5saW5rKCZtX2ppdCk7Ci0g
ICAgfQotICAgIAotICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAgbV9q
aXQuc3RvcmUzMih2YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdl
UmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZT
RVRPRihBcnJheVN0b3JhZ2UsIG1fdmVjdG9yWzBdKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVl
LCB1LmFzQml0cy50YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX3ZlY3Rv
clswXSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAg
ICAKLSAgICByZXR1cm4gc2xvd0Nhc2VzOwotfQotCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUmIG5vZGUpCiB7CiAgICAgTm9kZVR5cGUgb3AgPSBub2RlLm9wKCk7CkBAIC0yNzEy
LDggKzI2MDUsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
ICAgICAgICAgICAgR1BSUmVnIHJlc3VsdFRhZ1JlZyA9IHJlc3VsdFRhZy5ncHIoKTsKICAgICAg
ICAgICAgIEdQUlJlZyByZXN1bHRQYXlsb2FkUmVnID0gcmVzdWx0UGF5bG9hZC5ncHIoKTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNl
cyA9Ci0gICAgICAgICAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNHZXRCeVZhbChub2RlLCBiYXNl
UmVnLCBwcm9wZXJ0eVJlZywgc3RvcmFnZVJlZywgcmVzdWx0VGFnUmVnLCByZXN1bHRQYXlsb2Fk
UmVnKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisK
KyAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0
b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpF
Q1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIHJlc3VsdFRhZ1JlZyk7CisgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVn
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZTRVRP
RihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlc3VsdFBheWxvYWRSZWcpOworICAgICAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1
YWwsIHJlc3VsdFRhZ1JlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7
CisgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAg
ICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0
aGlzLCBvcGVyYXRpb25HZXRCeVZhbEFycmF5SW50LApAQCAtMjkwMCwxNiArMjc5OSwzNiBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXMgPQotICAgICAgICAgICAgICAgIGNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwoCi0gICAgICAgICAgICAgICAgICAgIG5vZGUsIGJhc2VSZWcsIHByb3Bl
cnR5UmVnLCBzdG9yYWdlUmVnLCB2YWx1ZVRhZ1JlZywgdmFsdWVQYXlsb2FkUmVnKTsKKyAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAKKyAgICAgICAgICAg
IGlmICghbWF5U3RvcmVUb1RhaWwoYXJyYXlNb2RlKSkgeworICAgICAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soCisgICAgICAgICAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1ZhbHVlUmVn
cygpLCBOb05vZGUsCisgICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGlu
Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRP
ZlB1YmxpY0xlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2xv
d0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFs
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVy
Zmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSkpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIGlmIChpc0luQm91bmRzQWNjZXNzKGFycmF5TW9kZSkpCisgICAgICAgICAgICAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9k
ZSwgc2xvd0Nhc2VzKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX2ppdC5h
ZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKKyAgICAgICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVn
LCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICBt
X2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFn
KSkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkp
KTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgYmFzZS51c2UoKTsKICAgICAgICAgICAgIHBy
b3BlcnR5LnVzZSgpOwogICAgICAgICAgICAgdmFsdWUudXNlKCk7CiAgICAgICAgICAgICBzdG9y
YWdlLnVzZSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXNsb3dDYXNlcy5lbXB0
eSgpKSB7CisgICAgICAgICAgICBpZiAoIWlzSW5Cb3VuZHNBY2Nlc3MoYXJyYXlNb2RlKSkgewog
ICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgICAg
ICBzbG93UGF0aENhbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMs
CkBAIC0yOTUwLDkgKzI4NjksNDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
JiBub2RlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzID0KLSAgICAgICAgICAgICAg
ICBjb21waWxlQXJyYXlTdG9yYWdlUHV0QnlWYWwoCi0gICAgICAgICAgICAgICAgICAgIG5vZGUs
IGJhc2VSZWcsIHByb3BlcnR5UmVnLCBzdG9yYWdlUmVnLCB2YWx1ZVRhZ1JlZywgdmFsdWVQYXls
b2FkUmVnKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7
CisKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5Qm91bmRzID0g
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6dmVjdG9y
TGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgICAgIGlmIChpc0luQm91bmRzQWNjZXNzKGFycmF5
TW9kZSkpCisgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNW
YWx1ZVJlZ3MoKSwgTm9Ob2RlLCBiZXlvbmRBcnJheUJvdW5kcyk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChiZXlvbmRBcnJheUJvdW5kcyk7CisK
KyAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xlOyBpZiBzbyBp
bmNyZW1lbnQgbV9udW1WYWx1ZXNJblZlY3Rvci4KKyAgICAgICAgICAgIGlmICghbWF5U3RvcmVU
b0hvbGUoYXJyYXlNb2RlKSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdW5jb3VudGFi
bGUgYmVjYXVzZSBpZiB3ZSB0YWtlIHRoaXMgZXhpdCwgdGhlbiB0aGUgYmFzZWxpbmUgSklUCisg
ICAgICAgICAgICAgICAgLy8gd2lsbCBpbW1lZGlhdGVseSBjb3VudCB0aGUgaG9sZSBzdG9yZS4g
U28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgZXhpdAorICAgICAgICAgICAgICAgIC8vIHByb2ZpbGlu
Zy4KKyAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgICAg
ICBVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLAorICAgICAgICAgICAgICAgICAg
ICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkgKyBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpF
bXB0eVZhbHVlVGFnKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0Yo
QXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7CisgICAg
ICAgICAgICAgICAgaWYgKGlzU2xvd1B1dEFjY2VzcyhhcnJheU1vZGUpKSB7CisgICAgICAgICAg
ICAgICAgICAgIC8vIFRoaXMgaXMgc29ydCBvZiBzdHJhbmdlLiBJZiB3ZSB3YW50ZWQgdG8gb3B0
aW1pemUgdGhpcyBjb2RlIHBhdGgsIHdlIHdvdWxkIGludmVydAorICAgICAgICAgICAgICAgICAg
ICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdvcnRoIGl0IHNpbmNl
IHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCisgICAgICAgICAgICAgICAgICAgIC8vIGFscmVh
ZHkgaGF2aW5nIGEgYmFkIHRpbWUuCisgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JPZmZzZXQoKSkp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSB3cml0
aW5nIHRvIGEgaG9sZSB3ZSBtaWdodCBiZSBncm93aW5nIHRoZSBhcnJheTsgCisgICAgICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlID0g
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQo
KSkpOworICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHBy
b3BlcnR5UmVnKTsKKyAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5n
dGhPZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1t
MzIoMSksIHByb3BlcnR5UmVnKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9qaXQpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOworICAgICAgICAg
ICAgfQorICAgIAorICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4K
KyAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkgKyBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOworICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJl
ZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VU
T0YoQXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMucGF5bG9hZCkpKTsKIAogICAgICAgICAgICAgYmFzZS51c2UoKTsKICAgICAgICAg
ICAgIHByb3BlcnR5LnVzZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxMzI0MTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTExLDEwNyArMjExMSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2go
Tm9kZSYgbm8KICAgICB9CiB9CiAKLU1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNHZXRCeVZhbChOb2RlJiwgR1BSUmVnLCBHUFJSZWcgcHJv
cGVydHlSZWcsIEdQUlJlZyBzdG9yYWdlUmVnLCBHUFJSZWcgcmVzdWx0UmVnKQotewotICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZCht
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1
YmxpY0xlbmd0aCgpKSkpOwotICAgIAotICAgIG1faml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6
QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNF
aWdodCksIHJlc3VsdFJlZyk7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0
NjQoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdFJlZykpOwotICAgIAotICAgIHJldHVybiBz
bG93Q2FzZXM7Ci19Ci0KLU1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFycmF5U3RvcmFnZUdldEJ5VmFsKE5vZGUmLCBHUFJSZWcsIEdQUlJlZyBwcm9wZXJ0
eVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyByZXN1bHRSZWcpCi17Ci0gICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwotICAgIAotICAg
IG1faml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3Bl
cnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEFycmF5
U3RvcmFnZSwgbV92ZWN0b3JbMF0pKSwgcmVzdWx0UmVnKTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBob2xlID0gbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCByZXN1
bHRSZWcpOwotICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0g
ICAgc2xvd0Nhc2VzLmFwcGVuZChvdXRPZkJvdW5kcyk7Ci0gICAgc2xvd0Nhc2VzLmFwcGVuZCho
b2xlKTsKLSAgICByZXR1cm4gc2xvd0Nhc2VzOwotfQotCi1NYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3QgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9kZSYgbm9kZSwg
R1BSUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcsIEdQUlJlZyBzdG9yYWdlUmVnLCBHUFJSZWcgdmFs
dWVSZWcsIEdQUlJlZyB0ZW1wUmVnKQotewotICAgIEFycmF5OjpNb2RlIGFycmF5TW9kZSA9IG5v
ZGUuYXJyYXlNb2RlKCk7Ci0gICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dD
YXNlczsKLSAgICAKLSAgICBpZiAoIW1heVN0b3JlVG9UYWlsKGFycmF5TW9kZSkpIHsKLSAgICAg
ICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1ZhbHVlUmVn
cygpLCBOb05vZGUsCi0gICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFn
ZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0KLSAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJv
dmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJl
ZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSkpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKGlzSW5Cb3VuZHNBY2Nlc3MoYXJyYXlNb2RlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgc2xvd0Nhc2VzKTsK
LSAgICAgICAgCi0gICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlS
ZWcsIHRlbXBSZWcpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKHRlbXBSZWcsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgo
KSkpOwotCi0gICAgICAgIGluQm91bmRzLmxpbmsoJm1faml0KTsKLSAgICB9Ci0KLSAgICBtX2pp
dC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOwotICAgIAotICAgIGlm
IChpc0luQm91bmRzQWNjZXNzKGFycmF5TW9kZSkpCi0gICAgICAgIHJldHVybiBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3QoKTsKLSAgICByZXR1cm4gc2xvd0Nhc2VzOwotfQotCi1NYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3QgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJheVN0b3JhZ2VQdXRCeVZh
bChOb2RlJiBub2RlLCBHUFJSZWcsIEdQUlJlZyBwcm9wZXJ0eVJlZywgR1BSUmVnIHN0b3JhZ2VS
ZWcsIEdQUlJlZyB2YWx1ZVJlZywgR1BSUmVnIHRlbXBSZWcpCi17Ci0gICAgQXJyYXk6Ok1vZGUg
YXJyYXlNb2RlID0gbm9kZS5hcnJheU1vZGUoKTsKLSAgICAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9u
ZEFycmF5Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVh
bCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5
U3RvcmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICBpZiAoaXNJbkJvdW5kc0FjY2Vz
cyhhcnJheU1vZGUpKQotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1Zh
bHVlUmVncygpLCBOb05vZGUsIGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICBlbHNlCi0gICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOwotCi0gICAgLy8gQ2hlY2sgaWYg
d2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3JlbWVudCBtX251bVZhbHVlc0luVmVj
dG9yLgotICAgIGlmICghbWF5U3RvcmVUb0hvbGUoYXJyYXlNb2RlKSkgewotICAgICAgICAvLyBU
aGlzIGlzIHVuY291bnRhYmxlIGJlY2F1c2UgaWYgd2UgdGFrZSB0aGlzIGV4aXQsIHRoZW4gdGhl
IGJhc2VsaW5lIEpJVAotICAgICAgICAvLyB3aWxsIGltbWVkaWF0ZWx5IGNvdW50IHRoZSBob2xl
IHN0b3JlLiBTbyB0aGVyZSBpcyBubyBuZWVkIGZvciBleGl0Ci0gICAgICAgIC8vIHByb2ZpbGlu
Zy4KLSAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIFVuY291bnRhYmxlLCBK
U1ZhbHVlUmVncygpLCBOb05vZGUsCi0gICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0NjQoTWFj
cm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0Yo
QXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkpKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3Jv
QXNzZW1ibGVyOjpOb25aZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9G
KEFycmF5U3RvcmFnZSwgbV92ZWN0b3JbMF0pKSk7Ci0gICAgICAgIGlmIChpc1Nsb3dQdXRBY2Nl
c3MoYXJyYXlNb2RlKSkgewotICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9mIHN0cmFuZ2Uu
IElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291bGQgaW52ZXJ0
Ci0gICAgICAgICAgICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdv
cnRoIGl0IHNpbmNlIHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCi0gICAgICAgICAgICAvLyBh
bHJlYWR5IGhhdmluZyBhIGJhZCB0aW1lLgotICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZCht
X2ppdC5qdW1wKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9qaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJh
eVN0b3JhZ2U6Om51bVZhbHVlc0luVmVjdG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgIC8vIElmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xlIHdlIG1pZ2h0IGJlIGdy
b3dpbmcgdGhlIGFycmF5OyAKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGxlbmd0
aERvZXNOb3ROZWVkVXBkYXRlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlT
dG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3Rl
ZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcFJlZyk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKHRlbXBSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3Rv
cmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGxl
bmd0aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKLSAgICAgICAgfQotICAgICAgICBu
b3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAgIH0KLSAgICAKLSAgICAvLyBTdG9yZSB0aGUg
dmFsdWUgdG8gdGhlIGFycmF5LgotICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkp
KTsKLSAgICAKLSAgICByZXR1cm4gc2xvd0Nhc2VzOwotfQotCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUmIG5vZGUpCiB7CiAgICAgTm9kZVR5cGUgb3AgPSBub2RlLm9wKCk7CkBA
IC0yNzMzLDggKzI2MzIsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBu
b2RlKQogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRSZWcgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXMgPQotICAgICAgICAgICAgICAg
IGNvbXBpbGVDb250aWd1b3VzR2V0QnlWYWwobm9kZSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHN0
b3JhZ2VSZWcsIHJlc3VsdFJlZyk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOworICAgICAgICAgICAgCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9m
UHVibGljTGVuZ3RoKCkpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1faml0LmxvYWQ2
NChNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHJlc3VsdFJlZyk7CisgICAgICAgICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVzdWx0
UmVnKSk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAog
ICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKICAgICAgICAgICAgICAgICAgICAgc2xvd0Nh
c2VzLCB0aGlzLCBvcGVyYXRpb25HZXRCeVZhbEFycmF5SW50LApAQCAtMjc3OSw4ICsyNjgzLDEz
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICBHUFJSZWcgcmVzdWx0UmVn
ID0gcmVzdWx0LmdwcigpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcExpc3Qgc2xvd0Nhc2VzID0KLSAgICAgICAgICAgICAgICBjb21waWxlQXJyYXlTdG9y
YWdlR2V0QnlWYWwobm9kZSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHN0b3JhZ2VSZWcsIHJlc3Vs
dFJlZyk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgp
KSkpOworICAgIAorICAgICAgICAgICAgbV9qaXQubG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX3ZlY3RvclswXSkpLCByZXN1bHRSZWcp
OworICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0NjQoTWFjcm9B
c3NlbWJsZXI6Olplcm8sIHJlc3VsdFJlZykpOworICAgIAogICAgICAgICAgICAgYWRkU2xvd1Bh
dGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAogICAgICAgICAgICAg
ICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIG9wZXJhdGlvbkdldEJ5VmFsQXJyYXlJbnQsCkBAIC0y
OTEwLDE2ICsyODE5LDM0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9k
ZSkKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3Jhcnk7CiAgICAgICAgICAgICBHUFJS
ZWcgdGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3Jhcnks
IG5vZGUpOwogCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2Vz
ID0KLSAgICAgICAgICAgICAgICBjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKAotICAgICAgICAg
ICAgICAgICAgICBub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc3RvcmFnZVJlZywgdmFsdWVS
ZWcsIHRlbXBvcmFyeVJlZyk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qg
c2xvd0Nhc2VzOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIW1heVN0b3JlVG9UYWls
KGFycmF5TW9kZSkpIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAg
ICAgICAgICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLAorICAgICAg
ICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFs
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVy
Zmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQu
YnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JM
ZW5ndGgoKSkpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaXNJbkJv
dW5kc0FjY2VzcyhhcnJheU1vZGUpKQorICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUsIHNsb3dDYXNlcyk7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEp
LCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0
dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgaW5Cb3VuZHMubGluaygmbV9qaXQpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCkpOwogCiAgICAgICAgICAgICBiYXNlLnVzZSgpOwogICAgICAgICAgICAgcHJvcGVy
dHkudXNlKCk7CiAgICAgICAgICAgICB2YWx1ZS51c2UoKTsKICAgICAgICAgICAgIHN0b3JhZ2Uu
dXNlKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkp
IHsKKyAgICAgICAgICAgIGlmICghaXNJbkJvdW5kc0FjY2VzcyhhcnJheU1vZGUpKSB7CiAgICAg
ICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgICAgIHNs
b3dQYXRoQ2FsbCgKICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKQEAg
LTI5NjEsOSArMjg4OCw0NCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5v
ZGUpCiAgICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwogICAgICAgICAgICAgR1BS
UmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5
LCBub2RlKTsKIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNl
cyA9Ci0gICAgICAgICAgICAgICAgY29tcGlsZUFycmF5U3RvcmFnZVB1dEJ5VmFsKAotICAgICAg
ICAgICAgICAgICAgICBub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc3RvcmFnZVJlZywgdmFs
dWVSZWcsIHRlbXBvcmFyeVJlZyk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOworCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBiZXlvbmRB
cnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWws
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0
b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAoaXNJbkJvdW5k
c0FjY2VzcyhhcnJheU1vZGUpKQorICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0
T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgYmV5b25kQXJyYXlCb3VuZHMpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYmV5b25kQXJy
YXlCb3VuZHMpOworCisgICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEg
aG9sZTsgaWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgICAgICBp
ZiAoIW1heVN0b3JlVG9Ib2xlKGFycmF5TW9kZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlz
IGlzIHVuY291bnRhYmxlIGJlY2F1c2UgaWYgd2UgdGFrZSB0aGlzIGV4aXQsIHRoZW4gdGhlIGJh
c2VsaW5lIEpJVAorICAgICAgICAgICAgICAgIC8vIHdpbGwgaW1tZWRpYXRlbHkgY291bnQgdGhl
IGhvbGUgc3RvcmUuIFNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGV4aXQKKyAgICAgICAgICAgICAg
ICAvLyBwcm9maWxpbmcuCisgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAg
ICAgICAgICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwKKyAgICAg
ICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEFycmF5U3RvcmFnZSwgbV92ZWN0
b3JbMF0pKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3Nl
bWJsZXI6Ok5vblplcm8sIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoQXJy
YXlTdG9yYWdlLCBtX3ZlY3RvclswXSkpKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNTbG93UHV0
QWNjZXNzKGFycmF5TW9kZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0
IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ug
d291bGQgaW52ZXJ0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhYm92ZSBicmFuY2guIEJ1
dCBpdCdzIHNpbXBseSBub3Qgd29ydGggaXQgc2luY2UgdGhpcyBvbmx5IGhhcHBlbnMgaWYgd2Un
cmUKKyAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBoYXZpbmcgYSBiYWQgdGltZS4KKyAg
ICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0
ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9y
YWdlOjpudW1WYWx1ZXNJblZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xlIHdlIG1pZ2h0IGJl
IGdyb3dpbmcgdGhlIGFycmF5OyAKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdl
UmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAg
IG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7
CisgICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgp
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aERvZXNOb3RO
ZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAg
ICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCisgICAgICAgICAgICBtX2pp
dC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9G
KEFycmF5U3RvcmFnZSwgbV92ZWN0b3JbMF0pKSk7CiAKICAgICAgICAgICAgIGJhc2UudXNlKCk7
CiAgICAgICAgICAgICBwcm9wZXJ0eS51c2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEzMjQxNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjI3MCwxNCArMjI3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVBbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZShOb2RlJik7CiAgICAgdm9pZCBjb21waWxlUmVhbGxvY2F0ZVByb3BlcnR5
U3RvcmFnZShOb2RlJik7CiAgICAgCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3QgY29tcGlsZUNvbnRpZ3VvdXNHZXRCeVZhbChOb2RlJiwgR1BSUmVnIGJh
c2VSZWcsIEdQUlJlZyBwcm9wZXJ0eVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyByZXN1
bHRSZWcpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBjb21waWxlQXJyYXlTdG9yYWdl
R2V0QnlWYWwoTm9kZSYsIEdQUlJlZyBiYXNlUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcsIEdQUlJl
ZyBzdG9yYWdlUmVnLCBHUFJSZWcgcmVzdWx0UmVnKTsKLSNlbHNlCi0gICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXBMaXN0IGNvbXBpbGVDb250aWd1b3VzR2V0QnlWYWwoTm9kZSYsIEdQUlJlZyBiYXNl
UmVnLCBHUFJSZWcgcHJvcGVydHlSZWcsIEdQUlJlZyBzdG9yYWdlUmVnLCBHUFJSZWcgcmVzdWx0
VGFnUmVnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZFJlZyk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXBMaXN0IGNvbXBpbGVBcnJheVN0b3JhZ2VHZXRCeVZhbChOb2RlJiwgR1BSUmVnIGJhc2VSZWcs
IEdQUlJlZyBwcm9wZXJ0eVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyByZXN1bHRUYWdS
ZWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkUmVnKTsKLSNlbmRpZgotICAgIAogICAgIGJvb2wgcHV0
QnlWYWxXaWxsTmVlZEV4dHJhUmVnaXN0ZXIoQXJyYXk6Ok1vZGUgYXJyYXlNb2RlKQogICAgIHsK
ICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUpIHsKQEAgLTIzMDQsMTMgKzIyOTYsNiBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICByZXR1cm4gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0
ZW1wb3JhcnksIG5vZGUuYXJyYXlNb2RlKCkpOwogICAgIH0KLSNpZiBVU0UoSlNWQUxVRTY0KQot
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKE5v
ZGUmLCBHUFJSZWcgYmFzZVJlZywgR1BSUmVnIHByb3BlcnR5UmVnLCBHUFJSZWcgc3RvcmFnZVJl
ZywgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgdGVtcFJlZyk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXBMaXN0IGNvbXBpbGVBcnJheVN0b3JhZ2VQdXRCeVZhbChOb2RlJiwgR1BSUmVnIGJhc2VS
ZWcsIEdQUlJlZyBwcm9wZXJ0eVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyB2YWx1ZVJl
ZywgR1BSUmVnIHRlbXBSZWcpOwotI2Vsc2UKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qg
Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlJiwgR1BSUmVnIGJhc2VSZWcsIEdQUlJlZyBw
cm9wZXJ0eVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyB2YWx1ZVRhZ1JlZywgR1BSUmVn
IHZhbHVlUGF5bG9hZFJlZyk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGNvbXBpbGVB
cnJheVN0b3JhZ2VQdXRCeVZhbChOb2RlJiwgR1BSUmVnIGJhc2VSZWcsIEdQUlJlZyBwcm9wZXJ0
eVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcsIEdQUlJlZyB2YWx1ZVRhZ1JlZywgR1BSUmVnIHZhbHVl
UGF5bG9hZFJlZyk7Ci0jZW5kaWYKICAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRDaGFyQ29kZUF0
KE5vZGUmKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKE5vZGUmKTsK
</data>
<flag name="review"
          id="184148"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>