<?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>56232</bug_id>
          
          <creation_ts>2011-03-11 15:57:54 -0800</creation_ts>
          <short_desc>Add a shared memory cache to the web process</short_desc>
          <delta_ts>2011-03-11 18:25:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>56236</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366391</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-11 15:57:54 -0800</bug_when>
    <thetext>Add a shared memory cache to the web process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366397</commentid>
    <comment_count>1</comment_count>
      <attachid>85550</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-11 16:04:55 -0800</bug_when>
    <thetext>Created attachment 85550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366401</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-11 16:12:31 -0800</bug_when>
    <thetext>Committed r80899: &lt;http://trac.webkit.org/changeset/80899&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366404</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-11 16:24:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80899 might have broken Windows Release (Build) and Windows Debug (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366449</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 17:30:04 -0800</bug_when>
    <thetext>It seems like every single test is crashing on SL WebKit2:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(WebKit2%20Tests)/r80902%20(9553)/results.html
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28WebKit2%20Tests%29/builds/9553</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366455</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 17:36:45 -0800</bug_when>
    <thetext>This also seems to have caused Windows build failure.
http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/13154/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366461</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 17:56:55 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; It seems like every single test is crashing on SL WebKit2:
&gt; http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(WebKit2%20Tests)/r80902%20(9553)/results.html
&gt; http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28WebKit2%20Tests%29/builds/9553

