<?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>87172</bug_id>
          
          <creation_ts>2012-05-22 14:53:32 -0700</creation_ts>
          <short_desc>CopiedBlock and MarkedBlock should have proper value semantics (i.e., destructors)</short_desc>
          <delta_ts>2012-05-22 16:59:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>630794</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 14:53:32 -0700</bug_when>
    <thetext>CopiedBlock and MarkedBlock should have proper value semantics (i.e., destructors)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630805</commentid>
    <comment_count>1</comment_count>
      <attachid>143373</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 15:07:20 -0700</bug_when>
    <thetext>Created attachment 143373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630810</commentid>
    <comment_count>2</comment_count>
      <attachid>143373</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-22 15:14:10 -0700</bug_when>
    <thetext>Comment on attachment 143373
Patch

R=me as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630823</commentid>
    <comment_count>3</comment_count>
      <attachid>143373</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-22 15:25:29 -0700</bug_when>
    <thetext>Comment on attachment 143373
Patch

Attachment 143373 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12739946</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630911</commentid>
    <comment_count>4</comment_count>
      <attachid>143397</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 16:37:53 -0700</bug_when>
    <thetext>Created attachment 143397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630912</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 16:38:18 -0700</bug_when>
    <thetext>Re-uploading to see if I can make Windows happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630935</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 16:58:55 -0700</bug_when>
    <thetext>Committed r118083: &lt;http://trac.webkit.org/changeset/118083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630936</commentid>
    <comment_count>7</comment_count>
      <attachid>143397</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-22 16:59:27 -0700</bug_when>
    <thetext>Comment on attachment 143397
Patch

Oliver and Phil reviewed this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143373</attachid>
            <date>2012-05-22 15:07:20 -0700</date>
            <delta_ts>2012-05-22 16:37:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87172-20120522150726.patch</filename>
            <type>text/plain</type>
            <size>19543</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MDU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSArMSw3NyBAQAor
