<?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>26039</bug_id>
          
          <creation_ts>2009-05-27 00:50:10 -0700</creation_ts>
          <short_desc>[GTK] WebKitWebHistoryItem lifetime fixes</short_desc>
          <delta_ts>2009-05-28 07:54:02 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jmalonzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>123247</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-27 00:50:10 -0700</bug_when>
    <thetext>As discussed on IRC the lifetime management of the history items has some problems right now. The attached patches give the details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123248</commentid>
    <comment_count>1</comment_count>
      <attachid>30698</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-27 00:51:43 -0700</bug_when>
    <thetext>Created attachment 30698
history1.patch

Delete backforward list before page on the webview.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123249</commentid>
    <comment_count>2</comment_count>
      <attachid>30699</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-27 00:52:19 -0700</bug_when>
    <thetext>Created attachment 30699
history2.patch

Modify management of history items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123250</commentid>
    <comment_count>3</comment_count>
      <attachid>30700</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-27 00:53:19 -0700</bug_when>
    <thetext>Created attachment 30700
history2.patch

Modify management of history items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123261</commentid>
    <comment_count>4</comment_count>
      <attachid>30698</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-05-27 03:37:43 -0700</bug_when>
    <thetext>Comment on attachment 30698
history1.patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123262</commentid>
    <comment_count>5</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-05-27 03:56:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=30699) [review]
&gt; history2.patch
&gt; 
&gt; Modify management of history items.
&gt; 

The original intention, and why the table is maintained by WebKitWebHistoryItem, was to share the history item between a WebBackForwardList and a *future* WebHistory. It&apos;s also the reason why I hesitated to make WebBackForwardList the sole owner of history items (i.e. the hash table maintained by back forward list).

But since I don&apos;t see WebHistory coming anytime soon, perhaps we can make the WebBackForwardList the owner of history items for now and figure this out once we have a WebHistory? Will that fix this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123334</commentid>
    <comment_count>6</comment_count>
      <attachid>30719</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-27 16:16:12 -0700</bug_when>
    <thetext>Created attachment 30719
history3.patch

A slightly less intrusive approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123335</commentid>
    <comment_count>7</comment_count>
      <attachid>30719</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-27 16:28:48 -0700</bug_when>
    <thetext>Comment on attachment 30719
history3.patch

&gt; +    GObjectClass *object_class = G_OBJECT_CLASS(klass);

The only problem I could fine is this misplaced * =P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123407</commentid>
    <comment_count>8</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-28 07:54:02 -0700</bug_when>
    <thetext>Landed both patches as 44227 and 44228. Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30698</attachid>
            <date>2009-05-27 00:51:43 -0700</date>
            <delta_ts>2009-05-27 03:37:43 -0700</delta_ts>
            <desc>history1.patch</desc>
            <filename>history1.patch</filename>
            <type>text/plain</type>
            <size>2489</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAzNDViMTI1MDk0YmU1N2VjZTMwNmNiY2EwNTZiMzdlMjQxNDgzMTdlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDI2IE1heSAyMDA5IDE3OjIzOjQ3ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNS0y
NiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBEZWxldGUgdGhlIEJhY2tGb3J3YXJkTGlzdCBiZWZvcmUg
dGhlIFBhZ2UsIG90aGVyd2lzZSB0aGUgcmVmZXJlbmNlcwogICAgICAgIHRvIHRoZSBXZWJLaXRX
ZWJIaXN0b3J5SXRlbXMgd2lsbCBiZSBnb25lLgoKICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcDoKICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgotLS0KIFdlYktpdC9n
dGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgIHwgICAxMCArKysrKysrKysrCiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCB8ICAgMTggKysrKysrKysrKy0tLS0tLS0tCiAyIGZp
bGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2ZWY1
MzNjLi5kNWJiZmIwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDA5LTA1LTI2ICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEZWxldGUgdGhlIEJhY2tGb3J3YXJkTGlzdCBiZWZvcmUgdGhlIFBhZ2Us
IG90aGVyd2lzZSB0aGUgcmVmZXJlbmNlcworICAgICAgICB0byB0aGUgV2ViS2l0V2ViSGlzdG9y
eUl0ZW1zIHdpbGwgYmUgZ29uZS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kaXNwb3NlKToKKwogMjAwOS0wNS0yNCAgWGFu
IExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBS
b3dlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAwODJhM2EyLi45NTliNzIw
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtODgwLDE0ICs4ODAsNiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAKICAg
ICBwcml2LT5kaXNwb3NpbmcgPSBUUlVFOwogCi0gICAgaWYgKHByaXYtPmNvcmVQYWdlKSB7Ci0g
ICAgICAgIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcoV0VCS0lUX1dFQl9WSUVXKG9iamVj
dCkpOwotCi0gICAgICAgIGNvcmUocHJpdi0+bWFpbkZyYW1lKS0+bG9hZGVyKCktPmRldGFjaEZy
b21QYXJlbnQoKTsKLSAgICAgICAgZGVsZXRlIHByaXYtPmNvcmVQYWdlOwotICAgICAgICBwcml2
LT5jb3JlUGFnZSA9IE5VTEw7Ci0gICAgfQotCiAgICAgaWYgKHByaXYtPmhvcml6b250YWxBZGp1
c3RtZW50KSB7CiAgICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPmhvcml6b250YWxBZGp1c3Rt
ZW50KTsKICAgICAgICAgcHJpdi0+aG9yaXpvbnRhbEFkanVzdG1lbnQgPSBOVUxMOwpAQCAtOTAx
LDcgKzg5MywxNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZShHT2JqZWN0
KiBvYmplY3QpCiAgICAgaWYgKHByaXYtPmJhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICBnX29i
amVjdF91bnJlZihwcml2LT5iYWNrRm9yd2FyZExpc3QpOwogICAgICAgICBwcml2LT5iYWNrRm9y
d2FyZExpc3QgPSBOVUxMOworICAgIH0KKworICAgIGlmIChwcml2LT5jb3JlUGFnZSkgeworICAg
ICAgICB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nKFdFQktJVF9XRUJfVklFVyhvYmplY3Qp
KTsKKworICAgICAgICBjb3JlKHByaXYtPm1haW5GcmFtZSktPmxvYWRlcigpLT5kZXRhY2hGcm9t
UGFyZW50KCk7CisgICAgICAgIGRlbGV0ZSBwcml2LT5jb3JlUGFnZTsKKyAgICAgICAgcHJpdi0+
Y29yZVBhZ2UgPSBOVUxMOworICAgIH0KIAorICAgIGlmIChwcml2LT53ZWJTZXR0aW5ncykgewog
ICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMocHJpdi0+d2ViU2V0
dGluZ3MsIChncG9pbnRlcil3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5LCB3ZWJWaWV3
KTsKICAgICAgICAgZ19vYmplY3RfdW5yZWYocHJpdi0+d2ViU2V0dGluZ3MpOwogICAgICAgICBw
cml2LT53ZWJTZXR0aW5ncyA9IE5VTEw7Ci0tIAoxLjYuMi4yCgo=
</data>
<flag name="review"
          id="15553"
          type_id="1"
          status="+"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30699</attachid>
            <date>2009-05-27 00:52:19 -0700</date>
            <delta_ts>2009-05-27 16:16:12 -0700</delta_ts>
            <desc>history2.patch</desc>
            <filename>history2.patch</filename>
            <type>text/plain</type>
            <size>16697</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAzNjk2NTgzZGFjZDZjZDQyMjI1ZWY2YWM2MjY1ZDYzYmRmOTNhZTU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDI2IE1heSAyMDA5IDIwOjU3OjUyICswMzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29yZToK
CjIwMDktMDUtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgQWRkIGtpdE9iamVjdCBwb2ludGVyIHRv
IEhpc3RvcnlJdGVtIGluc3RhbmNlcyBmb3IgdGhlIEdUSyBwb3J0LgoKICAgICAgICBUaGlzIGhv
bGRzIGEgcG9pbnRlciB0byB0aGUgV2ViS2l0V2ViSGlzdG9yeUl0ZW0gZ29iamVjdCB3cmFwcGVy
CiAgICAgICAgdGhhdCBpcyBleHBvc2VkIHRvIHRoZSB1c2VyIGZvciBlYWNoIGhpc3RvcnkgaXRl
bSBpbiB0aGUKICAgICAgICBCYWNrRm9yd2FyZCBsaXN0LiBXZSB1c2VkIHRvIHN0b3JlIHRoaXMg
cmVsYXRpb25zaGlwIGluIGEgZ2xvYmFsCiAgICAgICAgaGFzaCB0YWJsZSBiZWZvcmUsIGJ1dCB0
aGF0IGhhcyBzb21lIHByb2JsZW1zIHdydCBtZW1vcnkKICAgICAgICBtYW5hZ2VtZW50LgoKICAg
ICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgogICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
SXRlbTo6SGlzdG9yeUl0ZW0pOgogICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5oOgogICAg
ICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6a2l0T2JqZWN0KToKCldlYktpdC9ndGs6CgoyMDA5
LTA1LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFJld29yayB0aGUgbWVtb3J5IG1hbmFnZW1lbnQg
b2YgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zLgoKICAgICAgICBVbnRpbCBub3cgYWxsIFdlYktpdFdl
Ykhpc3RvcnlJdGVtcywgYXQgY3JlYXRpb24gdGltZSwgd291bGQgYWRkCiAgICAgICAgdGhlbXNl
bHZlcyB0byBhIGdsb2JhbCBoYXNoIHRhYmxlIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZwogICAg
ICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtIGFzIGtleSwgYWRkaW5nIGEgcmVmZXJlbmNlIHRvIHRo
ZW1zZWx2ZXMgaW4KICAgICAgICB0aGUgcHJvY2VzcyAoYXMgYSByZXN1bHQsIGFsbCBuZXdseSBj
cmVhdGVkIFdlYktpdFdlYkhpc3RvcnlJdGVtcwogICAgICAgIHdvdWxkIGhhdmUgYSByZWZlcmVu
Y2UgY291bnQgb2YgMikuIEluIHRoZW9yeSB0aGUgb2JqZWN0IHdvdWxkIGJlCiAgICAgICAgcmVt
b3ZlZCBmcm9tIHRoZSB0YWJsZSwgYW5kIHRoZSByZWZlcmVuY2UgZHJvcHBlZCwgYXQgZGlzcG9z
ZQogICAgICAgIHRpbWUsIGJ1dCBzaW5jZSBkaXNwb3NlIGlzIGNhbGxlZCB3aGVuIHRoZSBsYXN0
IHJlZmVyZW5jZSBpcyBhYm91dAogICAgICAgIHRvIGJlIGRyb3BwZWQsIGFuZCB0aGUgdGFibGUg
aXRzZWxmIGhvbGRzIG9uZSByZWZlcmVuY2UsIHRoaXMKICAgICAgICB3b3VsZCBuZXZlciBoYXBw
ZW4gaW4gcHJhY3RpY2UuIEVmZmVjdGl2ZWx5LCBhbGwgaGlzdG9yeSBpdGVtCiAgICAgICAgb2Jq
ZWN0cyB3ZXJlIGxlYWtlZC4KCiAgICAgICAgV2Ugc29sdmUgdGhpcyBwcm9ibGVtcyB3aXRoIHR3
byBjaGFuZ2VzOgoKICAgICAgICAtIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBXZWJLaXRXZWJI
aXN0b3J5SXRlbXMgYW5kCiAgICAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW1zIGlzIG5vdyBzdG9y
ZWQgYXMgYW4gaW5zdGFuY2UgcG9pbnRlciBpbiB0aGUKICAgICAgICBXZWJDb3JlOjpIaXN0b3J5
SXRlbSBvYmplY3RzLCB3aXRoIG5vIGV4dHJhIHJlZmVyZW5jZXMgKHNvIHRoZQogICAgICAgIHJl
ZmVyZW5jZSBjb3VudCBvZiBuZXcgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zIGlzIDEpLiAgLSBUaGUK
ICAgICAgICBvd25lcnNoaXAgb2YgdGhlIFdlYktpdFdlYkhpc3RvcnlJdGVtcyBpcyBjbGFpbWVk
IGJ5IHRoZQogICAgICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCwgd2hpY2ggd2lsbCBkcm9w
IGFsbCByZWZlcmVuY2VzIHRvIGl0cwogICAgICAgIGhpc3RvcnkgaXRlbXMgb24gZGlzcG9zZS4K
CiAgICAgICAgVGhlIHRlc3RzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGZpeGVz
IG9uIHRoZSBsaWZldGltZQogICAgICAgIGFuZCByZWZlcmVuY2UgY291bnQgb2YgdGhlIGhpc3Rv
cnkgaXRlbXMuCgogICAgICAgICogdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jOgogICAg
ICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKToKICAgICAgICAodGVz
dF93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X29yZGVyKToKICAgICAgICAodGVzdF93ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKToKICAgICAgICAqIHRlc3RzL3Rlc3R3
ZWJoaXN0b3J5aXRlbS5jOgogICAgICAgICh3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfc2V0dXAp
OgogICAgICAgICh3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfdGVhcmRvd24pOgogICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6CiAgICAgICAgKHdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZGlzcG9zZSk6CiAgICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfY2xhc3NfaW5pdCk6CiAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0
ZW0uY3BwOgogICAgICAgICh3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCk6CiAgICAgICAgKHdlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX2Rpc3Bvc2UpOgogICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0tLQog
V2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysr
KysrKysrCiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrKysKIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oICAgICAgICAgICAgICAg
ICAgfCAgICA5ICsrKysrCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICA0NSArKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMv
dGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jICAgICAgfCAgIDIwICsrKy0tLS0tLS0tCiBXZWJLaXQv
Z3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jICAgICAgICAgIHwgICAgNCArLS0KIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgfCAgIDI3ICsrKysrKysr
KysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgICAgIHwg
ICAyNyArKy0tLS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwg
NDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAwOGFhZGE1Li41MmU0YjJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTA1
LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQga2l0T2JqZWN0IHBvaW50ZXIgdG8gSGlz
dG9yeUl0ZW0gaW5zdGFuY2VzIGZvciB0aGUgR1RLIHBvcnQuCisKKyAgICAgICAgVGhpcyBob2xk
cyBhIHBvaW50ZXIgdG8gdGhlIFdlYktpdFdlYkhpc3RvcnlJdGVtIGdvYmplY3Qgd3JhcHBlcgor
ICAgICAgICB0aGF0IGlzIGV4cG9zZWQgdG8gdGhlIHVzZXIgZm9yIGVhY2ggaGlzdG9yeSBpdGVt
IGluIHRoZQorICAgICAgICBCYWNrRm9yd2FyZCBsaXN0LiBXZSB1c2VkIHRvIHN0b3JlIHRoaXMg
cmVsYXRpb25zaGlwIGluIGEgZ2xvYmFsCisgICAgICAgIGhhc2ggdGFibGUgYmVmb3JlLCBidXQg
dGhhdCBoYXMgc29tZSBwcm9ibGVtcyB3cnQgbWVtb3J5CisgICAgICAgIG1hbmFnZW1lbnQuCisK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlJdGVtOjpIaXN0b3J5SXRlbSk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5o
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmtpdE9iamVjdCk6CisKIDIwMDktMDUt
MjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5
SXRlbS5jcHAgYi9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmluZGV4IDQ5M2EzOWIu
LjIzZTQyNWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysr
IGIvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtNDgsNiArNDgsOSBAQCBIaXN0
b3J5SXRlbTo6SGlzdG9yeUl0ZW0oKQogICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZhbHNl
KQogICAgICwgbV9pc1RhcmdldEl0ZW0oZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkKKyNp
ZiBQTEFURk9STShHVEspCisgICAgLCBtX2tpdE9iamVjdCgwKQorI2VuZGlmCiB7CiB9CiAKQEAg
LTYwLDYgKzYzLDkgQEAgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUgdGkKICAgICAsIG1fbGFzdFZpc2l0
V2FzRmFpbHVyZShmYWxzZSkKICAgICAsIG1faXNUYXJnZXRJdGVtKGZhbHNlKQogICAgICwgbV92
aXNpdENvdW50KDApCisjaWYgUExBVEZPUk0oR1RLKQorICAgICwgbV9raXRPYmplY3QoMCkKKyNl
bmRpZgogeyAgICAKICAgICBpY29uRGF0YWJhc2UoKS0+cmV0YWluSWNvbkZvclBhZ2VVUkwobV91
cmxTdHJpbmcpOwogfQpAQCAtNzQsNiArODAsOSBAQCBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0o
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cgog
ICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZhbHNlKQogICAgICwgbV9pc1RhcmdldEl0ZW0o
ZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkKKyNpZiBQTEFURk9STShHVEspCisgICAgLCBt
X2tpdE9iamVjdCgwKQorI2VuZGlmCiB7CiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25G
b3JQYWdlVVJMKG1fdXJsU3RyaW5nKTsKIH0KQEAgLTg5LDYgKzk4LDkgQEAgSGlzdG9yeUl0ZW06
Okhpc3RvcnlJdGVtKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0
IFN0cmluZyYgcGEKICAgICAsIG1fbGFzdFZpc2l0V2FzRmFpbHVyZShmYWxzZSkKICAgICAsIG1f
aXNUYXJnZXRJdGVtKGZhbHNlKQogICAgICwgbV92aXNpdENvdW50KDApCisjaWYgUExBVEZPUk0o
R1RLKQorICAgICwgbV9raXRPYmplY3QoMCkKKyNlbmRpZgogeyAgICAKICAgICBpY29uRGF0YWJh
c2UoKS0+cmV0YWluSWNvbkZvclBhZ2VVUkwobV91cmxTdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggYi9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uaAppbmRleCBjNGYwYjQ5Li5lOTUwYjA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2hpc3Rvcnkv
SGlzdG9yeUl0ZW0uaAorKysgYi9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaApAQCAtMTYy
LDYgKzE2MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyRGF0YShjb25zdCBRVmFyaWFu
dCYgdXNlckRhdGEpIHsgbV91c2VyRGF0YSA9IHVzZXJEYXRhOyB9CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKEdUSykKKyAgICB2b2lkKiBraXRPYmplY3QoKSB7IHJldHVybiBtX2tpdE9iamVjdDsg
fQorICAgIHZvaWQgIHNldEtpdE9iamVjdCh2b2lkKiBraXRPYmplY3QpIHsgbV9raXRPYmplY3Qg
PSBraXRPYmplY3Q7IH0KKyNlbmRpZgorCiAjaWZuZGVmIE5ERUJVRwogICAgIGludCBzaG93VHJl
ZSgpIGNvbnN0OwogICAgIGludCBzaG93VHJlZVdpdGhJbmRlbnQodW5zaWduZWQgaW5kZW50TGV2
ZWwpIGNvbnN0OwpAQCAtMjI2LDYgKzIzMSwxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFFU
KQogICAgIFFWYXJpYW50IG1fdXNlckRhdGE7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICB2b2lkKiBtX2tpdE9iamVjdDsKKyNlbmRpZgogfTsgLy9jbGFzcyBIaXN0b3J5SXRlbQog
CiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZDViYmZiMC4uZTBlMzNkYSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTIs
NiArMiw1MSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAg
ICAgIFJld29yayB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgb2YgV2ViS2l0V2ViSGlzdG9yeUl0ZW1z
LgorCisgICAgICAgIFVudGlsIG5vdyBhbGwgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zLCBhdCBjcmVh
dGlvbiB0aW1lLCB3b3VsZCBhZGQKKyAgICAgICAgdGhlbXNlbHZlcyB0byBhIGdsb2JhbCBoYXNo
IHRhYmxlIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZworICAgICAgICBXZWJDb3JlOjpIaXN0b3J5
SXRlbSBhcyBrZXksIGFkZGluZyBhIHJlZmVyZW5jZSB0byB0aGVtc2VsdmVzIGluCisgICAgICAg
IHRoZSBwcm9jZXNzIChhcyBhIHJlc3VsdCwgYWxsIG5ld2x5IGNyZWF0ZWQgV2ViS2l0V2ViSGlz
dG9yeUl0ZW1zCisgICAgICAgIHdvdWxkIGhhdmUgYSByZWZlcmVuY2UgY291bnQgb2YgMikuIElu
IHRoZW9yeSB0aGUgb2JqZWN0IHdvdWxkIGJlCisgICAgICAgIHJlbW92ZWQgZnJvbSB0aGUgdGFi
bGUsIGFuZCB0aGUgcmVmZXJlbmNlIGRyb3BwZWQsIGF0IGRpc3Bvc2UKKyAgICAgICAgdGltZSwg
YnV0IHNpbmNlIGRpc3Bvc2UgaXMgY2FsbGVkIHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGlzIGFi
b3V0CisgICAgICAgIHRvIGJlIGRyb3BwZWQsIGFuZCB0aGUgdGFibGUgaXRzZWxmIGhvbGRzIG9u
ZSByZWZlcmVuY2UsIHRoaXMKKyAgICAgICAgd291bGQgbmV2ZXIgaGFwcGVuIGluIHByYWN0aWNl
LiBFZmZlY3RpdmVseSwgYWxsIGhpc3RvcnkgaXRlbQorICAgICAgICBvYmplY3RzIHdlcmUgbGVh
a2VkLgorCisgICAgICAgIFdlIHNvbHZlIHRoaXMgcHJvYmxlbXMgd2l0aCB0d28gY2hhbmdlczoK
KworICAgICAgICAtIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBXZWJLaXRXZWJIaXN0b3J5SXRl
bXMgYW5kCisgICAgICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtcyBpcyBub3cgc3RvcmVkIGFzIGFu
IGluc3RhbmNlIHBvaW50ZXIgaW4gdGhlCisgICAgICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtIG9i
amVjdHMsIHdpdGggbm8gZXh0cmEgcmVmZXJlbmNlcyAoc28gdGhlCisgICAgICAgIHJlZmVyZW5j
ZSBjb3VudCBvZiBuZXcgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zIGlzIDEpLiAgLSBUaGUKKyAgICAg
ICAgb3duZXJzaGlwIG9mIHRoZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgaXMgY2xhaW1lZCBieSB0
aGUKKyAgICAgICAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0LCB3aGljaCB3aWxsIGRyb3AgYWxs
IHJlZmVyZW5jZXMgdG8gaXRzCisgICAgICAgIGhpc3RvcnkgaXRlbXMgb24gZGlzcG9zZS4KKwor
ICAgICAgICBUaGUgdGVzdHMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZml4ZXMg
b24gdGhlIGxpZmV0aW1lCisgICAgICAgIGFuZCByZWZlcmVuY2UgY291bnQgb2YgdGhlIGhpc3Rv
cnkgaXRlbXMuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmM6Cisg
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKToKKyAgICAgICAg
KHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9vcmRlcik6CisgICAgICAgICh0ZXN0
X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0pOgorICAgICAgICAqIHRlc3Rz
L3Rlc3R3ZWJoaXN0b3J5aXRlbS5jOgorICAgICAgICAod2ViX2hpc3RvcnlfaXRlbV9maXh0dXJl
X3NldHVwKToKKyAgICAgICAgKHdlYl9oaXN0b3J5X2l0ZW1fZml4dHVyZV90ZWFyZG93bik6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6CisgICAgICAgICh3
ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2Rpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViaGlzdG9yeWl0ZW0uY3BwOgorICAgICAgICAod2Via2l0X2hpc3RvcnlfaXRlbV9hZGQpOgor
ICAgICAgICAod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZGlzcG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OmtpdCk6CisKKzIwMDktMDUtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIERlbGV0ZSB0
aGUgQmFja0ZvcndhcmRMaXN0IGJlZm9yZSB0aGUgUGFnZSwgb3RoZXJ3aXNlIHRoZSByZWZlcmVu
Y2VzCiAgICAgICAgIHRvIHRoZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgd2lsbCBiZSBnb25lLgog
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJiYWNrZm9yd2FyZGxpc3QuYyBi
L1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jCmluZGV4IDhkNTNjM2Uu
LjA5NWRhYzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJk
bGlzdC5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jCkBA
IC05MywxNiArOTMsMTIgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2hpc3RvcnlfaXRl
bV9saWZldGltZSh2b2lkKQogCiAgICAgZ19saXN0X2ZyZWUoZm9yd2FyZExpc3QpOwogICAgIGdf
bGlzdF9mcmVlKGJhY2tMaXN0KTsKLSAgICBnX29iamVjdF91bnJlZihpdGVtMSk7Ci0gICAgZ19v
YmplY3RfdW5yZWYoaXRlbTIpOwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0zKTsKLSAgICBnX29i
amVjdF91bnJlZihpdGVtNCk7Ci0KLSAgICBnX29iamVjdF9yZWYoYmFja0ZvcndhcmRMaXN0KTsK
LSAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKLQorICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtMSktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtMiktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtMyktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtNCktPnJlZl9jb3VudCwgPT0sIDEpOwogICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChiYWNrRm9yd2FyZExpc3QpLT5yZWZfY291bnQsID09LCAxKTsKLSAgICBnX29iamVjdF91
bnJlZihiYWNrRm9yd2FyZExpc3QpOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwogfQog
CiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfb3JkZXIodm9p
ZCkKQEAgLTE4NywxMCArMTgzLDYgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2JhY2tf
Zm9yd2FyZF9saXN0X29yZGVyKHZvaWQpCiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF91cmkoY3VycmVudEl0ZW0pLCA9PSwgImh0dHA6Ly9leGFtcGxlLmNv
bS8yLyIpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRf
dGl0bGUoY3VycmVudEl0ZW0pLCA9PSwgIlNpdGUgMiIpOwogCi0gICAgZ19vYmplY3RfdW5yZWYo
aXRlbTEpOwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0yKTsKLSAgICBnX29iamVjdF91bnJlZihp
dGVtMyk7Ci0gICAgZ19vYmplY3RfdW5yZWYoaXRlbTQpOwogICAgIGdfbGlzdF9mcmVlKGZvcndh
cmRMaXN0KTsKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0KQEAgLTIzOCw3ICsyMzAs
NiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0
ZW0odm9pZCkKICAgICBhZGRJdGVtMiA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRo
X2RhdGEoImh0dHA6Ly9leGFtcGxlLmNvbS8yLyIsICJBZGRlZCBzaXRlIDIiKTsKICAgICB3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKHdlYkJhY2tGb3J3YXJkTGlzdCwgYWRk
SXRlbTIpOwogICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFp
bnNfaXRlbSh3ZWJCYWNrRm9yd2FyZExpc3QsIGFkZEl0ZW0yKSk7Ci0gICAgZ19vYmplY3RfdW5y
ZWYoYWRkSXRlbTIpOwogCiAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgYWRkZWQgaXRlbSBpcyBuZXcg
Y3VycmVudCBpdGVtLgogICAgIGN1cnJlbnRJdGVtID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9nZXRfY3VycmVudF9pdGVtKHdlYkJhY2tGb3J3YXJkTGlzdCk7CkBAIC0yNjIsNyArMjUz
LDYgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9p
dGVtKHZvaWQpCiAgICAgZ19hc3NlcnQod2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJkKHdl
YlZpZXcpKTsKICAgICBnX2Fzc2VydCghd2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrKHdlYlZp
ZXcpKTsKIAotICAgIGdfb2JqZWN0X3VucmVmKGFkZEl0ZW0xKTsKICAgICBnX29iamVjdF91bnJl
Zih3ZWJWaWV3KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViaGlz
dG9yeWl0ZW0uYyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtLmMKaW5kZXgg
NjAzOGM2NC4uYjk0MGFmYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViaGlz
dG9yeWl0ZW0uYworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jCkBA
IC0zMSw3ICszMSw3IEBAIHN0YXRpYyB2b2lkIHdlYl9oaXN0b3J5X2l0ZW1fZml4dHVyZV9zZXR1
cChXZWJIaXN0b3J5SXRlbUZpeHR1cmUqIGZpeHR1cmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2NvbnN0cG9pbnRlciBkYXRhKQogewogICAgIGZpeHR1cmUt
Pml0ZW0gPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9kYXRhKCJodHRwOi8vZXhh
bXBsZS5jb20vIiwgIkV4YW1wbGUxIik7Ci0gICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGZp
eHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09ICwgMik7CisgICAgZ19hc3NlcnRfY21waW50KEdf
T0JKRUNUKGZpeHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09ICwgMSk7CiAgICAgZ19hc3NlcnQo
Zml4dHVyZS0+aXRlbSAhPSBOVUxMKTsKIH0KIApAQCAtMzksOCArMzksNiBAQCBzdGF0aWMgdm9p
ZCB3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfdGVhcmRvd24oV2ViSGlzdG9yeUl0ZW1GaXh0dXJl
KiBmaXh0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdjb25zdHBvaW50ZXIgZGF0YSkKIHsKICAgICBnX2Fzc2VydChmaXh0dXJlLT5pdGVtICE9IE5V
TEwpOwotICAgIGdfYXNzZXJ0X2NtcGludChHX09CSkVDVChmaXh0dXJlLT5pdGVtKS0+cmVmX2Nv
dW50LCA9PSwgMik7Ci0gICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+aXRlbSk7CiAgICAgZ19h
c3NlcnRfY21waW50KEdfT0JKRUNUKGZpeHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09LCAxKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRs
aXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAK
aW5kZXggNDJkYThhYy4uNzFjY2QxNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2Fs
aWEgUy5MLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01MywxNCArNTQsMzYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogc3RydWN0IF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRl
IHsKICAgICBXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdDsKKyAgICBn
Ym9vbGVhbiBkaXNwb3NlZDsKIH07CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9CQUNLX0ZPUldBUkRf
TElTVF9HRVRfUFJJVkFURShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9i
aiksIFdFQktJVF9UWVBFX1dFQl9CQUNLX0ZPUldBUkRfTElTVCwgV2ViS2l0V2ViQmFja0Zvcndh
cmRMaXN0UHJpdmF0ZSkpCiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0
LCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0LCBHX1RZUEVfT0JKRUNUKTsKIAorc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9kaXNwb3NlKEdPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIGxpc3QgPSBXRUJLSVRfV0VCX0JB
Q0tfRk9SV0FSRF9MSVNUKG9iamVjdCk7CisgICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBi
YWNrRm9yd2FyZExpc3QgPSBjb3JlKGxpc3QpOworICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlz
dFByaXZhdGUqIHByaXYgPSBsaXN0LT5wcml2OworCisgICAgaWYgKCFwcml2LT5kaXNwb3NlZCkg
eworICAgICAgICBwcml2LT5kaXNwb3NlZCA9IHRydWU7CisKKyAgICAgICAgV2ViQ29yZTo6SGlz
dG9yeUl0ZW1WZWN0b3IgaXRlbXMgPSBiYWNrRm9yd2FyZExpc3QtPmVudHJpZXMoKTsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgaSsrKQorICAgICAgICAg
ICAgZ19vYmplY3RfdW5yZWYoa2l0KGl0ZW1zW2ldKSk7CisgICAgfQorCisgICAgR19PQkpFQ1Rf
Q0xBU1Mod2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9wYXJlbnRfY2xhc3MpLT5kaXNwb3Nl
KG9iamVjdCk7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rf
Y2xhc3NfaW5pdChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RDbGFzcyoga2xhc3MpCiB7CisgICAg
R09iamVjdENsYXNzICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisKKyAg
ICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2Rp
c3Bvc2U7CisKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoa2xhc3MsIHNpemVvZihXZWJL
aXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlKSk7CiB9CiAKQEAgLTM5NSw2ICs0MTgsMTAgQEAg
dm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdChXZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3QqIHdlYkJhY2tGb3IKICAqCiAgKiBBZGRzIHRoZSBpdGVtIHRvIHRoZSAjV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0LgogICoKKyAqIFRoZSBAd2ViQmFja0ZvcndhcmRMaXN0IHdp
bGwgc3RlYWwgdGhlIHJlZmVyZW5jZSBvZiB0aGUKKyAqIEB3ZWJIaXN0b3J5SXRlbSwgc28geW91
IGRvbid0IG5lZWQgdG8gdW5yZWYgaXQgYWZ0ZXIgYWRkaW5nIGl0IHRvCisgKiB0aGUgbGlzdC4K
KyAqCiAgKiBTaW5jZTogMS4xLjEKICAqLwogdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2FkZF9pdGVtKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViQmFja0ZvcndhcmRMaXN0
LCBXZWJLaXRXZWJIaXN0b3J5SXRlbSAqd2ViSGlzdG9yeUl0ZW0pCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAKaW5kZXggZTJkYTU1Yi4uY2E4N2IzOSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgSmFuIE1pY2hhZWwgQy4gQWxvbnpvCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NzksMzcgKzgwLDIxIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX3NldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsCiAKIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKTsKIAotc3RhdGljIEdI
YXNoVGFibGUqIHdlYmtpdF9oaXN0b3J5X2l0ZW1zKCkKLXsKLSAgICBzdGF0aWMgR0hhc2hUYWJs
ZSogaGlzdG9yeUl0ZW1zID0gZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfZGlyZWN0X2hhc2gsIGdf
ZGlyZWN0X2VxdWFsLCBOVUxMLCBnX29iamVjdF91bnJlZik7Ci0gICAgcmV0dXJuIGhpc3RvcnlJ
dGVtczsKLX0KLQogc3RhdGljIHZvaWQgd2Via2l0X2hpc3RvcnlfaXRlbV9hZGQoV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9y
eUl0ZW0pCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRF
TSh3ZWJIaXN0b3J5SXRlbSkpOwogCi0gICAgR0hhc2hUYWJsZSogdGFibGUgPSB3ZWJraXRfaGlz
dG9yeV9pdGVtcygpOwotCi0gICAgZ19oYXNoX3RhYmxlX2luc2VydCh0YWJsZSwgaGlzdG9yeUl0
ZW0sIGdfb2JqZWN0X3JlZih3ZWJIaXN0b3J5SXRlbSkpOworICAgIGhpc3RvcnlJdGVtLT5zZXRL
aXRPYmplY3Qod2ViSGlzdG9yeUl0ZW0pOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9kaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKIHsKICAgICBXZWJLaXRXZWJIaXN0
b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShvYmplY3Qp
OwogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJdGVt
LT5wcml2OwotICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtID0gY29yZSh3ZWJIaXN0b3J5
SXRlbSk7CiAKICAgICBpZiAoIXByaXYtPmRpc3Bvc2VkKSB7Ci0gICAgICAgIEdIYXNoVGFibGUq
IHRhYmxlID0gd2Via2l0X2hpc3RvcnlfaXRlbXMoKTsKLQotICAgICAgICBnX2hhc2hfdGFibGVf
cmVtb3ZlKHRhYmxlLCBpdGVtKTsKKyAgICAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0g
PSBjb3JlKHdlYkhpc3RvcnlJdGVtKTsKICAgICAgICAgaXRlbS0+ZGVyZWYoKTsKLQotICAgICAg
ICAvKiBkZXN0cm95IHRhYmxlIGlmIGVtcHR5ICovCi0gICAgICAgIGlmICghZ19oYXNoX3RhYmxl
X3NpemUodGFibGUpKQotICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kodGFibGUpOwot
CiAgICAgICAgIHByaXYtPmRpc3Bvc2VkID0gdHJ1ZTsKICAgICB9CiAKQEAgLTQ5NiwxMSArNDgx
LDcgQEAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIFdlYktpdDo6a2l0KFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SGlzdG9yeUl0ZW0+IGhpc3RvcnlJdGVtKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGhp
c3RvcnlJdGVtLCBOVUxMKTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4gaXRl
bSA9IGhpc3RvcnlJdGVtOwotCi0gICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJ
dGVtOwotICAgIEdIYXNoVGFibGUqIHRhYmxlID0gd2Via2l0X2hpc3RvcnlfaXRlbXMoKTsKLQot
ICAgIHdlYkhpc3RvcnlJdGVtID0gKFdlYktpdFdlYkhpc3RvcnlJdGVtKikgZ19oYXNoX3RhYmxl
X2xvb2t1cCh0YWJsZSwgaXRlbS5nZXQoKSk7CisgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdl
Ykhpc3RvcnlJdGVtID0gd2ViSGlzdG9yeUl0ZW0gPSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKWl0
ZW0uZ2V0KCktPmtpdE9iamVjdCgpOwogCiAgICAgaWYgKCF3ZWJIaXN0b3J5SXRlbSkgewogICAg
ICAgICB3ZWJIaXN0b3J5SXRlbSA9IFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9XRUJfSElTVE9SWV9JVEVNLCBOVUxMKSk7Ci0tIAoxLjYuMi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30700</attachid>
            <date>2009-05-27 00:53:19 -0700</date>
            <delta_ts>2009-05-27 01:20:16 -0700</delta_ts>
            <desc>history2.patch</desc>
            <filename>history2.patch</filename>
            <type>text/plain</type>
            <size>16697</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAzNjk2NTgzZGFjZDZjZDQyMjI1ZWY2YWM2MjY1ZDYzYmRmOTNhZTU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
