<?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>72185</bug_id>
          
          <creation_ts>2011-11-11 14:36:37 -0800</creation_ts>
          <short_desc>Revert Page to operate on integers</short_desc>
          <delta_ts>2011-11-11 18:54:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501112</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-11-11 14:36:37 -0800</bug_when>
    <thetext>We don&apos;t need to expose Layout types to WebCore embedders via the page classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501137</commentid>
    <comment_count>1</comment_count>
      <attachid>114780</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-11-11 15:00:09 -0800</bug_when>
    <thetext>Created attachment 114780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501139</commentid>
    <comment_count>2</comment_count>
      <attachid>114780</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-11 15:04:00 -0800</bug_when>
    <thetext>Comment on attachment 114780
Patch

OK.  It seems like hit-testing wants to be floating point... but that&apos;s a separate concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501140</commentid>
    <comment_count>3</comment_count>
      <attachid>114780</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-11-11 15:06:46 -0800</bug_when>
    <thetext>Comment on attachment 114780
Patch

Thanks Eric!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501308</commentid>
    <comment_count>4</comment_count>
      <attachid>114780</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 18:54:08 -0800</bug_when>
    <thetext>Comment on attachment 114780
Patch

Clearing flags on attachment: 114780

Committed r100059: &lt;http://trac.webkit.org/changeset/100059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501309</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 18:54:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114780</attachid>
            <date>2011-11-11 15:00:09 -0800</date>
            <delta_ts>2011-11-11 18:54:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72185-20111111150008.patch</filename>
            <type>text/plain</type>
            <size>23802</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5Nzk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMTEtMTEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmVydCBQYWdlIHRvIG9w
ZXJhdGUgb24gaW50ZWdlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcyMTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmV2ZXJ0aW5nIHRoZSBwYWdlIGNsYXNzZXMgdG8gaW50ZWdlcnMgZnJvbSBMYXlv
dXRVbml0cy4gSXQncyBub3QgbmVjZXNzYXJ5IHRvIGV4cG9zZQorICAgICAgICBMYXlvdXRVbml0
cyBpbiB0aGVzZSBjbGFzc2VzLCBzbyB3ZSdsbCBhdm9pZCBkb2luZyBzby4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRl
eHRNZW51RXZlbnRGb3JLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkcmFn
SHlzdGVyZXNpc0V4Y2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlRHJhZyk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkb2N1bWVudEF0UG9pbnQpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2V0RnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Q29udGVudHNT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YWRqdXN0Vmlld1NpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Z2V0VGlja21hcmtzKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6d2luZG93UmVzaXplclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojp1cGRhdGVTY3JvbGxDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpwYWludFNjcm9sbENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhaW50
Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwYWludE92ZXJoYW5nQXJl
YXMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGFnZS9QYWdl
Lmg6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisKIDIwMTEtMTEtMDkgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEdlbmVyYXRlIHRoZSBIVE1MQXVkaW9FbGVt
ZW50IGNvbnN0cnVjdG9yIHVzaW5nIFtOYW1lZENvbnN0cnVjdG9yXSBJREwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDEwMDAxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5OCw3ICsx
Mzk4LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogICAgIEhp
dFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAgICAgLy8gU2F2
ZSB0aGUgZG9jdW1lbnQgcG9pbnQgd2UgZ2VuZXJhdGUgaW4gY2FzZSB0aGUgd2luZG93IGNvb3Jk
aW5hdGUgaXMgaW52YWxpZGF0ZWQgYnkgd2hhdCBoYXBwZW5zIAogICAgIC8vIHdoZW4gd2UgZGlz
cGF0Y2ggdGhlIGV2ZW50LgotICAgIExheW91dFBvaW50IGRvY3VtZW50UG9pbnQgPSBkb2N1bWVu
dFBvaW50Rm9yV2luZG93UG9pbnQobV9mcmFtZSwgbW91c2VFdmVudC5wb3MoKSk7CisgICAgSW50
UG9pbnQgZG9jdW1lbnRQb2ludCA9IGRvY3VtZW50UG9pbnRGb3JXaW5kb3dQb2ludChtX2ZyYW1l
LCBtb3VzZUV2ZW50LnBvcygpKTsKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1l
diA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnByZXBhcmVNb3VzZUV2ZW50KHJlcXVlc3QsIGRvY3Vt
ZW50UG9pbnQsIG1vdXNlRXZlbnQpOwogCiAgICAgaWYgKCF0YXJnZXROb2RlKG1ldikpIHsKQEAg
LTE0NDUsNyArMTQ0NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZl
bnQKIAogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkpIHsKICAgICAg
ICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gbV9jbGlja05vZGUtPnJlbmRlcmVyKCkgPyBtX2NsaWNr
Tm9kZS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKSA6IDA7Ci0gICAgICAgIExheW91dFBv
aW50IHAgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKG1vdXNlRXZlbnQucG9zKCkpOworICAgICAg
ICBJbnRQb2ludCBwID0gdmlldy0+d2luZG93VG9Db250ZW50cyhtb3VzZUV2ZW50LnBvcygpKTsK
ICAgICAgICAgaWYgKGxheWVyICYmIGxheWVyLT5pc1BvaW50SW5SZXNpemVDb250cm9sKHApKSB7
CiAgICAgICAgICAgICBsYXllci0+c2V0SW5SZXNpemVNb2RlKHRydWUpOwogICAgICAgICAgICAg
bV9yZXNpemVMYXllciA9IGxheWVyOwpAQCAtMjMwOCw3ICsyMzA4LDcgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50RgogI2Vsc2UKICAgICBpbnQgcmlnaHRBbGlnbmVk
ID0gMDsKICNlbmRpZgotICAgIExheW91dFBvaW50IGxvY2F0aW9uOworICAgIEludFBvaW50IGxv
Y2F0aW9uOwogCiAgICAgTm9kZSogZm9jdXNlZE5vZGUgPSBkb2MtPmZvY3VzZWROb2RlKCk7CiAg
ICAgRnJhbWVTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IG1fZnJhbWUtPnNlbGVjdGlvbigpOwpAQCAt
MjMxNiwyNiArMjMxNiwyNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZl
bnRGCiAKICAgICBpZiAoc3RhcnQuZGVwcmVjYXRlZE5vZGUoKSAmJiAoc2VsZWN0aW9uLT5yb290
RWRpdGFibGVFbGVtZW50KCkgfHwgc2VsZWN0aW9uLT5pc1JhbmdlKCkpKSB7CiAgICAgICAgIFJl
ZlB0cjxSYW5nZT4gc2VsZWN0aW9uUmFuZ2UgPSBzZWxlY3Rpb24tPnRvTm9ybWFsaXplZFJhbmdl
KCk7Ci0gICAgICAgIExheW91dFJlY3QgZmlyc3RSZWN0ID0gbV9mcmFtZS0+ZWRpdG9yKCktPmZp
cnN0UmVjdEZvclJhbmdlKHNlbGVjdGlvblJhbmdlLmdldCgpKTsKKyAgICAgICAgSW50UmVjdCBm
aXJzdFJlY3QgPSBtX2ZyYW1lLT5lZGl0b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2Uoc2VsZWN0aW9u
UmFuZ2UuZ2V0KCkpOwogCi0gICAgICAgIExheW91dFVuaXQgeCA9IHJpZ2h0QWxpZ25lZCA/IGZp
cnN0UmVjdC5tYXhYKCkgOiBmaXJzdFJlY3QueCgpOwotICAgICAgICBsb2NhdGlvbiA9IExheW91
dFBvaW50KHgsIGZpcnN0UmVjdC5tYXhZKCkpOworICAgICAgICBpbnQgeCA9IHJpZ2h0QWxpZ25l
ZCA/IGZpcnN0UmVjdC5tYXhYKCkgOiBmaXJzdFJlY3QueCgpOworICAgICAgICBsb2NhdGlvbiA9
IEludFBvaW50KHgsIGZpcnN0UmVjdC5tYXhZKCkpOwogICAgIH0gZWxzZSBpZiAoZm9jdXNlZE5v
ZGUpIHsKICAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGJveCA9IGZvY3VzZWROb2RlLT5y
ZW5kZXJCb3hNb2RlbE9iamVjdCgpOwogICAgICAgICBpZiAoIWJveCkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgTGF5b3V0UmVjdCBjbGlwcGVkUmVjdCA9IGJveC0+YWJzb2x1
dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7Ci0gICAgICAgIGxvY2F0aW9uID0gTGF5b3V0UG9pbnQo
Y2xpcHBlZFJlY3QueCgpLCBjbGlwcGVkUmVjdC5tYXhZKCkgLSAxKTsKKyAgICAgICAgSW50UmVj
dCBjbGlwcGVkUmVjdCA9IGJveC0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CisgICAg
ICAgIGxvY2F0aW9uID0gSW50UG9pbnQoY2xpcHBlZFJlY3QueCgpLCBjbGlwcGVkUmVjdC5tYXhZ
KCkgLSAxKTsKICAgICB9IGVsc2UgewotICAgICAgICBsb2NhdGlvbiA9IExheW91dFBvaW50KAor
ICAgICAgICBsb2NhdGlvbiA9IEludFBvaW50KAogICAgICAgICAgICAgcmlnaHRBbGlnbmVkID8g
dmlldy0+Y29udGVudHNXaWR0aCgpIC0ga0NvbnRleHRNZW51TWFyZ2luIDoga0NvbnRleHRNZW51
TWFyZ2luLAogICAgICAgICAgICAga0NvbnRleHRNZW51TWFyZ2luKTsKICAgICB9CiAKICAgICBt
X2ZyYW1lLT52aWV3KCktPnNldEN1cnNvcihwb2ludGVyQ3Vyc29yKCkpOwogCi0gICAgTGF5b3V0
UG9pbnQgcG9zaXRpb24gPSB2aWV3LT5jb250ZW50c1RvV2luZG93KGxvY2F0aW9uKTsKLSAgICBM
YXlvdXRQb2ludCBnbG9iYWxQb3NpdGlvbiA9IHZpZXctPmNvbnRlbnRzVG9TY3JlZW4oTGF5b3V0
UmVjdChsb2NhdGlvbiwgTGF5b3V0U2l6ZSgpKSkubG9jYXRpb24oKTsKKyAgICBJbnRQb2ludCBw
b3NpdGlvbiA9IHZpZXctPmNvbnRlbnRzVG9XaW5kb3cobG9jYXRpb24pOworICAgIEludFBvaW50
IGdsb2JhbFBvc2l0aW9uID0gdmlldy0+Y29udGVudHNUb1NjcmVlbihJbnRSZWN0KGxvY2F0aW9u
LCBJbnRTaXplKCkpKS5sb2NhdGlvbigpOwogCiAgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IGRvYy0+
Zm9jdXNlZE5vZGUoKTsKICAgICBpZiAoIXRhcmdldE5vZGUpCkBAIC0yNzIwLDggKzI3MjAsOCBA
QCBib29sIEV2ZW50SGFuZGxlcjo6ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlCiAgICAgRnJhbWVWaWV3
KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIExheW91dFBvaW50IGRyYWdMb2NhdGlvbiA9IHZpZXctPndpbmRvd1RvQ29u
dGVudHMoZmxvb3JlZExheW91dFBvaW50KGRyYWdWaWV3cG9ydExvY2F0aW9uKSk7Ci0gICAgTGF5
b3V0U2l6ZSBkZWx0YSA9IGRyYWdMb2NhdGlvbiAtIG1fbW91c2VEb3duUG9zOworICAgIEludFBv
aW50IGRyYWdMb2NhdGlvbiA9IHZpZXctPndpbmRvd1RvQ29udGVudHMoZmxvb3JlZEludFBvaW50
KGRyYWdWaWV3cG9ydExvY2F0aW9uKSk7CisgICAgSW50U2l6ZSBkZWx0YSA9IGRyYWdMb2NhdGlv
biAtIG1fbW91c2VEb3duUG9zOwogICAgIAogICAgIGludCB0aHJlc2hvbGQgPSBHZW5lcmFsRHJh
Z0h5c3RlcmVzaXM7CiAgICAgc3dpdGNoIChkcmFnU3RhdGUoKS5tX2RyYWdUeXBlKSB7CkBAIC0y
ODczLDcgKzI4NzMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhjb25zdCBNb3Vz
CiAgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGRyYWdTdGF0ZSgpLm1f
ZHJhZ1NyYy0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRv
ZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zLgogICAgICAgICAgICAgICAgIEZs
b2F0UG9pbnQgYWJzUG9zID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgpOwotICAgICAgICAg
ICAgICAgIExheW91dFNpemUgZGVsdGEgPSBtX21vdXNlRG93blBvcyAtIHJvdW5kZWRMYXlvdXRQ
b2ludChhYnNQb3MpOworICAgICAgICAgICAgICAgIEludFNpemUgZGVsdGEgPSBtX21vdXNlRG93
blBvcyAtIHJvdW5kZWRJbnRQb2ludChhYnNQb3MpOwogICAgICAgICAgICAgICAgIGRyYWdTdGF0
ZSgpLm1fZHJhZ0NsaXBib2FyZC0+c2V0RHJhZ0ltYWdlRWxlbWVudChkcmFnU3RhdGUoKS5tX2Ry
YWdTcmMuZ2V0KCksIHRvUG9pbnQoZGVsdGEpKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgLy8gVGhlIHJlbmRlcmVyIGhhcyBkaXNhcHBlYXJlZCwgdGhpcyBjYW4gaGFw
cGVuIGlmIHRoZSBvblN0YXJ0RHJhZyBoYW5kbGVyIGhhcyBoaWRkZW4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24gMTAwMDEwKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAxLDcgKzQwMSw3IEBAIHBy
aXZhdGU6CiAgICAgTGF5b3V0U2l6ZSBtX29mZnNldEZyb21SZXNpemVDb3JuZXI7IC8vIEluIHRo
ZSBjb29yZHMgb2YgbV9yZXNpemVMYXllci4KICAgICAKICAgICBJbnRQb2ludCBtX2N1cnJlbnRN
b3VzZVBvc2l0aW9uOwotICAgIExheW91dFBvaW50IG1fbW91c2VEb3duUG9zOyAvLyBJbiBvdXIg
dmlldydzIGNvb3Jkcy4KKyAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZp
ZXcncyBjb29yZHMuCiAgICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRm
b3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJl
dmlzaW9uIDEwMDAxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04MTUsNyArODE1LDcgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lOjp2aXNpYmxl
UG9zaXRpb25GbwogICAgIHJldHVybiB2aXNpYmxlUG9zOwogfQogCi1Eb2N1bWVudCogRnJhbWU6
OmRvY3VtZW50QXRQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCitEb2N1bWVudCogRnJh
bWU6OmRvY3VtZW50QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgaWYgKCF2
aWV3KCkpCiAgICAgICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAkocmV2aXNpb24g
MTAwMDEwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xODcsNyArMTg3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEcmFnSW1hZ2VS
ZWYgZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCk7CiAKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHZp
c2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBmcmFtZVBvaW50KTsKLSAg
ICAgICAgRG9jdW1lbnQqIGRvY3VtZW50QXRQb2ludChjb25zdCBMYXlvdXRQb2ludCYgd2luZG93
UG9pbnQpOworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnRBdFBvaW50KGNvbnN0IEludFBvaW50
JiB3aW5kb3dQb2ludCk7CiAgICAgICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlRm9yUG9pbnQo
Y29uc3QgTGF5b3V0UG9pbnQmIGZyYW1lUG9pbnQpOwogCiAgICAgICAgIFN0cmluZyBzZWFyY2hG
b3JMYWJlbHNBYm92ZUNlbGwoUmVndWxhckV4cHJlc3Npb24qLCBIVE1MVGFibGVDZWxsRWxlbWVu
dCosIHNpemVfdCogcmVzdWx0RGlzdGFuY2VGcm9tU3RhcnRPZkNlbGwpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTAwMDEwKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNyArMTcwLDcgQEAgUGFz
c1JlZlB0cjxGcmFtZVZpZXc+IEZyYW1lVmlldzo6Y3JlYXRlKAogUGFzc1JlZlB0cjxGcmFtZVZp
ZXc+IEZyYW1lVmlldzo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgaW5pdGlh
bFNpemUpCiB7CiAgICAgUmVmUHRyPEZyYW1lVmlldz4gdmlldyA9IGFkb3B0UmVmKG5ldyBGcmFt
ZVZpZXcoZnJhbWUpKTsKLSAgICB2aWV3LT5XaWRnZXQ6OnNldEZyYW1lUmVjdChMYXlvdXRSZWN0
KHZpZXctPmxvY2F0aW9uKCksIGluaXRpYWxTaXplKSk7CisgICAgdmlldy0+V2lkZ2V0OjpzZXRG
cmFtZVJlY3QoSW50UmVjdCh2aWV3LT5sb2NhdGlvbigpLCBpbml0aWFsU2l6ZSkpOwogICAgIHZp
ZXctPnNob3coKTsKICAgICByZXR1cm4gdmlldy5yZWxlYXNlKCk7CiB9CkBAIC0zNzYsNyArMzc2
LDcgQEAgYm9vbCBGcmFtZVZpZXc6OmRpZEZpcnN0TGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4g
IW1fZmlyc3RMYXlvdXQ7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChjb25z
dCBMYXlvdXRSZWN0JiByZWN0KQordm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewogICAgICAgICBpZiAoaG9z
dFdpbmRvdygpKQpAQCAtMzkxLDE1ICszOTEsMTUgQEAgdm9pZCBGcmFtZVZpZXc6OmludmFsaWRh
dGVSZWN0KGNvbnN0IExheQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIExheW91dFJlY3QgcmVwYWludFJlY3QgPSByZWN0OworICAgIEludFJlY3QgcmVwYWludFJl
Y3QgPSByZWN0OwogICAgIHJlcGFpbnRSZWN0Lm1vdmUocmVuZGVyZXItPmJvcmRlckxlZnQoKSAr
IHJlbmRlcmVyLT5wYWRkaW5nTGVmdCgpLAogICAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIt
PmJvcmRlclRvcCgpICsgcmVuZGVyZXItPnBhZGRpbmdUb3AoKSk7CiAgICAgcmVuZGVyZXItPnJl
cGFpbnRSZWN0YW5nbGUocmVwYWludFJlY3QpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0RnJh
bWVSZWN0KGNvbnN0IExheW91dFJlY3QmIG5ld1JlY3QpCit2b2lkIEZyYW1lVmlldzo6c2V0RnJh
bWVSZWN0KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpCiB7Ci0gICAgTGF5b3V0UmVjdCBvbGRSZWN0
ID0gZnJhbWVSZWN0KCk7CisgICAgSW50UmVjdCBvbGRSZWN0ID0gZnJhbWVSZWN0KCk7CiAgICAg
aWYgKG5ld1JlY3QgPT0gb2xkUmVjdCkKICAgICAgICAgcmV0dXJuOwogCkBAIC00OTEsNyArNDkx
LDcgQEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlUwogICAgIHJldHVy
biBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIob3JpZW50YXRpb24pOwogfQogCi12b2lkIEZy
YW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0IExheW91dFNpemUmIHNpemUpCit2b2lkIEZy
YW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaWYg
KHNpemUgPT0gY29udGVudHNTaXplKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUyMSw5ICs1MjEs
OSBAQCB2b2lkIEZyYW1lVmlldzo6YWRqdXN0Vmlld1NpemUoKQogCiAgICAgQVNTRVJUKG1fZnJh
bWUtPnZpZXcoKSA9PSB0aGlzKTsKIAotICAgIGNvbnN0IExheW91dFJlY3QmIHJlY3QgPSByb290
LT5kb2N1bWVudFJlY3QoKTsKLSAgICBjb25zdCBMYXlvdXRTaXplJiBzaXplID0gcmVjdC5zaXpl
KCk7Ci0gICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsT3JpZ2luKExheW91dFBvaW50KC1yZWN0Lngo
KSwgLXJlY3QueSgpKSwgIW1fZnJhbWUtPmRvY3VtZW50KCktPnByaW50aW5nKCksIHNpemUgPT0g
Y29udGVudHNTaXplKCkpOworICAgIGNvbnN0IEludFJlY3QgcmVjdCA9IHJvb3QtPmRvY3VtZW50
UmVjdCgpOworICAgIGNvbnN0IEludFNpemUmIHNpemUgPSByZWN0LnNpemUoKTsKKyAgICBTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxPcmlnaW4oSW50UG9pbnQoLXJlY3QueCgpLCAtcmVjdC55KCkpLCAh
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSwgc2l6ZSA9PSBjb250ZW50c1NpemUoKSk7
CiAgICAgCiAgICAgc2V0Q29udGVudHNTaXplKHNpemUpOwogfQpAQCAtMTczNCwyNSArMTczNCwy
NSBAQCBIb3N0V2luZG93KiBGcmFtZVZpZXc6Omhvc3RXaW5kb3coKSBjb25zCiAKIGNvbnN0IHVu
c2lnbmVkIGNSZXBhaW50UmVjdFVuaW9uVGhyZXNob2xkID0gMjU7CiAKLXZvaWQgRnJhbWVWaWV3
OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIGltbWVk
aWF0ZSkKK3ZvaWQgRnJhbWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRS
ZWN0JiByLCBib29sIGltbWVkaWF0ZSkKIHsKICAgICBBU1NFUlQoIW1fZnJhbWUtPm93bmVyRWxl
bWVudCgpKTsKICAgICAKICAgICBpZiAobV9pc1RyYWNraW5nUmVwYWludHMpIHsKLSAgICAgICAg
TGF5b3V0UmVjdCByZXBhaW50UmVjdCA9IHI7CisgICAgICAgIEludFJlY3QgcmVwYWludFJlY3Qg
PSByOwogICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1zY3JvbGxPZmZzZXQoKSk7CiAgICAgICAg
IG1fdHJhY2tlZFJlcGFpbnRSZWN0cy5hcHBlbmQocmVwYWludFJlY3QpOwogICAgIH0KIAogICAg
IGRvdWJsZSBkZWxheSA9IG1fZGVmZXJyaW5nUmVwYWludHMgPyAwIDogYWRqdXN0ZWREZWZlcnJl
ZFJlcGFpbnREZWxheSgpOwogICAgIGlmICgobV9kZWZlcnJpbmdSZXBhaW50cyB8fCBtX2RlZmVy
cmVkUmVwYWludFRpbWVyLmlzQWN0aXZlKCkgfHwgZGVsYXkpICYmICFpbW1lZGlhdGUpIHsKLSAg
ICAgICAgTGF5b3V0UmVjdCBwYWludFJlY3QgPSByOworICAgICAgICBJbnRSZWN0IHBhaW50UmVj
dCA9IHI7CiAgICAgICAgIGlmIChjbGlwc1JlcGFpbnRzKCkgJiYgIXBhaW50c0VudGlyZUNvbnRl
bnRzKCkpCiAgICAgICAgICAgICBwYWludFJlY3QuaW50ZXJzZWN0KHZpc2libGVDb250ZW50UmVj
dCgpKTsKICAgICAgICAgaWYgKHBhaW50UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGlmIChtX3JlcGFpbnRDb3VudCA9PSBjUmVwYWludFJlY3RVbmlvblRocmVz
aG9sZCkgewotICAgICAgICAgICAgTGF5b3V0UmVjdCB1bmlvbmVkUmVjdDsKKyAgICAgICAgICAg
IEludFJlY3QgdW5pb25lZFJlY3Q7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgY1JlcGFpbnRSZWN0VW5pb25UaHJlc2hvbGQ7ICsraSkKICAgICAgICAgICAgICAgICB1bmlv
bmVkUmVjdC51bml0ZShtX3JlcGFpbnRSZWN0c1tpXSk7CiAgICAgICAgICAgICBtX3JlcGFpbnRS
ZWN0cy5jbGVhcigpOwpAQCAtMjM2MiwxNSArMjM2MiwxNSBAQCB2b2lkIEZyYW1lVmlldzo6c2Ny
b2xsVG8oY29uc3QgSW50U2l6ZSYgCiAgICAgZnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpLT5k
aWRDaGFuZ2VTY3JvbGxPZmZzZXQoKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0
KQordm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Ny
b2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIC8vIEFkZCBpbiBvdXIgb2Zmc2V0
IHdpdGhpbiB0aGUgRnJhbWVWaWV3LgotICAgIExheW91dFJlY3QgZGlydHlSZWN0ID0gcmVjdDsK
KyAgICBJbnRSZWN0IGRpcnR5UmVjdCA9IHJlY3Q7CiAgICAgZGlydHlSZWN0Lm1vdmVCeShzY3Jv
bGxiYXItPmxvY2F0aW9uKCkpOwogICAgIGludmFsaWRhdGVSZWN0KGRpcnR5UmVjdCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpnZXRUaWNrbWFya3MoVmVjdG9yPExheW91dFJlY3Q+JiB0aWNrbWFy
a3MpIGNvbnN0Cit2b2lkIEZyYW1lVmlldzo6Z2V0VGlja21hcmtzKFZlY3RvcjxJbnRSZWN0PiYg
dGlja21hcmtzKSBjb25zdAogewogICAgIHRpY2ttYXJrcyA9IGZyYW1lKCktPmRvY3VtZW50KCkt
Pm1hcmtlcnMoKS0+cmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6OlRleHRN
YXRjaCk7CiB9CkBAIC0yMzc5LDcgKzIzNzksNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6d2luZG93
UmVzaXplclJlY3QoKSBjCiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5w
YWdlKCkgOiAwOwogICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsK
KyAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKICAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPndp
bmRvd1Jlc2l6ZXJSZWN0KCk7CiB9CiAKQEAgLTI0MTUsNyArMjQxNSw3IEBAIHZvaWQgRnJhbWVW
aWV3OjpkaWRDb21wbGV0ZUFuaW1hdGVkU2Nyb2wKICAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5kaWRDb21wbGV0ZUFuaW1hdGVkU2Nyb2xsKCk7CiB9CiAKLXZvaWQgRnJhbWVW
aWV3OjpzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgTGF5b3V0UmVjdCYgc2Nyb2xs
ZXJUaHVtYikKK3ZvaWQgRnJhbWVWaWV3OjpzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29u
c3QgSW50UmVjdCYgc2Nyb2xsZXJUaHVtYikKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTI1MTEsNyArMjUxMSw3IEBAIHZvaWQgRnJhbWVW
aWV3Ojp1cGRhdGVTY3JvbGxDb3JuZXIoKQogewogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIg
PSAwOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gY29ybmVyU3R5bGU7Ci0gICAgTGF5b3V0UmVj
dCBjb3JuZXJSZWN0ID0gc2Nyb2xsQ29ybmVyUmVjdCgpOworICAgIEludFJlY3QgY29ybmVyUmVj
dCA9IHNjcm9sbENvcm5lclJlY3QoKTsKICAgICAKICAgICBpZiAoIWNvcm5lclJlY3QuaXNFbXB0
eSgpKSB7CiAgICAgICAgIC8vIFRyeSB0aGUgPGJvZHk+IGVsZW1lbnQgZmlyc3QgYXMgYSBzY3Jv
bGwgY29ybmVyIHNvdXJjZS4KQEAgLTI1NTEsNyArMjU1MSw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1
cGRhdGVTY3JvbGxDb3JuZXIoKQogICAgIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbENvcm5lcigp
OwogfQogCi12b2lkIEZyYW1lVmlldzo6cGFpbnRTY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBjb3JuZXJSZWN0KQordm9pZCBGcmFtZVZpZXc6
OnBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgY29ybmVyUmVjdCkKIHsKICAgICBpZiAoY29udGV4dC0+dXBkYXRpbmdDb250cm9sVGludHMo
KSkgewogICAgICAgICB1cGRhdGVTY3JvbGxDb3JuZXIoKTsKQEAgLTI2OTMsNyArMjY5Myw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRXYXNTY3JvbGxlZEJ5VXNlcihib28KICAgICBtX3dhc1Njcm9s
bGVkQnlVc2VyID0gd2FzU2Nyb2xsZWRCeVVzZXI7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpwYWlu
dENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKK3Zv
aWQgRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIWZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4
MTIsNyArMjgxMiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXROb2RlVG9EcmF3KE5vZGUqIG5vZGUK
ICAgICBtX25vZGVUb0RyYXcgPSBub2RlOwogfQogCi12b2lkIEZyYW1lVmlldzo6cGFpbnRPdmVy
aGFuZ0FyZWFzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgaG9y
aXpvbnRhbE92ZXJoYW5nQXJlYSwgY29uc3QgTGF5b3V0UmVjdCYgdmVydGljYWxPdmVyaGFuZ0Fy
ZWEsIGNvbnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCkKK3ZvaWQgRnJhbWVWaWV3OjpwYWludE92
ZXJoYW5nQXJlYXMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBob3Jp
em9udGFsT3ZlcmhhbmdBcmVhLCBjb25zdCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nQXJlYSwg
Y29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQogewogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rp
c2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI5NDYsOSArMjk0Niw5IEBAIHZvaWQgRnJh
bWVWaWV3OjphZGp1c3RQYWdlSGVpZ2h0RGVwcmVjYXQKICAgICAgICAgKm5ld0JvdHRvbSA9IG9s
ZEJvdHRvbTsKIH0KIAotTGF5b3V0UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIo
Y29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgTGF5b3V0UmVjdCYgcmVuZGVyZXJS
ZWN0KSBjb25zdAorSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIoY29uc3Qg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50UmVjdCYgcmVuZGVyZXJSZWN0KSBjb25z
dAogewotICAgIExheW91dFJlY3QgcmVjdCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UmVjdChyZW5kZXJlclJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIElu
dFJlY3QgcmVjdCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChyZW5k
ZXJlclJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogCiAgICAgLy8gQ29udmVydCBmcm9t
IHBhZ2UgKCJhYnNvbHV0ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICByZWN0Lm1v
dmVCeSgtc2Nyb2xsUG9zaXRpb24oKSk7CkBAIC0yOTU2LDMxICsyOTU2LDMxIEBAIExheW91dFJl
Y3QgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmUKICAgICByZXR1cm4gcmVjdDsKIH0KIAot
TGF5b3V0UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIsIGNvbnN0IExheW91dFJlY3QmIHZpZXdSZWN0KSBjb25zdAorSW50UmVjdCBG
cmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGNvbnN0IEludFJlY3QmIHZpZXdSZWN0KSBjb25zdAogewotICAgIExheW91dFJlY3QgcmVjdCA9
IHZpZXdSZWN0OworICAgIEludFJlY3QgcmVjdCA9IHZpZXdSZWN0OwogICAgIAogICAgIC8vIENv
bnZlcnQgZnJvbSBGcmFtZVZpZXcgY29vcmRzIGludG8gcGFnZSAoImFic29sdXRlIikgY29vcmRp
bmF0ZXMuCiAgICAgcmVjdC5tb3ZlQnkoc2Nyb2xsUG9zaXRpb24oKSk7CiAKICAgICAvLyBGSVhN
RTogd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBtYXAgYW4gYWJzb2x1dGUgcmVjdCBkb3duIHRvIGEg
bG9jYWwgcXVhZCwgc28ganVzdAogICAgIC8vIG1vdmUgdGhlIHJlY3QgZm9yIG5vdy4KLSAgICBy
ZWN0LnNldExvY2F0aW9uKHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xv
Y2FsKHJlY3QubG9jYXRpb24oKSwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKSk7
CisgICAgcmVjdC5zZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRl
VG9Mb2NhbChyZWN0LmxvY2F0aW9uKCksIGZhbHNlLCB0cnVlIC8qIHVzZSB0cmFuc2Zvcm1zICov
KSkpOwogICAgIHJldHVybiByZWN0OwogfQogCi1MYXlvdXRQb2ludCBGcmFtZVZpZXc6OmNvbnZl
cnRGcm9tUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgTGF5b3V0
UG9pbnQmIHJlbmRlcmVyUG9pbnQpIGNvbnN0CitJbnRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRG
cm9tUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50UG9pbnQm
IHJlbmRlcmVyUG9pbnQpIGNvbnN0CiB7Ci0gICAgTGF5b3V0UG9pbnQgcG9pbnQgPSByb3VuZGVk
TGF5b3V0UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShyZW5kZXJlclBvaW50LCBmYWxz
ZSwgdHJ1ZSAvKiB1c2UgdHJhbnNmb3JtcyAqLykpOworICAgIEludFBvaW50IHBvaW50ID0gcm91
bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocmVuZGVyZXJQb2ludCwgZmFs
c2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKTsKIAogICAgIC8vIENvbnZlcnQgZnJvbSBw
YWdlICgiYWJzb2x1dGUiKSB0byBGcmFtZVZpZXcgY29vcmRpbmF0ZXMuCiAgICAgcG9pbnQubW92
ZUJ5KC1zY3JvbGxQb3NpdGlvbigpKTsKICAgICByZXR1cm4gcG9pbnQ7CiB9CiAKLUxheW91dFBv
aW50IEZyYW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciwgY29uc3QgTGF5b3V0UG9pbnQmIHZpZXdQb2ludCkgY29uc3QKK0ludFBvaW50IEZyYW1l
Vmlldzo6Y29udmVydFRvUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29u
c3QgSW50UG9pbnQmIHZpZXdQb2ludCkgY29uc3QKIHsKLSAgICBMYXlvdXRQb2ludCBwb2ludCA9
IHZpZXdQb2ludDsKKyAgICBJbnRQb2ludCBwb2ludCA9IHZpZXdQb2ludDsKICAgICAKICAgICAv
LyBDb252ZXJ0IGZyb20gRnJhbWVWaWV3IGNvb3JkcyBpbnRvIHBhZ2UgKCJhYnNvbHV0ZSIpIGNv
b3JkaW5hdGVzLgogICAgIHBvaW50ICs9IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwpA
QCAtMjk4OCw3ICsyOTg4LDcgQEAgTGF5b3V0UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5k
ZXJlcgogICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2Nh
bChwb2ludCwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKTsKIH0KIAotTGF5b3V0
UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IExheW91dFJlY3Qm
IGxvY2FsUmVjdCkgY29uc3QKK0ludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5n
Vmlldyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CiB7CiAgICAgaWYgKGNvbnN0IFNj
cm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcgPSBwYXJlbnQoKSkgewogICAgICAgICBpZiAocGFy
ZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkgewpAQCAtMjk5OCw3ICsyOTk4LDcgQEAgTGF5
b3V0UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbgogICAgICAgICAgICAgaWYgKCFy
ZW5kZXJlcikKICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZWN0OwogICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgTGF5b3V0UmVjdCByZWN0KGxvY2FsUmVjdCk7CisgICAgICAgICAg
ICBJbnRSZWN0IHJlY3QobG9jYWxSZWN0KTsKICAgICAgICAgICAgIC8vIEFkZCBib3JkZXJzIGFu
ZCBwYWRkaW5nPz8KICAgICAgICAgICAgIHJlY3QubW92ZShyZW5kZXJlci0+Ym9yZGVyTGVmdCgp
ICsgcmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksCiAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVy
ZXItPmJvcmRlclRvcCgpICsgcmVuZGVyZXItPnBhZGRpbmdUb3AoKSk7CkBAIC0zMDExLDcgKzMw
MTEsNyBAQCBMYXlvdXRSZWN0IEZyYW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluCiAgICAgcmV0
dXJuIGxvY2FsUmVjdDsKIH0KIAotTGF5b3V0UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29u
dGFpbmluZ1ZpZXcoY29uc3QgTGF5b3V0UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKK0ludFJlY3Qg
RnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFJlY3QmIHBhcmVu
dFJlY3QpIGNvbnN0CiB7CiAgICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZp
ZXcgPSBwYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZp
ZXcoKSkgewpAQCAtMzAyMiw3ICszMDIyLDcgQEAgTGF5b3V0UmVjdCBGcmFtZVZpZXc6OmNvbnZl
cnRGcm9tQ29udGFpbgogICAgICAgICAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgICAgICAg
ICByZXR1cm4gcGFyZW50UmVjdDsKIAotICAgICAgICAgICAgTGF5b3V0UmVjdCByZWN0ID0gcGFy
ZW50Vmlldy0+Y29udmVydFRvUmVuZGVyZXIocmVuZGVyZXIsIHBhcmVudFJlY3QpOworICAgICAg
ICAgICAgSW50UmVjdCByZWN0ID0gcGFyZW50Vmlldy0+Y29udmVydFRvUmVuZGVyZXIocmVuZGVy
ZXIsIHBhcmVudFJlY3QpOwogICAgICAgICAgICAgLy8gU3VidHJhY3QgYm9yZGVycyBhbmQgcGFk
ZGluZwogICAgICAgICAgICAgcmVjdC5tb3ZlKC1yZW5kZXJlci0+Ym9yZGVyTGVmdCgpIC0gcmVu
ZGVyZXItPnBhZGRpbmdMZWZ0KCksCiAgICAgICAgICAgICAgICAgICAgICAgLXJlbmRlcmVyLT5i
b3JkZXJUb3AoKSAtIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOwpAQCAtMzAzNSw3ICszMDM1LDcg
QEAgTGF5b3V0UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbgogICAgIHJldHVybiBw
YXJlbnRSZWN0OwogfQogCi1MYXlvdXRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5p
bmdWaWV3KGNvbnN0IExheW91dFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAorSW50UG9pbnQgRnJh
bWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYgbG9jYWxQb2lu
dCkgY29uc3QKIHsKICAgICBpZiAoY29uc3QgU2Nyb2xsVmlldyogcGFyZW50U2Nyb2xsVmlldyA9
IHBhcmVudCgpKSB7CiAgICAgICAgIGlmIChwYXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygp
KSB7CkBAIC0zMDQ2LDcgKzMwNDYsNyBAQCBMYXlvdXRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRU
b0NvbnRhaW5pCiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHJl
dHVybiBsb2NhbFBvaW50OwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgTGF5b3V0UG9p
bnQgcG9pbnQobG9jYWxQb2ludCk7CisgICAgICAgICAgICBJbnRQb2ludCBwb2ludChsb2NhbFBv
aW50KTsKIAogICAgICAgICAgICAgLy8gQWRkIGJvcmRlcnMgYW5kIHBhZGRpbmcKICAgICAgICAg
ICAgIHBvaW50Lm1vdmUocmVuZGVyZXItPmJvcmRlckxlZnQoKSArIHJlbmRlcmVyLT5wYWRkaW5n
TGVmdCgpLApAQCAtMzA2MCw3ICszMDYwLDcgQEAgTGF5b3V0UG9pbnQgRnJhbWVWaWV3Ojpjb252
ZXJ0VG9Db250YWluaQogICAgIHJldHVybiBsb2NhbFBvaW50OwogfQogCi1MYXlvdXRQb2ludCBG
cmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgTGF5b3V0UG9pbnQmIHBh
cmVudFBvaW50KSBjb25zdAorSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBpZiAoY29u
c3QgU2Nyb2xsVmlldyogcGFyZW50U2Nyb2xsVmlldyA9IHBhcmVudCgpKSB7CiAgICAgICAgIGlm
IChwYXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7CkBAIC0zMDcxLDcgKzMwNzEsNyBA
QCBMYXlvdXRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpCiAgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnRQb2ludDsKIAotICAg
ICAgICAgICAgTGF5b3V0UG9pbnQgcG9pbnQgPSBwYXJlbnRWaWV3LT5jb252ZXJ0VG9SZW5kZXJl
cihyZW5kZXJlciwgcGFyZW50UG9pbnQpOworICAgICAgICAgICAgSW50UG9pbnQgcG9pbnQgPSBw
YXJlbnRWaWV3LT5jb252ZXJ0VG9SZW5kZXJlcihyZW5kZXJlciwgcGFyZW50UG9pbnQpOwogICAg
ICAgICAgICAgLy8gU3VidHJhY3QgYm9yZGVycyBhbmQgcGFkZGluZwogICAgICAgICAgICAgcG9p
bnQubW92ZSgtcmVuZGVyZXItPmJvcmRlckxlZnQoKSAtIHJlbmRlcmVyLT5wYWRkaW5nTGVmdCgp
LAogICAgICAgICAgICAgICAgICAgICAgICAtcmVuZGVyZXItPmJvcmRlclRvcCgpIC0gcmVuZGVy
ZXItPnBhZGRpbmdUb3AoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9u
IDEwMDAxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIxOSwxNSArMjE5LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFdpZGdldFRvVXBk
YXRlKFJlbmRlckVtYmVkZGVkT2JqZWN0Kik7CiAgICAgdm9pZCByZW1vdmVXaWRnZXRUb1VwZGF0
ZShSZW5kZXJFbWJlZGRlZE9iamVjdCopOwogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgZGFtYWdlUmVjdCk7CisgICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVj
dCYgZGFtYWdlUmVjdCk7CiAgICAgdm9pZCBzZXRQYWludEJlaGF2aW9yKFBhaW50QmVoYXZpb3Ip
OwogICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcigpIGNvbnN0OwogICAgIGJvb2wgaXNQ
YWludGluZygpIGNvbnN0OwogICAgIGJvb2wgaGFzRXZlclBhaW50ZWQoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RQYWludFRpbWU7IH0KICAgICB2b2lkIHNldE5vZGVUb0RyYXcoTm9kZSopOwogCi0g
ICAgdmlydHVhbCB2b2lkIHBhaW50T3ZlcmhhbmdBcmVhcyhHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBMYXlvdXRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdBcmVhLCBjb25zdCBMYXlvdXRSZWN0JiB2
ZXJ0aWNhbE92ZXJoYW5nQXJlYSwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KTsKLSAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRTY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5
b3V0UmVjdCYgY29ybmVyUmVjdCk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50T3ZlcmhhbmdBcmVh
cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdBcmVh
LCBjb25zdCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nQXJlYSwgY29uc3QgSW50UmVjdCYgZGly
dHlSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRTY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgSW50UmVjdCYgY29ybmVyUmVjdCk7CiAKICAgICBDb2xvciBkb2N1bWVudEJh
Y2tncm91bmRDb2xvcigpIGNvbnN0OwogCkBAIC0zMzYsNyArMzM2LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVkKCk7CiAgICAgdm9pZCBwZXJmb3Jt
UG9zdExheW91dFRhc2tzKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRSZWN0
YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRl
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNSZXNpemVkKCk7CiAgICAgdmlydHVhbCB2b2lk
IHZpc2libGVDb250ZW50c1Jlc2l6ZWQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZp
c2lvbiAxMDAwMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MTksNyArNjE5LDcgQEAgdm9pZCBQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2
b2x1bWUpCiAgICAgfQogfQogCi12b2lkIFBhZ2U6OnNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBz
Y2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikKK3ZvaWQgUGFnZTo6c2V0UGFnZVNjYWxl
RmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogewogICAgIGlmIChz
Y2FsZSA9PSBtX3BhZ2VTY2FsZUZhY3RvcikKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgJKHJldmlzaW9uIDEwMDAxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDUsNyArMjQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFWb2x1bWU7IH0K
ICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpOwogCi0gICAgICAgIHZv
aWQgc2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3Jp
Z2luKTsKKyAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0
IEludFBvaW50JiBvcmlnaW4pOwogICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQogCiAgICAgICAgIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJKHJldmlzaW9uIDEwMDAx
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNjEsNyArMzYxLDcgQEAgYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSog
ZnJhbWUsIEZvYwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAg
ICAgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsQnkoTGF5b3V0U2l6ZShkeCwgZHkpKTsKKyAgICAgICAg
ZnJhbWUtPnZpZXcoKS0+c2Nyb2xsQnkoSW50U2l6ZShkeCwgZHkpKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>