MjAxMi0wNS0yMiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAg
IENvcGllZEJsb2NrIGFuZCBNYXJrZWRCbG9jayBzaG91bGQgaGF2ZSBwcm9wZXIgdmFsdWUgc2Vt
YW50aWNzIChpLmUuLCBkZXN0cnVjdG9ycykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg3MTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBlbmFibGVzIE1hcmtlZEJsb2NrIHRvIG93biBub24tdHJp
dmlhbCBzdWItb2JqZWN0cyB0aGF0IHJlcXVpcmUKKyAgICAgICAgZGVzdHJ1Y3Rpb24uIEl0IGFs
c28gZml4ZXMgYSBGSVhNRSBhYm91dCBjYXN0aW5nIGEgQ29waWVkQmxvY2sgdG8gYQorICAgICAg
ICBNYXJrZWRCbG9jayBhdCBkZXN0cm95IHRpbWUuCisKKyAgICAgICAgQ29waWVkQmxvY2sgYW5k
IE1hcmtlZEJsb2NrIG5vdyBhY2NlcHQgYW4gYWxsb2NhdGlvbiBjaHVuayBhdCBjcmVhdGUKKyAg
ICAgICAgdGltZSBhbmQgcmV0dXJuIGl0IGF0IGRlc3Ryb3kgdGltZS4gVGhlaXIgY2xpZW50IGlz
IGV4cGVjdGVkIHRvCisgICAgICAgIGFsbG9jYXRlLCByZWN5Y2xlLCBhbmQgZGVzdHJveSB0aGVz
ZSBjaHVua3MuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6QmxvY2tBbGxvY2F0b3I6OnJlbGVhc2VGcmVlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6
QmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4pOiBEb24ndCBjYWxsIE1hcmtl
ZEJsb2NrOjpkZXN0cm95CisgICAgICAgIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgdG8gYmUgY2Fs
bGVkIGJlZm9yZSBhIGJsb2NrIGlzIHB1dCBvbiBvdXIgZnJlZQorICAgICAgICBsaXN0IG5vdy4g
RG8gbWFudWFsbHkgZGVhbGxvY2F0ZSBvdXIgYWxsb2NhdGlvbiBjaHVuayBiZWNhdXNlIHRoYXQn
cworICAgICAgICBvdXIgam9iIG5vdy4KKworICAgICAgICAqIGhlYXAvQmxvY2tBbGxvY2F0b3Iu
aDoKKyAgICAgICAgKEJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxvY2F0
b3I6OmFsbG9jYXRlKTogQWxsb2NhdGUgbmV2ZXIgZmFpbHMgbm93LiBUaGlzIGlzIGEKKyAgICAg
ICAgY2xlYW5lciBhYnN0cmFjdGlvbiBiZWNhdXNlIG9ubHkgb25lIG9iamVjdCBkb2VzIGFsbCB0
aGUgVk0gYWxsb2NhdGlvbgorICAgICAgICBhbmQgZGVhbGxvY2F0aW9uLiBDYWNoaW5nIGlzIGFu
IGltcGxlbWVudGF0aW9uIGRldGFpbC4KKworICAgICAgICAoSlNDOjpCbG9ja0FsbG9jYXRvcjo6
ZGVhbGxvY2F0ZSk6IFdlIHRha2UgYW4gYWxsb2NhdGlvbiBjaHVuayBhcmd1bWVudAorICAgICAg
ICBpbnN0ZWFkIG9mIGEgYmxvY2sgYmVjYXVzZSB3ZSBub3cgZXhwZWN0IHRoZSBibG9jayB0byBo
YXZlIGJlZW4gZGVzdHJveWVkIAorICAgICAgICBiZWZvcmUgd2UgcmVjeWNsZSBpdHMgbWVtb3J5
LiBGb3IgY29udmVuaWVuY2UsIHdlIHN0aWxsIHVzZSB0aGUgSGVhcEJsb2NrCisgICAgICAgIGNs
YXNzIGFzIG91ciBsaW5rZWQgbGlzdCBub2RlLiBUaGlzIGlzIE9LIGJlY2F1c2UgSGVhcEJsb2Nr
IGlzIGEgUE9EIHR5cGUuCisKKyAgICAgICAgKiBoZWFwL0NvcGllZEJsb2NrLmg6CisgICAgICAg
IChDb3BpZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpDb3BpZWRCbG9jazo6ZGVzdHJveSk6CisgICAgICAgIChKU0M6OkNvcGllZEJs
b2NrOjpDb3BpZWRCbG9jayk6IEFkZGVkIHByb3BlciBjcmVhdGUgYW5kIGRlc3Ryb3kgZnVuY3Rp
b25zLAorICAgICAgICB0byBtYXRjaCBNYXJrZWRCbG9jay4KKworICAgICAgICAqIGhlYXAvQ29w
aWVkU3BhY2UuY3BwOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6dHJ5QWxsb2NhdGVPdmVy
c2l6ZSk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjp0cnlSZWFsbG9jYXRlT3ZlcnNpemUp
OgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcpOgorICAgICAgICAoSlND
OjpDb3BpZWRTcGFjZTo6Z2V0RnJlc2hCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNl
OjpmcmVlQWxsQmxvY2tzKToKKyAgICAgICAgKiBoZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9k
cy5oOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6cmVjeWNsZUJsb2NrKTogTWFrZSBzdXJl
IHRvIGNhbGwgZGVzdHJveSBiZWZvcmUKKyAgICAgICAgcmV0dXJuaW5nIGEgYmxvY2sgdG8gdGhl
IEJsb2NrQWxsb2NhdG9yLiBPdGhlcndpc2UsIG91ciBkZXN0cnVjdG9ycworICAgICAgICB3b24n
dCBydW4uIChJZiB3ZSBnZXQgdGhpcyB3cm9uZyBub3csIHdlJ2xsIGdldCBhIGNvbXBpbGUgZXJy
b3IuKQorCisgICAgICAgICogaGVhcC9IZWFwQmxvY2suaDoKKyAgICAgICAgKEpTQzo6SGVhcEJs
b2NrOjpIZWFwQmxvY2spOiBjb25zdCEKKworICAgICAgICAqIGhlYXAvTWFya2VkQWxsb2NhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9yOjphbGxvY2F0ZUJsb2NrKTogTm8g
bmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuCisgICAgICAgIGNyZWF0ZSBhbmQgcmVjeWNsZSAt
LSBNYXJrZWRCbG9jayBhbHdheXMgYWNjZXB0cyBtZW1vcnkgYWxsb2NhdGVkIGJ5CisgICAgICAg
IGl0cyBjbGllbnQgbm93LgorCisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpjcmVhdGUpOiBEb24ndCBhbGxvY2F0ZSBtZW1vcnkgLS0g
d2UgYXNzdW1lIHRoYXQgd2UncmUKKyAgICAgICAgcGFzc2VkIGFscmVhZHktYWxsb2NhdGVkIG1l
bW9yeSwgdG8gY2xhcmlmeSB0aGUgcmVzcG9uc2liaWxpdHkgZm9yIFZNCisgICAgICAgIHJlY3lj
bGluZy4KKworICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6ZGVzdHJveSk6IERvIHJ1biBvdXIg
ZGVzdHJ1Y3RvciBiZWZvcmUgZ2l2aW5nIGJhY2sKKyAgICAgICAgb3VyIFZNIC0tIHRoYXQgaXMg
dGhlIHdob2xlIHBvaW50IG9mIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKEpTQzo6TWFya2VkQmxv
Y2s6Ok1hcmtlZEJsb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAgICAg
IChNYXJrZWRCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5jcHA6IGNvbnN0IQor
CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpmcmVlQmxvY2tzKTogTWFrZSBzdXJlIHRvIGNh
bGwgZGVzdHJveSBiZWZvcmUKKyAgICAgICAgcmV0dXJuaW5nIGEgYmxvY2sgdG8gdGhlIEJsb2Nr
QWxsb2NhdG9yLiBPdGhlcndpc2UsIG91ciBkZXN0cnVjdG9ycworICAgICAgICB3b24ndCBydW4u
IChJZiB3ZSBnZXQgdGhpcyB3cm9uZyBub3csIHdlJ2xsIGdldCBhIGNvbXBpbGUgZXJyb3IuKQor
CiA9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VMb2ctMjAxMi0wNS0yMiA9PQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTE4
MDU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQmxvY2tBbGxvY2F0b3IuaCIKIAotI2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTQsMTQgKzUz
LDEzIEBAIEJsb2NrQWxsb2NhdG9yOjp+QmxvY2tBbGxvY2F0b3IoKQogdm9pZCBCbG9ja0FsbG9j
YXRvcjo6cmVsZWFzZUZyZWVCbG9ja3MoKQogewogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IE1hcmtlZEJsb2NrKiBibG9jazsKKyAgICAgICAgSGVhcEJsb2NrKiBibG9jazsKICAgICAgICAg
ewogICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnJlZUJsb2NrTG9jayk7CiAgICAg
ICAgICAgICBpZiAoIW1fbnVtYmVyT2ZGcmVlQmxvY2tzKQogICAgICAgICAgICAgICAgIGJsb2Nr
ID0gMDsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIb3cg
ZG8gd2Uga25vdyB0aGlzIGlzIGEgTWFya2VkQmxvY2s/IEl0IGNvdWxkIGJlIGEgQ29waWVkQmxv
Y2suCi0gICAgICAgICAgICAgICAgYmxvY2sgPSBzdGF0aWNfY2FzdDxNYXJrZWRCbG9jayo+KG1f
ZnJlZUJsb2Nrcy5yZW1vdmVIZWFkKCkpOworICAgICAgICAgICAgICAgIGJsb2NrID0gbV9mcmVl
QmxvY2tzLnJlbW92ZUhlYWQoKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoYmxvY2spOwogICAg
ICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmVlQmxvY2tzLS07CiAgICAgICAgICAgICB9CkBAIC02
OSw4ICs2Nyw4IEBAIHZvaWQgQmxvY2tBbGxvY2F0b3I6OnJlbGVhc2VGcmVlQmxvY2tzKCkKICAg
ICAgICAgCiAgICAgICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Ci0gICAgICAgIE1hcmtlZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKKworICAgICAgICBibG9jay0+
bV9hbGxvY2F0aW9uLmRlYWxsb2NhdGUoKTsKICAgICB9CiB9CiAKQEAgLTEyMCwxNCArMTE4LDEz
IEBAIHZvaWQgQmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE0KICAgICAgICAgc2l6
ZV90IGRlc2lyZWROdW1iZXJPZkZyZWVCbG9ja3MgPSBjdXJyZW50TnVtYmVyT2ZGcmVlQmxvY2tz
IC8gMjsKICAgICAgICAgCiAgICAgICAgIHdoaWxlICghbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91
bGRRdWl0KSB7Ci0gICAgICAgICAgICBNYXJrZWRCbG9jayogYmxvY2s7CisgICAgICAgICAgICBI
ZWFwQmxvY2sqIGJsb2NrOwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2ZyZWVCbG9ja0xvY2spOwogICAgICAgICAgICAgICAgIGlmIChtX251bWJl
ck9mRnJlZUJsb2NrcyA8PSBkZXNpcmVkTnVtYmVyT2ZGcmVlQmxvY2tzKQogICAgICAgICAgICAg
ICAgICAgICBibG9jayA9IDA7CiAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBIb3cgZG8gd2Uga25vdyB0aGlzIGlzIGEgTWFya2VkQmxvY2s/IEl0
IGNvdWxkIGJlIGEgQ29waWVkQmxvY2suCi0gICAgICAgICAgICAgICAgICAgIGJsb2NrID0gc3Rh
dGljX2Nhc3Q8TWFya2VkQmxvY2sqPihtX2ZyZWVCbG9ja3MucmVtb3ZlSGVhZCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgYmxvY2sgPSBtX2ZyZWVCbG9ja3MucmVtb3ZlSGVhZCgpOwogICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoYmxvY2spOwogICAgICAgICAgICAgICAgICAgICBtX251bWJl
ck9mRnJlZUJsb2Nrcy0tOwogICAgICAgICAgICAgICAgIH0KQEAgLTEzNiw3ICsxMzMsNyBAQCB2
b2lkIEJsb2NrQWxsb2NhdG9yOjpibG9ja0ZyZWVpbmdUaHJlYWRNCiAgICAgICAgICAgICBpZiAo
IWJsb2NrKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBNYXJrZWRCbG9jazo6ZGVzdHJveShibG9jayk7CisgICAgICAgICAgICBibG9jay0+bV9hbGxv
Y2F0aW9uLmRlYWxsb2NhdGUoKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAkocmV2aXNpb24gMTE4MDU4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsMTQgKzI2LDE0IEBACiAjaWZuZGVmIEJsb2NrQWxsb2NhdG9yX2gKICNkZWZp
bmUgQmxvY2tBbGxvY2F0b3JfaAogCisjaW5jbHVkZSAiSGVhcEJsb2NrLmgiCiAjaW5jbHVkZSA8
d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9QYWdlQWxsb2NhdGlvbkFsaWduZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBIZWFwQmxvY2s7Ci0KIC8vIFNpbXBsZSBh
bGxvY2F0b3IgdG8gcmVkdWNlIFZNIGNvc3QgYnkgaG9sZGluZyBvbnRvIGJsb2NrcyBvZiBtZW1v
cnkgZm9yCiAvLyBzaG9ydCBwZXJpb2RzIG9mIHRpbWUgYW5kIHRoZW4gZnJlZWluZyB0aGVtIG9u
IGEgc2Vjb25kYXJ5IHRocmVhZC4KIApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAgICAgQmxv
Y2tBbGxvY2F0b3IoKTsKICAgICB+QmxvY2tBbGxvY2F0b3IoKTsKIAotICAgIEhlYXBCbG9jayog
YWxsb2NhdGUoKTsKLSAgICB2b2lkIGRlYWxsb2NhdGUoSGVhcEJsb2NrKik7CisgICAgUGFnZUFs
bG9jYXRpb25BbGlnbmVkIGFsbG9jYXRlKCk7CisgICAgdm9pZCBkZWFsbG9jYXRlKFBhZ2VBbGxv
Y2F0aW9uQWxpZ25lZCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB3YWl0Rm9yUmVsYXRpdmVUaW1l
V2hpbGVIb2xkaW5nTG9jayhkb3VibGUgcmVsYXRpdmUpOwpAQCAtNjMsMjQgKzYzLDI4IEBAIHBy
aXZhdGU6CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX2Jsb2NrRnJlZWluZ1RocmVhZDsKIH07CiAK
LWlubGluZSBIZWFwQmxvY2sqIEJsb2NrQWxsb2NhdG9yOjphbGxvY2F0ZSgpCitpbmxpbmUgUGFn
ZUFsbG9jYXRpb25BbGlnbmVkIEJsb2NrQWxsb2NhdG9yOjphbGxvY2F0ZSgpCiB7CiAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fZnJlZUJsb2NrTG9jayk7CiAgICAgbV9pc0N1cnJlbnRseUFsbG9j
YXRpbmcgPSB0cnVlOwotICAgIGlmICghbV9udW1iZXJPZkZyZWVCbG9ja3MpIHsKLSAgICAgICAg
QVNTRVJUKG1fZnJlZUJsb2Nrcy5pc0VtcHR5KCkpOwotICAgICAgICByZXR1cm4gMDsKKyAgICBp
ZiAobV9udW1iZXJPZkZyZWVCbG9ja3MpIHsKKyAgICAgICAgQVNTRVJUKCFtX2ZyZWVCbG9ja3Mu
aXNFbXB0eSgpKTsKKyAgICAgICAgbV9udW1iZXJPZkZyZWVCbG9ja3MtLTsKKyAgICAgICAgcmV0
dXJuIG1fZnJlZUJsb2Nrcy5yZW1vdmVIZWFkKCktPm1fYWxsb2NhdGlvbjsKICAgICB9CiAKLSAg
ICBBU1NFUlQoIW1fZnJlZUJsb2Nrcy5pc0VtcHR5KCkpOwotICAgIG1fbnVtYmVyT2ZGcmVlQmxv
Y2tzLS07Ci0gICAgcmV0dXJuIG1fZnJlZUJsb2Nrcy5yZW1vdmVIZWFkKCk7CisgICAgQVNTRVJU
KG1fZnJlZUJsb2Nrcy5pc0VtcHR5KCkpOworICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxv
Y2F0aW9uID0gUGFnZUFsbG9jYXRpb25BbGlnbmVkOjphbGxvY2F0ZShIZWFwQmxvY2s6OnNfYmxv
Y2tTaXplLCBIZWFwQmxvY2s6OnNfYmxvY2tTaXplLCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdl
cyk7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihhbGxvY2F0aW9uKSkKKyAgICAgICAgQ1JB
U0goKTsKKyAgICByZXR1cm4gYWxsb2NhdGlvbjsKIH0KIAotaW5saW5lIHZvaWQgQmxvY2tBbGxv
Y2F0b3I6OmRlYWxsb2NhdGUoSGVhcEJsb2NrKiBibG9jaykKK2lubGluZSB2b2lkIEJsb2NrQWxs
b2NhdG9yOjpkZWFsbG9jYXRlKFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0aW9uKQogewog
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ZyZWVCbG9ja0xvY2spOwotICAgIG1fZnJlZUJsb2Nr
cy5wdXNoKGJsb2NrKTsKKyAgICBIZWFwQmxvY2sqIGhlYXBCbG9jayA9IG5ldyhOb3ROdWxsLCBh
bGxvY2F0aW9uLmJhc2UoKSkgSGVhcEJsb2NrKGFsbG9jYXRpb24pOworICAgIG1fZnJlZUJsb2Nr
cy5wdXNoKGhlYXBCbG9jayk7CiAgICAgbV9udW1iZXJPZkZyZWVCbG9ja3MrKzsKIH0KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCShyZXZpc2lvbiAxMTgw
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCwzMiArMzgsNTEgQEAgY2xhc3MgQ29waWVkQmxvY2sgOiBwdWJsaWMgSGVh
cEJsb2NrIHsKICAgICBmcmllbmQgY2xhc3MgQ29waWVkU3BhY2U7CiAgICAgZnJpZW5kIGNsYXNz
IENvcGllZEFsbG9jYXRvcjsKIHB1YmxpYzoKLSAgICBDb3BpZWRCbG9jayhQYWdlQWxsb2NhdGlv
bkFsaWduZWQmIGFsbG9jYXRpb24pCi0gICAgICAgIDogSGVhcEJsb2NrKGFsbG9jYXRpb24pCi0g
ICAgICAgICwgbV9vZmZzZXQocGF5bG9hZCgpKQotICAgICAgICAsIG1faXNQaW5uZWQoZmFsc2Up
Ci0gICAgewotICAgICAgICBBU1NFUlQoaXM4Qnl0ZUFsaWduZWQoc3RhdGljX2Nhc3Q8dm9pZCo+
KG1fb2Zmc2V0KSkpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGNoYXIqIG9mZnNldCA9
IHN0YXRpY19jYXN0PGNoYXIqPihtX29mZnNldCk7Ci0gICAgICAgIG1lbXNldChzdGF0aWNfY2Fz
dDx2b2lkKj4ob2Zmc2V0KSwgMCwgc3RhdGljX2Nhc3Q8c2l6ZV90PigocmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4odGhpcykgKyBhbGxvY2F0aW9uLnNpemUoKSkgLSBvZmZzZXQpKTsKLSNlbHNlCi0g
ICAgICAgIEpTVmFsdWUgZW1wdHlWYWx1ZTsKLSAgICAgICAgSlNWYWx1ZSogbGltaXQgPSByZWlu
dGVycHJldF9jYXN0X3B0cjxKU1ZhbHVlKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykg
KyBhbGxvY2F0aW9uLnNpemUoKSk7Ci0gICAgICAgIGZvciAoSlNWYWx1ZSogY3VycmVudFZhbHVl
ID0gcmVpbnRlcnByZXRfY2FzdDxKU1ZhbHVlKj4obV9vZmZzZXQpOyBjdXJyZW50VmFsdWUgPCBs
aW1pdDsgY3VycmVudFZhbHVlKyspCi0gICAgICAgICAgICAqY3VycmVudFZhbHVlID0gZW1wdHlW
YWx1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBzdGF0aWMgQ29waWVkQmxvY2sqIGNyZWF0ZShjb25z
dCBQYWdlQWxsb2NhdGlvbkFsaWduZWQmKTsKKyAgICBzdGF0aWMgUGFnZUFsbG9jYXRpb25BbGln
bmVkIGRlc3Ryb3koQ29waWVkQmxvY2sqKTsKIAogICAgIGNoYXIqIHBheWxvYWQoKTsKICAgICBz
aXplX3Qgc2l6ZSgpOwogICAgIHNpemVfdCBjYXBhY2l0eSgpOwogCiBwcml2YXRlOgorICAgIENv
cGllZEJsb2NrKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYpOworCiAgICAgdm9pZCogbV9v
ZmZzZXQ7CiAgICAgdWludHB0cl90IG1faXNQaW5uZWQ7CiB9OwogCitpbmxpbmUgQ29waWVkQmxv
Y2sqIENvcGllZEJsb2NrOjpjcmVhdGUoY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxv
Y2F0aW9uKQoreworICAgIHJldHVybiBuZXcoTm90TnVsbCwgYWxsb2NhdGlvbi5iYXNlKCkpIENv
cGllZEJsb2NrKGFsbG9jYXRpb24pOworfQorCitpbmxpbmUgUGFnZUFsbG9jYXRpb25BbGlnbmVk
IENvcGllZEJsb2NrOjpkZXN0cm95KENvcGllZEJsb2NrKiBibG9jaykKK3sKKyAgICBQYWdlQWxs
b2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbjsKKyAgICBzd2FwKGFsbG9jYXRpb24sIGJsb2NrLT5t
X2FsbG9jYXRpb24pOworCisgICAgYmxvY2stPn5Db3BpZWRCbG9jaygpOworICAgIHJldHVybiBh
bGxvY2F0aW9uOworfQorCitpbmxpbmUgQ29waWVkQmxvY2s6OkNvcGllZEJsb2NrKGNvbnN0IFBh
Z2VBbGxvY2F0aW9uQWxpZ25lZCYgYWxsb2NhdGlvbikKKyAgICA6IEhlYXBCbG9jayhhbGxvY2F0
aW9uKQorICAgICwgbV9vZmZzZXQocGF5bG9hZCgpKQorICAgICwgbV9pc1Bpbm5lZChmYWxzZSkK
K3sKKyAgICBBU1NFUlQoaXM4Qnl0ZUFsaWduZWQoc3RhdGljX2Nhc3Q8dm9pZCo+KG1fb2Zmc2V0
KSkpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2hhciogb2Zmc2V0ID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KG1fb2Zmc2V0KTsKKyAgICBtZW1zZXQoc3RhdGljX2Nhc3Q8dm9pZCo+KG9mZnNldCks
IDAsIHN0YXRpY19jYXN0PHNpemVfdD4oKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsg
YWxsb2NhdGlvbi5zaXplKCkpIC0gb2Zmc2V0KSk7CisjZWxzZQorICAgIEpTVmFsdWUgZW1wdHlW
YWx1ZTsKKyAgICBKU1ZhbHVlKiBsaW1pdCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEpTVmFsdWUq
PihyZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGFsbG9jYXRpb24uc2l6ZSgpKTsKKyAg
ICBmb3IgKEpTVmFsdWUqIGN1cnJlbnRWYWx1ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNWYWx1ZSo+
KG1fb2Zmc2V0KTsgY3VycmVudFZhbHVlIDwgbGltaXQ7IGN1cnJlbnRWYWx1ZSsrKQorICAgICAg
ICAqY3VycmVudFZhbHVlID0gZW1wdHlWYWx1ZTsKKyNlbmRpZgorfQorCiBpbmxpbmUgY2hhciog
Q29waWVkQmxvY2s6OnBheWxvYWQoKQogewogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPih0aGlzKSArICgoc2l6ZW9mKENvcGllZEJsb2NrKSArIDcpICYgfjcpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTE4MDU4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIENoZWNrZWRCb29sZWFuIENvcGllZFNwYWNlOjp0cnlB
bGxvY2F0ZU8KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIENvcGllZEJsb2Nr
KiBibG9jayA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGlvbi5iYXNlKCkpIENvcGllZEJsb2NrKGFs
bG9jYXRpb24pOworICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZEJsb2NrOjpjcmVhdGUo
YWxsb2NhdGlvbik7CiAgICAgbV9vdmVyc2l6ZUJsb2Nrcy5wdXNoKGJsb2NrKTsKICAgICBtX292
ZXJzaXplRmlsdGVyLmFkZChyZWludGVycHJldF9jYXN0PEJpdHM+KGJsb2NrKSk7CiAgICAgCkBA
IC0xMzUsNyArMTM1LDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3BhY2U6OnRyeVJlYWxsb2Nh
dAogICAgIGlmIChpc092ZXJzaXplKG9sZFNpemUpKSB7CiAgICAgICAgIENvcGllZEJsb2NrKiBv
bGRCbG9jayA9IG92ZXJzaXplQmxvY2tGb3Iob2xkUHRyKTsKICAgICAgICAgbV9vdmVyc2l6ZUJs
b2Nrcy5yZW1vdmUob2xkQmxvY2spOwotICAgICAgICBvbGRCbG9jay0+bV9hbGxvY2F0aW9uLmRl
YWxsb2NhdGUoKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3kob2xkQmxvY2spLmRlYWxs
b2NhdGUoKTsKICAgICB9CiAgICAgCiAgICAgKnB0ciA9IG5ld1B0cjsKQEAgLTE5MSw3ICsxOTEs
NyBAQCB2b2lkIENvcGllZFNwYWNlOjpkb25lQ29weWluZygpCiAgICAgICAgIH0KIAogICAgICAg
ICBtX3RvU3BhY2VTZXQucmVtb3ZlKGJsb2NrKTsKLSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmRlYWxsb2NhdGUoYmxvY2spOworICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9y
KCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOwogICAgIH0KIAogICAg
IENvcGllZEJsb2NrKiBjdXJyID0gc3RhdGljX2Nhc3Q8Q29waWVkQmxvY2sqPihtX292ZXJzaXpl
QmxvY2tzLmhlYWQoKSk7CkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9u
ZUNvcHlpbmcoKQogICAgICAgICBDb3BpZWRCbG9jayogbmV4dCA9IHN0YXRpY19jYXN0PENvcGll
ZEJsb2NrKj4oY3Vyci0+bmV4dCgpKTsKICAgICAgICAgaWYgKCFjdXJyLT5tX2lzUGlubmVkKSB7
CiAgICAgICAgICAgICBtX292ZXJzaXplQmxvY2tzLnJlbW92ZShjdXJyKTsKLSAgICAgICAgICAg
IGN1cnItPm1fYWxsb2NhdGlvbi5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBDb3BpZWRCbG9j
azo6ZGVzdHJveShjdXJyKS5kZWFsbG9jYXRlKCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgY3Vyci0+bV9pc1Bpbm5lZCA9IGZhbHNlOwogICAgICAgICBjdXJyID0gbmV4dDsKQEAgLTIx
NSwxNSArMjE1LDkgQEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcoKQogQ2hlY2tlZEJv
b2xlYW4gQ29waWVkU3BhY2U6OmdldEZyZXNoQmxvY2soQWxsb2NhdGlvbkVmZm9ydCBhbGxvY2F0
aW9uRWZmb3J0LCBDb3BpZWRCbG9jayoqIG91dEJsb2NrKQogewogICAgIENvcGllZEJsb2NrKiBi
bG9jayA9IDA7Ci0gICAgaWYgKGFsbG9jYXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbk11c3RTdWNj
ZWVkKSB7Ci0gICAgICAgIGlmIChIZWFwQmxvY2sqIGhlYXBCbG9jayA9IG1faGVhcC0+YmxvY2tB
bGxvY2F0b3IoKS5hbGxvY2F0ZSgpKQotICAgICAgICAgICAgYmxvY2sgPSBuZXcgKE5vdE51bGws
IGhlYXBCbG9jaykgQ29waWVkQmxvY2soaGVhcEJsb2NrLT5tX2FsbG9jYXRpb24pOwotICAgICAg
ICBlbHNlIGlmICghYWxsb2NhdGVOZXdCbG9jaygmYmxvY2spKSB7Ci0gICAgICAgICAgICAqb3V0
QmxvY2sgPSAwOwotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIGlmIChhbGxvY2F0
aW9uRWZmb3J0ID09IEFsbG9jYXRpb25NdXN0U3VjY2VlZCkKKyAgICAgICAgYmxvY2sgPSBDb3Bp
ZWRCbG9jazo6Y3JlYXRlKG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZSgpKTsKKyAg
ICBlbHNlIHsKICAgICAgICAgQVNTRVJUKGFsbG9jYXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbkNh
bkZhaWwpOwogICAgICAgICBpZiAobV9oZWFwLT5zaG91bGRDb2xsZWN0KCkpCiAgICAgICAgICAg
ICBtX2hlYXAtPmNvbGxlY3QoSGVhcDo6RG9Ob3RTd2VlcCk7CkBAIC0yNDMsMTMgKzIzNywxMyBA
QCBDaGVja2VkQm9vbGVhbiBDb3BpZWRTcGFjZTo6Z2V0RnJlc2hCbG9jCiB2b2lkIENvcGllZFNw
YWNlOjpmcmVlQWxsQmxvY2tzKCkKIHsKICAgICB3aGlsZSAoIW1fdG9TcGFjZS0+aXNFbXB0eSgp
KQotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShtX3RvU3BhY2Ut
PnJlbW92ZUhlYWQoKSk7CisgICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9j
YXRlKENvcGllZEJsb2NrOjpkZXN0cm95KHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV90b1Nw
YWNlLT5yZW1vdmVIZWFkKCkpKSk7CiAKICAgICB3aGlsZSAoIW1fZnJvbVNwYWNlLT5pc0VtcHR5
KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKG1fZnJvbVNw
YWNlLT5yZW1vdmVIZWFkKCkpOworICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVh
bGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShzdGF0aWNfY2FzdDxDb3BpZWRCbG9jayo+KG1f
ZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCkpKSk7CiAKICAgICB3aGlsZSAoIW1fb3ZlcnNpemVCbG9j
a3MuaXNFbXB0eSgpKQotICAgICAgICBtX292ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKS0+bV9h
bGxvY2F0aW9uLmRlYWxsb2NhdGUoKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3koc3Rh
dGljX2Nhc3Q8Q29waWVkQmxvY2sqPihtX292ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKSkpLmRl
YWxsb2NhdGUoKTsKIH0KIAogc2l6ZV90IENvcGllZFNwYWNlOjpzaXplKCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9kcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9k
cy5oCShyZXZpc2lvbiAxMTgwNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3Bp
ZWRTcGFjZUlubGluZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBp
bmxpbmUgdm9pZCBDb3BpZWRTcGFjZTo6c3RhcnRlZENvcHlpbmcoCiAKIGlubGluZSB2b2lkIENv
cGllZFNwYWNlOjpyZWN5Y2xlQmxvY2soQ29waWVkQmxvY2sqIGJsb2NrKQogewotICAgIG1faGVh
cC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKGJsb2NrKTsKKyAgICBtX2hlYXAtPmJsb2Nr
QWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOwogCiAg
ICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2FuZWRCbG9ja3NMb2NrKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBCbG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBCbG9jay5oCShyZXZpc2lvbiAxMTgwNTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQmxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNyArMzYsNyBAQCBlbnVtIEFsbG9jYXRpb25FZmZvcnQgeyBBbGxvY2F0aW9uQ2Fu
RmFpCiAKIGNsYXNzIEhlYXBCbG9jayA6IHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxIZWFw
QmxvY2s+IHsKIHB1YmxpYzoKLSAgICBIZWFwQmxvY2soUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBh
bGxvY2F0aW9uKQorICAgIEhlYXBCbG9jayhjb25zdCBQYWdlQWxsb2NhdGlvbkFsaWduZWQmIGFs
bG9jYXRpb24pCiAgICAgICAgIDogRG91Ymx5TGlua2VkTGlzdE5vZGU8SGVhcEJsb2NrPigpCiAg
ICAgICAgICwgbV9wcmV2KDApCiAgICAgICAgICwgbV9uZXh0KDApCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDExODA1
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg2LDE3ICs4NiwxMSBAQCB2b2lkKiBNYXJrZWRBbGxvY2F0b3I6OmFs
bG9jYXRlU2xvd0Nhc2UoCiAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KLSAgICAKKwogTWFya2VkQmxvY2sqIE1hcmtlZEFsbG9jYXRvcjo6YWxsb2NhdGVCbG9jaygp
CiB7Ci0gICAgTWFya2VkQmxvY2sqIGJsb2NrID0gc3RhdGljX2Nhc3Q8TWFya2VkQmxvY2sqPiht
X2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2NhdGUoKSk7Ci0gICAgaWYgKGJsb2NrKQotICAg
ICAgICBibG9jayA9IE1hcmtlZEJsb2NrOjpyZWN5Y2xlKGJsb2NrLCBtX2hlYXAsIG1fY2VsbFNp
emUsIG1fY2VsbHNOZWVkRGVzdHJ1Y3Rpb24pOwotICAgIGVsc2UKLSAgICAgICAgYmxvY2sgPSBN
YXJrZWRCbG9jazo6Y3JlYXRlKG1faGVhcCwgbV9jZWxsU2l6ZSwgbV9jZWxsc05lZWREZXN0cnVj
dGlvbik7Ci0gICAgCisgICAgTWFya2VkQmxvY2sqIGJsb2NrID0gTWFya2VkQmxvY2s6OmNyZWF0
ZShtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2NhdGUoKSwgbV9oZWFwLCBtX2NlbGxTaXpl
LCBtX2NlbGxzTmVlZERlc3RydWN0aW9uKTsKICAgICBtX21hcmtlZFNwYWNlLT5kaWRBZGRCbG9j
ayhibG9jayk7Ci0gICAgCiAgICAgcmV0dXJuIGJsb2NrOwogfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAxMTgwNTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDI1ICszMiwyMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotTWFya2VkQmxvY2sqIE1h
cmtlZEJsb2NrOjpjcmVhdGUoSGVhcCogaGVhcCwgc2l6ZV90IGNlbGxTaXplLCBib29sIGNlbGxz
TmVlZERlc3RydWN0aW9uKQorTWFya2VkQmxvY2sqIE1hcmtlZEJsb2NrOjpjcmVhdGUoY29uc3Qg
UGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxvY2F0aW9uLCBIZWFwKiBoZWFwLCBzaXplX3QgY2Vs
bFNpemUsIGJvb2wgY2VsbHNOZWVkRGVzdHJ1Y3Rpb24pCiB7Ci0gICAgUGFnZUFsbG9jYXRpb25B
bGlnbmVkIGFsbG9jYXRpb24gPSBQYWdlQWxsb2NhdGlvbkFsaWduZWQ6OmFsbG9jYXRlKGJsb2Nr
U2l6ZSwgYmxvY2tTaXplLCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7Ci0gICAgaWYgKCFz
dGF0aWNfY2FzdDxib29sPihhbGxvY2F0aW9uKSkKLSAgICAgICAgQ1JBU0goKTsKICAgICByZXR1
cm4gbmV3IChOb3ROdWxsLCBhbGxvY2F0aW9uLmJhc2UoKSkgTWFya2VkQmxvY2soYWxsb2NhdGlv
biwgaGVhcCwgY2VsbFNpemUsIGNlbGxzTmVlZERlc3RydWN0aW9uKTsKIH0KIAotTWFya2VkQmxv
Y2sqIE1hcmtlZEJsb2NrOjpyZWN5Y2xlKE1hcmtlZEJsb2NrKiBibG9jaywgSGVhcCogaGVhcCwg
c2l6ZV90IGNlbGxTaXplLCBib29sIGNlbGxzTmVlZERlc3RydWN0aW9uKQorUGFnZUFsbG9jYXRp
b25BbGlnbmVkIE1hcmtlZEJsb2NrOjpkZXN0cm95KE1hcmtlZEJsb2NrKiBibG9jaykKIHsKLSAg
ICByZXR1cm4gbmV3IChOb3ROdWxsLCBibG9jaykgTWFya2VkQmxvY2soYmxvY2stPm1fYWxsb2Nh
dGlvbiwgaGVhcCwgY2VsbFNpemUsIGNlbGxzTmVlZERlc3RydWN0aW9uKTsKLX0KKyAgICBQYWdl
QWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbjsKKyAgICBzd2FwKGFsbG9jYXRpb24sIGJsb2Nr
LT5tX2FsbG9jYXRpb24pOwogCi12b2lkIE1hcmtlZEJsb2NrOjpkZXN0cm95KE1hcmtlZEJsb2Nr
KiBibG9jaykKLXsKLSAgICBibG9jay0+bV9hbGxvY2F0aW9uLmRlYWxsb2NhdGUoKTsKKyAgICBi
bG9jay0+fk1hcmtlZEJsb2NrKCk7CisgICAgcmV0dXJuIGFsbG9jYXRpb247CiB9CiAKLU1hcmtl
ZEJsb2NrOjpNYXJrZWRCbG9jayhQYWdlQWxsb2NhdGlvbkFsaWduZWQmIGFsbG9jYXRpb24sIEhl
YXAqIGhlYXAsIHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVjdGlvbikKK01h
cmtlZEJsb2NrOjpNYXJrZWRCbG9jayhjb25zdCBQYWdlQWxsb2NhdGlvbkFsaWduZWQmIGFsbG9j
YXRpb24sIEhlYXAqIGhlYXAsIHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVj
dGlvbikKICAgICA6IEhlYXBCbG9jayhhbGxvY2F0aW9uKQogICAgICwgbV9hdG9tc1BlckNlbGwo
KGNlbGxTaXplICsgYXRvbVNpemUgLSAxKSAvIGF0b21TaXplKQogICAgICwgbV9lbmRBdG9tKGF0
b21zUGVyQmxvY2sgLSBtX2F0b21zUGVyQ2VsbCArIDEpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDExODA1OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw5ICsx
MTIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFJldHVyblR5cGUgbV9jb3VudDsK
ICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMgTWFya2VkQmxvY2sqIGNyZWF0ZShIZWFwKiwg
c2l6ZV90IGNlbGxTaXplLCBib29sIGNlbGxzTmVlZERlc3RydWN0aW9uKTsKLSAgICAgICAgc3Rh
dGljIE1hcmtlZEJsb2NrKiByZWN5Y2xlKE1hcmtlZEJsb2NrKiwgSGVhcCosIHNpemVfdCBjZWxs
U2l6ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVjdGlvbik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koTWFya2VkQmxvY2sqKTsKKyAgICAgICAgc3RhdGljIE1hcmtlZEJsb2NrKiBjcmVhdGUo
Y29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiwgSGVhcCosIHNpemVfdCBjZWxsU2l6ZSwgYm9v
bCBjZWxsc05lZWREZXN0cnVjdGlvbik7CisgICAgICAgIHN0YXRpYyBQYWdlQWxsb2NhdGlvbkFs
aWduZWQgZGVzdHJveShNYXJrZWRCbG9jayopOwogCiAgICAgICAgIHN0YXRpYyBib29sIGlzQXRv
bUFsaWduZWQoY29uc3Qgdm9pZCopOwogICAgICAgICBzdGF0aWMgTWFya2VkQmxvY2sqIGJsb2Nr
Rm9yKGNvbnN0IHZvaWQqKTsKQEAgLTE4Nyw3ICsxODYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICB0eXBlZGVmIGNoYXIgQXRvbVthdG9tU2l6ZV07CiAKLSAgICAgICAgTWFya2VkQmxv
Y2soUGFnZUFsbG9jYXRpb25BbGlnbmVkJiwgSGVhcCosIHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBj
ZWxsc05lZWREZXN0cnVjdGlvbik7CisgICAgICAgIE1hcmtlZEJsb2NrKGNvbnN0IFBhZ2VBbGxv
Y2F0aW9uQWxpZ25lZCYsIEhlYXAqLCBzaXplX3QgY2VsbFNpemUsIGJvb2wgY2VsbHNOZWVkRGVz
dHJ1Y3Rpb24pOwogICAgICAgICBBdG9tKiBhdG9tcygpOwogICAgICAgICBzaXplX3QgYXRvbU51
bWJlcihjb25zdCB2b2lkKik7CiAgICAgICAgIHZvaWQgY2FsbERlc3RydWN0b3IoSlNDZWxsKik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCShyZXZp
c2lvbiAxMTgwNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBNYXJrZWRTcGFjZTo6ZnJl
ZUJsb2NrcyhNYXJrZWRCbG9jawogICAgICAgICBtX2Jsb2Nrcy5yZW1vdmUoYmxvY2spOwogICAg
ICAgICBibG9jay0+c3dlZXAoKTsKIAotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCku
ZGVhbGxvY2F0ZShibG9jayk7CisgICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFs
bG9jYXRlKE1hcmtlZEJsb2NrOjpkZXN0cm95KGJsb2NrKSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143397</attachid>
            <date>2012-05-22 16:37:53 -0700</date>
            <delta_ts>2012-05-22 16:59:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87172-20120522163752.patch</filename>
            <type>text/plain</type>
            <size>19681</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MDU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSArMSw3NyBAQAor