dWUsIDI2IE1heSAyMDA5IDIwOjU3OjUyICswMzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQ29yZToK
CjIwMDktMDUtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgQWRkIGtpdE9iamVjdCBwb2ludGVyIHRv
IEhpc3RvcnlJdGVtIGluc3RhbmNlcyBmb3IgdGhlIEdUSyBwb3J0LgoKICAgICAgICBUaGlzIGhv
bGRzIGEgcG9pbnRlciB0byB0aGUgV2ViS2l0V2ViSGlzdG9yeUl0ZW0gZ29iamVjdCB3cmFwcGVy
CiAgICAgICAgdGhhdCBpcyBleHBvc2VkIHRvIHRoZSB1c2VyIGZvciBlYWNoIGhpc3RvcnkgaXRl
bSBpbiB0aGUKICAgICAgICBCYWNrRm9yd2FyZCBsaXN0LiBXZSB1c2VkIHRvIHN0b3JlIHRoaXMg
cmVsYXRpb25zaGlwIGluIGEgZ2xvYmFsCiAgICAgICAgaGFzaCB0YWJsZSBiZWZvcmUsIGJ1dCB0
aGF0IGhhcyBzb21lIHByb2JsZW1zIHdydCBtZW1vcnkKICAgICAgICBtYW5hZ2VtZW50LgoKICAg
ICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgogICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
SXRlbTo6SGlzdG9yeUl0ZW0pOgogICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5oOgogICAg
ICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6a2l0T2JqZWN0KToKCldlYktpdC9ndGs6CgoyMDA5
LTA1LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFJld29yayB0aGUgbWVtb3J5IG1hbmFnZW1lbnQg
b2YgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zLgoKICAgICAgICBVbnRpbCBub3cgYWxsIFdlYktpdFdl
Ykhpc3RvcnlJdGVtcywgYXQgY3JlYXRpb24gdGltZSwgd291bGQgYWRkCiAgICAgICAgdGhlbXNl
bHZlcyB0byBhIGdsb2JhbCBoYXNoIHRhYmxlIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZwogICAg
ICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtIGFzIGtleSwgYWRkaW5nIGEgcmVmZXJlbmNlIHRvIHRo
ZW1zZWx2ZXMgaW4KICAgICAgICB0aGUgcHJvY2VzcyAoYXMgYSByZXN1bHQsIGFsbCBuZXdseSBj
cmVhdGVkIFdlYktpdFdlYkhpc3RvcnlJdGVtcwogICAgICAgIHdvdWxkIGhhdmUgYSByZWZlcmVu
Y2UgY291bnQgb2YgMikuIEluIHRoZW9yeSB0aGUgb2JqZWN0IHdvdWxkIGJlCiAgICAgICAgcmVt
b3ZlZCBmcm9tIHRoZSB0YWJsZSwgYW5kIHRoZSByZWZlcmVuY2UgZHJvcHBlZCwgYXQgZGlzcG9z
ZQogICAgICAgIHRpbWUsIGJ1dCBzaW5jZSBkaXNwb3NlIGlzIGNhbGxlZCB3aGVuIHRoZSBsYXN0
IHJlZmVyZW5jZSBpcyBhYm91dAogICAgICAgIHRvIGJlIGRyb3BwZWQsIGFuZCB0aGUgdGFibGUg
aXRzZWxmIGhvbGRzIG9uZSByZWZlcmVuY2UsIHRoaXMKICAgICAgICB3b3VsZCBuZXZlciBoYXBw
ZW4gaW4gcHJhY3RpY2UuIEVmZmVjdGl2ZWx5LCBhbGwgaGlzdG9yeSBpdGVtCiAgICAgICAgb2Jq
ZWN0cyB3ZXJlIGxlYWtlZC4KCiAgICAgICAgV2Ugc29sdmUgdGhpcyBwcm9ibGVtcyB3aXRoIHR3
byBjaGFuZ2VzOgoKICAgICAgICAtIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBXZWJLaXRXZWJI
aXN0b3J5SXRlbXMgYW5kCiAgICAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW1zIGlzIG5vdyBzdG9y
ZWQgYXMgYW4gaW5zdGFuY2UgcG9pbnRlciBpbiB0aGUKICAgICAgICBXZWJDb3JlOjpIaXN0b3J5
SXRlbSBvYmplY3RzLCB3aXRoIG5vIGV4dHJhIHJlZmVyZW5jZXMgKHNvIHRoZQogICAgICAgIHJl
ZmVyZW5jZSBjb3VudCBvZiBuZXcgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zIGlzIDEpLiAgLSBUaGUK
ICAgICAgICBvd25lcnNoaXAgb2YgdGhlIFdlYktpdFdlYkhpc3RvcnlJdGVtcyBpcyBjbGFpbWVk
IGJ5IHRoZQogICAgICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCwgd2hpY2ggd2lsbCBkcm9w
IGFsbCByZWZlcmVuY2VzIHRvIGl0cwogICAgICAgIGhpc3RvcnkgaXRlbXMgb24gZGlzcG9zZS4K
CiAgICAgICAgVGhlIHRlc3RzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGZpeGVz
IG9uIHRoZSBsaWZldGltZQogICAgICAgIGFuZCByZWZlcmVuY2UgY291bnQgb2YgdGhlIGhpc3Rv
cnkgaXRlbXMuCgogICAgICAgICogdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jOgogICAg
ICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKToKICAgICAgICAodGVz
dF93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X29yZGVyKToKICAgICAgICAodGVzdF93ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKToKICAgICAgICAqIHRlc3RzL3Rlc3R3
ZWJoaXN0b3J5aXRlbS5jOgogICAgICAgICh3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfc2V0dXAp
OgogICAgICAgICh3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfdGVhcmRvd24pOgogICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6CiAgICAgICAgKHdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZGlzcG9zZSk6CiAgICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfY2xhc3NfaW5pdCk6CiAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0
ZW0uY3BwOgogICAgICAgICh3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCk6CiAgICAgICAgKHdlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX2Rpc3Bvc2UpOgogICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0tLQog
V2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysr
KysrKysrCiBXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrKysKIFdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oICAgICAgICAgICAgICAg
ICAgfCAgICA5ICsrKysrCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICA0NSArKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMv
dGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jICAgICAgfCAgIDIwICsrKy0tLS0tLS0tCiBXZWJLaXQv
Z3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jICAgICAgICAgIHwgICAgNCArLS0KIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgfCAgIDI3ICsrKysrKysr
KysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgICAgIHwg
ICAyNyArKy0tLS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwg
NDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAwOGFhZGE1Li41MmU0YjJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTA1
LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQga2l0T2JqZWN0IHBvaW50ZXIgdG8gSGlz
dG9yeUl0ZW0gaW5zdGFuY2VzIGZvciB0aGUgR1RLIHBvcnQuCisKKyAgICAgICAgVGhpcyBob2xk
cyBhIHBvaW50ZXIgdG8gdGhlIFdlYktpdFdlYkhpc3RvcnlJdGVtIGdvYmplY3Qgd3JhcHBlcgor
ICAgICAgICB0aGF0IGlzIGV4cG9zZWQgdG8gdGhlIHVzZXIgZm9yIGVhY2ggaGlzdG9yeSBpdGVt
IGluIHRoZQorICAgICAgICBCYWNrRm9yd2FyZCBsaXN0LiBXZSB1c2VkIHRvIHN0b3JlIHRoaXMg
cmVsYXRpb25zaGlwIGluIGEgZ2xvYmFsCisgICAgICAgIGhhc2ggdGFibGUgYmVmb3JlLCBidXQg
dGhhdCBoYXMgc29tZSBwcm9ibGVtcyB3cnQgbWVtb3J5CisgICAgICAgIG1hbmFnZW1lbnQuCisK
KyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlJdGVtOjpIaXN0b3J5SXRlbSk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5o
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmtpdE9iamVjdCk6CisKIDIwMDktMDUt
MjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5
SXRlbS5jcHAgYi9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmluZGV4IDQ5M2EzOWIu
LjIzZTQyNWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysr
IGIvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtNDgsNiArNDgsOSBAQCBIaXN0
b3J5SXRlbTo6SGlzdG9yeUl0ZW0oKQogICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZhbHNl
KQogICAgICwgbV9pc1RhcmdldEl0ZW0oZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkKKyNp
ZiBQTEFURk9STShHVEspCisgICAgLCBtX2tpdE9iamVjdCgwKQorI2VuZGlmCiB7CiB9CiAKQEAg
LTYwLDYgKzYzLDkgQEAgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUgdGkKICAgICAsIG1fbGFzdFZpc2l0
V2FzRmFpbHVyZShmYWxzZSkKICAgICAsIG1faXNUYXJnZXRJdGVtKGZhbHNlKQogICAgICwgbV92
aXNpdENvdW50KDApCisjaWYgUExBVEZPUk0oR1RLKQorICAgICwgbV9raXRPYmplY3QoMCkKKyNl
bmRpZgogeyAgICAKICAgICBpY29uRGF0YWJhc2UoKS0+cmV0YWluSWNvbkZvclBhZ2VVUkwobV91
cmxTdHJpbmcpOwogfQpAQCAtNzQsNiArODAsOSBAQCBIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0o
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cgog
ICAgICwgbV9sYXN0VmlzaXRXYXNGYWlsdXJlKGZhbHNlKQogICAgICwgbV9pc1RhcmdldEl0ZW0o
ZmFsc2UpCiAgICAgLCBtX3Zpc2l0Q291bnQoMCkKKyNpZiBQTEFURk9STShHVEspCisgICAgLCBt
X2tpdE9iamVjdCgwKQorI2VuZGlmCiB7CiAgICAgaWNvbkRhdGFiYXNlKCktPnJldGFpbkljb25G
b3JQYWdlVVJMKG1fdXJsU3RyaW5nKTsKIH0KQEAgLTg5LDYgKzk4LDkgQEAgSGlzdG9yeUl0ZW06
Okhpc3RvcnlJdGVtKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0
IFN0cmluZyYgcGEKICAgICAsIG1fbGFzdFZpc2l0V2FzRmFpbHVyZShmYWxzZSkKICAgICAsIG1f
aXNUYXJnZXRJdGVtKGZhbHNlKQogICAgICwgbV92aXNpdENvdW50KDApCisjaWYgUExBVEZPUk0o
R1RLKQorICAgICwgbV9raXRPYmplY3QoMCkKKyNlbmRpZgogeyAgICAKICAgICBpY29uRGF0YWJh
c2UoKS0+cmV0YWluSWNvbkZvclBhZ2VVUkwobV91cmxTdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggYi9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uaAppbmRleCBjNGYwYjQ5Li5lOTUwYjA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2hpc3Rvcnkv
SGlzdG9yeUl0ZW0uaAorKysgYi9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaApAQCAtMTYy
LDYgKzE2MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyRGF0YShjb25zdCBRVmFyaWFu
dCYgdXNlckRhdGEpIHsgbV91c2VyRGF0YSA9IHVzZXJEYXRhOyB9CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKEdUSykKKyAgICB2b2lkKiBraXRPYmplY3QoKSB7IHJldHVybiBtX2tpdE9iamVjdDsg
fQorICAgIHZvaWQgIHNldEtpdE9iamVjdCh2b2lkKiBraXRPYmplY3QpIHsgbV9raXRPYmplY3Qg
PSBraXRPYmplY3Q7IH0KKyNlbmRpZgorCiAjaWZuZGVmIE5ERUJVRwogICAgIGludCBzaG93VHJl
ZSgpIGNvbnN0OwogICAgIGludCBzaG93VHJlZVdpdGhJbmRlbnQodW5zaWduZWQgaW5kZW50TGV2
ZWwpIGNvbnN0OwpAQCAtMjI2LDYgKzIzMSwxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFFU
KQogICAgIFFWYXJpYW50IG1fdXNlckRhdGE7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICB2b2lkKiBtX2tpdE9iamVjdDsKKyNlbmRpZgogfTsgLy9jbGFzcyBIaXN0b3J5SXRlbQog
CiB9IC8vbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZDViYmZiMC4uZTBlMzNkYSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTIs
NiArMiw1MSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAg
ICAgIFJld29yayB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgb2YgV2ViS2l0V2ViSGlzdG9yeUl0ZW1z
LgorCisgICAgICAgIFVudGlsIG5vdyBhbGwgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zLCBhdCBjcmVh
dGlvbiB0aW1lLCB3b3VsZCBhZGQKKyAgICAgICAgdGhlbXNlbHZlcyB0byBhIGdsb2JhbCBoYXNo
IHRhYmxlIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZworICAgICAgICBXZWJDb3JlOjpIaXN0b3J5
SXRlbSBhcyBrZXksIGFkZGluZyBhIHJlZmVyZW5jZSB0byB0aGVtc2VsdmVzIGluCisgICAgICAg
IHRoZSBwcm9jZXNzIChhcyBhIHJlc3VsdCwgYWxsIG5ld2x5IGNyZWF0ZWQgV2ViS2l0V2ViSGlz
dG9yeUl0ZW1zCisgICAgICAgIHdvdWxkIGhhdmUgYSByZWZlcmVuY2UgY291bnQgb2YgMikuIElu
IHRoZW9yeSB0aGUgb2JqZWN0IHdvdWxkIGJlCisgICAgICAgIHJlbW92ZWQgZnJvbSB0aGUgdGFi
bGUsIGFuZCB0aGUgcmVmZXJlbmNlIGRyb3BwZWQsIGF0IGRpc3Bvc2UKKyAgICAgICAgdGltZSwg
YnV0IHNpbmNlIGRpc3Bvc2UgaXMgY2FsbGVkIHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGlzIGFi
b3V0CisgICAgICAgIHRvIGJlIGRyb3BwZWQsIGFuZCB0aGUgdGFibGUgaXRzZWxmIGhvbGRzIG9u
ZSByZWZlcmVuY2UsIHRoaXMKKyAgICAgICAgd291bGQgbmV2ZXIgaGFwcGVuIGluIHByYWN0aWNl
LiBFZmZlY3RpdmVseSwgYWxsIGhpc3RvcnkgaXRlbQorICAgICAgICBvYmplY3RzIHdlcmUgbGVh
a2VkLgorCisgICAgICAgIFdlIHNvbHZlIHRoaXMgcHJvYmxlbXMgd2l0aCB0d28gY2hhbmdlczoK
KworICAgICAgICAtIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBXZWJLaXRXZWJIaXN0b3J5SXRl
bXMgYW5kCisgICAgICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtcyBpcyBub3cgc3RvcmVkIGFzIGFu
IGluc3RhbmNlIHBvaW50ZXIgaW4gdGhlCisgICAgICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtIG9i
amVjdHMsIHdpdGggbm8gZXh0cmEgcmVmZXJlbmNlcyAoc28gdGhlCisgICAgICAgIHJlZmVyZW5j
ZSBjb3VudCBvZiBuZXcgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zIGlzIDEpLiAgLSBUaGUKKyAgICAg
ICAgb3duZXJzaGlwIG9mIHRoZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgaXMgY2xhaW1lZCBieSB0
aGUKKyAgICAgICAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0LCB3aGljaCB3aWxsIGRyb3AgYWxs
IHJlZmVyZW5jZXMgdG8gaXRzCisgICAgICAgIGhpc3RvcnkgaXRlbXMgb24gZGlzcG9zZS4KKwor
ICAgICAgICBUaGUgdGVzdHMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZml4ZXMg
b24gdGhlIGxpZmV0aW1lCisgICAgICAgIGFuZCByZWZlcmVuY2UgY291bnQgb2YgdGhlIGhpc3Rv
cnkgaXRlbXMuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmM6Cisg
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKToKKyAgICAgICAg
KHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9vcmRlcik6CisgICAgICAgICh0ZXN0
X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0pOgorICAgICAgICAqIHRlc3Rz
L3Rlc3R3ZWJoaXN0b3J5aXRlbS5jOgorICAgICAgICAod2ViX2hpc3RvcnlfaXRlbV9maXh0dXJl
X3NldHVwKToKKyAgICAgICAgKHdlYl9oaXN0b3J5X2l0ZW1fZml4dHVyZV90ZWFyZG93bik6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6CisgICAgICAgICh3
ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2Rpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViaGlzdG9yeWl0ZW0uY3BwOgorICAgICAgICAod2Via2l0X2hpc3RvcnlfaXRlbV9hZGQpOgor
ICAgICAgICAod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZGlzcG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OmtpdCk6CisKKzIwMDktMDUtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIERlbGV0ZSB0
aGUgQmFja0ZvcndhcmRMaXN0IGJlZm9yZSB0aGUgUGFnZSwgb3RoZXJ3aXNlIHRoZSByZWZlcmVu
Y2VzCiAgICAgICAgIHRvIHRoZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgd2lsbCBiZSBnb25lLgog
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJiYWNrZm9yd2FyZGxpc3QuYyBi
L1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jCmluZGV4IDhkNTNjM2Uu
LjA5NWRhYzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJk
bGlzdC5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jCkBA
IC05MywxNiArOTMsMTIgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2hpc3RvcnlfaXRl
bV9saWZldGltZSh2b2lkKQogCiAgICAgZ19saXN0X2ZyZWUoZm9yd2FyZExpc3QpOwogICAgIGdf
bGlzdF9mcmVlKGJhY2tMaXN0KTsKLSAgICBnX29iamVjdF91bnJlZihpdGVtMSk7Ci0gICAgZ19v
YmplY3RfdW5yZWYoaXRlbTIpOwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0zKTsKLSAgICBnX29i
amVjdF91bnJlZihpdGVtNCk7Ci0KLSAgICBnX29iamVjdF9yZWYoYmFja0ZvcndhcmRMaXN0KTsK
LSAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKLQorICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtMSktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtMiktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtMyktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChpdGVtNCktPnJlZl9jb3VudCwgPT0sIDEpOwogICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChiYWNrRm9yd2FyZExpc3QpLT5yZWZfY291bnQsID09LCAxKTsKLSAgICBnX29iamVjdF91
bnJlZihiYWNrRm9yd2FyZExpc3QpOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwogfQog
CiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfb3JkZXIodm9p
ZCkKQEAgLTE4NywxMCArMTgzLDYgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2JhY2tf
Zm9yd2FyZF9saXN0X29yZGVyKHZvaWQpCiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF91cmkoY3VycmVudEl0ZW0pLCA9PSwgImh0dHA6Ly9leGFtcGxlLmNv
bS8yLyIpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRf
dGl0bGUoY3VycmVudEl0ZW0pLCA9PSwgIlNpdGUgMiIpOwogCi0gICAgZ19vYmplY3RfdW5yZWYo
aXRlbTEpOwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0yKTsKLSAgICBnX29iamVjdF91bnJlZihp
dGVtMyk7Ci0gICAgZ19vYmplY3RfdW5yZWYoaXRlbTQpOwogICAgIGdfbGlzdF9mcmVlKGZvcndh
cmRMaXN0KTsKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0KQEAgLTIzOCw3ICsyMzAs
NiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0
ZW0odm9pZCkKICAgICBhZGRJdGVtMiA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRo
X2RhdGEoImh0dHA6Ly9leGFtcGxlLmNvbS8yLyIsICJBZGRlZCBzaXRlIDIiKTsKICAgICB3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKHdlYkJhY2tGb3J3YXJkTGlzdCwgYWRk
SXRlbTIpOwogICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFp
bnNfaXRlbSh3ZWJCYWNrRm9yd2FyZExpc3QsIGFkZEl0ZW0yKSk7Ci0gICAgZ19vYmplY3RfdW5y
ZWYoYWRkSXRlbTIpOwogCiAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgYWRkZWQgaXRlbSBpcyBuZXcg
Y3VycmVudCBpdGVtLgogICAgIGN1cnJlbnRJdGVtID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9nZXRfY3VycmVudF9pdGVtKHdlYkJhY2tGb3J3YXJkTGlzdCk7CkBAIC0yNjIsNyArMjUz
LDYgQEAgc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9p
dGVtKHZvaWQpCiAgICAgZ19hc3NlcnQod2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJkKHdl
YlZpZXcpKTsKICAgICBnX2Fzc2VydCghd2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrKHdlYlZp
ZXcpKTsKIAotICAgIGdfb2JqZWN0X3VucmVmKGFkZEl0ZW0xKTsKICAgICBnX29iamVjdF91bnJl
Zih3ZWJWaWV3KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViaGlz
dG9yeWl0ZW0uYyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtLmMKaW5kZXgg
NjAzOGM2NC4uYjk0MGFmYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViaGlz
dG9yeWl0ZW0uYworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jCkBA
IC0zMSw3ICszMSw3IEBAIHN0YXRpYyB2b2lkIHdlYl9oaXN0b3J5X2l0ZW1fZml4dHVyZV9zZXR1
cChXZWJIaXN0b3J5SXRlbUZpeHR1cmUqIGZpeHR1cmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2NvbnN0cG9pbnRlciBkYXRhKQogewogICAgIGZpeHR1cmUt
Pml0ZW0gPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9kYXRhKCJodHRwOi8vZXhh
bXBsZS5jb20vIiwgIkV4YW1wbGUxIik7Ci0gICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGZp
eHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09ICwgMik7CisgICAgZ19hc3NlcnRfY21waW50KEdf
T0JKRUNUKGZpeHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09ICwgMSk7CiAgICAgZ19hc3NlcnQo
Zml4dHVyZS0+aXRlbSAhPSBOVUxMKTsKIH0KIApAQCAtMzksOCArMzksNiBAQCBzdGF0aWMgdm9p
ZCB3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfdGVhcmRvd24oV2ViSGlzdG9yeUl0ZW1GaXh0dXJl
KiBmaXh0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdjb25zdHBvaW50ZXIgZGF0YSkKIHsKICAgICBnX2Fzc2VydChmaXh0dXJlLT5pdGVtICE9IE5V
TEwpOwotICAgIGdfYXNzZXJ0X2NtcGludChHX09CSkVDVChmaXh0dXJlLT5pdGVtKS0+cmVmX2Nv
dW50LCA9PSwgMik7Ci0gICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+aXRlbSk7CiAgICAgZ19h
c3NlcnRfY21waW50KEdfT0JKRUNUKGZpeHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09LCAxKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRs
aXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAK
aW5kZXggNDJkYThhYy4uNzFjY2QxNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2Fs
aWEgUy5MLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01MywxNCArNTQsMzYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogc3RydWN0IF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRl
IHsKICAgICBXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdDsKKyAgICBn
Ym9vbGVhbiBkaXNwb3NlZDsKIH07CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9CQUNLX0ZPUldBUkRf
TElTVF9HRVRfUFJJVkFURShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9i
aiksIFdFQktJVF9UWVBFX1dFQl9CQUNLX0ZPUldBUkRfTElTVCwgV2ViS2l0V2ViQmFja0Zvcndh
cmRMaXN0UHJpdmF0ZSkpCiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0
LCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0LCBHX1RZUEVfT0JKRUNUKTsKIAorc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9kaXNwb3NlKEdPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIGxpc3QgPSBXRUJLSVRfV0VCX0JB
Q0tfRk9SV0FSRF9MSVNUKG9iamVjdCk7CisgICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBi
YWNrRm9yd2FyZExpc3QgPSBjb3JlKGxpc3QpOworICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlz
dFByaXZhdGUqIHByaXYgPSBsaXN0LT5wcml2OworCisgICAgaWYgKCFwcml2LT5kaXNwb3NlZCkg
eworICAgICAgICBwcml2LT5kaXNwb3NlZCA9IHRydWU7CisKKyAgICAgICAgV2ViQ29yZTo6SGlz
dG9yeUl0ZW1WZWN0b3IgaXRlbXMgPSBiYWNrRm9yd2FyZExpc3QtPmVudHJpZXMoKTsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgaSsrKQorICAgICAgICAg
ICAgZ19vYmplY3RfdW5yZWYoa2l0KGl0ZW1zW2ldKSk7CisgICAgfQorCisgICAgR19PQkpFQ1Rf
Q0xBU1Mod2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9wYXJlbnRfY2xhc3MpLT5kaXNwb3Nl
KG9iamVjdCk7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rf
Y2xhc3NfaW5pdChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RDbGFzcyoga2xhc3MpCiB7CisgICAg
R09iamVjdENsYXNzICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisKKyAg
ICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2Rp
c3Bvc2U7CisKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoa2xhc3MsIHNpemVvZihXZWJL
aXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlKSk7CiB9CiAKQEAgLTM5NSw2ICs0MTgsMTAgQEAg
dm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdChXZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3QqIHdlYkJhY2tGb3IKICAqCiAgKiBBZGRzIHRoZSBpdGVtIHRvIHRoZSAjV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0LgogICoKKyAqIFRoZSBAd2ViQmFja0ZvcndhcmRMaXN0IHdp
bGwgc3RlYWwgdGhlIHJlZmVyZW5jZSBvZiB0aGUKKyAqIEB3ZWJIaXN0b3J5SXRlbSwgc28geW91
IGRvbid0IG5lZWQgdG8gdW5yZWYgaXQgYWZ0ZXIgYWRkaW5nIGl0IHRvCisgKiB0aGUgbGlzdC4K
KyAqCiAgKiBTaW5jZTogMS4xLjEKICAqLwogdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2FkZF9pdGVtKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViQmFja0ZvcndhcmRMaXN0
LCBXZWJLaXRXZWJIaXN0b3J5SXRlbSAqd2ViSGlzdG9yeUl0ZW0pCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAKaW5kZXggZTJkYTU1Yi4uY2E4N2IzOSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgSmFuIE1pY2hhZWwgQy4gQWxvbnpvCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NzksMzcgKzgwLDIxIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX3NldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsCiAKIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKTsKIAotc3RhdGljIEdI
YXNoVGFibGUqIHdlYmtpdF9oaXN0b3J5X2l0ZW1zKCkKLXsKLSAgICBzdGF0aWMgR0hhc2hUYWJs
ZSogaGlzdG9yeUl0ZW1zID0gZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfZGlyZWN0X2hhc2gsIGdf
ZGlyZWN0X2VxdWFsLCBOVUxMLCBnX29iamVjdF91bnJlZik7Ci0gICAgcmV0dXJuIGhpc3RvcnlJ
dGVtczsKLX0KLQogc3RhdGljIHZvaWQgd2Via2l0X2hpc3RvcnlfaXRlbV9hZGQoV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9y
eUl0ZW0pCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRF
TSh3ZWJIaXN0b3J5SXRlbSkpOwogCi0gICAgR0hhc2hUYWJsZSogdGFibGUgPSB3ZWJraXRfaGlz
dG9yeV9pdGVtcygpOwotCi0gICAgZ19oYXNoX3RhYmxlX2luc2VydCh0YWJsZSwgaGlzdG9yeUl0
ZW0sIGdfb2JqZWN0X3JlZih3ZWJIaXN0b3J5SXRlbSkpOworICAgIGhpc3RvcnlJdGVtLT5zZXRL
aXRPYmplY3Qod2ViSGlzdG9yeUl0ZW0pOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9kaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKIHsKICAgICBXZWJLaXRXZWJIaXN0
b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShvYmplY3Qp
OwogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJdGVt
LT5wcml2OwotICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtID0gY29yZSh3ZWJIaXN0b3J5
SXRlbSk7CiAKICAgICBpZiAoIXByaXYtPmRpc3Bvc2VkKSB7Ci0gICAgICAgIEdIYXNoVGFibGUq
IHRhYmxlID0gd2Via2l0X2hpc3RvcnlfaXRlbXMoKTsKLQotICAgICAgICBnX2hhc2hfdGFibGVf
cmVtb3ZlKHRhYmxlLCBpdGVtKTsKKyAgICAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0g
PSBjb3JlKHdlYkhpc3RvcnlJdGVtKTsKICAgICAgICAgaXRlbS0+ZGVyZWYoKTsKLQotICAgICAg
ICAvKiBkZXN0cm95IHRhYmxlIGlmIGVtcHR5ICovCi0gICAgICAgIGlmICghZ19oYXNoX3RhYmxl
X3NpemUodGFibGUpKQotICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kodGFibGUpOwot
CiAgICAgICAgIHByaXYtPmRpc3Bvc2VkID0gdHJ1ZTsKICAgICB9CiAKQEAgLTQ5NiwxMSArNDgx
LDcgQEAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIFdlYktpdDo6a2l0KFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SGlzdG9yeUl0ZW0+IGhpc3RvcnlJdGVtKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGhp
c3RvcnlJdGVtLCBOVUxMKTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4gaXRl
bSA9IGhpc3RvcnlJdGVtOwotCi0gICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJ
dGVtOwotICAgIEdIYXNoVGFibGUqIHRhYmxlID0gd2Via2l0X2hpc3RvcnlfaXRlbXMoKTsKLQot
ICAgIHdlYkhpc3RvcnlJdGVtID0gKFdlYktpdFdlYkhpc3RvcnlJdGVtKikgZ19oYXNoX3RhYmxl
X2xvb2t1cCh0YWJsZSwgaXRlbS5nZXQoKSk7CisgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdl
Ykhpc3RvcnlJdGVtID0gd2ViSGlzdG9yeUl0ZW0gPSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKWl0
ZW0uZ2V0KCktPmtpdE9iamVjdCgpOwogCiAgICAgaWYgKCF3ZWJIaXN0b3J5SXRlbSkgewogICAg
ICAgICB3ZWJIaXN0b3J5SXRlbSA9IFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9XRUJfSElTVE9SWV9JVEVNLCBOVUxMKSk7Ci0tIAoxLjYuMi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30719</attachid>
            <date>2009-05-27 16:16:12 -0700</date>
            <delta_ts>2009-05-27 16:28:48 -0700</delta_ts>
            <desc>history3.patch</desc>
            <filename>history3.patch</filename>
            <type>text/plain</type>
            <size>12252</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA0ZTJkNTNjZmE3ZmY4ZGY2NmY4NTE4NWM1ZmQ5NmVjZDUwZjJjY2M4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBU
aHUsIDI4IE1heSAyMDA5IDAyOjEyOjIzICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wNS0y
NyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBNb2RpZnkgdGhlIG1hbmFnZW1lbnQgb2YgaGlzdG9yeSBp
dGVtcyBieSB0aGUgQmFja0ZvcndhcmQgbGlzdC4KCiAgICAgICAgSGF2aW5nIHRoZSBvYmplY3Rz
IGFkZCB0aGVtc2VsdmVzIHRvIGEgaGFzaCB0YWJsZSB3aXRoIGFuIGV4dHJhCiAgICAgICAgcmVm
ZXJlbmNlIG1hZGUgaW1wb3NzaWJsZSBmb3IgdGhlIGNsZWFudXAgY29kZSBpbiB0aGUgZGlzcG9z
ZQogICAgICAgIG1ldGhvZCB0byBiZSBldmVyIGNhbGxlZCBpbiBub3JtYWwgY29uZGl0aW9ucywg
c2luY2UgZGlzcG9zZSBpcwogICAgICAgIGNhbGxlZCBiZWZvcmUgZ2V0dGluZyByaWQgb2YgdGhl
IGxhc3QgcmVmZXJlbmNlLCB3aGljaCB0aGUgb2JqZWN0cwogICAgICAgIHdlcmUgbWFraW5nIHRv
IHRoZW1zZWx2ZXMuIEdldCByaWQgb2YgdGhpcyBleHRyYSByZWZlcmVuY2UgYW5kCiAgICAgICAg
bW92ZSB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNsZWFudXAgdG8gdGhlIEJhY2tGb3J3YXJk
IGxpc3QKICAgICAgICBpdHNlbGYsIHdoaWNoIGVmZmVjdGl2ZWx5IG93bnMgdGhlIFdlYktpdFdl
Ykhpc3RvcnlJdGVtcyBub3cuCgogICAgICAgIEFsc28sIHVwZGF0ZSB0aGUgdGVzdHMgdG8gcmVm
bGVjdCB0aGlzIGNoYW5nZS4KCiAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0
LmM6CiAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbGlmZXRpbWUpOgogICAg
ICAgICh0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfb3JkZXIpOgogICAgICAgICh0
ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0pOgogICAgICAgICogdGVz
dHMvdGVzdHdlYmhpc3RvcnlpdGVtLmM6CiAgICAgICAgKHdlYl9oaXN0b3J5X2l0ZW1fZml4dHVy
ZV9zZXR1cCk6CiAgICAgICAgKHdlYl9oaXN0b3J5X2l0ZW1fZml4dHVyZV90ZWFyZG93bik6CiAg
ICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgogICAgICAgICogd2Via2l0L3dlYmtpdHdl
YmJhY2tmb3J3YXJkbGlzdC5jcHA6CiAgICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xp
c3RfZGlzcG9zZSk6CiAgICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY2xhc3Nf
aW5pdCk6CiAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgogICAgICAg
ICh3ZWJraXRfaGlzdG9yeV9pdGVtcyk6CiAgICAgICAgKHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRk
KToKICAgICAgICAod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZGlzcG9zZSk6CiAgICAgICAgKFdl
YktpdDo6a2l0KToKLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAzMyArKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMv
dGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jICAgICAgfCAgIDIwICsrKy0tLS0tLS0tLS0tCiBXZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jICAgICAgICAgIHwgICAgNCArLS0KIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCAgICAgICAgICAgICAgfCAgICAzICsrCiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwIHwgICAyOCArKysr
KysrKysrKysrKysrKysrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0u
Y3BwICAgICB8ICAgMjMgKysrKy0tLS0tLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNl
cnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGMyZmE0NmEuLjU0MTMxNTEgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMDktMDUtMjcgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlm
eSB0aGUgbWFuYWdlbWVudCBvZiBoaXN0b3J5IGl0ZW1zIGJ5IHRoZSBCYWNrRm9yd2FyZCBsaXN0
LgorCisgICAgICAgIEhhdmluZyB0aGUgb2JqZWN0cyBhZGQgdGhlbXNlbHZlcyB0byBhIGhhc2gg
dGFibGUgd2l0aCBhbiBleHRyYQorICAgICAgICByZWZlcmVuY2UgbWFkZSBpbXBvc3NpYmxlIGZv
ciB0aGUgY2xlYW51cCBjb2RlIGluIHRoZSBkaXNwb3NlCisgICAgICAgIG1ldGhvZCB0byBiZSBl
dmVyIGNhbGxlZCBpbiBub3JtYWwgY29uZGl0aW9ucywgc2luY2UgZGlzcG9zZSBpcworICAgICAg
ICBjYWxsZWQgYmVmb3JlIGdldHRpbmcgcmlkIG9mIHRoZSBsYXN0IHJlZmVyZW5jZSwgd2hpY2gg
dGhlIG9iamVjdHMKKyAgICAgICAgd2VyZSBtYWtpbmcgdG8gdGhlbXNlbHZlcy4gR2V0IHJpZCBv
ZiB0aGlzIGV4dHJhIHJlZmVyZW5jZSBhbmQKKyAgICAgICAgbW92ZSB0aGUgcmVzcG9uc2liaWxp
dHkgb2YgdGhlIGNsZWFudXAgdG8gdGhlIEJhY2tGb3J3YXJkIGxpc3QKKyAgICAgICAgaXRzZWxm
LCB3aGljaCBlZmZlY3RpdmVseSBvd25zIHRoZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgbm93Lgor
CisgICAgICAgIEFsc28sIHVwZGF0ZSB0aGUgdGVzdHMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4K
KworICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJiYWNrZm9yd2FyZGxpc3QuYzoKKyAgICAgICAgKHRl
c3Rfd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbGlmZXRpbWUpOgorICAgICAgICAodGVzdF93ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X29yZGVyKToKKyAgICAgICAgKHRlc3Rfd2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbSk6CisgICAgICAgICogdGVzdHMvdGVzdHdlYmhp
c3RvcnlpdGVtLmM6CisgICAgICAgICh3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfc2V0dXApOgor
ICAgICAgICAod2ViX2hpc3RvcnlfaXRlbV9maXh0dXJlX3RlYXJkb3duKToKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9y
d2FyZGxpc3QuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9kaXNw
b3NlKToKKyAgICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY2xhc3NfaW5pdCk6
CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKKyAgICAgICAgKHdl
YmtpdF9oaXN0b3J5X2l0ZW1zKToKKyAgICAgICAgKHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKToK
KyAgICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2Rpc3Bvc2UpOgorICAgICAgICAoV2Vi
S2l0OjpraXQpOgorCiAyMDA5LTA1LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jIGIvV2ViS2l0L2d0ay90ZXN0cy90
ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmMKaW5kZXggOGQ1M2MzZS4uMDk1ZGFjNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmMKKysrIGIvV2ViS2l0
L2d0ay90ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmMKQEAgLTkzLDE2ICs5MywxMiBAQCBz
dGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKHZvaWQpCiAK
ICAgICBnX2xpc3RfZnJlZShmb3J3YXJkTGlzdCk7CiAgICAgZ19saXN0X2ZyZWUoYmFja0xpc3Qp
OwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0xKTsKLSAgICBnX29iamVjdF91bnJlZihpdGVtMik7
Ci0gICAgZ19vYmplY3RfdW5yZWYoaXRlbTMpOwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW00KTsK
LQotICAgIGdfb2JqZWN0X3JlZihiYWNrRm9yd2FyZExpc3QpOwotICAgIGdfb2JqZWN0X3VucmVm
KHdlYlZpZXcpOwotCisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGl0ZW0xKS0+cmVmX2Nv
dW50LCA9PSwgMSk7CisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGl0ZW0yKS0+cmVmX2Nv
dW50LCA9PSwgMSk7CisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGl0ZW0zKS0+cmVmX2Nv
dW50LCA9PSwgMSk7CisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGl0ZW00KS0+cmVmX2Nv
dW50LCA9PSwgMSk7CiAgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKGJhY2tGb3J3YXJkTGlz
dCktPnJlZl9jb3VudCwgPT0sIDEpOwotICAgIGdfb2JqZWN0X3VucmVmKGJhY2tGb3J3YXJkTGlz
dCk7CisgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3Rf
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9vcmRlcih2b2lkKQpAQCAtMTg3LDEwICsxODMs
NiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfb3JkZXIo
dm9pZCkKICAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3Vy
aShjdXJyZW50SXRlbSksID09LCAiaHR0cDovL2V4YW1wbGUuY29tLzIvIik7CiAgICAgZ19hc3Nl
cnRfY21wc3RyKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZShjdXJyZW50SXRlbSks
ID09LCAiU2l0ZSAyIik7CiAKLSAgICBnX29iamVjdF91bnJlZihpdGVtMSk7Ci0gICAgZ19vYmpl
Y3RfdW5yZWYoaXRlbTIpOwotICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0zKTsKLSAgICBnX29iamVj
dF91bnJlZihpdGVtNCk7CiAgICAgZ19saXN0X2ZyZWUoZm9yd2FyZExpc3QpOwogICAgIGdfb2Jq
ZWN0X3VucmVmKHdlYlZpZXcpOwogfQpAQCAtMjM4LDcgKzIzMCw2IEBAIHN0YXRpYyB2b2lkIHRl
c3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbSh2b2lkKQogICAgIGFkZEl0
ZW0yID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSgiaHR0cDovL2V4YW1w
bGUuY29tLzIvIiwgIkFkZGVkIHNpdGUgMiIpOwogICAgIHdlYmtpdF93ZWJfYmFja19mb3J3YXJk
X2xpc3RfYWRkX2l0ZW0od2ViQmFja0ZvcndhcmRMaXN0LCBhZGRJdGVtMik7CiAgICAgZ19hc3Nl
cnQod2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb250YWluc19pdGVtKHdlYkJhY2tGb3J3
YXJkTGlzdCwgYWRkSXRlbTIpKTsKLSAgICBnX29iamVjdF91bnJlZihhZGRJdGVtMik7CiAKICAg
ICAvLyBDaGVjayB0aGF0IHRoZSBhZGRlZCBpdGVtIGlzIG5ldyBjdXJyZW50IGl0ZW0uCiAgICAg
Y3VycmVudEl0ZW0gPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9jdXJyZW50X2l0
ZW0od2ViQmFja0ZvcndhcmRMaXN0KTsKQEAgLTI2Miw3ICsyNTMsNiBAQCBzdGF0aWMgdm9pZCB0
ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0odm9pZCkKICAgICBnX2Fz
c2VydCh3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQod2ViVmlldykpOwogICAgIGdfYXNz
ZXJ0KCF3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2sod2ViVmlldykpOwogCi0gICAgZ19vYmpl
Y3RfdW5yZWYoYWRkSXRlbTEpOwogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwogfQogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jIGIvV2ViS2l0
L2d0ay90ZXN0cy90ZXN0d2ViaGlzdG9yeWl0ZW0uYwppbmRleCA2MDM4YzY0Li5iOTQwYWZiIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jCisrKyBiL1dl
YktpdC9ndGsvdGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtLmMKQEAgLTMxLDcgKzMxLDcgQEAgc3Rh
dGljIHZvaWQgd2ViX2hpc3RvcnlfaXRlbV9maXh0dXJlX3NldHVwKFdlYkhpc3RvcnlJdGVtRml4
dHVyZSogZml4dHVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnY29uc3Rwb2ludGVyIGRhdGEpCiB7CiAgICAgZml4dHVyZS0+aXRlbSA9IHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEoImh0dHA6Ly9leGFtcGxlLmNvbS8iLCAiRXhhbXBs
ZTEiKTsKLSAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QoZml4dHVyZS0+aXRlbSktPnJlZl9j
b3VudCwgPT0gLCAyKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QoZml4dHVyZS0+aXRl
bSktPnJlZl9jb3VudCwgPT0gLCAxKTsKICAgICBnX2Fzc2VydChmaXh0dXJlLT5pdGVtICE9IE5V
TEwpOwogfQogCkBAIC0zOSw4ICszOSw2IEBAIHN0YXRpYyB2b2lkIHdlYl9oaXN0b3J5X2l0ZW1f
Zml4dHVyZV90ZWFyZG93bihXZWJIaXN0b3J5SXRlbUZpeHR1cmUqIGZpeHR1cmUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NvbnN0cG9pbnRlciBkYXRh
KQogewogICAgIGdfYXNzZXJ0KGZpeHR1cmUtPml0ZW0gIT0gTlVMTCk7Ci0gICAgZ19hc3NlcnRf
Y21waW50KEdfT0JKRUNUKGZpeHR1cmUtPml0ZW0pLT5yZWZfY291bnQsID09LCAyKTsKLSAgICBn
X29iamVjdF91bnJlZihmaXh0dXJlLT5pdGVtKTsKICAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpF
Q1QoZml4dHVyZS0+aXRlbSktPnJlZl9jb3VudCwgPT0sIDEpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRwcml2YXRlLmgKaW5kZXggOTNiYjgyMC4uMjY5MjRkYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaApAQCAtMjE1LDYgKzIxNSw5IEBAIGV4dGVybiAiQyIgewogCiAgICAgYm9vbAogICAg
IHdlYmtpdF93ZWJfdmlld191c2VfcHJpbWFyeV9mb3JfcGFzdGUoV2ViS2l0V2ViVmlldyogd2Vi
X3ZpZXcpOworCisgICAgR0hhc2hUYWJsZSoKKyAgICB3ZWJraXRfaGlzdG9yeV9pdGVtcyh2b2lk
KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJi
YWNrZm9yd2FyZGxpc3QuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2Zvcndh
cmRsaXN0LmNwcAppbmRleCA0MmRhOGFjLi5lNjcxZGVkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChD
KSAyMDA5IElnYWxpYSBTLkwuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTUzLDE0ICs1NCwzNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBzdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3YXJk
TGlzdFByaXZhdGUgewogICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRM
aXN0OworICAgIGdib29sZWFuIGRpc3Bvc2VkOwogfTsKIAogI2RlZmluZSBXRUJLSVRfV0VCX0JB
Q0tfRk9SV0FSRF9MSVNUX0dFVF9QUklWQVRFKG9iaikgICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRf
UFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0JBQ0tfRk9SV0FSRF9MSVNULCBXZWJLaXRX
ZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlKSkKIAogR19ERUZJTkVfVFlQRShXZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3QsIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3QsIEdfVFlQRV9PQkpFQ1Qp
OwogCitzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2Rpc3Bvc2UoR09i
amVjdCogb2JqZWN0KQoreworICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCogbGlzdCA9IFdF
QktJVF9XRUJfQkFDS19GT1JXQVJEX0xJU1Qob2JqZWN0KTsKKyAgICBXZWJDb3JlOjpCYWNrRm9y
d2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUobGlzdCk7CisgICAgV2ViS2l0V2ViQmFj
a0ZvcndhcmRMaXN0UHJpdmF0ZSogcHJpdiA9IGxpc3QtPnByaXY7CisKKyAgICBpZiAoIXByaXYt
PmRpc3Bvc2VkKSB7CisgICAgICAgIHByaXYtPmRpc3Bvc2VkID0gdHJ1ZTsKKworICAgICAgICBX
ZWJDb3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVtcyA9IGJhY2tGb3J3YXJkTGlzdC0+ZW50cmll
cygpOworICAgICAgICBHSGFzaFRhYmxlKiB0YWJsZSA9IHdlYmtpdF9oaXN0b3J5X2l0ZW1zKCk7
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7IGkrKykKKyAg
ICAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUodGFibGUsIGl0ZW1zW2ldLmdldCgpKTsKKyAg
ICB9CisKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3Bh
cmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9jbGFzc19pbml0KFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdENs
YXNzKiBrbGFzcykKIHsKKyAgICBHT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNU
X0NMQVNTKGtsYXNzKTsKKworICAgIG9iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZGlzcG9zZTsKKwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0
ZShrbGFzcywgc2l6ZW9mKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUpKTsKIH0KIApA
QCAtMzk1LDYgKzQxOSwxMCBAQCB2b2lkIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfc2V0
X2xpbWl0KFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCogd2ViQmFja0ZvcgogICoKICAqIEFkZHMg
dGhlIGl0ZW0gdG8gdGhlICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QuCiAgKgorICogVGhlIEB3
ZWJCYWNrRm9yd2FyZExpc3Qgd2lsbCBzdGVhbCB0aGUgcmVmZXJlbmNlIG9mIHRoZQorICogQHdl
Ykhpc3RvcnlJdGVtLCBzbyB5b3UgZG9uJ3QgbmVlZCB0byB1bnJlZiBpdCBhZnRlciBhZGRpbmcg
aXQgdG8KKyAqIHRoZSBsaXN0LgorICoKICAqIFNpbmNlOiAxLjEuMQogICovCiB2b2lkIHdlYmtp
dF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0oV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0
ICp3ZWJCYWNrRm9yd2FyZExpc3QsIFdlYktpdFdlYkhpc3RvcnlJdGVtICp3ZWJIaXN0b3J5SXRl
bSkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNw
cCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcAppbmRleCBlMmRh
NTViLi5jNzBiNjRmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0
b3J5aXRlbS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0u
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBKYW4g
TWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC03OSwzNyArODAsMjggQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9oaXN0b3J5X2l0ZW1fc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwKIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyog
cHNwZWMpOwogCi1zdGF0aWMgR0hhc2hUYWJsZSogd2Via2l0X2hpc3RvcnlfaXRlbXMoKQorR0hh
c2hUYWJsZSogd2Via2l0X2hpc3RvcnlfaXRlbXMoKQogewogICAgIHN0YXRpYyBHSGFzaFRhYmxl
KiBoaXN0b3J5SXRlbXMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19kaXJlY3RfaGFzaCwgZ19k
aXJlY3RfZXF1YWwsIE5VTEwsIGdfb2JqZWN0X3VucmVmKTsKICAgICByZXR1cm4gaGlzdG9yeUl0
ZW1zOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZChXZWJLaXRXZWJI
aXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0sIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5
SXRlbSkKK3ZvaWQgd2Via2l0X2hpc3RvcnlfaXRlbV9hZGQoV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IHdlYkhpc3RvcnlJdGVtLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9yeUl0ZW0pCiB7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5
SXRlbSkpOwogCiAgICAgR0hhc2hUYWJsZSogdGFibGUgPSB3ZWJraXRfaGlzdG9yeV9pdGVtcygp
OwotCi0gICAgZ19oYXNoX3RhYmxlX2luc2VydCh0YWJsZSwgaGlzdG9yeUl0ZW0sIGdfb2JqZWN0
X3JlZih3ZWJIaXN0b3J5SXRlbSkpOworICAgIGdfaGFzaF90YWJsZV9pbnNlcnQodGFibGUsIGhp
c3RvcnlJdGVtLCB3ZWJIaXN0b3J5SXRlbSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQogewogICAgIFdlYktpdFdlYkhp
c3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSA9IFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKG9iamVj
dCk7CiAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKiBwcml2ID0gd2ViSGlzdG9yeUl0
ZW0tPnByaXY7Ci0gICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKHdlYkhpc3Rv
cnlJdGVtKTsKIAogICAgIGlmICghcHJpdi0+ZGlzcG9zZWQpIHsKLSAgICAgICAgR0hhc2hUYWJs
ZSogdGFibGUgPSB3ZWJraXRfaGlzdG9yeV9pdGVtcygpOwotCi0gICAgICAgIGdfaGFzaF90YWJs
ZV9yZW1vdmUodGFibGUsIGl0ZW0pOworICAgICAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRl
bSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOwogICAgICAgICBpdGVtLT5kZXJlZigpOwotCi0gICAg
ICAgIC8qIGRlc3Ryb3kgdGFibGUgaWYgZW1wdHkgKi8KLSAgICAgICAgaWYgKCFnX2hhc2hfdGFi
bGVfc2l6ZSh0YWJsZSkpCi0gICAgICAgICAgICBnX2hhc2hfdGFibGVfZGVzdHJveSh0YWJsZSk7
Ci0KICAgICAgICAgcHJpdi0+ZGlzcG9zZWQgPSB0cnVlOwogICAgIH0KIApAQCAtNDk2LDExICs0
ODgsOCBAQCBXZWJLaXRXZWJIaXN0b3J5SXRlbSogV2ViS2l0OjpraXQoUGFzc1JlZlB0cjxXZWJD
b3JlOjpIaXN0b3J5SXRlbT4gaGlzdG9yeUl0ZW0pCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
aGlzdG9yeUl0ZW0sIE5VTEwpOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBp
dGVtID0gaGlzdG9yeUl0ZW07Ci0KLSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlzdG9y
eUl0ZW07CiAgICAgR0hhc2hUYWJsZSogdGFibGUgPSB3ZWJraXRfaGlzdG9yeV9pdGVtcygpOwot
Ci0gICAgd2ViSGlzdG9yeUl0ZW0gPSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKSBnX2hhc2hfdGFi
bGVfbG9va3VwKHRhYmxlLCBpdGVtLmdldCgpKTsKKyAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSog
d2ViSGlzdG9yeUl0ZW0gPSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKSBnX2hhc2hfdGFibGVfbG9v
a3VwKHRhYmxlLCBpdGVtLmdldCgpKTsKIAogICAgIGlmICghd2ViSGlzdG9yeUl0ZW0pIHsKICAg
ICAgICAgd2ViSGlzdG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfV0VCX0hJU1RPUllfSVRFTSwgTlVMTCkpOwotLSAKMS42LjIuMgoK
</data>
<flag name="review"
          id="15571"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>