<?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>69391</bug_id>
          
          <creation_ts>2011-10-04 18:19:40 -0700</creation_ts>
          <short_desc>[chromium] Expose threaded compositor via a runtime setting</short_desc>
          <delta_ts>2011-10-05 16:45:34 -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>WebCore Misc.</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="Vangelis Kokkevis">vangelis</reporter>
          <assigned_to name="Vangelis Kokkevis">vangelis</assigned_to>
          <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>478101</commentid>
    <comment_count>0</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-10-04 18:19:40 -0700</bug_when>
    <thetext>Threaded compositor is currently behind a compile time flag which makes it awkward to switch between threaded and non-threaded modes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478170</commentid>
    <comment_count>1</comment_count>
      <attachid>109746</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-10-04 23:01:00 -0700</bug_when>
    <thetext>Created attachment 109746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478615</commentid>
    <comment_count>2</comment_count>
      <attachid>109845</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-10-05 13:18:11 -0700</bug_when>
    <thetext>Created attachment 109845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478620</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 13:21:51 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478715</commentid>
    <comment_count>4</comment_count>
      <attachid>109845</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 15:10:04 -0700</bug_when>
    <thetext>Comment on attachment 109845
Patch

Rejecting attachment 109845 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
24aaab553fd1b1cc1d4479459a38aa671b28fbd3
r96756 = 6ca3323c04544b200ce5f60627ce3afca52b5e5c
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/9968045</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478736</commentid>
    <comment_count>5</comment_count>
      <attachid>109873</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-10-05 15:33:30 -0700</bug_when>
    <thetext>Created attachment 109873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478739</commentid>
    <comment_count>6</comment_count>
      <attachid>109873</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 15:34:57 -0700</bug_when>
    <thetext>Comment on attachment 109873
Patch

Rejecting attachment 109873 from review queue.

vangelis@chromium.org does not have reviewer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have reviewer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have reviewer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your reviewer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478783</commentid>
    <comment_count>7</comment_count>
      <attachid>109873</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 16:45:30 -0700</bug_when>
    <thetext>Comment on attachment 109873
Patch

Clearing flags on attachment: 109873

Committed r96766: &lt;http://trac.webkit.org/changeset/96766&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478785</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 16:45:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109746</attachid>
            <date>2011-10-04 23:01:00 -0700</date>
            <delta_ts>2011-10-05 13:18:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69391-20111004225849.patch</filename>
            <type>text/plain</type>
            <size>17797</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2Njc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTAtMDQgIFZhbmdlbGlz
IEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaGluZyB0
aHJlYWRlZCBjb21wb3NpdG9yIGZyb20gYSBjb21waWxlIHRpbWUgb3B0aW9uIHRvIGEKKyAgICAg
ICAgcnVuIHRpbWUgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjkzOTEKKyAgICAgICAgCisgICAgICAgIE1vc3RseSBjb252ZXJ0ZWQgI2lmIFVT
RShUSFJFQURFRF9DT01QT1NJVElORykgdG8gYSByZWd1bGFyIGlmIHN0YXRlbWVudHMuCisgICAg
ICAgIEluIGFkZGl0aW9uLCBDQ0xheWVyVHJlZUhvc3Q6OnNjaGVkdWxlQ29tcG9zaXRlKCkgaXMg
cmVtb3ZlZCBhcyBpdCB3YXNuJ3QgYmVpbmcKKyAgICAgICAgY2FsbGVkIGZyb20gYW55d2hlcmUs
IAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBpdCBkb2Vzbid0IGFkZCBuZXcgZnVuY3Rpb25h
bGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRz
Q29tbWl0VGhlblJlZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6Y29tcG9z
aXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Npbmds
ZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6
OnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1NpbmdsZVRo
cmVhZFByb3h5Ojpjb21wb3NpdGVJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oOgorCiAyMDExLTEwLTA0ICBE
YXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzOTgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcAkocmV2aXNpb24gOTY2NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjAsMTMgKzE2MCw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkaWRSZWNyZWF0ZUdyYXBo
aWMKICAgICBtX2NsaWVudC0+ZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoc3VjY2Vzcyk7CiB9
CiAKLSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotdm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OnNjaGVkdWxlQ29tcG9zaXRlKCkKLXsKLSAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUo
KTsKLX0KLSNlbmRpZgotCiAvLyBUZW1wb3JhcnkgaGFjayB1bnRpbCBXZWJWaWV3SW1wbCBjb250
ZXh0IGNyZWF0aW9uIGdldHMgc2ltcGxpZmllZAogR3JhcGhpY3NDb250ZXh0M0QqIENDTGF5ZXJU
cmVlSG9zdDo6Y29udGV4dCgpCiB7CkBAIC0yMDEsMjEgKzE5NCwxOSBAQCB2b2lkIENDTGF5ZXJU
cmVlSG9zdDo6c2V0Wm9vbUFuaW1hdG9yVHJhCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXRO
ZWVkc0NvbW1pdFRoZW5SZWRyYXcoKQogewotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykK
LSAgICBUUkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0OjpzZXROZWVkc0NvbW1pdFRoZW5SZWRy
YXciLCB0aGlzLCAwKTsKLSAgICBtX3Byb3h5LT5zZXROZWVkc0NvbW1pdFRoZW5SZWRyYXcoKTsK
LSNlbHNlCi0gICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0jZW5kaWYKKyAgICBp
ZiAobV9zZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkKSB7CisgICAgICAgIFRSQUNFX0VW
RU5UKCJDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzUmVkcmF3IiwgdGhpcywgMCk7CisgICAgICAg
IG1fcHJveHktPnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpOworICAgIH0gZWxzZQorICAgICAg
ICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnNldE5lZWRzUmVkcmF3KCkKIHsKLSNpZiBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0g
ICAgbV9wcm94eS0+c2V0TmVlZHNSZWRyYXcoKTsKLSNlbHNlCi0gICAgbV9jbGllbnQtPnNjaGVk
dWxlQ29tcG9zaXRlKCk7Ci0jZW5kaWYKKyAgICBpZiAobV9zZXR0aW5ncy5lbmFibGVDb21wb3Np
dG9yVGhyZWFkKQorICAgICAgICBtX3Byb3h5LT5zZXROZWVkc1JlZHJhdygpOworICAgIGVsc2UK
KyAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7CiB9CiAKIHZvaWQgQ0NMYXll
clRyZWVIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUpCkBAIC0y
NDYsMTMgKzIzNywxMSBAQCBUZXh0dXJlTWFuYWdlciogQ0NMYXllclRyZWVIb3N0Ojpjb250ZW50
CiAgICAgcmV0dXJuIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFV
U0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6Y29tcG9zaXRl
KCkKIHsKICAgICBBU1NFUlQoIW1fc2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRvclRocmVhZCk7CiAg
ICAgc3RhdGljX2Nhc3Q8Q0NTaW5nbGVUaHJlYWRQcm94eSo+KG1fcHJveHkuZ2V0KCkpLT5jb21w
b3NpdGVJbW1lZGlhdGVseSgpOwogfQotI2VuZGlmIC8vICFVU0UoVEhSRUFERURfQ09NUE9TSVRJ
TkcpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoKQogewpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDk2Njc0KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMiw5ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxHcmFw
aGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1
YWwgUGFzc093blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBjcmVhdGVMYXllclRyZWVIb3N0SW1w
bCgpOwogICAgIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsK
LSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGUoKTsKLSNlbmRpZgogICAgIHZvaWQgZGVsZXRlQ29udGVudHNUZXh0dXJlc09uQ0NUaHJlYWQo
VGV4dHVyZUFsbG9jYXRvciopOwogCiAgICAgLy8gQ0NMYXllclRyZWVIb3N0IGludGVyZmFjZSB0
byBXZWJWaWV3LgpAQCAtMTEzLDkgKzExMCw4IEBAIHB1YmxpYzoKIAogICAgIENDTGF5ZXJUcmVl
SG9zdENsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotI2lmICFVU0UoVEhS
RUFERURfQ09NUE9TSVRJTkcpCisgICAgLy8gT25seSB1c2VkIHdoZW4gY29tcG9zaXRpbmcgb24g
dGhlIG1haW4gdGhyZWFkLgogICAgIHZvaWQgY29tcG9zaXRlKCk7Ci0jZW5kaWYKIAogICAgIEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2lu
Z2xlVGhyZWFkUHJveHkuY3BwCShyZXZpc2lvbiA5NjY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTksMTIgKzE1OSw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6
c2V0TmVlZHNDb21taXQKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRU
aGVuUmVkcmF3KCkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwotI2lm
ICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0gICAgbV9sYXllclRyZWVIb3N0LT5zY2hlZHVs
ZUNvbXBvc2l0ZSgpOwotI2Vsc2UKLSAgICAvLyBTaW5nbGUgdGhyZWFkZWQgb25seSB3b3JrcyB3
aXRoIFRIUkVBREVEX0NPTVBPU0lUSU5HLgotICAgIENSQVNIKCk7Ci0jZW5kaWYKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpOwogfQogCiB2b2lkIENDU2lu
Z2xlVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKQEAgLTE4Niw3ICsxODEsNiBAQCB2b2lk
IENDU2luZ2xlVGhyZWFkUHJveHk6OnN0b3AoKQogICAgIG1fbGF5ZXJUcmVlSG9zdCA9IDA7CiB9
CiAKLSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQogLy8gQ2FsbGVkIGJ5IHRoZSBsZWdh
Y3kgc2NoZWR1bGluZyBwYXRoIChlLmcuIHdoZXJlIHJlbmRlcl93aWRnZXQgZG9lcyB0aGUgc2No
ZWR1bGluZykKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9zaXRlSW1tZWRpYXRlbHko
KQogewpAQCAtMTk4LDggKzE5Miw2IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9z
aXRlSW1tZWQKICAgICBpZiAoZG9Db21wb3NpdGUoKSkKICAgICAgICAgbV9sYXllclRyZWVIb3N0
SW1wbC0+cHJlc2VudCgpOwogfQotI2VuZGlmCi0KIAogYm9vbCBDQ1NpbmdsZVRocmVhZFByb3h5
OjpyZWNyZWF0ZUNvbnRleHRJZk5lZWRlZCgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5n
bGVUaHJlYWRQcm94eS5oCShyZXZpc2lvbiA5NjY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAkod29ya2luZyBj
b3B5KQpAQCAtNTMsMTAgKzUzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydCgp
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKLSAgICAvLyBTcGVjaWFsIGNhc2UgZnVuY3Rp
b25zLgotI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCisgICAgLy8gQ2FsbGVkIGJ5IHRo
ZSBsZWdhY3kgcGF0aCB3aGVyZSBSZW5kZXJXaWRnZXQgZG9lcyB0aGUgc2NoZWR1bGluZy4KICAg
ICB2b2lkIGNvbXBvc2l0ZUltbWVkaWF0ZWx5KCk7Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDQ1NpbmdsZVRocmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2Njc3KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAxMS0x
MC0wNCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgU3dpdGNoaW5nIHRocmVhZGVkIGNvbXBvc2l0b3IgZnJvbSBhIGNvbXBpbGUgdGltZSBvcHRp
b24gdG8gYQorICAgICAgICBydW4gdGltZSBvbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM5MQorCisgICAgICAgIEFuIGFkZGl0aW9uYWwgY2hh
bmdlIHRvIHRoZSByZW5kZXJfd2lkZ2V0IG9uIHRoZSBjaHJvbWl1bSBzaWRlIHRvCisgICAgICAg
IG1ha2UgdXNlIG9mIHRoZSBuZXcgZGlkQWN0aXZhdGVDb21wb3NpdG9yIG1ldGhvZCBpcyBuZWNl
c3NhcnkgdG8KKyAgICAgICAgYWxsb3cgdGhlIHRocmVhZCB0byBydW4gYWdhaW4uCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNldHRp
bmdzLmg6CisgICAgICAgICogcHVibGljL1dlYldpZGdldENsaWVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaWRnZXRDbGllbnQ6OmRpZEFjdGl2YXRlQ29tcG9zaXRvcik6CisgICAgICAgICog
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1w
bDo6V2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpz
ZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
ZXR0aW5nc0ltcGw6OnNldFVzZVRocmVhZGVkQ29tcG9zaXRvcik6CisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnVzZVRo
cmVhZGVkQ29tcG9zaXRvcik6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFuaW1hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6Y29tcG9zaXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJv
b3RMYXllck5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJ
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpncmFwaGljc0NvbnRleHQzRCk6CisKIDIwMTEtMTAtMDQgIFNjb3R0IEdyYWhhbSAgPHNj
b3R0bWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBHQU1FUEFEIGZlYXR1cmUgZmxhZwpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCShyZXZp
c2lvbiA5NjY3MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldExlZ2FjeUFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKGludCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlVGhyZWFkZWRDb21wb3NpdG9yKGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgdXNlVGhyZWFkZWRDb21wb3NpdG9yKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpID0gMDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5o
CShyZXZpc2lvbiA5NjY3MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldp
ZGdldENsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMCArNTUsMTggQEAgcHVibGljOgog
ICAgIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBhbGwgaW1wbGVtZW50YXRpb25zIHN3aXRjaCBvdmVy
IHRvIGRpZEVuYWJsZS4uLi9kaWREaXNhYmxlLi4uCiAgICAgdmlydHVhbCB2b2lkIGRpZEFjdGl2
YXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhib29sIGFjdGl2ZSkgeyB9CiAKKyAgICAvLyBGSVhN
RTogUmVtb3ZlIHNpbmdsZS1wYXJhbWV0ZXIgdmVyc2lvbiBvZiBkaWRBY3RpdmF0ZUNvbXBvc2l0
b3Igb25jZQorICAgIC8vICAgICAgICBjaHJvbWl1bS1zaWRlIGNoYW5nZSB0byBSZW5kZXJXaWRn
ZXQgbGFuZHMuCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGNvbXBvc2l0b3IgaXMgZW5hYmxlZCBv
ciBkaXNhYmxlZC4KICAgICAvLyBUaGUgV2ViQ29tcG9zaXRvciBpZGVudGlmaWVyIGNhbiBiZSB1
c2VkIG9uIHRoZSBjb21wb3NpdG9yIHRocmVhZCB0byBnZXQgYWNjZXNzCiAgICAgLy8gdG8gdGhl
IFdlYkNvbXBvc2l0b3IgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgV2ViV2lkZ2V0Lgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBY3RpdmF0ZUNvbXBvc2l0b3IoaW50IGNvbXBvc2l0b3JJZGVu
dGlmaWVyKSB7IH0KKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgY29tcG9zaXRvciBpcyBlbmFibGVk
IG9yIGRpc2FibGVkLgorICAgIC8vIFRoZSBXZWJDb21wb3NpdG9yIGlkZW50aWZpZXIgY2FuIGJl
IHVzZWQgb24gdGhlIGNvbXBvc2l0b3IgdGhyZWFkIHRvIGdldCBhY2Nlc3MKKyAgICAvLyB0byB0
aGUgV2ViQ29tcG9zaXRvciBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJXaWRnZXQu
CisgICAgLy8gSWYgd2Vid2lkZ2V0SGFuZGxlc1NjaGVkdWxpbmcgaXMgc2V0IHRvIHRydWUgdGhl
biBjb21wb3NpdG9yIHNjaGVkdWxpbmcgaXMgaGFuZGxlZAorICAgIC8vIGRpcmVjdGx5IGJ5IHRo
ZSBXZWJXaWRnZXQuCisgICAgdmlydHVhbCB2b2lkIGRpZEFjdGl2YXRlQ29tcG9zaXRvcihpbnQg
Y29tcG9zaXRvcklkZW50aWZpZXIsIGJvb2wgd2Vid2lkZ2V0SGFuZGxlc1NjaGVkdWxpbmcpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWREZWFjdGl2YXRlQ29tcG9zaXRvcigpIHsgfQogCiAgICAg
Ly8gQ2FsbGVkIHdoZW4gYSBjYWxsIHRvIFdlYldpZGdldDo6Y29tcG9zaXRlIGlzIHJlcXVpcmVk
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAJKHJldmlzaW9uIDk2NjcyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0
dGluZ3NJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQCBXZWJTZXR0aW5n
c0ltcGw6OldlYlNldHRpbmdzSW1wbChTZXR0aW5nCiAgICAgLCBtX2NvbXBvc2l0ZVRvVGV4dHVy
ZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dGUFNDb3VudGVyKGZhbHNlKQogICAgICwgbV9z
aG93UGxhdGZvcm1MYXllclRyZWUoZmFsc2UpCisgICAgLCBtX3VzZVRocmVhZGVkQ29tcG9zaXRv
cihmYWxzZSkKIHsKICAgICBBU1NFUlQoc2V0dGluZ3MpOwogfQpAQCAtMzY4LDYgKzM2OSwxMSBA
QCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0TWluaW11bUFjY2VsZXJhCiAgICAgbV9zZXR0aW5n
cy0+c2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKG51bVBpeGVscyk7CiB9CiAKK3Zv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRVc2VUaHJlYWRlZENvbXBvc2l0b3IoYm9vbCB1c2VUaHJl
YWRlZENvbXBvc2l0b3IpCit7CisgICAgbV91c2VUaHJlYWRlZENvbXBvc2l0b3IgPSB1c2VUaHJl
YWRlZENvbXBvc2l0b3I7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRNZW1vcnlJbmZv
RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0TWVtb3J5SW5mb0Vu
YWJsZWQoZW5hYmxlZCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaAkocmV2aXNpb24gOTY2NzIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnYWN5QWNjZWxlcmF0ZWQyZENhbnZhc0Vu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE1pbmltdW1BY2NlbGVyYXRlZDJkQ2Fu
dmFzU2l6ZShpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRVc2VUaHJlYWRlZENvbXBvc2l0b3IoYm9v
bCk7CisgICAgdmlydHVhbCBib29sIHVzZVRocmVhZGVkQ29tcG9zaXRvcigpIGNvbnN0IHsgcmV0
dXJuIG1fdXNlVGhyZWFkZWRDb21wb3NpdG9yOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1lbW9y
eUluZm9FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRIeXBlcmxpbmtBdWRpdGlu
Z0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKGJvb2wpOwpAQCAtMTI2LDYgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2NvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3Nob3dGUFNDb3VudGVy
OwogICAgIGJvb2wgbV9zaG93UGxhdGZvcm1MYXllclRyZWU7CisgICAgYm9vbCBtX3VzZVRocmVh
ZGVkQ29tcG9zaXRvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gOTY2NzIpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNTEsMTUgKzEwNTEsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0ZShkb3Vi
bGUgZnJhbWVCZQogICAgIGlmICh3ZWJmcmFtZSkgewogICAgICAgICBGcmFtZVZpZXcqIHZpZXcg
PSB3ZWJmcmFtZS0+ZnJhbWVWaWV3KCk7CiAgICAgICAgIGlmICh2aWV3KSB7Ci0jaWYgIVVTRShU
SFJFQURFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisg
ICAgICAgICAgICBpZiAoIXNldHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigpICYmIG1f
bGF5ZXJUcmVlSG9zdCkKICAgICAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldEFuaW1h
dGluZyh0cnVlKTsKLSNlbmRpZgorCiAgICAgICAgICAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRB
bmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoZnJhbWVCZWdpblRpbWUpKTsK
LSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAgaWYgKG1fbGF5ZXJU
cmVlSG9zdCkKKworICAgICAgICAgICAgaWYgKCFzZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBv
c2l0b3IoKSAmJiBtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgICAgICAgICAgbV9sYXllclRyZWVI
b3N0LT5zZXRBbmltYXRpbmcoZmFsc2UpOwotI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAjZW5k
aWYKQEAgLTExNjAsMTggKzExNTgsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6dGhlbWVDaGFuZ2Vk
KCkKIHZvaWQgV2ViVmlld0ltcGw6OmNvbXBvc2l0ZShib29sKQogewogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLSNpZiBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0gICAgbV9s
YXllclRyZWVIb3N0LT5zZXROZWVkc1JlZHJhdygpOwotI2Vsc2UKLSAgICBBU1NFUlQoaXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpOwotICAgIGlmICghcGFnZSgpKQotICAgICAgICBy
ZXR1cm47CisgICAgaWYgKHNldHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigpKQorICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5lZWRzUmVkcmF3KCk7CisgICAgZWxzZSB7CisgICAg
ICAgIEFTU0VSVChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSk7CisgICAgICAgIGlm
ICghcGFnZSgpKQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fcGFnZU92ZXJsYXkp
Ci0gICAgICAgIG1fcGFnZU92ZXJsYXktPnVwZGF0ZSgpOworICAgICAgICBpZiAobV9wYWdlT3Zl
cmxheSkKKyAgICAgICAgICAgIG1fcGFnZU92ZXJsYXktPnVwZGF0ZSgpOwogCi0gICAgbV9sYXll
clRyZWVIb3N0LT5jb21wb3NpdGUoKTsKLSNlbmRpZgorICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PmNvbXBvc2l0ZSgpOworICAgIH0KICNlbmRpZgogfQogCkBAIC0yNTcwLDEyICsyNTY4LDggQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c2V0Um9vdExheWVyTmVlZHNEaXNwbAogICAgICAgICB6b29tTWF0
cml4LnNjYWxlKG1fcGFnZS0+c2V0dGluZ3MoKS0+em9vbUFuaW1hdG9yU2NhbGUoKSk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKHpvb21NYXRyaXgp
OwogICAgIH0KLSNpZiBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fbGF5ZXJU
cmVlSG9zdCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVkc0NvbW1pdFRoZW5SZWRy
YXcoKTsKLSNlbHNlCi0gICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsUm9vdExheWVyUmVjdChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCkBAIC0yNjUxLDE3ICsyNjQ1
LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3MKIAogICAgICAg
ICBtX2NsaWVudC0+ZGlkQWN0aXZhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nKHRydWUpOwogICAg
ICAgICBtX2NsaWVudC0+ZGlkQWN0aXZhdGVDb21wb3NpdG9yKG1fd2ViQ29tcG9zaXRvckltcGwt
PmlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fY2xpZW50LT5kaWRBY3RpdmF0ZUNvbXBvc2l0b3Io
bV93ZWJDb21wb3NpdG9ySW1wbC0+aWRlbnRpZmllcigpLCBzZXR0aW5ncygpLT51c2VUaHJlYWRl
ZENvbXBvc2l0b3IoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgVFJBQ0VfRVZFTlQoIldlYlZp
ZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUodHJ1ZSkiLCB0aGlzLCAw
KTsKIAogICAgICAgICBXZWJDb3JlOjpDQ1NldHRpbmdzIGNjU2V0dGluZ3M7CiAgICAgICAgIGNj
U2V0dGluZ3MuYWNjZWxlcmF0ZVBhaW50aW5nID0gcGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVy
YXRlZERyYXdpbmdFbmFibGVkKCk7CiAgICAgICAgIGNjU2V0dGluZ3MuY29tcG9zaXRlT2Zmc2Ny
ZWVuID0gc2V0dGluZ3MoKS0+Y29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZCgpOwotI2lmIFVTRShU
SFJFQURFRF9DT01QT1NJVElORykKLSAgICAgICAgY2NTZXR0aW5ncy5lbmFibGVDb21wb3NpdG9y
VGhyZWFkID0gdHJ1ZTsKLSNlbHNlCi0gICAgICAgIGNjU2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRv
clRocmVhZCA9IGZhbHNlOwotI2VuZGlmCisgICAgICAgIGNjU2V0dGluZ3MuZW5hYmxlQ29tcG9z
aXRvclRocmVhZCA9IHNldHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigpOwogICAgICAg
ICBjY1NldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2V0dGluZ3MoKS0+c2hvd0ZQU0NvdW50ZXIo
KTsKICAgICAgICAgY2NTZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUgPSBzZXR0aW5ncygp
LT5zaG93UGxhdGZvcm1MYXllclRyZWUoKTsKIApAQCAtMjY3Myw2ICsyNjY0LDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvcwogICAgICAgICAgICAgdXBkYXRlTGF5
ZXJUcmVlVmlld3BvcnQoKTsKICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRBY3RpdmF0ZUFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQWN0aXZh
dGVDb21wb3NpdG9yKG1fd2ViQ29tcG9zaXRvckltcGwtPmlkZW50aWZpZXIoKSk7CisgICAgICAg
ICAgICBtX2NsaWVudC0+ZGlkQWN0aXZhdGVDb21wb3NpdG9yKG1fd2ViQ29tcG9zaXRvckltcGwt
PmlkZW50aWZpZXIoKSwgc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCkpOwogICAg
ICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPSB0cnVlOwogICAgICAg
ICAgICAgbV9jb21wb3NpdG9yQ3JlYXRpb25GYWlsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGlm
IChtX3BhZ2VPdmVybGF5KQpAQCAtMjY5NCwxMSArMjY4NiwxMCBAQCBQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBXZWJWaWV3SW1wCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBjb250ZXh0ID0gbV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNELnJlbGVhc2Uo
KTsKICAgICBpZiAoIWNvbnRleHQpIHsKLSNpZiBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0g
ICAgICAgIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNz
Q29udGV4dEZvckFub3RoZXJUaHJlYWQoZ2V0Q29tcG9zaXRvckNvbnRleHRBdHRyaWJ1dGVzKCks
IG1fcGFnZS0+Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9z
dFdpbmRvdyk7Ci0jZWxzZQotICAgICAgICBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OmNy
ZWF0ZShnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5jaHJvbWUoKSwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsKLSNlbmRpZgor
ICAgICAgICBpZiAoc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCkpCisgICAgICAg
ICAgICBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0Nv
bnRleHRGb3JBbm90aGVyVGhyZWFkKGdldENvbXBvc2l0b3JDb250ZXh0QXR0cmlidXRlcygpLCBt
X3BhZ2UtPmNocm9tZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RX
aW5kb3cpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZShnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5j
aHJvbWUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsK
ICAgICB9CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CkBAIC0yNzM2LDEyICsyNzI3LDExIEBAIHZv
aWQgV2ViVmlld0ltcGw6OmRpZFJlY3JlYXRlR3JhcGhpY3NDb24KICAgICAgICAgbV9wYWdlT3Zl
cmxheS0+dXBkYXRlKCk7CiB9CiAKLSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQogdm9p
ZCBXZWJWaWV3SW1wbDo6c2NoZWR1bGVDb21wb3NpdGUoKQogeworICAgIEFTU0VSVCghc2V0dGlu
Z3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCkpOwogICAgIG1fY2xpZW50LT5zY2hlZHVsZUNv
bXBvc2l0ZSgpOwogfQotI2VuZGlmCiAKIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUxheWVyVHJl
ZVZpZXdwb3J0KCkKIHsKQEAgLTI3NzAsMTEgKzI3NjAsMTEgQEAgV2ViR3JhcGhpY3NDb250ZXh0
M0QqIFdlYlZpZXdJbXBsOjpncmFwaAogICAgICAgICAgICAgaWYgKHdlYkNvbnRleHQgJiYgIXdl
YkNvbnRleHQtPmlzQ29udGV4dExvc3QoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gd2ViQ29u
dGV4dDsKICAgICAgICAgfQotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKLSAgICAgICAg
bV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEID0gR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGb3JBbm90aGVyVGhyZWFkKGdldENvbXBvc2l0
b3JDb250ZXh0QXR0cmlidXRlcygpLCBtX3BhZ2UtPmNocm9tZSgpLCBHcmFwaGljc0NvbnRleHQz
RDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpOwotI2Vsc2UKLSAgICAgICAgbV90ZW1wb3Jh
cnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEID0gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShn
ZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5jaHJvbWUoKSwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsKLSNlbmRpZgorICAgICAg
ICBpZiAoc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCkpCisgICAgICAgICAgICBt
X3RlbXBvcmFyeU9uc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QgPSBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZvckFub3RoZXJUaHJlYWQoZ2V0Q29tcG9zaXRv
ckNvbnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1fdGVtcG9yYXJ5T25zY3JlZW5HcmFwaGljc0NvbnRleHQzRCA9IEdyYXBoaWNzQ29udGV4dDNE
OjpjcmVhdGUoZ2V0Q29tcG9zaXRvckNvbnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+Y2hyb21l
KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7CisKICAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNz
Q29udGV4dDNEKG1fdGVtcG9yYXJ5T25zY3JlZW5HcmFwaGljc0NvbnRleHQzRC5nZXQoKSk7CiAg
ICAgfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109845</attachid>
            <date>2011-10-05 13:18:11 -0700</date>
            <delta_ts>2011-10-05 15:33:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69391-20111005131600.patch</filename>
            <type>text/plain</type>
            <size>15225</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2Njc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTAtMDQgIFZhbmdlbGlz
IEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaGluZyB0
aHJlYWRlZCBjb21wb3NpdG9yIGZyb20gYSBjb21waWxlIHRpbWUgb3B0aW9uIHRvIGEKKyAgICAg
ICAgcnVuIHRpbWUgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjkzOTEKKyAgICAgICAgCisgICAgICAgIE1vc3RseSBjb252ZXJ0ZWQgI2lmIFVT
RShUSFJFQURFRF9DT01QT1NJVElORykgdG8gYSByZWd1bGFyIGlmIHN0YXRlbWVudHMuCisgICAg
ICAgIEluIGFkZGl0aW9uLCBDQ0xheWVyVHJlZUhvc3Q6OnNjaGVkdWxlQ29tcG9zaXRlKCkgaXMg
cmVtb3ZlZCBhcyBpdCB3YXNuJ3QgYmVpbmcKKyAgICAgICAgY2FsbGVkIGZyb20gYW55d2hlcmUs
IAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBpdCBkb2Vzbid0IGFkZCBuZXcgZnVuY3Rpb25h
bGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRz
Q29tbWl0VGhlblJlZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6Y29tcG9z
aXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Npbmds
ZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6
OnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1NpbmdsZVRo
cmVhZFByb3h5Ojpjb21wb3NpdGVJbW1lZGlhdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oOgorCiAyMDExLTEwLTA0ICBE
YXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzOTgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcAkocmV2aXNpb24gOTY2NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjAsMTMgKzE2MCw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkaWRSZWNyZWF0ZUdyYXBo
aWMKICAgICBtX2NsaWVudC0+ZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoc3VjY2Vzcyk7CiB9
CiAKLSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotdm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OnNjaGVkdWxlQ29tcG9zaXRlKCkKLXsKLSAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUo
KTsKLX0KLSNlbmRpZgotCiAvLyBUZW1wb3JhcnkgaGFjayB1bnRpbCBXZWJWaWV3SW1wbCBjb250
ZXh0IGNyZWF0aW9uIGdldHMgc2ltcGxpZmllZAogR3JhcGhpY3NDb250ZXh0M0QqIENDTGF5ZXJU
cmVlSG9zdDo6Y29udGV4dCgpCiB7CkBAIC0yMDEsMjEgKzE5NCwxOSBAQCB2b2lkIENDTGF5ZXJU
cmVlSG9zdDo6c2V0Wm9vbUFuaW1hdG9yVHJhCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXRO
ZWVkc0NvbW1pdFRoZW5SZWRyYXcoKQogewotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykK
LSAgICBUUkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0OjpzZXROZWVkc0NvbW1pdFRoZW5SZWRy
YXciLCB0aGlzLCAwKTsKLSAgICBtX3Byb3h5LT5zZXROZWVkc0NvbW1pdFRoZW5SZWRyYXcoKTsK
LSNlbHNlCi0gICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0jZW5kaWYKKyAgICBp
ZiAobV9zZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkKSB7CisgICAgICAgIFRSQUNFX0VW
RU5UKCJDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzUmVkcmF3IiwgdGhpcywgMCk7CisgICAgICAg
IG1fcHJveHktPnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpOworICAgIH0gZWxzZQorICAgICAg
ICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnNldE5lZWRzUmVkcmF3KCkKIHsKLSNpZiBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0g
ICAgbV9wcm94eS0+c2V0TmVlZHNSZWRyYXcoKTsKLSNlbHNlCi0gICAgbV9jbGllbnQtPnNjaGVk
dWxlQ29tcG9zaXRlKCk7Ci0jZW5kaWYKKyAgICBpZiAobV9zZXR0aW5ncy5lbmFibGVDb21wb3Np
dG9yVGhyZWFkKQorICAgICAgICBtX3Byb3h5LT5zZXROZWVkc1JlZHJhdygpOworICAgIGVsc2UK
KyAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7CiB9CiAKIHZvaWQgQ0NMYXll
clRyZWVIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUpCkBAIC0y
NDYsMTMgKzIzNywxMSBAQCBUZXh0dXJlTWFuYWdlciogQ0NMYXllclRyZWVIb3N0Ojpjb250ZW50
CiAgICAgcmV0dXJuIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFV
U0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6Y29tcG9zaXRl
KCkKIHsKICAgICBBU1NFUlQoIW1fc2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRvclRocmVhZCk7CiAg
ICAgc3RhdGljX2Nhc3Q8Q0NTaW5nbGVUaHJlYWRQcm94eSo+KG1fcHJveHkuZ2V0KCkpLT5jb21w
b3NpdGVJbW1lZGlhdGVseSgpOwogfQotI2VuZGlmIC8vICFVU0UoVEhSRUFERURfQ09NUE9TSVRJ
TkcpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoKQogewpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDk2Njc0KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMiw5ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxHcmFw
aGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1
YWwgUGFzc093blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBjcmVhdGVMYXllclRyZWVIb3N0SW1w
bCgpOwogICAgIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsK
LSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGUoKTsKLSNlbmRpZgogICAgIHZvaWQgZGVsZXRlQ29udGVudHNUZXh0dXJlc09uQ0NUaHJlYWQo
VGV4dHVyZUFsbG9jYXRvciopOwogCiAgICAgLy8gQ0NMYXllclRyZWVIb3N0IGludGVyZmFjZSB0
byBXZWJWaWV3LgpAQCAtMTEzLDkgKzExMCw4IEBAIHB1YmxpYzoKIAogICAgIENDTGF5ZXJUcmVl
SG9zdENsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotI2lmICFVU0UoVEhS
RUFERURfQ09NUE9TSVRJTkcpCisgICAgLy8gT25seSB1c2VkIHdoZW4gY29tcG9zaXRpbmcgb24g
dGhlIG1haW4gdGhyZWFkLgogICAgIHZvaWQgY29tcG9zaXRlKCk7Ci0jZW5kaWYKIAogICAgIEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2lu
Z2xlVGhyZWFkUHJveHkuY3BwCShyZXZpc2lvbiA5NjY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTksMTIgKzE1OSw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6
c2V0TmVlZHNDb21taXQKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRU
aGVuUmVkcmF3KCkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwotI2lm
ICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0gICAgbV9sYXllclRyZWVIb3N0LT5zY2hlZHVs
ZUNvbXBvc2l0ZSgpOwotI2Vsc2UKLSAgICAvLyBTaW5nbGUgdGhyZWFkZWQgb25seSB3b3JrcyB3
aXRoIFRIUkVBREVEX0NPTVBPU0lUSU5HLgotICAgIENSQVNIKCk7Ci0jZW5kaWYKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpOwogfQogCiB2b2lkIENDU2lu
Z2xlVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKQEAgLTE4Niw3ICsxODEsNiBAQCB2b2lk
IENDU2luZ2xlVGhyZWFkUHJveHk6OnN0b3AoKQogICAgIG1fbGF5ZXJUcmVlSG9zdCA9IDA7CiB9
CiAKLSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQogLy8gQ2FsbGVkIGJ5IHRoZSBsZWdh
Y3kgc2NoZWR1bGluZyBwYXRoIChlLmcuIHdoZXJlIHJlbmRlcl93aWRnZXQgZG9lcyB0aGUgc2No
ZWR1bGluZykKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9zaXRlSW1tZWRpYXRlbHko
KQogewpAQCAtMTk4LDggKzE5Miw2IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9z
aXRlSW1tZWQKICAgICBpZiAoZG9Db21wb3NpdGUoKSkKICAgICAgICAgbV9sYXllclRyZWVIb3N0
SW1wbC0+cHJlc2VudCgpOwogfQotI2VuZGlmCi0KIAogYm9vbCBDQ1NpbmdsZVRocmVhZFByb3h5
OjpyZWNyZWF0ZUNvbnRleHRJZk5lZWRlZCgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5n
bGVUaHJlYWRQcm94eS5oCShyZXZpc2lvbiA5NjY3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAkod29ya2luZyBj
b3B5KQpAQCAtNTMsMTAgKzUzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydCgp
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKLSAgICAvLyBTcGVjaWFsIGNhc2UgZnVuY3Rp
b25zLgotI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCisgICAgLy8gQ2FsbGVkIGJ5IHRo
ZSBsZWdhY3kgcGF0aCB3aGVyZSBSZW5kZXJXaWRnZXQgZG9lcyB0aGUgc2NoZWR1bGluZy4KICAg
ICB2b2lkIGNvbXBvc2l0ZUltbWVkaWF0ZWx5KCk7Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDQ1NpbmdsZVRocmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2Njc3KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0x
MC0wNCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgU3dpdGNoaW5nIHRocmVhZGVkIGNvbXBvc2l0b3IgZnJvbSBhIGNvbXBpbGUgdGltZSBvcHRp
b24gdG8gYQorICAgICAgICBydW4gdGltZSBvbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICog
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1w
bDo6V2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpz
ZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
ZXR0aW5nc0ltcGw6OnNldFVzZVRocmVhZGVkQ29tcG9zaXRvcik6CisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnVzZVRo
cmVhZGVkQ29tcG9zaXRvcik6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFuaW1hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6Y29tcG9zaXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJv
b3RMYXllck5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJ
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpncmFwaGljc0NvbnRleHQzRCk6CisKIDIwMTEtMTAtMDQgIFNjb3R0IEdyYWhhbSAgPHNj
b3R0bWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBHQU1FUEFEIGZlYXR1cmUgZmxhZwpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCShyZXZp
c2lvbiA5NjY3MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldExlZ2FjeUFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKGludCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlVGhyZWFkZWRDb21wb3NpdG9yKGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgdXNlVGhyZWFkZWRDb21wb3NpdG9yKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpID0gMDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAko
cmV2aXNpb24gOTY2NzIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBAIFdlYlNldHRpbmdzSW1w
bDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmcKICAgICAsIG1fY29tcG9zaXRlVG9UZXh0dXJlRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgLCBtX3Nob3dQ
bGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKKyAgICAsIG1fdXNlVGhyZWFkZWRDb21wb3NpdG9yKGZh
bHNlKQogewogICAgIEFTU0VSVChzZXR0aW5ncyk7CiB9CkBAIC0zNjgsNiArMzY5LDExIEBAIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRNaW5pbXVtQWNjZWxlcmEKICAgICBtX3NldHRpbmdzLT5z
ZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUobnVtUGl4ZWxzKTsKIH0KIAordm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldFVzZVRocmVhZGVkQ29tcG9zaXRvcihib29sIHVzZVRocmVhZGVk
Q29tcG9zaXRvcikKK3sKKyAgICBtX3VzZVRocmVhZGVkQ29tcG9zaXRvciA9IHVzZVRocmVhZGVk
Q29tcG9zaXRvcjsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldE1lbW9yeUluZm9FbmFi
bGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRNZW1vcnlJbmZvRW5hYmxl
ZChlbmFibGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oCShyZXZpc2lvbiA5NjY3MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdhY3lBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxl
ZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNT
aXplKGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
Ym9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFVzZVRocmVhZGVkQ29tcG9zaXRvcihib29sKTsK
KyAgICB2aXJ0dWFsIGJvb2wgdXNlVGhyZWFkZWRDb21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4g
bV91c2VUaHJlYWRlZENvbXBvc2l0b3I7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVtb3J5SW5m
b0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoYm9vbCk7CkBAIC0xMjYsNiArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
Y29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZDsKICAgICBib29sIG1fc2hvd0ZQU0NvdW50ZXI7CiAg
ICAgYm9vbCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZTsKKyAgICBib29sIG1fdXNlVGhyZWFkZWRD
b21wb3NpdG9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA5NjY3MikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA1MSwxNSArMTA1MSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlKGRvdWJsZSBm
cmFtZUJlCiAgICAgaWYgKHdlYmZyYW1lKSB7CiAgICAgICAgIEZyYW1lVmlldyogdmlldyA9IHdl
YmZyYW1lLT5mcmFtZVZpZXcoKTsKICAgICAgICAgaWYgKHZpZXcpIHsKLSNpZiAhVVNFKFRIUkVB
REVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAg
ICAgICAgIGlmICghc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCkgJiYgbV9sYXll
clRyZWVIb3N0KQogICAgICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0QW5pbWF0aW5n
KHRydWUpOwotI2VuZGlmCisKICAgICAgICAgICAgIHZpZXctPnNlcnZpY2VTY3JpcHRlZEFuaW1h
dGlvbnMoY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChmcmFtZUJlZ2luVGltZSkpOwotI2lm
ICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0gICAgICAgICAgICBpZiAobV9sYXllclRyZWVI
b3N0KQorCisgICAgICAgICAgICBpZiAoIXNldHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRv
cigpICYmIG1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldEFuaW1hdGluZyhmYWxzZSk7Ci0jZW5kaWYKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpA
QCAtMTE2MCwxOCArMTE1OCwxOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQog
dm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKLSAgICBtX2xheWVy
VHJlZUhvc3QtPnNldE5lZWRzUmVkcmF3KCk7Ci0jZWxzZQotICAgIEFTU0VSVChpc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdBY3RpdmUoKSk7Ci0gICAgaWYgKCFwYWdlKCkpCi0gICAgICAgIHJldHVy
bjsKKyAgICBpZiAoc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCkpCisgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNSZWRyYXcoKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKTsKKyAgICAgICAgaWYgKCFw
YWdlKCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9wYWdlT3ZlcmxheSkKLSAg
ICAgICAgbV9wYWdlT3ZlcmxheS0+dXBkYXRlKCk7CisgICAgICAgIGlmIChtX3BhZ2VPdmVybGF5
KQorICAgICAgICAgICAgbV9wYWdlT3ZlcmxheS0+dXBkYXRlKCk7CiAKLSAgICBtX2xheWVyVHJl
ZUhvc3QtPmNvbXBvc2l0ZSgpOwotI2VuZGlmCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29t
cG9zaXRlKCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTI1NzAsMTIgKzI1NjgsOCBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRSb290TGF5ZXJOZWVkc0Rpc3BsCiAgICAgICAgIHpvb21NYXRyaXgu
c2NhbGUobV9wYWdlLT5zZXR0aW5ncygpLT56b29tQW5pbWF0b3JTY2FsZSgpKTsKICAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oem9vbU1hdHJpeCk7CiAg
ICAgfQotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKICAgICBpZiAobV9sYXllclRyZWVI
b3N0KQogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygp
OwotI2Vsc2UKLSAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKLSNlbmRpZgogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjpzY3JvbGxSb290TGF5ZXJSZWN0KGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKQEAgLTI2NTcsMTEgKzI2NTEsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zCiAgICAgICAgIFdlYkNv
cmU6OkNDU2V0dGluZ3MgY2NTZXR0aW5nczsKICAgICAgICAgY2NTZXR0aW5ncy5hY2NlbGVyYXRl
UGFpbnRpbmcgPSBwYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
KTsKICAgICAgICAgY2NTZXR0aW5ncy5jb21wb3NpdGVPZmZzY3JlZW4gPSBzZXR0aW5ncygpLT5j
b21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCk7Ci0jaWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5H
KQotICAgICAgICBjY1NldHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQgPSB0cnVlOwotI2Vs
c2UKLSAgICAgICAgY2NTZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkID0gZmFsc2U7Ci0j
ZW5kaWYKKyAgICAgICAgY2NTZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkID0gc2V0dGlu
Z3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCk7CiAgICAgICAgIGNjU2V0dGluZ3Muc2hvd0ZQ
U0NvdW50ZXIgPSBzZXR0aW5ncygpLT5zaG93RlBTQ291bnRlcigpOwogICAgICAgICBjY1NldHRp
bmdzLnNob3dQbGF0Zm9ybUxheWVyVHJlZSA9IHNldHRpbmdzKCktPnNob3dQbGF0Zm9ybUxheWVy
VHJlZSgpOwogCkBAIC0yNjk0LDExICsyNjg0LDEwIEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IFdlYlZpZXdJbXAKIHsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRl
eHQgPSBtX3RlbXBvcmFyeU9uc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QucmVsZWFzZSgpOwogICAg
IGlmICghY29udGV4dCkgewotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKLSAgICAgICAg
Y29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0
Rm9yQW5vdGhlclRocmVhZChnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdl
LT5jaHJvbWUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93
KTsKLSNlbHNlCi0gICAgICAgIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGdl
dENvbXBvc2l0b3JDb250ZXh0QXR0cmlidXRlcygpLCBtX3BhZ2UtPmNocm9tZSgpLCBHcmFwaGlj
c0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpOwotI2VuZGlmCisgICAgICAg
IGlmIChzZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0b3IoKSkKKyAgICAgICAgICAgIGNv
bnRleHQgPSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZv
ckFub3RoZXJUaHJlYWQoZ2V0Q29tcG9zaXRvckNvbnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+
Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKGdldENvbXBvc2l0b3JDb250ZXh0QXR0cmlidXRlcygpLCBtX3BhZ2UtPmNocm9tZSgp
LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpOwogICAgIH0K
ICAgICByZXR1cm4gY29udGV4dDsKIH0KQEAgLTI3MzYsMTIgKzI3MjUsMTEgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6ZGlkUmVjcmVhdGVHcmFwaGljc0NvbgogICAgICAgICBtX3BhZ2VPdmVybGF5LT51
cGRhdGUoKTsKIH0KIAotI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSgpCiB7CisgICAgQVNTRVJUKCFzZXR0aW5ncygpLT51
c2VUaHJlYWRlZENvbXBvc2l0b3IoKSk7CiAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRl
KCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXJUcmVlVmlld3Bv
cnQoKQogewpAQCAtMjc3MCwxMSArMjc1OCwxMSBAQCBXZWJHcmFwaGljc0NvbnRleHQzRCogV2Vi
Vmlld0ltcGw6OmdyYXBoCiAgICAgICAgICAgICBpZiAod2ViQ29udGV4dCAmJiAhd2ViQ29udGV4
dC0+aXNDb250ZXh0TG9zdCgpKQogICAgICAgICAgICAgICAgIHJldHVybiB3ZWJDb250ZXh0Owog
ICAgICAgICB9Ci0jaWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgICAgICBtX3RlbXBv
cmFyeU9uc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QgPSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZvckFub3RoZXJUaHJlYWQoZ2V0Q29tcG9zaXRvckNvbnRl
eHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7Ci0jZWxzZQotICAgICAgICBtX3RlbXBvcmFyeU9uc2Ny
ZWVuR3JhcGhpY3NDb250ZXh0M0QgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGdldENvbXBv
c2l0b3JDb250ZXh0QXR0cmlidXRlcygpLCBtX3BhZ2UtPmNocm9tZSgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpOwotI2VuZGlmCisgICAgICAgIGlmIChz
ZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0b3IoKSkKKyAgICAgICAgICAgIG1fdGVtcG9y
YXJ5T25zY3JlZW5HcmFwaGljc0NvbnRleHQzRCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6
Y3JlYXRlR3JhcGhpY3NDb250ZXh0Rm9yQW5vdGhlclRocmVhZChnZXRDb21wb3NpdG9yQ29udGV4
dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5jaHJvbWUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRl
ckRpcmVjdGx5VG9Ib3N0V2luZG93KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV90ZW1w
b3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEID0gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0
ZShnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5jaHJvbWUoKSwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsKKwogICAgICAgICBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpleHRyYWN0V2ViR3JhcGhpY3NDb250ZXh0
M0QobV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNELmdldCgpKTsKICAgICB9CiAj
ZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109873</attachid>
            <date>2011-10-05 15:33:30 -0700</date>
            <delta_ts>2011-10-05 16:45:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69391-20111005153119.patch</filename>
            <type>text/plain</type>
            <size>15252</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2Njc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMDQgIFZhbmdlbGlz
IEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaGluZyB0
aHJlYWRlZCBjb21wb3NpdG9yIGZyb20gYSBjb21waWxlIHRpbWUgb3B0aW9uIHRvIGEKKyAgICAg
ICAgcnVuIHRpbWUgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjkzOTEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCisKKyAg
ICAgICAgTW9zdGx5IGNvbnZlcnRlZCAjaWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKSB0byBh
IHJlZ3VsYXIgaWYgc3RhdGVtZW50cy4KKyAgICAgICAgSW4gYWRkaXRpb24sIENDTGF5ZXJUcmVl
SG9zdDo6c2NoZWR1bGVDb21wb3NpdGUoKSBpcyByZW1vdmVkIGFzIGl0IHdhc24ndCBiZWluZwor
ICAgICAgICBjYWxsZWQgZnJvbSBhbnl3aGVyZSwgCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFz
IGl0IGRvZXNuJ3QgYWRkIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNDb21taXRUaGVuUmVkcmF3KToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0Ojpjb21wb3NpdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRUaGVuUmVkcmF3KToK
KyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUltbWVkaWF0
ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5Lmg6CisKIDIwMTEtMTAtMDQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM5
OApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCShyZXZpc2lvbiA5NjY3NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCwxMyArMTYwLDYgQEAgdm9pZCBDQ0xh
eWVyVHJlZUhvc3Q6OmRpZFJlY3JlYXRlR3JhcGhpYwogICAgIG1fY2xpZW50LT5kaWRSZWNyZWF0
ZUdyYXBoaWNzQ29udGV4dChzdWNjZXNzKTsKIH0KIAotI2lmICFVU0UoVEhSRUFERURfQ09NUE9T
SVRJTkcpCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2NoZWR1bGVDb21wb3NpdGUoKQotewotICAg
IG1fY2xpZW50LT5zY2hlZHVsZUNvbXBvc2l0ZSgpOwotfQotI2VuZGlmCi0KIC8vIFRlbXBvcmFy
eSBoYWNrIHVudGlsIFdlYlZpZXdJbXBsIGNvbnRleHQgY3JlYXRpb24gZ2V0cyBzaW1wbGlmaWVk
CiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVIb3N0Ojpjb250ZXh0KCkKIHsKQEAgLTIw
MSwyMSArMTk0LDE5IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXRab29tQW5pbWF0b3JUcmEK
IAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpCiB7Ci0j
aWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJl
ZUhvc3Q6OnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdyIsIHRoaXMsIDApOwotICAgIG1fcHJveHkt
PnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpOwotI2Vsc2UKLSAgICBtX2NsaWVudC0+c2NoZWR1
bGVDb21wb3NpdGUoKTsKLSNlbmRpZgorICAgIGlmIChtX3NldHRpbmdzLmVuYWJsZUNvbXBvc2l0
b3JUaHJlYWQpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdDo6c2V0TmVl
ZHNSZWRyYXciLCB0aGlzLCAwKTsKKyAgICAgICAgbV9wcm94eS0+c2V0TmVlZHNDb21taXRUaGVu
UmVkcmF3KCk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZUNvbXBvc2l0
ZSgpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNSZWRyYXcoKQogewotI2lm
IFVTRShUSFJFQURFRF9DT01QT1NJVElORykKLSAgICBtX3Byb3h5LT5zZXROZWVkc1JlZHJhdygp
OwotI2Vsc2UKLSAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKLSNlbmRpZgorICAg
IGlmIChtX3NldHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQpCisgICAgICAgIG1fcHJveHkt
PnNldE5lZWRzUmVkcmF3KCk7CisgICAgZWxzZQorICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVD
b21wb3NpdGUoKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKQEAgLTI0NiwxMyArMjM3LDExIEBAIFRleHR1cmVNYW5h
Z2VyKiBDQ0xheWVyVHJlZUhvc3Q6OmNvbnRlbnQKICAgICByZXR1cm4gbV9jb250ZW50c1RleHR1
cmVNYW5hZ2VyLmdldCgpOwogfQogCi0jaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKIHZv
aWQgQ0NMYXllclRyZWVIb3N0Ojpjb21wb3NpdGUoKQogewogICAgIEFTU0VSVCghbV9zZXR0aW5n
cy5lbmFibGVDb21wb3NpdG9yVGhyZWFkKTsKICAgICBzdGF0aWNfY2FzdDxDQ1NpbmdsZVRocmVh
ZFByb3h5Kj4obV9wcm94eS5nZXQoKSktPmNvbXBvc2l0ZUltbWVkaWF0ZWx5KCk7CiB9Ci0jZW5k
aWYgLy8gIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OnVwZGF0ZUxheWVycygpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAkocmV2
aXNpb24gOTY2NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDkgKzEwMiw2IEBA
IHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRy
ZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9z
dEltcGw+IGNyZWF0ZUxheWVyVHJlZUhvc3RJbXBsKCk7CiAgICAgdm9pZCBkaWRSZWNyZWF0ZUdy
YXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpOwotI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJ
TkcpCi0gICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpOwotI2VuZGlmCiAgICAgdm9pZCBkZWxl
dGVDb250ZW50c1RleHR1cmVzT25DQ1RocmVhZChUZXh0dXJlQWxsb2NhdG9yKik7CiAKICAgICAv
LyBDQ0xheWVyVHJlZUhvc3QgaW50ZXJmYWNlIHRvIFdlYlZpZXcuCkBAIC0xMTMsOSArMTEwLDgg
QEAgcHVibGljOgogCiAgICAgQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQoKSB7IHJldHVy
biBtX2NsaWVudDsgfQogCi0jaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKKyAgICAvLyBP
bmx5IHVzZWQgd2hlbiBjb21wb3NpdGluZyBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgdm9pZCBj
b21wb3NpdGUoKTsKLSNlbmRpZgogCiAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQoKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAJKHJldmlzaW9u
IDk2Njc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSwxMiArMTU5LDcg
QEAgdm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5OjpzZXROZWVkc0NvbW1pdAogdm9pZCBDQ1Npbmds
ZVRocmVhZFByb3h5OjpzZXROZWVkc0NvbW1pdFRoZW5SZWRyYXcoKQogewogICAgIEFTU0VSVChD
Q1Byb3h5Ojppc01haW5UaHJlYWQoKSk7Ci0jaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykK
LSAgICBtX2xheWVyVHJlZUhvc3QtPnNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0jZWxzZQotICAgIC8v
IFNpbmdsZSB0aHJlYWRlZCBvbmx5IHdvcmtzIHdpdGggVEhSRUFERURfQ09NUE9TSVRJTkcuCi0g
ICAgQ1JBU0goKTsKLSNlbmRpZgorICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNDb21taXRU
aGVuUmVkcmF3KCk7CiB9CiAKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRy
YXcoKQpAQCAtMTg2LDcgKzE4MSw2IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c3RvcCgp
CiAgICAgbV9sYXllclRyZWVIb3N0ID0gMDsKIH0KIAotI2lmICFVU0UoVEhSRUFERURfQ09NUE9T
SVRJTkcpCiAvLyBDYWxsZWQgYnkgdGhlIGxlZ2FjeSBzY2hlZHVsaW5nIHBhdGggKGUuZy4gd2hl
cmUgcmVuZGVyX3dpZGdldCBkb2VzIHRoZSBzY2hlZHVsaW5nKQogdm9pZCBDQ1NpbmdsZVRocmVh
ZFByb3h5Ojpjb21wb3NpdGVJbW1lZGlhdGVseSgpCiB7CkBAIC0xOTgsOCArMTkyLDYgQEAgdm9p
ZCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpjb21wb3NpdGVJbW1lZAogICAgIGlmIChkb0NvbXBvc2l0
ZSgpKQogICAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcmVzZW50KCk7CiB9Ci0jZW5kaWYK
LQogCiBib29sIENDU2luZ2xlVGhyZWFkUHJveHk6OnJlY3JlYXRlQ29udGV4dElmTmVlZGVkKCkK
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgJKHJldmlzaW9uIDk2
Njc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MywxMCArNTMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsK
IAotICAgIC8vIFNwZWNpYWwgY2FzZSBmdW5jdGlvbnMuCi0jaWYgIVVTRShUSFJFQURFRF9DT01Q
T1NJVElORykKKyAgICAvLyBDYWxsZWQgYnkgdGhlIGxlZ2FjeSBwYXRoIHdoZXJlIFJlbmRlcldp
ZGdldCBkb2VzIHRoZSBzY2hlZHVsaW5nLgogICAgIHZvaWQgY29tcG9zaXRlSW1tZWRpYXRlbHko
KTsKLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDU2luZ2xlVGhyZWFkUHJveHko
Q0NMYXllclRyZWVIb3N0Kik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNp
b24gOTY2NzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTEwLTA0ICBWYW5nZWxpcyBLb2trZXZpcyAgPHZh
bmdlbGlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBTd2l0Y2hpbmcgdGhyZWFkZWQgY29tcG9z
aXRvciBmcm9tIGEgY29tcGlsZSB0aW1lIG9wdGlvbiB0byBhCisgICAgICAgIHJ1biB0aW1lIG9u
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mzkx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgICogcHVibGlj
L1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1Np
emUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldFVzZVRocmVhZGVkQ29t
cG9zaXRvcik6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXR0aW5nc0ltcGw6OnVzZVRocmVhZGVkQ29tcG9zaXRvcik6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFuaW1h
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJvb3RMYXllck5lZWRzRGlzcGxheSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRl
eHQzRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQzRCk6CisKIDIw
MTEtMTAtMDQgIFNjb3R0IEdyYWhhbSAgPHNjb3R0bWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEFkZCBHQU1FUEFEIGZlYXR1cmUgZmxhZwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCShyZXZpc2lvbiA5NjY3MikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsx
MTUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldExlZ2FjeUFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bUFjY2Vs
ZXJhdGVkMmRDYW52YXNTaXplKGludCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVy
YXRlZERyYXdpbmdFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlVGhy
ZWFkZWRDb21wb3NpdG9yKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgdXNlVGhyZWFkZWRD
b21wb3NpdG9yKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlJbmZvRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAkocmV2aXNpb24gOTY2NzIpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw2ICs1MCw3IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmcKICAg
ICAsIG1fY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2hvd0ZQU0Nv
dW50ZXIoZmFsc2UpCiAgICAgLCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKKyAgICAs
IG1fdXNlVGhyZWFkZWRDb21wb3NpdG9yKGZhbHNlKQogewogICAgIEFTU0VSVChzZXR0aW5ncyk7
CiB9CkBAIC0zNjgsNiArMzY5LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRNaW5pbXVt
QWNjZWxlcmEKICAgICBtX3NldHRpbmdzLT5zZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1Np
emUobnVtUGl4ZWxzKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFVzZVRocmVhZGVk
Q29tcG9zaXRvcihib29sIHVzZVRocmVhZGVkQ29tcG9zaXRvcikKK3sKKyAgICBtX3VzZVRocmVh
ZGVkQ29tcG9zaXRvciA9IHVzZVRocmVhZGVkQ29tcG9zaXRvcjsKK30KKwogdm9pZCBXZWJTZXR0
aW5nc0ltcGw6OnNldE1lbW9yeUluZm9FbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3Nl
dHRpbmdzLT5zZXRNZW1vcnlJbmZvRW5hYmxlZChlbmFibGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCShyZXZpc2lvbiA5NjY3MikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdh
Y3lBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFVz
ZVRocmVhZGVkQ29tcG9zaXRvcihib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgdXNlVGhyZWFkZWRD
b21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4gbV91c2VUaHJlYWRlZENvbXBvc2l0b3I7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCk7CkBAIC0xMjYsNiArMTI4
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZDsKICAg
ICBib29sIG1fc2hvd0ZQU0NvdW50ZXI7CiAgICAgYm9vbCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJl
ZTsKKyAgICBib29sIG1fdXNlVGhyZWFkZWRDb21wb3NpdG9yOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCShyZXZpc2lvbiA5NjY3MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1MSwxNSArMTA1MSwxMyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjphbmltYXRlKGRvdWJsZSBmcmFtZUJlCiAgICAgaWYgKHdlYmZyYW1lKSB7CiAg
ICAgICAgIEZyYW1lVmlldyogdmlldyA9IHdlYmZyYW1lLT5mcmFtZVZpZXcoKTsKICAgICAgICAg
aWYgKHZpZXcpIHsKLSNpZiAhVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAg
aWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgICAgIGlmICghc2V0dGluZ3MoKS0+dXNlVGhy
ZWFkZWRDb21wb3NpdG9yKCkgJiYgbV9sYXllclRyZWVIb3N0KQogICAgICAgICAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0QW5pbWF0aW5nKHRydWUpOwotI2VuZGlmCisKICAgICAgICAgICAg
IHZpZXctPnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoY29udmVydFNlY29uZHNUb0RPTVRpbWVT
dGFtcChmcmFtZUJlZ2luVGltZSkpOwotI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0g
ICAgICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0KQorCisgICAgICAgICAgICBpZiAoIXNldHRp
bmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigpICYmIG1fbGF5ZXJUcmVlSG9zdCkKICAgICAg
ICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldEFuaW1hdGluZyhmYWxzZSk7Ci0jZW5kaWYK
ICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTE2MCwxOCArMTE1OCwxOCBAQCB2b2lkIFdl
YlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQogdm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJv
b2wpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2lmIFVTRShUSFJFQURF
RF9DT01QT1NJVElORykKLSAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5lZWRzUmVkcmF3KCk7Ci0j
ZWxzZQotICAgIEFTU0VSVChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSk7Ci0gICAg
aWYgKCFwYWdlKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoc2V0dGluZ3MoKS0+dXNlVGhy
ZWFkZWRDb21wb3NpdG9yKCkpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNSZWRy
YXcoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZSgpKTsKKyAgICAgICAgaWYgKCFwYWdlKCkpCisgICAgICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAobV9wYWdlT3ZlcmxheSkKLSAgICAgICAgbV9wYWdlT3ZlcmxheS0+dXBkYXRlKCk7
CisgICAgICAgIGlmIChtX3BhZ2VPdmVybGF5KQorICAgICAgICAgICAgbV9wYWdlT3ZlcmxheS0+
dXBkYXRlKCk7CiAKLSAgICBtX2xheWVyVHJlZUhvc3QtPmNvbXBvc2l0ZSgpOwotI2VuZGlmCisg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tcG9zaXRlKCk7CisgICAgfQogI2VuZGlmCiB9CiAK
QEAgLTI1NzAsMTIgKzI1NjgsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRSb290TGF5ZXJOZWVk
c0Rpc3BsCiAgICAgICAgIHpvb21NYXRyaXguc2NhbGUobV9wYWdlLT5zZXR0aW5ncygpLT56b29t
QW5pbWF0b3JTY2FsZSgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRab29tQW5pbWF0
b3JUcmFuc2Zvcm0oem9vbU1hdHJpeCk7CiAgICAgfQotI2lmIFVTRShUSFJFQURFRF9DT01QT1NJ
VElORykKICAgICBpZiAobV9sYXllclRyZWVIb3N0KQogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldE5lZWRzQ29tbWl0VGhlblJlZHJhdygpOwotI2Vsc2UKLSAgICBtX2NsaWVudC0+c2NoZWR1
bGVDb21wb3NpdGUoKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzY3JvbGxSb290
TGF5ZXJSZWN0KGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkKQEAgLTI2NTcsMTEgKzI2NTEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2Vs
ZXJhdGVkQ29tcG9zCiAgICAgICAgIFdlYkNvcmU6OkNDU2V0dGluZ3MgY2NTZXR0aW5nczsKICAg
ICAgICAgY2NTZXR0aW5ncy5hY2NlbGVyYXRlUGFpbnRpbmcgPSBwYWdlKCktPnNldHRpbmdzKCkt
PmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKTsKICAgICAgICAgY2NTZXR0aW5ncy5jb21wb3Np
dGVPZmZzY3JlZW4gPSBzZXR0aW5ncygpLT5jb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCk7Ci0j
aWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQotICAgICAgICBjY1NldHRpbmdzLmVuYWJsZUNv
bXBvc2l0b3JUaHJlYWQgPSB0cnVlOwotI2Vsc2UKLSAgICAgICAgY2NTZXR0aW5ncy5lbmFibGVD
b21wb3NpdG9yVGhyZWFkID0gZmFsc2U7Ci0jZW5kaWYKKyAgICAgICAgY2NTZXR0aW5ncy5lbmFi
bGVDb21wb3NpdG9yVGhyZWFkID0gc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCk7
CiAgICAgICAgIGNjU2V0dGluZ3Muc2hvd0ZQU0NvdW50ZXIgPSBzZXR0aW5ncygpLT5zaG93RlBT
Q291bnRlcigpOwogICAgICAgICBjY1NldHRpbmdzLnNob3dQbGF0Zm9ybUxheWVyVHJlZSA9IHNl
dHRpbmdzKCktPnNob3dQbGF0Zm9ybUxheWVyVHJlZSgpOwogCkBAIC0yNjk0LDExICsyNjg0LDEw
IEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IFdlYlZpZXdJbXAKIHsKICAgICBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBtX3RlbXBvcmFyeU9uc2NyZWVuR3JhcGhp
Y3NDb250ZXh0M0QucmVsZWFzZSgpOwogICAgIGlmICghY29udGV4dCkgewotI2lmIFVTRShUSFJF
QURFRF9DT01QT1NJVElORykKLSAgICAgICAgY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0Rm9yQW5vdGhlclRocmVhZChnZXRDb21wb3NpdG9y
Q29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5jaHJvbWUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsKLSNlbHNlCi0gICAgICAgIGNvbnRleHQgPSBH
cmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGdldENvbXBvc2l0b3JDb250ZXh0QXR0cmlidXRlcygp
LCBtX3BhZ2UtPmNocm9tZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hv
c3RXaW5kb3cpOwotI2VuZGlmCisgICAgICAgIGlmIChzZXR0aW5ncygpLT51c2VUaHJlYWRlZENv
bXBvc2l0b3IoKSkKKyAgICAgICAgICAgIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRFByaXZh
dGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZvckFub3RoZXJUaHJlYWQoZ2V0Q29tcG9zaXRvckNv
bnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpS
ZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNv
bnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGdldENvbXBvc2l0b3JDb250ZXh0QXR0
cmlidXRlcygpLCBtX3BhZ2UtPmNocm9tZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGly
ZWN0bHlUb0hvc3RXaW5kb3cpOwogICAgIH0KICAgICByZXR1cm4gY29udGV4dDsKIH0KQEAgLTI3
MzYsMTIgKzI3MjUsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVjcmVhdGVHcmFwaGljc0Nv
bgogICAgICAgICBtX3BhZ2VPdmVybGF5LT51cGRhdGUoKTsKIH0KIAotI2lmICFVU0UoVEhSRUFE
RURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYlZpZXdJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSgpCiB7
CisgICAgQVNTRVJUKCFzZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0b3IoKSk7CiAgICAg
bV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJWaWV3
SW1wbDo6dXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQoKQogewpAQCAtMjc3MCwxMSArMjc1OCwxMSBA
QCBXZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmlld0ltcGw6OmdyYXBoCiAgICAgICAgICAgICBp
ZiAod2ViQ29udGV4dCAmJiAhd2ViQ29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQogICAgICAgICAg
ICAgICAgIHJldHVybiB3ZWJDb250ZXh0OwogICAgICAgICB9Ci0jaWYgVVNFKFRIUkVBREVEX0NP
TVBPU0lUSU5HKQotICAgICAgICBtX3RlbXBvcmFyeU9uc2NyZWVuR3JhcGhpY3NDb250ZXh0M0Qg
PSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZvckFub3Ro
ZXJUaHJlYWQoZ2V0Q29tcG9zaXRvckNvbnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+Y2hyb21l
KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7Ci0jZWxz
ZQotICAgICAgICBtX3RlbXBvcmFyeU9uc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QgPSBHcmFwaGlj
c0NvbnRleHQzRDo6Y3JlYXRlKGdldENvbXBvc2l0b3JDb250ZXh0QXR0cmlidXRlcygpLCBtX3Bh
Z2UtPmNocm9tZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5k
b3cpOwotI2VuZGlmCisgICAgICAgIGlmIChzZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0
b3IoKSkKKyAgICAgICAgICAgIG1fdGVtcG9yYXJ5T25zY3JlZW5HcmFwaGljc0NvbnRleHQzRCA9
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0Rm9yQW5vdGhl
clRocmVhZChnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwgbV9wYWdlLT5jaHJvbWUo
KSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNE
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0
ZXMoKSwgbV9wYWdlLT5jaHJvbWUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5
VG9Ib3N0V2luZG93KTsKKwogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpleHRyYWN0V2ViR3JhcGhpY3NDb250ZXh0M0QobV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNz
Q29udGV4dDNELmdldCgpKTsKICAgICB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>