MjAxMi0wNS0yMiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAg
IENvcGllZEJsb2NrIGFuZCBNYXJrZWRCbG9jayBzaG91bGQgaGF2ZSBwcm9wZXIgdmFsdWUgc2Vt
YW50aWNzIChpLmUuLCBkZXN0cnVjdG9ycykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg3MTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBlbmFibGVzIE1hcmtlZEJsb2NrIHRvIG93biBub24tdHJp
dmlhbCBzdWItb2JqZWN0cyB0aGF0IHJlcXVpcmUKKyAgICAgICAgZGVzdHJ1Y3Rpb24uIEl0IGFs
c28gZml4ZXMgYSBGSVhNRSBhYm91dCBjYXN0aW5nIGEgQ29waWVkQmxvY2sgdG8gYQorICAgICAg
ICBNYXJrZWRCbG9jayBhdCBkZXN0cm95IHRpbWUuCisKKyAgICAgICAgQ29waWVkQmxvY2sgYW5k
IE1hcmtlZEJsb2NrIG5vdyBhY2NlcHQgYW4gYWxsb2NhdGlvbiBjaHVuayBhdCBjcmVhdGUKKyAg
ICAgICAgdGltZSBhbmQgcmV0dXJuIGl0IGF0IGRlc3Ryb3kgdGltZS4gVGhlaXIgY2xpZW50IGlz
IGV4cGVjdGVkIHRvCisgICAgICAgIGFsbG9jYXRlLCByZWN5Y2xlLCBhbmQgZGVzdHJveSB0aGVz
ZSBjaHVua3MuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6QmxvY2tBbGxvY2F0b3I6OnJlbGVhc2VGcmVlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6
QmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4pOiBEb24ndCBjYWxsIE1hcmtl
ZEJsb2NrOjpkZXN0cm95CisgICAgICAgIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgdG8gYmUgY2Fs
bGVkIGJlZm9yZSBhIGJsb2NrIGlzIHB1dCBvbiBvdXIgZnJlZQorICAgICAgICBsaXN0IG5vdy4g
RG8gbWFudWFsbHkgZGVhbGxvY2F0ZSBvdXIgYWxsb2NhdGlvbiBjaHVuayBiZWNhdXNlIHRoYXQn
cworICAgICAgICBvdXIgam9iIG5vdy4KKworICAgICAgICAqIGhlYXAvQmxvY2tBbGxvY2F0b3Iu
aDoKKyAgICAgICAgKEJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxvY2F0
b3I6OmFsbG9jYXRlKTogQWxsb2NhdGUgbmV2ZXIgZmFpbHMgbm93LiBUaGlzIGlzIGEKKyAgICAg
ICAgY2xlYW5lciBhYnN0cmFjdGlvbiBiZWNhdXNlIG9ubHkgb25lIG9iamVjdCBkb2VzIGFsbCB0
aGUgVk0gYWxsb2NhdGlvbgorICAgICAgICBhbmQgZGVhbGxvY2F0aW9uLiBDYWNoaW5nIGlzIGFu
IGltcGxlbWVudGF0aW9uIGRldGFpbC4KKworICAgICAgICAoSlNDOjpCbG9ja0FsbG9jYXRvcjo6
ZGVhbGxvY2F0ZSk6IFdlIHRha2UgYW4gYWxsb2NhdGlvbiBjaHVuayBhcmd1bWVudAorICAgICAg
ICBpbnN0ZWFkIG9mIGEgYmxvY2sgYmVjYXVzZSB3ZSBub3cgZXhwZWN0IHRoZSBibG9jayB0byBo
YXZlIGJlZW4gZGVzdHJveWVkIAorICAgICAgICBiZWZvcmUgd2UgcmVjeWNsZSBpdHMgbWVtb3J5
LiBGb3IgY29udmVuaWVuY2UsIHdlIHN0aWxsIHVzZSB0aGUgSGVhcEJsb2NrCisgICAgICAgIGNs
YXNzIGFzIG91ciBsaW5rZWQgbGlzdCBub2RlLiBUaGlzIGlzIE9LIGJlY2F1c2UgSGVhcEJsb2Nr
IGlzIGEgUE9EIHR5cGUuCisKKyAgICAgICAgKiBoZWFwL0NvcGllZEJsb2NrLmg6CisgICAgICAg
IChDb3BpZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpDb3BpZWRCbG9jazo6ZGVzdHJveSk6CisgICAgICAgIChKU0M6OkNvcGllZEJs
b2NrOjpDb3BpZWRCbG9jayk6IEFkZGVkIHByb3BlciBjcmVhdGUgYW5kIGRlc3Ryb3kgZnVuY3Rp
b25zLAorICAgICAgICB0byBtYXRjaCBNYXJrZWRCbG9jay4KKworICAgICAgICAqIGhlYXAvQ29w
aWVkU3BhY2UuY3BwOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6dHJ5QWxsb2NhdGVPdmVy
c2l6ZSk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjp0cnlSZWFsbG9jYXRlT3ZlcnNpemUp
OgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcpOgorICAgICAgICAoSlND
OjpDb3BpZWRTcGFjZTo6Z2V0RnJlc2hCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNl
OjpmcmVlQWxsQmxvY2tzKToKKyAgICAgICAgKiBoZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9k
cy5oOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6cmVjeWNsZUJsb2NrKTogTWFrZSBzdXJl
IHRvIGNhbGwgZGVzdHJveSBiZWZvcmUKKyAgICAgICAgcmV0dXJuaW5nIGEgYmxvY2sgdG8gdGhl
IEJsb2NrQWxsb2NhdG9yLiBPdGhlcndpc2UsIG91ciBkZXN0cnVjdG9ycworICAgICAgICB3b24n
dCBydW4uIChJZiB3ZSBnZXQgdGhpcyB3cm9uZyBub3csIHdlJ2xsIGdldCBhIGNvbXBpbGUgZXJy
b3IuKQorCisgICAgICAgICogaGVhcC9IZWFwQmxvY2suaDoKKyAgICAgICAgKEpTQzo6SGVhcEJs
b2NrOjpIZWFwQmxvY2spOiBjb25zdCEKKworICAgICAgICAqIGhlYXAvTWFya2VkQWxsb2NhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9yOjphbGxvY2F0ZUJsb2NrKTogTm8g
bmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuCisgICAgICAgIGNyZWF0ZSBhbmQgcmVjeWNsZSAt
LSBNYXJrZWRCbG9jayBhbHdheXMgYWNjZXB0cyBtZW1vcnkgYWxsb2NhdGVkIGJ5CisgICAgICAg
IGl0cyBjbGllbnQgbm93LgorCisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpjcmVhdGUpOiBEb24ndCBhbGxvY2F0ZSBtZW1vcnkgLS0g
d2UgYXNzdW1lIHRoYXQgd2UncmUKKyAgICAgICAgcGFzc2VkIGFscmVhZHktYWxsb2NhdGVkIG1l
bW9yeSwgdG8gY2xhcmlmeSB0aGUgcmVzcG9uc2liaWxpdHkgZm9yIFZNCisgICAgICAgIHJlY3lj
bGluZy4KKworICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6ZGVzdHJveSk6IERvIHJ1biBvdXIg
ZGVzdHJ1Y3RvciBiZWZvcmUgZ2l2aW5nIGJhY2sKKyAgICAgICAgb3VyIFZNIC0tIHRoYXQgaXMg
dGhlIHdob2xlIHBvaW50IG9mIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKEpTQzo6TWFya2VkQmxv
Y2s6Ok1hcmtlZEJsb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAgICAg
IChNYXJrZWRCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5jcHA6IGNvbnN0IQor
CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpmcmVlQmxvY2tzKTogTWFrZSBzdXJlIHRvIGNh
bGwgZGVzdHJveSBiZWZvcmUKKyAgICAgICAgcmV0dXJuaW5nIGEgYmxvY2sgdG8gdGhlIEJsb2Nr
QWxsb2NhdG9yLiBPdGhlcndpc2UsIG91ciBkZXN0cnVjdG9ycworICAgICAgICB3b24ndCBydW4u
IChJZiB3ZSBnZXQgdGhpcyB3cm9uZyBub3csIHdlJ2xsIGdldCBhIGNvbXBpbGUgZXJyb3IuKQor
CiA9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VMb2ctMjAxMi0wNS0yMiA9PQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTE4
MDU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQmxvY2tBbGxvY2F0b3IuaCIKIAotI2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTQsMTQgKzUz
LDEzIEBAIEJsb2NrQWxsb2NhdG9yOjp+QmxvY2tBbGxvY2F0b3IoKQogdm9pZCBCbG9ja0FsbG9j
YXRvcjo6cmVsZWFzZUZyZWVCbG9ja3MoKQogewogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IE1hcmtlZEJsb2NrKiBibG9jazsKKyAgICAgICAgSGVhcEJsb2NrKiBibG9jazsKICAgICAgICAg
ewogICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnJlZUJsb2NrTG9jayk7CiAgICAg
ICAgICAgICBpZiAoIW1fbnVtYmVyT2ZGcmVlQmxvY2tzKQogICAgICAgICAgICAgICAgIGJsb2Nr
ID0gMDsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIb3cg
ZG8gd2Uga25vdyB0aGlzIGlzIGEgTWFya2VkQmxvY2s/IEl0IGNvdWxkIGJlIGEgQ29waWVkQmxv
Y2suCi0gICAgICAgICAgICAgICAgYmxvY2sgPSBzdGF0aWNfY2FzdDxNYXJrZWRCbG9jayo+KG1f
ZnJlZUJsb2Nrcy5yZW1vdmVIZWFkKCkpOworICAgICAgICAgICAgICAgIGJsb2NrID0gbV9mcmVl
QmxvY2tzLnJlbW92ZUhlYWQoKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoYmxvY2spOwogICAg
ICAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmVlQmxvY2tzLS07CiAgICAgICAgICAgICB9CkBAIC02
OSw4ICs2Nyw4IEBAIHZvaWQgQmxvY2tBbGxvY2F0b3I6OnJlbGVhc2VGcmVlQmxvY2tzKCkKICAg
ICAgICAgCiAgICAgICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Ci0gICAgICAgIE1hcmtlZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKKworICAgICAgICBibG9jay0+
bV9hbGxvY2F0aW9uLmRlYWxsb2NhdGUoKTsKICAgICB9CiB9CiAKQEAgLTEyMCwxNCArMTE4LDEz
IEBAIHZvaWQgQmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE0KICAgICAgICAgc2l6
ZV90IGRlc2lyZWROdW1iZXJPZkZyZWVCbG9ja3MgPSBjdXJyZW50TnVtYmVyT2ZGcmVlQmxvY2tz
IC8gMjsKICAgICAgICAgCiAgICAgICAgIHdoaWxlICghbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91
bGRRdWl0KSB7Ci0gICAgICAgICAgICBNYXJrZWRCbG9jayogYmxvY2s7CisgICAgICAgICAgICBI
ZWFwQmxvY2sqIGJsb2NrOwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2ZyZWVCbG9ja0xvY2spOwogICAgICAgICAgICAgICAgIGlmIChtX251bWJl
ck9mRnJlZUJsb2NrcyA8PSBkZXNpcmVkTnVtYmVyT2ZGcmVlQmxvY2tzKQogICAgICAgICAgICAg
ICAgICAgICBibG9jayA9IDA7CiAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBIb3cgZG8gd2Uga25vdyB0aGlzIGlzIGEgTWFya2VkQmxvY2s/IEl0
IGNvdWxkIGJlIGEgQ29waWVkQmxvY2suCi0gICAgICAgICAgICAgICAgICAgIGJsb2NrID0gc3Rh
dGljX2Nhc3Q8TWFya2VkQmxvY2sqPihtX2ZyZWVCbG9ja3MucmVtb3ZlSGVhZCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgYmxvY2sgPSBtX2ZyZWVCbG9ja3MucmVtb3ZlSGVhZCgpOwogICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoYmxvY2spOwogICAgICAgICAgICAgICAgICAgICBtX251bWJl
ck9mRnJlZUJsb2Nrcy0tOwogICAgICAgICAgICAgICAgIH0KQEAgLTEzNiw3ICsxMzMsNyBAQCB2
b2lkIEJsb2NrQWxsb2NhdG9yOjpibG9ja0ZyZWVpbmdUaHJlYWRNCiAgICAgICAgICAgICBpZiAo
IWJsb2NrKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBNYXJrZWRCbG9jazo6ZGVzdHJveShibG9jayk7CisgICAgICAgICAgICBibG9jay0+bV9hbGxv
Y2F0aW9uLmRlYWxsb2NhdGUoKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAkocmV2aXNpb24gMTE4MDU4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsMTQgKzI2LDE0IEBACiAjaWZuZGVmIEJsb2NrQWxsb2NhdG9yX2gKICNkZWZp
bmUgQmxvY2tBbGxvY2F0b3JfaAogCisjaW5jbHVkZSAiSGVhcEJsb2NrLmgiCiAjaW5jbHVkZSA8
d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9QYWdlQWxsb2NhdGlvbkFsaWduZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBIZWFwQmxvY2s7Ci0KIC8vIFNpbXBsZSBh
bGxvY2F0b3IgdG8gcmVkdWNlIFZNIGNvc3QgYnkgaG9sZGluZyBvbnRvIGJsb2NrcyBvZiBtZW1v
cnkgZm9yCiAvLyBzaG9ydCBwZXJpb2RzIG9mIHRpbWUgYW5kIHRoZW4gZnJlZWluZyB0aGVtIG9u
IGEgc2Vjb25kYXJ5IHRocmVhZC4KIApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAgICAgQmxv
Y2tBbGxvY2F0b3IoKTsKICAgICB+QmxvY2tBbGxvY2F0b3IoKTsKIAotICAgIEhlYXBCbG9jayog
YWxsb2NhdGUoKTsKLSAgICB2b2lkIGRlYWxsb2NhdGUoSGVhcEJsb2NrKik7CisgICAgUGFnZUFs
bG9jYXRpb25BbGlnbmVkIGFsbG9jYXRlKCk7CisgICAgdm9pZCBkZWFsbG9jYXRlKFBhZ2VBbGxv
Y2F0aW9uQWxpZ25lZCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB3YWl0Rm9yUmVsYXRpdmVUaW1l
V2hpbGVIb2xkaW5nTG9jayhkb3VibGUgcmVsYXRpdmUpOwpAQCAtNjMsMjQgKzYzLDI4IEBAIHBy
aXZhdGU6CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX2Jsb2NrRnJlZWluZ1RocmVhZDsKIH07CiAK
LWlubGluZSBIZWFwQmxvY2sqIEJsb2NrQWxsb2NhdG9yOjphbGxvY2F0ZSgpCitpbmxpbmUgUGFn
ZUFsbG9jYXRpb25BbGlnbmVkIEJsb2NrQWxsb2NhdG9yOjphbGxvY2F0ZSgpCiB7CiAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fZnJlZUJsb2NrTG9jayk7CiAgICAgbV9pc0N1cnJlbnRseUFsbG9j
YXRpbmcgPSB0cnVlOwotICAgIGlmICghbV9udW1iZXJPZkZyZWVCbG9ja3MpIHsKLSAgICAgICAg
QVNTRVJUKG1fZnJlZUJsb2Nrcy5pc0VtcHR5KCkpOwotICAgICAgICByZXR1cm4gMDsKKyAgICBp
ZiAobV9udW1iZXJPZkZyZWVCbG9ja3MpIHsKKyAgICAgICAgQVNTRVJUKCFtX2ZyZWVCbG9ja3Mu
aXNFbXB0eSgpKTsKKyAgICAgICAgbV9udW1iZXJPZkZyZWVCbG9ja3MtLTsKKyAgICAgICAgcmV0
dXJuIG1fZnJlZUJsb2Nrcy5yZW1vdmVIZWFkKCktPm1fYWxsb2NhdGlvbjsKICAgICB9CiAKLSAg
ICBBU1NFUlQoIW1fZnJlZUJsb2Nrcy5pc0VtcHR5KCkpOwotICAgIG1fbnVtYmVyT2ZGcmVlQmxv
Y2tzLS07Ci0gICAgcmV0dXJuIG1fZnJlZUJsb2Nrcy5yZW1vdmVIZWFkKCk7CisgICAgQVNTRVJU
KG1fZnJlZUJsb2Nrcy5pc0VtcHR5KCkpOworICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxv
Y2F0aW9uID0gUGFnZUFsbG9jYXRpb25BbGlnbmVkOjphbGxvY2F0ZShIZWFwQmxvY2s6OnNfYmxv
Y2tTaXplLCBIZWFwQmxvY2s6OnNfYmxvY2tTaXplLCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdl
cyk7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihhbGxvY2F0aW9uKSkKKyAgICAgICAgQ1JB
U0goKTsKKyAgICByZXR1cm4gYWxsb2NhdGlvbjsKIH0KIAotaW5saW5lIHZvaWQgQmxvY2tBbGxv
Y2F0b3I6OmRlYWxsb2NhdGUoSGVhcEJsb2NrKiBibG9jaykKK2lubGluZSB2b2lkIEJsb2NrQWxs
b2NhdG9yOjpkZWFsbG9jYXRlKFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0aW9uKQogewog
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ZyZWVCbG9ja0xvY2spOwotICAgIG1fZnJlZUJsb2Nr
cy5wdXNoKGJsb2NrKTsKKyAgICBIZWFwQmxvY2sqIGhlYXBCbG9jayA9IG5ldyhOb3ROdWxsLCBh
bGxvY2F0aW9uLmJhc2UoKSkgSGVhcEJsb2NrKGFsbG9jYXRpb24pOworICAgIG1fZnJlZUJsb2Nr
cy5wdXNoKGhlYXBCbG9jayk7CiAgICAgbV9udW1iZXJPZkZyZWVCbG9ja3MrKzsKIH0KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCShyZXZpc2lvbiAxMTgw
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCwzMiArMzgsNTEgQEAgY2xhc3MgQ29waWVkQmxvY2sgOiBwdWJsaWMgSGVh
cEJsb2NrIHsKICAgICBmcmllbmQgY2xhc3MgQ29waWVkU3BhY2U7CiAgICAgZnJpZW5kIGNsYXNz
IENvcGllZEFsbG9jYXRvcjsKIHB1YmxpYzoKLSAgICBDb3BpZWRCbG9jayhQYWdlQWxsb2NhdGlv
bkFsaWduZWQmIGFsbG9jYXRpb24pCi0gICAgICAgIDogSGVhcEJsb2NrKGFsbG9jYXRpb24pCi0g
ICAgICAgICwgbV9vZmZzZXQocGF5bG9hZCgpKQotICAgICAgICAsIG1faXNQaW5uZWQoZmFsc2Up
Ci0gICAgewotICAgICAgICBBU1NFUlQoaXM4Qnl0ZUFsaWduZWQoc3RhdGljX2Nhc3Q8dm9pZCo+
KG1fb2Zmc2V0KSkpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGNoYXIqIG9mZnNldCA9
IHN0YXRpY19jYXN0PGNoYXIqPihtX29mZnNldCk7Ci0gICAgICAgIG1lbXNldChzdGF0aWNfY2Fz
dDx2b2lkKj4ob2Zmc2V0KSwgMCwgc3RhdGljX2Nhc3Q8c2l6ZV90PigocmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4odGhpcykgKyBhbGxvY2F0aW9uLnNpemUoKSkgLSBvZmZzZXQpKTsKLSNlbHNlCi0g
ICAgICAgIEpTVmFsdWUgZW1wdHlWYWx1ZTsKLSAgICAgICAgSlNWYWx1ZSogbGltaXQgPSByZWlu
dGVycHJldF9jYXN0X3B0cjxKU1ZhbHVlKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykg
KyBhbGxvY2F0aW9uLnNpemUoKSk7Ci0gICAgICAgIGZvciAoSlNWYWx1ZSogY3VycmVudFZhbHVl
ID0gcmVpbnRlcnByZXRfY2FzdDxKU1ZhbHVlKj4obV9vZmZzZXQpOyBjdXJyZW50VmFsdWUgPCBs
aW1pdDsgY3VycmVudFZhbHVlKyspCi0gICAgICAgICAgICAqY3VycmVudFZhbHVlID0gZW1wdHlW
YWx1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBzdGF0aWMgQ29waWVkQmxvY2sqIGNyZWF0ZShjb25z
dCBQYWdlQWxsb2NhdGlvbkFsaWduZWQmKTsKKyAgICBzdGF0aWMgUGFnZUFsbG9jYXRpb25BbGln
bmVkIGRlc3Ryb3koQ29waWVkQmxvY2sqKTsKIAogICAgIGNoYXIqIHBheWxvYWQoKTsKICAgICBz
aXplX3Qgc2l6ZSgpOwogICAgIHNpemVfdCBjYXBhY2l0eSgpOwogCiBwcml2YXRlOgorICAgIENv
cGllZEJsb2NrKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYpOworCiAgICAgdm9pZCogbV9v
ZmZzZXQ7CiAgICAgdWludHB0cl90IG1faXNQaW5uZWQ7CiB9OwogCitpbmxpbmUgQ29waWVkQmxv
Y2sqIENvcGllZEJsb2NrOjpjcmVhdGUoY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxv
Y2F0aW9uKQoreworICAgIHJldHVybiBuZXcoTm90TnVsbCwgYWxsb2NhdGlvbi5iYXNlKCkpIENv
cGllZEJsb2NrKGFsbG9jYXRpb24pOworfQorCitpbmxpbmUgUGFnZUFsbG9jYXRpb25BbGlnbmVk
IENvcGllZEJsb2NrOjpkZXN0cm95KENvcGllZEJsb2NrKiBibG9jaykKK3sKKyAgICBQYWdlQWxs
b2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbjsKKyAgICBzd2FwKGFsbG9jYXRpb24sIGJsb2NrLT5t
X2FsbG9jYXRpb24pOworCisgICAgYmxvY2stPn5Db3BpZWRCbG9jaygpOworICAgIHJldHVybiBh
bGxvY2F0aW9uOworfQorCitpbmxpbmUgQ29waWVkQmxvY2s6OkNvcGllZEJsb2NrKGNvbnN0IFBh
Z2VBbGxvY2F0aW9uQWxpZ25lZCYgYWxsb2NhdGlvbikKKyAgICA6IEhlYXBCbG9jayhhbGxvY2F0
aW9uKQorICAgICwgbV9vZmZzZXQocGF5bG9hZCgpKQorICAgICwgbV9pc1Bpbm5lZChmYWxzZSkK
K3sKKyAgICBBU1NFUlQoaXM4Qnl0ZUFsaWduZWQoc3RhdGljX2Nhc3Q8dm9pZCo+KG1fb2Zmc2V0
KSkpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2hhciogb2Zmc2V0ID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KG1fb2Zmc2V0KTsKKyAgICBtZW1zZXQoc3RhdGljX2Nhc3Q8dm9pZCo+KG9mZnNldCks
IDAsIHN0YXRpY19jYXN0PHNpemVfdD4oKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsg
YWxsb2NhdGlvbi5zaXplKCkpIC0gb2Zmc2V0KSk7CisjZWxzZQorICAgIEpTVmFsdWUgZW1wdHlW
YWx1ZTsKKyAgICBKU1ZhbHVlKiBsaW1pdCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEpTVmFsdWUq
PihyZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGFsbG9jYXRpb24uc2l6ZSgpKTsKKyAg
ICBmb3IgKEpTVmFsdWUqIGN1cnJlbnRWYWx1ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNWYWx1ZSo+
KG1fb2Zmc2V0KTsgY3VycmVudFZhbHVlIDwgbGltaXQ7IGN1cnJlbnRWYWx1ZSsrKQorICAgICAg
ICAqY3VycmVudFZhbHVlID0gZW1wdHlWYWx1ZTsKKyNlbmRpZgorfQorCiBpbmxpbmUgY2hhciog
Q29waWVkQmxvY2s6OnBheWxvYWQoKQogewogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPih0aGlzKSArICgoc2l6ZW9mKENvcGllZEJsb2NrKSArIDcpICYgfjcpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTE4MDU4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIENoZWNrZWRCb29sZWFuIENvcGllZFNwYWNlOjp0cnlB
bGxvY2F0ZU8KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIENvcGllZEJsb2Nr
KiBibG9jayA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGlvbi5iYXNlKCkpIENvcGllZEJsb2NrKGFs
bG9jYXRpb24pOworICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZEJsb2NrOjpjcmVhdGUo
YWxsb2NhdGlvbik7CiAgICAgbV9vdmVyc2l6ZUJsb2Nrcy5wdXNoKGJsb2NrKTsKICAgICBtX292
ZXJzaXplRmlsdGVyLmFkZChyZWludGVycHJldF9jYXN0PEJpdHM+KGJsb2NrKSk7CiAgICAgCkBA
IC0xMzUsNyArMTM1LDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3BhY2U6OnRyeVJlYWxsb2Nh
dAogICAgIGlmIChpc092ZXJzaXplKG9sZFNpemUpKSB7CiAgICAgICAgIENvcGllZEJsb2NrKiBv
bGRCbG9jayA9IG92ZXJzaXplQmxvY2tGb3Iob2xkUHRyKTsKICAgICAgICAgbV9vdmVyc2l6ZUJs
b2Nrcy5yZW1vdmUob2xkQmxvY2spOwotICAgICAgICBvbGRCbG9jay0+bV9hbGxvY2F0aW9uLmRl
YWxsb2NhdGUoKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3kob2xkQmxvY2spLmRlYWxs
b2NhdGUoKTsKICAgICB9CiAgICAgCiAgICAgKnB0ciA9IG5ld1B0cjsKQEAgLTE5MSw3ICsxOTEs
NyBAQCB2b2lkIENvcGllZFNwYWNlOjpkb25lQ29weWluZygpCiAgICAgICAgIH0KIAogICAgICAg
ICBtX3RvU3BhY2VTZXQucmVtb3ZlKGJsb2NrKTsKLSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmRlYWxsb2NhdGUoYmxvY2spOworICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9y
KCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOwogICAgIH0KIAogICAg
IENvcGllZEJsb2NrKiBjdXJyID0gc3RhdGljX2Nhc3Q8Q29waWVkQmxvY2sqPihtX292ZXJzaXpl
QmxvY2tzLmhlYWQoKSk7CkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9u
ZUNvcHlpbmcoKQogICAgICAgICBDb3BpZWRCbG9jayogbmV4dCA9IHN0YXRpY19jYXN0PENvcGll
ZEJsb2NrKj4oY3Vyci0+bmV4dCgpKTsKICAgICAgICAgaWYgKCFjdXJyLT5tX2lzUGlubmVkKSB7
CiAgICAgICAgICAgICBtX292ZXJzaXplQmxvY2tzLnJlbW92ZShjdXJyKTsKLSAgICAgICAgICAg
IGN1cnItPm1fYWxsb2NhdGlvbi5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBDb3BpZWRCbG9j
azo6ZGVzdHJveShjdXJyKS5kZWFsbG9jYXRlKCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgY3Vyci0+bV9pc1Bpbm5lZCA9IGZhbHNlOwogICAgICAgICBjdXJyID0gbmV4dDsKQEAgLTIx
NSwxNSArMjE1LDkgQEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcoKQogQ2hlY2tlZEJv
b2xlYW4gQ29waWVkU3BhY2U6OmdldEZyZXNoQmxvY2soQWxsb2NhdGlvbkVmZm9ydCBhbGxvY2F0
aW9uRWZmb3J0LCBDb3BpZWRCbG9jayoqIG91dEJsb2NrKQogewogICAgIENvcGllZEJsb2NrKiBi
bG9jayA9IDA7Ci0gICAgaWYgKGFsbG9jYXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbk11c3RTdWNj
ZWVkKSB7Ci0gICAgICAgIGlmIChIZWFwQmxvY2sqIGhlYXBCbG9jayA9IG1faGVhcC0+YmxvY2tB
bGxvY2F0b3IoKS5hbGxvY2F0ZSgpKQotICAgICAgICAgICAgYmxvY2sgPSBuZXcgKE5vdE51bGws
IGhlYXBCbG9jaykgQ29waWVkQmxvY2soaGVhcEJsb2NrLT5tX2FsbG9jYXRpb24pOwotICAgICAg
ICBlbHNlIGlmICghYWxsb2NhdGVOZXdCbG9jaygmYmxvY2spKSB7Ci0gICAgICAgICAgICAqb3V0
QmxvY2sgPSAwOwotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIGlmIChhbGxvY2F0
aW9uRWZmb3J0ID09IEFsbG9jYXRpb25NdXN0U3VjY2VlZCkKKyAgICAgICAgYmxvY2sgPSBDb3Bp
ZWRCbG9jazo6Y3JlYXRlKG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZSgpKTsKKyAg
ICBlbHNlIHsKICAgICAgICAgQVNTRVJUKGFsbG9jYXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbkNh
bkZhaWwpOwogICAgICAgICBpZiAobV9oZWFwLT5zaG91bGRDb2xsZWN0KCkpCiAgICAgICAgICAg
ICBtX2hlYXAtPmNvbGxlY3QoSGVhcDo6RG9Ob3RTd2VlcCk7CkBAIC0yNDMsMTMgKzIzNywxMyBA
QCBDaGVja2VkQm9vbGVhbiBDb3BpZWRTcGFjZTo6Z2V0RnJlc2hCbG9jCiB2b2lkIENvcGllZFNw
YWNlOjpmcmVlQWxsQmxvY2tzKCkKIHsKICAgICB3aGlsZSAoIW1fdG9TcGFjZS0+aXNFbXB0eSgp
KQotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShtX3RvU3BhY2Ut
PnJlbW92ZUhlYWQoKSk7CisgICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9j
YXRlKENvcGllZEJsb2NrOjpkZXN0cm95KHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV90b1Nw
YWNlLT5yZW1vdmVIZWFkKCkpKSk7CiAKICAgICB3aGlsZSAoIW1fZnJvbVNwYWNlLT5pc0VtcHR5
KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKG1fZnJvbVNw
YWNlLT5yZW1vdmVIZWFkKCkpOworICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVh
bGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShzdGF0aWNfY2FzdDxDb3BpZWRCbG9jayo+KG1f
ZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCkpKSk7CiAKICAgICB3aGlsZSAoIW1fb3ZlcnNpemVCbG9j
a3MuaXNFbXB0eSgpKQotICAgICAgICBtX292ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKS0+bV9h
bGxvY2F0aW9uLmRlYWxsb2NhdGUoKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3koc3Rh
dGljX2Nhc3Q8Q29waWVkQmxvY2sqPihtX292ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKSkpLmRl
YWxsb2NhdGUoKTsKIH0KIAogc2l6ZV90IENvcGllZFNwYWNlOjpzaXplKCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9kcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9k
cy5oCShyZXZpc2lvbiAxMTgwNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3Bp
ZWRTcGFjZUlubGluZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBp
bmxpbmUgdm9pZCBDb3BpZWRTcGFjZTo6c3RhcnRlZENvcHlpbmcoCiAKIGlubGluZSB2b2lkIENv
cGllZFNwYWNlOjpyZWN5Y2xlQmxvY2soQ29waWVkQmxvY2sqIGJsb2NrKQogewotICAgIG1faGVh
cC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKGJsb2NrKTsKKyAgICBtX2hlYXAtPmJsb2Nr
QWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOwogCiAg
ICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2FuZWRCbG9ja3NMb2NrKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBCbG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBCbG9jay5oCShyZXZpc2lvbiAxMTgwNTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQmxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsMTMgKzM2LDEzIEBAIGVudW0gQWxsb2NhdGlvbkVmZm9ydCB7IEFsbG9jYXRpb25D
YW5GYWkKIAogY2xhc3MgSGVhcEJsb2NrIDogcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPEhl
YXBCbG9jaz4gewogcHVibGljOgotICAgIEhlYXBCbG9jayhQYWdlQWxsb2NhdGlvbkFsaWduZWQm
IGFsbG9jYXRpb24pCisgICAgSGVhcEJsb2NrKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYg
YWxsb2NhdGlvbikKICAgICAgICAgOiBEb3VibHlMaW5rZWRMaXN0Tm9kZTxIZWFwQmxvY2s+KCkK
ICAgICAgICAgLCBtX3ByZXYoMCkKICAgICAgICAgLCBtX25leHQoMCkKICAgICAgICAgLCBtX2Fs
bG9jYXRpb24oYWxsb2NhdGlvbikKICAgICB7Ci0gICAgICAgIEFTU0VSVChhbGxvY2F0aW9uKTsK
KyAgICAgICAgQVNTRVJUKG1fYWxsb2NhdGlvbik7CiAgICAgfQogCiAgICAgSGVhcEJsb2NrKiBt
X3ByZXY7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9j
YXRvci5jcHAJKHJldmlzaW9uIDExODA1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtlZEFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDE3ICs4NiwxMSBAQCB2
b2lkKiBNYXJrZWRBbGxvY2F0b3I6OmFsbG9jYXRlU2xvd0Nhc2UoCiAgICAgQVNTRVJUKHJlc3Vs
dCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLSAgICAKKwogTWFya2VkQmxvY2sqIE1hcmtlZEFs
bG9jYXRvcjo6YWxsb2NhdGVCbG9jaygpCiB7Ci0gICAgTWFya2VkQmxvY2sqIGJsb2NrID0gc3Rh
dGljX2Nhc3Q8TWFya2VkQmxvY2sqPihtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2NhdGUo
KSk7Ci0gICAgaWYgKGJsb2NrKQotICAgICAgICBibG9jayA9IE1hcmtlZEJsb2NrOjpyZWN5Y2xl
KGJsb2NrLCBtX2hlYXAsIG1fY2VsbFNpemUsIG1fY2VsbHNOZWVkRGVzdHJ1Y3Rpb24pOwotICAg
IGVsc2UKLSAgICAgICAgYmxvY2sgPSBNYXJrZWRCbG9jazo6Y3JlYXRlKG1faGVhcCwgbV9jZWxs
U2l6ZSwgbV9jZWxsc05lZWREZXN0cnVjdGlvbik7Ci0gICAgCisgICAgTWFya2VkQmxvY2sqIGJs
b2NrID0gTWFya2VkQmxvY2s6OmNyZWF0ZShtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2Nh
dGUoKSwgbV9oZWFwLCBtX2NlbGxTaXplLCBtX2NlbGxzTmVlZERlc3RydWN0aW9uKTsKICAgICBt
X21hcmtlZFNwYWNlLT5kaWRBZGRCbG9jayhibG9jayk7Ci0gICAgCiAgICAgcmV0dXJuIGJsb2Nr
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3Bw
CShyZXZpc2lvbiAxMTgwNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDI1ICszMiwyMSBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotTWFya2VkQmxvY2sqIE1hcmtlZEJsb2NrOjpjcmVhdGUoSGVhcCogaGVhcCwgc2l6
ZV90IGNlbGxTaXplLCBib29sIGNlbGxzTmVlZERlc3RydWN0aW9uKQorTWFya2VkQmxvY2sqIE1h
cmtlZEJsb2NrOjpjcmVhdGUoY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxvY2F0aW9u
LCBIZWFwKiBoZWFwLCBzaXplX3QgY2VsbFNpemUsIGJvb2wgY2VsbHNOZWVkRGVzdHJ1Y3Rpb24p
CiB7Ci0gICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkIGFsbG9jYXRpb24gPSBQYWdlQWxsb2NhdGlv
bkFsaWduZWQ6OmFsbG9jYXRlKGJsb2NrU2l6ZSwgYmxvY2tTaXplLCBPU0FsbG9jYXRvcjo6SlNH
Q0hlYXBQYWdlcyk7Ci0gICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihhbGxvY2F0aW9uKSkKLSAg
ICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBhbGxvY2F0aW9uLmJhc2Uo
KSkgTWFya2VkQmxvY2soYWxsb2NhdGlvbiwgaGVhcCwgY2VsbFNpemUsIGNlbGxzTmVlZERlc3Ry
dWN0aW9uKTsKIH0KIAotTWFya2VkQmxvY2sqIE1hcmtlZEJsb2NrOjpyZWN5Y2xlKE1hcmtlZEJs
b2NrKiBibG9jaywgSGVhcCogaGVhcCwgc2l6ZV90IGNlbGxTaXplLCBib29sIGNlbGxzTmVlZERl
c3RydWN0aW9uKQorUGFnZUFsbG9jYXRpb25BbGlnbmVkIE1hcmtlZEJsb2NrOjpkZXN0cm95KE1h
cmtlZEJsb2NrKiBibG9jaykKIHsKLSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBibG9jaykgTWFy
a2VkQmxvY2soYmxvY2stPm1fYWxsb2NhdGlvbiwgaGVhcCwgY2VsbFNpemUsIGNlbGxzTmVlZERl
c3RydWN0aW9uKTsKLX0KKyAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbjsKKyAg
ICBzd2FwKGFsbG9jYXRpb24sIGJsb2NrLT5tX2FsbG9jYXRpb24pOwogCi12b2lkIE1hcmtlZEJs
b2NrOjpkZXN0cm95KE1hcmtlZEJsb2NrKiBibG9jaykKLXsKLSAgICBibG9jay0+bV9hbGxvY2F0
aW9uLmRlYWxsb2NhdGUoKTsKKyAgICBibG9jay0+fk1hcmtlZEJsb2NrKCk7CisgICAgcmV0dXJu
IGFsbG9jYXRpb247CiB9CiAKLU1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayhQYWdlQWxsb2NhdGlv
bkFsaWduZWQmIGFsbG9jYXRpb24sIEhlYXAqIGhlYXAsIHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBj
ZWxsc05lZWREZXN0cnVjdGlvbikKK01hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayhjb25zdCBQYWdl
QWxsb2NhdGlvbkFsaWduZWQmIGFsbG9jYXRpb24sIEhlYXAqIGhlYXAsIHNpemVfdCBjZWxsU2l6
ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVjdGlvbikKICAgICA6IEhlYXBCbG9jayhhbGxvY2F0aW9u
KQogICAgICwgbV9hdG9tc1BlckNlbGwoKGNlbGxTaXplICsgYXRvbVNpemUgLSAxKSAvIGF0b21T
aXplKQogICAgICwgbV9lbmRBdG9tKGF0b21zUGVyQmxvY2sgLSBtX2F0b21zUGVyQ2VsbCArIDEp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9u
IDExODA1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdv
cmtpbmcgY29weSkKQEAgLTExMiw5ICsxMTIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIFJldHVyblR5cGUgbV9jb3VudDsKICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMgTWFy
a2VkQmxvY2sqIGNyZWF0ZShIZWFwKiwgc2l6ZV90IGNlbGxTaXplLCBib29sIGNlbGxzTmVlZERl
c3RydWN0aW9uKTsKLSAgICAgICAgc3RhdGljIE1hcmtlZEJsb2NrKiByZWN5Y2xlKE1hcmtlZEJs
b2NrKiwgSGVhcCosIHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVjdGlvbik7
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koTWFya2VkQmxvY2sqKTsKKyAgICAgICAgc3Rh
dGljIE1hcmtlZEJsb2NrKiBjcmVhdGUoY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiwgSGVh
cCosIHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVjdGlvbik7CisgICAgICAg
IHN0YXRpYyBQYWdlQWxsb2NhdGlvbkFsaWduZWQgZGVzdHJveShNYXJrZWRCbG9jayopOwogCiAg
ICAgICAgIHN0YXRpYyBib29sIGlzQXRvbUFsaWduZWQoY29uc3Qgdm9pZCopOwogICAgICAgICBz
dGF0aWMgTWFya2VkQmxvY2sqIGJsb2NrRm9yKGNvbnN0IHZvaWQqKTsKQEAgLTE4Nyw3ICsxODYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVmIGNoYXIgQXRvbVthdG9tU2l6
ZV07CiAKLSAgICAgICAgTWFya2VkQmxvY2soUGFnZUFsbG9jYXRpb25BbGlnbmVkJiwgSGVhcCos
IHNpemVfdCBjZWxsU2l6ZSwgYm9vbCBjZWxsc05lZWREZXN0cnVjdGlvbik7CisgICAgICAgIE1h
cmtlZEJsb2NrKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYsIEhlYXAqLCBzaXplX3QgY2Vs
bFNpemUsIGJvb2wgY2VsbHNOZWVkRGVzdHJ1Y3Rpb24pOwogICAgICAgICBBdG9tKiBhdG9tcygp
OwogICAgICAgICBzaXplX3QgYXRvbU51bWJlcihjb25zdCB2b2lkKik7CiAgICAgICAgIHZvaWQg
Y2FsbERlc3RydWN0b3IoSlNDZWxsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya2VkU3BhY2UuY3BwCShyZXZpc2lvbiAxMTgwNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBNYXJrZWRTcGFjZTo6ZnJlZUJsb2NrcyhNYXJrZWRCbG9jawogICAgICAgICBtX2Js
b2Nrcy5yZW1vdmUoYmxvY2spOwogICAgICAgICBibG9jay0+c3dlZXAoKTsKIAotICAgICAgICBt
X2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShibG9jayk7CisgICAgICAgIG1faGVh
cC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKE1hcmtlZEJsb2NrOjpkZXN0cm95KGJsb2Nr
KSk7CiAgICAgfQogfQogCg==
</data>
<flag name="review"
          id="149965"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>