Let me correct myself.  A lot of them but not every single one because it starts at animation tests.  Windows build failure was fixed in http://trac.webkit.org/changeset/80912.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366471</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 18:25:43 -0800</bug_when>
    <thetext>I rolled it out in http://trac.webkit.org/changeset/80917 for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85550</attachid>
            <date>2011-03-11 16:04:55 -0800</date>
            <delta_ts>2011-03-11 16:10:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56232-20110311160455.patch</filename>
            <type>text/plain</type>
            <size>22880</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwODk3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDMtMTEgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzaGFyZWQgbWVtb3J5IGNhY2hlIHRvIHRoZSB3
ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTYyMzIKKworICAgICAgICBBZGQgYSB2ZXJ5IHNpbXBsZSBzaGFyZWQgbWVtb3J5IGNhY2hl
IHRvIHRoZSB3ZWIgcHJvY2Vzcywgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGFsbG9jYXRlIGFu
ZAorICAgICAgICBmcmVlIG1lbW9yeSBvdmVyIGFuZCBvdmVyIHdoZW4gcGFpbnRpbmcuCisKKyAg
ICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hh
cmVhYmxlQml0bWFwOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZVNoYXJlYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6cmVz
aXplKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlYWJsZUJpdG1hcDo6bnVtQnl0ZXNOZWVkZWRGb3JCaXRtYXBTaXplKToKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpzaXplSW5CeXRlcyk6CisgICAgICAgIFJlbmFt
ZSBudW1CeXRlc0ZvclNpemUgdG8gbnVtQnl0ZXNOZWVkZWRGb3JCaXRtYXBTaXplLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0ZSk6CisgICAgICAgIEFsd2F5cyBzZW5kIGJh
Y2sgYSBEaWRVcGRhdGUgbWVzc2FnZSwgZXZlbiBpZiB3ZSBkaWRuJ3QgdXNlIHRoZSB1cGRhdGUg
aW5mby4KKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgc28gdGhhdCB0aGUgd2ViIHByb2Nlc3Mga25v
d3Mgd2hlbiB0aGUgVUkgcHJvY2VzcyBpcyBkb25lIHdpdGggdGhlIHNoYXJlZCBtZW1vcnkgaW5z
aWRlCisgICAgICAgIHRoZSB1cGRhdGUgaW5mbyBzdHJ1Y3QuCisKKyAgICAgICAgKiBXZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktp
dDo6RHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICBEaWRVcGRhdGUgbm93IHRha2VzIGEg
Ym9vbGVhbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpzaGFyZWRNZW1vcnlDYWNoZSk6CisgICAgICAgIEFkZCBz
aGFyZWQgbWVtb3J5IGNhY2hlLgorCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6
fkRyYXdpbmdBcmVhSW1wbCk6CisgICAgICAgIFJldHVybiB0aGUgc2hhcmVkIG1lbW9yeSB0byB0
aGUgY2FjaGUuCisKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpzZW5kRGlkVXBk
YXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICBkaXNwbGF5IG5vdyB0YWtlcyBhbiBleHRy
YSBib29sZWFuLgorCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6ZGlkVXBkYXRl
KToKKyAgICAgICAgUmV0dXJuIHRoZSBzaGFyZWQgbWVtb3J5IHRvIHRoZSBjYWNoZS4KKworICAg
ICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OmRpc3BsYXkpOgorICAgICAgICBJZiB1c2VT
aGFyZWRNZW1vcnlDYWNoZSBpcyB0cnVlLCBnZXQgc2hhcmVkIG1lbW9yeSBmcm9tIHRoZSBjYWNo
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9TaGFyZWRNZW1vcnlDYWNoZS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnlDYWNoZTo6YWNxdWlyZVNoYXJl
ZE1lbW9yeSk6CisgICAgICAgIElmIHRoZSBtZW1vcnkgd2UgY3VycmVudGx5IGhvbGQgb24gdG8g
aXMgYmlnIGVub3VnaCwgcmV0dXJuIGl0LgorCisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9y
eUNhY2hlOjpyZWxlYXNlU2hhcmVkTWVtb3J5KToKKyAgICAgICAgSWYgd2UncmUgYWxyZWFkeSBo
b2xkaW5nIG9uIHRvIHNoYXJlZCBtZW1vcnksIGV2aWN0IGl0IGlmIHRoZSByZXR1cm5lZAorICAg
ICAgICBzaGFyZWQgbWVtb3J5IG9iamVjdCBpcyBiaWdnZXIgdGhhbiB0aGUgb25lIHdlIGN1cnJl
bnRseSBob2xkLgorCisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeUNhY2hlOjpjbGVhckNh
Y2hlVGltZXJGaXJlZCk6CisgICAgICAgIE51bGwgb3V0IHRoZSBzaGFyZWQgbWVtb3J5IG9iamVj
dC4KKwogMjAxMS0wMy0xMSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlQml0bWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlQml0bWFwLmNwcAkocmV2aXNpb24gODA4ODQpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNo
YXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCiB7Ci0g
ICAgc2l6ZV90IG51bUJ5dGVzID0gbnVtQnl0ZXNGb3JTaXplKHNpemUpOworICAgIHNpemVfdCBu
dW1CeXRlcyA9IG51bUJ5dGVzTmVlZGVkRm9yQml0bWFwU2l6ZShzaXplKTsKICAgICAKICAgICB2
b2lkKiBkYXRhID0gMDsKICAgICBpZiAoIXRyeUZhc3RNYWxsb2MobnVtQnl0ZXMpLmdldFZhbHVl
KGRhdGEpKQpAQCAtNDYsNyArNDYsNyBAQCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gU2hh
cmVhYmxlQml0CiAKIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZVNoYXJlYWJsZShjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHNpemVfdCBudW1C
eXRlcyA9IG51bUJ5dGVzRm9yU2l6ZShzaXplKTsKKyAgICBzaXplX3QgbnVtQnl0ZXMgPSBudW1C
eXRlc05lZWRlZEZvckJpdG1hcFNpemUoc2l6ZSk7CiAKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5
PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShudW1CeXRlcyk7CiAgICAgaWYg
KCFzaGFyZWRNZW1vcnkpCkBAIC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0
bWFwPiBTaGFyZWFibGVCaXQKIHsKICAgICBBU1NFUlQoc2hhcmVkTWVtb3J5KTsKIAotICAgIHNp
emVfdCBudW1CeXRlcyA9IG51bUJ5dGVzRm9yU2l6ZShzaXplKTsKKyAgICBzaXplX3QgbnVtQnl0
ZXMgPSBudW1CeXRlc05lZWRlZEZvckJpdG1hcFNpemUoc2l6ZSk7CiAgICAgQVNTRVJUX1VOVVNF
RChudW1CeXRlcywgc2hhcmVkTWVtb3J5LT5zaXplKCkgPj0gbnVtQnl0ZXMpOwogICAgIAogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVhYmxlQml0bWFwKHNpemUsIHNoYXJlZE1lbW9yeSkp
OwpAQCAtMTA5LDcgKzEwOSw3IEBAIGJvb2wgU2hhcmVhYmxlQml0bWFwOjpyZXNpemUoY29uc3Qg
SW50U2kKICAgICBpZiAoc2l6ZSA9PSBtX3NpemUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgc2l6ZV90IG5ld051bUJ5dGVzID0gbnVtQnl0ZXNGb3JTaXplKHNpemUpOworICAgIHNpemVf
dCBuZXdOdW1CeXRlcyA9IG51bUJ5dGVzTmVlZGVkRm9yQml0bWFwU2l6ZShzaXplKTsKICAgICAK
ICAgICAvLyBUcnkgdG8gcmVzaXplLgogICAgIGNoYXIqIG5ld0RhdGEgPSAwOwpJbmRleDogU291
cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAkocmV2aXNpb24gODA4ODQpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDYgKzU4LDggQEAgcHVibGljOgogCiAgICAgflNoYXJlYWJsZUJpdG1hcCgpOwogCisgICAg
c3RhdGljIHNpemVfdCBudW1CeXRlc05lZWRlZEZvckJpdG1hcFNpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2l6ZSkgeyByZXR1cm4gc2l6ZS53aWR0aCgpICogc2l6ZS5oZWlnaHQoKSAqIDQ7
IH0KKwogICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBt
X3NpemU7IH0KICAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIFdl
YkNvcmU6OkludFJlY3QoV2ViQ29yZTo6SW50UG9pbnQoKSwgc2l6ZSgpKTsgfQogCkBAIC03NSwx
MiArNzcsMTAgQEAgcHJpdmF0ZToKICAgICBTaGFyZWFibGVCaXRtYXAoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIHZvaWQqKTsKICAgICBTaGFyZWFibGVCaXRtYXAoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYsIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5Pik7CiAKLSAgICBzdGF0aWMgc2l6ZV90IG51
bUJ5dGVzRm9yU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKSB7IHJldHVybiBzaXpl
LndpZHRoKCkgKiBzaXplLmhlaWdodCgpICogNDsgfQotCiAgICAgc3RhdGljIHZvaWQgcmVsZWFz
ZURhdGEodm9pZCogdHlwZWxlc3NCaXRtYXAsIHZvaWQqIHR5cGVsZXNzRGF0YSk7CiAgICAgCiAg
ICAgdm9pZCogZGF0YSgpIGNvbnN0OwotICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IHsg
cmV0dXJuIG51bUJ5dGVzRm9yU2l6ZShtX3NpemUpOyB9CisgICAgc2l6ZV90IHNpemVJbkJ5dGVz
KCkgY29uc3QgeyByZXR1cm4gbnVtQnl0ZXNOZWVkZWRGb3JCaXRtYXBTaXplKG1fc2l6ZSk7IH0K
IAogICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAJKHJldmlzaW9uIDgwODg0
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ0LDEzICsxNDQsMTYgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5
SW1wbDo6c2V0UGFnZUlzVmlzaQogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlKHVp
bnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8p
CiB7CiAgICAgQVNTRVJUX0FSRyhiYWNraW5nU3RvcmVTdGF0ZUlELCBiYWNraW5nU3RvcmVTdGF0
ZUlEIDw9IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpOwotICAgIGlmIChiYWNraW5nU3Rv
cmVTdGF0ZUlEIDwgbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKKyAgICBpZiAoYmFja2lu
Z1N0b3JlU3RhdGVJRCA8IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpIHsKKyAgICAgICAg
Ly8gV2Ugc3RpbGwgd2FudCB0byBzZW5kIGJhY2sgYSBtZXNzYWdlIHNvIHRoYXQgdGhlIHdlYiBw
cm9jZXNzIGtub3dzIHRoYXQgaXQgY2FuIHJldXNlIHRoZSBzaGFyZWQgbWVtb3J5IHVzZWQgZm9y
IHRoZSB1cGRhdGUgaW5mby4KKyAgICAgICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkRpZFVwZGF0ZShmYWxzZSksIG1fd2ViUGFnZVByb3h5
LT5wYWdlSUQoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICAvLyBGSVhNRTogSGFu
ZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSB2aWV3IGlzIGhpZGRlbi4KIAogICAgIGluY29ycG9yYXRl
VXBkYXRlKHVwZGF0ZUluZm8pOwotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpEaWRVcGRhdGUoKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJ
RCgpKTsKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpEcmF3
aW5nQXJlYTo6RGlkVXBkYXRlKHRydWUpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOwogfQog
CiB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1
aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZv
LCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gODA4ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDggQEAKIAkJMUEyNEI1RjMxMUY1MzFF
ODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjRCNUYxMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0
aWVzLmggKi87IH07CiAJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjRCRUQz
MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCAqLzsgfTsKIAkJMUEyNEJGM0ExMjA4
OTZBNjAwRkJCMDU5IC8qIFNoYXJlZE1lbW9yeU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI0QkYzOTEyMDg5NkE2MDBGQkIwNTkgLyogU2hh
cmVkTWVtb3J5TWFjLmNwcCAqLzsgfTsKKwkJMUEyN0E1QzgxMzJBQzg2QTAwMTEzOEZCIC8qIFNo
YXJlZE1lbW9yeUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjdBNUM2MTMyQUM4NkEwMDExMzhGQiAvKiBTaGFyZWRNZW1vcnlDYWNoZS5j
cHAgKi87IH07CisJCTFBMjdBNUM5MTMyQUM4NkEwMDExMzhGQiAvKiBTaGFyZWRNZW1vcnlDYWNo
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyN0E1
QzcxMzJBQzg2QTAwMTEzOEZCIC8qIFNoYXJlZE1lbW9yeUNhY2hlLmggKi87IH07CiAJCTFBMkMz
MDcxMTJENTU1NDUwMDYzREFBMiAvKiBDb250ZXh0TWVudVN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTJDMzA2RjEyRDU1NTQ1MDA2M0RBQTIg
LyogQ29udGV4dE1lbnVTdGF0ZS5oICovOyB9OwogCQkxQTJEODJBNDEyN0Y0RUFCMDAxRUI5NjIg
LyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUExRkEzNUMxMjdBNDVCRjAwNTBFNzA5IC8qIE5QT2JqZWN0
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUEyRDgyQTUxMjdGNEVBQjAwMUVCOTYyIC8q
IE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTFGQTM1QjEyN0E0NUJGMDA1MEU3MDkgLyogTlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXIuaCAqLzsgfTsKQEAgLTkwMCw2ICs5MDIsOCBAQAogCQkxQTI0QjVGMTExRjUz
MUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNYWNoVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MjRCRUQzMTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBMjRCRjM5MTIwODk2QTYwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnlNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5TWFjLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyN0E1QzYxMzJBQzg2QTAwMTEzOEZCIC8q
IFNoYXJlZE1lbW9yeUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNoYXJlZE1lbW9yeUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUEyN0E1QzcxMzJBQzg2QTAwMTEzOEZCIC8qIFNoYXJlZE1lbW9yeUNhY2hlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBMkMzMDZGMTJENTU1NDUwMDYzREFBMiAvKiBDb250ZXh0TWVu
dVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRleHRNZW51U3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyRDg0MTExMjdGNjRFODAwMUVC
OTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjMyMyw2ICsyMzI3LDggQEAKIAkJCQkx
QTE4NkVFODEyRUY3NjE4MDA4RTVGMzcgLyogTGF5ZXJUcmVlSG9zdC5oICovLAogCQkJCTFBOTBD
MjM2MTI2NTA3MTcwMDNFNDRENCAvKiBQYWdlT3ZlcmxheS5jcHAgKi8sCiAJCQkJMUE5MEMyMzUx
MjY1MDcxNzAwM0U0NEQ0IC8qIFBhZ2VPdmVybGF5LmggKi8sCisJCQkJMUEyN0E1QzYxMzJBQzg2
QTAwMTEzOEZCIC8qIFNoYXJlZE1lbW9yeUNhY2hlLmNwcCAqLywKKwkJCQkxQTI3QTVDNzEzMkFD
ODZBMDAxMTM4RkIgLyogU2hhcmVkTWVtb3J5Q2FjaGUuaCAqLywKIAkJCQlCQzcyQjlGODExRTY0
NzZCMDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwICovLAogCQkJCUJDNzJC
OUY5MTFFNjQ3NkIwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oICovLAogCQkJ
CTUxODcxQjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8sCkBAIC0z
NDU1LDYgKzM0NjEsNyBAQAogCQkJCTM3QzRFOUY2MTMxQzZFN0UwMDI5QkQ1QSAvKiBjb25maWcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkIxNkE0MTMyMDFCOUIwMEY0OTQzMSAvKiBGdWxsS2V5
Ym9hcmRBY2Nlc3NXYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0FBMTA2NzEzMUYwNjAw
MDBENEE1NzUgLyogV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQTI3QTVDOTEzMkFDODZBMDAxMTM4RkIgLyogU2hhcmVkTWVtb3J5Q2FjaGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtNDA1OSw2ICs0MDY2LDcgQEAKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMjdBNUM4
MTMyQUM4NkEwMDExMzhGQiAvKiBTaGFyZWRNZW1vcnlDYWNoZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oCShyZXZpc2lvbiA4MDg4NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6
CiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIC8vIEZJWE1FOiBUaGVzZSBz
aG91bGQgYmUgcHVyZSB2aXJ0dWFsLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3Rv
cmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lZGlh
dGVseSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2Nyb2xsT2Zmc2V0KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZShib29sIGRpZEluY29ycG9yYXRlQmFja2luZ1N0b3Jl
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFBhaW50aW5nKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZVBhaW50aW5nKCkgeyB9CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgko
cmV2aXNpb24gODA4ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKIAog
bWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgewogICAgIFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVp
bnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGJvb2wgcmVzcG9uZEltbWVkaWF0ZWx5LCBXZWJD
b3JlOjpJbnRTaXplIHNpemUsIFdlYkNvcmU6OkludFNpemUgc2Nyb2xsT2Zmc2V0KQotICAgIERp
ZFVwZGF0ZSgpCisgICAgRGlkVXBkYXRlKGJvb2wgZGlkSW5jb3Jwb3JhdGVCYWNraW5nU3RvcmUp
CiAgICAgU3VzcGVuZFBhaW50aW5nKCkKICAgICBSZXN1bWVQYWludGluZygpCiB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJ
bXBsLmNwcAkocmV2aXNpb24gODA4ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkxheWVy
VHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJT
aGFyZWRNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJX
ZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAtNDUs
NiArNDYsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCitzdGF0aWMgU2hhcmVkTWVtb3J5Q2FjaGUmIHNoYXJlZE1lbW9yeUNhY2hlKCkKK3sKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFNoYXJlZE1lbW9yeUNhY2hlLCBzaGFyZWRNZW1vcnlDYWNo
ZSwgKCkpOworCisgICAgcmV0dXJuIHNoYXJlZE1lbW9yeUNhY2hlOworfQorCiBQYXNzT3duUHRy
PERyYXdpbmdBcmVhSW1wbD4gRHJhd2luZ0FyZWFJbXBsOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFn
ZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IERyYXdpbmdBcmVhSW1wbCh3ZWJQYWdlLCBwYXJhbWV0ZXJzKSk7
CkBAIC01Miw2ICs2MCw5IEBAIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFJbXBsPiBEcmF3aW5nQXJl
YUkKIAogRHJhd2luZ0FyZWFJbXBsOjp+RHJhd2luZ0FyZWFJbXBsKCkKIHsKKyAgICBpZiAobV9z
aGFyZWRNZW1vcnlVc2VkRm9yTGFzdFVwZGF0ZSkKKyAgICAgICAgc2hhcmVkTWVtb3J5Q2FjaGUo
KS5yZWxlYXNlU2hhcmVkTWVtb3J5KG1fc2hhcmVkTWVtb3J5VXNlZEZvckxhc3RVcGRhdGUucmVs
ZWFzZSgpKTsKKwogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+aW52YWxpZGF0ZSgpOwogfQpAQCAtMjk2LDcgKzMwNyw3IEBAIHZvaWQgRHJhd2luZ0Fy
ZWFJbXBsOjpzZW5kRGlkVXBkYXRlQmFja2kKICAgICBVcGRhdGVJbmZvIHVwZGF0ZUluZm87CiAK
ICAgICBpZiAoIW1faXNQYWludGluZ1N1c3BlbmRlZCAmJiAhbV9sYXllclRyZWVIb3N0KQotICAg
ICAgICBkaXNwbGF5KHVwZGF0ZUluZm8pOworICAgICAgICBkaXNwbGF5KHVwZGF0ZUluZm8sIGZh
bHNlKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBMYXllclRyZWVD
b250ZXh0IGxheWVyVHJlZUNvbnRleHQ7CkBAIC0zMTksOCArMzMwLDE0IEBAIHZvaWQgRHJhd2lu
Z0FyZWFJbXBsOjpzZW5kRGlkVXBkYXRlQmFja2kKICNlbmRpZgogfQogCi12b2lkIERyYXdpbmdB
cmVhSW1wbDo6ZGlkVXBkYXRlKCkKK3ZvaWQgRHJhd2luZ0FyZWFJbXBsOjpkaWRVcGRhdGUoYm9v
bCBkaWRJbmNvcnBvcmF0ZUJhY2tpbmdTdG9yZSkKIHsKKyAgICBBU1NFUlQobV9zaGFyZWRNZW1v
cnlVc2VkRm9yTGFzdFVwZGF0ZSk7CisgICAgc2hhcmVkTWVtb3J5Q2FjaGUoKS5yZWxlYXNlU2hh
cmVkTWVtb3J5KG1fc2hhcmVkTWVtb3J5VXNlZEZvckxhc3RVcGRhdGUucmVsZWFzZSgpKTsKKwor
ICAgIGlmICghZGlkSW5jb3Jwb3JhdGVCYWNraW5nU3RvcmUpCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8vIFdlIG1pZ2h0IGdldCBkaWRVcGRhdGUgbWVzc2FnZXMgZnJvbSB0aGUgVUkgcHJvY2Vz
cyBldmVuIGFmdGVyIHdlJ3ZlCiAgICAgLy8gZW50ZXJlZCBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZyBtb2RlLiBJZ25vcmUgdGhlbS4KICAgICBpZiAobV9sYXllclRyZWVIb3N0KQpAQCAtMzk1LDcg
KzQxMiw3IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb20KICAgICBp
ZiAobV9pc1BhaW50aW5nU3VzcGVuZGVkKQogICAgICAgICB1cGRhdGVJbmZvLnZpZXdTaXplID0g
bV93ZWJQYWdlLT5zaXplKCk7CiAgICAgZWxzZQotICAgICAgICBkaXNwbGF5KHVwZGF0ZUluZm8p
OworICAgICAgICBkaXNwbGF5KHVwZGF0ZUluZm8sIGZhbHNlKTsKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICAvLyBTZW5kIGFsb25nIGEgY29tcGxldGUgdXBkYXRlIG9m
IHRoZSBwYWdlIHNvIHdlIGNhbiBwYWludCB0aGUgY29udGVudHMgcmlnaHQgYWZ0ZXIgd2UgZXhp
dCB0aGUKQEAgLTQ2Miw3ICs0NzksNyBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheSgp
CiAgICAgfQogCiAgICAgVXBkYXRlSW5mbyB1cGRhdGVJbmZvOwotICAgIGRpc3BsYXkodXBkYXRl
SW5mbyk7CisgICAgZGlzcGxheSh1cGRhdGVJbmZvLCB0cnVlKTsKIAogICAgIGlmIChtX2xheWVy
VHJlZUhvc3QpIHsKICAgICAgICAgLy8gVGhlIGNhbGwgdG8gdXBkYXRlIGNhdXNlZCBsYXlvdXQg
d2hpY2ggdHVybmVkIG9uIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgpAQCAtNDk1LDcgKzUxMiw3
IEBAIHN0YXRpYyBib29sIHNob3VsZFBhaW50Qm91bmRzUmVjdChjb25zdCAKICAgICByZXR1cm4g
d2FzdGVkU3BhY2UgPD0gd2FzdGVkU3BhY2VUaHJlc2hvbGQ7CiB9CiAKLXZvaWQgRHJhd2luZ0Fy
ZWFJbXBsOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCit2b2lkIERyYXdpbmdBcmVh
SW1wbDo6ZGlzcGxheShVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBib29sIHVzZVNoYXJlZE1lbW9y
eUNhY2hlKQogewogICAgIEFTU0VSVCghbV9pc1BhaW50aW5nU3VzcGVuZGVkKTsKICAgICBBU1NF
UlQoIW1fbGF5ZXJUcmVlSG9zdCk7CkBAIC01MTUsNyArNTMyLDE5IEBAIHZvaWQgRHJhd2luZ0Fy
ZWFJbXBsOjpkaXNwbGF5KFVwZGF0ZUluZm8KICAgICBJbnRSZWN0IGJvdW5kcyA9IG1fZGlydHlS
ZWdpb24uYm91bmRzKCk7CiAgICAgQVNTRVJUKG1fd2ViUGFnZS0+Ym91bmRzKCkuY29udGFpbnMo
Ym91bmRzKSk7CiAKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFi
bGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShib3VuZHMuc2l6ZSgpKTsKKyAgICBSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPiBiaXRtYXA7CisgICAgaWYgKHVzZVNoYXJlZE1lbW9yeUNhY2hlKSB7Cisg
ICAgICAgIHNpemVfdCBzaXplID0gU2hhcmVhYmxlQml0bWFwOjpudW1CeXRlc05lZWRlZEZvckJp
dG1hcFNpemUoYm91bmRzLnNpemUoKSk7CisKKyAgICAgICAgQVNTRVJUKCFtX3NoYXJlZE1lbW9y
eVVzZWRGb3JMYXN0VXBkYXRlKTsKKworICAgICAgICBtX3NoYXJlZE1lbW9yeVVzZWRGb3JMYXN0
VXBkYXRlID0gc2hhcmVkTWVtb3J5Q2FjaGUoKS5hY3F1aXJlU2hhcmVkTWVtb3J5KHNpemUpOwor
ICAgICAgICBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShib3VuZHMuc2l6ZSgpLCBt
X3NoYXJlZE1lbW9yeVVzZWRGb3JMYXN0VXBkYXRlKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBKdXN0IGNyZWF0ZSBhIG5ldyBzaGFyZWFibGUgYml0bWFwLgorICAgICAgICBiaXRtYXAgPSBT
aGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShib3VuZHMuc2l6ZSgpKTsKKyAgICB9CisK
ICAgICBpZiAoIWJpdG1hcC0+Y3JlYXRlSGFuZGxlKHVwZGF0ZUluZm8uYml0bWFwSGFuZGxlKSkK
ICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWFJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCShyZXZpc2lvbiA4MDg4NCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgU2hh
cmVkTWVtb3J5OwogY2xhc3MgVXBkYXRlSW5mbzsKIAogY2xhc3MgRHJhd2luZ0FyZWFJbXBsIDog
cHVibGljIERyYXdpbmdBcmVhIHsKQEAgLTYxLDcgKzYyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8v
IENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgYm9vbCByZXNwb25kSW1t
ZWRpYXRlbHksIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGUoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkVXBkYXRlKGJvb2wgZGlkSW5jb3Jwb3JhdGVCYWNraW5nU3RvcmUpOwogICAg
IHZpcnR1YWwgdm9pZCBzdXNwZW5kUGFpbnRpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1l
UGFpbnRpbmcoKTsKIApAQCAtNzQsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1
bGVEaXNwbGF5KCk7CiAgICAgdm9pZCBkaXNwbGF5VGltZXJGaXJlZCgpOwogICAgIHZvaWQgZGlz
cGxheSgpOwotICAgIHZvaWQgZGlzcGxheShVcGRhdGVJbmZvJik7CisgICAgdm9pZCBkaXNwbGF5
KFVwZGF0ZUluZm8mLCBib29sIHVzZVNoYXJlZE1lbW9yeUNhY2hlKTsKIAogICAgIHVpbnQ2NF90
IG1fYmFja2luZ1N0b3JlU3RhdGVJRDsKIApAQCAtMTA1LDYgKzEwNiwxMiBAQCBwcml2YXRlOgog
CiAgICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcuCiAgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKKwor
ICAgIC8vIFRoZSBzaGFyZWQgbWVtb3J5IHdlIHVzZWQgZm9yIHRoZSBsYXN0IHVwZGF0ZS4gSWYg
cG9zc2libGUsIHdlJ2xsIHRyeQorICAgIC8vIHRvIHJldXNlIGl0IGZvciBzdWJzZXF1ZW50IHBh
aW50cyB0byBhdm9pZCBhbGxvY2F0aW5nL2ZyZWVlaW5nIHNoYXJlZCBtZW1vcnkKKyAgICAvLyBm
b3IgZXZlcnkgcGFpbnQuCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnlV
c2VkRm9yTGFzdFVwZGF0ZTsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvU2hhcmVkTWVtb3J5Q2FjaGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9TaGFyZWRNZW1v
cnlDYWNoZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvU2hhcmVkTWVtb3J5Q2FjaGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9y
eUNhY2hlLmgiCisKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKKy8vIFRoZSB0aW1lIGJlZm9yZSB3ZSBjbGVhciB0aGUgc2hhcmVkIG1lbW9yeSBjYWNo
ZS4KK3N0YXRpYyBjb25zdCBkb3VibGUgc2hhcmVkTWVtb3J5Q2xlYXJDYWNoZVRpbWVvdXQgPSAz
OworCitTaGFyZWRNZW1vcnlDYWNoZTo6U2hhcmVkTWVtb3J5Q2FjaGUoKQorICAgIDogbV9jbGVh
ckNhY2hlVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2hhcmVkTWVtb3J5Q2FjaGU6
OmNsZWFyQ2FjaGVUaW1lckZpcmVkKQoreworfQorCitTaGFyZWRNZW1vcnlDYWNoZTo6flNoYXJl
ZE1lbW9yeUNhY2hlKCkKK3sKK30KKworUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1l
bW9yeUNhY2hlOjphY3F1aXJlU2hhcmVkTWVtb3J5KHNpemVfdCBzaXplKQoreworICAgIGlmICht
X2xhc3RVc2VkTWVtb3J5ICYmIG1fbGFzdFVzZWRNZW1vcnktPnNpemUoKSA+PSBzaXplKQorICAg
ICAgICByZXR1cm4gbV9sYXN0VXNlZE1lbW9yeS5yZWxlYXNlKCk7CisKKyAgICBtX2xhc3RVc2Vk
TWVtb3J5ID0gbnVsbHB0cjsKKyAgICByZXR1cm4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZSk7
Cit9CisKK3ZvaWQgU2hhcmVkTWVtb3J5Q2FjaGU6OnJlbGVhc2VTaGFyZWRNZW1vcnkoUGFzc1Jl
ZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSkKK3sKKyAgICBzaXplX3QgbGFzdFVzZWRT
aGFyZWRNZW1vcnlTaXplID0gMDsKKyAgICBpZiAobV9sYXN0VXNlZE1lbW9yeSkKKyAgICAgICAg
bGFzdFVzZWRTaGFyZWRNZW1vcnlTaXplID0gbV9sYXN0VXNlZE1lbW9yeS0+c2l6ZSgpOworCisg
ICAgaWYgKHNoYXJlZE1lbW9yeS0+c2l6ZSgpID4gbGFzdFVzZWRTaGFyZWRNZW1vcnlTaXplKSB7
CisgICAgICAgIG1fbGFzdFVzZWRNZW1vcnkgPSBzaGFyZWRNZW1vcnk7CisgICAgICAgIG1fY2xl
YXJDYWNoZVRpbWVyLnN0YXJ0T25lU2hvdChzaGFyZWRNZW1vcnlDbGVhckNhY2hlVGltZW91dCk7
CisgICAgfQorfQorCit2b2lkIFNoYXJlZE1lbW9yeUNhY2hlOjpjbGVhckNhY2hlVGltZXJGaXJl
ZCgpCit7CisgICAgbV9sYXN0VXNlZE1lbW9yeSA9IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1NoYXJl
ZE1lbW9yeUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1NoYXJlZE1lbW9yeUNhY2hlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvU2hhcmVkTWVtb3J5Q2FjaGUuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2hhcmVkTWVtb3J5Q2FjaGVfaAor
I2RlZmluZSBTaGFyZWRNZW1vcnlDYWNoZV9oCisKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTaGFy
ZWRNZW1vcnk7CisKK2NsYXNzIFNoYXJlZE1lbW9yeUNhY2hlIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShTaGFyZWRNZW1vcnlDYWNoZSk7CisKK3B1YmxpYzoKKyAgICBTaGFyZWRNZW1vcnlD
YWNoZSgpOworICAgIH5TaGFyZWRNZW1vcnlDYWNoZSgpOworCisgICAgUGFzc1JlZlB0cjxTaGFy
ZWRNZW1vcnk+IGFjcXVpcmVTaGFyZWRNZW1vcnkoc2l6ZV90KTsKKyAgICB2b2lkIHJlbGVhc2VT
aGFyZWRNZW1vcnkoUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+KTsKKworcHJpdmF0ZToKKyAgICB2
b2lkIGNsZWFyQ2FjaGVUaW1lckZpcmVkKCk7CisKKyAgICBSdW5Mb29wOjpUaW1lcjxTaGFyZWRN
ZW1vcnlDYWNoZT4gbV9jbGVhckNhY2hlVGltZXI7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4g
bV9sYXN0VXNlZE1lbW9yeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gU2hhcmVkTWVtb3J5Q2FjaGVfaAo=
</data>
<flag name="review"
          id="77693"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>